.visit-hero { position: relative; min-height: 720px; display: grid; align-items: end; overflow: hidden; background: var(--blue-deep); color: var(--white); }
.visit-hero-media, .visit-hero-shade { position: absolute; inset: 0; }
.visit-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 44%; }
.visit-hero-shade { background: linear-gradient(90deg, rgba(0,27,39,.95) 0%, rgba(0,32,46,.76) 52%, rgba(0,22,32,.26) 100%), linear-gradient(to top, rgba(0,30,42,.85), transparent 54%); }
.visit-hero-content { position: relative; z-index: 1; padding: 176px 0 76px; }
.visit-hero h1 { max-width: 920px; margin-bottom: 22px; }
.visit-hero-copy { max-width: 740px; margin-bottom: 30px; color: #fffdf8; font-size: clamp(1.12rem,2vw,1.4rem); }
.visit-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.visit-breadcrumbs { margin-bottom: 22px; font-size: .82rem; }
.visit-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; }
.visit-breadcrumbs li + li::before { content: "/"; margin-right: 8px; opacity: .7; }
.visit-breadcrumbs a { text-underline-offset: 4px; }
.decision-strip { background: var(--blue); color: var(--white); }
.decision-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.decision-grid > div { min-height: 132px; display: flex; flex-direction: column; justify-content: center; padding: 26px 28px; border-right: 1px solid rgba(255,255,255,.22); }
.decision-grid > div:first-child { border-left: 1px solid rgba(255,255,255,.22); }
.decision-grid strong { color: var(--yellow); font-family: "JetBrains Mono",ui-monospace,monospace; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.decision-grid span { margin-top: 6px; line-height: 1.35; }
.visit-section { padding: clamp(74px,8vw,124px) 0; }
.visit-section.is-sand { background: var(--sand); }
.visit-section.is-paper { background: var(--paper); }
.visit-section.is-dark { background: var(--blue-deep); color: var(--white); }
.visit-section.is-green { background: var(--green); color: var(--white); }
.visit-section h2 { color: var(--blue); }
.visit-section.is-dark h2, .visit-section.is-green h2 { color: var(--white); }
.direct-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(42px,8vw,110px); align-items: start; }
.direct-answer { font-size: 1.16rem; }
.direct-answer strong { color: var(--blue); }
.visit-section.is-dark .direct-answer strong { color: var(--yellow); }
.checklist { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; padding: 0; margin: 42px 0 0; list-style: none; counter-reset: visit-step; }
.checklist li { min-height: 260px; padding: 30px; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--white); box-shadow: 0 14px 38px rgba(0,56,77,.07); counter-increment: visit-step; }
.checklist li::before { content: counter(visit-step); display: grid; width: 48px; height: 48px; margin-bottom: 24px; place-items: center; border-radius: 50%; background: var(--yellow); color: var(--blue-deep); font-weight: 900; }
.checklist h3 { color: var(--blue); }
.choice-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 42px; }
.choice-card { display: flex; min-height: 330px; flex-direction: column; padding: 32px; border: 1px solid rgba(255,255,255,.28); border-radius: var(--radius); background: rgba(0,0,0,.13); }
.choice-card h3 { color: var(--white); }
.choice-card p { color: #fffdf8; }
.choice-card .card-time { color: var(--yellow); }
.choice-card a { margin-top: auto; color: var(--white); font-weight: 900; text-underline-offset: 5px; }
.route-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; margin-top: 42px; }
.route-card { padding: 30px; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--white); }
.route-card h3 { color: var(--blue); }
.route-card p:last-child { margin-bottom: 0; }
.route-card a { color: var(--blue); font-weight: 900; }
.truth-table { width: 100%; margin-top: 38px; border-collapse: collapse; background: var(--white); color: var(--ink); }
.truth-table caption { padding-bottom: 16px; color: inherit; font-weight: 900; text-align: left; }
.truth-table th, .truth-table td { padding: 18px 20px; border: 1px solid var(--rule); text-align: left; vertical-align: top; }
.truth-table th { width: 31%; background: #e8dfcf; color: var(--blue); }
.hub-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hub-faq { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(42px,8vw,110px); }
.hub-faq details { border-top: 1px solid var(--rule); }
.hub-faq details:last-child { border-bottom: 1px solid var(--rule); }
.hub-faq summary { position: relative; padding: 24px 50px 24px 0; color: var(--blue); cursor: pointer; font-weight: 900; list-style: none; }
.hub-faq summary::-webkit-details-marker { display: none; }
.hub-faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 1.7rem; }
.hub-faq details[open] summary::after { content: "−"; }
.hub-faq details p { padding: 0 50px 24px 0; color: var(--muted); }
.source-note { margin-top: 30px; padding: 22px 24px; border-left: 5px solid var(--yellow); background: rgba(255,255,255,.1); }
.source-note a { font-weight: 900; }
@media (max-width: 900px) {
  .decision-grid { grid-template-columns: repeat(2,1fr); }
  .direct-grid, .hub-faq { grid-template-columns: 1fr; }
  .checklist, .choice-grid { grid-template-columns: 1fr; }
  .checklist li, .choice-card { min-height: 0; }
}
@media (max-width: 620px) {
  .visit-hero { min-height: 760px; }
  .visit-hero-content { padding: 150px 0 58px; }
  .visit-hero-actions, .visit-hero-actions .button, .hub-actions, .hub-actions .button { width: 100%; }
  .decision-grid, .route-grid { grid-template-columns: 1fr; }
  .decision-grid > div { min-height: 96px; border-width: 0 1px 1px; }
  .truth-table, .truth-table tbody, .truth-table tr, .truth-table th, .truth-table td { display: block; width: 100%; }
  .truth-table tr { border: 1px solid var(--rule); }
  .truth-table th, .truth-table td { border: 0; }
  .truth-table td { padding-top: 8px; }
}
