/* Approved D3 visit page. Shared frame and sibling page styles stay independent. */
.visit-content {
  --type-page-size:clamp(40px,3.6vw,52px);
  --type-page-phone-size:clamp(27px,7.7vw,30px);
  --type-small-button:14.5px;
  --type-lead-size:18px;
  color:var(--ink);
}
.visit-content .page-wrap { width:100%; max-width:var(--page-max); margin-inline:auto; padding-inline:var(--gutter); }
.visit-content .section-bar { padding-top:calc(var(--frame-rest-height) + 24px); }
.visit-content .crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:6px; color:var(--muted); font:var(--text-caption); }
.visit-content .crumbs a { display:inline-flex; align-items:center; min-height:var(--tap-min); min-width:var(--tap-min); padding-inline:16px; margin-inline:-16px; }
.visit-content .crumbs [aria-hidden] { color:var(--faint); }
.visit-content .section-name { display:none; }
.visit-content .page-head { padding:18px 0 0; }
.visit-content .page-head h1 { color:var(--ink); font:var(--text-title-page); font-size:var(--type-page-size); line-height:1.25; letter-spacing:-.045em; text-wrap:balance; }
.visit-content .page-lead { margin-top:12px; color:var(--ink-2); font:var(--text-lead); font-size:var(--type-lead-size); }
.visit-content .section-tabs { position:static; margin-top:28px; background:var(--surface); }
.visit-content .section-tabs-row { gap:36px; }
.visit-content .section-tabs-row > a { height:54px; padding-inline:0; }
.visit-content [id] { scroll-margin-top:0; }
.visit-content :focus-visible { outline:var(--focus-width) solid var(--focus-ring); outline-offset:var(--focus-offset); }
.visit-content .section-tabs-row > a:focus-visible { outline-offset:-2px; }
.vx-grid { display:grid; grid-template-columns:minmax(0,var(--hours-col)) minmax(0,1fr); grid-template-areas:'hours route' 'access parking'; align-items:start; column-gap:80px; row-gap:96px; padding-block:44px 120px; }
.vx-block { min-width:0; }
.vx-hours { grid-area:hours; }
.vx-route { grid-area:route; }
.vx-parking { grid-area:parking; }
.vx-access { grid-area:access; }
.vx-title { margin:0; padding-bottom:14px; border-bottom:2px solid var(--navy); color:var(--ink); font:var(--text-title-block); letter-spacing:-.03em; }
.vx-table { width:100%; margin-top:4px; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.vx-table caption { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.vx-table th, .vx-table td { padding:14px 0; border-bottom:1px solid var(--line); line-height:1.4; }
.vx-table th { text-align:left; color:var(--ink-2); font:var(--text-lead); line-height:1.4; }
.vx-table td { text-align:right; color:var(--navy); font:var(--text-num-hours); letter-spacing:-.01em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.vx-table .visit-b-lunch th, .vx-table .visit-b-lunch td { color:var(--muted); font:var(--text-body); line-height:1.4; font-variant-numeric:tabular-nums; }
.vx-closed { margin-top:14px; color:var(--muted); font:var(--text-body); font-size:var(--frame-text-15); }
.vx-closed b { color:var(--ink); font-weight:600; }
.visit-content .visit-closure { margin-top:14px; padding:10px 14px; border-left:3px solid var(--navy); background:var(--tint); color:var(--navy); font:var(--text-label); font-weight:400; }
.vx-call { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 16px; margin-top:28px; padding-top:18px; border-top:1px solid var(--line); }
.vx-call-label { color:var(--muted); font:var(--text-label); }
.vx-number { display:inline-flex; align-items:center; min-height:var(--tap-min); color:var(--navy); font:var(--text-num-phone); font-variant-numeric:tabular-nums; letter-spacing:-.03em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.vx-tbd, .vx-src { margin-top:18px; color:var(--muted); font:var(--text-caption); }
.visit-content .tbd { display:inline-flex; align-items:center; height:21px; padding:0 7px; margin-right:8px; border:1px dashed var(--tbd-border); border-radius:var(--r-tag); color:var(--muted); background:var(--surface); font:var(--text-tag); letter-spacing:0; vertical-align:1px; white-space:nowrap; }
.vx-address { margin:22px 0 0; color:var(--ink); font:var(--text-address); letter-spacing:-.03em; }
.vx-floor { display:inline-flex; margin-left:6px; padding:2px 10px; vertical-align:4px; border-radius:var(--r-chip); background:var(--band); color:var(--navy); font:var(--text-label); font-size:var(--frame-text-15); line-height:1.6; letter-spacing:0; }
.vx-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:18px; }
.visit-content .visit-b-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:var(--tap-min); max-width:100%; padding:8px 16px; border:1px solid var(--line-2); border-radius:var(--r-s); background:var(--surface); color:var(--navy); font:var(--text-button); font-size:var(--type-small-button); font-weight:500; }
.visit-content .visit-b-copy { background:var(--band); border-color:var(--band); }
.vx-ext::before { content:'↗'; color:var(--muted); font:var(--text-caption); }
.visit-b-copy-status { color:var(--navy); font:var(--text-caption); }
.visit-b-copy-status:empty { display:none; }
.visit-b-copy-status:not(:empty) { margin-top:8px; }
.visit-b-fallback { margin-block:12px; }
.visit-b-fallback label { display:block; margin-bottom:6px; color:var(--muted); font:var(--text-caption); }
.visit-b-fallback input { display:block; width:100%; min-width:0; min-height:48px; padding:12px; border:1px solid var(--navy); border-radius:var(--r-s); background:var(--surface); font:var(--text-label); font-weight:400; }
.vx-map { position:relative; aspect-ratio:780/370; margin-top:22px; overflow:hidden; border:1px solid var(--line); border-radius:var(--r-l); background:var(--band); }
.vx-map .visit-b-map-still, .vx-map img { position:absolute; inset:0; display:block; width:100%; height:100%; }
.vx-map .visit-b-map-still { isolation:isolate; }
.vx-map img { object-fit:cover; object-position:50.4% 32.4%; }
.vx-map .visit-b-map-still:focus-visible { outline-offset:-4px; }
.visit-b-pin { position:absolute; z-index:1; left:50.4%; top:32.4%; width:34px; height:34px; transform:translate(-50%,-50%); border:3px solid var(--surface); border-radius:var(--r-pill); background:var(--navy); box-shadow:var(--shadow-pin); }
.visit-b-pin::before { content:''; position:absolute; left:8px; top:8px; width:12px; height:12px; border-radius:var(--r-pill); background:var(--lime); }
.visit-b-pin::after { content:''; position:absolute; top:27px; left:8px; border-inline:6px solid transparent; border-top:8px solid var(--navy); }
.vx-map-note { margin-top:10px; color:var(--muted); font:var(--text-caption-phone); }
.visit-alias { display:block; height:0; }
.vx-jump { display:none; }
.vx-lead { max-width:40em; margin-top:22px; color:var(--ink-2); font:var(--text-reading); line-height:1.8; }
.vx-parking .vx-src { margin-top:10px; }
.vx-sub { margin:36px 0 0; color:var(--ink); font:var(--text-title-sub-phone); letter-spacing:-.02em; }
.vx-steps { counter-reset:visit-step; margin:12px 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }
.vx-steps li { position:relative; counter-increment:visit-step; padding:15px 0 15px 48px; border-bottom:1px solid var(--line); color:var(--ink); font:var(--text-reading); line-height:1.6; }
.vx-steps li::before { content:counter(visit-step,decimal-leading-zero); position:absolute; left:0; top:17px; color:var(--navy); font:var(--text-label); letter-spacing:.02em; }
.vx-steps strong { font-weight:600; }
.vx-step-tbd { margin-top:6px; color:var(--muted); font:var(--text-caption); }
.vx-videos { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.vx-video { display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:8px 18px 8px 10px; border:1px solid var(--line-2); border-radius:var(--r-s); color:var(--navy); font:var(--text-label); font-size:var(--frame-text-15); font-weight:500; }
.vx-play { position:relative; flex:0 0 28px; width:28px; height:28px; border-radius:var(--r-pill); background:var(--navy); }
.vx-play::after { content:''; position:absolute; left:11px; top:9px; border-block:5px solid transparent; border-left:8px solid var(--surface); }
.vx-rows { margin:0; }
.vx-rows > div { display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px; align-items:baseline; padding:16px 0; border-bottom:1px solid var(--line); }
.vx-rows dt { color:var(--muted); font:var(--text-body); font-size:var(--frame-text-15); }
.vx-rows dd { margin:0; color:var(--ink); font:var(--text-reading); }
.vx-rows .is-tbd dd { color:var(--muted); font:var(--text-body); font-size:var(--type-small-button); }
@media (hover:hover) {
  .visit-content .crumbs a:hover { color:var(--navy); }
  .vx-number:hover { text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px; }
  .visit-content .visit-b-button:hover, .vx-video:hover { border-color:var(--navy); }
}
@media (max-width:1100px) {
  .vx-grid { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); column-gap:32px; }
}
@media (max-width:860px) {
  .visit-content .section-bar { padding-top:calc(var(--frame-rest-height) + 16px); }
  .visit-content .page-head { padding-top:16px; }
  .visit-content .page-head h1 { font:var(--text-title-page-phone); letter-spacing:-.045em; }
  .visit-content .page-lead { display:none; }
  .visit-content .section-tabs { margin-top:12px; }
  .visit-content .section-tabs-row { gap:22px; }
  .visit-content .section-tabs-row > a { height:48px; letter-spacing:-.03em; }
  .vx-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:'hours' 'route' 'parking' 'access'; row-gap:48px; padding-block:24px 72px; }
  .vx-title { padding-bottom:12px; font:var(--text-title-block-phone); }
  .vx-table th, .vx-table td { padding:10px 0; }
  .vx-table th { font-size:var(--frame-text-17); }
  .vx-table td { font:var(--text-num-hours-phone); font-variant-numeric:tabular-nums; }
  .vx-table .visit-b-lunch th, .vx-table .visit-b-lunch td { font-size:var(--frame-text-15); }
  .vx-call { align-items:center; margin-top:16px; padding-top:10px; }
  .vx-number { font:var(--text-num-phone-phone); font-variant-numeric:tabular-nums; }
  .vx-address { margin-top:18px; font:var(--text-address-phone); }
  .vx-floor { font-size:var(--frame-text-14); }
  .vx-map { margin-top:14px; border-radius:var(--r-card); }
  .vx-lead { font:var(--text-reading-phone); }
  .vx-steps li { padding:13px 0 13px 42px; font:var(--text-reading-phone); line-height:1.6; }
  .vx-steps li::before { top:15px; }
  .vx-video { width:100%; }
  .vx-rows > div { grid-template-columns:118px minmax(0,1fr); gap:12px; padding:14px 0; }
  .vx-rows dt { font-size:var(--frame-text-14); }
  .vx-rows dd { font:var(--text-body); }
  .vx-jump { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; margin-top:12px; padding:8px 14px 8px 16px; border-radius:var(--r-thumb); background:var(--tint); color:var(--ink); font:var(--text-tab-pill); letter-spacing:-.02em; }
  .vx-jump-f { margin-left:2px; color:var(--muted); }
  .vx-jump-go { display:inline-flex; flex:none; align-items:center; gap:6px; color:var(--navy); font:var(--text-label); font-size:var(--type-small-button); }
  .vx-jump-arrow { width:8px; height:8px; margin-top:-4px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg); }
  .vx-route { display:flex; flex-direction:column; }
  .vx-route > .vx-map { order:1; }
  .vx-route > .vx-actions { order:2; }
  .vx-route > .visit-b-copy-status { order:3; }
  .vx-route > .visit-b-fallback { order:4; }
  .vx-route > noscript { order:4; color:var(--muted); font:var(--text-caption); }
  .vx-route > .vx-map-note { order:5; }
  .vx-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:14px; }
  .vx-map-note { margin-top:12px; }
}
@media (max-width:600px) {
  .visit-content .page-head h1 { font-size:var(--type-page-phone-size); }
  .vx-map { aspect-ratio:auto; height:clamp(200px,62vw,260px); }
  .vx-map img { inset:auto; left:50%; top:40%; width:min(190%,700px); height:auto; max-width:none; object-fit:fill; transform:translate(-50.4%,-32.4%); }
  .visit-b-pin { left:50%; top:40%; }
}
