/* Rhimahden Plant Nursery · Swan Hill Garden Centre
   One system for every page. Tokens from design-package.md §2 and §3.
   Tomato red is the call to action and nothing else. */
/* Self-hosted fonts (Latin subset from Google Fonts): no third-party round trips before first paint */
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 600 800; font-stretch: 100%; font-display: swap; src: url(/assets/fonts/bricolage-grotesque-var.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/dmmono-normal-400.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/dmmono-normal-500.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Newsreader'; font-style: italic; font-weight: 400; font-display: swap; src: url(/assets/fonts/newsreader-italic.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Newsreader'; font-style: normal; font-weight: 400 500; font-display: swap; src: url(/assets/fonts/newsreader-var.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root{
  --canvas:#F2F4EA;
  --panel:#E7EBDB;
  --straw:#EBDDB8;
  --straw-2:#E0CC9C;
  --canopy:#1C3520;
  --canopy-2:#24432A;
  --leaf:#4C8A3B;
  --leaf-deep:#356628;          /* leaf as text on the light canvas (5.6:1) */
  --sun:#F0B43C;
  --tomato:#C93624;             /* white on tomato 4.9:1 */
  --tomato-hover:#AE2B1B;
  --soil:#8B4A2D;
  --text-primary:#18231A;
  --text-secondary:#4A584B;     /* 6.6:1 on canvas */
  --text-on-dark:#F1F0E6;
  --text-on-dark-2:#B9C3B2;     /* 8.3:1 on canopy */
  --line:#CDD4BF;
  --line-strong:#8E9A86;        /* interactive borders on canvas (3.1:1) */
  --line-dark:#33503A;

  --f-display:"Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-body:"Newsreader", Georgia, "Times New Roman", serif;
  --f-mono:"DM Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --tshadow:0 1px 2px rgba(10,18,10,.95),0 3px 12px rgba(10,18,10,.78),0 10px 44px rgba(10,18,10,.8);

  --gx:clamp(20px,5.6vw,92px);
  --maxw:1220px;
  --pad-x:max(var(--gx),calc((100% - var(--maxw)) / 2));
  --nav-h:76px;
  --radius:14px;
}

/* Base. Element selectors wrapped in :where() so component classes always win (lessons.md). */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 12px)}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--text-primary);font-family:var(--f-body);font-size:1.15rem;line-height:1.6;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;animation:page-in .7s var(--ease-out) both}
@keyframes page-in{from{opacity:0}to{opacity:1}}
:where(img,svg,video,canvas,iframe){display:block;max-width:100%}
:where(h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd){margin:0}
:where(ul,ol){padding:0;list-style:none}
:where(a){color:inherit}
:where(a[href^="tel:"]){white-space:nowrap}
:where(button){font:inherit;color:inherit}
:where(table){border-collapse:collapse}
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--tomato);outline-offset:3px;border-radius:4px}
.on-dark :where(a,button,summary,[tabindex]):focus-visible,.nav:not(.on-paper) :where(a,button):focus-visible{outline-color:var(--sun)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-60px;z-index:200;background:var(--sun);color:var(--canopy);padding:10px 16px;border-radius:8px;font-family:var(--f-mono);font-weight:500;text-decoration:none;transition:top .2s var(--ease-out)}
.skip:focus{top:12px}
main:focus{outline:none}
[data-confirm]{display:none!important}
html.preview [data-confirm]{display:revert!important;outline:2px dashed var(--tomato);outline-offset:4px}
html.preview [data-confirm]::before{content:"CONFIRM: " attr(data-confirm);display:block;font:500 .7rem/1.3 var(--f-mono);color:var(--tomato);letter-spacing:.06em;margin-bottom:6px}

/* Type */
.h-hero{font-family:var(--f-display);font-weight:800;font-variation-settings:"opsz" 96;letter-spacing:-0.035em;line-height:.98;font-size:clamp(2.6rem,6.4vw,5.6rem);text-wrap:balance}
.h1{font-family:var(--f-display);font-weight:800;font-variation-settings:"opsz" 96;letter-spacing:-0.03em;line-height:1;font-size:clamp(2.5rem,5.6vw,4.8rem);text-wrap:balance}
.h2{font-family:var(--f-display);font-weight:800;font-variation-settings:"opsz" 72;letter-spacing:-0.028em;line-height:1.04;font-size:clamp(2rem,4.2vw,3.5rem);text-wrap:balance;max-width:20ch}
.h3{font-family:var(--f-display);font-weight:600;letter-spacing:-0.015em;line-height:1.15;font-size:clamp(1.25rem,1.9vw,1.6rem);text-wrap:balance}
.h4{font-family:var(--f-display);font-weight:600;letter-spacing:-0.01em;line-height:1.2;font-size:1.12rem}
.lede{font-size:clamp(1.18rem,1.6vw,1.38rem);line-height:1.55;color:var(--text-secondary);max-width:58ch}
.on-dark .lede{color:var(--text-on-dark-2)}
.eyebrow,.label{font-family:var(--f-mono);font-weight:500;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.4}
.eyebrow{color:var(--leaf-deep);margin-bottom:16px;display:block}
.on-dark .eyebrow,.cta-band .eyebrow,.page-hero .eyebrow,.foot .eyebrow{color:var(--sun)}
.label{color:var(--text-secondary)}
.nw{white-space:nowrap}
em.hl,.hl{font-style:normal;color:var(--leaf-deep)}
.on-dark .hl{color:var(--sun)}
.botanical{font-style:italic;color:var(--text-secondary)}
.prose{max-width:66ch}
.prose > * + *{margin-top:1em}
.prose p,.prose li{font-size:1.15rem}
.prose h2{font-family:var(--f-display);font-weight:800;letter-spacing:-0.025em;line-height:1.08;font-size:clamp(1.7rem,3vw,2.4rem);margin-top:1.8em}
.prose h3{font-family:var(--f-display);font-weight:600;letter-spacing:-0.015em;line-height:1.2;font-size:1.35rem;margin-top:1.5em}
.prose ul{list-style:none;padding:0}
.prose ul li{position:relative;padding-left:1.4em;margin-top:.45em}
.prose ul li::before{content:"";position:absolute;left:.2em;top:.62em;width:.42em;height:.42em;border-radius:50% 0 50% 0;background:var(--leaf);transform:rotate(-45deg)}
.prose ol{counter-reset:li;padding:0}
.prose ol li{counter-increment:li;position:relative;padding-left:2em;margin-top:.5em}
.prose ol li::before{content:counter(li);position:absolute;left:0;top:.1em;font:500 .85rem/1.6 var(--f-mono);color:var(--leaf-deep)}
.prose a{color:var(--leaf-deep);text-decoration-thickness:1px;text-underline-offset:3px}
.prose strong{font-weight:500;color:var(--text-primary)}
.small{font-size:.95rem;color:var(--text-secondary)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:50px;padding:0 24px;border-radius:999px;font-family:var(--f-display);font-weight:600;font-size:1rem;letter-spacing:-0.005em;line-height:1;text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .25s var(--ease-out),border-color .25s var(--ease-out),color .25s var(--ease-out),transform .25s var(--ease-out);text-shadow:none}
.btn svg{width:1.05em;height:1.05em;flex:none}
.btn-cta{background:var(--tomato);color:#fff}
.btn-cta:hover{background:var(--tomato-hover);transform:translateY(-1px)}
.btn-ghost{border-color:rgba(241,240,230,.62);color:var(--text-on-dark);background:rgba(20,34,22,.28)}
.btn-ghost:hover{border-color:var(--text-on-dark);background:rgba(20,34,22,.5)}
.btn-line{border-color:var(--line-strong);color:var(--text-primary);background:transparent}
.btn-line:hover{border-color:var(--canopy);background:rgba(28,53,32,.05)}
.on-dark .btn-line,.cta-band .btn-line,.page-hero .btn-line{border-color:rgba(241,240,230,.5);color:var(--text-on-dark)}
.on-dark .btn-line:hover,.cta-band .btn-line:hover,.page-hero .btn-line:hover{border-color:var(--text-on-dark);background:rgba(241,240,230,.06)}
.btn-sm{min-height:42px;padding:0 18px;font-size:.94rem}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.link-arrow{font-family:var(--f-display);font-weight:600;color:var(--leaf-deep);text-decoration:none;display:inline-flex;align-items:baseline;gap:.4em;border-bottom:1.5px solid rgba(53,102,40,.3);padding-bottom:2px;transition:border-color .25s var(--ease-out),gap .25s var(--ease-out)}
.link-arrow::after{content:"→"}
.link-arrow:hover{border-color:var(--leaf-deep);gap:.6em}
.on-dark .link-arrow{color:var(--sun);border-color:rgba(240,180,60,.35)}
.on-dark .link-arrow:hover{border-color:var(--sun)}
@media (pointer:coarse){.btn-sm{min-height:44px}.link-arrow{min-height:44px;align-items:center}}

/* Fixed environment: dappled shade drifting over the mist, like sun through shade cloth */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:var(--canvas);overflow:hidden}
.env::before{content:"";position:absolute;inset:-25%;background:
  radial-gradient(18% 12% at 22% 30%,rgba(76,138,59,.10),transparent 70%),
  radial-gradient(14% 10% at 64% 22%,rgba(76,138,59,.08),transparent 70%),
  radial-gradient(22% 14% at 78% 70%,rgba(76,138,59,.09),transparent 70%),
  radial-gradient(16% 12% at 36% 78%,rgba(240,180,60,.10),transparent 70%),
  radial-gradient(12% 9% at 52% 50%,rgba(76,138,59,.06),transparent 70%);
  animation:dapple 96s var(--ease-io) infinite alternate;animation-delay:-38s}
.env::after{content:"";position:absolute;inset:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .26 0 0 0 0 .16 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes dapple{from{transform:translate3d(-5%,-3%,0) rotate(-2deg)}to{transform:translate3d(5%,4%,0) rotate(2deg)}}

/* ============ NAV ============ */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;height:calc(var(--nav-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--gx) 0;display:flex;align-items:center;gap:24px;color:var(--text-on-dark);transition:background-color .4s var(--ease-out),color .4s var(--ease-out),box-shadow .4s var(--ease-out)}
.nav::before{content:"";position:absolute;inset:0 0 -30px;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgba(12,22,12,.72) 0%,rgba(12,22,12,.55) 50%,rgba(12,22,12,.2) 80%,rgba(12,22,12,0));transition:opacity .4s var(--ease-out)}
.nav:not(.on-paper):not(.on-dark) :where(.nav-links a,.brand){text-shadow:0 1px 2px rgba(10,18,10,.9),0 0 14px rgba(10,18,10,.6)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand-mark{width:30px;height:38px;flex:none}
.brand-word{display:flex;flex-direction:column;line-height:1}
.brand-name{font-family:var(--f-display);font-weight:800;font-size:1.32rem;letter-spacing:-0.03em}
.brand-sub{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;opacity:.8;margin-top:4px}
.nav-links{display:flex;gap:clamp(14px,1.8vw,26px);margin-left:auto}
.nav-links a{font-family:var(--f-display);font-weight:600;font-size:.98rem;text-decoration:none;opacity:.9;padding:6px 0;border-bottom:1.5px solid transparent;transition:opacity .2s var(--ease-out),border-color .2s var(--ease-out)}
.nav-links a:hover{opacity:1;border-color:currentColor}
.nav-links a[aria-current="page"]{opacity:1;border-color:var(--sun)}
.nav-actions{display:flex;align-items:center;gap:14px}
.nav.on-paper{background:rgba(242,244,234,.92);color:var(--text-primary);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.nav.on-paper::before,.nav.on-dark::before{opacity:0}
.nav.on-paper .nav-links a[aria-current="page"]{border-color:var(--leaf)}
.nav.on-dark{background:rgba(28,53,32,.95);color:var(--text-on-dark);box-shadow:0 1px 0 var(--line-dark)}
.menu-btn{display:none;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;border:1.5px solid currentColor;background:transparent;cursor:pointer;opacity:.9}
.menu-btn span{position:relative;width:18px;height:1.5px;background:currentColor;transition:background-color .2s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor;transition:transform .3s var(--ease-out)}
.menu-btn span::before{top:-6px}.menu-btn span::after{top:6px}
.menu-open .menu-btn span{background:transparent}
.menu-open .menu-btn span::before{transform:translateY(6px) rotate(45deg)}
.menu-open .menu-btn span::after{transform:translateY(-6px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;background:var(--canopy);color:var(--text-on-dark);padding:calc(var(--nav-h) + env(safe-area-inset-top,0px) + 24px) var(--gx) 40px;display:flex;flex-direction:column;gap:6px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .35s var(--ease-out),transform .35s var(--ease-out),visibility 0s linear .35s;overflow-y:auto}
.menu-open .menu{opacity:1;visibility:visible;transform:none;transition:opacity .35s var(--ease-out),transform .35s var(--ease-out),visibility 0s}
.menu a{font-family:var(--f-display);font-weight:800;font-size:clamp(1.8rem,8vw,2.6rem);letter-spacing:-0.03em;text-decoration:none;padding:6px 0}
.menu .menu-sub{display:flex;flex-wrap:wrap;gap:6px 18px;margin:4px 0 14px}
.menu .menu-sub a{font-family:var(--f-mono);font-weight:500;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-on-dark-2)}
.menu .menu-foot{margin-top:auto;padding-top:28px;border-top:1px solid var(--line-dark);display:flex;flex-direction:column;gap:14px;font-size:1.05rem}
.menu-open{overflow:hidden}
.menu-open .nav{background:var(--canopy);color:var(--text-on-dark);box-shadow:none}
.menu-open .nav::before{opacity:0}
@media (max-width:1080px){.nav-links{display:none}.menu-btn{display:inline-flex}}
@media (max-width:560px){.nav .btn-visit{display:none}.brand-sub{display:none}}
@media (max-width:380px){.nav .hours-tag{display:none}}

/* The Mallee tag: a slim garden plant label. Carries the live hours in the nav. */
.hours-tag{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px 0 12px;border-radius:4px 17px 17px 4px;font-family:var(--f-mono);font-weight:500;font-size:.74rem;letter-spacing:.06em;white-space:nowrap;text-decoration:none;background:rgba(241,240,230,.14);border:1px solid rgba(241,240,230,.35);position:relative}
.hours-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-on-dark-2);flex:none}
.hours-tag.open::before{background:#7BD35F;box-shadow:0 0 0 3px rgba(123,211,95,.22)}
.hours-tag.closed::before{background:var(--sun)}
.on-paper .hours-tag{background:#fff;border-color:var(--line-strong);color:var(--text-primary)}
.on-paper .hours-tag.open::before{background:#3E8F2A;box-shadow:0 0 0 3px rgba(62,143,42,.18)}
.on-paper .hours-tag.closed::before{background:var(--soil)}
.hours-tag .ht-long{display:inline}
@media (max-width:760px){.hours-tag .ht-long{display:none}}

/* ============ HERO FILM (home) ============ */
.hero{position:relative;height:1000vh;background:var(--canopy)}
.stage{position:sticky;top:0;height:100vh;height:100lvh;overflow:hidden;background:var(--canopy)}
.poster{position:absolute;inset:0;background-size:cover;background-position:center;background-color:var(--canopy)}
#film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:translateZ(0);will-change:transform;transition:opacity .8s var(--ease-out)}
.video-ready #film{opacity:1}
.video-failed #film{display:none}
.still{opacity:0;transition:opacity .9s var(--ease-out)}
.still.on{opacity:1}
.scrim{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(12,20,10,.52) 0%,rgba(12,20,10,.2) 40%,rgba(12,20,10,0) 58%),
  radial-gradient(ellipse 120% 90% at 55% 45%,rgba(12,20,10,0) 38%,rgba(12,20,10,.55) 100%)}

.ring{position:absolute;left:50%;bottom:34px;width:40px;height:40px;margin-left:-20px;transform:rotate(-90deg);color:var(--sun);transition:opacity .6s var(--ease-out)}
.ring-track{stroke:rgba(241,240,230,.2)}
.ring-fill{stroke:currentColor;transition:stroke-dashoffset .12s linear}
.video-ready .ring{opacity:0}
.cue{position:absolute;left:50%;bottom:34px;width:22px;height:34px;margin-left:-11px;border:1.5px solid rgba(241,240,230,.6);border-radius:12px}
.cue::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--sun);animation:cue 2.4s var(--ease-io) infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(10px);opacity:0}100%{transform:translateY(0);opacity:0}}

/* Chapter ticks: plant-label words down the right edge */
.ticks{position:absolute;right:var(--gx);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;text-align:right}
.ticks::before{content:"";position:absolute;inset:-14px -16px -14px -26px;z-index:-1;border-radius:28px;background:rgba(10,18,10,.78);filter:blur(14px);pointer-events:none}
.ticks li{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,240,230,.5);padding-right:18px;position:relative;transition:color .5s var(--ease-out);text-shadow:0 1px 3px rgba(10,18,10,.8)}
.ticks li::after{content:"";position:absolute;right:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50% 0 50% 0;transform:rotate(-45deg);border:1px solid rgba(241,240,230,.5);transition:background-color .5s var(--ease-out),border-color .5s var(--ease-out)}
.ticks li.on{color:var(--text-on-dark)}
.ticks li.on::after{background:var(--leaf);border-color:#8CCB72}
.ticks li.on.ripe::after{background:var(--tomato);border-color:#F08A72}
@media (max-height:640px){.ticks{display:none}}

/* Caption bands: the left third; the plant owns the right */
.band{position:absolute;left:var(--gx);top:50%;width:min(560px,40vw);transform:translateY(-50%);isolation:isolate;color:var(--text-on-dark);text-shadow:var(--tshadow);will-change:opacity;--k:1;--sv:56px;--sh:60px}
.js .band{opacity:0}
.band::before,.band::after{content:"";position:absolute;z-index:-1;pointer-events:none;opacity:calc(.25 + .75 * var(--k,1))}
.band::before{top:calc(-1 * var(--sv));bottom:calc(-1 * var(--sv));left:-300px;right:calc(-1 * var(--sh));border-radius:90px;background:rgba(10,18,10,var(--sa,.64));filter:blur(var(--sb,58px))}
.band::after{inset:-40% -30% -40% -20%;background:radial-gradient(ellipse 60% 56% at 36% 50%,rgba(10,18,10,calc(var(--sa,.64) * .4)) 0%,rgba(10,18,10,calc(var(--sa,.64) * .22)) 50%,rgba(10,18,10,0) 78%)}
.band .btn{text-shadow:none}
.b1{--sa:.66;top:auto;bottom:clamp(64px,13vh,150px);transform:none}
.b2{--sa:.62}
.b3{--sa:.64}
.b4{--sa:.66}
.b5{--sa:.68;top:auto;bottom:clamp(56px,11vh,130px);transform:none}
.band .eyebrow{color:var(--sun);margin-bottom:18px}
.band .h-hero{margin-bottom:20px}
.band .line{font-family:var(--f-display);font-weight:800;font-variation-settings:"opsz" 72;font-size:clamp(2rem,3.9vw,3.4rem);line-height:1.02;letter-spacing:-0.03em;text-wrap:balance;margin-bottom:18px}
.band .sub{font-size:clamp(1.08rem,1.3vw,1.24rem);line-height:1.55;max-width:42ch;color:var(--text-on-dark)}
.b1 .sub,.b5 .sub{margin-bottom:26px}
.band h1 .h-hero,.static-copy h1 .h-hero{display:block}
.band h1 .eyebrow{margin-bottom:16px}
.w{display:inline-block}
.c{display:inline-block;white-space:pre}

/* Entrances: transform and opacity only, scrubbed off --k (site.js writes it) */
/* b1 rise from the soil line, settled on load */
.b1 .w{--kc:clamp(0,(var(--k,1) - var(--th,0)) * 3,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc)) * .6em))}
.b1 .eyebrow{opacity:clamp(0,var(--k,1) * 3,1)}
.b1 .sub{--ks:clamp(0,(var(--k,1) - .6) * 4,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks)) * 10px))}
/* b2 sprout: each word rises with a lean that straightens */
.b2 .w{--kc:clamp(0,(var(--k,1) - var(--th,0)) * 2.8,1);opacity:var(--kc);transform-origin:0 100%;transform:translateY(calc((1 - var(--kc)) * 26px)) rotate(calc((1 - var(--kc)) * -7deg))}
.b2 .sub,.b3 .sub,.b4 .sub{--ks:clamp(0,(var(--k,1) - .55) * 3.2,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks)) * 8px))}
/* b3 bloom: characters open from the centre of each word */
.b3 .c{--kc:clamp(0,(var(--k,1) - var(--th,0)) * 3,1);opacity:var(--kc);transform:scale(calc(.4 + .6 * var(--kc))) rotate(calc((1 - var(--kc)) * var(--jr,0deg)))}
/* b4 swell: word-punch with a soft overshoot */
.b4 .w{--kc:clamp(0,(var(--k,1) - var(--th,0)) * 3,1);--ks:clamp(0,(var(--k,1) - var(--th,0) - var(--sd,.1)) * var(--ss,3.2),1);opacity:var(--kc);transform:scale(calc(.6 + (.4 + var(--ov,.1)) * var(--kc) - var(--ov,.1) * var(--ks)))}
.b4 .w.em{--ov:.2;--sd:.15;--ss:2.6;color:#FFB9A6}
/* b5 staged settle */
.b5 .w{--kc:clamp(0,(var(--k,1) - var(--th,0)) * 3,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc)) * .5em))}
.b5 .sub{--ks:clamp(0,(var(--k,1) - .62) * 4,1);opacity:var(--ks)}
.b5 .ctas{--kb:clamp(0,(var(--k,1) - .76) * 5,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb)) * 10px))}

@media (max-height:600px){.b1 .sub,.b5 .sub{display:none}}

/* Static hero: phones without the film, portrait tablets, landscape phones, reduced motion */
.static-hero{display:none;position:relative;min-height:100vh;min-height:100svh;background:var(--canopy) url("hero-ending.jpg") 62% 50%/cover no-repeat;color:var(--text-on-dark)}
.static-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,20,10,.86) 0%,rgba(12,20,10,.55) 40%,rgba(12,20,10,.12) 68%,rgba(12,20,10,.45) 100%)}
.static-copy{position:absolute;left:0;right:0;bottom:0;padding:0 var(--gx) calc(env(safe-area-inset-bottom,0px) + 44px);max-width:680px;text-shadow:var(--tshadow)}
.static-copy .eyebrow{color:var(--sun)}
.static-copy .h-hero{margin-bottom:16px;font-size:clamp(2.6rem,11vw,4.6rem)}
.static-copy .sub{font-size:1.1rem;margin-bottom:24px;max-width:40ch}
.static-copy .btn{text-shadow:none}

/* The five gates. Character-for-character the same strings as GATES in site.js. */
@media (max-width: 720px), (orientation: portrait) and (max-width: 1024px), (orientation: portrait) and (pointer: coarse), (orientation: landscape) and (pointer: coarse) and (max-height: 560px), (prefers-reduced-motion: reduce){
  .hero{height:auto}
  .stage{display:none}
  .static-hero{display:block}
}
@media (orientation: portrait){
  .static-hero{background-image:url("hero-poster-portrait-end.jpg");background-position:center 40%}
}

/* Phone film: portrait screens with motion and a decent connection scrub the 9:16 cut (site.js adds html.phone-film) */
html.phone-film .hero{height:1000vh}
html.phone-film .stage{display:block}
html.phone-film .static-hero{display:none}
html.phone-film .ticks{display:none}
html.phone-film .scrim{background:
  linear-gradient(to top,rgba(12,20,10,.84) 0%,rgba(12,20,10,.62) 28%,rgba(12,20,10,.3) 48%,rgba(12,20,10,0) 64%),
  radial-gradient(ellipse 150% 90% at 50% 40%,rgba(12,20,10,0) 45%,rgba(12,20,10,.45) 100%)}
html.phone-film .band{left:var(--gx);right:var(--gx);width:auto;top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 14vh);transform:none;--sv:34px;--sh:24px}
html.phone-film .band::after{inset:-30% -20% -30% -20%}
html.phone-film .b1{bottom:calc(env(safe-area-inset-bottom,0px) + 13vh)}
/* The stage is the large viewport (toolbars hidden); a phone browser's bottom toolbar covers the gap between the large and
   small viewport. Lift the captions by that gap so they always sit above the toolbar, then a clear margin above it. */
@supports (height: 100svh){
  html.phone-film .band{bottom:calc(100lvh - 100svh + env(safe-area-inset-bottom,0px) + 11svh)}
  html.phone-film .b1{bottom:calc(100lvh - 100svh + env(safe-area-inset-bottom,0px) + 10svh)}
}
html.phone-film .band .h-hero{font-size:clamp(2.5rem,11vw,3.4rem);margin-bottom:14px}
html.phone-film .band .line{font-size:clamp(1.75rem,8vw,2.3rem);margin-bottom:12px}
html.phone-film .band .sub{font-size:1.04rem}
html.phone-film .b1 .sub,html.phone-film .b5 .sub{margin-bottom:18px}
html.phone-film .band .ctas .btn{flex:1 1 auto}

/* ============ SECTIONS ============ */
.below{position:relative}
.sec{position:relative;padding:clamp(80px,10vw,140px) var(--pad-x)}
.sec.tight{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}
.on-dark{background:var(--canopy);color:var(--text-on-dark)}
.on-dark .label,.on-dark .small{color:var(--text-on-dark-2)}
.on-panel{background:var(--panel)}
.on-straw{background:var(--straw)}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;margin-bottom:clamp(36px,5vw,64px)}
.sec-head .lede{margin-top:18px}
.wrap{max-width:var(--maxw);margin:0 auto}

/* Reveal: hidden start states only once JS has armed the observer (lessons.md) */
.reveal-armed .rv{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal-armed .rv.in{opacity:1;transform:none}
.reveal-armed .rv.in.done{transition-delay:0s!important}

/* The stem: the film's tomato stem carried down the left gutter (home only) */
.stem{position:absolute;left:clamp(10px,2.2vw,40px);top:0;width:30px;height:var(--st-h,0px);z-index:2;pointer-events:none}
.stem-line{position:absolute;left:14px;top:0;width:2px;height:100%;border-radius:2px;background:linear-gradient(to bottom,#5E9C47,var(--leaf) 92%,rgba(76,138,59,0));transform-origin:top;transform:scaleY(var(--tp,0))}
.stem-leaf{position:absolute;left:15px;width:20px;height:12px;transform-origin:0 50%;transform:scale(0) rotate(-30deg);transition:transform .7s var(--ease-out)}
.stem-leaf:nth-of-type(even){left:auto;right:15px;transform-origin:100% 50%}
.stem-leaf path{fill:var(--leaf)}
.stem-leaf.lit{transform:scale(1) rotate(-18deg)}
.stem-leaf:nth-of-type(even).lit{transform:scale(1) rotate(18deg) scaleX(-1)}
.stem-fruit{position:absolute;left:6px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#F07A5E,var(--tomato) 60%,#8E2416);transform:scale(0);transition:transform .8s var(--ease-out)}
.stem-fruit.lit{transform:scale(1)}
@media (max-width:980px){.stem{display:none}}

/* --- Home S1: today strip --- */
.today{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px 40px;padding:26px var(--pad-x);background:var(--canopy-2);color:var(--text-on-dark)}
.today-status{display:flex;align-items:center;gap:14px;font-family:var(--f-display);font-weight:800;font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:-0.02em}
.today-status .dot{width:12px;height:12px;border-radius:50%;background:var(--text-on-dark-2);flex:none}
.today-status.open .dot{background:#7BD35F;box-shadow:0 0 0 5px rgba(123,211,95,.2)}
.today-status.closed .dot{background:var(--sun)}
.today-meta{display:flex;flex-wrap:wrap;gap:6px 26px;font-family:var(--f-mono);font-size:.84rem;letter-spacing:.04em;color:var(--text-on-dark-2)}
.today-meta a{color:var(--text-on-dark);text-decoration:none;border-bottom:1px solid rgba(241,240,230,.3)}
@media (max-width:860px){.today{grid-template-columns:1fr}.today .btn{justify-self:start}}

/* --- Home S2: will it grow here? range cards with Mallee tags --- */
.ranges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
.range{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;background:#FBFCF6;box-shadow:0 1px 0 var(--line),0 18px 40px -28px rgba(28,53,32,.4);text-decoration:none;transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
.range:hover{transform:translateY(-4px);box-shadow:0 1px 0 var(--line),0 28px 50px -26px rgba(28,53,32,.5)}
.range-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--panel)}
.range-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.range:hover .range-img img{transform:scale(1.04)}
.range-body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.range-body .h3{font-size:1.32rem}
.range-body p{font-size:1.02rem;line-height:1.45;color:var(--text-secondary)}
.range-body .go{margin-top:auto;padding-top:8px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--leaf-deep)}
@media (max-width:1100px){.ranges{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.ranges{grid-template-columns:1fr}}

/* The tag itself: slim plant label, rounded crown, eyelet, four marks */
.mtag{position:absolute;top:12px;right:12px;width:94px;padding:16px 10px 12px;background:#FBF8EE;color:var(--text-primary);border-radius:20px 20px 6px 6px;box-shadow:0 6px 18px -8px rgba(20,30,15,.55);font-family:var(--f-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.25}
.mtag::before{content:"";position:absolute;top:6px;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--panel);box-shadow:inset 0 1px 1px rgba(0,0,0,.25)}
.mtag dl{display:grid;grid-template-columns:1fr auto;gap:4px 6px;align-items:center}
.mtag dt{color:var(--text-secondary)}
.mtag dd{display:flex;gap:2px}
.mtag i{display:block;width:7px;height:7px;border-radius:50%;border:1px solid var(--leaf-deep);transform:scale(.6);opacity:.5;transition:transform .5s var(--ease-out),opacity .5s var(--ease-out),background-color .5s var(--ease-out)}
.mtag i.f{background:var(--leaf-deep)}
.in .mtag i,.mtag.static i{transform:none;opacity:1}
.in .mtag dd i:nth-child(2){transition-delay:.12s}
.in .mtag dd i:nth-child(3){transition-delay:.24s}

/* --- Home S3: the month ring (the one interactive moment) --- */
.month{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:clamp(32px,6vw,90px);align-items:center}
.ring-wrap{position:relative;aspect-ratio:1;max-width:440px;width:100%;touch-action:none;user-select:none;-webkit-user-select:none}
.mring{width:100%;height:100%;overflow:visible}
.mring .seg{fill:transparent;stroke:var(--line);stroke-width:1;cursor:pointer;transition:fill .4s var(--ease-out)}
.mring .seg.warm{fill:rgba(240,180,60,.16)}
.mring .seg.cool{fill:rgba(76,138,59,.12)}
.mring .seg.frost{fill:rgba(120,150,170,.14)}
.mring .seg:hover{fill:rgba(201,54,36,.1)}
.mring .mname{font-family:var(--f-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;fill:var(--text-secondary);pointer-events:none}
.mring .mname.on{fill:var(--canopy);font-weight:500}
.mring .pointer{transition:transform .7s var(--ease-out);transform-origin:220px 220px}
.mring .pointer path{fill:var(--tomato)}
.ring-centre{position:absolute;inset:26%;border-radius:50%;background:var(--canopy);color:var(--text-on-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8%}
.ring-centre .rc-month{font-family:var(--f-display);font-weight:800;font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-0.03em;line-height:1}
.ring-centre .rc-season{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sun);margin-top:8px}
.ring-ctrls{display:flex;justify-content:center;gap:12px;margin-top:18px}
.ring-ctrls button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line-strong);background:transparent;cursor:pointer;font-size:1.1rem;transition:border-color .2s,background-color .2s}
.ring-ctrls button:hover{border-color:var(--canopy);background:rgba(28,53,32,.05)}
.bed{display:flex;flex-direction:column;gap:22px}
.bed-group .label{margin-bottom:10px;display:flex;align-items:center;gap:8px}
.bed-group .label::before{content:"";width:9px;height:9px;border-radius:50% 0 50% 0;transform:rotate(-45deg)}
.bed-group.best .label::before{background:var(--leaf)}
.bed-group.ok .label::before{background:var(--sun)}
.bed-group.risky .label::before{background:var(--soil)}
.crops{display:flex;flex-wrap:wrap;gap:8px}
.crop{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;background:#FBFCF6;border:1px solid var(--line);font-family:var(--f-display);font-weight:600;font-size:1rem;animation:crop-in .6s var(--ease-out) both}
.best .crop{border-color:rgba(76,138,59,.55);background:#EEF5E6}
.risky .crop{color:var(--text-secondary)}
@keyframes crop-in{from{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}
.bed-empty{font-style:italic;color:var(--text-secondary)}
.month-note{margin-top:8px}
@media (max-width:860px){.month{grid-template-columns:1fr}.ring-wrap{margin:0 auto;max-width:360px}}

/* --- Home S4: we'll ask --- */
.ask{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.ask-list{counter-reset:q;display:flex;flex-direction:column}
.ask-list li{counter-increment:q;display:grid;grid-template-columns:64px 1fr;align-items:baseline;padding:22px 0;border-top:1px solid rgba(139,74,45,.25);font-family:var(--f-display);font-weight:600;font-size:clamp(1.3rem,2.2vw,1.8rem);letter-spacing:-0.02em;line-height:1.2}
.ask-list li::before{content:"0" counter(q);font-family:var(--f-mono);font-weight:500;font-size:.85rem;letter-spacing:.1em;color:var(--soil)}
.ask-close{margin-top:26px;font-size:1.2rem;max-width:44ch}
@media (max-width:860px){.ask{grid-template-columns:1fr}}

/* --- Home S5: rooted (typographic story) --- */
.rooted{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(36px,6vw,100px);align-items:center}
.years{display:flex;flex-direction:column;gap:clamp(18px,2.4vw,30px)}
.year{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:22px}
.year .big{font-family:var(--f-display);font-weight:800;font-variation-settings:"opsz" 96;font-size:clamp(3.4rem,8vw,6.6rem);line-height:.9;letter-spacing:-0.05em;font-variant-numeric:tabular-nums;color:var(--text-on-dark)}
.year .big.sun{color:var(--sun)}
.year .what{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-on-dark-2);max-width:18ch}
.rooted .prose p{color:var(--text-on-dark-2)}
.rooted .prose p:first-child{color:var(--text-on-dark)}
.roots-svg{position:absolute;right:0;bottom:0;width:min(520px,50%);height:auto;opacity:.18;pointer-events:none}
.roots-svg path{fill:none;stroke:var(--sun);stroke-width:1.2;stroke-linecap:round;stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);transition:stroke-dashoffset 2.8s var(--ease-out)}
.in .roots-svg path,.roots-svg.drawn path{stroke-dashoffset:0}
@media (max-width:860px){.rooted{grid-template-columns:1fr}}

/* --- Home S6: more than plants (asymmetric trio) --- */
.trio{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:clamp(16px,2vw,26px)}
.trio .tile{position:relative;border-radius:var(--radius);overflow:hidden;min-height:260px;display:flex;align-items:flex-end;color:var(--text-on-dark);text-decoration:none;background:var(--canopy)}
.trio .tile:first-child{grid-row:span 2;min-height:540px}
.trio .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.trio .tile:hover img{transform:scale(1.04)}
.trio .tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,20,10,.85) 0%,rgba(12,20,10,.35) 46%,rgba(12,20,10,0) 72%)}
.tile-copy{position:relative;z-index:1;padding:clamp(20px,2.6vw,32px);text-shadow:0 1px 3px rgba(10,18,10,.7)}
.tile-copy .h3{margin-bottom:6px}
.tile-copy p{font-size:1.05rem;color:var(--text-on-dark-2)}
@media (max-width:760px){.trio{grid-template-columns:1fr}.trio .tile:first-child{grid-row:auto;min-height:340px}}

/* --- Accordion (FAQ) --- */
.accordion{border-top:1px solid var(--line-strong)}
.accordion details{border-bottom:1px solid var(--line-strong)}
.accordion summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-family:var(--f-display);font-weight:600;font-size:clamp(1.12rem,1.6vw,1.32rem);letter-spacing:-0.01em;line-height:1.3}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary::after{content:"";flex:none;width:12px;height:12px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-3px,-3px);transition:transform .35s var(--ease-out)}
.accordion details[open] summary::after{transform:rotate(225deg) translate(-3px,-3px)}
.accordion .ans{padding:0 0 24px;max-width:66ch;color:var(--text-secondary)}
.accordion .ans > * + *{margin-top:.8em}
.accordion .ans a{color:var(--leaf-deep)}
.faq-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(30px,6vw,90px);align-items:start}
@media (max-width:860px){.faq-cols{grid-template-columns:1fr}}

/* --- Visit (the one CTA) --- */
.visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.hours{width:100%;font-size:1.08rem;margin:6px 0 26px}
.hours th,.hours td{padding:11px 0;border-bottom:1px solid var(--line-dark);text-align:left;font-weight:400}
.hours td{text-align:right;font-family:var(--f-mono);font-size:.92rem;letter-spacing:.02em;white-space:nowrap;padding-left:16px}
.hours tr.is-today th,.hours tr.is-today td{color:var(--sun)}
.hours tr.is-today th::after{content:"today";margin-left:10px;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;padding:2px 7px;border-radius:3px;border:1px solid rgba(240,180,60,.5);vertical-align:2px}
.contact-list{display:flex;flex-direction:column;gap:12px;margin:22px 0 28px;font-size:1.1rem}
.contact-list a{text-decoration:none;border-bottom:1px solid rgba(241,240,230,.28)}
.contact-list .k{display:block;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-on-dark-2);margin-bottom:2px}
.map{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--canopy-2);margin-bottom:26px}
.map iframe{width:100%;height:100%;border:0;filter:saturate(.85)}
.ask-card{border-radius:var(--radius);background:var(--canvas);color:var(--text-primary);padding:clamp(24px,3vw,40px)}
.ask-card .h3{margin-bottom:10px}
.ask-card > p{color:var(--text-secondary);margin-bottom:22px}
.form-slot iframe{display:block;width:100%;border:0;min-height:568px;border-radius:8px}
.form-alt{margin-top:14px;font-size:.95rem;color:var(--text-secondary)}
.form-alt a{color:var(--leaf-deep);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ask-card .link-arrow,.on-dark .ask-card .link-arrow{color:var(--leaf-deep);border-color:rgba(53,102,40,.3)}
.ask-card .link-arrow:hover{border-color:var(--leaf-deep)}
.ask-card :where(a,button):focus-visible{outline-color:var(--tomato)}
@media (max-width:900px){.visit{grid-template-columns:1fr}}

/* ============ INNER PAGES ============ */
.page-hero{position:relative;min-height:min(76vh,720px);display:flex;align-items:flex-end;background:var(--canopy);color:var(--text-on-dark);overflow:hidden}
.page-hero.short{min-height:min(52vh,480px)}
.page-hero .ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:ph-drift 30s var(--ease-out) both}
@keyframes ph-drift{from{transform:scale(1.06)}to{transform:scale(1)}}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,20,10,.88) 0%,rgba(12,20,10,.5) 42%,rgba(12,20,10,.12) 70%,rgba(12,20,10,.5) 100%),linear-gradient(90deg,rgba(12,20,10,.45) 0%,rgba(12,20,10,0) 60%)}
.page-hero.plain{background:var(--canopy)}
.page-hero.plain::after{background:radial-gradient(60% 80% at 85% 20%,rgba(76,138,59,.35),transparent 70%)}
.ph-copy{position:relative;z-index:1;width:100%;padding:calc(var(--nav-h) + 40px) var(--pad-x) clamp(40px,6vw,76px);text-shadow:0 1px 3px rgba(10,18,10,.6)}
.ph-copy .h1{max-width:16ch;margin-bottom:20px}
.ph-copy .lede{color:var(--text-on-dark);opacity:.92;max-width:56ch}
.ph-copy .ctas{margin-top:28px}
.ph-copy .btn{text-shadow:none}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:22px;color:var(--text-on-dark-2)}
.crumbs a{text-decoration:none;color:var(--text-on-dark)}
.crumbs a:hover{text-decoration:underline}
.crumbs li+li::before{content:"/";margin-right:10px;opacity:.6}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.pill{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 14px;border-radius:4px 17px 17px 4px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;background:rgba(241,240,230,.12);border:1px solid rgba(241,240,230,.32);color:var(--text-on-dark)}
.pill::before{content:"";width:6px;height:6px;border-radius:50% 0 50% 0;transform:rotate(-45deg);background:var(--sun)}

.two-col{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.two-col.rev{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.two-col.mid{align-items:center}
@media (max-width:900px){.two-col,.two-col.rev{grid-template-columns:minmax(0,1fr)}}
.figure{border-radius:var(--radius);overflow:hidden;background:var(--panel)}
.figure img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.figure.wide img{aspect-ratio:16/10}
.figure figcaption{padding:10px 2px 0;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--text-secondary);background:var(--canvas)}

.grid{display:grid;gap:clamp(16px,2vw,26px)}
.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:minmax(0,1fr)}}

/* Cards: notes, credentials, reasons */
.card{position:relative;border-radius:var(--radius);background:#FBFCF6;padding:clamp(20px,2.4vw,30px);box-shadow:0 1px 0 var(--line),0 16px 36px -30px rgba(28,53,32,.45)}
.card .h3,.card .h4{margin-bottom:10px}
.card p{color:var(--text-secondary);font-size:1.06rem;line-height:1.5}
.card p + p{margin-top:.7em}
.card .num{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.12em;color:var(--leaf-deep);display:block;margin-bottom:14px}
.card.dark{background:var(--canopy-2);color:var(--text-on-dark);box-shadow:none}
.card.dark .num,.on-dark .card:not(.straw) .num,.cta-band .num{color:var(--sun)}
.card.dark p{color:var(--text-on-dark-2)}
.card.straw{background:var(--straw);box-shadow:none}
.card.straw p{color:#4C3F2A}
.on-dark .card:not(.straw){background:var(--canopy-2);color:var(--text-on-dark);box-shadow:none}
.on-dark .card:not(.straw) p{color:var(--text-on-dark-2)}

/* Plant cards: no stock photos; name, botanical name, notes, Mallee marks */
.plants{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,22px)}
@media (max-width:1000px){.plants{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.plants{grid-template-columns:1fr}}
.plant{position:relative;display:flex;flex-direction:column;gap:8px;padding:22px 22px 20px;border-radius:var(--radius);background:#FBFCF6;box-shadow:0 1px 0 var(--line),0 16px 34px -30px rgba(28,53,32,.45);border-top:3px solid var(--leaf)}
.plant[hidden]{display:none}
.plant .kind{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--leaf-deep);display:flex;justify-content:space-between;gap:10px}
.plant .kind .size{color:var(--text-secondary)}
.plant .h3{font-size:1.36rem}
.plant .botanical{font-size:1rem;margin-top:-4px}
.plant p{font-size:1.02rem;line-height:1.5;color:var(--text-secondary)}
.marks{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:10px}
.mark{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:3px 14px 14px 3px;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;background:var(--canvas);border:1px solid var(--line);color:var(--text-primary)}
.mark::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--leaf)}
.mark.salt::before{background:#8BA3B3}
.mark.frost::before{background:#9DB8D6}
.mark.heat::before,.mark.dry::before{background:var(--sun)}
.mark.birds::before{background:var(--tomato)}
.mark.tender::before{background:var(--soil)}

/* Filter bar */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.filter{min-height:42px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line-strong);background:transparent;cursor:pointer;font-family:var(--f-display);font-weight:600;font-size:.95rem;transition:background-color .2s,border-color .2s,color .2s}
.filter:hover{border-color:var(--canopy)}
.filter[aria-pressed="true"]{background:var(--canopy);border-color:var(--canopy);color:var(--text-on-dark)}
.filter .count{font-family:var(--f-mono);font-size:.74rem;opacity:.7;margin-left:6px}
.stock-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;align-items:center;padding:14px 18px;border-radius:10px;background:var(--straw);margin-bottom:26px;font-size:1.02rem}
.stock-note a{font-family:var(--f-display);font-weight:600;color:var(--canopy)}

/* Tips: numbered advice rows */
.tips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,5vw,72px);counter-reset:tip}
.tip{counter-increment:tip;padding:24px 0;border-top:1px solid var(--line-strong);display:grid;grid-template-columns:52px 1fr;gap:4px 0;align-content:start}
.tip > *{grid-column:2}
.tip::before{content:counter(tip,decimal-leading-zero);font-family:var(--f-mono);font-size:.82rem;color:var(--leaf-deep);grid-row:span 2;padding-top:4px}
.tip .h4{font-size:1.2rem;margin-bottom:6px}
.tip p{color:var(--text-secondary);font-size:1.05rem;line-height:1.5}
.tip .local{display:block;margin-top:8px;font-size:.98rem;color:var(--text-primary);font-style:italic}
.on-dark .tip{border-color:var(--line-dark)}
.on-dark .tip p{color:var(--text-on-dark-2)}
.on-dark .tip .local{color:var(--text-on-dark)}
@media (max-width:760px){.tips{grid-template-columns:1fr}}

/* Tables */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);background:#FBFCF6;box-shadow:0 1px 0 var(--line)}
.table{width:100%;min-width:560px;font-size:1rem}
.table th,.table td{padding:13px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.table thead th{font-family:var(--f-mono);font-weight:500;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);background:var(--panel)}
.table tbody th{font-family:var(--f-display);font-weight:600}
.table tr:last-child td,.table tr:last-child th{border-bottom:0}
.table .yes{color:var(--leaf-deep);font-weight:500}
.table .no{color:var(--soil)}

/* Calendar grid (seedlings) */
.cal{min-width:760px;font-size:.92rem}
.cal th,.cal td{padding:9px 6px;text-align:center;border-bottom:1px solid var(--line)}
.cal tbody th{text-align:left;padding-left:16px;font-family:var(--f-display);font-weight:600;white-space:nowrap;position:sticky;left:0;z-index:1;background:#FBFCF6;box-shadow:6px 0 8px -6px rgba(28,53,32,.25)}
.cal thead th:first-child{position:sticky;left:0;z-index:2;background:var(--panel)}
.cal td span{display:block;border-radius:4px;padding:5px 0;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}
.cal .best span{background:var(--leaf);color:#fff}
.cal .ok span{background:#CFE3BF;color:var(--canopy)}
.cal .risky span{background:#F3DCA6;color:#5B3C10}
.cal .frost span{background:#D5E2EC;color:#2D4656}
.cal .no span{color:var(--line-strong)}
.cal td.now{box-shadow:inset 0 0 0 2px var(--tomato);border-radius:4px}
.cal-key{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}
.cal-key span{display:inline-flex;align-items:center;gap:6px}
.cal-key i{width:14px;height:10px;border-radius:2px;display:inline-block}

/* Callouts */
.callout{border-radius:var(--radius);padding:clamp(22px,3vw,36px);background:var(--straw);display:grid;grid-template-columns:auto 1fr;gap:6px 22px;align-items:start}
.callout .eyebrow{grid-column:1/-1;margin-bottom:4px;color:var(--soil)}
.callout .h3{grid-column:1/-1;margin-bottom:6px}
.callout p{grid-column:1/-1;color:#4C3F2A}
.callout.dark{background:var(--canopy-2);color:var(--text-on-dark)}
.callout.dark p{color:var(--text-on-dark-2)}
.callout.dark .eyebrow{color:var(--sun)}
.quote{position:relative;padding:clamp(24px,3vw,40px);border-radius:var(--radius);background:#FBFCF6;box-shadow:0 1px 0 var(--line)}
.quote blockquote{font-size:clamp(1.2rem,1.8vw,1.45rem);line-height:1.45;font-style:italic}
.quote figcaption{margin-top:14px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}

/* Steps (bare root, how-to) */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,24px);counter-reset:st}
.step{counter-increment:st;position:relative;padding-top:54px}
.step::before{content:counter(st);position:absolute;top:0;left:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:800;background:var(--leaf);color:#fff}
.step .h4{margin-bottom:8px}
.step p{color:var(--text-secondary);font-size:1.04rem;line-height:1.5}
.on-dark .step p{color:var(--text-on-dark-2)}
@media (max-width:1000px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* CTA band (end of every inner page) */
.cta-band{position:relative;overflow:hidden;padding:clamp(64px,8vw,110px) var(--pad-x);background:var(--canopy);color:var(--text-on-dark)}
.cta-band::before{content:"";position:absolute;right:-120px;bottom:-160px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(240,180,60,.2),transparent 65%);pointer-events:none}
.cta-band .inner{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:28px 60px;align-items:end}
.cta-band .h2{max-width:18ch}
.cta-band p{color:var(--text-on-dark-2);margin-top:14px;max-width:52ch}
.cta-band .ctas{justify-content:flex-end}
@media (max-width:860px){.cta-band .inner{grid-template-columns:1fr}.cta-band .ctas{justify-content:flex-start}}

/* Comparison (Bunnings page) */
.versus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
.versus .card ul{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.versus .card li{position:relative;padding-left:22px;font-size:1.04rem;color:var(--text-secondary)}
.versus .card li::before{content:"";position:absolute;left:2px;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--line-strong)}
.versus .card.us li::before{background:var(--leaf)}
@media (max-width:760px){.versus{grid-template-columns:1fr}}

/* Blog cards */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
.post{display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;background:#FBFCF6;box-shadow:0 1px 0 var(--line),0 16px 36px -30px rgba(28,53,32,.45);text-decoration:none;transition:transform .45s var(--ease-out)}
.post:hover{transform:translateY(-4px)}
.post .post-img{aspect-ratio:16/10;overflow:hidden;background:var(--panel)}
.post .post-img img{width:100%;height:100%;object-fit:cover}
.post .post-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.post .post-body p{color:var(--text-secondary);font-size:1.02rem;line-height:1.5}
.post .go{margin-top:auto;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--leaf-deep)}
.post.feature{grid-column:span 3;display:grid;grid-template-columns:1.2fr 1fr}
.post.feature .post-img{aspect-ratio:auto;min-height:320px}
@media (max-width:1000px){.posts{grid-template-columns:repeat(2,minmax(0,1fr))}.post.feature{grid-column:span 2}}
@media (max-width:640px){.posts{grid-template-columns:1fr}.post.feature{grid-column:auto;grid-template-columns:1fr}}

/* Policy pages */
.toc{position:sticky;top:calc(var(--nav-h) + 24px);display:flex;flex-direction:column;gap:8px;font-size:1rem}
.toc a{color:var(--text-secondary);text-decoration:none}
.toc a:hover{color:var(--leaf-deep)}
.legal{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(30px,5vw,80px)}
@media (max-width:900px){.legal{grid-template-columns:minmax(0,1fr)}.toc{position:static}}

/* ============ FOOTER ============ */
.foot{background:#142716;color:var(--text-on-dark-2);padding:clamp(56px,7vw,96px) var(--pad-x) 36px;font-size:1.02rem}
.foot-top{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:36px 48px;padding-bottom:40px;border-bottom:1px solid var(--line-dark)}
.foot .brand{color:var(--text-on-dark);margin-bottom:16px}
.foot-about{max-width:36ch}
.foot h2{font-family:var(--f-mono);font-weight:500;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sun);margin-bottom:16px}
.foot ul{display:flex;flex-direction:column;gap:9px}
.foot a{text-decoration:none;color:var(--text-on-dark)}
.foot a:hover{text-decoration:underline;text-underline-offset:3px}
.foot-social{display:flex;gap:10px;margin-top:20px}
.foot-social a{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-dark);display:flex;align-items:center;justify-content:center}
.foot-social svg{width:18px;height:18px;fill:var(--text-on-dark)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 30px;padding-top:26px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.04em;line-height:1.6}
.foot-ai{max-width:60ch}
@media (max-width:900px){.foot-top{grid-template-columns:1fr 1fr}.foot-top > :first-child{grid-column:1/-1}}
@media (max-width:480px){.foot-top{grid-template-columns:1fr}}
/* room for the Leadout chat bubble at the very bottom on phones */
@media (max-width:720px){.foot{padding-bottom:104px}}

/* 404 */
.lost{min-height:100vh;display:flex;align-items:center;padding:calc(var(--nav-h) + 40px) var(--pad-x) 80px}

/* Pause loops on hidden tabs; animation-play-state isn't inherited, so hit everything */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* Reduced motion: final states, no movement, no delays */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  body{animation:none}
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  .reveal-armed .rv{opacity:1;transform:none}
  .stem-line{transform:scaleY(1)}
  .stem-leaf.lit,.stem-leaf{transform:scale(1) rotate(-18deg)}
  .stem-leaf:nth-of-type(even){transform:scale(1) rotate(18deg) scaleX(-1)}
  .stem-fruit{transform:scale(1)}
  .mtag i{transform:none;opacity:1}
  .roots-svg path{stroke-dashoffset:0}
  .page-hero .ph-img{transform:none}
}
html.rm .reveal-armed .rv,html.rm .rv{opacity:1!important;transform:none!important}
