
:root{
 --green:#78A22F; --green-d:#5e8222; --ink:#1c1e22; --char:#3A3B40;
 --paper:#f6f7f4; --white:#fff; --line:#e4e6e0;
 --teal:#1f7a78;
 --ff-d:'Archivo',system-ui,sans-serif; --ff-b:'Inter',system-ui,sans-serif;
 --rad:14px; --shadow:0 10px 30px rgba(20,24,18,.12);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--ff-b);color:var(--ink);background:var(--paper);line-height:1.6}
img{max-width:100%}
a{color:var(--green-d);text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:var(--ff-d);line-height:1.08;letter-spacing:-.015em}
h1{font-size:clamp(2.4rem,5.2vw,4.2rem);font-weight:900}
h2{font-size:clamp(1.7rem,3.2vw,2.6rem);font-weight:800;margin-bottom:.5rem}
h3{font-weight:800}
.eyebrow{display:inline-block;font-family:var(--ff-d);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-d);margin-bottom:.7rem}
.eyebrow.light{color:#cfe49f}
.lead{max-width:640px;color:#555;margin-bottom:2rem}
.center{text-align:center;margin-top:2rem}
/* buttons */
.btn{display:inline-block;font-family:var(--ff-d);font-weight:800;letter-spacing:.02em;padding:.8rem 1.6rem;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:.2s;font-size:.95rem}
.btn-book{background:var(--green);color:#fff !important}
.btn-book:hover{background:var(--green-d);transform:translateY(-2px)}
.btn-glass{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.65);color:#fff;backdrop-filter:blur(6px)}
.btn-glass:hover{background:rgba(255,255,255,.28)}
.btn-ghost{border-color:var(--char);color:var(--char)}
.btn-ghost:hover{background:var(--char);color:#fff}
.btn-ghost-dark{border-color:var(--char);color:var(--char)}
.btn-ghost-dark:hover{background:var(--char);color:#fff}
.btn-lg{padding:1rem 2.2rem;font-size:1.05rem}
.btn-block{display:block;text-align:center;margin-top:.7rem}
/* topbar */
.topbar{background:var(--char);color:#cfd2cc;font-size:.8rem}
.topbar a{color:#fff}
.topbar-in{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 24px;flex-wrap:wrap}
.topbar-right{display:flex;gap:1.2rem}
/* header */
header{position:sticky;top:0;z-index:90;background:rgba(28,30,34,.92);backdrop-filter:blur(10px);transition:.25s}
header.scrolled{box-shadow:0 4px 24px rgba(0,0,0,.35)}
.header-in{display:flex;align-items:center;gap:1.4rem;padding:.6rem 24px}
.logo img{height:52px;display:block}
#mainnav{margin-left:auto}
#mainnav > ul{display:flex;list-style:none;gap:1.25rem;flex-wrap:nowrap}
#mainnav a{color:#fff;font-weight:600;font-size:.92rem;padding:.6rem 0;display:inline-block;white-space:nowrap}
#mainnav a:hover{color:#b6d77a}
.has-drop{position:relative}
#mainnav ul.drop{display:none;position:absolute;top:100%;left:-14px;background:#fff;min-width:280px;border-radius:12px;box-shadow:var(--shadow);padding:.5rem;flex-direction:column;gap:0}
.drop li{list-style:none}
.drop a{color:var(--ink) !important;padding:.55rem .9rem;border-radius:8px;display:block;width:100%}
.drop a:hover{background:var(--paper);color:var(--green-d) !important}
#mainnav .has-drop:hover ul.drop,#mainnav .has-drop:focus-within ul.drop{display:flex}
.header-cta{display:flex;align-items:center;gap:1.1rem;flex-shrink:0}
.header-cta .btn{white-space:nowrap;flex-shrink:0;line-height:1.2}
@media(max-width:1200px){.header-cta .phone-link{display:none}}
@media(max-width:1060px){#mainnav{display:none}#burger{display:block}}
.phone-link{color:#fff;font-weight:700;font-size:.9rem;white-space:nowrap}
#burger{display:none;background:none;border:0;width:40px;height:34px;position:relative}
#burger span{position:absolute;left:6px;right:6px;height:3px;background:#fff;border-radius:2px;transition:.25s}
#burger span:nth-child(1){top:6px}#burger span:nth-child(2){top:15px}#burger span:nth-child(3){top:24px}
#mobilemenu{display:none;flex-direction:column;gap:.2rem;background:var(--char);padding:1rem 24px 1.4rem;position:sticky;top:64px;z-index:89}
#mobilemenu a{color:#fff;padding:.55rem 0;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08)}
#mobilemenu .btn{text-align:center;margin-top:.8rem;border-bottom:0}
#mobilemenu.open{display:flex}
/* hero video */
.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero .hero-shade,.hero .hero-in,.hero .hero-scroll{z-index:2}
@media (prefers-reduced-motion:reduce){.hero-vid{display:none}}
/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;background-size:cover;background-position:center;color:#fff}
.hero-trip{min-height:62vh}
.hero-short{min-height:42vh}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,18,14,.55) 0%,rgba(15,18,14,.18) 45%,rgba(15,18,14,.65) 100%)}
.hero-in{position:relative;z-index:2;max-width:820px;animation:rise .8s ease both}
.hero p{font-size:1.15rem;max-width:560px;margin:.9rem 0 1.6rem;color:#eef1ea}
.hero h1 strong{color:#b6d77a}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.hero-scroll{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;opacity:.7;animation:bob 1.6s infinite}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1}}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
/* trust strip */
.trust-strip{background:var(--char);color:#e8eadf}
.trust-in{display:flex;align-items:center;justify-content:center;gap:1.4rem;padding:.85rem 24px;flex-wrap:wrap;font-size:.88rem;font-weight:600}
.trust-in i{width:1px;height:16px;background:rgba(255,255,255,.25)}
/* sections */
section{padding:4.5rem 0}
.experiences{background:var(--paper)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.6rem;margin-top:2rem}
.card{background:#fff;border-radius:var(--rad);overflow:hidden;box-shadow:0 2px 14px rgba(20,24,18,.07);display:flex;flex-direction:column;transition:.25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-img{display:block;aspect-ratio:3/2;background-size:cover;background-position:center;position:relative;transition:.4s}
.card:hover .card-img{filter:saturate(1.1)}
.chip{position:absolute;top:12px;left:12px;background:rgba(28,30,34,.78);color:#fff;font-size:.75rem;font-weight:700;padding:.3rem .7rem;border-radius:999px;backdrop-filter:blur(4px)}
.card-body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.card-tag{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.card h3{font-size:1.35rem}
.card h3 a{color:var(--ink)}
.ticks{list-style:none;display:flex;flex-direction:column;gap:.35rem;font-size:.92rem;color:#444}
.ticks li::before{content:"✓";color:var(--green);font-weight:800;margin-right:.5rem}
.ticks.big{font-size:1rem;gap:.5rem;margin:.4rem 0 1rem}
.price{margin-top:auto;padding-top:.5rem}
.from{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#777}
.amt{font-family:var(--ff-d);font-weight:900;font-size:1.5rem;color:var(--ink)}
.pp{font-size:.82rem;color:#777}
.card-cta{display:flex;gap:.6rem;margin-top:.5rem}
.card-cta .btn{padding:.65rem 1.2rem;font-size:.88rem}
/* picker */
.picker{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:0 0 .4rem}
.picker-label{font-size:.88rem;font-weight:600;color:#666;margin-right:.2rem}
.pchip{font-family:var(--ff-d);font-weight:700;font-size:.85rem;padding:.5rem 1.1rem;border-radius:999px;border:1.5px solid #c9cdc2;background:#fff;color:var(--char);cursor:pointer;transition:.18s}
.pchip:hover{border-color:var(--green)}
.pchip.active{background:var(--char);border-color:var(--char);color:#fff}
.card.hide{display:none}
.chip-save{left:auto;right:12px;background:var(--green);max-width:46%;text-align:center;line-height:1.25;padding:.35rem .7rem}
.hero-proof{margin-top:1.4rem;font-weight:600;font-size:.95rem;color:#eef1ea}
.hero-proof .stars{color:#f5b942;letter-spacing:.15em;margin-right:.4rem}
/* steps */
.steps{background:#fff;border-top:1px solid var(--line)}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:1.8rem}
.step{background:var(--paper);border-radius:var(--rad);padding:1.6rem 1.6rem 1.5rem;position:relative}
.step strong{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;background:var(--green);color:#fff;border-radius:50%;font-family:var(--ff-d);font-weight:900;font-size:1.2rem;margin-bottom:.9rem}
.step h3{font-size:1.1rem;margin-bottom:.3rem}
.step p{font-size:.92rem;color:#555}
@media(max-width:840px){.steps-grid{grid-template-columns:1fr}}
/* why */
.why{background:#fff}
.why-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.why-img{border-radius:var(--rad);min-height:440px;background-size:cover;background-position:center;box-shadow:var(--shadow)}
.stats{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1.8rem}
.stats strong{display:block;font-family:var(--ff-d);font-weight:900;font-size:2rem;color:var(--green-d)}
.stats span{font-size:.88rem;color:#666}
/* banner */
.banner{position:relative;background-size:cover;background-position:center;background-attachment:fixed;color:#fff;text-align:center;padding:7rem 0}
.banner-shade{position:absolute;inset:0;background:rgba(12,16,10,.45)}
.banner-in{position:relative;z-index:2}
.banner h2{margin:0 0 1.4rem}
/* reviews */
.reviews{background:var(--char);color:#fff}
.reviews .eyebrow{color:#b6d77a}
.reviews .lead{color:#c9ccc4}
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.4rem;margin-top:1.6rem}
.review{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--rad);padding:1.4rem 1.5rem}
.stars{color:#f5b942;letter-spacing:.18em;margin-bottom:.6rem}
.review p{font-size:.97rem;color:#eef0e9;margin-bottom:.9rem}
.who{font-weight:700;display:block}
.trip{font-size:.8rem;color:#9aa093}
.reviews .btn-ghost-dark{border-color:#fff;color:#fff}
.reviews .btn-ghost-dark:hover{background:#fff;color:var(--char)}
/* conservation */
.conservation{background:#fff}
.cons-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem;align-items:center}
.cons-img{border-radius:var(--rad);min-height:420px;background-size:cover;background-position:center;box-shadow:var(--shadow)}
/* factbar */
.factbar{background:#fff;border-bottom:1px solid var(--line)}
.fact-in{display:flex;align-items:center;justify-content:center;gap:1.6rem;padding:1rem 24px;flex-wrap:wrap;font-weight:600;font-size:.95rem}
.fact-in i{width:1px;height:18px;background:var(--line)}
.fact-price strong{font-family:var(--ff-d);font-size:1.15rem}
/* trip pages */
.trip-main{background:var(--paper)}
.trip-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:3rem;align-items:start}
.trip-copy p{margin-bottom:1rem;color:#3c3f38}
.ticks-h{margin:1.8rem 0 .8rem;font-size:1.15rem}
.sched-row{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.9rem 1.1rem;margin-bottom:.7rem}
.sched-row h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--green-d);margin-bottom:.15rem}
.trip-actions{display:flex;gap:.8rem;margin-top:1.6rem;flex-wrap:wrap}
.book-card{position:sticky;top:96px;background:#fff;border-radius:var(--rad);box-shadow:var(--shadow);padding:1.6rem}
.book-card h3{margin-bottom:.6rem}
.bc-list{list-style:none;margin:.8rem 0 1rem;display:flex;flex-direction:column;gap:.4rem;font-size:.92rem;color:#555}
.bc-list li::before{content:"•";color:var(--green);margin-right:.5rem;font-weight:900}
.bc-note{font-size:.8rem;color:#888;margin-top:.9rem}
.map{width:100%;height:300px;border:0;border-radius:10px;margin-bottom:.8rem}
/* gallery */
.gallery{background:#fff}
.g-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:1.6rem}
.g-item{aspect-ratio:4/3;background-size:cover;background-position:center;border-radius:10px;display:block;overflow:hidden;transition:.25s}
.g-item img{width:100%;height:100%;object-fit:cover;display:block}
.g-item:hover{transform:scale(1.02);filter:saturate(1.15)}
/* faqs */
.faq-wrap{max-width:820px}
.faq{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:.8rem;overflow:hidden}
.faq summary{cursor:pointer;font-family:var(--ff-d);font-weight:700;padding:1.05rem 1.3rem;list-style:none;position:relative}
.faq summary::after{content:"+";position:absolute;right:1.2rem;font-size:1.3rem;color:var(--green-d);transition:.2s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 1.3rem 1.2rem;color:#4a4d45}
.faq-more{margin-top:2.4rem;background:#fff;border-radius:var(--rad);padding:2rem;box-shadow:var(--shadow)}
.faq-more p{margin:.6rem 0 1.2rem}
/* contact */
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.4rem 0}
.ccard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.2rem 1.3rem}
.ccard h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--green-d);margin-bottom:.3rem}
.big-link{font-family:var(--ff-d);font-weight:800;font-size:1.15rem;color:var(--ink)}
/* newsletter + footer */
.newsletter{background:var(--green);color:#fff;padding:3rem 0}
.nl-in{display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.nl-in h3{font-size:1.5rem}
.nl-in p{color:#eef4df;max-width:480px}
.nl-in form{display:flex;gap:.6rem;flex-wrap:wrap}
.nl-in input{padding:.85rem 1.2rem;border-radius:999px;border:0;min-width:280px;font-size:.95rem}
.nl-in .btn-book{background:var(--char)}
.nl-in .btn-book:hover{background:#222}
.nl-done{font-weight:700}
footer{background:var(--ink);color:#b9bdb3;font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:2.4rem;padding:3.5rem 24px 2rem}
.foot-logo{height:56px;margin-bottom:1rem}
footer h4{color:#fff;margin-bottom:.9rem;font-size:1rem}
footer ul{list-style:none;display:flex;flex-direction:column;gap:.45rem}
footer a{color:#b9bdb3}
footer a:hover{color:#b6d77a}
.badges{display:flex;gap:1rem;margin-top:1.2rem;align-items:center}
.badges img{height:46px;width:auto}
.socials{display:flex;gap:1rem;margin-top:1.2rem;flex-wrap:wrap}
.socials a{font-weight:600}
.foot-base{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.08);padding:1.2rem 24px;flex-wrap:wrap;gap:.6rem}
/* mobile book bar */
.mobile-book{display:none;position:fixed;bottom:0;left:0;right:0;z-index:95;padding:.7rem .9rem;background:rgba(28,30,34,.94);backdrop-filter:blur(8px)}
.mobile-book .btn{display:block;text-align:center}
/* watch / video */
.watch{background:linear-gradient(135deg,#1c1e22 0%,#2a3320 100%);color:#fff;overflow:hidden}
.watch-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.watch h2{font-size:clamp(2rem,4vw,3.2rem)}
.watch p{color:#d7dbcf;max-width:520px;margin:1rem 0 1.8rem}
.phone{position:relative;width:min(330px,78vw);aspect-ratio:9/16;margin:0 auto;border-radius:38px;border:9px solid #0c0d0f;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08);overflow:hidden;background:#000}
.phone video{width:100%;height:100%;object-fit:cover;display:block}
#sndbtn{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(12,13,15,.72);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:.5rem 1.1rem;font-family:var(--ff-d);font-weight:700;font-size:.82rem;cursor:pointer;backdrop-filter:blur(6px);transition:.2s}
#sndbtn:hover{background:rgba(120,162,47,.85)}
@media(max-width:980px){.watch-grid{grid-template-columns:1fr}}
/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:.7s cubic-bezier(.2,.7,.3,1)}
.reveal.vis{opacity:1;transform:none}
/* booking modal */
#bookmodal{position:fixed;inset:0;background:rgba(12,14,10,.7);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:300;padding:1rem}
#bookmodal.open{display:flex}
.bm-panel{background:#fff;border-radius:18px;max-width:440px;width:100%;padding:1.8rem;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.4);max-height:92vh;overflow:auto;animation:rise .35s ease both}
.bm-close{position:absolute;top:12px;right:16px;background:none;border:0;font-size:1.8rem;color:#999;cursor:pointer;line-height:1}
.bm-close:hover{color:var(--ink)}
.bm-panel h3{font-size:1.4rem;margin-bottom:.3rem}
.bm-trust{font-size:.8rem;color:#666;margin-bottom:1rem}
.bm-trust .stars{color:#f5b942;letter-spacing:.1em}
.bm-panel label{display:block;font-weight:600;font-size:.88rem;margin-bottom:.9rem}
.bm-panel select,.bm-panel input[type=date]{display:block;width:100%;margin-top:.3rem;padding:.7rem .9rem;border:1.5px solid var(--line);border-radius:10px;font-size:.95rem;font-family:var(--ff-b);background:#fff}
.bm-pax{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.bm-pax>div{border:1.5px solid var(--line);border-radius:10px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.3rem}
.bm-pax span{font-size:.8rem;font-weight:600;color:#666}
.stepper{display:flex;align-items:center;gap:.9rem}
.stepper button{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--green);background:#fff;color:var(--green-d);font-size:1.1rem;font-weight:800;cursor:pointer;line-height:1}
.stepper button:hover{background:var(--green);color:#fff}
.stepper b{font-family:var(--ff-d);font-size:1.1rem;min-width:1.2em;text-align:center}
.bm-total{display:flex;justify-content:space-between;align-items:center;background:var(--paper);border-radius:10px;padding:.8rem 1rem;font-weight:600;margin-bottom:1rem}
.bm-total strong{font-family:var(--ff-d);font-size:1.3rem}
/* sustainability */
.sus-intro{max-width:840px}
.lead-wide{color:#555;margin-bottom:2rem}
.sus-stats{grid-template-columns:repeat(4,1fr);margin-top:1rem}
.partners-band{background:var(--paper)}
.partners{display:flex;gap:1rem;flex-wrap:wrap;margin:1.4rem 0 1rem}
.partners a{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:.65rem 1.4rem;font-family:var(--ff-d);font-weight:700;font-size:.9rem;color:var(--char);transition:.2s}
.partners a:hover{border-color:var(--green);color:var(--green-d)}
.partners-note{color:#777;font-size:.9rem}
@media(max-width:840px){.sus-stats{grid-template-columns:1fr 1fr}}
/* availability calendar */
.bm-callabel{font-weight:600;font-size:.88rem;margin-bottom:.4rem}
.cal{border:1.5px solid var(--line);border-radius:12px;padding:.8rem;margin-bottom:.6rem}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.cal-head strong{font-family:var(--ff-d);font-size:.95rem}
.cal-head button{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--line);background:#fff;font-size:1.1rem;cursor:pointer;line-height:1}
.cal-head button:hover:not(:disabled){border-color:var(--green)}
.cal-head button:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font-size:.68rem;font-weight:700;color:#999;padding:.2rem 0}
.cal-d{aspect-ratio:1;border:0;border-radius:8px;font-family:var(--ff-b);font-size:.85rem;font-weight:600;cursor:pointer;transition:.15s}
.cal-d.open{background:#e3efd2;color:#3c5a12}
.cal-d.open:hover{background:var(--green);color:#fff}
.cal-d.low{background:#fdecc8;color:#8a5b00;position:relative}
.cal-d.low::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#e8a013}
.cal-d.low:hover{background:#f5b942;color:#231f10}
.cal-d.full{background:#eceeea;color:#b6b9b2;text-decoration:line-through;cursor:default}
.cal-d.past{background:transparent;color:#ccc;cursor:default}
.cal-d.sel{outline:2.5px solid var(--green-d);background:var(--green);color:#fff}
.cal-d.low.sel{background:#f5b942;color:#231f10;outline-color:#c98a00}
.cal-legend{display:flex;gap:1rem;margin-top:.6rem;font-size:.72rem;color:#666;flex-wrap:wrap}
.cal-legend .lg{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:.32rem;vertical-align:-1px}
.lg-open{background:#e3efd2}.lg-low{background:#fdecc8}.lg-full{background:#eceeea}
.bm-scarcity{display:none;background:#fff7e6;border:1px solid #f0d9a6;color:#7a5200;border-radius:10px;padding:.6rem .9rem;font-size:.85rem;margin-bottom:1rem}
.bm-demo-note{opacity:.65}
.btn-disabled{opacity:.45;pointer-events:none}
/* trip faq */
.trip-faq{background:#fff;border-top:1px solid var(--line)}
.faq-link{margin-top:1.2rem;color:#666}
.chip-pop{left:auto;right:12px;background:#f5b942;color:#231f10}
.chip-new{left:auto;right:12px;background:#1f7a78;color:#fff;letter-spacing:.1em}
.amt-sm{font-size:1.1rem}
/* trip map */
.trip-map{background:var(--paper)}
.map-lg{height:420px;margin-top:1.4rem;box-shadow:var(--shadow)}
.map-note{margin-top:.8rem;color:#777;font-size:.9rem}
/* lightbox */
#lb{position:fixed;inset:0;background:rgba(10,12,9,.92);display:none;align-items:center;justify-content:center;z-index:200;cursor:zoom-out}
#lb.open{display:flex}
#lb img{max-width:92vw;max-height:88vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
/* responsive */
@media(max-width:980px){
 .why-grid,.cons-grid,.trip-grid{grid-template-columns:1fr}
 .book-card{position:static}
 .g-grid{grid-template-columns:repeat(2,1fr)}
 .foot-grid{grid-template-columns:1fr 1fr}
 .banner{background-attachment:scroll}
}
@media(max-width:840px){
 #mainnav{display:none}
 #burger{display:block}
 .mobile-book{display:block}
 footer{padding-bottom:70px}
 .hero{min-height:72vh}
 .contact-cards{grid-template-columns:1fr}
 .topbar-in{justify-content:center}
}

/* ============================================================
   REVIEWER UPDATES — accessibility, contrast & legibility
   (tuned for the 45+/55+ audience; conversion-focused)
   ============================================================ */

/* 1. Primary CTA contrast — darken green so white label meets AA */
.btn-book{background:var(--green-d) !important}
.btn-book:hover{background:#4f6e1d}
.nl-in .btn-book{background:var(--char) !important}

/* 2. Visible keyboard focus on every interactive element */
a:focus-visible,.btn:focus-visible,button:focus-visible,
select:focus-visible,summary:focus-visible,input:focus-visible,
.cal-d:focus-visible,.pchip:focus-visible,.g-item:focus-visible{
 outline:3px solid #1f7a78;outline-offset:2px;border-radius:6px}

/* 3. Lift secondary/small text for older eyes */
body{font-size:1.02rem}
.lead,.lead-wide,.step p{color:#3c3f38}
.from,.pp{color:#555;font-size:.9rem}
.bc-note{color:#555;font-size:.88rem}
.bc-list{color:#3c3f38}
.ticks{color:#33362f}
.stats span,.map-note,.partners-note,.faq-link,.picker-label{color:#555}
.cal-legend{color:#555}
.trip{color:#aeb3a6}

/* 4. Hero — strengthen the headline highlight & shade */
.hero h1 strong{color:#dff0a6}
.eyebrow.light{color:#e6f3c4}
.hero-shade{background:linear-gradient(180deg,rgba(15,18,14,.62) 0%,rgba(15,18,14,.3) 45%,rgba(15,18,14,.7) 100%)}

/* 5. Respect reduced-motion */
@media (prefers-reduced-motion:reduce){
 .reveal{opacity:1 !important;transform:none !important;transition:none !important}
 .hero-in,.hero-scroll,.bm-panel{animation:none !important}
 .card:hover,.g-item:hover,.btn-book:hover{transform:none}
}

/* 6. Keep tap-to-call visible on mobile */
@media(max-width:840px){
 .header-cta .phone-link{display:none}
 .topbar-right{display:flex}
 .mobile-book .btn{min-height:48px;display:flex;align-items:center;justify-content:center}
}

/* 7. Topbar legibility */
.topbar{color:#e8eadf}
.nl-in p{color:#f3f8e8}

/* 8. Calendar — stronger "nearly full" state + cue */
.cal-d.low{background:#f7d98a;color:#6b4500}
.cal-d.low::after{width:7px;height:7px;background:#a9690a}

/* 9. Make Book Now dominant over secondary card button */
.card-cta .btn-book{flex:1.6}
.card-cta .btn-ghost{flex:1}

/* ---- new components used by the content updates ---- */

/* cancellation reassurance line (book cards & modal) */
.bc-cancel{margin-top:.9rem;padding:.7rem .85rem;background:#eef4e3;
 border-left:3px solid var(--green-d);border-radius:8px;
 font-size:.92rem;color:#33362f;line-height:1.45}
.bc-cancel strong{color:var(--char)}

/* fitness / suitability reassurance note */
.fit-note{margin:.4rem 0 .2rem;font-size:.95rem;color:#33362f;
 background:#f3f6ee;border-radius:8px;padding:.6rem .8rem}
.fit-note strong{color:var(--char)}

/* "What's included / bring / good to know" block on trip pages */
.tripinc{margin:1.9rem 0 .4rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.tripinc-col h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;
 color:var(--green-d);margin-bottom:.55rem}
.tripinc-col ul{list-style:none;display:flex;flex-direction:column;gap:.4rem;
 font-size:.92rem;color:#33362f}
.tripinc-col li::before{content:"✓";color:var(--green-d);font-weight:800;margin-right:.45rem}
.tripinc-col.tripinc-bring li::before{content:"•";color:var(--green-d)}
.tripinc-col.tripinc-know li::before{content:"›";color:var(--green-d)}
@media(max-width:840px){.tripinc{grid-template-columns:1fr;gap:1.1rem}}

/* ============================================================
   ROUND 2 FIXES — contrast headroom & legibility regressions
   ============================================================ */
/* Primary CTA: give the green real contrast headroom (~5.6:1) */
.btn-book{background:#4f6e1d !important}
.btn-book:hover{background:#3f5718}
/* Newsletter band was failing AA — darken so white/near-white text passes */
.newsletter{background:#4f6e1d}
.nl-in p{color:#eef4df}
/* Review attribution on the dark band — lift to AA */
.trip{color:#c4c9bb}
/* Pale eyebrow / glass over uncontrolled imagery — add a shadow floor */
.hero .eyebrow.light,.banner .eyebrow.light{text-shadow:0 1px 3px rgba(0,0,0,.6)}
.hero h1 strong{text-shadow:0 1px 4px rgba(0,0,0,.45)}
.btn-glass{background:rgba(20,24,18,.38)}
.btn-glass:hover{background:rgba(20,24,18,.55)}
/* Bigger, thumb-friendly card buttons for the mature audience (≥44px) */
.card-cta .btn{min-height:44px;padding:.72rem 1.2rem;font-size:.9rem;display:inline-flex;align-items:center;justify-content:center}
/* Combo "save" chip legibility */
.chip-save{background:var(--green-d)}

/* ---- booking widget: loading, details, payment & confirmation views ---- */
.cal-loading{display:block;padding:1.4rem;text-align:center;color:#555;font-size:.9rem}
.cal-loading button{margin-left:.4rem;border:1.5px solid var(--green-d);background:#fff;color:var(--green-d);border-radius:8px;padding:.2rem .7rem;font-weight:700;cursor:pointer}
.bm-view{display:none;position:absolute;inset:0;background:#fff;border-radius:18px;z-index:6;flex-direction:column;padding:1.5rem;overflow:auto}
.bm-back{align-self:flex-start;background:none;border:0;color:var(--green-d);font-family:var(--ff-d);font-weight:800;font-size:.95rem;cursor:pointer;margin-bottom:.5rem}
.bm-details h3{margin-bottom:.2rem}
.bm-details label{display:block;font-weight:600;font-size:.85rem;color:#3c3f38;margin-bottom:.7rem}
.bm-details input{display:block;width:100%;margin-top:.25rem;padding:.7rem .8rem;border:1.5px solid var(--line);border-radius:10px;font-size:1rem;font-family:var(--ff-b)}
.bm-details input:focus{outline:none;border-color:var(--green-d)}
.bm-details textarea,.bm-details select{display:block;width:100%;margin-top:.25rem;padding:.7rem .8rem;border:1.5px solid var(--line);border-radius:10px;font-size:1rem;font-family:var(--ff-b);background:#fff}
.bm-details textarea{min-height:64px;resize:vertical}
.bm-details textarea:focus,.bm-details select:focus{outline:none;border-color:var(--green-d)}
.bm-details .req{color:#a32d2d;font-weight:700}
.bm-details .fhelp{display:block;font-weight:400;font-size:.78rem;color:#777;margin-top:.15rem}
.bm-details .bm-paxhdr{font-family:var(--ff-d);font-weight:800;font-size:.95rem;color:var(--green-d);border-top:1px solid var(--line);margin:1.1rem 0 .7rem;padding-top:.8rem}
.bm-details .bm-bad{border-color:#a32d2d}
.bm-sub{color:#555;font-size:.9rem;margin-bottom:1rem;line-height:1.5}
.bm-err{color:#a32d2d;font-size:.85rem;min-height:1em;margin:.1rem 0 .5rem}
.bm-pay iframe{flex:1;width:100%;border:0;min-height:440px}
.bm-mid{margin:auto 0;text-align:center}
.bm-secure{font-family:var(--ff-d);font-weight:800;font-size:1.1rem;color:var(--char);margin-bottom:.6rem}
.bm-mid .bm-total{justify-content:center;gap:.6rem;flex-wrap:wrap;margin:1rem 0 1.2rem}
.bm-ok .bm-tick{width:56px;height:56px;border-radius:50%;background:var(--green-d);color:#fff;font-size:2rem;line-height:1;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}
.bm-ok h3{margin-bottom:.4rem}

/* ===================== 2026 review fixes (findings 4, 12, 13, 18) ========= */
/* claim line under the H1 */
.h1-claim{font-family:var(--ff-d);font-weight:700;font-size:clamp(1rem,1.6vw,1.2rem);margin:.5rem 0 .4rem;color:#e8f2d4}
.hero-trip .h1-claim,.hero .h1-claim{max-width:44ch}
/* why this is not a lake ride */
.notlake{background:#fff;padding:2.6rem 0}
.notlake-in{max-width:72ch}
.notlake-in p{color:#3c3f38;font-size:1.05rem}
.notlake-block{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:1.1rem 1.2rem;margin:1.6rem 0}
.notlake-block .ticks-h{margin-top:0}
.wherewego{font-size:.95rem;color:#555;margin-bottom:0}
/* price never naked */
.price-family{font-size:.86rem;color:var(--green-d);margin:.15rem 0 .2rem}
/* enquiry-only marker */
.chip-enq{top:auto;bottom:12px;left:12px;right:auto;background:var(--teal);max-width:70%;line-height:1.25}
.bc-enq .chip{position:static;display:inline-block;background:var(--teal);margin-bottom:.7rem}
/* modal: departure-time chips (finding 12) */
.bm-sessions{display:none;margin:0 0 1rem}
.bm-sesslbl{font-size:.85rem;color:#555;margin-bottom:.45rem}
.bm-sesschips{display:flex;gap:.5rem;flex-wrap:wrap}
.sesschip{font:inherit;font-weight:700;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:.5rem .95rem;cursor:pointer;min-height:44px}
.sesschip i{font-style:normal;font-weight:600;font-size:.78rem;color:#7a5200}
.sesschip:hover{border-color:var(--green)}
.sesschip.sel{background:var(--green);border-color:var(--green);color:#fff}
.sesschip.sel i{color:#f2f7e6}
/* modal: ticket types (finding 4) */
.bm-tickets{display:none;margin:0 0 1rem}
.bm-ticklbl{font-size:.85rem;color:#555;margin-bottom:.45rem}
.bm-tickrow{display:flex;gap:.5rem;flex-wrap:wrap}
.tickt{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.45rem .7rem;font-size:.88rem}
.tickt b{font-weight:700}
.tickt-fam.on{background:#eef4e3;border-color:var(--green);color:var(--green-d)}
.bm-tickfam{font-size:.82rem;color:var(--green-d);margin-top:.45rem}
.bm-tickfam.muted{color:#777}
/* modal: total + free cancellation as a green tick line (finding 13) */
.bm-total-line{justify-content:flex-start;font-weight:600;line-height:1.35}
#bm-sum{font-size:1rem}
.bm-cancel{display:block;margin:.7rem 0 .2rem;padding:.6rem .8rem;
 background:#eef4e3;border-radius:10px;color:var(--green-d);font-size:.95rem;font-weight:600}
.bm-cancel strong{color:var(--green-d)}
.bm-cancel-tick{color:var(--green);font-weight:900;margin-right:.35rem}
.bm-cancel strong{display:inline}
/* sticky bar: Book + Call (finding 18) */
.mobile-book{display:none;gap:.5rem}
.mobile-book .btn{display:flex;align-items:center;justify-content:center;text-align:center}
.mobile-book .mb-book{flex:1 1 auto;font-size:.82rem;line-height:1.2;padding:.6rem .8rem}
.mobile-book .mb-call{flex:0 0 auto;padding:.6rem 1rem;white-space:nowrap}
/* mobile: booking card before the long copy (finding 13) */
@media(max-width:980px){
 .trip-grid{display:flex;flex-direction:column;gap:1.6rem}
 .trip-grid .book-card{order:-1}
}
@media(max-width:840px){
 .mobile-book{display:flex}
}
