.location-case-detail-table { width: 100%; border-collapse: collapse; text-align: left; color: #3a4266; font-size: 14px; line-height: 1.5; margin: 0 0 16px; }
.location-case-detail-table caption { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
.location-case-detail-table th, .location-case-detail-table td { padding: 2px 0; vertical-align: top; }
.location-case-detail-table th { width: 38%; padding-right: 12px; font-weight: 700; color: #161e6f; }
.location-case-detail-table tr + tr { border-top: 1px solid #e1e7f0; }
.location-case-detail-table time { font-variant-numeric: tabular-nums; white-space: nowrap; }
.location-case-found { display: inline-flex; align-items: center; gap: 6px; color: #176346; font-weight: 600; }
.location-case-found svg { width: 18px; height: 18px; flex-shrink: 0; }
.location-case-open, .location-case-close { font: inherit; font-size: 14px; font-weight: 700; border: 2px solid #161e6f; background: #161e6f; color: #fff; border-radius: 6px; padding: 9px 14px; min-height: 44px; cursor: pointer; }
.location-case-open { position: relative; z-index: 1; align-self: flex-start; margin-top: auto; }
.location-case-open:hover, .location-case-close:hover { background: #253b88; border-color: #253b88; }
.location-case-open:focus-visible, .location-case-close:focus-visible, .location-case-dialog a:focus-visible { outline: 3px solid #007fa3; outline-offset: 4px; }
.location-case-open[hidden], .location-case-close[hidden] { display: none; }
.location-case-dialog { margin: auto; box-sizing: border-box; border: 0; border-radius: 12px; padding: 0; width: min(760px, calc(100% - 32px)); max-height: calc(100dvh - 32px); color: #103c5b; background: #fff; box-shadow: 0 20px 60px #103c5b45; }
.location-case-dialog:not(:modal) { position: relative; margin: 28px auto; max-height: none; overflow: visible; scroll-margin-top: 100px; }
.location-case-dialog:not(:modal) .location-case-dialog-top { display: none; }
.location-case-dialog::backdrop { background: #071e32b8; }
.location-case-dialog-top { display: flex; justify-content: flex-end; position: sticky; top: 0; z-index: 1; padding: 12px 20px; background: #fff; border-bottom: 1px solid #d8e5ed; }
.location-case-dialog-body { padding: 12px 32px 32px; }
.location-case-dialog h3 { font-family: inherit; font-size: clamp(22px, 3vw, 30px); line-height: 1.2; font-weight: 700; margin: 12px 0 22px; color: #103c5b; text-wrap: balance; }
.location-case-dialog h4 { font-size: 18px; margin: 24px 0 8px; color: #103c5b; }
.location-case-dialog p, .location-case-dialog dd, .location-case-dialog li { font-size: 16px; line-height: 1.5; }
.location-case-dialog p { margin: 0 0 16px; max-width: 65ch; }
.location-case-dialog dl { display: grid; grid-template-columns: 100px 1fr; gap: 8px 18px; margin: 0 0 22px; }
.location-case-dialog dt { font-weight: 700; }
.location-case-dialog dd { margin: 0; }
.location-case-dialog .location-case-study-photo { width: 100%; height: auto; aspect-ratio: 4 / 3; display: block; object-fit: contain; border-radius: 6px; }
.location-case-dialog ul { padding-left: 22px; margin: 0 0 20px; }
.location-case-dialog a { color: #103c5b; font-weight: 700; text-underline-offset: 3px; }
html.location-case-modal-open { overflow: hidden; scrollbar-gutter: stable; }
@media (max-width: 700px) {
 .location-case-dialog-body { padding: 8px 20px 24px; }
 .location-case-dialog-top { padding: 10px 16px; }
 .location-case-dialog dl { grid-template-columns: 82px minmax(0, 1fr); gap: 8px 12px; }
}
.location-case-study-title { color: #161e6f; }
.location-case-study:hover, .location-case-study:focus-within { box-shadow: 0 1px 2px #161e6f0a, 0 8px 24px #161e6f0f; transform: none; }
.location-case-dialog .location-case-study-photo { max-width: 360px; }
.location-case-dialog dl { grid-template-columns: max-content minmax(0, 1fr); }
@media (max-width: 700px) {
 .location-case-dialog .location-case-study-photo { max-width: 240px; }
 .location-case-dialog dl { grid-template-columns: min-content minmax(0, 1fr); }
}
.location-case-call { display: flex; justify-content: center; margin: 24px 0 0; padding: 12px 16px; border-radius: 10px; background: #161e6f; container: case-call / inline-size; }
.location-case-dialog a.location-case-call-button { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 8px; background: #80eff7; box-shadow: 0 4px 12px #00000033; color: #161e6f; font-size: 16px; font-weight: 800; line-height: 1.2; letter-spacing: .01em; text-decoration: none; white-space: nowrap; transition: background-color .2s ease, transform .2s ease; }
.location-case-dialog a.location-case-call-button:hover { background: #5fe3ee; color: #161e6f; transform: translateY(-1px); }
.location-case-dialog a.location-case-call-button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.location-case-call-icon { flex: 0 0 auto; width: 16px; height: 16px; }
@media (max-width: 360px) {
 .location-case-call { padding: 12px 8px; }
}
@container case-call (max-width: 215px) {
 .location-case-dialog a.location-case-call-button { padding: 0 12px; }
}
@container case-call (max-width: 202px) {
 .location-case-dialog a.location-case-call-button { padding: 0 10px; }
 .location-case-call-icon { display: none; }
}
@container case-call (max-width: 175px) {
 .location-case-dialog a.location-case-call-button { padding: 0 8px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
 .location-case-dialog a.location-case-call-button, .location-case-dialog a.location-case-call-button:hover { transition: none; transform: none; }
}
