.welcome-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center;padding-block:2rem 4rem}
.welcome-hero .breadcrumb{margin-bottom:2rem}
.welcome-hero h1{font-size:clamp(2.6rem,5vw,4.1rem)}
.welcome-hero .lede{max-width:34rem}
.welcome-photo{margin:0}
.welcome-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:18px}
.welcome-photo figcaption{padding-top:.7rem;font-size:.85rem;color:var(--muted)}
.welcome-note{margin:1.5rem 0 0;color:var(--muted);font-size:.9rem}
.welcome-section{padding-block:3rem;border-top:1px solid var(--line)}
.welcome-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:2rem;margin-bottom:2rem;align-items:start}
.welcome-heading h2{max-width:22rem}
.welcome-heading>p{margin:0;color:var(--muted)}
.welcome-steps{list-style:none;padding:0;margin:0;counter-reset:visit}
.welcome-steps li{counter-increment:visit;display:grid;grid-template-columns:3rem minmax(0,1fr) minmax(0,1.2fr);gap:1.5rem;padding-block:1.5rem;border-top:1px solid var(--line)}
.welcome-steps li::before{content:"0" counter(visit);color:var(--accent);font-family:var(--display);font-weight:600;font-size:.9rem;padding-top:.2rem}
.welcome-steps h3{font-family:var(--display);font-size:1.15rem;margin:0;font-weight:600}
.welcome-steps p{margin:0;color:var(--muted)}
.welcome-prepare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem)}
.welcome-prepare ul{padding-left:1.3rem;margin:0;color:var(--muted)}
.welcome-prepare li+li{margin-top:.8rem}
.welcome-policy{padding:1.5rem;border-radius:14px;background:var(--soft)}
.welcome-policy h3{font-family:var(--display);margin:0;font-size:1.1rem}
.welcome-policy p{color:var(--muted);margin:.8rem 0 0}
.welcome-faq{max-width:50rem}
.welcome-faq details{border-bottom:1px solid var(--line);padding-block:1rem}
.welcome-faq summary{min-height:44px;cursor:pointer;font-family:var(--display);font-weight:600;padding-block:.4rem}
.welcome-faq details p{margin:.6rem 0;color:var(--muted)}
.welcome-location{margin-top:1rem}
@media(max-width:800px){.welcome-hero,.welcome-heading,.welcome-prepare{grid-template-columns:1fr}.welcome-hero{padding-bottom:2rem}.welcome-photo img{aspect-ratio:4/3}.welcome-steps li{grid-template-columns:2rem minmax(0,1fr);gap:.75rem}.welcome-steps p{grid-column:2}.welcome-heading{gap:1rem}.welcome-section{padding-block:2rem}}
