/* Buttonwood Farm Nursery — concept redesign. Palette + type from their own assets. */
@font-face{font-family:'Fraunces';src:url(fraunces.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Hanken Grotesk';src:url(hanken.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}

:root{
  --cream:#f7f3ea; --cream-2:#efe7d7; --paper:#fffdf8;
  --ink:#241f1a; --ink-soft:#4f463d; --ink-faint:#7a6f62;
  --soil:#2a231d; --soil-2:#1d1712;
  --violet:#8a2fb0; --violet-deep:#6f2494; --violet-bright:#c044f0; --violet-tint:#f1e5f7;
  --leaf:#4a6b3f; --leaf-deep:#33502c;
  --sky:#84c2f7;
  --stone:#9a978f;
  --line:rgba(36,31,26,.13); --line-soft:rgba(36,31,26,.08);
  --shadow:0 18px 44px -24px rgba(36,20,45,.45);
  --shadow-sm:0 8px 20px -14px rgba(36,20,45,.4);
  --wrap:1180px; --radius:16px;
  --disp:'Fraunces',Georgia,serif; --ui:'Hanken Grotesk',system-ui,-apple-system,Segoe UI,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--ui);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--violet-deep);text-decoration:none}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;line-height:1.08;margin:0;color:var(--ink);letter-spacing:-.01em}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.eyebrow{font-family:var(--ui);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--violet-deep)}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:0;background:var(--violet);color:#fff;padding:10px 16px;z-index:200;border-radius:0 0 8px 0}
.skip:focus{left:0}

/* buttons — one system */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ui);font-weight:700;font-size:.98rem;
  padding:.82em 1.35em;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;white-space:nowrap;text-decoration:none}
.btn-primary{background:var(--violet);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--violet-deep);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--violet);color:var(--violet-deep);transform:translateY(-2px)}
.btn-light{background:rgba(255,255,255,.94);color:var(--ink)}
.btn-light:hover{background:#fff;transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.btn:hover{transform:none}}

/* header / nav */
.hdr{position:sticky;top:0;z-index:100;background:rgba(247,243,234,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--disp);font-weight:900;font-size:1.12rem;
  color:var(--ink);letter-spacing:-.02em;white-space:nowrap}
.brand svg{width:30px;height:30px;flex:none}
.brand small{display:block;font-family:var(--ui);font-weight:600;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-faint);margin-top:1px}
.navlinks{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}
.navlinks a{font-family:var(--ui);font-weight:600;font-size:.94rem;color:var(--ink-soft);white-space:nowrap;
  position:relative;padding:4px 0}
.navlinks a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--violet);transition:right .22s ease}
.navlinks a:hover{color:var(--ink)}
.navlinks a:hover::after{right:0}
.nav-cta{display:flex;align-items:center;gap:10px}
.nav-call{font-family:var(--ui);font-weight:800;color:var(--violet-deep);white-space:nowrap;font-size:.96rem}
.burger{display:none;background:none;border:1.5px solid var(--line);border-radius:10px;width:44px;height:40px;cursor:pointer;color:var(--ink)}
.burger svg{width:22px;height:22px;margin:auto;display:block}

/* mobile nav */
@media (max-width:920px){
  .navlinks,.nav .nav-call{display:none}
  .burger{display:flex}
  .mobnav{position:absolute;left:0;right:0;top:64px;background:var(--paper);border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.2s ease;z-index:99}
  .mobnav.open{opacity:1;visibility:visible;transform:none}
  .mobnav ul{list-style:none;margin:0;padding:12px}
  .mobnav a{display:block;padding:13px 12px;font-weight:600;color:var(--ink);border-radius:10px}
  .mobnav a:hover{background:var(--violet-tint)}
}
@media (min-width:921px){.mobnav{display:none}}

/* hero */
.hero{position:relative;min-height:min(86vh,720px);display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero-scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(29,15,38,.28) 0%,rgba(29,15,38,.12) 34%,rgba(29,15,38,.62) 82%,rgba(29,15,38,.86) 100%),
  linear-gradient(90deg,rgba(111,36,148,.42) 0%,rgba(111,36,148,0) 58%)}
.hero-inner{position:relative;z-index:2;padding:0 22px 58px;max-width:var(--wrap);margin:0 auto;width:100%}
.hero .eyebrow{color:#f0d8ff}
.hero h1{color:#fff;font-size:clamp(2.5rem,6.6vw,4.9rem);font-weight:900;letter-spacing:-.025em;max-width:15ch;
  text-shadow:0 2px 30px rgba(20,8,30,.5);margin:.14em 0 .3em}
.hero h1 em{font-style:italic;color:#eecbff;font-weight:600}
.hero-sub{font-size:clamp(1.02rem,2vw,1.28rem);max-width:52ch;color:#f4ecf7;margin-bottom:1.6em;
  text-shadow:0 1px 14px rgba(20,8,30,.5)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero-facts{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:26px;font-size:.9rem;color:#eaddef}
.hero-facts b{color:#fff}
.load-up{opacity:0;transform:translateY(16px);animation:loadUp .8s cubic-bezier(.2,.7,.2,1) forwards}
.load-up.d1{animation-delay:.08s}.load-up.d2{animation-delay:.16s}.load-up.d3{animation-delay:.26s}.load-up.d4{animation-delay:.36s}
@keyframes loadUp{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.load-up{animation:none;opacity:1;transform:none}}

/* lattice divider — abstract greenhouse-trellis motif (their white lattice greenhouse) */
.lattice{height:16px;background-image:
  repeating-linear-gradient(45deg,var(--violet) 0 1.5px,transparent 1.5px 13px),
  repeating-linear-gradient(-45deg,var(--violet) 0 1.5px,transparent 1.5px 13px);
  background-color:transparent;opacity:.28}
.lattice.on-dark{background-image:
  repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 1.5px,transparent 1.5px 13px),
  repeating-linear-gradient(-45deg,rgba(255,255,255,.55) 0 1.5px,transparent 1.5px 13px);opacity:.35}

/* sections */
section{padding:74px 0}
.sec-head{max-width:60ch;margin-bottom:34px}
.sec-head.center{margin-left:auto;margin-right:auto}
.sec-head h2{font-size:clamp(2rem,4.4vw,3rem);margin:.18em 0 .35em}
.sec-head p{color:var(--ink-soft);font-size:1.06rem}
.band-cream2{background:var(--cream-2)}
.band-soil{background:var(--soil);color:#efe6dd}
.band-soil h2,.band-soil h3{color:#fff}
.band-soil .eyebrow{color:#e2b9f5}
.band-soil p{color:#d8ccc2}
.band-violet{background:linear-gradient(160deg,var(--violet-deep),#4d1668);color:#fff}
.band-violet h2,.band-violet .eyebrow{color:#fff}
.band-violet .eyebrow{color:#f0d3ff}
.band-violet p{color:#f0e2f6}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.06s}.reveal.d2{transition-delay:.13s}.reveal.d3{transition-delay:.2s}.reveal.d4{transition-delay:.27s}.reveal.d5{transition-delay:.34s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* intro / lede */
.lede{font-family:var(--disp);font-weight:400;font-size:clamp(1.3rem,2.8vw,1.9rem);line-height:1.35;color:var(--ink);max-width:24ch}
.lede em{font-style:italic;color:var(--violet-deep)}
.two-col{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center}
@media (max-width:840px){.two-col{grid-template-columns:1fr;gap:28px}}
.seasonchip{display:inline-flex;align-items:center;gap:8px;background:var(--violet-tint);color:var(--violet-deep);
  font-weight:700;font-size:.86rem;padding:.5em 1em;border-radius:999px;border:1px solid rgba(138,47,176,.22)}

/* pill row facts */
.factgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:760px){.factgrid{grid-template-columns:repeat(2,1fr)}}
.fact{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px;text-align:center}
.fact b{display:block;font-family:var(--disp);font-weight:900;font-size:1.7rem;color:var(--violet-deep);line-height:1}
.fact span{display:block;font-size:.84rem;color:var(--ink-soft);margin-top:8px}

/* ===== WIDGET: price finder ===== */
.finder{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.finder-grid{display:grid;grid-template-columns:1.35fr .9fr}
@media (max-width:880px){.finder-grid{grid-template-columns:1fr}}
.finder-left{padding:30px}
.finder-right{background:linear-gradient(165deg,#2f2028,#1d1712);padding:30px;color:#f4ecf1}
.finder h3{font-size:1.35rem;margin-bottom:4px}
.finder .step{font-family:var(--ui);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;
  color:var(--violet-deep);margin:22px 0 10px;display:flex;align-items:center;gap:8px}
.finder .step:first-of-type{margin-top:14px}
.finder .step .n{background:var(--violet);color:#fff;width:20px;height:20px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;font-size:.72rem}
.matgroup{margin-bottom:6px}
.matgroup .cat{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px}
.swatchrow{display:flex;flex-wrap:wrap;gap:8px}
.swatch{display:flex;align-items:center;gap:9px;background:var(--cream);border:1.5px solid var(--line);
  border-radius:12px;padding:8px 12px 8px 8px;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--ink);
  transition:border-color .16s ease,background .16s ease,transform .12s ease}
.swatch:hover{border-color:var(--violet);transform:translateY(-1px)}
.swatch[aria-pressed="true"]{border-color:var(--violet);background:var(--violet-tint);box-shadow:0 0 0 1px var(--violet) inset}
.swatch .dot{width:22px;height:22px;border-radius:7px;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.swatch .price{color:var(--violet-deep);font-weight:800}
.swatch .price.call{color:var(--ink-faint);font-weight:700;font-size:.82rem}
.qtyrow,.zonerow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:var(--cream)}
.stepper button{width:42px;height:44px;border:none;background:transparent;font-size:1.3rem;cursor:pointer;color:var(--violet-deep);font-weight:700}
.stepper button:hover{background:var(--violet-tint)}
.stepper input{width:62px;height:44px;border:none;background:transparent;text-align:center;font-family:var(--ui);
  font-weight:800;font-size:1.1rem;color:var(--ink);-moz-appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.unit{font-size:.9rem;color:var(--ink-soft)}
select.zone{appearance:none;border:1.5px solid var(--line);border-radius:12px;background:var(--cream)
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236f2494' stroke-width='2'><path d='M4 6l4 4 4-4'/></svg>") no-repeat right 14px center;
  padding:12px 40px 12px 14px;font-family:var(--ui);font-weight:600;font-size:.95rem;color:var(--ink);width:100%;max-width:100%;cursor:pointer}
/* ticket (right side) */
.ticket .tk-eyebrow{font-family:var(--ui);font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:#e2b9f5}
.ticket h4{font-family:var(--disp);color:#fff;font-size:1.2rem;margin:4px 0 18px}
.tk-line{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px dashed rgba(255,255,255,.18);font-size:.95rem;color:#e9dde6}
.tk-line .v{font-weight:700;color:#fff;white-space:nowrap}
.tk-line.muted{color:#b7a7b3}
.tk-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;padding-top:16px;border-top:2px solid rgba(255,255,255,.3)}
.tk-total span{font-family:var(--ui);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:#e2b9f5}
.tk-total b{font-family:var(--disp);font-weight:900;font-size:2.4rem;color:#fff;line-height:1}
.tk-note{font-size:.8rem;color:#c3b3c0;margin-top:16px;line-height:1.5}
.tk-flag{background:rgba(192,68,240,.16);border:1px solid rgba(226,185,245,.4);border-radius:12px;padding:12px 14px;
  font-size:.85rem;color:#f2e2f8;margin-top:14px;line-height:1.5}
.tk-cta{display:block;text-align:center;margin-top:16px}
.finder-foot{background:var(--cream-2);border-top:1px solid var(--line);padding:16px 30px;font-size:.86rem;color:var(--ink-soft)}
.finder-foot b{color:var(--ink)}

/* pricing reference table */
.pricetable{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.pricecats{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media (max-width:760px){.pricecats{grid-template-columns:1fr}}
.pricecard{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow-sm)}
.pricecard h3{font-size:1.24rem;display:flex;align-items:center;gap:10px;margin-bottom:6px}
.pricecard h3 .swz{width:20px;height:20px;border-radius:6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.pricecard .cap{font-size:.82rem;color:var(--ink-faint);margin-bottom:14px}
.plist{list-style:none;margin:0;padding:0}
.plist li{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:9px 0;border-bottom:1px dotted var(--line)}
.plist li:last-child{border-bottom:none}
.plist .nm{color:var(--ink)}
.plist .pr{font-family:var(--disp);font-weight:900;color:var(--violet-deep);white-space:nowrap;font-size:1.05rem}
.plist .pr.call{font-family:var(--ui);font-size:.82rem;font-weight:700;color:var(--ink-faint)}

/* delivery zones */
.zonegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:820px){.zonegrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.zonegrid{grid-template-columns:1fr}}
.zonecard{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:16px 18px}
.zonecard .z{font-size:.95rem;color:#f1e8ef}
.zonecard .zp{font-family:var(--disp);font-weight:900;font-size:1.5rem;color:#fff;margin-top:4px}
.cap-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.capchip{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.5em 1.1em;font-size:.86rem;color:#f1e8ef}
.capchip b{color:#fff}

/* nursery cards */
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:860px){.cardgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cardgrid{grid-template-columns:1fr}}
.pcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform .2s ease,box-shadow .2s ease}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.pcard .ph{aspect-ratio:4/3;overflow:hidden;background:var(--cream-2)}
.pcard .ph img{width:100%;height:100%;object-fit:cover}
.pcard .cap{padding:14px 16px;font-weight:700;color:var(--ink);font-size:.98rem}

/* gallery masonry */
.gallery{columns:4 220px;column-gap:14px}
.gallery figure{margin:0 0 14px;break-inside:avoid;border-radius:12px;overflow:hidden;position:relative;box-shadow:var(--shadow-sm);background:var(--cream-2)}
.gallery img{width:100%;display:block;transition:transform .4s ease}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,rgba(29,15,38,.82),transparent);
  color:#fff;font-size:.82rem;font-weight:600;padding:22px 12px 10px}
@media (prefers-reduced-motion:reduce){.gallery figure:hover img{transform:none}}

/* about strip */
.about-photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.familytag{font-family:var(--disp);font-style:italic;color:var(--violet-deep);font-size:1.1rem}
.verse{font-family:var(--disp);font-style:italic;font-size:1.15rem;color:#efe0f7;max-width:40ch}
.verse cite{display:block;font-style:normal;font-family:var(--ui);font-weight:700;font-size:.82rem;letter-spacing:.06em;
  text-transform:uppercase;color:#d6b6ec;margin-top:10px}

/* contact / footer */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}
@media (max-width:780px){.contact-grid{grid-template-columns:1fr}}
.info-row{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.info-row svg{width:22px;height:22px;flex:none;color:var(--violet-deep);margin-top:2px}
.info-row .lbl{font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint)}
.info-row a{color:var(--ink);font-weight:600}
.info-row a:hover{color:var(--violet-deep)}
.openchip{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.88rem;padding:.45em .95em;border-radius:999px;border:1px solid var(--line)}
.openchip .dot{width:9px;height:9px;border-radius:50%}
.openchip.open{background:#eef4ea;color:var(--leaf-deep);border-color:rgba(74,107,63,.3)}
.openchip.open .dot{background:var(--leaf)}
.openchip.closed{background:var(--cream-2);color:var(--ink-soft)}
.openchip.closed .dot{background:var(--stone)}

form.qform{display:grid;gap:14px}
form.qform label{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:-6px}
form.qform input,form.qform textarea{font-family:var(--ui);font-size:1rem;padding:13px 15px;border:1.5px solid var(--line);
  border-radius:12px;background:var(--paper);color:var(--ink);width:100%}
form.qform input:focus,form.qform textarea:focus{outline:none;border-color:var(--violet)}
.form-note{font-size:.82rem;color:var(--ink-faint)}

footer{background:var(--soil-2);color:#cdbfc9;padding:52px 0 30px;font-size:.92rem}
footer .fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;margin-bottom:30px}
@media (max-width:720px){footer .fgrid{grid-template-columns:1fr;gap:22px}}
footer h4{color:#fff;font-size:1.05rem;margin-bottom:10px}
footer a{color:#e6d7ef}
footer a:hover{color:#fff}
footer .fbrand{font-family:var(--disp);font-weight:900;font-size:1.3rem;color:#fff}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin:6px 0}
.fbar{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:10px;font-size:.82rem;color:#a596a2}

/* sticky mobile call */
.mcall{display:none}
@media (max-width:920px){
  .mcall{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--violet);color:#fff;
    align-items:center;justify-content:center;gap:10px;padding:14px;font-weight:800;box-shadow:0 -8px 24px -12px rgba(0,0,0,.4)}
  .mcall a{color:#fff}
  body{padding-bottom:56px}
}
.subhero{background:var(--soil);color:#fff;padding:64px 0 48px}
.subhero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.4rem)}
.subhero p{color:#d8ccc2;max-width:56ch;margin-top:10px}
.crumb{font-size:.85rem;color:#c9b7d6;margin-bottom:8px}
.crumb a{color:#e2b9f5}
