.route-page{min-height:100dvh}
.route-main{width:min(78rem,calc(100% - 2 * var(--gutter)));margin:0 auto;padding:8.2rem 0 5rem}
.route-intro{max-width:52rem;margin-bottom:clamp(2rem,5vw,4rem)}
.route-intro h1{max-width:15ch;margin:.45rem 0 1rem;font:400 clamp(2.9rem,6vw,5.8rem)/.96 var(--serif)}
.route-intro>p:last-child{max-width:44rem;margin:0;font-size:1.05rem}
.route-shell{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(17rem,22rem);min-height:35rem;border:1px solid rgba(28,43,46,.22);background:var(--paper-surface);box-shadow:0 1.1rem 0 rgba(18,82,91,.08);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,18px 100%,0 calc(100% - 18px))}
.route-stage{display:grid;grid-template-rows:auto 1fr auto;min-width:0;padding:clamp(1.35rem,4vw,3.4rem)}
.route-progress{display:flex;align-items:center;gap:.65rem;margin-bottom:2.2rem;color:var(--petrol);font:500 .72rem/1.2 var(--mono)}
.route-progress-track{display:flex;flex:1;gap:.35rem}
.route-progress-track i{display:block;width:.62rem;aspect-ratio:1;transform:rotate(45deg);border:1px solid rgba(18,82,91,.4);background:transparent}
.route-progress-track i.is-done{background:var(--crimson);border-color:var(--crimson)}
.route-question{align-self:center;max-width:47rem}
.route-kicker{margin:0 0 .55rem;color:var(--petrol);font:500 .72rem/1.3 var(--mono);text-transform:uppercase}
.route-question h2{max-width:17ch;margin:0 0 .8rem;font:400 clamp(2.25rem,4.7vw,4.3rem)/1 var(--serif)}
.route-question>.route-help{max-width:42rem;margin:0 0 1.65rem;color:rgba(28,43,46,.78)}
.route-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;border:0;padding:0;margin:0}
.route-choice{position:relative;display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;min-height:5.4rem;padding:1rem;background:rgba(255,255,255,.44);border:1px solid rgba(28,43,46,.24);cursor:pointer;transition:transform .2s,border-color .2s,background .2s}
.route-choice:hover{transform:translateY(-2px);border-color:var(--petrol)}
.route-choice:has(input:checked){border-color:var(--crimson);background:rgba(184,50,79,.07);box-shadow:inset .25rem 0 0 var(--crimson)}
.route-choice input{margin:.28rem 0 0;accent-color:var(--crimson)}
.route-choice strong{display:block;font-size:.95rem}.route-choice small{display:block;margin-top:.2rem;color:rgba(28,43,46,.7);line-height:1.45}
.route-pilot-note{margin:0;padding:1rem;border-left:.25rem solid var(--crimson);background:rgba(184,50,79,.07);font-size:.9rem;line-height:1.55}.route-pilot-note strong{display:block;margin-bottom:.15rem}
.route-fields{display:grid;gap:1rem;max-width:38rem}
.route-field{display:grid;gap:.38rem}.route-field>span{font:500 .72rem/1.3 var(--mono);color:var(--petrol);text-transform:uppercase}
.route-field input,.route-field textarea,.route-field select{width:100%;font:500 1rem/1.45 var(--sans);color:var(--ink);background:#fffdf8;border:1px solid rgba(28,43,46,.3);border-radius:3px;padding:.9rem 1rem}
.route-field textarea{resize:vertical;min-height:7rem}.route-field input:focus,.route-field textarea:focus,.route-field select:focus{outline:2px solid var(--crimson);outline-offset:2px}
.route-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.route-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.2rem;padding-top:1.2rem;border-top:1px solid rgba(28,43,46,.18)}
.route-actions-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.route-back,.route-skip,.route-reset,.route-new{appearance:none;border:0;background:transparent;color:var(--petrol);font:700 .88rem/1.2 var(--sans);text-decoration:underline;text-underline-offset:.2rem;cursor:pointer;padding:.6rem}
.route-next{appearance:none;border:0;cursor:pointer}.route-error{margin:.75rem 0 0;color:#8f1f38;font-weight:700}.route-error:empty{display:none}
.route-summary{position:relative;padding:clamp(1.3rem,3vw,2.2rem);background:var(--deep);color:#fffdf8;border-left:1px solid rgba(28,43,46,.25)}
.route-summary::before{content:"";position:absolute;left:-.45rem;top:2.4rem;width:.9rem;aspect-ratio:1;background:var(--amber);transform:rotate(45deg)}
.route-summary>span{display:block;margin-bottom:1rem;color:#b9d7d9;font:500 .7rem/1.3 var(--mono);text-transform:uppercase}
.route-summary h3{margin:0 0 .45rem;font:400 2rem/1.05 var(--serif)}
.route-summary p{margin:.3rem 0 1.2rem;color:rgba(255,253,248,.8);font-size:.9rem}
.route-summary dl{display:grid;gap:.8rem;margin:0}.route-summary dl div{padding-top:.75rem;border-top:1px solid rgba(255,255,255,.18)}.route-summary dt{font:500 .66rem/1.3 var(--mono);text-transform:uppercase;color:#b9d7d9}.route-summary dd{margin:.2rem 0 0;font-size:.9rem}.route-summary .route-price{font:400 1.75rem/1.1 var(--serif);color:#fff}
.route-review{display:grid;gap:.75rem}.route-review-row{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(28,43,46,.18)}.route-review-row span{display:block;color:var(--petrol);font:500 .68rem/1.3 var(--mono);text-transform:uppercase}.route-review-row p{margin:.2rem 0 0}.route-edit{align-self:center;border:0;background:transparent;color:var(--crimson);font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:.2rem}
.route-terms{margin:1rem 0 0;font-size:.82rem;color:rgba(28,43,46,.74)}
.route-consent{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.65rem;font-weight:650}.route-consent input{margin:.3rem 0 0;accent-color:var(--crimson)}
.route-complete{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(17rem,.8fr);min-height:35rem}.route-complete-main{padding:clamp(1.7rem,5vw,4.5rem)}.route-complete-main h2{max-width:14ch;margin:.4rem 0 .8rem;font:400 clamp(2.7rem,6vw,5rem)/.98 var(--serif)}.route-complete-main>p{max-width:43rem}.route-complete-status{display:inline-flex;padding:.45rem .7rem;background:rgba(18,82,91,.1);color:var(--petrol);font:700 .74rem/1.2 var(--mono)}
.route-next-steps{display:grid;gap:.8rem;margin:2rem 0 0;padding:0;list-style:none;counter-reset:route}.route-next-steps li{counter-increment:route;display:grid;grid-template-columns:2rem 1fr;gap:.75rem;align-items:start}.route-next-steps li::before{content:counter(route);display:grid;place-items:center;width:1.8rem;aspect-ratio:1;background:var(--amber);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);font:700 .7rem/1 var(--mono)}
.route-complete-side{padding:clamp(1.5rem,4vw,3rem);background:rgba(18,82,91,.08);border-left:1px solid rgba(28,43,46,.18)}.route-complete-side h3{margin:0 0 1rem;font:400 1.8rem/1.1 var(--serif)}.route-complete-actions{display:grid;gap:.65rem}.route-complete-actions a,.route-complete-actions button{justify-content:center;width:100%}
.route-noscript{max-width:50rem;margin:2rem 0;padding:2rem}.route-noscript h2{font:400 2.5rem/1 var(--serif)}.route-loading{grid-column:1/-1;display:grid;place-items:center;min-height:30rem}
@media (max-width:820px){.route-main{padding-top:6.8rem}.route-shell{grid-template-columns:1fr;clip-path:none}.route-summary{border-left:0;border-top:1px solid rgba(28,43,46,.25)}.route-summary::before{left:1.5rem;top:-.45rem}.route-stage{min-height:36rem}.route-complete{grid-template-columns:1fr}.route-complete-side{border-left:0;border-top:1px solid rgba(28,43,46,.18)}}
@media (max-width:560px){.route-options,.route-inline{grid-template-columns:1fr}.route-actions{align-items:flex-end}.route-actions-group{justify-content:flex-end}.route-choice{min-height:0}.route-intro h1{font-size:clamp(2.65rem,14vw,4rem)}}
@media (prefers-reduced-motion:reduce){.route-choice{transition:none}.route-choice:hover{transform:none}}
