:root{--ink:#17261c;--paper:#f4f1e8;--green-deep:#17291d;--green:#263b2d;--green-soft:#516551;--gold:#a9824a;--line:#ddd8cb;--card:#e8e5da}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}
img{display:block}

/* ---- reveal-on-scroll ---- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:translateY(0)}

.topbar{height:34px;background:var(--green-deep);color:#cfd8cc;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1px}
.topbar b{color:#fff}

header{height:82px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;background:#f8f5ed;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;transition:box-shadow .3s,height .3s}
header.scrolled{box-shadow:0 12px 30px rgba(23,38,28,.08)}
.logo,.foot-logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.logo-round{width:42px;height:42px;border:1px solid #70806e;border-radius:50%;display:grid;place-items:center;font:700 26px "Playfair Display";color:var(--green-soft)}
.logo strong,.foot-logo strong{display:block;font:600 22px "Playfair Display"}
.logo small,.foot-logo small{display:block;font-size:8px;letter-spacing:2.5px;color:#7a8378}
nav{display:flex;gap:26px}
nav a{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;color:#465347;position:relative;padding:4px 0}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .3s}
nav a:hover::after{width:100%}
.order-btn{background:var(--green);color:#fff;text-decoration:none;padding:13px 18px;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;transition:background .3s,transform .3s}
.order-btn:hover{background:var(--green-deep);transform:translateY(-2px)}
.hamb{display:none;border:0;background:none;font-size:23px;cursor:pointer}

.hero{height:88vh;min-height:600px;position:relative;overflow:hidden;color:#fff;display:flex;align-items:center}
.hero-bg{position:absolute;width:100%;height:100%;object-fit:cover;filter:saturate(.72)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,28,19,.9),rgba(20,35,24,.6) 55%,rgba(17,30,20,.32))}
.hero-content{position:relative;z-index:2;margin-left:10vw;max-width:700px}
.kicker{font-size:10px;letter-spacing:3px;font-weight:700;color:var(--gold);margin:0 0 17px}
.hero .kicker{color:#e3caa0}
.hero h1,.heading h2,.promise h2,.animals h2,.visit h2,.final-cta h2,.process .heading h2,.gallery .heading h2,.faq .heading h2{font:600 clamp(52px,6.5vw,96px)/.95 "Playfair Display";letter-spacing:-3px;margin:0}
.hero h1 i,.heading h2 i,.promise h2 i,.animals h2 i,.final-cta h2 i{color:#b9c9b2;font-style:italic}
.lead{font-size:15px;line-height:1.8;max-width:570px;color:#e0e6dc;margin:27px 0}
.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.primary,.secondary{padding:15px 23px;text-decoration:none;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;transition:transform .3s,box-shadow .3s,background .3s}
.primary{background:#dbe5d6;color:#1e3325}
.primary:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.25)}
.secondary{border:1px solid rgba(255,255,255,.5);color:#fff}
.secondary:hover{background:rgba(255,255,255,.12)}
.badges{display:flex;gap:25px;margin-top:32px;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:#d5ded1;flex-wrap:wrap}
.hero-note{position:absolute;right:8vw;bottom:65px;z-index:3;border:1px solid rgba(255,255,255,.35);padding:17px 20px;background:rgba(24,40,28,.35);backdrop-filter:blur(10px)}
.hero-note b{display:block;font:600 26px "Playfair Display"}
.hero-note span{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#d3ddd0}
.scroll-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);width:26px;height:42px;border:1px solid rgba(255,255,255,.5);border-radius:20px;z-index:3}
.scroll-cue span{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:4px;height:8px;border-radius:2px;background:#fff;animation:cue 1.6s infinite}
@keyframes cue{0%{opacity:1;top:8px}80%{opacity:0;top:22px}100%{opacity:0;top:8px}}

.marquee{height:56px;display:flex;align-items:center;justify-content:space-around;border-bottom:1px solid #d5d1c6;border-top:1px solid #d5d1c6;color:#687366;font-size:9px;letter-spacing:3px;overflow:hidden;white-space:nowrap}
.marquee b{font-size:12px;color:var(--gold)}

.section{padding:115px 8vw}
.heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:55px}
.heading h2,.promise h2,.animals h2,.visit h2,.final-cta h2{font-size:clamp(44px,5vw,68px);letter-spacing:-2px}
.heading>p{max-width:350px;color:#7a7f77;font-size:13px}

/* ---- USP strip ---- */
.usp{padding:70px 8vw;background:#efeade}
.usp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.usp-card{background:#f8f6ef;padding:38px 30px;transition:background .3s,transform .3s}
.usp-card:hover{background:#fff;transform:translateY(-4px)}
.usp-card svg{width:34px;height:34px;fill:none;stroke:var(--green);stroke-width:2;margin-bottom:18px}
.usp-card h4{font:600 18px "Playfair Display";margin:0 0 8px}
.usp-card p{font-size:12.5px;color:#767c73;line-height:1.7;margin:0}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{background:var(--card);border:1px solid #d7d3c8;transition:.35s}
.card:hover{transform:translateY(-7px);box-shadow:0 22px 50px rgba(30,45,34,.1)}
.card.big{grid-column:span 2}
.pic{height:270px;position:relative;overflow:hidden}
.pic img{width:100%;height:100%;object-fit:cover;transition:.6s;filter:saturate(.78)}
.card:hover .pic img{transform:scale(1.05)}
.pic span{position:absolute;top:15px;right:15px;background:rgba(20,37,26,.82);color:#fff;padding:7px 10px;font-size:9px}
.card-body{padding:25px 26px 28px}
.mini{font-size:8px;letter-spacing:2px;color:#71806f;margin:0 0 7px}
.card h3{font:600 29px "Playfair Display";margin:0 0 8px}
.card p:not(.mini){font-size:12px;color:#747a72;line-height:1.7;min-height:43px}
.card a{display:inline-block;margin-top:15px;color:#425843;text-decoration:none;font-size:9px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}
.yogurt{background:#e0e6db}

/* ---- process steps ---- */
.process{background:#efeade}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.step{background:#f8f6ef;border:1px solid var(--line);padding:34px 26px;position:relative;transition:transform .3s,box-shadow .3s}
.step:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(30,45,34,.1)}
.step-num{font:600 40px "Playfair Display";color:var(--gold);margin-bottom:14px}
.step h4{font:600 19px "Playfair Display";margin:0 0 8px}
.step p{font-size:12.5px;color:#767c73;line-height:1.7;margin:0}

.promise{background:var(--green-deep);color:#f4f1e8;padding:0 8vw;display:grid;grid-template-columns:1fr 1fr;min-height:650px;align-items:center;gap:8vw}
.promise-photo{height:560px;overflow:hidden}
.promise-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.65)}
.promise-copy .kicker{color:#b4c4ae}
.promise h2{color:#f5f1e8}
.promise h2 i{color:#bdcbb7}
.promise-copy>p:not(.kicker){color:#c0c9bd;font-size:14px;line-height:1.9;max-width:550px;margin:25px 0}
.points{border-top:1px solid rgba(255,255,255,.18)}
.points div{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.points b{font-size:9px;color:#91a28c}
.points span{font-size:11px;color:#b7c1b4}
.points strong{display:block;color:#fff;margin-bottom:2px}

.animals{text-align:center;padding:110px 8vw;background:#e9e6dc}
.animals .kicker{margin-bottom:12px}
.animals h2{margin-bottom:45px}
.animal-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.animal-row div{height:300px;position:relative;overflow:hidden}
.animal-row img{width:100%;height:100%;object-fit:cover;filter:saturate(.7);transition:.5s}
.animal-row div:hover img{transform:scale(1.05)}
.animal-row span{position:absolute;left:22px;bottom:18px;color:#fff;font:600 25px "Playfair Display";text-shadow:0 2px 15px #000}

/* ---- gallery ---- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:14px}
.g-item{overflow:hidden;position:relative}
.g-item img{width:100%;height:100%;object-fit:cover;filter:saturate(.8);transition:.6s}
.g-item:hover img{transform:scale(1.08)}
.g-item.tall{grid-row:span 2}
.g-item.wide{grid-column:span 2}

/* ---- FAQ ---- */
.faq{background:#efeade}
.faq-list{max-width:820px;margin:0 auto}
.faq-item{background:#f8f6ef;border:1px solid var(--line);padding:22px 26px;margin-bottom:12px}
.faq-item summary{cursor:pointer;list-style:none;font:600 16px "Playfair Display";display:flex;align-items:center;justify-content:space-between;gap:20px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .chev{font-size:16px;color:var(--gold);transition:transform .3s;flex:none}
.faq-item[open] .chev{transform:rotate(45deg)}
.faq-item p{font-size:13px;color:#6f766c;line-height:1.8;margin:16px 0 2px}

.visit{display:flex;align-items:center;justify-content:space-between;gap:30px}
.visit h2{margin-bottom:10px}
.visit>div>p:last-child{color:#747b73;font-size:13px}
.map{display:flex;align-items:center;gap:16px;border:1px solid #c9c6bb;padding:20px 27px;text-decoration:none;color:#26392c;min-width:280px;transition:border-color .3s,transform .3s}
.map:hover{border-color:var(--gold);transform:translateY(-3px)}
.map>b{font-size:28px}
.map strong,.map small{display:block}
.map small{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#7b8278;margin-top:3px}

.final-cta{margin:0 6vw 90px;background:var(--green);color:#fff;padding:75px 8vw;display:flex;align-items:end;justify-content:space-between;gap:30px}
.final-cta .kicker{color:#b7c7b1}
.final-cta h2{margin:0}
.light{background:#f5f1e8;color:#233629}

footer{background:var(--green-deep);color:#dce4d8;padding:35px 7vw;display:flex;align-items:center;justify-content:space-between;gap:25px}
footer p,footer>a{font-size:10px;color:#aeb9aa;text-decoration:none}
footer>a:hover{color:#fff}
.foot-logo .logo-round{color:#dce4d8;border-color:#7c8c79}
.foot-logo strong{color:#f4f1e8}
.foot-logo small{color:#8c9689}

.float-wa{position:fixed;right:22px;bottom:22px;z-index:30;background:#243c2b;color:#fff;text-decoration:none;border-radius:40px;padding:14px 19px;box-shadow:0 15px 35px rgba(0,0,0,.22);font-size:12px;transition:transform .3s}
.float-wa:hover{transform:translateY(-3px)}
.float-wa span{margin-left:5px}
.to-top{position:fixed;right:22px;bottom:88px;z-index:30;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#f8f6ef;color:var(--ink);font-size:16px;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(10px);transition:.3s}
.to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}

@media(max-width:1000px){
  .usp-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .g-item.wide{grid-column:span 2}
}
@media(max-width:900px){
  nav,.order-btn{display:none}
  .hamb{display:block}
  .hero-content{margin-left:7vw;margin-right:7vw}
  .hero-note{right:7vw}
  .cards{grid-template-columns:1fr 1fr}
  .card.big{grid-column:span 2}
  .promise{grid-template-columns:1fr;padding:80px 7vw}
  .promise-photo{height:400px}
  .animal-row{grid-template-columns:1fr}
  .animal-row div{height:260px}
  .section{padding:85px 7vw}
  .final-cta{margin:0 5vw 70px;flex-direction:column;align-items:flex-start}
  nav.open{display:flex;position:absolute;top:72px;left:0;right:0;padding:20px 7vw;background:#f8f5ed;flex-direction:column;gap:16px;border-bottom:1px solid var(--line)}
}
@media(max-width:560px){
  .topbar{padding:0 5vw;font-size:8px}
  .topbar span:first-child{display:none}
  .topbar{justify-content:center}
  header{height:72px;padding:0 5vw}
  .hero{height:92vh}
  .hero-content{margin-left:6vw}
  .hero h1{font-size:52px}
  .lead{font-size:13px}
  .badges{flex-direction:column;gap:7px}
  .hero-note{right:6vw;bottom:30px}
  .cards{grid-template-columns:1fr}
  .card.big{grid-column:span 1}
  .pic{height:230px}
  .heading{display:block}
  .heading>p{margin-top:20px}
  .usp-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:220px}
  .g-item.wide,.g-item.tall{grid-column:span 1;grid-row:span 1}
  .animal-row div{height:220px}
  .visit{display:block}
  .map{margin-top:25px;min-width:0}
  .final-cta{padding:55px 7vw}
  .final-cta h2{font-size:44px}
  .float-wa span{display:none}
  .float-wa{width:52px;height:52px;padding:0;display:grid;place-items:center}
  .to-top{right:18px;bottom:80px}
  footer{flex-direction:column;align-items:flex-start}
}
