/* Weedhub — global stylesheet (every page). ivory paper as the ground,
   obsidian as the structure (header, footer, one dark editorial band), deep botanical green for the
   primary action, stone for hairlines and quiet planes, sage for linework. Weedhub's amber wordmark
   sits on obsidian; amber elsewhere is only a sale tag and the focus ring on dark.
   Saira Extra Condensed (headlines; the client's pick to match the logo, 2026-10-21) + Manrope (everything else, tabular numerals for prices).
   Strategy and contrast table: agency/clients/weedhub/rebuild/DESIGN-STRATEGY.md.

   Contrast (WCAG 2.2, measured): obsidian on ivory 16.2 · on white 18.3 · on stone 12.8 · ink-2
   #5C5A54 on ivory 6.1 / white 6.9 / stone 4.9 · green on ivory 10.6 · ivory on green 10.6 · ivory on
   obsidian 16.2 · fog #BDB8AC on obsidian 9.2 · amber on obsidian 9.9 · obsidian on amber 9.9 · sage
   on obsidian 7.9 (large type and lines only; sage on ivory is 2.05 and never text). */

/* metric-matched fallbacks so headings keep their line count while the web fonts swap in */
@font-face{font-family:"Manrope Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Helvetica");size-adjust:104%;ascent-override:102%;descent-override:29%;line-gap-override:0%}
@font-face{font-family:"Saira Fallback";src:local("Arial Narrow"),local("ArialNarrow"),local("Liberation Sans Narrow"),local("Arial");size-adjust:92%;ascent-override:110%;descent-override:30%;line-gap-override:0%}

/* DARK (client, 2026-10-20): black ground with their leaf pattern, three colours only — black,
   white (ivory) and the logo amber. No green anywhere: --green/--teal/--amber now resolve to the
   amber, and every fill that turned amber carries obsidian text (9.9:1). The light-ground tokens
   (--white, --paper-2, --bk, --sf*) resolve to dark surfaces and the ink tokens to light text, so
   the area sheets follow; a dark word on a light fill (ivory or amber button, white photo well)
   is spelled --obsidian on purpose.
   Contrast (WCAG 2.2): ivory on ground 17.6 · on card 16.2 · fog on ground 10.4 / card 9.5 ·
   amber on ground 10.9 · obsidian on amber 9.9 · obsidian on ivory 16.2. */
:root{color-scheme:dark;
--ground:#0B0B0A;--card:#171715;--card-2:#1F1F1D;--hair:#2E2E2B;--hair-2:#45453F;--leaf:url(../img/weedhub-leaf-1600.webp);
/* palette (owner) */
--obsidian:#151515;--ivory:#F5F1E8;--sage:#A8A49A;
--sun:#FBB040;--sun-hi:#FFC566;--neon:#E24726;
--green:var(--sun);--stone:var(--hair);--white:var(--card);
/* derived */
--ink:var(--ivory);--ink-2:var(--fog);--fog:#BDB8AC;--green-hi:var(--sun-hi);--obs-2:#222220;--obs-3:#2E2E2B;--paper-2:var(--card-2);--err:#FF8A73;--err-dk:#FF9D88;
--rule:var(--hair);--rule-2:var(--hair-2);
/* legacy aliases (area sheets written for the old face; all resolve to the new palette) */
--bk:var(--ground);--sf1:var(--card);--sf2:var(--card-2);--sf3:var(--hair);--ln:var(--hair);--ln2:var(--hair-2);
--tx:var(--ivory);--tx2:#D9D4C9;--mu:var(--fog);--amber:var(--sun);--amber-hi:var(--sun-hi);--teal:var(--sun);--paper:var(--card);
--graphite:var(--tx2);--mute:var(--mu);--line:var(--ln);
/* type */
--f:var(--wp--preset--font-family--sans,Manrope,"Manrope Fallback",system-ui,-apple-system,"Segoe UI",sans-serif);
--serif:var(--wp--preset--font-family--serif,"Saira Extra Condensed","Saira Fallback","Arial Narrow",sans-serif);
--mono:var(--f);
--t-xs:.75rem;--t-sm:.875rem;--t-0:1rem;--t-1:1.125rem;--t-2:clamp(1.25rem,1.1rem + .5vw,1.5rem);
--t-3:clamp(2rem,1.4rem + 2.4vw,3.25rem);--t-4:clamp(2.6rem,1.4rem + 4.6vw,6rem);--t-5:clamp(2.9rem,1.4rem + 5.6vw,6.5rem);--t-6:clamp(3rem,1rem + 6.6vw,7.5rem);
/* space: 4 px base */
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--sp-10:128px;--sp-11:160px;
--section:var(--wp--custom--section,clamp(64px,9vw,144px));--gutter:var(--wp--custom--gutter,clamp(16px,3vw,40px));--max:var(--wp--custom--max,1360px);
--r:var(--wp--custom--radius,2px);--hstrip:36px;--hbar:64px;--hdr:calc(var(--hbar) + 1px);--bar:62px;
--ease:var(--wp--custom--ease,cubic-bezier(.2,.7,.2,1));--d-1:140ms;--d-2:260ms;--d-3:600ms;--focus:var(--sun);--lift:0 24px 60px -20px rgba(0,0,0,.7);
--arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15.5M13.5 6l6 6-6 6'/%3E%3C/svg%3E");
--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
--plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")}

/* ---- base ------------------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hbar) + 16px);scroll-padding-bottom:calc(var(--bar) + 16px);background:var(--ground)}
body{margin:0;background:transparent;color:var(--ink);font:400 var(--t-0)/1.6 var(--f);font-feature-settings:"ss01" 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
h1,h2,h3,h4{font-family:var(--f);font-weight:600;line-height:1.15;letter-spacing:-.02em;text-wrap:balance;color:inherit}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
img,svg,iframe,video,picture{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
:where(main) :where(p,li,dd,td,figcaption)>a:not([class]){color:var(--green);text-decoration-color:color-mix(in srgb,var(--green) 45%,transparent)}
:where(main) :where(p,li,dd,td,figcaption)>a:not([class]):hover{text-decoration-color:currentColor}
ul[role=list],ol[role=list],.drawer ul,.fcol ul,.nav__list,.legal-links{list-style:none;margin:0;padding:0}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
::selection{background:var(--sun);color:var(--obsidian)}
/* the client's leaf pattern behind every page: a fixed layer (iOS ignores background-attachment:fixed),
   shaded so text on it keeps its contrast; sections with their own fill cover it */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(rgb(11 11 10/.38),rgb(11 11 10/.5)),var(--leaf) center/cover no-repeat,var(--ground)}
@media (max-width:767px){:root{--leaf:url(../img/weedhub-leaf-900.webp)}}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--r)}
:is(.site-header,.site-footer,.actionbar,.drawer,.gate,.on-dark) :focus-visible{outline-color:var(--sun)}
main:focus,.filters__h:focus{outline:none}
.num,.licence,.hours,.price,.mono{font-family:var(--f);font-variant-numeric:tabular-nums lining-nums;letter-spacing:0}
.sr-only,.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-80px;z-index:100;padding:12px 16px;background:var(--obsidian);color:var(--ivory);font-weight:700;border-radius:var(--r);text-decoration:none}
.skip:focus{top:12px}
.i{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.i--sm{width:18px;height:18px}
.nowrap{white-space:nowrap}

/* WordPress wrappers never add boxes or gaps of their own */
.wp-site-blocks>*{margin-block:0}
.part{display:contents}
.wp-block-group:where(.section,.wrap,.page-head,.hero,.facts){margin-block:0}

/* ---- layout ------------------------------------------------------------------------------------ */
.wrap{width:100%;max-width:calc(var(--max) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
main{display:block;padding-bottom:var(--section)}
.section{padding-top:var(--section)}
.section--tight,.section--flush{padding-top:calc(var(--section)*.6)}
.section--first{padding-top:var(--sp-6)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.btn-row--stack{display:grid}
.split{display:grid;gap:var(--sp-5)}
.split__note{margin-top:var(--sp-3);color:var(--ink-2);font-size:var(--t-sm);max-width:24rem}
.on-dark{background:var(--obsidian);color:var(--ivory)}

/* ---- type -------------------------------------------------------------------------------------- */
.display,.h1{font:800 var(--t-5)/.98 var(--serif);letter-spacing:0}
.h2{font:800 var(--t-4)/1 var(--serif);letter-spacing:0}
.h3{font:600 var(--t-1)/1.3 var(--f);letter-spacing:-.01em}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:0}
.serif em,.display em,.h1 em,.h2 em{font-style:normal;color:var(--green)}
.on-dark :is(.h1,.h2) em{color:var(--sun)}
.label,.is-style-label,.eyebrow{display:block;margin:0 0 var(--sp-3);color:var(--ink-2);font:600 var(--t-xs)/1.3 var(--f);letter-spacing:.14em;text-transform:uppercase}
.label--light{color:var(--fog)}
main .label:not(.form__field .label)::before{content:"";display:inline-block;width:8px;height:8px;margin-right:10px;vertical-align:.08em;background:var(--sun)}
.lead,.is-style-lead,.lede{max-width:36rem;color:var(--tx2);font-size:var(--t-1);line-height:1.6;text-wrap:pretty}
.fine,.is-style-fine{color:var(--ink-2);font-size:var(--t-xs);line-height:1.55}
.is-style-sign{display:inline-block;width:fit-content;padding:6px 12px 7px;border-radius:var(--r);background:var(--obsidian);color:var(--ivory);font:800 var(--t-2)/1.1 var(--serif);letter-spacing:0}

/* ---- buttons ------------------------------------------------------------------------------------
   .btn = amber, obsidian text (9.9:1), ivory on hover. .btn--outline = ivory hairline. .btn--light =
   ivory fill, obsidian text. core/button: default = amber, is-style-outline / -ghost = outline. */
.btn,.wp-block-button .wp-block-button__link{--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun);--fill:var(--ivory);--fill-fg:var(--obsidian);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border:1px solid var(--bd);border-radius:var(--r);background:var(--bg);color:var(--fg);font:600 .9375rem/1.1 var(--f);letter-spacing:.005em;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color .35s var(--ease),border-color .35s var(--ease)}
/* the sliding fill: a panel rises from the bottom edge on hover/focus (amber on green, obsidian on outline) */
.btn::before,.wp-block-button .wp-block-button__link::before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--fill);transform:translateY(101%);transition:transform .45s var(--ease)}
.btn:is(:hover,:focus-visible),.wp-block-button .wp-block-button__link:is(:hover,:focus-visible){color:var(--fill-fg);border-color:var(--fill)}
.btn:is(:hover,:focus-visible)::before,.wp-block-button .wp-block-button__link:is(:hover,:focus-visible)::before{transform:none}
.btn:active,.wp-block-button .wp-block-button__link:active{transform:translateY(1px)}
.btn--primary{--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun)}
.btn--outline,.btn--ghost,.btn.ghost,.wp-block-button:is(.is-style-outline,.is-style-ghost) .wp-block-button__link{--bg:transparent;--fg:var(--ink);--bd:var(--ink);--fill:var(--ink);--fill-fg:var(--obsidian)}
.btn--light,.wp-block-button.is-style-light .wp-block-button__link{--bg:var(--ivory);--fg:var(--obsidian);--bd:var(--ivory);--fill:var(--sun)}
.btn--ghost-light,.wp-block-button.is-style-ghost-light .wp-block-button__link,.on-dark .btn--outline{--bg:transparent;--fg:var(--ivory);--bd:color-mix(in srgb,var(--ivory) 55%,transparent);--fill:var(--ivory);--fill-fg:var(--obsidian)}
.btn--teal,.btn--deal,.wp-block-button:is(.is-style-teal,.is-style-deal) .wp-block-button__link{--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun)}
.btn--sm:not(.wp-block-button),.wp-block-button.btn--sm .wp-block-button__link{min-height:40px;padding:0 16px;font-size:.875rem}
.btn--lg:not(.wp-block-button),.wp-block-button.btn--lg .wp-block-button__link{min-height:56px;padding:0 28px;font-size:1rem}
.btn--block,.wp-block-button.btn--block,.wp-block-button.btn--block .wp-block-button__link{width:100%}
.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:progress}
.btn .ar{display:none}
.btn .i{width:18px;height:18px}
.wp-block-buttons{gap:var(--sp-3)}
.wp-block-buttons>.wp-block-button{margin:0}
.link-arrow,.is-style-link-arrow a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--ink);font:600 var(--t-sm)/1.2 var(--f);letter-spacing:.01em;text-decoration:none;background:linear-gradient(currentColor,currentColor) left calc(50% + .8em)/100% 1px no-repeat;transition:background-size var(--d-2) var(--ease)}
.link-arrow:hover,.is-style-link-arrow a:hover{background-size:0 1px;background-position:right calc(50% + .8em)}
.link-arrow .i{width:18px;height:18px;transition:transform var(--d-2) var(--ease)}
.is-style-link-arrow a::after{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:var(--arrow) center/18px no-repeat;mask:var(--arrow) center/18px no-repeat;transition:transform var(--d-2) var(--ease)}
.link-arrow:hover .i,.is-style-link-arrow a:hover::after{transform:translateX(4px)}
.link-arrow--light,.on-dark .link-arrow{color:var(--ivory)}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--r);background:none;color:inherit;cursor:pointer}
.icon-btn:hover{background:color-mix(in srgb,currentColor 10%,transparent)}

/* ---- fields ------------------------------------------------------------------------------------ */
.field{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--white);color:var(--ink);font-size:1rem}
.field::placeholder{color:var(--ink-2)}
.field:hover{border-color:var(--ink-2)}
.field:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--ink)}
.field--select{width:auto;min-height:44px;padding:0 36px 0 12px;appearance:none;font-size:var(--t-sm);font-weight:600;background:var(--white) right 10px center/18px no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5F1E8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.field--dark{background:var(--white)}
textarea.field{display:block;min-height:9rem;padding:12px 14px;line-height:1.5;resize:vertical}
.field[aria-invalid=true]{border-color:var(--err);box-shadow:inset 0 0 0 1px var(--err)}
.search:not(body){position:relative;display:flex;align-items:center;gap:var(--sp-2)}
.search__i{position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--ink-2);pointer-events:none}
.search__input{flex:1;min-width:0;min-height:56px;padding-left:48px}
.search__go,.btn.search__go{flex:none;min-height:56px}

/* ---- live status: amber dot = open, grey = closed, hollow = being confirmed -------------------- */
.status{display:inline-flex;align-items:flex-start;gap:8px;font:500 var(--t-sm)/1.35 var(--f);color:inherit}
.status::before{content:"";flex:none;width:7px;height:7px;margin-top:.48em;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px color-mix(in srgb,var(--sun) 22%,transparent)}
.is-closed .status::before,.status.is-closed::before{background:var(--rule-2);box-shadow:none}
.status.is-pending::before{background:none;border:1.25px solid currentColor;box-shadow:none;opacity:.8}
.status--plain::before{display:none}
.pending{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1px dashed var(--rule-2);border-radius:99px;color:var(--tx2);font:500 var(--t-xs)/1.5 var(--f);white-space:nowrap}
.on-dark .pending,.site-footer .pending{border-color:#55554F;color:var(--fog)}
.pending__call{color:inherit;font-size:var(--t-xs);text-decoration:underline;text-underline-offset:3px}
.daytag{display:inline-grid;place-items:center;flex:none;min-width:34px;padding:3px 6px;border-radius:var(--r);background:var(--obsidian);color:var(--ivory);font:600 .6875rem/1 var(--f);letter-spacing:.08em;text-transform:uppercase}
.stock{display:inline-flex;align-items:center;gap:8px;color:var(--green);font:500 var(--t-sm)/1.3 var(--f)}
.stock::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.stock--out{color:var(--ink-2)}

/* ---- header ------------------------------------------------------------------------------------
   Row 1 (.hstrip, the black service line) scrolls away; row 2 (.hbar, obsidian) sticks and tightens
   after 40 px of scroll (.is-stuck from site.js). */
.site-header{position:sticky;top:calc(-1*var(--hstrip));z-index:40;color:var(--ivory)}
.admin-bar .site-header{top:calc(var(--wp-admin--admin-bar--height,32px) - var(--hstrip))}
@media (max-width:600px){.admin-bar .site-header{top:calc(-1*var(--hstrip))}}
.hstrip{background:#000;color:var(--fog);font:600 .6875rem/1 var(--f);letter-spacing:.14em;text-transform:uppercase}
.hstrip__in{display:flex;align-items:center;gap:var(--sp-5);height:var(--hstrip)}
.hstrip__msg{display:flex;align-items:center;gap:0;min-width:0;margin:0 auto 0 0;overflow:hidden;white-space:nowrap}
.hstrip__msg span+span::before{content:"·";margin:0 .7em;opacity:.6}
.hstrip .status{font:inherit;letter-spacing:inherit}
.hstrip__status{display:none}
.hstrip__addr{display:none;align-items:center;gap:6px;text-decoration:none}
.hstrip__addr .i{width:14px;height:14px}
.hstrip__tel{flex:none;color:inherit;text-decoration:none;letter-spacing:.08em}
.hstrip a:hover{text-decoration:underline;text-underline-offset:3px}
.hbar{background:var(--obsidian);border-bottom:1px solid var(--obs-2);transition:background-color var(--d-2)}
.hbar__in{display:flex;align-items:center;gap:var(--sp-3);height:var(--hbar);transition:height var(--d-2) var(--ease)}
.brand{display:block;flex:none;margin-right:auto;padding:6px 0;border-radius:var(--r)}
.brand__img{display:block;width:104px;height:auto;transition:width var(--d-2) var(--ease)}
.nav{display:none}
.nav__list{display:flex;align-items:center;gap:var(--sp-1)}
.nav__list a{position:relative;display:flex;align-items:center;height:40px;padding:0 12px;color:var(--fog);font:500 .875rem/1 var(--f);letter-spacing:.01em;text-decoration:none;white-space:nowrap;transition:color var(--d-1)}
.nav__list a::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;background:var(--sun);transform:scaleX(0);transform-origin:left;transition:transform var(--d-2) var(--ease)}
.nav__list a:hover{color:var(--ivory)}
.nav__list a:hover::after{transform:scaleX(1)}
.nav__list a[aria-current=page],.nav__list .current-menu-item>a{color:var(--ivory)}
.nav__list a[aria-current=page]::after,.nav__list .current-menu-item>a::after{transform:scaleX(1)}
.hsearch{display:none;position:relative;flex:1 1 260px;max-width:420px}
.hsearch__i{position:absolute;left:14px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--fog);pointer-events:none}
.hsearch__q{width:100%;height:42px;padding:0 14px 0 42px;border:1px solid var(--obs-3);border-radius:99px;background:var(--obs-2);color:var(--ivory);font-size:.875rem;transition:border-color var(--d-1),background-color var(--d-1)}
.hsearch__q::placeholder{color:var(--fog)}
.hsearch__q:hover{border-color:#4A4A46}
.hsearch__q:focus-visible{outline:2px solid var(--sun);outline-offset:2px;border-color:var(--obs-3);background:var(--obsidian)}
.hsearch-link{color:var(--ivory)}
.site-header__order{display:none;flex:none;--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun)}
.burger{display:inline-flex;align-items:center;gap:10px;height:44px;margin-right:-6px;padding:0 6px;border:0;border-radius:var(--r);background:none;color:var(--ivory);font:600 .8125rem/1 var(--f);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.burger__lines{display:grid;gap:6px;width:22px}
.burger__lines i{display:block;height:1.5px;background:currentColor}
.burger__lines i:nth-child(2){width:14px;justify-self:end}
.burger__lines i:nth-child(3){display:none}
.site-header.is-stuck .hbar{border-bottom-color:rgb(255 255 255/.06);background:rgb(21 21 21/.8);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}

/* ---- native dialogs: the drawer and the age gate ----------------------------------------------- */
.drawer,.gate{max-width:none;max-height:none;margin:0;padding:0;border:0;color:var(--ivory)}
.drawer::backdrop{background:rgb(21 21 21/.6);backdrop-filter:blur(2px)}
.drawer{position:fixed;inset:0 0 0 auto;width:min(440px,100%);height:100%;padding:0 var(--gutter) var(--sp-6);background:var(--obsidian);overflow-y:auto;overscroll-behavior:contain}
html:has(.drawer[open],.sheet[open]){overflow:hidden}
.drawer[open]{display:flex;flex-direction:column}
.drawer__top{display:flex;align-items:center;justify-content:space-between;min-height:var(--hbar);margin-bottom:var(--sp-4);border-bottom:1px solid var(--obs-3)}
.drawer__search{position:relative;margin-bottom:var(--sp-5)}
.drawer__search .hsearch__q{height:52px;font-size:1rem}
.drawer__main{border-top:1px solid var(--obs-3)}
.drawer__main a{display:flex;align-items:center;justify-content:space-between;min-height:60px;border-bottom:1px solid var(--obs-3);font:800 2rem/1.05 var(--serif);text-decoration:none;letter-spacing:0}
.drawer__main a::after{content:"";width:20px;height:20px;background:currentColor;opacity:.5;-webkit-mask:var(--arrow) center/20px no-repeat;mask:var(--arrow) center/20px no-repeat;transition:transform var(--d-2) var(--ease),opacity var(--d-1)}
.drawer__main a:hover::after,.drawer__main a[aria-current=page]::after{opacity:1;transform:translateX(4px)}
.drawer__main a[aria-current=page]{color:var(--sun)}
.drawer__more{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--sp-4);margin:var(--sp-5) 0 var(--sp-6)}
.drawer__more a{display:flex;align-items:center;min-height:44px;color:var(--fog);font-size:var(--t-sm);font-weight:500;text-decoration:none}
.drawer__more a:hover{color:var(--ivory)}
.drawer__foot{display:grid;gap:var(--sp-3);margin-top:auto;padding-top:var(--sp-5);border-top:1px solid var(--obs-3);color:var(--fog);font-size:var(--t-sm)}
.drawer__addr a{text-decoration:none}
.drawer__cta{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.drawer__cta .btn{--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun)}
.drawer__cta .btn--outline{--bg:transparent;--fg:var(--ivory);--bd:var(--obs-3);--fill:var(--ivory);--fill-fg:var(--obsidian)}
.gate{position:fixed;inset:0;width:100%;height:100%;padding:var(--gutter);background:var(--obsidian)}
.gate[open]{display:grid;justify-items:center;align-items:center}
.gate::backdrop{background:var(--obsidian)}
.gate__in{display:grid;justify-items:center;gap:var(--sp-4);width:min(100%,460px);padding:var(--sp-7) var(--sp-5);text-align:center}
.gate__logo{width:200px;margin-bottom:var(--sp-4)}
.gate__title{font:800 var(--t-3)/1 var(--serif);letter-spacing:0}
.gate__desc{color:var(--fog)}
.gate__actions{display:grid;gap:var(--sp-2);width:100%;margin-top:var(--sp-3)}
.gate__actions .btn{--bg:var(--ivory);--fg:var(--obsidian);--bd:var(--ivory)}
.gate__actions .btn--outline{--bg:transparent;--fg:var(--ivory);--bd:var(--obs-3);--fill:var(--ivory);--fill-fg:var(--obsidian)}
.gate__leave{display:inline-flex;align-items:center;justify-content:center;min-height:44px;color:var(--fog)}
.gate__leave:hover{color:var(--ivory)}
.gate__legal{margin-top:var(--sp-3);color:var(--fog);font:500 var(--t-xs)/1.6 var(--f);letter-spacing:.04em;text-wrap:balance}

/* ---- phone action bar: Shop · Deals · Search · Directions, fixed, under 1100 px ---------------- */
.actionbar{position:fixed;inset:auto 0 0 0;z-index:45;display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));background:var(--obsidian);border-top:1px solid var(--obs-2)}
.actionbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:calc(var(--bar) - 12px);border-radius:var(--r);color:var(--fog);font:600 .6875rem/1 var(--f);letter-spacing:.04em;text-decoration:none}
.actionbar__item .i{width:20px;height:20px}
.actionbar__item:hover,.actionbar__item[aria-current=page]{color:var(--ivory)}
.actionbar__item[aria-current=page] .i{color:var(--sun)}
.actionbar__item--primary{background:var(--sun);color:var(--obsidian)}
.actionbar__item--primary:hover,.actionbar__item--primary[aria-current=page]{background:var(--sun-hi);color:var(--obsidian)}
.actionbar__item--primary[aria-current=page] .i{color:var(--obsidian)}
.actionbar__item:focus-visible{outline-offset:-3px}

/* ---- section heads: a number, the serif title, an optional link at the far end ------------------ */
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-3) var(--sp-6);margin-bottom:var(--sp-7)}
.sec-head>:not(.link-arrow):not(.is-style-link-arrow){flex:1 1 0;min-width:min(100%,12ch);overflow-wrap:break-word}
.sec-head .link-arrow,.sec-head .is-style-link-arrow{flex:none;margin:0}
.sec-head .h2,.sec-head h2{font:800 var(--t-4)/1 var(--serif);letter-spacing:0}
.sec-head__n{display:block;margin-bottom:var(--sp-3);color:var(--ink-2);font:600 var(--t-xs)/1 var(--f);letter-spacing:.14em;text-transform:uppercase}
.sec-note{max-width:36rem;margin:calc(-1*var(--sp-5)) 0 var(--sp-6);color:var(--tx2)}

/* rails: native horizontal scroll, snap, a hairline track */
.scroller{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--rule-2) transparent}
.scroller::-webkit-scrollbar{height:4px}
.scroller::-webkit-scrollbar-thumb{background:var(--rule-2)}
.scroller:focus-visible{outline-offset:-3px}

/* shared surfaces: tone planes, not boxes */
.panel,.is-style-panel,.is-style-panel-amber,.is-style-panel-ink,.panel--ink{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-6);border-radius:0;background:var(--white)}
.is-style-panel-amber{box-shadow:inset 0 2px 0 var(--green)}
.is-style-panel-ink,.panel--ink{background:var(--obsidian);color:var(--ivory)}
.panel__h{font:800 var(--t-2)/1.15 var(--serif);font-size:1.75rem;letter-spacing:0}
.panel p{color:var(--tx2)}
.panel--ink p,.is-style-panel-ink p{color:var(--fog)}
.panel .facts{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:var(--t-sm)}
.panel .facts--hours{display:block}
.duo,.deliv-grid{display:grid;gap:var(--sp-3)}

/* ratings / quotes (weedhub-core; shown only with verified entries) */
.ratings{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--sp-2)}
.rating{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 6px;padding:14px;background:var(--white);text-decoration:none}
.rating__score{font:800 2rem/1 var(--serif);letter-spacing:0}
.rating__star{width:18px;height:18px;color:var(--ink)}
.rating__src{grid-column:1/-1;color:var(--ink-2);font-size:var(--t-xs)}
.rating__src b{display:block;color:var(--ink);font-size:.8125rem}
.quotes{display:grid;gap:var(--sp-3)}
.quote,.is-style-review{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background:var(--white)}
.quote figcaption,.is-style-review cite{margin-top:auto;color:var(--ink-2);font-size:.8125rem;font-style:normal}
.quotes>li{margin:0}
.reviews__more{margin-top:var(--sp-3)}

/* ---- graphic panels (weedhub_theme_panel(), site.js card fallback): a colour field, Geary-style
   linework, a big serif numeral, the label in italic. Used wherever no real photo exists. */
.gpanel{--gp-bg:var(--sun);--gp-fg:var(--obsidian);position:relative;display:block;overflow:hidden;container-type:inline-size;background:var(--gp-bg);color:var(--gp-fg)}
.gpanel--green{--gp-bg:var(--sun);--gp-fg:var(--obsidian)}
.gpanel--obsidian{--gp-bg:var(--obsidian);--gp-fg:var(--sage)}
.gpanel--sage{--gp-bg:var(--sage);--gp-fg:var(--obsidian)}
.gpanel__lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor}
.gpanel__lines g path{stroke-width:1;opacity:.22;vector-effect:non-scaling-stroke}
.gpanel__road{stroke-width:3;opacity:.9;vector-effect:non-scaling-stroke}
.gpanel__dot{fill:currentColor;stroke:none}
.gpanel--obsidian .gpanel__dot{fill:var(--sun)}
.gpanel__no{position:absolute;left:6%;bottom:-.12em;font:800 46cqw/1 var(--serif);letter-spacing:0;font-variant-numeric:lining-nums}
.gpanel__label{position:absolute;left:7%;top:7%;right:7%;font:800 max(14px,10cqw)/1.05 var(--serif);text-transform:capitalize;letter-spacing:0}

/* ---- visit (weedhub/visit) + hours (weedhub/hours) ---------------------------------------------- */
.visit__grid{display:grid;gap:var(--sp-7)}
.visit__info .h2{font:800 var(--t-4)/1 var(--serif);letter-spacing:0}
.visit__addr{margin:var(--sp-3) 0 var(--sp-5);color:var(--tx2);font-size:var(--t-1)}
.hours{width:100%;margin:var(--sp-4) 0 var(--sp-6);border-collapse:collapse;font-size:var(--t-sm)}
.hours th,.hours td{padding:12px 0;border-bottom:1px solid var(--rule-2);text-align:left;vertical-align:top;font-weight:500}
.hours tr:first-child :is(th,td){border-top:1px solid var(--rule-2)}
.hours th{font-weight:600}
.hours td,.hours thead th{text-align:right}
.hours thead th{padding-top:0;color:var(--ink-2)}
.hours .is-today th,.hours .is-today td{color:var(--green);font-weight:700}
.hours .is-today th::after{content:"Today";margin-left:8px;padding:2px 7px;border-radius:99px;background:var(--sun);color:var(--obsidian);font-size:.6875rem;letter-spacing:.06em}
.hours--pending{border-collapse:separate}
.hours--pending td,.hours--pending th{text-align:left}
.hours td>span{display:block;max-width:22rem;margin-left:auto;font-size:.8125rem;line-height:1.5;color:var(--tx2);text-align:right}
.visit__info .status.is-pending,.hours__note,.panel .status.is-pending{line-height:1.5}
:is(.facts__cell,.way__row,.fhours) .pending__call{display:block;width:fit-content;margin-top:4px}
.hours__note{margin:calc(-1*var(--sp-4)) 0 var(--sp-5);color:var(--ink-2)}
.map__frame{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) invert(.9) contrast(.9)}
/* the map placeholder is Weedhub's street-grid motif: Geary as the heavy line, a dot at the store */
.map__fallback{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:var(--sp-3);padding:var(--sp-5);color:var(--ink);text-align:center;text-decoration:none;font:800 1.75rem/1.1 var(--serif);
background:linear-gradient(var(--sun),var(--sun)) 0 58%/100% 3px no-repeat,repeating-linear-gradient(90deg,transparent 0 63px,var(--rule-2) 63px 64px),repeating-linear-gradient(0deg,transparent 0 47px,color-mix(in srgb,var(--rule-2) 55%,transparent) 47px 48px),var(--paper-2);letter-spacing:0}
.map__fallback .i{width:28px;height:28px;padding:5px;border-radius:50%;background:var(--sun);color:var(--obsidian);box-sizing:content-box}
.map__fallback small{font:600 var(--t-xs)/1 var(--f);letter-spacing:.14em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px}
.map__load{position:absolute;right:12px;bottom:12px}

/* ---- footer ------------------------------------------------------------------------------------- */
.site-footer{position:relative;padding:var(--sp-9) 0 var(--sp-7);background:var(--obsidian);color:var(--fog)}
.site-footer a{color:var(--ivory);text-decoration:none}
.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.signup{display:grid;gap:var(--sp-5);padding-bottom:var(--sp-8);margin-bottom:var(--sp-8);border-bottom:1px solid var(--obs-3)}
.signup .label{color:var(--fog)}
.signup__h{color:var(--ivory);font:800 var(--t-3)/1.02 var(--serif);letter-spacing:0;max-width:16ch}
.signup__form{display:grid;gap:var(--sp-3)}
.signup .field{background:transparent;border-color:#4A4A46;color:var(--ivory);border-radius:0;border-width:0 0 1px;padding-inline:0;min-height:52px}
.signup .field::placeholder{color:var(--fog)}
.signup .field:focus-visible{outline:2px solid var(--sun);outline-offset:4px;border-color:var(--ivory)}
.signup .btn{--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun)}
.signup__fine{color:var(--fog);font-size:var(--t-xs)}
.signup__age{flex-wrap:wrap}.signup__age .form__error{flex-basis:100%}
.signup__fine a,.site-footer .signup__fine a{text-decoration:underline}
.signup__status:not(:empty){display:block;margin-top:6px;color:var(--ivory);font-size:var(--t-sm);font-weight:600}
.signup__status.is-ok{color:var(--sun)}
.signup__status.is-error{color:var(--err-dk)}
.site-footer .form__check{color:var(--fog)}
.site-footer .form__error{color:var(--err-dk)}
.signup.signup--page{margin-bottom:0;padding:var(--sp-7) var(--sp-6);border:0;background:var(--obsidian);color:var(--fog)}
.fsig{margin:0 0 var(--sp-7);color:var(--ivory);font:800 clamp(2.5rem,1rem + 4vw,5rem)/.92 var(--serif);letter-spacing:0}
.fsig a{color:inherit;text-decoration:none}
.fsig a:hover{text-decoration:none}
.fsig em{color:var(--sage)}
.site-footer__grid{display:grid;gap:var(--sp-7)}
.fbrand__logo{display:block;width:150px;height:auto;margin-bottom:var(--sp-5)}
.fbrand__line{max-width:30ch;margin-bottom:var(--sp-5);color:var(--fog)}
.fbrand__nap{margin-bottom:var(--sp-5);font-style:normal;line-height:1.75}
.fhours{display:grid;gap:var(--sp-2);max-width:26rem;margin:0;padding-top:var(--sp-4);border-top:1px solid var(--obs-3)}
.fhours__row{display:grid;grid-template-columns:5.5rem 1fr;gap:var(--sp-3);font-size:var(--t-sm)}
.fhours dt{color:var(--fog);font-weight:600}
.fhours dd{color:var(--ivory);font-variant-numeric:tabular-nums}
.fhours .pending{white-space:normal}
.fcol__h{margin:0 0 var(--sp-4);color:var(--fog);font:600 var(--t-xs)/1.3 var(--f);letter-spacing:.14em;text-transform:uppercase}
.fcol ul{display:grid;gap:2px;font-size:var(--t-sm)}
.fcol a{display:inline-flex;align-items:center;min-height:34px}
.site-footer__legal{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 24px;margin-top:var(--sp-8);padding-top:var(--sp-5);border-top:1px solid var(--obs-3);color:var(--fog);font-size:var(--t-xs)}
.site-footer__legal>*,.footer-legal>*{margin:0}
.footer-legal{display:contents}
.licence{color:var(--tx2);font-size:var(--t-xs);letter-spacing:.02em}
.site-footer__legal .licence{flex-basis:100%;margin-bottom:var(--sp-2);color:var(--ivory);font-size:var(--t-sm)}
.site-footer__legal a{text-decoration:underline;text-underline-offset:2px}
/* phones: a short footer (Will, 2026-10-21: "too big") — no big street line (the address is right
   below it), the two link lists side by side, tighter spacing */
@media (max-width:767px){
.site-footer{padding-top:var(--sp-7)}
.signup{gap:var(--sp-3);padding-bottom:var(--sp-6);margin-bottom:var(--sp-6)}
.signup__h{font-size:1.5rem}
.fsig{display:none}
.site-footer__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-6) var(--sp-4)}
.fbrand{grid-column:1/-1}
.fbrand__logo{width:120px;margin-bottom:var(--sp-3)}
.fbrand__line,.fbrand__nap{margin-bottom:var(--sp-3)}
.fbrand__nap{line-height:1.6}
.fcol__h{margin-bottom:var(--sp-2)}
.fcol ul{gap:0}
.fcol a{min-height:30px}
.site-footer__legal{margin-top:var(--sp-6)}}
.legal-links{display:flex;flex-wrap:wrap;gap:0 16px}
.legal-links a{display:inline-flex;align-items:center;min-height:28px}

/* ---- forms (weedhub/contact-form, the sign-up page) --------------------------------------------- */
.form{display:grid;gap:var(--sp-4);margin:0}
.form__field{display:grid;gap:6px;margin:0}
.form__field .label{margin:0;color:var(--tx2);font-size:var(--t-xs)}
.form__field .field--select{width:100%;min-height:48px;padding-left:14px;font-size:1rem;font-weight:400}
.form__opt{color:var(--ink-2);font-weight:500;text-transform:none;letter-spacing:0}
.form__error{color:var(--err);font-size:var(--t-sm);font-weight:600;line-height:1.4}
.form__check{display:flex;align-items:flex-start;gap:10px;margin:0;color:var(--tx2);font-size:var(--t-sm);line-height:1.45}
.form__check input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--green);cursor:pointer}
.form__fine{margin:0}
.form>.btn{justify-self:start;min-width:12rem}
.form__status{margin:0;padding:12px 16px;border-left:2px solid var(--rule-2);background:var(--white);font-size:var(--t-sm);font-weight:600}
.form__status.is-ok{border-left-color:var(--green)}
.form__status.is-error{border-left-color:var(--err);color:var(--err)}
.form__status:empty{margin-top:calc(-1*var(--sp-4));padding:0;border:0;background:none}
.form__hp{position:absolute;left:-9999px}

/* community timeline (weedhub/community) */
.timeline{display:grid;gap:var(--sp-6)}
.timeline__year{display:grid;gap:var(--sp-3)}
.timeline .timeline__h{margin:0;font:800 var(--t-3)/1 var(--serif);letter-spacing:0}
.timeline__list{display:grid;margin:0;padding:0;list-style:none;border-top:1px solid var(--rule-2)}
.timeline__item{display:grid;gap:2px;padding:14px 0;border-bottom:1px solid var(--rule-2)}
.timeline__name{font-weight:700}
.timeline .timeline__kind{order:-1;color:var(--ink-2)}
.timeline__text{color:var(--tx2);font-size:var(--t-sm)}

/* ---- page head + breadcrumbs ------------------------------------------------------------------- */
.page-head{padding:var(--sp-7) 0 var(--sp-8);border-bottom:1px solid var(--rule-2)}
.page-head .h1{max-width:18ch;font:800 var(--t-5)/.98 var(--serif);letter-spacing:0}
.page-head .lead{margin-top:var(--sp-5)}
.page-head__cta{margin-top:var(--sp-6)}
.crumbs ol{display:flex;flex-wrap:wrap;list-style:none;margin:0 0 var(--sp-5);padding:0;color:var(--ink-2);font:600 var(--t-xs)/1.4 var(--f);letter-spacing:.12em;text-transform:uppercase}
.crumbs li{display:flex;align-items:center;min-width:0}
.crumbs li+li::before{content:"";flex:none;width:14px;height:1px;margin:0 10px;background:var(--rule-2)}
.crumbs a{display:inline-flex;align-items:center;min-height:32px;color:var(--tx2);text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs li:last-child{flex:1 1 0;min-width:min(9rem,100%)}
.crumbs [aria-current]{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- deal strip (menu, 404), CTA band, callouts ------------------------------------------------- */
.deal-strip{display:flex;align-items:center;gap:var(--sp-3);min-height:52px;margin-bottom:var(--sp-5);padding:10px 16px;background:var(--white);color:var(--ink);font-size:var(--t-sm);text-decoration:none;box-shadow:inset 2px 0 0 var(--green)}
.deal-strip b{color:var(--green)}
.deal-strip--empty{box-shadow:inset 2px 0 0 var(--rule-2)}
.deal-strip--empty b{color:var(--tx2)}
.deal-strip__go{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-weight:600;white-space:nowrap}
.cta-band{display:grid;gap:var(--sp-5);padding:var(--sp-8) var(--sp-6);background:var(--obsidian);color:var(--ivory)}
.cta-band__h{font:800 var(--t-4)/1 var(--serif);letter-spacing:0}
.cta-band p{margin-top:var(--sp-2);color:var(--fog)}
.cta-band .wp-block-button .wp-block-button__link{--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun)}
.cta-band .wp-block-button.is-style-outline .wp-block-button__link{--bg:transparent;--fg:var(--ivory);--bd:color-mix(in srgb,var(--ivory) 55%,transparent)}
.callout,.is-style-callout,.is-style-callout-deal{padding:var(--sp-5) var(--sp-5);background:var(--white);box-shadow:inset 2px 0 0 var(--sage);font-size:var(--t-sm)}
.callout--deal,.is-style-callout-deal{box-shadow:inset 2px 0 0 var(--green)}
.callout__h,.is-style-callout>:where(h2,h3,h4):first-child,.is-style-callout-deal>:where(h2,h3,h4):first-child{margin:0 0 4px;font:600 1rem/1.3 var(--f);letter-spacing:0}
.review-banner{padding-block:var(--sp-3)}

/* ---- empty / error states (menu results, rails, category grid) ---------------------------------- */
.state{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-9) var(--sp-5);background:var(--paper-2);text-align:center}
.state h2,.state h3{font:800 var(--t-3)/1 var(--serif);letter-spacing:0}
.state p{max-width:30rem;color:var(--tx2)}
.state__i{width:36px;height:36px;color:var(--ink-2)}
.state--error{background:var(--white);box-shadow:inset 0 2px 0 var(--err)}
.state .btn-row{justify-content:center}

/* the no-JavaScript 21+ notice (setup.php) */
.agenote{margin:0;padding:10px var(--gutter);background:var(--obsidian);color:var(--ivory);font-size:var(--t-sm);font-weight:600;text-align:center}

/* core block essentials (core/image's own sheet is not loaded on the front end) */
.wp-block-image{margin:0 0 1em}
.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}
.wp-block-image.aligncenter,.wp-block-image .aligncenter{text-align:center;margin-inline:auto}
.wp-block-image figcaption,.wp-element-caption{margin-top:var(--sp-2);color:var(--ink-2);font-size:.8125rem}
.wp-block-separator{margin:var(--sp-7) 0;border:0;border-top:1px solid var(--rule-2)}

/* ---- motion: hover answers, the hero on load (pages.css), sections below the fold rise in once
   with their items staggered (site.js marks them, only when JS runs and motion is allowed), the header
   tightening and blurring after 40 px, the drawer. Everything is off under prefers-reduced-motion. */
@media (prefers-reduced-motion:no-preference){
html{scroll-behavior:smooth}
.motion [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .9s var(--ease)}
.motion [data-reveal].is-in{opacity:1;transform:none}
.motion [data-reveal] [data-stagger]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.motion [data-reveal].is-in [data-stagger]{opacity:1;transform:none}
.drawer[open]{animation:slide .32s var(--ease)}
.drawer[open] .drawer__main li{animation:rise .5s var(--ease) backwards}
.drawer[open] .drawer__main li:nth-child(2){animation-delay:40ms}.drawer[open] .drawer__main li:nth-child(3){animation-delay:80ms}
.drawer[open] .drawer__main li:nth-child(4){animation-delay:120ms}.drawer[open] .drawer__main li:nth-child(5){animation-delay:160ms}
.drawer[open] .drawer__main li:nth-child(n+6){animation-delay:200ms}}
@keyframes slide{from{transform:translateX(32px);opacity:.3}}
@keyframes rise{from{transform:translateY(10px);opacity:0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---- breakpoints ------------------------------------------------------------------------------- */
@media (max-width:1099px){
body{padding-bottom:calc(var(--bar) + env(safe-area-inset-bottom,0px))}
.crumbs a{min-height:44px;min-width:44px;justify-content:center;margin-inline:-6px;padding-inline:6px}
.crumbs ol{margin-top:-6px}}
@media (max-width:599px){.form>.btn{justify-self:stretch}.burger__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hstrip__msg span:nth-child(n+3){display:none}}
@media (max-width:767px){
.wrap--bleed-sm{padding-inline:0}
.wrap .wrap--bleed-sm{width:auto;max-width:none;margin-inline:calc(-1*var(--gutter))}
.wrap--bleed-sm>:not(.scroller){padding-inline:var(--gutter)}
.wrap--bleed-sm .scroller{scroll-padding-inline:var(--gutter)}
.duo,.quotes:not(.quotes--grid),.is-style-rail-sm{display:grid;grid-auto-flow:column;grid-auto-columns:calc(100vw - 2*var(--gutter) - 36px);width:max-content;padding:4px var(--gutter) 10px}
.duo>*,.quotes:not(.quotes--grid)>*,.is-style-rail-sm>*{scroll-snap-align:start}
.deal-strip__txt{display:none}}
@media (min-width:600px){
.site-header__order{display:inline-flex}
.signup__form{grid-template-columns:1fr auto;align-items:end}.signup__fine,.signup__age{grid-column:1/-1}
.form--contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.form--contact>*{grid-column:1/-1}
.form--contact>.form__field:nth-child(-n+4){grid-column:auto}}
@media (min-width:768px){
:root{--hbar:72px}
.brand__img{width:118px}
.hstrip__addr{display:inline-flex}
.scroller{scrollbar-width:thin}
.duo,.deliv-grid{grid-template-columns:1fr 1fr;gap:var(--sp-4)}
.quotes:not(.quotes--grid){grid-template-columns:repeat(3,minmax(0,1fr))}
.site-footer__grid{grid-template-columns:1.6fr 1fr 1fr}
.cta-band{padding:var(--sp-9) var(--sp-8);grid-template-columns:minmax(0,1fr) auto;align-items:end}
.timeline__year{grid-template-columns:6rem minmax(0,1fr);gap:var(--sp-5);align-items:start}}
/* desktop: the menu in the header, no action bar, no burger */
@media (min-width:1100px){
:root{--hbar:76px}
html{scroll-padding-bottom:16px}
.actionbar,.burger{display:none}
.nav{display:block}
.brand{margin-right:var(--sp-5)}
.brand__img{width:128px}
.hstrip__status{display:inline-flex}
.hsearch{display:block;margin-left:auto}
.hsearch-link{display:none}
.site-header.is-stuck{--hbar:60px}
.site-header.is-stuck .brand__img{width:108px}}
@media (min-width:1024px){
.visit__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:var(--sp-9)}
.split{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:var(--sp-9)}
.split__head{position:sticky;top:calc(var(--hbar) + 24px)}
.signup{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:end;gap:var(--sp-9)}
.signup.signup--page{grid-template-columns:minmax(0,1fr)}
.site-footer__grid{grid-template-columns:minmax(0,6fr) minmax(0,3fr) minmax(0,3fr)}}
.page-extra:not(:empty){padding-top:var(--section)}
.has-hover .scroller{cursor:grab}
.scroller.is-drag{cursor:grabbing;scroll-snap-type:none;user-select:none}
.scroller.is-drag a{pointer-events:none}

/* ---- page heads by kind (inc/heads.php adds the tone + the visual) -------------------------------- */
.page-head{position:relative;overflow:hidden}
.page-head .h1{font:800 var(--t-5)/.92 var(--serif);letter-spacing:0;max-width:16ch}
.page-head .lead{max-width:38rem}
.page-head>.wrap{position:relative}
.page-head--has-visual>.wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-5)}
.page-head .h1{overflow-wrap:break-word;hyphens:manual}
.page-head--obsidian,.page-head--green,.page-head--cat.page-head--obsidian,.page-head--cat.page-head--green{background:var(--obsidian);color:var(--ivory);border-bottom:0}
.page-head--amber,.page-head--cat.page-head--amber{background:var(--sun);color:var(--obsidian);border-bottom:0}
.page-head--flyer{background:var(--obsidian);color:var(--ivory);border-bottom:0;padding-block:var(--sp-4) var(--sp-5)}
.page-head--flyer .h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.page-head--flyer .lead{display:none}
.page-head--flyer .ticket{margin-top:var(--sp-4)}
.page-head--sage,.page-head--cat.page-head--sage{background:var(--obsidian);color:var(--ivory);border-bottom:0}
:is(.page-head--obsidian,.page-head--green,.page-head--sage,.page-head--flyer) :is(.lead,.crumbs ol,.crumbs a){color:var(--fog)}
:is(.page-head--obsidian,.page-head--green,.page-head--sage,.page-head--flyer) .crumbs li+li::before{background:rgb(245 241 232/.35)}
:is(.page-head--obsidian,.page-head--green,.page-head--sage,.page-head--flyer) :focus-visible{outline-color:var(--sun)}
.page-head--amber :is(.lead,.crumbs ol,.crumbs a){color:var(--obsidian)}
.page-head--amber .crumbs li+li::before{background:rgb(21 21 21/.35)}
.page-head--amber :focus-visible{outline-color:var(--obsidian)}
.page-head--green .h1::after,.page-head--obsidian .h1::after{content:"";display:block;width:64px;height:6px;margin-top:var(--sp-5);background:var(--sun)}
.page-head--green .wp-block-button .wp-block-button__link,.page-head--obsidian .wp-block-button .wp-block-button__link{--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun);--fill:var(--ivory);--fill-fg:var(--obsidian)}
.page-head--amber .wp-block-button .wp-block-button__link{--bg:var(--obsidian);--fg:var(--ivory);--bd:var(--obsidian)}
.page-head__big{display:grid;gap:var(--sp-2);align-self:end;margin:0}
.page-head__big b,.page-head__big a{color:var(--sun);font:800 clamp(3.5rem,1.5rem + 8vw,9rem)/.85 var(--serif);letter-spacing:0;text-decoration:none}
.page-head__big>span{color:var(--fog);font:700 var(--t-xs)/1.4 var(--f);letter-spacing:.16em;text-transform:uppercase}
.page-head--contact .page-head__big a{color:var(--green);font-size:clamp(2.75rem,1.2rem + 5.4vw,6rem)}
.page-head--contact .page-head__big a:hover{color:var(--ivory)}
.page-head--contact .page-head__big>span{color:var(--ink-2)}
.page-head__visual{align-self:stretch}
.page-head__panel{width:100%;max-width:340px;aspect-ratio:4/5;margin-left:auto;transform:rotate(3deg);box-shadow:var(--lift)}
.page-head--cat{padding-block:var(--sp-6) var(--sp-7)}
.page-head--cat .h1{font-size:clamp(3rem,1.4rem + 6vw,7.5rem)}
.page-head__line{position:absolute;left:0;right:0;bottom:var(--sp-5);width:100%;height:60px;fill:none;stroke:var(--sun);stroke-width:2;opacity:.9;pointer-events:none}
.page-head__line circle:first-of-type{fill:var(--sun);stroke:none}
.page-head--green{padding-bottom:calc(var(--sp-9) + 20px)}
.page-head--photo{padding-bottom:0;border-bottom:0}
.page-head__photo{margin:var(--sp-5) calc(-1*var(--gutter)) 0;background:var(--obsidian)}
.page-head__photo img{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover}
.page-head--legal{padding-block:var(--sp-6) var(--sp-6)}
.page-head--legal .h1{font-size:var(--t-4)}
.page-head--post .h1{max-width:20ch}
@media (prefers-reduced-motion:no-preference){
.page-head .h1{animation:headin .9s cubic-bezier(.2,.9,.1,1) both}
.page-head .lead,.page-head__big{animation:headin .9s cubic-bezier(.2,.9,.1,1) .15s both}
.page-head__panel{animation:panelpop 1.1s cubic-bezier(.2,.9,.1,1) .2s both}
.page-head__photo img{animation:photoin 1.6s cubic-bezier(.16,.84,.2,1) both}
.page-head__line path{stroke-dasharray:1200;animation:draw 1.6s var(--ease) .2s both}}
@keyframes headin{from{opacity:0;transform:translateY(24px)}}
@keyframes panelpop{from{opacity:0;transform:rotate(-6deg) translateY(30px) scale(.94)}}
@keyframes photoin{from{transform:scale(1.1);filter:brightness(.4)}}
@keyframes draw{from{stroke-dashoffset:1200}}
@media (min-width:1024px){
.page-head--has-visual>.wrap{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--sp-8);align-items:end}
.page-head--has-visual>.wrap>.crumbs{grid-column:1/-1}
.page-head--has-visual>.wrap>:not(.crumbs):not(.page-head__visual):not(.page-head__big):not(.page-head__photo){grid-column:1}
.page-head--has-visual .page-head__visual,.page-head--has-visual .page-head__big,.page-head--has-visual .page-head__photo{grid-column:2;grid-row:2/span 4}
.page-head--photo>.wrap{align-items:stretch}
.page-head--photo>.wrap>:not(.page-head__photo){align-self:end}
.page-head__photo{margin:0 calc(-1*var(--gutter)) 0 0;min-height:420px;position:relative}
.page-head__photo .photo{position:absolute;inset:0}
.page-head__photo img{aspect-ratio:auto}
.page-head--photo>.wrap>.h1,.page-head--photo>.wrap>.lead{margin-bottom:var(--sp-7)}
.page-head--photo>.wrap>.lead{margin-top:0}}
@media (max-width:1023px){.page-head__panel{max-width:180px;margin:0}.page-head__visual{position:absolute;right:var(--gutter);top:var(--sp-5);width:34%;max-width:160px;opacity:.95}.page-head--cat .h1{max-width:8ch}}
/* the age gate: Weedhub's own counter photo, deeply shaded, behind the question */
.gate{background:linear-gradient(rgb(21 21 21/.84),rgb(21 21 21/.94)),url(../img/weedhub-counter-tall-600.jpg) 50% 80%/cover no-repeat,var(--obsidian)}
.gate__title{font-size:clamp(2.5rem,1.6rem + 3vw,3.75rem);line-height:.95}
.gate__title::after{content:"";display:block;width:56px;height:6px;margin:var(--sp-4) auto 0;background:var(--sun)}
.gate__actions .btn:not(.btn--outline){--bg:var(--sun);--fg:var(--obsidian);--bd:var(--sun);--fill:var(--ivory)}
/* the menu browser's own head sits inside the content column: bleed its colour to the edges */
.page-head--bleed{margin-bottom:var(--sp-6);padding-block:var(--sp-6) var(--sp-7);border-bottom:0;box-shadow:0 0 0 100vmax var(--hb,transparent);clip-path:inset(0 -100vmax)}
.page-head--bleed.page-head--obsidian{--hb:var(--obsidian)}.page-head--bleed.page-head--amber{--hb:var(--sun)}
.page-head--bleed.page-head--green{--hb:var(--obsidian)}.page-head--bleed.page-head--sage{--hb:var(--obsidian)}
.page-head--bleed.page-head--has-visual{display:grid;gap:var(--sp-4)}
@media (min-width:1024px){
.page-head--bleed.page-head--has-visual{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--sp-8);align-items:end}
.page-head--bleed.page-head--has-visual>.crumbs{grid-column:1/-1}
.page-head--bleed.page-head--has-visual>:not(.crumbs):not(.page-head__visual){grid-column:1}
.page-head--bleed .page-head__visual{grid-column:2;grid-row:2/span 3}
.page-head--bleed .h1{font-size:clamp(3rem,1.4rem + 6vw,7.5rem)}}
.site-main--menu .menu{padding-top:0}
.page-head--bleed .page-head__panel{max-width:240px}
@media (max-width:767px){.page-head__line{display:none}.page-head--green{padding-bottom:var(--sp-8)}.page-head__visual{top:calc(var(--sp-8) + 8px)}}
/* the Geary line sits in the flow under the copy (never behind text), full width of the column */
.page-head .page-head__line{position:static;display:block;grid-column:1/-1;grid-row:auto;width:100%;height:48px;margin-top:var(--sp-6)}
.page-head--green{padding-bottom:var(--sp-6)}
@media (max-width:767px){.page-head .page-head__line{display:block;height:36px;margin-top:var(--sp-5)}.page-head--green{padding-bottom:var(--sp-5)}}
/* phones: the category / brand number card drops into the flow under the copy so it never covers the intro */
@media (max-width:640px){.page-head__visual{position:static;width:96px;max-width:none;margin:var(--sp-4) 0 0;transform:none}.page-head--cat .h1{max-width:none}}

/* ---- display settings (weedhub/a11y-tools; client, 2026-10-20): a tab on the right edge, its panel, and
   what each option does. Options are classes on <html>, set by site.js and saved per browser. ---- */
.a11y-btn{position:fixed;right:0;top:50%;z-index:44;display:grid;place-items:center;width:40px;height:48px;padding:0;border:2px solid var(--obsidian);border-right:0;border-radius:10px 0 0 10px;background:var(--sun);color:var(--obsidian);box-shadow:0 8px 24px -8px rgb(0 0 0/.7);transform:translateY(-50%);cursor:pointer}
.a11y-btn .i{width:24px;height:24px;stroke-width:1.8}
.a11y-btn .i circle{fill:currentColor;stroke:none}
.a11y-btn:hover{background:var(--sun-hi)}
.a11y-btn:focus-visible{outline:2px solid var(--ivory);outline-offset:3px}
.a11y{width:min(380px,calc(100% - 24px));max-height:calc(100% - 48px);margin:auto;padding:0;border:1px solid var(--hair-2);background:var(--obsidian);color:var(--ivory);overflow:auto}
.a11y::backdrop{background:rgb(0 0 0/.45)}
.a11y__in{display:grid;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5) var(--sp-5)}
.a11y__top{display:flex;align-items:center;justify-content:space-between}
.a11y__h{font:800 1.5rem/1.1 var(--serif);letter-spacing:0}
.a11y__size{margin:0;padding:0;border:0}
.a11y__size legend{margin-bottom:var(--sp-2);color:var(--fog);font:600 var(--t-xs)/1.3 var(--f);letter-spacing:.14em;text-transform:uppercase}
.a11y__seg{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--hair-2)}
.a11y__seg button{min-height:44px;border:0;background:transparent;color:var(--ivory);font-weight:600;cursor:pointer}
.a11y__seg button+button{border-left:1px solid var(--hair-2)}
.a11y__seg button[aria-pressed=true]{background:var(--sun);color:var(--obsidian)}
.a11y__list{display:grid;border-top:1px solid var(--hair-2)}
.a11y__opt{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:0;border:0;border-bottom:1px solid var(--hair-2);background:none;color:var(--ivory);font-weight:600;text-align:left;cursor:pointer}
.a11y__sw{position:relative;flex:none;width:44px;height:26px;border:1px solid var(--fog);border-radius:99px}
.a11y__sw::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--fog);transition:transform var(--d-1)}
.a11y__opt[aria-checked=true] .a11y__sw{border-color:var(--sun);background:var(--sun)}
.a11y__opt[aria-checked=true] .a11y__sw::after{background:var(--obsidian);transform:translateX(18px)}
.a11y__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3)}
html.a11y-size-1{font-size:112.5%}
html.a11y-size-2{font-size:125%}
html.a11y-links a{text-decoration:underline!important;text-underline-offset:.2em}
html.a11y-font,html.a11y-font *{font-family:Verdana,Arial,sans-serif!important;letter-spacing:.01em!important}
html.a11y-still *,html.a11y-still *::before,html.a11y-still *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-contrast body::before{display:none}
html.a11y-contrast :where(body,body *:not(img,video,picture,svg,svg *,iframe,.a11y-btn,.a11y-btn *,.a11y__seg [aria-pressed=true],.a11y__sw,.a11y__sw::after)){background-color:#000!important;color:#fff!important;border-color:#fff!important;text-shadow:none!important;box-shadow:none!important}
html.a11y-contrast a,html.a11y-contrast a *{color:#FFE600!important}
.is-today .daytag,.dealday.is-today .daytag{background:var(--sun);color:var(--obsidian)}
html.a11y-contrast .a11y__opt[aria-checked=true] .a11y__sw{background:#FFE600!important;border-color:#FFE600!important}
html.a11y-contrast .a11y__seg button[aria-pressed=true]{background:#FFE600!important;color:#000!important}

/* ---- the Order page: Meadow's ordering box starts right under the header, so each Meadow step (a
   product, Add to Cart) lands on it instead of a tall title (Henry, 2026-10-27). The H1 stays. ---- */
.p-order .page-head{padding:var(--sp-4) 0 var(--sp-3);border-bottom:0}
.p-order .page-head .h1{font-size:var(--t-3)}
.p-order .page-head .h1::after,.p-order .page-head .page-head__line{display:none}
@media (max-width:767px){.p-order .page-head :is(.crumbs,.lead){display:none}}
