:root{
  --forest:#22331B;
  --pine:#33491F;
  --sage:#ADC28C;
  --sage-soft:#DCE5CB;
  --marigold:#E9A413;
  --glass:#F5F4EC;
  --soil:#3A3226;
  --white:#FFFFFF;
  --display:'Fraunces',Georgia,serif;
  --body:'Karla',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{font-family:var(--body);color:var(--soil);background:var(--glass);line-height:1.6;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--pine)}
:focus-visible{outline:3px solid var(--marigold);outline-offset:2px}
h1,h2,h3{font-family:var(--display);color:var(--forest);font-weight:500;line-height:1.12}
.eyebrow{font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pine)}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.btn{display:inline-block;font-family:var(--body);font-weight:700;font-size:.95rem;text-decoration:none;padding:14px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:var(--marigold);color:var(--forest)}
.btn-gold:hover{background:#f2b02a}
.btn-outline{border-color:var(--forest);color:var(--forest);background:transparent}
.btn-outline:hover{background:var(--forest);color:var(--glass)}
.btn-light{border-color:var(--sage);color:var(--glass);background:transparent}
.btn-light:hover{background:var(--sage);color:var(--forest)}

/* ---------- Nav ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(245,244,236,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--sage-soft)}
.nav{display:flex;align-items:center;gap:28px;padding:12px 24px;max-width:1200px;margin:0 auto}
.nav-logo img{height:52px;width:auto}
.nav-links{display:flex;gap:22px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav-links a{text-decoration:none;font-weight:700;font-size:.92rem;color:var(--forest)}
.nav-links a:hover{color:var(--marigold)}
.nav-links a.wholesale-link{background:var(--forest);color:var(--glass);padding:9px 18px;border-radius:999px}
.nav-links a.wholesale-link:hover{background:var(--pine);color:var(--glass)}
.hours-pill{font-size:.8rem;font-weight:700;color:var(--pine);background:var(--sage-soft);padding:6px 14px;border-radius:999px;white-space:nowrap}
.banner{background:var(--marigold);text-align:center;padding:9px 18px;font-size:.92rem;font-weight:700;color:var(--forest)}
.banner a{color:var(--forest)}
/* ---------- FAQ ---------- */
.faq{background:#EDEEDF;padding:88px 0}
.faq h2{font-size:clamp(1.8rem,3.6vw,2.5rem);margin:12px 0 36px}
.faq .wrap{max-width:820px}
.faq details{background:var(--white);border-radius:12px;margin-bottom:10px;box-shadow:0 1px 6px rgba(34,51,27,.08)}
.faq summary{cursor:pointer;padding:18px 24px;font-family:var(--display);font-size:1.08rem;font-weight:600;color:var(--forest);list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--marigold);font-size:1.3rem;font-family:var(--body);font-weight:700}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{border-bottom:1px solid var(--sage-soft)}
.faq .a{padding:16px 24px 20px;font-size:.97rem}
.faq .a a{font-weight:700}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto}
.nav-toggle svg{width:28px;height:28px;display:block}
@media(max-width:760px){
  .hours-pill{display:none}
  .nav{gap:14px;position:relative}
  .nav-toggle{display:block}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--glass);border-bottom:2px solid var(--sage);flex-direction:column;align-items:flex-start;padding:14px 24px 20px;gap:16px;box-shadow:0 10px 20px rgba(34,51,27,.12)}
  .nav-links.open{display:flex}
  .nav-links a{font-size:1.05rem;padding:4px 0}
  .nav-links a.wholesale-link{padding:10px 20px}
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:88px 0 170px;background:linear-gradient(180deg,var(--glass) 0%,#EDEEDF 100%)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(51,73,31,.045) 0 1px,transparent 1px 96px),repeating-linear-gradient(0deg,rgba(51,73,31,.045) 0 1px,transparent 1px 96px)}
.hero-leaf{position:absolute;right:clamp(-150px,-7vw,-30px);top:clamp(-60px,-3vw,10px);width:clamp(320px,46vw,640px);opacity:.5;pointer-events:none}
.hero-bench{position:absolute;bottom:-4px;left:0;right:0;height:118px;pointer-events:none}
.hero-bench svg{width:100%;height:100%;display:block}
@media(max-width:680px){
  .hero{padding:64px 0 160px}
  .hero-leaf{width:60vw;right:-16vw;top:-24px;bottom:auto;opacity:.32}
}
.wave{background:var(--glass);line-height:0;margin-top:-1px}
.wave svg{display:block;width:100%;height:56px}
.hero-inner{position:relative;max-width:640px}
.hero h1{font-size:clamp(2.4rem,5.6vw,4rem);margin:18px 0 20px}
.hero h1 em{font-style:italic;color:var(--pine)}
.hero p.lede{font-size:1.15rem;max-width:34em;margin-bottom:34px}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero-facts{margin-top:44px;font-size:.9rem;font-weight:700;color:var(--pine);letter-spacing:.02em}
.hero-facts span{white-space:nowrap}
.hero-facts .dot{color:var(--marigold);margin:0 10px}

/* ---------- Practices band ---------- */
.practices{background:var(--forest);color:var(--sage-soft);padding:78px 0}
.practices .eyebrow{color:var(--sage)}
.practices h2{color:var(--glass);font-size:clamp(1.7rem,3.4vw,2.4rem);margin:14px 0 42px;max-width:18em}
.practice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:36px}
.practice h3{color:var(--marigold);font-size:1.25rem;margin-bottom:10px}
.practice .p-icon{width:54px;height:54px;margin-bottom:14px}
.practice .p-icon svg{width:100%;height:100%;display:block}
.practice p{font-size:.98rem;color:#D8E0C6}

/* ---------- Plant tags (signature) ---------- */
.growing{padding:88px 0}
.growing-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:44px}
.growing h2{font-size:clamp(1.8rem,3.6vw,2.5rem);margin-top:12px}
.growing-note{max-width:24em;font-size:.95rem;color:var(--pine)}
.tag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:22px}
.tag{background:var(--white);padding:26px 20px 40px;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),50% 100%,0 calc(100% - 22px));box-shadow:0 2px 10px rgba(34,51,27,.10);border-top:5px solid var(--sage)}
.tag h3{font-size:1.15rem;margin-bottom:8px}
.tag .t-icon{width:44px;height:44px;margin-bottom:10px}
.tag .t-icon svg{width:100%;height:100%;display:block}
.story-gh{width:min(240px,70%);margin:0 0 26px}
.story-gh svg{width:100%;height:auto;display:block}
.tag p{font-size:.9rem;color:#5C5546}
.tag .season{display:inline-block;margin-top:12px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--marigold)}
.extras{margin-top:48px;background:var(--sage-soft);border-radius:14px;padding:26px 30px;font-size:.98rem}
.extras strong{color:var(--forest)}

/* ---------- Story ---------- */
.story{background:#EDEEDF;padding:88px 0}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.story h2{font-size:clamp(1.8rem,3.6vw,2.5rem);margin:12px 0 20px}
.story p{margin-bottom:16px}
.milestones{border-left:3px solid var(--sage);padding-left:26px;display:grid;gap:26px}
.milestone .year{font-family:var(--display);font-size:1.4rem;color:var(--marigold);font-weight:600}
.milestone p{font-size:.95rem;margin:4px 0 0}
@media(max-width:820px){.story-grid{grid-template-columns:1fr}}

/* ---------- Visit ---------- */
.visit{padding:88px 0}
.visit h2{font-size:clamp(1.8rem,3.6vw,2.5rem);margin:12px 0 40px}
.visit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:36px}
.visit-card h3{font-size:1.1rem;margin-bottom:12px;color:var(--pine)}
.visit-card p{font-size:.98rem}
.visit-card a{font-weight:700}
.hours-table{width:100%;font-size:.98rem;border-collapse:collapse}
.hours-table td{padding:5px 0}
.hours-table td:last-child{text-align:right;font-weight:700;color:var(--forest)}

/* ---------- Wholesale view ---------- */
.ws-hero{background:var(--forest);padding:92px 0;color:var(--sage-soft)}
.ws-hero .eyebrow{color:var(--sage)}
.ws-hero h1{color:var(--glass);font-size:clamp(2.2rem,5vw,3.4rem);margin:16px 0 20px;max-width:15em}
.ws-hero p{max-width:36em;font-size:1.1rem;color:#D8E0C6}
.ws-body{padding:80px 0}
.ws-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
@media(max-width:860px){.ws-grid{grid-template-columns:1fr}}
.ws-info h2{font-size:1.6rem;margin-bottom:16px}
.ws-info p{margin-bottom:16px}
.ws-list{list-style:none;display:grid;gap:12px;margin:20px 0 32px}
.ws-list li{padding-left:28px;position:relative;font-size:.98rem}
.ws-list li::before{content:"";position:absolute;left:0;top:7px;width:12px;height:12px;background:var(--marigold);border-radius:50% 0 50% 50%;transform:rotate(45deg)}
.quote-form{background:var(--white);border-radius:16px;padding:34px;box-shadow:0 4px 18px rgba(34,51,27,.10)}
.quote-form h2{font-size:1.4rem;margin-bottom:6px}
.quote-form .sub{font-size:.9rem;color:#6B6455;margin-bottom:24px}
.field{margin-bottom:18px}
.field label{display:block;font-weight:700;font-size:.85rem;margin-bottom:6px;color:var(--forest)}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--sage-soft);border-radius:8px;font-family:var(--body);font-size:.95rem;background:var(--glass);color:var(--soil)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--marigold);border-color:var(--marigold)}
.field textarea{min-height:110px;resize:vertical}
.form-note{font-size:.82rem;color:#6B6455;margin-top:14px}
.confirm{display:none;background:var(--sage-soft);border-radius:10px;padding:16px 18px;margin-top:16px;font-size:.92rem;color:var(--forest);font-weight:700}

/* ---------- Footer ---------- */
footer{background:var(--forest);color:var(--sage-soft);padding:52px 0 40px}
.footer-grid{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;align-items:center}
.footer-logo{background:var(--glass);padding:12px 20px;border-radius:14px;display:inline-block}
.footer-logo img{height:56px;display:block}
footer p{font-size:.88rem}
footer a{color:var(--sage);font-weight:700;text-decoration:none}
footer a:hover{color:var(--marigold)}
/* ---------- Growing Guides ---------- */
.learn-hero{background:#EDEEDF;padding:80px 0 64px}
.learn-hero h1{font-size:clamp(2.1rem,4.6vw,3.2rem);margin:14px 0 16px}
.learn-hero p{max-width:38em;font-size:1.08rem}
.guide-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-top:44px}
.guide-card{display:block;text-decoration:none;background:var(--white);border-radius:14px;padding:26px 24px;border-top:5px solid var(--marigold);box-shadow:0 2px 10px rgba(34,51,27,.10);transition:transform .25s ease,box-shadow .25s ease}
.guide-card:hover{transform:translateY(-5px);box-shadow:0 12px 26px rgba(34,51,27,.16)}
.guide-card h3{font-size:1.15rem;margin-bottom:8px}
.guide-card p{font-size:.9rem;color:#5C5546}
.guide-card .read{display:inline-block;margin-top:12px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pine)}
.articles{padding:72px 0 90px}
.article{max-width:720px;margin:0 auto 84px;scroll-margin-top:100px}
.article:last-child{margin-bottom:0}
.article .eyebrow{color:var(--marigold)}
.article h2{font-size:clamp(1.7rem,3.4vw,2.3rem);margin:10px 0 22px}
.article h3{font-size:1.25rem;margin:32px 0 12px}
.article p{margin-bottom:16px}
.article ul{margin:0 0 16px 22px}
.article li{margin-bottom:8px}
.tip{background:var(--sage-soft);border-left:4px solid var(--pine);border-radius:0 12px 12px 0;padding:18px 22px;margin:24px 0;font-size:.95rem}
.tip strong{color:var(--forest);display:block;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.article-divider{border:none;border-top:2px dashed var(--sage);max-width:720px;margin:0 auto 84px}
.back-to-guides{display:inline-block;margin-top:24px;font-weight:700;font-size:.9rem}
.guide-fig{background:var(--white);border-radius:14px;padding:26px 24px 18px;margin:30px 0;box-shadow:0 2px 10px rgba(34,51,27,.08)}
.guide-fig svg{width:100%;height:auto;display:block}
.guide-fig figcaption{font-size:.83rem;color:#6B6455;margin-top:12px;text-align:center}
.htypes{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;text-align:center}
.htypes h4{font-family:var(--display);color:var(--forest);margin:10px 0 4px;font-size:1.02rem}
.htypes p{font-size:.78rem;color:#6B6455;margin:0;line-height:1.45}

/* ---------- Plant List ---------- */
.plants-hero{background:#EDEEDF;padding:80px 0 56px}
.plants-hero h1{font-size:clamp(2.1rem,4.6vw,3.2rem);margin:14px 0 16px}
.plants-hero p{max-width:38em;font-size:1.05rem}
.plant-tools{margin-top:34px}
.plant-search{width:100%;max-width:480px;padding:14px 22px;border:2px solid var(--sage);border-radius:999px;font-family:var(--body);font-size:1rem;background:var(--white);color:var(--soil)}
.plant-search:focus{outline:none;border-color:var(--marigold)}
.cat-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.cat-tab{border:2px solid var(--forest);background:transparent;color:var(--forest);font-family:var(--body);font-weight:700;padding:9px 20px;border-radius:999px;cursor:pointer;font-size:.9rem;transition:background .15s ease,color .15s ease}
.cat-tab:hover{background:var(--sage-soft)}
.cat-tab.active{background:var(--forest);color:var(--glass)}
.cat-tab .n{font-weight:400;opacity:.75;margin-left:4px}
.plant-list{padding:52px 0 90px}
.plant-list .wrap{max-width:860px}
.list-meta{font-size:.9rem;color:#6B6455;margin-bottom:22px}
.genus{background:var(--white);border-radius:12px;margin-bottom:10px;box-shadow:0 1px 6px rgba(34,51,27,.08)}
.genus summary{cursor:pointer;padding:16px 22px;font-family:var(--display);font-size:1.1rem;font-weight:600;color:var(--forest);display:flex;align-items:center;gap:10px;list-style:none}
.genus summary .count{margin-left:auto}
.genus summary::-webkit-details-marker{display:none}
.genus summary .count{font-family:var(--body);font-size:.75rem;font-weight:700;background:var(--sage-soft);color:var(--pine);padding:4px 12px;border-radius:999px;white-space:nowrap}
.genus[open] summary{border-bottom:1px solid var(--sage-soft)}
.genus ul{list-style:none;padding:14px 22px 18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:4px 24px}
.genus li{font-size:.92rem;padding:5px 0;border-bottom:1px dashed var(--sage-soft)}
.coming-soon{background:var(--white);border-radius:14px;padding:38px 32px;text-align:center;box-shadow:0 2px 10px rgba(34,51,27,.08)}
.coming-soon h3{margin-bottom:10px}
.no-results{text-align:center;padding:40px 0;color:#6B6455;display:none}
.plant-disclaimer{font-size:.85rem;color:#6B6455;margin-top:34px}

/* ---------- Events ---------- */
.events-hero{background:#EDEEDF;padding:80px 0 56px}
.events-hero h1{font-size:clamp(2.1rem,4.6vw,3.2rem);margin:14px 0 16px}
.events-hero p{max-width:38em;font-size:1.05rem}
.events-list{padding:56px 0 90px}
.events-list .wrap{max-width:820px}
.event-card{display:flex;gap:24px;background:var(--white);border-radius:14px;padding:26px 28px;margin-bottom:18px;box-shadow:0 2px 10px rgba(34,51,27,.10);align-items:flex-start}
.date-badge{flex:0 0 auto;width:76px;text-align:center;background:var(--marigold);border-radius:12px;padding:12px 6px 14px;color:var(--forest)}
.date-badge .mo{display:block;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.date-badge .day{display:block;font-family:var(--display);font-size:1.9rem;font-weight:600;line-height:1.1}
.date-badge .dow{display:block;font-size:.72rem;font-weight:700}
.event-body h3{font-size:1.25rem;margin-bottom:6px}
.event-meta{font-size:.85rem;font-weight:700;color:var(--pine);margin-bottom:10px}
.event-meta span{margin-right:16px;white-space:nowrap}
.event-body p{font-size:.96rem;margin-bottom:10px}
.event-cost{display:inline-block;font-size:.8rem;font-weight:700;background:var(--sage-soft);color:var(--forest);padding:4px 12px;border-radius:999px}
.events-empty{background:var(--white);border-radius:14px;padding:44px 32px;text-align:center;box-shadow:0 2px 10px rgba(34,51,27,.08)}
.events-empty h3{margin-bottom:10px}
.event-register{padding:10px 22px;font-size:.88rem;margin-top:6px}
.events-note{font-size:.9rem;color:#6B6455;margin-top:30px}
@media(max-width:560px){.event-card{flex-direction:row;padding:20px}.date-badge{width:64px}.date-badge .day{font-size:1.6rem}}
@media(min-width:761px) and (max-width:1040px){.nav-links{gap:14px}.nav-links a{font-size:.85rem}}

/* ---------- Email signup ---------- */
.signup{background:var(--forest);padding:64px 0}
.signup .wrap{display:flex;justify-content:space-between;align-items:center;gap:36px;flex-wrap:wrap}
.signup h2{color:var(--glass);font-size:clamp(1.5rem,3vw,2rem);margin:8px 0 10px}
.signup .eyebrow{color:var(--sage)}
.signup p{color:#D8E0C6;font-size:.95rem;max-width:32em}
.signup-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.signup-form input{padding:14px 20px;border-radius:999px;border:2px solid var(--sage);background:var(--glass);font-family:var(--body);font-size:.95rem;min-width:min(280px,70vw);color:var(--soil)}
.signup-form input:focus{outline:none;border-color:var(--marigold)}
.signup-confirm{display:none;color:var(--marigold);font-weight:700;font-size:.9rem;margin-top:12px}
/* ---------- Family ---------- */
.family{margin-top:70px}
.family h3{font-family:var(--display);font-size:1.6rem;font-weight:500;color:var(--forest);margin-bottom:26px}
.family-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:20px}
.family-card{background:var(--white);border-radius:14px;padding:26px 18px;text-align:center;box-shadow:0 2px 10px rgba(34,51,27,.10)}
.avatar{width:76px;height:76px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:1.35rem;font-weight:600;color:var(--forest)}
.av-1{background:var(--sage-soft)}.av-2{background:#F6E3B4}.av-3{background:#E8D5DE}.av-4{background:#D9E3EC}
.family-card h4{font-family:var(--display);color:var(--forest);font-size:1.08rem;font-weight:600}
.family-card p{font-size:.82rem;color:#6B6455;margin-top:5px}
/* ---------- Gallery ---------- */
.gallery{padding:88px 0}
.gallery h2{font-size:clamp(1.8rem,3.6vw,2.5rem);margin:12px 0 36px}
.g-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.g-tile{background:var(--white);border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(34,51,27,.10);margin:0}
.g-tile svg,.g-tile img{width:100%;height:160px;display:block;object-fit:cover}
.g-tile figcaption{padding:13px 18px;font-size:.86rem;font-weight:700;color:var(--forest)}
/* ---------- Back to top ---------- */
#toTop{position:fixed;bottom:22px;right:22px;width:48px;height:48px;border-radius:50%;background:var(--forest);color:var(--glass);border:2px solid var(--sage);font-size:1.15rem;cursor:pointer;box-shadow:0 6px 16px rgba(34,51,27,.3);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:60}
#toTop.show{opacity:1;pointer-events:auto}
#toTop:hover{background:var(--pine)}
/* ---------- Print ---------- */
@media print{
  header,.banner,footer,.hero-bench,.wave,#toTop,.signup,.back-to-guides,.hero-ctas,.article-divider{display:none!important}
  body{background:#fff;font-size:12pt}
  .hero,.practices,.story,.faq,.learn-hero,.plants-hero,.events-hero,.ws-hero{background:#fff!important;padding:20px 0!important}
  .practices,.practices h2,.practices p,.ws-hero h1,.ws-hero p{color:#000!important}
  .guide-fig,.tip,.tag,.genus,.event-card,.quote-form{box-shadow:none!important;border:1px solid #ccc}
  .article{max-width:100%}
  a{text-decoration:none;color:#000}
}

.view{display:none}
.view.active{display:block}

/* ---------- Motion (only for visitors who allow it) ---------- */
.tag{transition:transform .25s ease,box-shadow .25s ease}
.tag:hover{transform:translateY(-6px);box-shadow:0 12px 26px rgba(34,51,27,.16)}
@media (prefers-reduced-motion: no-preference){
  /* Hero entrance: staggered rise on load */
  .hero-inner > *{opacity:0;transform:translateY(26px);animation:rise .8s cubic-bezier(.22,.7,.35,1) forwards}
  .hero-inner > *:nth-child(1){animation-delay:.1s}
  .hero-inner > *:nth-child(2){animation-delay:.22s}
  .hero-inner > *:nth-child(3){animation-delay:.36s}
  .hero-inner > *:nth-child(4){animation-delay:.5s}
  .hero-inner > *:nth-child(5){animation-delay:.66s}
  @keyframes rise{to{opacity:1;transform:none}}
  /* The sage leaf: grows in, its vein draws across, then it sways like air through an open vent */
  .hero-leaf{transform-origin:15% 85%;animation:leafIn 1.3s cubic-bezier(.22,.7,.35,1) both,sway 10s ease-in-out 1.3s infinite alternate}
  @keyframes leafIn{from{opacity:0;transform:scale(.9) rotate(-5deg) translateY(24px)}to{opacity:.5;transform:scale(1) rotate(-1.6deg) translateY(0)}}
  .hero-leaf .vein{stroke-dasharray:620;stroke-dashoffset:620;animation:drawVein 1.5s ease-out .7s forwards}
  @keyframes drawVein{to{stroke-dashoffset:0}}
  @keyframes sway{from{transform:rotate(-1.6deg) translateY(0)}to{transform:rotate(2.2deg) translateY(10px)}}
  @media(max-width:680px){
    @keyframes leafIn{from{opacity:0;transform:scale(.9) rotate(-5deg) translateY(24px)}to{opacity:.4;transform:scale(1) rotate(-1.6deg) translateY(0)}}
  }
  /* Scroll-triggered reveals */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.7,.35,1)}
  .reveal.in{opacity:1;transform:none}
  /* Milestone years pop slightly after their card reveals */
  .milestone .year{display:inline-block;transition:transform .5s cubic-bezier(.34,1.56,.64,1) .25s;transform:scale(.85)}
  .milestone.in .year{transform:scale(1)}
}
/* multi-page additions */
.crumbs{font-size:.82rem;font-weight:700;color:#6B6455;margin-bottom:14px}
.crumbs a{color:var(--pine);text-decoration:none}
.filter-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.chip{border:2px solid var(--pine);background:transparent;color:var(--pine);font-family:var(--body);font-weight:700;font-size:.83rem;padding:8px 16px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}
.chip:hover{background:var(--sage-soft)}
.chip.on{background:var(--pine);color:var(--glass)}
.cat-head{display:flex;align-items:center;gap:14px;margin:54px 0 18px}
.cat-head:first-of-type{margin-top:0}
.cat-head svg{width:40px;height:40px;flex:0 0 auto}
.cat-head h2{font-size:clamp(1.5rem,3vw,2rem)}
.cat-count{font-size:.8rem;font-weight:700;color:var(--pine);background:var(--sage-soft);padding:4px 12px;border-radius:999px}
.article-page .article{margin:56px auto 70px}

.genus-desc{padding:12px 22px 0;font-size:.9rem;color:#5C5546;max-width:60em}
.genus[open] .genus-desc{border-top:none}

.native-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--body);font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:#F6E3B4;color:#7A4C2A;padding:4px 10px;border-radius:999px;white-space:nowrap}
.native-badge svg{width:11px;height:11px}

/* ---------- Gift cards ---------- */
.giftcards{background:linear-gradient(135deg,#22331B 0%,#33491F 100%);padding:72px 0}
.giftcards .wrap{display:flex;align-items:center;gap:48px;flex-wrap:wrap;justify-content:space-between}
.gift-copy{max-width:34em}
.gift-copy .eyebrow{color:var(--sage)}
.gift-copy h2{color:var(--glass);font-size:clamp(1.6rem,3.2vw,2.2rem);margin:10px 0 14px}
.gift-copy p{color:#D8E0C6;font-size:1rem;margin-bottom:22px}
.gift-fine{font-size:.82rem;color:#9FB183;margin-top:14px}
.gift-art{flex:0 0 auto;width:min(300px,80vw)}
.gift-art svg{width:100%;height:auto;display:block;filter:drop-shadow(0 14px 28px rgba(0,0,0,.28))}

/* photos */
.story-photo{width:100%;border-radius:14px;box-shadow:0 4px 18px rgba(34,51,27,.16);margin-top:8px;height:auto}
.family-photos{display:grid;grid-template-columns:3fr 2fr;gap:18px;margin-bottom:26px}
.family-photos img{width:100%;height:100%;object-fit:cover;border-radius:14px;box-shadow:0 4px 18px rgba(34,51,27,.14)}
@media(max-width:700px){.family-photos{grid-template-columns:1fr}}
.avatar{object-fit:cover}
.learn-flex{display:flex;gap:36px;align-items:flex-start}
.learn-photo{width:min(240px,36vw);border-radius:14px;box-shadow:0 4px 18px rgba(34,51,27,.16);height:auto}
@media(max-width:640px){.learn-flex{flex-direction:column}.learn-photo{width:70%}}
