.access-page{padding-top:var(--header);background:#f4fbff}
.access-hero{position:relative;padding:32px 0 42px;background:linear-gradient(120deg,#e1f6ff,#f4fcff)}
.access-hero:after{content:"";position:absolute;bottom:-1px;inset-inline:0;height:20px;background:url('../images/header-wave.svg') center/100% 100%}
.access-hero .eyebrow,.access-heading>p{font-size:12px;letter-spacing:.13em;color:var(--blue);margin-bottom:8px}
.access-hero h1{font-family:var(--rounded);font-size:clamp(30px,3.5vw,42px)}
.access-hero h1+p{margin-top:12px;font-size:15px}
.access-content{padding-block:24px 64px}
.access-jump{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.access-jump a{display:flex;align-items:center;min-height:44px;padding:9px 18px;border:1px solid #cce1ef;border-radius:30px;background:#fff;color:var(--navy);font-size:14px;font-weight:700}
.access-jump a:hover{background:#e4f5ff}
.access-section{margin-bottom:40px;scroll-margin-top:calc(var(--header) + 24px)}
.access-heading{margin-bottom:22px}.access-heading h2{font-family:var(--rounded);font-size:28px}
.location-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}
.location-grid>*,.parking-layout>*,.arrival-panel>*{min-width:0}
.location-card,.location-map-card{padding:28px;border:1px solid #d0e4f2;border-radius:18px;background:#fff}
.location-card h3{font-family:var(--rounded);font-size:23px}
.location-card address{font-style:normal;margin-top:16px;font-size:17px}.location-card address strong{font-size:21px;color:var(--navy)}
.contact-list{margin:24px 0 0}.contact-list>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid #e0edf5;font-size:14px}.contact-list dt{font-weight:700}.contact-list dd{margin:0}
.access-phone{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--navy);font-size:22px;font-weight:800}.access-phone .icon{width:21px;height:21px}
.location-calendar{padding:15px;margin-top:12px;background:#eaf7ff;border-radius:10px;font-size:14px}.location-calendar a{text-decoration:underline;text-underline-offset:3px;font-weight:700}
.location-map-card{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#e8f6fc;gap:18px}
.location-map-mark{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:#fff}.location-map-mark .icon{width:38px;height:38px;color:var(--blue)}
.location-map-card h3{font-family:var(--rounded);font-size:24px}.location-map-card>p{font-size:15px}.location-map-card .map-status{font-size:12px;color:#52718a}
.access-page .route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.route-card{padding:24px;border:1px solid #d0e4f2;border-radius:18px;background:#fff}
.route-number{display:inline-grid;place-items:center;width:36px;height:36px;margin-bottom:14px;border-radius:50%;background:#e5f5ff;color:var(--navy);font-size:14px;font-weight:800}
.route-card h3{font-family:var(--rounded);font-size:21px;margin-bottom:16px}.route-ic{color:var(--navy);font-weight:700}.route-time{font-size:21px;color:var(--navy);line-height:1.4}.route-time strong{font-size:48px;margin-inline:5px}.route-via{font-size:14px;margin-bottom:12px}
.car-navigation{margin-top:20px;padding:22px 26px;background:#e4f5ff;border-radius:14px}.car-navigation h3{display:flex;align-items:center;gap:10px;font-size:19px;font-family:var(--rounded)}.car-navigation p{margin-top:10px;font-size:16px}.car-navigation strong{color:var(--navy)}
.access-page .parking-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.parking-info{padding:28px;border:1px solid #d0e4f2;border-radius:18px;background:#fff}.parking-facts{margin:0}.parking-facts>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid #e0edf5}.parking-facts>div:first-child{padding-top:0}.parking-facts>div:last-child{padding-bottom:0;border-bottom:0}.parking-facts dt{font-size:16px;font-weight:700}.parking-facts dd{margin:0;color:var(--navy);font-family:var(--rounded);font-size:25px;font-weight:800}.parking-facts strong{font-size:40px;margin-inline:3px}
.access-photo{margin:0;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #d0e4f2}.access-photo img{width:100%;height:auto}.access-photo figcaption{padding:9px 14px;color:#52718a;font-size:12px}
.traffic-note{margin-top:20px;padding:20px 24px;background:#fff7e8;border:1px solid #f1dfbf;border-radius:14px;color:#70532c}.traffic-note h3{color:#70532c;font-family:var(--rounded);font-size:19px}.traffic-note p{margin-top:8px;font-size:15px}
.train-panel{padding:28px;background:#fff;border:1px solid #d0e4f2;border-radius:18px}.train-route{display:flex;align-items:center;gap:22px}.rail-label{flex:none;padding:10px 18px;background:#e4f5ff;border-radius:10px;color:var(--navy);font-weight:800}.train-route p{font-size:20px}.train-route strong{color:var(--navy);font-size:25px}.mobile-break{display:none}
.access-page .map-preview{max-width:1000px}.access-map-dialog .map-scroll img{max-width:1000px}.access-map-dialog .map-scroll.is-zoomed img{width:2000px;max-width:none}
.arrival-panel{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px;align-items:center;padding:28px;border:1px solid #d0e4f2;border-radius:18px;background:#fff}.arrival-panel .button{margin-top:22px;font-size:15px}
.departure-panel{display:flex;gap:24px;align-items:center;padding:32px;background:#e2f4ff;border-radius:20px}.departure-panel>.icon{width:64px;height:64px;color:var(--blue)}.departure-panel>div{min-width:0}.departure-panel h2{font-family:var(--rounded);font-size:26px}.departure-panel p{margin:14px 0 20px;font-size:15px}.departure-panel .button{font-size:16px}
.access-related h2{font-family:var(--rounded);font-size:23px;margin-bottom:16px}.access-related .selected-guide-list{grid-template-columns:repeat(5,minmax(0,1fr))}
.access-page+.facility-map-dialog+.site-footer{margin-top:0}
@media(max-width:1000px){.location-grid{grid-template-columns:1fr}.location-map-card{padding:24px}.access-related .selected-guide-list{grid-template-columns:repeat(3,minmax(0,1fr))}.route-card{padding:20px}.route-card h3{font-size:19px}.arrival-panel{gap:22px}}
@media(max-width:768px){.access-page .route-grid,.access-page .parking-layout,.arrival-panel{grid-template-columns:1fr}.access-related .selected-guide-list{grid-template-columns:repeat(2,minmax(0,1fr))}.arrival-panel .access-photo{max-width:560px}.departure-panel{align-items:flex-start}.departure-panel>.icon{width:36px;height:36px}.access-section{margin-bottom:32px}}
@media(max-width:600px){.access-hero{padding:22px 0 32px}.access-hero h1+p{font-size:14px}.access-content{padding-top:18px}.access-jump{gap:8px;margin-bottom:26px}.access-jump a{padding:9px 13px;font-size:13px}.access-heading h2{font-size:24px}.location-card,.location-map-card,.parking-info,.train-panel,.arrival-panel{padding:22px 18px}.location-card h3{font-size:21px}.location-card address strong{font-size:20px}.contact-list>div{grid-template-columns:1fr;gap:4px}.access-phone{font-size:24px}.location-map-card .button{font-size:14px}.route-card{padding:22px}.route-card h3{font-size:21px}.car-navigation{padding:20px 18px}.parking-facts dt{font-size:14px}.parking-facts dd{font-size:22px}.parking-facts strong{font-size:35px}.traffic-note{padding:20px 18px}.traffic-note p{font-size:14px}.train-route{align-items:flex-start;flex-direction:column;gap:14px}.train-route p{font-size:18px}.train-route strong{font-size:23px}.mobile-break{display:block}.departure-panel{padding:24px 18px;gap:12px}.departure-panel h2{font-size:22px}.departure-panel p{font-size:14px}.departure-panel .button{width:100%;padding:12px;font-size:14px;gap:8px}.access-related h2{font-size:21px}}
@media(max-width:380px){.access-related .selected-guide-list{grid-template-columns:1fr}}

/* Access opt-in: preserve map geometry and the shared dialog implementation. */
.access-page.subpage-design .subpage-title h1+p{max-width:none}
.access-page.subpage-design .access-heading{padding-left:16px;border-left:6px solid var(--subpage-sun)}
.access-page.subpage-design .map-section .access-heading{padding-left:0;border-left:0}
.access-page.subpage-design .location-card h3{font-size:23px;line-height:1.55}
.access-page.subpage-design .location-map-card{background:var(--subpage-aqua)}
.access-page.subpage-design .location-map-card h3{font-size:24px;line-height:1.55}
.access-page.subpage-design .location-calendar,.access-page.subpage-design .car-navigation,.access-page.subpage-design .rail-label,.access-page.subpage-design .route-number{background:#e5f6f9}
.access-page.subpage-design .route-number{border-radius:12px;font-family:var(--subpage-rounded)}
.access-page.subpage-design .route-card h3{font-size:21px;line-height:1.55}
.access-page.subpage-design .car-navigation{border:1px solid #d4e8ea;border-radius:16px}
.access-page.subpage-design .car-navigation h3{font-size:19px;line-height:1.55}
.access-page.subpage-design .traffic-note h3{color:#70532c;font-size:19px;line-height:1.55}
.access-page.subpage-design .departure-panel{background:var(--subpage-aqua);border:1px solid #dce9e9;border-radius:24px;box-shadow:0 7px 0 #124c700a}
.access-page.subpage-design .departure-panel h2{font-size:clamp(24px,2.25vw,32px);line-height:1.55;letter-spacing:.015em}
.access-page.subpage-design .button.coral{background:#007cba;color:#fff}
.access-page.subpage-design .button.coral:hover{background:#006596;transform:translateY(-3px);box-shadow:0 6px 0 #124c7015}
@media(max-width:1000px){.access-page.subpage-design .route-card h3{font-size:19px}}
@media(max-width:600px){
 .access-page.subpage-design .access-heading{padding-left:12px;border-left-width:5px}
 .access-page.subpage-design .location-card h3{font-size:21px}
 .access-page.subpage-design .route-card h3{font-size:21px}
 .access-page.subpage-design .departure-panel{border-radius:21px}
 .access-page.subpage-design .departure-panel h2{font-size:24px}
 .access-page.subpage-design .departure-panel .button{max-width:100%;padding-inline:12px;gap:8px}
}
@media(prefers-reduced-motion:reduce){.access-page.subpage-design .button.coral:hover{transform:none}}

/* Confirmed destination link and public transport choices, access only. */
.access-page.subpage-design .location-intro{margin-top:16px;font-size:16px;line-height:1.85}
.access-page.subpage-design .location-map-card .button{max-width:100%;text-align:center}
.access-page.subpage-design .location-area-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px;font-size:14px;font-weight:700;color:var(--navy)}
.access-page.subpage-design .location-area-link:hover{color:#006596}
.access-page.subpage-design .train-intro{margin-bottom:24px;font-size:20px;font-weight:700;color:var(--navy)}
.access-page.subpage-design .transit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.access-page.subpage-design .transit-card{padding:24px;background:var(--subpage-aqua);min-width:0}
.access-page.subpage-design .transit-card h3{font-size:21px;line-height:1.55;margin-bottom:14px}
.access-page.subpage-design .transit-card p{font-size:16px;line-height:1.85}
.access-page.subpage-design .transit-card p+p{margin-top:12px}
@media(max-width:600px){
 .access-page.subpage-design .train-intro{font-size:18px;margin-bottom:20px}
 .access-page.subpage-design .transit-grid{grid-template-columns:1fr;gap:16px}
 .access-page.subpage-design .transit-card{padding:22px 18px}
 .access-page.subpage-design .transit-card h3{font-size:20px}
 .access-page.subpage-design .transit-card p{font-size:15px}
 .access-page.subpage-design .location-map-card .button{padding-inline:16px;font-size:14px}
}
