@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{--ink:#18241e;--paper:#f1eee4;--lime:#ddf588;--green:#273d32;--line:#d1d1c1;--mono:'IBM Plex Mono',monospace;--display:'Barlow Condensed','Arial Narrow',sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 'DM Sans',system-ui,sans-serif}
button,input,select,textarea{font:inherit}
a{color:inherit}
:focus-visible{outline:3px solid #91612a;outline-offset:3px}
.wrap,main{width:min(1160px,calc(100% - 48px));margin-inline:auto}
.masthead{border-bottom:1px solid var(--ink)}
nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:65px;font:600 .74rem var(--mono);text-transform:uppercase}
nav a{text-underline-offset:4px}
.brand{font:800 1.75rem/.9 var(--display);letter-spacing:.01em;text-decoration:none;white-space:nowrap}
.brand span{color:#55754e}
.hero{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:clamp(1.5rem,5vw,5rem);padding-block:clamp(2rem,5vw,4.8rem)}
.eyebrow{font:600 .72rem/1.4 var(--mono);letter-spacing:.055em;text-transform:uppercase;margin:0 0 .65rem}
.eyebrow span{display:inline-block;width:8px;height:8px;background:#527750;margin-right:.35rem;border-radius:50%}
h1,h2{font-family:var(--display);line-height:.87;margin:0}
h1{font-size:clamp(4.5rem,10vw,9.75rem);font-weight:800;letter-spacing:-.027em;text-transform:uppercase}
h1 em{font-style:normal;color:#48684b}
.intro{max-width:32ch;margin:1.3rem 0;font-size:1.05rem}
.action{display:inline-flex;gap:1.5rem;align-items:center;min-height:48px;background:var(--ink);color:var(--lime);padding:.65rem 1rem;font-weight:700;text-decoration:none}
.river-card{margin:0;background:#202e28;color:var(--paper);border:1px solid #17241e;box-shadow:8px 8px 0 #c8c9b6;min-width:0}
.river-card figcaption,.map-footer{display:flex;justify-content:space-between;gap:.5rem;padding:.85rem 1rem;font:600 .68rem/1.4 var(--mono);letter-spacing:.05em}
.river-card figcaption{border-bottom:1px solid #6c7a6c}
.map-footer{border-top:1px solid #6c7a6c;color:#d6ddca}
.river-layout{height:clamp(290px,32vw,415px);position:relative;overflow:hidden;isolation:isolate;background:repeating-linear-gradient(24deg,transparent 0 29px,#c3d1ab18 30px 31px,transparent 32px 55px),repeating-linear-gradient(112deg,transparent 0 19px,#c3d1ab20 20px 21px,transparent 22px 40px)}
.river{position:absolute;inset:-15% 36% -20% 36%;transform:rotate(-14deg);border-inline:2px solid #82968f;background:repeating-linear-gradient(115deg,#3a5758 0 9px,#3e5c5d 10px 11px,#3a5758 12px 19px)}
.route-line{position:absolute;inset:23% 20% 19% 26%;border:2px dashed #ddf588af;border-radius:30% 22% 36% 28%;transform:rotate(12deg)}
.map-stop{position:absolute;display:grid;gap:.1rem;padding:.48rem .64rem;background:#1e3028;border-left:3px solid var(--lime);box-shadow:0 2px 12px #101b1666;max-width:50%}
.map-stop small,.bridge{font:600 clamp(.57rem,1vw,.68rem) var(--mono);color:var(--lime)}
.map-stop strong{font:700 clamp(1rem,2vw,1.65rem)/1 var(--display)}
.map-stop span{font:.74rem var(--mono)}
.west{top:13%;left:7%}.east{top:44%;right:6%}.finish{bottom:9%;left:9%;background:var(--lime);color:var(--ink)}
.finish small{color:var(--green)}
.bridge{position:absolute;bottom:32%;left:9%;padding:.2rem .4rem;background:#1e3028;color:#e7e9d9}
.offer-wrap{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;border-block:1px solid var(--ink);padding:1.25rem 0}
h2{font-size:clamp(2.2rem,4vw,3.4rem);font-weight:700}
.offer-wrap p:last-child{margin:.55rem 0 0;max-width:64ch}
.price{text-align:right;flex-shrink:0}
.price strong{display:block;font:800 3rem/.9 var(--display)}
.price span,.optional{font-size:.8rem;font-weight:400}
main{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;padding-block:1.5rem 3rem}
.panel{border:1px solid var(--line);background:#faf8ee;padding:clamp(1rem,3vw,1.75rem);min-width:0}
#preview{border-top:6px solid #526f4c;scroll-margin-top:1rem}
#planner{scroll-margin-top:1rem}
h3{margin:0;font-size:1rem}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.full{grid-column:1/-1}
label{display:block;font-size:.85rem;font-weight:700;min-width:0}
input,select,textarea{display:block;width:100%;min-width:0;margin-top:.32rem;border:1px solid #aeb6a6;border-radius:3px;padding:.55rem;background:#fffef8;color:inherit;min-height:44px;font-size:1rem}
fieldset{border:0;border-top:1px solid var(--line);padding:1rem 0 0;margin:1.1rem 0 0;min-width:0}
legend{padding-right:.5rem;font-weight:700}
button{cursor:pointer;background:var(--ink);color:var(--lime);border:1px solid var(--ink);min-height:44px;padding:.6rem .85rem;font-weight:700}
.secondary{background:transparent;color:var(--ink);border-color:#aeb6a6}
.toolbar{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}
small,.muted{color:#455c4c}
.card{border-top:1px solid var(--line);padding:.9rem 0;margin-top:.65rem}
.card p{margin:.3rem 0 0;overflow-wrap:anywhere}
.time{font:700 1.75rem/1.1 var(--display)}
.status{padding:.75rem;background:#e1ebc3;border-left:3px solid #627e50}
.tight{background:#f6e4cf;border-color:#a25d29}
.crew-note{border-left:3px solid #798e61;padding-left:.65rem}
.error{color:#8b2917}
textarea{min-height:11rem}
[hidden]{display:none!important}
@media(max-width:740px){.wrap,main{width:calc(100% - 32px)}.hero,main{grid-template-columns:1fr}.hero{padding-top:2rem}.hero-copy{max-width:34rem}.river-card{margin-right:7px}.offer-wrap{align-items:start}.map-stop strong{font-size:1.4rem}}
@media(max-width:380px){nav{font-size:.66rem}.brand{font-size:1.45rem}.offer-wrap{gap:.6rem}.price strong{font-size:2.5rem}.river-card figcaption,.map-footer{font-size:.58rem}}
@media print{.masthead,.hero,.offer-wrap,form,.toolbar,.muted,#feedback,#fallback{display:none!important}main{display:block;margin:0;padding:0;width:100%}.panel,#preview{border:none;padding:0;background:white}}
