:root{--green:#1f5c3d;--green2:#2e7d52;--cream:#fff8ec;--ink:#241d16;--copper:#c96f2e;--gold:#e8a93d;--pink:#f3c6c2}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--cream);color:var(--ink);line-height:1.55}
a{color:var(--green)}
.topbar{position:sticky;top:0;z-index:10;display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.7rem 1.2rem;background:#fffdf7;border-bottom:3px solid var(--gold);box-shadow:0 2px 12px rgba(0,0,0,.08)}
.brand{font-weight:800;font-size:1.25rem;text-decoration:none;color:var(--green)}
.topbar nav{display:flex;gap:1.2rem}
.topbar nav a{text-decoration:none;font-weight:600}
.topbar nav a:hover{color:var(--copper)}
.call-btn{background:var(--green);color:#fff;padding:.5rem 1rem;border-radius:999px;text-decoration:none;font-weight:700;transition:transform .25s,background .25s}
.call-btn:hover{background:var(--copper);transform:scale(1.05)}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center;padding:3rem 5vw 2rem}
.eyebrow{font-weight:700;letter-spacing:.04em;color:var(--green);text-transform:uppercase;font-size:.85rem}
.hero h1{font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.05;margin:.4rem 0}
.hero h1 span{color:var(--copper)}
.lede{font-size:1.15rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.2rem 0}
.btn{display:inline-block;padding:.85rem 1.4rem;border-radius:999px;text-decoration:none;font-weight:800;transition:transform .25s,box-shadow .25s,background .25s}
.btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.btn.primary{background:var(--green);color:#fff}
.btn.secondary{background:var(--gold);color:#241d16}
.btn.ghost{background:#fff;color:var(--green);border:2px solid var(--green)}
.note{color:#6b5f52}
.hero-media img{width:100%;border-radius:24px;border:5px solid #fff;box-shadow:0 18px 40px rgba(31,92,61,.25);animation:heroIn 1s ease both}
.caption{text-align:center;font-style:italic;color:#6b5f52;margin:.5rem 0 0}
.marquee{background:var(--green);color:#fff;overflow:hidden;padding:.6rem 0;font-weight:800;letter-spacing:.05em}
.marquee-track{display:flex;width:max-content;animation:scroll 22s linear infinite}
.section{padding:3rem 5vw}
.section h2{font-size:clamp(1.7rem,4vw,2.5rem);margin:0 0 .4rem;color:var(--green)}
.sub{color:#6b5f52;margin-top:0}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:1.5rem}
.card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.08);transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-8px) rotate(-.5deg);box-shadow:0 16px 32px rgba(31,92,61,.22)}
.card img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .4s}
.card:hover img{transform:scale(1.06)}
.card h3,.card p{padding:0 1rem}
.card h3{color:var(--copper);margin:.8rem 0 .2rem}
.card p{margin:0 0 1.2rem}
.how{background:var(--green);color:#fff}
.how h2{color:#fff}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;list-style:none;padding:0}
.steps li{background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.25);border-radius:18px;padding:1.2rem;transition:transform .3s,background .3s}
.steps li:hover{transform:translateY(-5px);background:rgba(255,255,255,.2)}
.steps a{color:#ffd98a}
.holiday{font-weight:700;color:#ffd98a}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px;transition:transform .35s,box-shadow .35s}
.gallery img:hover{transform:scale(1.04) rotate(1deg);box-shadow:0 14px 30px rgba(0,0,0,.2)}
.more{font-size:1.05rem}
.book{background:linear-gradient(135deg,#fff3d6,#ffe3c2);text-align:center;border-radius:28px;margin:0 5vw 3rem;padding:3rem 1.5rem;box-shadow:0 12px 30px rgba(201,111,46,.18)}
.area{font-weight:600}
footer{background:var(--ink);color:#fff;text-align:center;padding:1.5rem}
footer a{color:#ffd98a}
.sticky-cta{display:none}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
@keyframes heroIn{from{opacity:0;transform:scale(.94) rotate(1deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pulseBtn{0%,100%{box-shadow:0 0 0 0 rgba(46,125,82,.45)}50%{box-shadow:0 0 0 12px rgba(46,125,82,0)}}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-1.5deg)}75%{transform:rotate(1.5deg)}}
.float-slow{animation:floaty 5s ease-in-out infinite}
.pulse{animation:pulseBtn 2.4s ease-in-out infinite}
.brand:hover{animation:wiggle .5s ease}
@media(max-width:800px){
  .hero{grid-template-columns:1fr;padding-top:1.5rem}
  .cards{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .topbar nav{display:none}
  .call-btn{display:none}
  .sticky-cta{display:block;position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);background:var(--green);color:#fff;padding:.9rem 1.8rem;border-radius:999px;text-decoration:none;font-weight:800;box-shadow:0 10px 24px rgba(0,0,0,.3);z-index:20;white-space:nowrap}
  body{padding-bottom:4.5rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
