@font-face{font-family:Archivo;font-weight:100 900;font-display:swap;src:url(../fonts/archivo-var.woff2) format("woff2")}
@font-face{font-family:Figtree;font-weight:400;font-display:swap;src:url(../fonts/figtree-400.woff2) format("woff2")}
@font-face{font-family:Figtree;font-weight:600;font-display:swap;src:url(../fonts/figtree-600.woff2) format("woff2")}
:root{--bg:#123326;--bg2:#0B2419;--surface:#EEF2EA;--text:#14271E;--muted:#46564D;--primary:#9CC36B;--primary-d:#3D6A1F;--accent:#E8921E;--accent-d:#C97508;--lime:#9CC36B;--line:rgba(16,55,42,.16);--r:14px;--max:1200px;--ff-h:Archivo,"Trebuchet MS",sans-serif;--ff-b:Figtree,"Segoe UI",system-ui,sans-serif;--ease:cubic-bezier(.2,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:400 1.0625rem/1.65 var(--ff-b);color:var(--text);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--ff-h);font-weight:800;line-height:1.08;letter-spacing:-.02em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.3rem,5.2vw,4rem)}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}
h3{font-size:1.3rem;font-weight:700;letter-spacing:-.01em}
p{margin:0 0 1em;text-wrap:pretty;max-width:68ch}
.wrap{width:min(100% - 2.5rem,var(--max));margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-4rem;background:var(--accent);color:#1b1200;padding:.7rem 1rem;border-radius:var(--r);font-weight:600;z-index:100}
.skip:focus{top:1rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.btn{display:inline-flex;align-items:center;gap:.5rem;font:600 1rem/1 var(--ff-b);text-decoration:none;padding:1rem 1.5rem;border-radius:12px;border:2px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease),background-color .2s,box-shadow .2s;min-height:48px}
.btn:active{transform:scale(.97)}
.btn--accent{background:var(--accent);color:#1b1200}
.btn--accent:hover{background:#f6a23a;box-shadow:0 8px 22px -8px rgba(237,145,33,.7)}
.btn--green{background:var(--primary);color:#04170f}
.btn--green:hover{background:#2cb577}
.btn--ghost{border-color:currentColor;color:inherit;background:transparent}
.btn--ghost:hover{background:rgba(255,255,255,.1)}
.btn--ghost-d{border-color:var(--bg);color:var(--bg)}
.btn--ghost-d:hover{background:rgba(16,55,42,.07)}
.link{font-weight:600;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--accent)}
.link:hover{text-decoration-color:currentColor}

/* nav */
.top{position:sticky;top:0;z-index:50;background:var(--bg);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.top__in{display:flex;align-items:center;gap:1.5rem;min-height:72px}
.brand{display:block;flex:none}
.brand img{width:150px;height:auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:.25rem}
.nav a,.nav button.nav__dd{font:600 .95rem/1 var(--ff-b);color:#fff;text-decoration:none;padding:.9rem .85rem;border-radius:10px;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.nav a:hover,.nav button.nav__dd:hover,.nav a[aria-current=page]{background:rgba(255,255,255,.1)}
.nav a.btn{margin-left:.5rem;padding:.9rem 1.2rem;min-height:44px;background:var(--accent);color:#1b1200}
.nav a.btn:hover{background:#f6a23a}
.nav__sub{position:relative}
.nav__menu{position:absolute;top:100%;left:0;min-width:230px;background:var(--bg2);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:.4rem;display:none;box-shadow:0 18px 40px -12px rgba(0,0,0,.5)}
.nav__sub:hover .nav__menu,.nav__sub:focus-within .nav__menu,.nav__sub.open .nav__menu{display:block}
.nav__menu a{display:block;width:100%}
.burger{display:none;margin-left:auto;background:none;border:2px solid rgba(255,255,255,.4);color:#fff;border-radius:10px;padding:.65rem .9rem;font:600 .95rem var(--ff-b);cursor:pointer;min-height:44px}
@media (max-width:1060px){
 .burger{display:inline-flex}
 .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);flex-direction:column;align-items:stretch;padding:.75rem 1.25rem 1.25rem;gap:0;border-bottom:1px solid rgba(255,255,255,.12);max-height:calc(100dvh - 72px);overflow:auto}
 .nav.open{display:flex}
 .nav a,.nav button.nav__dd{padding:1rem .5rem;width:100%;justify-content:flex-start}
 .nav__menu{position:static;display:block;background:none;border:0;box-shadow:none;padding:0 0 0 1rem}
 .nav a.btn{margin:.75rem 0 0;justify-content:center}
}

/* hero */
.hero{position:relative;color:#fff;background:var(--bg);height:clamp(500px,calc(100svh - 72px - 170px),700px);display:flex;align-items:flex-end;overflow:hidden}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;max-width:none}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:62%;background:radial-gradient(ellipse 70% 90% at 12% 100%,rgba(10,30,22,.6) 0,rgba(10,30,22,0) 70%)}
.hero__txt{position:relative;z-index:1;width:min(100% - 2.5rem,var(--max));margin:0 auto;padding:0 0 3.25rem}
.hero__kicker{font:600 1rem/1.3 var(--ff-b);color:#fff;margin:0 0 .75rem;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.hero h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.9rem);line-height:1.02;margin-bottom:.4em;max-width:12ch;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero p.lead{font-size:1.15rem;color:#fff;max-width:36ch;margin-bottom:1.5rem;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center}
.link--l{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.5)}
@media (max-width:860px){.hero{height:clamp(480px,68svh,600px)}.hero__img{object-position:42% 40%}.hero__txt{padding-bottom:1.5rem}.hero h1{font-size:clamp(1.9rem,8.4vw,2.4rem);max-width:12ch}.hero p.lead{font-size:1rem;margin-bottom:1rem}.hero__cta{gap:.6rem 1.25rem}.hero .btn{padding:.9rem 1.25rem}}

/* next dates strip */
.dates{background:var(--bg);color:#fff;padding:1.6rem 0 1.5rem;position:relative;z-index:1}
.dates__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1.5rem;margin-bottom:1rem}
.dates__head h2{font-size:1.4rem;margin:0 0 .15rem;color:#fff}
.dates__head p{margin:0;color:#c5dccd;font-size:.95rem}
.dates .car__ctl{margin:0}
.dates .car__btn{border-color:rgba(255,255,255,.55);color:#fff}.dates .car__btn:hover{background:#fff;color:var(--bg)}
.dates__list{gap:.75rem;padding-bottom:.5rem;scrollbar-color:var(--lime) transparent}
.date{flex:0 0 clamp(9.5rem,15vw,11.5rem);scroll-snap-align:start;display:flex;flex-direction:column;text-decoration:none;padding:.9rem 1rem 1rem;border-radius:12px;border:1px solid rgba(156,195,107,.4);transition:border-color .2s,background-color .2s,transform .2s var(--ease)}
.date:hover{border-color:var(--lime);background:rgba(156,195,107,.12);transform:translateY(-2px)}
.date b{font:800 3rem/1 var(--ff-h);color:var(--lime);margin:.1rem 0}
.date__wd,.date__mo{font-size:.9rem;color:#fff;text-transform:capitalize}
.date__t{font-size:.9rem;color:#c5dccd;margin-top:.5rem}

/* sections */
.sec{padding-block:clamp(3.5rem,8vw,6.5rem)}
.sec--soft{background:var(--surface)}
.sec--dark{background:var(--bg);color:#fff}
.sec--dark h2,.sec--dark h3{color:#fff}
.sec--dark p{color:#d3e6da}
.sec__head{margin-bottom:2.25rem;max-width:46rem}
.sec__head p{color:var(--muted);font-size:1.1rem}
.sec--dark .sec__head p{color:#d3e6da}
.kick{font:600 .95rem var(--ff-b);color:var(--accent-d);margin:0 0 .6rem}
.sec--dark .kick{color:var(--accent)}

/* accordion panels */
.panels{display:flex;gap:.75rem;height:min(30rem,70vh)}
.panel{position:relative;flex:1 1 0;min-width:0;border-radius:var(--r);overflow:hidden;color:#fff;text-decoration:none;background:var(--bg);transition:flex-grow .55s var(--ease);display:flex;align-items:flex-end}
.panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,32,24,.88) 100%)}
.panel__t{position:relative;z-index:1;padding:1.4rem;width:100%}
.panel__t h3{color:#fff;margin:0 0 .3rem;font-size:1.35rem}
.panel__t p{margin:0;font-size:.95rem;color:#e6f2ea;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s}
.panel__go{display:inline-block;margin-top:.6rem;font-weight:600;font-size:.95rem;color:var(--accent)}
.panels:hover .panel,.panels:focus-within .panel{flex-grow:.8}
.panels .panel:hover,.panels .panel:focus-visible{flex-grow:3.2}
.panel:hover .panel__t p,.panel:focus-visible .panel__t p{max-height:8rem;opacity:1}
@media (max-width:860px){.panels{flex-direction:column;height:auto}.panel{min-height:11.5rem;flex:none}.panel__t p{max-height:none;opacity:1}.panels:hover .panel{flex-grow:0}}
@media (hover:none){.panel__t p{max-height:none;opacity:1}}

/* carousel */
.car{position:relative}
.car__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;padding:.25rem 0 1rem;scrollbar-width:thin;scrollbar-color:var(--primary) transparent}
.car__track:focus-visible{outline-offset:-3px}
.animal{position:relative;flex:0 0 clamp(16rem,26vw,22.5rem);aspect-ratio:4/5;scroll-snap-align:start;background:var(--bg);border-radius:var(--r);overflow:hidden;display:block;text-decoration:none;color:#fff;transition:transform .25s var(--ease),box-shadow .25s}
.animal:hover{transform:translateY(-4px);box-shadow:0 18px 30px -18px rgba(11,42,32,.6)}
.animal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.animal div{position:absolute;left:0;right:0;bottom:0;padding:3rem 1.1rem 1.1rem;background:linear-gradient(to top,rgba(10,30,22,.88),rgba(10,30,22,0))}
.animal b{font:800 1.4rem/1.15 var(--ff-h);display:block;margin-bottom:.25rem}
.animal span{font-size:.92rem;line-height:1.4;color:#e6f0e8;display:block}
.car__ctl{margin:0}
.dates .car__btn{border-color:rgba(255,255,255,.55);color:#fff}.dates .car__btn:hover{background:#fff;color:var(--bg)}
.dates__list{gap:.75rem;padding-bottom:.5rem;scrollbar-color:var(--lime) transparent}
.date{flex:0 0 clamp(9.5rem,15vw,11.5rem);scroll-snap-align:start;display:flex;flex-direction:column;text-decoration:none;padding:.9rem 1rem 1rem;border-radius:12px;border:1px solid rgba(156,195,107,.4);transition:border-color .2s,background-color .2s,transform .2s var(--ease)}
.date:hover{border-color:var(--lime);background:rgba(156,195,107,.12);transform:translateY(-2px)}
.date b{font:800 3rem/1 var(--ff-h);color:var(--lime);margin:.1rem 0}
.date__wd,.date__mo{font-size:.9rem;color:#fff;text-transform:capitalize}
.date__t{font-size:.9rem;color:#c5dccd;margin-top:.5rem}

/* sections */
.sec{padding-block:clamp(3.5rem,8vw,6.5rem)}
.sec--soft{background:var(--surface)}
.sec--dark{background:var(--bg);color:#fff}
.sec--dark h2,.sec--dark h3{color:#fff}
.sec--dark p{color:#d3e6da}
.sec__head{margin-bottom:2.25rem;max-width:46rem}
.sec__head p{color:var(--muted);font-size:1.1rem}
.sec--dark .sec__head p{color:#d3e6da}
.kick{font:600 .95rem var(--ff-b);color:var(--accent-d);margin:0 0 .6rem}
.sec--dark .kick{color:var(--accent)}

/* accordion panels */
.panels{display:flex;gap:.75rem;height:min(30rem,70vh)}
.panel{position:relative;flex:1 1 0;min-width:0;border-radius:var(--r);overflow:hidden;color:#fff;text-decoration:none;background:var(--bg);transition:flex-grow .55s var(--ease);display:flex;align-items:flex-end}
.panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,32,24,.88) 100%)}
.panel__t{position:relative;z-index:1;padding:1.4rem;width:100%}
.panel__t h3{color:#fff;margin:0 0 .3rem;font-size:1.35rem}
.panel__t p{margin:0;font-size:.95rem;color:#e6f2ea;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s}
.panel__go{display:inline-block;margin-top:.6rem;font-weight:600;font-size:.95rem;color:var(--accent)}
.panels:hover .panel,.panels:focus-within .panel{flex-grow:.8}
.panels .panel:hover,.panels .panel:focus-visible{flex-grow:3.2}
.panel:hover .panel__t p,.panel:focus-visible .panel__t p{max-height:8rem;opacity:1}
@media (max-width:860px){.panels{flex-direction:column;height:auto}.panel{min-height:11.5rem;flex:none}.panel__t p{max-height:none;opacity:1}.panels:hover .panel{flex-grow:0}}
@media (hover:none){.panel__t p{max-height:none;opacity:1}}

/* carousel */
.car{position:relative}
.car__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;padding:.25rem 0 1rem;scrollbar-width:thin;scrollbar-color:var(--primary) transparent}
.car__track:focus-visible{outline-offset:-3px}
.animal{flex:0 0 clamp(11rem,22vw,15rem);scroll-snap-align:start;background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s}
.animal:hover{transform:translateY(-4px);box-shadow:0 18px 30px -18px rgba(11,42,32,.5)}
.animal img{aspect-ratio:1;width:100%;object-fit:cover}
.animal div{padding:.85rem 1rem 1rem}
.animal b{font:700 1.05rem/1.2 var(--ff-h);display:block}
.animal span{font-size:.88rem;color:var(--muted)}
.car__ctl{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.75rem}
.car__btn{width:48px;height:48px;border-radius:12px;border:2px solid var(--bg);background:transparent;color:var(--bg);font-size:1.3rem;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.car__btn:hover{background:var(--bg);color:#fff}
.car__btn:active{transform:scale(.94)}
.car__btn[disabled]{opacity:.35;cursor:default}
.sec--dark .car__btn{border-color:#fff;color:#fff}.sec--dark .car__btn:hover{background:#fff;color:var(--bg)}

/* split sections */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split--rev{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.split__img{border-radius:var(--r);overflow:hidden}
.split__img img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.split,.split--rev{grid-template-columns:1fr}}
.ticks{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;gap:.55rem}
.ticks li{padding-left:1.7rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:.95rem;height:.55rem;border-left:3px solid var(--primary);border-bottom:3px solid var(--primary);transform:rotate(-45deg) translateY(-50%)}
.sec--dark .ticks li::before{border-color:var(--accent)}

/* tabs */
.tabs__bar{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--line)}
.tabs__bar button{font:600 1rem var(--ff-b);background:none;border:0;padding:.9rem 1.2rem;cursor:pointer;color:var(--muted);border-bottom:4px solid transparent;margin-bottom:-2px;min-height:48px}
.tabs__bar button[aria-selected=true]{color:var(--bg);border-bottom-color:var(--accent)}
.tabs__bar button:hover{color:var(--bg)}
.tabs__panel[hidden]{display:none}
.alist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 2.5rem;list-style:none;padding:0;margin:0}
.alist li{padding:.75rem 0;border-bottom:1px solid var(--line);font-weight:600}
.alist li small{display:block;font-weight:400;color:var(--muted);font-size:.9rem;margin-top:.1rem}
@media (max-width:640px){.alist{grid-template-columns:1fr}}

/* packs */
.packs{list-style:none;padding:0;margin:0;border-top:2px solid var(--bg)}
.pack{border-bottom:1px solid var(--line)}
.pack>details>summary{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:1.3rem .25rem;cursor:pointer;list-style:none}
.pack summary::-webkit-details-marker{display:none}
.pack__n{font:800 1.5rem/1.1 var(--ff-h)}
.pack__n small{display:block;font:400 .95rem var(--ff-b);color:var(--muted);margin-top:.2rem}
.pack__p{font:800 2rem var(--ff-h);color:var(--accent-d)}
.pack__x{width:2.2rem;height:2.2rem;border:2px solid var(--bg);border-radius:50%;position:relative;transition:transform .3s var(--ease)}
.pack__x::before,.pack__x::after{content:"";position:absolute;left:50%;top:50%;width:.9rem;height:2px;background:var(--bg);transform:translate(-50%,-50%)}
.pack__x::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s}
details[open] .pack__x::after{transform:translate(-50%,-50%) rotate(0)}
.pack__body{padding:0 .25rem 1.5rem}
.pack summary:hover .pack__n{color:var(--primary-d)}

/* price rows */
.prices{display:grid;gap:0;border-top:2px solid var(--bg);margin-bottom:1.5rem}
.prow{display:grid;grid-template-columns:1fr auto;gap:.25rem 1.5rem;padding:1.25rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.prow h3{margin:0;font-size:1.3rem}
.prow p{grid-column:1;margin:0;color:var(--muted);font-size:.98rem}
.prow__p{grid-row:1/3;grid-column:2;text-align:right;font:800 1.9rem var(--ff-h);color:var(--accent-d)}
.prow__p small{display:block;font:400 .85rem var(--ff-b);color:var(--muted)}

/* page head */
.phead{background:var(--bg);color:#fff;padding-block:clamp(2.5rem,6vw,4.5rem)}
.phead h1{color:#fff;font-size:clamp(2.1rem,4.6vw,3.4rem);margin-bottom:.35em}
.phead p{color:#d3e6da;font-size:1.15rem;max-width:56ch;margin:0}
.crumb{font-size:.9rem;color:#a9c8b6;margin-bottom:1rem}
.crumb a{color:#a9c8b6}
.phead--photo{position:relative;isolation:isolate}
.phead--photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;opacity:.35}

/* booking widget */
.book{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:2rem;align-items:start}
@media (max-width:900px){.book{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem}
.card--soft{background:var(--surface);border-color:transparent}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.cal__head b{font:800 1.25rem var(--ff-h);text-transform:capitalize}
.cal__nav{width:44px;height:44px;border:2px solid var(--bg);border-radius:12px;background:none;cursor:pointer;font-size:1.2rem;color:var(--bg)}
.cal__nav[disabled]{opacity:.3;cursor:default}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal__dow{font-size:.8rem;color:var(--muted);padding:.3rem 0;font-weight:600;text-transform:uppercase}
.cal__d{height:44px;min-width:0;display:grid;place-items:center;border-radius:10px;font-weight:600;background:none;border:0;color:#9aa6a0;font-family:inherit;font-size:1rem}
.cal__d[data-open]{background:var(--surface);color:var(--bg);cursor:pointer;border:2px solid transparent}
.cal__d[data-open]:hover{border-color:var(--primary)}
.cal__d[aria-pressed=true]{background:var(--bg);color:#fff}
.cal__hint{font-size:.9rem;color:var(--muted);margin:.75rem 0 0}
.slots{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.slot{flex:1 1 9rem;padding:.9rem 1rem;border-radius:12px;border:2px solid var(--line);background:#fff;cursor:pointer;font:600 1.05rem var(--ff-b);text-align:left;color:var(--text);min-height:56px}
.slot small{display:block;font-weight:400;color:var(--muted);font-size:.85rem}
.slot[aria-pressed=true]{border-color:var(--primary);background:var(--surface)}
.step{font:700 1.05rem var(--ff-h);margin:1.5rem 0 .6rem;display:flex;gap:.6rem;align-items:center}
.step:first-child{margin-top:0}
.qty{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid var(--line);gap:1rem}
.qty small{display:block;color:var(--muted)}
.qty__c{display:flex;align-items:center;gap:.5rem}
.qty__c button{width:44px;height:44px;border-radius:12px;border:2px solid var(--bg);background:#fff;font-size:1.3rem;cursor:pointer;color:var(--bg)}
.qty__c output{min-width:2rem;text-align:center;font-weight:700;font-size:1.1rem}
.total{display:flex;justify-content:space-between;align-items:baseline;padding:1rem 0;font:800 1.4rem var(--ff-h)}
.total span{color:var(--accent-d)}

/* forms */
.form{display:grid;gap:1rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:640px){.form__row{grid-template-columns:1fr}}
.field label{display:block;font-weight:600;margin-bottom:.35rem;font-size:.98rem}
.field input,.field select,.field textarea{width:100%;font:400 1rem var(--ff-b);padding:.85rem 1rem;border:2px solid #b9c7be;border-radius:12px;background:#fff;color:var(--text);min-height:48px;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:7rem;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(30,154,98,.2)}
.field .err{color:#b3261e;font-size:.9rem;margin-top:.3rem;display:none}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#b3261e}
.field.bad .err{display:block}
.field small.hint{color:var(--muted);display:block;margin-top:.3rem;font-size:.88rem}
.form__note{font-size:.9rem;color:var(--muted);margin:0}
.opt{display:grid;gap:.6rem}
.opt label{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem;border:2px solid var(--line);border-radius:12px;cursor:pointer;font-weight:600;background:#fff}
.opt label small{display:block;font-weight:400;color:var(--muted)}
.opt input{margin-top:.3rem;accent-color:var(--primary);width:1.1rem;height:1.1rem;flex:none}
.opt label:has(input:checked){border-color:var(--primary);background:var(--surface)}
.opt label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}

/* animal picker */
.pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.75rem;max-height:30rem;overflow:auto;padding:.25rem}
.pick label{position:relative;border:2px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;background:#fff;display:block}
.pick input{position:absolute;opacity:0;inset:0;cursor:pointer}
.pick img{aspect-ratio:1;width:100%;object-fit:cover}
.pick span{display:block;padding:.45rem .55rem .55rem;font-size:.85rem;font-weight:600;line-height:1.2}
.pick label:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 3px rgba(30,154,98,.35)}
.pick label:has(input:checked) span{background:var(--surface)}
.pick label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.pick label[hidden]{display:none}

/* animals grid page */
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1.25rem}
.acard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.acard img{aspect-ratio:4/3;width:100%;object-fit:cover}
.acard div{padding:1rem 1.1rem 1.2rem}
.acard h3{font-size:1.15rem;margin:0 0 .3rem}
.acard p{font-size:.92rem;color:var(--muted);margin:0 0 .7rem}
.acard[hidden]{display:none}
.search{max-width:26rem;margin-bottom:1.5rem}

/* footer */
.ft{background:var(--bg2);color:#cfe3d6;padding-block:3.5rem 2rem;font-size:.98rem}
.ft a{color:#fff;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px}
.ft a:hover{text-decoration-color:var(--accent)}
.ft__g{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2.5rem;margin-bottom:2.5rem}
@media (max-width:860px){.ft__g{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ft__g{grid-template-columns:1fr}}
.ft h2{font:700 1rem var(--ff-h);color:#fff;margin:0 0 .8rem;letter-spacing:0}
.ft ul{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.ft p{margin:0 0 .5rem;color:#cfe3d6}
.ft__legal{border-top:1px solid rgba(255,255,255,.14);padding-top:1.5rem;display:grid;gap:.4rem;font-size:.9rem}
.ft__credit a{font-weight:600}
.ft img{width:150px;margin-bottom:1rem}

/* misc */
.legal h2{font-size:1.4rem;margin-top:2rem}
.legal ul{padding-left:1.2rem}
.legal li{margin-bottom:.4rem}
.note{background:var(--surface);border-left:5px solid var(--accent);padding:1rem 1.25rem;border-radius:0 var(--r) var(--r) 0;margin:1.5rem 0}
.note p:last-child{margin:0}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem}
@media (max-width:860px){.cols2{grid-template-columns:1fr}}
.thanks{min-height:55vh;display:grid;place-items:center;text-align:center}
.thanks dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;text-align:left;max-width:30rem;margin:1.5rem auto;padding:1.25rem;background:var(--surface);border-radius:var(--r)}
.thanks dt{font-weight:600}.thanks dd{margin:0}
.wa{position:fixed;right:1.5rem;bottom:1.5rem;z-index:40;background:#25D366;color:#04210f;font-weight:700;text-decoration:none;padding:.85rem 1.1rem;border-radius:999px;box-shadow:0 10px 24px -8px rgba(0,0,0,.5);min-height:48px;display:inline-flex;align-items:center}
.wa:hover{background:#3be07b}
.wa{gap:.5rem}
@media (max-width:520px){.wa{right:.75rem;bottom:.75rem;padding:0;width:44px;height:44px;min-height:44px;justify-content:center}.wa__t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}

/* reveal */
.js .rv{transform:translateY(14px);transition:transform .7s var(--ease)}
.js .rv.in{transform:none}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
 .js .rv{opacity:1;transform:none}
}
.sec--dark .tabs__bar{border-bottom-color:rgba(255,255,255,.25)}
.sec--dark .tabs__bar button{color:#cfe3d6}
.sec--dark .tabs__bar button:hover,.sec--dark .tabs__bar button[aria-selected=true]{color:#fff}
.sec--dark .alist li{border-bottom-color:rgba(255,255,255,.2)}
.sec--dark .alist li{color:#fff}

.link[href$=".pdf"]{display:inline-block;padding:.6rem 0}
a,button,label,input,select,textarea,summary{touch-action:manipulation}
[id]{scroll-margin-top:5.5rem}
.prow__p,.total,.panel__go,.pack__p{font-variant-numeric:tabular-nums}
@media (max-width:600px){.dates .car__ctl{display:none}.dates{padding-top:1.25rem}}
@media (max-width:600px){.dates__head p{display:none}.dates__head{margin-bottom:.75rem}}

/* Fase C v3: cartões dos animais (foto limpa 4:5 + legenda em superfície clara), escolas, atividades */
.animal{flex:0 0 clamp(14rem,22vw,17.5rem);aspect-ratio:auto;display:flex;flex-direction:column;background:#fff;color:var(--text);border:1px solid var(--line);position:relative}
.animal img{position:static;aspect-ratio:4/5;height:auto;width:100%;object-fit:cover;background:var(--surface)}
.animal div{position:static;background:#fff;padding:.9rem 1rem 1.05rem}
.animal b{font:800 1.15rem/1.2 var(--ff-h);color:var(--bg);margin:0 0 .2rem}
.animal span{color:var(--muted);font-size:.9rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.panel img{background:var(--bg2)}
.split__img--tall img{aspect-ratio:4/5;object-position:50% 40%;max-height:38rem}
.split--esc{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:0 0 1.25rem;padding:0;list-style:none}
.act{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.act img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.act div{padding:.9rem 1rem 1.1rem}
.act b{font:700 1.1rem/1.2 var(--ff-h);color:#fff;display:block;margin-bottom:.2rem}
.act span{color:#d3e6da;font-size:.92rem;line-height:1.45}
.acts__more{color:#d3e6da;font-size:.98rem;margin:0}
.acts__more b{color:#fff}
@media (max-width:860px){
 .hero__img{object-position:78% 40%}
 .hero::after{height:60%;background:linear-gradient(to top,rgba(10,30,22,.62) 0,rgba(10,30,22,.32) 55%,rgba(10,30,22,0) 100%)}
 .hero{height:clamp(520px,74svh,640px)}
}
