/* Zerrillo Gardens — concept rebuild. Palette sampled from their own logo/flyer pixels:
   leaf-lime #90D068 (wordmark), magenta #D858B0 (tagline). Deep greens derived for grounds. */
@font-face{font-family:'Yeseva One';src:url('fonts/YesevaOne.woff2') format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'Figtree';src:url('fonts/Figtree.woff2') format('woff2');font-weight:300 800;font-display:swap;}

:root{
  --lime:#90D068;        /* their brand green (wordmark) */
  --lime-bright:#a6df80;
  --leaf:#3f7a33;        /* derived mid leaf-green */
  --pine:#254221;        /* derived deep ground */
  --pine2:#1c331a;       /* darkest ground */
  --magenta:#D858B0;     /* their tagline pink */
  --magenta-deep:#b23e8f;
  --paper:#f7f6ee;       /* warm paper */
  --paper2:#eef0e3;      /* soft tint */
  --ink:#22271f;
  --ink-soft:#4c5347;
  --line:#dfe1d2;
  --white:#ffffff;
  --shadow:0 18px 44px -20px rgba(30,50,25,.45);
  --shadow-sm:0 8px 22px -12px rgba(30,50,25,.4);
  --r:18px;
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);line-height:1.65;font-size:17px;overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--leaf);text-decoration:none;}
h1,h2,h3,.disp{font-family:'Yeseva One',Georgia,serif;font-weight:400;line-height:1.06;letter-spacing:.005em;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
.skip{position:absolute;left:-999px;top:0;background:var(--pine);color:#fff;padding:10px 16px;border-radius:0 0 10px 0;z-index:200;}
.skip:focus{left:0;}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:100;background:rgba(247,246,238,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:18px;height:74px;}
.brand{display:flex;align-items:center;gap:12px;min-width:0;}
.brand img{height:34px;width:auto;}
.brand .peace{height:34px;width:34px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--lime);}
.nav{display:flex;align-items:center;gap:4px;}
.nav a{color:var(--ink);font-weight:600;font-size:15px;padding:9px 13px;border-radius:10px;white-space:nowrap;position:relative;transition:color .2s,background .2s;}
.nav a:hover{color:var(--leaf);background:var(--paper2);}
.nav a.active{color:var(--leaf);}
.nav a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;background:var(--magenta);border-radius:2px;}
.hdr-call{display:inline-flex;align-items:center;gap:8px;background:var(--leaf);color:#fff;font-weight:700;font-size:14px;padding:10px 16px;border-radius:999px;white-space:nowrap;}
.hdr-call:hover{background:var(--pine);}
.mnav{display:none;}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer;}
.burger span{display:block;width:24px;height:2.5px;background:var(--ink);margin:5px 0;border-radius:2px;transition:.3s;}
.chip{display:inline-flex;align-items:center;gap:7px;font-family:'Figtree';font-size:13px;font-weight:600;padding:5px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink-soft);}
.chip .dot{width:8px;height:8px;border-radius:50%;background:#bbb;}
.chip.open .dot{background:#3fae4b;box-shadow:0 0 0 3px rgba(63,174,75,.2);}
.chip.closed .dot{background:#c98a2e;}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(88vh,720px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;}
.hero-img{position:absolute;inset:0;z-index:0;}
.hero-img img{width:100%;height:100%;object-fit:cover;}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(28,45,20,.28) 0%,rgba(24,40,18,.15) 40%,rgba(20,34,15,.82) 100%);}
.hero-in{position:relative;z-index:2;width:100%;padding:0 22px 54px;}
.hero-inner{max-width:var(--maxw);margin:0 auto;}
.hero .eyebrow{display:inline-flex;align-items:center;gap:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:12.5px;color:var(--lime-bright);margin-bottom:16px;}
.hero .eyebrow .em{width:22px;height:22px;border-radius:50%;box-shadow:0 0 0 1.5px var(--lime);}
.hero h1{font-size:clamp(2.6rem,6.4vw,5rem);color:#fff;text-shadow:0 3px 30px rgba(0,0,0,.35);max-width:15ch;}
.hero .lede{margin-top:18px;max-width:52ch;font-size:clamp(1.02rem,1.7vw,1.22rem);color:rgba(255,255,255,.94);}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}
.tagline-script{font-family:'Yeseva One',serif;font-style:italic;color:var(--lime-bright);}

/* buttons — one system */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15px;padding:14px 24px;border-radius:999px;cursor:pointer;border:2px solid transparent;transition:transform .15s,background .2s,color .2s,border-color .2s;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--magenta);color:#fff;}
.btn-primary:hover{background:var(--magenta-deep);}
.btn-leaf{background:var(--lime);color:var(--pine2);}
.btn-leaf:hover{background:var(--lime-bright);}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(3px);}
.btn-ghost:hover{background:rgba(255,255,255,.22);}
.btn-out{background:transparent;color:var(--leaf);border-color:var(--leaf);}
.btn-out:hover{background:var(--leaf);color:#fff;}

/* ---------- sections ---------- */
section{position:relative;}
.pad{padding:clamp(56px,8vw,104px) 0;}
.pad-sm{padding:clamp(40px,6vw,72px) 0;}
.ground-pine{background:var(--pine);color:#f2f5ec;}
.ground-pine h2,.ground-pine h3{color:#fff;}
.ground-tint{background:var(--paper2);}
.eyebrow2{display:inline-flex;align-items:center;gap:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;font-size:12.5px;color:var(--magenta-deep);margin-bottom:14px;}
.ground-pine .eyebrow2{color:var(--lime-bright);}
.eyebrow2 .em{width:18px;height:18px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1.5px currentColor;}
h2.big{font-size:clamp(2rem,4.2vw,3.1rem);max-width:20ch;}
.lead{font-size:clamp(1.05rem,1.7vw,1.24rem);color:var(--ink-soft);max-width:60ch;}
.ground-pine .lead{color:#d9e3cf;}

/* about split */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;}
.split.rev{grid-template-columns:.95fr 1.05fr;}
.split .media{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);}
.split .media img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.about-p{font-size:1.1rem;color:var(--ink-soft);}
.ground-pine .about-p{color:#dbe5d1;}
.stats{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px;}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 20px;min-width:120px;box-shadow:var(--shadow-sm);}
.ground-pine .stat{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);}
.stat b{font-family:'Yeseva One',serif;font-size:1.9rem;color:var(--leaf);display:block;line-height:1;}
.ground-pine .stat b{color:var(--lime-bright);}
.stat span{font-size:13px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;}
.ground-pine .stat span{color:#c3d1b6;}

/* product category cards */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.cat{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);background:#fff;display:flex;flex-direction:column;}
.cat .ph{aspect-ratio:4/5;overflow:hidden;background:var(--paper2);}
.cat .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.cat:hover .ph img{transform:scale(1.06);}
.cat .body{padding:20px 22px 24px;}
.cat h3{font-size:1.5rem;margin-bottom:7px;}
.cat p{font-size:.96rem;color:var(--ink-soft);}
.cat.textonly{padding:26px;justify-content:center;min-height:200px;background:linear-gradient(150deg,var(--paper2),#fff);border:1px dashed var(--line);}

/* gallery grid */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.gal.g3{grid-template-columns:repeat(3,1fr);}
.gal figure{position:relative;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;background:var(--paper2);}
.gal img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.gal figure:hover img{transform:scale(1.07);}
.gal.tall img{aspect-ratio:3/4;}

/* category block on products page */
.prodblock{margin-bottom:clamp(44px,6vw,76px);}
.prodblock:last-child{margin-bottom:0;}
.prodhead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px;}
.prodhead h3{font-size:clamp(1.6rem,3vw,2.2rem);}
.prodhead p{color:var(--ink-soft);max-width:52ch;margin-top:6px;}

/* full-bleed feature band */
.band{position:relative;min-height:420px;display:flex;align-items:center;color:#fff;overflow:hidden;}
.band-img{position:absolute;inset:0;z-index:0;}
.band-img img{width:100%;height:100%;object-fit:cover;}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,34,15,.82),rgba(20,34,15,.34));z-index:1;}
.band .wrap{position:relative;z-index:2;}
.band h2{color:#fff;}

/* visit / hours */
.visit-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(26px,4vw,50px);}
.hours-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.hcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow-sm);}
.hcard h4{font-family:'Figtree';font-size:1.02rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--leaf);margin-bottom:14px;display:flex;align-items:center;gap:9px;}
.hcard h4 .tag{font-size:11px;font-weight:700;background:var(--paper2);color:var(--ink-soft);padding:3px 9px;border-radius:999px;text-transform:none;letter-spacing:0;}
.hrow{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dotted var(--line);font-size:15px;}
.hrow:last-child{border-bottom:0;}
.hrow.today{font-weight:800;color:var(--ink);}
.hrow.today .d::before{content:"›";color:var(--magenta);margin-right:6px;font-weight:900;}
.hrow .t{color:var(--ink-soft);font-variant-numeric:tabular-nums;}
.hrow.today .t{color:var(--leaf);}

.info-card{background:var(--pine);color:#eef3e6;border-radius:var(--r);padding:30px;box-shadow:var(--shadow);}
.info-card h3{color:#fff;margin-bottom:6px;}
.info-line{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12);}
.info-line:last-child{border-bottom:0;}
.info-line .ic{flex:0 0 22px;color:var(--lime-bright);padding-top:2px;}
.info-line a{color:#fff;font-weight:600;}
.info-line small{display:block;color:#b9c9ab;font-weight:500;}
.map-embed{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
.map-embed a{display:block;position:relative;}
.map-embed .maplabel{position:absolute;left:16px;bottom:16px;background:#fff;color:var(--ink);padding:10px 16px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:var(--shadow-sm);display:inline-flex;gap:8px;align-items:center;}

/* contact form */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field.full{grid-column:1/-1;}
.field label{font-weight:700;font-size:14px;color:var(--ink-soft);}
.field input,.field textarea{font-family:'Figtree';font-size:16px;padding:13px 15px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);transition:border-color .2s;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--lime);box-shadow:0 0 0 3px rgba(144,208,104,.22);}
.field textarea{min-height:140px;resize:vertical;}
.formnote{font-size:13px;color:var(--ink-soft);margin-top:10px;}

/* footer */
.foot{background:var(--pine2);color:#c8d5bc;padding:56px 0 30px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px;}
.foot h5{font-family:'Figtree';font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:13px;color:var(--lime-bright);margin-bottom:16px;}
.foot a{color:#d8e3cd;}
.foot a:hover{color:#fff;}
.foot ul{list-style:none;}
.foot ul li{margin-bottom:9px;}
.foot .brand-block img{height:30px;margin-bottom:14px;}
.foot .tag{font-family:'Yeseva One',serif;font-style:italic;color:var(--lime-bright);font-size:1.15rem;margin:10px 0 16px;}
.socials{display:flex;gap:12px;margin-top:6px;}
.socials a{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#dfe9d4;transition:background .2s,transform .15s;}
.socials a:hover{background:var(--lime);color:var(--pine2);transform:translateY(-2px);}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:40px;padding-top:22px;font-size:13px;color:#9db08e;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}

/* mobile call bar */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--pine);border-top:1px solid rgba(255,255,255,.12);padding:9px 12px;gap:9px;}
.callbar a{flex:1;text-align:center;padding:12px;border-radius:12px;font-weight:700;font-size:14px;}
.callbar .c1{background:var(--lime);color:var(--pine2);}
.callbar .c2{background:rgba(255,255,255,.1);color:#fff;}

/* bloom-in reveal (signature motion) — hidden state gated behind .js so content
   is NEVER load-bearing on JS (no-JS renders fully visible). */
html.js .bloom{opacity:0;transform:scale(.94) translateY(18px);filter:blur(6px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1),filter .9s ease;}
html.js .bloom.in{opacity:1;transform:none;filter:none;}
.bloom.d1{transition-delay:.08s;} .bloom.d2{transition-delay:.16s;} .bloom.d3{transition-delay:.24s;} .bloom.d4{transition-delay:.32s;} .bloom.d5{transition-delay:.4s;}

/* lightbox */
.lb{position:fixed;inset:0;z-index:300;background:rgba(18,28,14,.92);display:none;align-items:center;justify-content:center;padding:24px;}
.lb.on{display:flex;}
.lb img{max-width:92vw;max-height:88vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6);}
.lb button{position:absolute;top:18px;right:20px;background:rgba(255,255,255,.14);border:0;color:#fff;width:46px;height:46px;border-radius:50%;font-size:22px;cursor:pointer;}
.lb .nav-lb{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.14);border:0;color:#fff;width:52px;height:52px;border-radius:50%;font-size:24px;cursor:pointer;}
.lb .prev-lb{left:16px;} .lb .next-lb{right:16px;}

@media (max-width:900px){
  .nav,.hdr-call{display:none;}
  .burger{display:block;}
  .mnav{display:block;position:absolute;left:0;right:0;top:74px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(-8px);transition:.25s;padding:10px 0;}
  .mnav.open{opacity:1;pointer-events:auto;transform:none;}
  .mnav a{display:block;padding:14px 22px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line);}
  .mnav a:last-child{border-bottom:0;}
  .split,.split.rev,.visit-grid{grid-template-columns:1fr;}
  .split.rev .media{order:-1;}
  .cat-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .gal{grid-template-columns:repeat(3,1fr);}
  .foot-grid{grid-template-columns:1fr;gap:26px;}
  .callbar{display:flex;}
  body{padding-bottom:64px;}
}
@media (max-width:560px){
  .cat-grid,.gal,.gal.g3,.hours-cards,.form-grid{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
  .hours-cards{grid-template-columns:1fr;}
  .hero h1{font-size:clamp(2.1rem,9vw,2.8rem);}
  .brand img{height:27px;}
  .brand .peace{height:30px;width:30px;}
  .hdr-in{gap:10px;}
  .band{min-height:340px;}
}
@media (prefers-reduced-motion:reduce){
  .bloom{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;}
  *{scroll-behavior:auto!important;}
  .cat:hover .ph img,.gal figure:hover img{transform:none;}
}

.foot .connect{font-family:'Figtree';font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:12px;color:var(--lime-bright);margin:18px 0 4px;}
