.access-page { --ac-navy:#244b96; --ac-teal:#20aeb5; --ac-pink:#ed7f96; --ac-ink:#33455a; color:var(--ac-ink); font-size:clamp(16px,1.05vw,17px); line-height:1.9; }
.access-page__intro,.access-overview,.access-map-section,.access-schedule,.access-reservation { width:min(1160px,calc(100% - 48px)); margin-inline:auto; }
.access-page__intro { max-width:820px; padding:clamp(64px,8vw,108px) 0 clamp(54px,7vw,88px); text-align:center; }
.access-page__eyebrow,.access-label,.access-section-heading p,.access-reservation>div>p { margin:0 0 7px; color:var(--ac-teal); font-size:14px; font-weight:700; letter-spacing:.2em; }
.access-page h2 { color:var(--ac-navy); letter-spacing:.06em; line-height:1.45; }
.access-page__intro h2 { margin:0 0 24px; font-size:clamp(29px,3.4vw,42px); }
.access-page__intro>p:last-child { margin:0; text-align:left; }
.access-overview { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr); gap:clamp(42px,6vw,78px); align-items:center; padding-bottom:clamp(80px,10vw,132px); }
.access-gallery { position:relative; min-width:0; }
.access-gallery::after { position:absolute; inset:18px -18px 28px 18px; z-index:-1; border:1px solid rgba(32,174,181,.4); content:""; }
.access-gallery__viewport { position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:10px; background:#eaf5f4; box-shadow:0 18px 42px rgba(36,75,150,.12); }
.access-gallery__slide { position:absolute; inset:0; margin:0; opacity:0; visibility:hidden; transition:opacity .55s ease,visibility .55s ease; }
.access-gallery__slide.is-active { opacity:1; visibility:visible; }
.access-gallery__slide img { display:block; width:100%; height:100%; object-fit:cover; }
.access-gallery__slide figcaption { position:absolute; right:14px; bottom:14px; margin:0; padding:7px 13px; border-radius:999px; background:rgba(255,255,255,.9); color:#286e74; font-size:13px; font-weight:700; }
.access-gallery__arrow { position:absolute; top:50%; z-index:2; display:grid; width:42px; height:42px; padding:0; place-items:center; border:0; border-radius:50%; background:rgba(255,255,255,.9); color:#247f85; font-size:30px; line-height:1; cursor:pointer; transform:translateY(-50%); box-shadow:0 6px 18px rgba(24,76,81,.15); }
.access-gallery__arrow--prev { left:14px; }.access-gallery__arrow--next { right:14px; }
.access-gallery__dots { display:flex; justify-content:center; gap:9px; padding-top:16px; }
.access-gallery__dots button { width:9px; height:9px; padding:0; border:0; border-radius:50%; background:#c7dedf; cursor:pointer; }
.access-gallery__dots button[aria-current="true"] { width:28px; border-radius:999px; background:#20aeb5; }
.access-overview__info h2 { margin:0 0 24px; font-size:clamp(27px,3vw,36px); }
.access-overview__info dl { margin:0; border-top:1px solid #dce7e9; }
.access-overview__info dl>div { display:grid; grid-template-columns:82px 1fr; gap:20px; padding:16px 0; border-bottom:1px solid #dce7e9; }
.access-overview__info dt { color:var(--ac-navy); font-weight:700; }
.access-overview__info dd { margin:0; }
.access-overview__info dd a { color:var(--ac-navy); font-size:20px; font-weight:700; text-decoration:none; }
.access-overview__actions { display:flex; gap:12px; margin-top:28px; }
.access-button { display:flex; flex:1; justify-content:space-between; align-items:center; gap:14px; padding:15px 18px; border:1px solid var(--ac-navy); color:var(--ac-navy); font-weight:700; text-decoration:none; }
.access-button--primary { border-color:var(--ac-teal); background:var(--ac-teal); color:#fff; }
.access-map-section { padding:clamp(70px,9vw,112px) 0; border-top:1px solid #e1eaec; }
.access-section-heading { margin-bottom:36px; text-align:center; }
.access-section-heading h2 { margin:0; font-size:clamp(27px,3vw,37px); }
.access-map-frame { overflow:hidden; height:clamp(380px,50vw,570px); border-radius:12px; box-shadow:0 18px 45px rgba(36,75,150,.1); }
.access-map-frame iframe { width:100%; height:100%; border:0; }
.access-stations { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:28px; }
.access-stations article { display:flex; gap:22px; align-items:center; padding:26px 28px; border:1px solid #dce7e9; background:#fff; }
.access-stations__icon { display:grid; width:66px; height:66px; flex:0 0 66px; place-items:center; border-radius:50%; background:#eaf9fa; color:#168991; font-size:14px; font-weight:700; }
.access-stations p,.access-stations h3,.access-stations small { margin:0; }
.access-stations p { color:var(--ac-teal); font-size:14px; font-weight:700; }
.access-stations h3 { color:var(--ac-navy); font-size:21px; }
.access-stations strong { display:block; margin:3px 0; color:var(--ac-pink); font-size:22px; }
.access-stations small { display:block; font-size:14px; }
.access-map-section__note { margin:22px 0 0; text-align:center; }
.access-map-section__note a { color:var(--ac-navy); font-weight:700; }
.access-schedule { padding:clamp(70px,9vw,112px) 0; border-top:1px solid #e1eaec; }
.access-schedule__body { padding:clamp(26px,5vw,52px); background:#f5fbfb; }
.access-schedule__table-wrap { overflow-x:auto; }
.access-schedule table { width:100%; min-width:760px; border-collapse:collapse; background:#fff; }
.access-schedule th,.access-schedule td { padding:17px 12px; border:1px solid #dce7e9; text-align:center; }
.access-schedule thead th { background:var(--ac-navy); color:#fff; font-size:15px; }
.access-schedule tbody th { color:var(--ac-navy); white-space:nowrap; }
.access-schedule tbody td { color:var(--ac-teal); font-size:20px; font-weight:700; }
.access-schedule .is-closed { background:#f7f7f7; color:#9aa3ad; font-size:15px; }
.access-schedule__notes { display:flex; justify-content:space-between; gap:30px; align-items:center; margin-top:22px; }
.access-schedule__notes p { margin:0; }
.access-schedule__notes p:first-child { flex:0 0 auto; }
.access-schedule__notes small,.access-schedule__notes strong { display:block; }
.access-schedule__notes small { color:#768496; font-size:14px; }
.access-schedule__notes strong { color:var(--ac-navy); font-size:19px; }
.access-reservation { display:flex; justify-content:space-between; gap:40px; align-items:center; margin-bottom:clamp(80px,10vw,130px); padding:clamp(30px,5vw,54px); background:linear-gradient(135deg,#eefafb,#fff8f5); }
.access-reservation h2 { margin:0 0 8px; font-size:clamp(25px,2.8vw,34px); }
.access-reservation__buttons { display:flex; gap:12px; }
.access-reservation__buttons a { display:grid; min-width:220px; padding:16px 22px; background:var(--ac-navy); color:#fff; text-align:center; text-decoration:none; }
.access-reservation__buttons a.is-web { background:var(--ac-pink); }
.access-reservation__buttons small { font-size:13px; }
.access-reservation__buttons strong { font-size:20px; }
@media(max-width:800px){.access-page__intro,.access-overview,.access-map-section,.access-schedule,.access-reservation{width:min(100% - 32px,660px)}.access-overview{grid-template-columns:1fr;}.access-gallery::after{inset:10px -8px 18px 8px}.access-overview__actions,.access-schedule__notes,.access-reservation,.access-reservation__buttons{display:grid}.access-stations{grid-template-columns:1fr}.access-stations article{padding:22px 18px}.access-schedule__body{padding:18px 0;background:transparent}.access-schedule__table-wrap{margin-right:-16px}.access-reservation{padding:28px 20px}.access-reservation__buttons a{min-width:0}.access-map-frame{height:400px}}
