.visit-location-page { --vl-pad:clamp(28px,3vw,44px); }
.visit-location-page h1,.visit-location-page h2,.visit-location-page h3 { font-weight:500; letter-spacing:-.045em; }
.visit-location-page p { line-height:1.46; }
.vl-opening { display:grid; grid-template-columns:1fr 1.4fr 1.1fr; gap:5px; }
.vl-hero-photo { position:relative; isolation:isolate; overflow:hidden; border-radius:24px; background:#5489ad; color:white; min-height:500px; }
.vl-hero-photo>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:66% 50%; z-index:-2; }
.vl-hero-photo:after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#12395855,transparent 55%,#12395888); z-index:-1; }
.vl-hero-photo>span { display:block; font-size:clamp(40px,4.3vw,68px); line-height:1; letter-spacing:-.055em; padding:28px; }
.vl-hero-photo>p { position:absolute; left:28px; bottom:28px; font-size:15px; }
.vl-hero-copy { padding:var(--vl-pad); border-radius:24px; background:white; display:flex; flex-direction:column; align-items:flex-start; }
.vl-hero-copy h1 { font-size:clamp(34px,3.3vw,52px); line-height:1.24; margin:40px 0 28px; }
.vl-hero-copy h1>span,.vl-section-heading h2>span,.vl-first-visit h2>span { color:#7892a8; }
.vl-hero-copy>p:not(.section-label) { font-size:16px; color:var(--slate); }
.vl-hero-copy>.pill { margin-top:30px; }
.vl-address-card { padding:var(--vl-pad); border-radius:24px; background:#173f63; color:white; display:flex; flex-direction:column; align-items:flex-start; }
.vl-address-card>span { font-size:14px; color:#c9dced; margin-top:24px; }
.vl-address-card h2 { font-size:30px; line-height:1.35; margin:36px 0 20px; }
.vl-address-card .vl-street { white-space:nowrap; }
.vl-address-card>p { font-size:17px; color:#c9dced; }
.vl-address-card>a { display:flex; align-items:center; gap:16px; margin-top:28px; font-size:14px; }
.vl-phone { padding-top:45px; margin-top:auto; width:100%; }
.vl-phone>span { display:block; font-size:14px; color:#c9dced; margin-bottom:15px; }
.vl-phone>a { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:clamp(21px,1.85vw,28px); white-space:nowrap; letter-spacing:-.03em; }
.vl-phone svg { flex-shrink:0; }
.visit-location-page .vl-hours,.visit-location-page .vl-schedule,.visit-location-page .vl-directions,.visit-location-page .vl-faq { padding-bottom:0; }
.vl-section-heading { display:grid; grid-template-columns:1fr 2fr 1fr; align-items:start; gap:24px; margin-bottom:38px; }
.vl-section-heading h2,.vl-first-visit h2 { font-size:clamp(32px,3vw,46px); line-height:1.28; }
.vl-section-heading>p:not(.section-label) { font-size:16px; color:var(--slate); }
.vl-hours-grid { display:grid; grid-template-columns:1.8fr 1fr; gap:5px; }
.vl-timetable { padding:26px var(--vl-pad); border-radius:24px; background:white; min-width:0; }
.vl-timetable table { font-size:17px; }
.vl-timetable [data-slot=table-head],.vl-timetable [data-slot=table-cell] { padding:19px 10px; height:auto; color:var(--ink); white-space:normal; }
.vl-timetable thead [data-slot=table-head] { font-size:14px; color:var(--slate); }
.vl-timetable [data-slot=table-row] { border-color:#dce6ee; }
.vl-timetable tbody [data-slot=table-cell]:nth-child(2) { font-variant-numeric:tabular-nums; white-space:nowrap; font-size:22px; }
.vl-hours-badge { padding:7px 11px; border-radius:20px; font-size:14px; background:#e1ebf4; white-space:nowrap; }
.vl-break-panel { padding:var(--vl-pad); background:#e1ebf4; border-radius:24px; display:flex; flex-direction:column; gap:28px; }
.vl-break-panel h3 { font-size:25px; line-height:1.3; }
.vl-evening-time { font-size:29px; letter-spacing:-.035em; margin-top:16px; }
.vl-break-time { font-size:38px; letter-spacing:-.04em; margin-top:18px; }
.vl-break-panel>p,.vl-reception-note p { font-size:16px; color:var(--slate); }
.vl-reception-note { margin-top:auto; padding-top:28px; }
.vl-reception-note p { margin-top:22px; }
.vl-reception-note>.pill { margin-top:28px; }
.vl-source-note { font-size:14px; color:var(--slate); margin-top:24px; }
.vl-source-note a { text-decoration:underline; text-underline-offset:4px; }
.vl-notice-panel { display:grid; grid-template-columns:1fr 1.6fr; gap:50px; padding:var(--vl-pad); border-radius:24px; background:#173f63; color:white; }
.vl-notice-intro h2 { font-size:33px; line-height:1.3; margin:32px 0 26px; }
.vl-notice-intro>p:not(.section-label) { font-size:16px; color:#c9dced; }
.vl-notice-period { font-size:14px; margin-bottom:22px; color:#c9dced; }
.vl-notice-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.vl-notice-grid article>span { font-size:15px; }
.vl-notice-grid h3 { font-size:26px; line-height:1.3; margin:24px 0; }
.vl-notice-grid p,.vl-notice-content>p { font-size:16px; color:#c9dced; }
.vl-notice-content>a { display:inline-flex; align-items:center; gap:12px; margin:30px 24px 0 0; font-size:14px; }
.vl-arrival-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:5px; }
.vl-arrival-grid>article { padding:32px; border-radius:24px; background:white; display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.vl-arrival-grid>article:first-child { background:#e1ebf4; }
.vl-arrival-grid article>span { font-size:14px; color:var(--slate); margin-top:22px; }
.vl-arrival-grid h3 { font-size:28px; line-height:1.3; margin:32px 0 26px; }
.vl-arrival-grid p { font-size:16px; color:var(--slate); }
.vl-arrival-grid .vl-parking-floor { font-size:29px; color:var(--ink); letter-spacing:-.035em; margin-bottom:26px; }
.vl-parking-floor>span { font-size:20px; }
.vl-arrival-grid a { display:flex; justify-content:space-between; width:100%; align-items:center; gap:20px; padding-top:36px; margin-top:auto; font-size:14px; }
.vl-arrival-grid svg { flex-shrink:0; }
.vl-first-visit { display:flex; justify-content:space-between; align-items:flex-end; gap:35px; }
.vl-first-visit h2 { margin:32px 0 26px; }
.vl-first-visit p:not(.section-label) { font-size:17px; color:var(--slate); }
.vl-first-visit>.pill { flex-shrink:0; }
@media(max-width:1100px){
 .vl-opening { grid-template-columns:1fr 1.4fr; }
 .vl-address-card { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:18px 30px; }
 .vl-address-card>svg { display:none; }
 .vl-address-card>span { grid-column:1/-1; margin:0; }
 .vl-address-card h2 { margin:0; }
 .vl-address-card .vl-street { white-space:nowrap; }
.vl-address-card>p { grid-column:1; }
 .vl-address-card>a { grid-column:1; margin:0; }
 .vl-phone { grid-column:2; grid-row:2/5; padding:0; margin-top:auto; }
 .vl-phone>a { font-size:30px; }
 .vl-desktop-break { display:none; }
 .vl-section-heading { grid-template-columns:1fr 2fr; }
 .vl-section-heading>p:not(.section-label) { grid-column:2; }
 .vl-hours-grid { grid-template-columns:1.5fr 1fr; }
 .vl-timetable { padding:22px; }
 .vl-notice-panel { grid-template-columns:1fr; gap:35px; }
 .vl-arrival-grid { grid-template-columns:1fr 1fr; }
 .vl-parking { grid-column:1/-1; }
}
@media(max-width:700px){
 .vl-opening { display:flex; flex-direction:column; }
 .vl-hero-copy { order:-1; padding:30px 26px 34px; }
 .vl-hero-copy h1 { font-size:36px; margin:30px 0 26px; }
 .vl-hero-photo { min-height:260px; }
 .vl-hero-photo>span { padding:26px; font-size:52px; }
 .vl-hero-photo>p { left:26px; bottom:26px; }
 .vl-address-card { display:flex; padding:30px 26px; gap:0; }
 .vl-address-card h2 { font-size:30px; margin:26px 0 20px; }
 .vl-address-card>a { margin-top:26px; }
 .vl-phone { padding-top:38px; }
 .vl-phone>a { font-size:28px; }
 .vl-section-heading { display:block; margin-bottom:28px; }
 .vl-section-heading h2 { font-size:32px; margin:28px 0 24px; }
 .vl-hours-grid,.vl-notice-grid,.vl-arrival-grid { grid-template-columns:1fr; }
 .vl-timetable { padding:18px; }
 .vl-timetable table { font-size:15px; }
 .vl-timetable [data-slot=table-head],.vl-timetable [data-slot=table-cell] { padding:18px 4px; }
 .vl-timetable tbody [data-slot=table-cell]:nth-child(2) { font-size:18px; letter-spacing:-.02em; }
 .vl-hours-badge { padding:6px 8px; font-size:14px; }
 .vl-break-panel,.vl-notice-panel,.vl-arrival-grid>article { padding:30px 26px; }
 .vl-notice-intro h2 { font-size:29px; }
 .vl-notice-grid { gap:32px; }
 .vl-notice-grid h3 { margin:18px 0; }
 .vl-first-visit { display:block; }
 .vl-first-visit h2 { font-size:30px; }
 .vl-first-visit>.pill { margin-top:28px; }
}

.vl-first-visit { flex-wrap:wrap; }
.vl-next-actions { display:flex; flex-wrap:wrap; gap:12px; flex-shrink:0; }
@media(max-width:700px){ .vl-next-actions { margin-top:28px; } }
