@font-face{font-family:"Inter";src:url("/assets/inter.woff2") format("woff2");font-weight:100 900;font-display:swap}

:root{
  --ink:#10231a;
  --forest:#0d3b2a;
  --green:#2ecc71;
  --green-deep:#12894a;
  --mint:#eef6f0;
  --paper:#ffffff;
  --line:#d5e2d9;
  --muted:#51645a;
  --amber:#ffc53d;
  --display:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);font-size:1.0625rem;line-height:1.6;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;color:var(--ink);background:var(--paper)}
img,svg{max-width:100%;display:block}
a{color:var(--green-deep);text-underline-offset:.18em}
a:hover{color:var(--forest)}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--display);line-height:1.1;margin:0 0 .5em;letter-spacing:-.03em}
h1{font-size:clamp(2.6rem,7.6vw,5.2rem);font-weight:700;letter-spacing:-.045em;line-height:1.02}
h2{font-size:clamp(1.9rem,4.6vw,3rem);font-weight:700}
h3{font-size:1.2rem;font-weight:650;letter-spacing:-.015em}
p{margin:0 0 1em;max-width:62ch}
ul{padding-left:1.1em}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--amber);color:var(--ink);padding:.6rem 1rem;z-index:50}
.skip:focus{left:0}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:1.25rem;min-height:4.25rem}
.logo{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--ink);text-decoration:none;letter-spacing:-.03em}
.logo svg{width:2.1rem;height:2.1rem}
.nav{margin-left:auto;display:flex;align-items:center;gap:1.5rem}
.nav a{color:var(--ink);text-decoration:none;font-weight:550;font-size:1rem}
.nav a:hover{color:var(--green-deep)}
.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:10px;padding:.5rem .8rem;font:inherit;font-weight:600;color:var(--ink)}
.btn{display:inline-block;font:inherit;font-weight:650;text-decoration:none;border:2px solid transparent;border-radius:999px;padding:.8rem 1.4rem;cursor:pointer;line-height:1.2;text-align:center}
.btn-primary{background:var(--green);color:var(--ink)}
.btn-primary:hover{background:#27b864;color:var(--ink)}
.btn-ghost{border-color:currentColor;color:inherit;background:transparent}
.btn-ghost:hover{background:rgba(255,255,255,.12);color:inherit}
.btn-dark{background:var(--forest);color:#fff}
.btn-dark:hover{background:var(--ink);color:#fff}
.nav .btn{padding:.6rem 1.1rem;color:var(--ink)}

/* notice */
.notice{background:var(--amber);color:var(--ink);font-size:.95rem;font-weight:550}
.notice .wrap{padding-block:.55rem}
.notice p{margin:0;max-width:none}
.notice a{color:var(--ink)}

/* hero */
.hero{background:var(--forest);color:#fff;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;padding-block:clamp(3rem,8vw,6rem)}
.hero h1{color:#fff}
.hero h1 span{display:block}
.hero h1 span:nth-child(2){color:var(--green)}
.hero .lede{font-size:1.2rem;color:#d9ebe0;max-width:46ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.hero .where{margin-top:1.6rem;font-size:.98rem;color:#b9d4c4}

/* fare ticket */
.ticket{background:#fff;color:var(--ink);border-radius:22px;padding:1.6rem;box-shadow:0 30px 60px -30px rgba(0,0,0,.55);transform:rotate(1.2deg)}
.ticket-label{font-size:.9rem;font-weight:650;color:var(--muted);margin:0 0 1.1rem}
.route{list-style:none;margin:0;padding:0;position:relative}
.route li{position:relative;padding-left:1.9rem;padding-bottom:1.2rem}
.route li:last-child{padding-bottom:0}
.route li::before{content:"";position:absolute;left:.2rem;top:.35rem;width:.8rem;height:.8rem;border-radius:50%;border:3px solid var(--green-deep);background:#fff}
.route li:last-child::before{background:var(--green-deep)}
.route li:first-child::after{content:"";position:absolute;left:.52rem;top:1.3rem;bottom:-.2rem;border-left:2px dashed var(--line)}
.route strong{display:block;font-family:var(--display);font-size:1.2rem;line-height:1.2}
.route small{color:var(--muted);font-size:.92rem}
.ticket-fare{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;border-top:2px dashed var(--line);margin-top:1.3rem;padding-top:1.1rem}
.ticket-fare .price{font-family:var(--display);font-weight:700;font-size:3.2rem;line-height:1;letter-spacing:-.04em}
.ticket-fare .meta{text-align:right;font-size:.92rem;color:var(--muted)}
.ticket-fare .meta b{display:block;color:var(--green-deep);font-size:1rem}
.ticket-note{font-size:.85rem;color:var(--muted);margin:1rem 0 0}

/* sections */
.section{padding-block:clamp(3.2rem,8vw,6rem)}
.section-mint{background:var(--mint)}
.section-dark{background:var(--ink);color:#fff}
.section-dark h2,.section-dark h3{color:#fff}
.section-dark p{color:#cfe0d6}
.section-head{margin-bottom:2.2rem}
.section-head p{font-size:1.15rem;color:var(--muted)}
.section-dark .section-head p{color:#cfe0d6}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;counter-reset:step}
.steps li{counter-increment:step;border-top:3px solid var(--ink);padding-top:1rem}
.steps li::before{content:counter(step);font-family:var(--display);font-weight:700;font-size:2.4rem;line-height:1;color:var(--green-deep);display:block;margin-bottom:.5rem}
.steps p{margin:0;color:var(--muted)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.facts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.facts li{padding:1rem 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:9.5rem 1fr;gap:1rem}
.facts b{font-family:var(--display);font-size:1.05rem}
.facts span{color:var(--muted)}
.section-dark .facts,.section-dark .facts li{border-color:#2c463a}
.section-dark .facts span{color:#cfe0d6}

.statement{background:#fff;color:var(--ink);border-radius:18px;padding:1.5rem;border:1px solid var(--line)}
.statement h3{margin-bottom:1rem}
.statement table{width:100%;border-collapse:collapse;font-size:1rem}
.statement td{padding:.6rem 0;border-bottom:1px solid var(--line)}
.statement td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.statement tr.total td{border-bottom:0;font-family:var(--display);font-size:1.3rem;font-weight:700;padding-top:.9rem}
.statement p{font-size:.85rem;color:var(--muted);margin:1rem 0 0}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem 2.5rem}
.grid-3 h3{margin-bottom:.35rem}
.grid-3 p{margin:0;color:var(--muted);font-size:1rem}
.section-dark .grid-3 p{color:#cfe0d6}

.areas{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:1.2rem 0 0;padding:0}
.areas li{border:2px solid var(--ink);border-radius:999px;padding:.4rem 1rem;font-weight:600}

/* forms */
.form-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(1.3rem,4vw,2.2rem)}
.field{margin-bottom:1.1rem}
.field label,.field legend{display:block;font-weight:650;margin-bottom:.35rem;font-size:1rem}
.field .hint{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:2px solid #b9cbbf;border-radius:12px;padding:.75rem .9rem}
input:focus,select:focus,textarea:focus{border-color:var(--green-deep)}
textarea{min-height:8rem;resize:vertical}
fieldset{border:0;margin:0;padding:0}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.choice label{position:relative;margin:0}
.choice input{position:absolute;opacity:0;inset:0}
.choice span{display:block;text-align:center;border:2px solid #b9cbbf;border-radius:12px;padding:.75rem;font-weight:650;cursor:pointer}
.choice input:checked+span{background:var(--forest);border-color:var(--forest);color:#fff}
.choice input:focus-visible+span{outline:3px solid var(--amber);outline-offset:3px}
.consent{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;font-size:.95rem;color:var(--muted)}
.consent input{width:1.25rem;height:1.25rem;margin-top:.2rem;accent-color:var(--green-deep)}
.consent label{font-weight:400;margin:0}
.hp{position:absolute;left:-9999px}
.form-status{margin:1rem 0 0;font-weight:600}
.form-status[data-state=ok]{color:var(--green-deep)}
.form-status[data-state=error]{color:#a32020}
.form-card .btn{width:100%;margin-top:.4rem}
.perks{list-style:none;padding:0;margin:1.5rem 0 0}
.perks li{padding:.9rem 0;border-top:1px solid var(--line)}
.perks b{display:block;font-family:var(--display)}
.perks span{color:var(--muted);font-size:.98rem}

/* faq */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.1rem 2.2rem 1.1rem 0;font-family:var(--display);font-weight:650;font-size:1.15rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.2rem;top:.85rem;font-size:1.6rem;font-weight:400;color:var(--green-deep)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{color:var(--muted);padding-bottom:1.1rem;margin:0}

/* footer */
.site-footer{background:var(--forest);color:#cfe0d6;padding-block:3rem 2rem;font-size:.98rem}
.site-footer a{color:#fff}
.site-footer .logo{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.site-footer h3{font-size:1rem;color:#fff;margin-bottom:.6rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:.4rem}
.legal{border-top:1px solid #2a5a45;margin-top:2.2rem;padding-top:1.4rem;font-size:.9rem}
.legal p{max-width:none;margin:0 0 .5rem}

/* document pages */
.doc{padding-block:clamp(2.5rem,6vw,4.5rem)}
.doc .wrap{max-width:760px}
.doc h1{font-size:clamp(2.2rem,6vw,3.4rem)}
.doc h2{font-size:1.5rem;margin-top:2.2rem}
.doc .updated{color:var(--muted)}
.doc table{width:100%;border-collapse:collapse;margin:1rem 0 1.5rem;font-size:.98rem}
.doc th,.doc td{text-align:left;vertical-align:top;padding:.6rem .6rem .6rem 0;border-bottom:1px solid var(--line)}
.doc address{font-style:normal;margin-bottom:1em}

@media (max-width:900px){
  .hero .wrap,.split{grid-template-columns:1fr}
  .steps,.grid-3{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .ticket{transform:none;max-width:26rem}
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:.5rem 1.25rem 1.25rem}
  .nav.open{display:flex}
  .nav a{padding:.8rem 0;border-bottom:1px solid var(--line)}
  .nav .btn{margin-top:1rem;border-bottom:0}
  .facts li{grid-template-columns:1fr;gap:.2rem}
}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.section-dark .statement h3{color:var(--ink)}
.section-dark .statement p{color:var(--muted)}
.after-split{margin-top:2rem}
