@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap'); /* Astra only loads Montserrat 400/600 ‚Äî we need 700 for headings */
/* ===== legacy variable names, remapped to CWG v2 tokens (kept so older blocks that reference them don't break) ===== */
:root {
  --green-dark:  #1B3A2F;
  --green-mid:   #1B3A2F;
  --green-light: #3C372D;
  --amber:       #B8432E;
  --amber-light: #B8432E;
  --amber-pale:  #F7F4EE;
  --off-white:   #F7F4EE;
  --gray-light:  #E8E2D4;
  --gray-mid:    #C8BFA8;
  --text-dark:   #1B3A2F;
  --text-mid:    #6B6353;
  --red-soft:    #B8432E;
}

/* ===== header submenu (kept from v1, recolored) ===== */
.main-header-menu .sub-menu,
.ast-header-break-point .main-header-menu .sub-menu { background-color: #F7F4EE; border: 1px solid #E8E2D4; }
.main-header-menu .sub-menu a,
.main-header-menu .sub-menu li a { color: #3C372D; }
.main-header-menu .sub-menu a:hover { color: #1B3A2F; }

/* ============================================================
   CWG v2 ‚Äî editorial layer for cannabiswiseguys.com (Astra)
   Paste into Appearance ‚Üí Customize ‚Üí Additional CSS.
   Source of truth: context/web-design.md (+ "WordPress v2" addendum).
   ============================================================ */

:root{
  --cwg-bone:#F7F4EE; --cwg-forest:#1B3A2F; --cwg-rust:#B8432E; --cwg-dusty:#4A6B7A;
  --cwg-ink-200:#E8E2D4; --cwg-ink-300:#C8BFA8; --cwg-ink-500:#6B6353; --cwg-ink-700:#3C372D;
  --cwg-display:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --cwg-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --cwg-ease:cubic-bezier(.16,1,.3,1);
  --cwg-radius:2px;
  --cwg-measure:50rem;
}

/* ---- ground ---- */
body{background:var(--cwg-bone)!important;color:var(--cwg-ink-700);font-family:var(--cwg-display);
  -webkit-font-smoothing:antialiased;} /* no ss01: on Google-Fonts Montserrat that set IS the Alternates glyphs */
.site-content,#content,#primary,.ast-container,
.ast-separate-container .ast-article-single,.ast-page-builder-template .ast-article-single{background:transparent!important;}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--cwg-ink-200) 1px,transparent 1px),
                   linear-gradient(90deg,var(--cwg-ink-200) 1px,transparent 1px);
  background-size:40px 40px;opacity:.5;
  -webkit-mask-image:radial-gradient(ellipse 70% 55% at 50% 18%,#000 0%,transparent 72%);
          mask-image:radial-gradient(ellipse 70% 55% at 50% 18%,#000 0%,transparent 72%);}
.site-content{position:relative;z-index:1;}

/* ---- header menu: forest, not amber (Astra menu colours are set in Header Builder; this overrides) ---- */
.main-header-menu .menu-link,.ast-builder-menu .menu-link{color:var(--cwg-ink-500);}
.main-header-menu .current-menu-item > .menu-link,.main-header-menu .current-menu-ancestor > .menu-link,
.main-header-menu .menu-link:hover,.main-header-menu .menu-item:hover > .menu-link{color:var(--cwg-forest)!important;}

/* ---- reading column (design-layer pages only) ---- */
.entry-content:has(> .cwg-hero){max-width:var(--cwg-measure);margin-inline:auto;font-size:1.09375rem;line-height:1.65;}
.entry-content:has(> .cwg-hero) p{margin:0 0 1.25rem;}
.entry-content:has(> .cwg-hero) ul,.entry-content:has(> .cwg-hero) ol{margin:0 0 1.6rem;padding-left:1.15rem;}
.entry-content:has(> .cwg-hero) li{margin:0 0 .65rem;}
.entry-content:has(> .cwg-hero) li::marker{color:var(--cwg-ink-300);}
.entry-content strong{color:var(--cwg-forest);font-weight:600;}
.entry-content a{color:var(--cwg-forest);font-weight:600;text-decoration:underline;text-underline-offset:4px;
  text-decoration-thickness:1px;text-decoration-color:var(--cwg-ink-300);transition:text-decoration-color .3s var(--cwg-ease);}
.entry-content a:hover{text-decoration-color:var(--cwg-forest);}

/* ---- type ---- */
h1,h2,h3,h4,.entry-content :where(h1,h2,h3,h4),.entry-title{font-family:var(--cwg-display);font-weight:700;color:var(--cwg-forest);text-wrap:pretty;}
.cwg-hero h1{text-wrap:balance;}
.cwg-hero h1{font-size:clamp(2.6rem,6.4vw,5.4rem);line-height:.94;letter-spacing:-.035em;margin:0 0 1.6rem;}
.entry-content:has(> .cwg-hero) h2{font-size:clamp(1.55rem,2.7vw,2.1rem);line-height:1.1;letter-spacing:-.022em;
  margin:3.6rem 0 1rem;padding-top:1.6rem;border-top:1px solid var(--cwg-ink-200);}
.entry-content:has(> .cwg-hero) h3{font-size:1.25rem;letter-spacing:-.015em;margin:2rem 0 .6rem;}

/* ---- eyebrow (label layer) ---- */
.cwg-eyebrow{display:flex;flex-wrap:wrap;white-space:nowrap;align-items:center;gap:.5rem .8rem;margin:0 0 1.4rem;
  font-family:var(--cwg-display);font-size:.6875rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--cwg-ink-500);}
.cwg-eyebrow::before{content:"";flex:none;width:1.75rem;height:2px;background:var(--cwg-rust);}
.cwg-eyebrow b{color:var(--cwg-forest);font-weight:600;}
.cwg-eyebrow .sep{color:var(--cwg-ink-300);}

/* ---- hero ---- */
.cwg-hero{padding:1rem 0 0;}
.cwg-standfirst{font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.45;color:var(--cwg-ink-500);font-weight:400;max-width:32em;margin:0 0 .5rem;}

/* ---- readouts (mono) ---- */
.cwg-mono,.cwg-cite{font-family:var(--cwg-mono);font-variant-numeric:tabular-nums;}
.cwg-cite{font-size:.8em;color:var(--cwg-ink-500);letter-spacing:0;}
.cwg-cite a{color:var(--cwg-ink-500);font-weight:400;text-decoration-color:var(--cwg-ink-300);}
.cwg-cite a:hover{color:var(--cwg-forest);text-decoration-color:var(--cwg-forest);}

/* ---- stat grid ---- */
.cwg-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--cwg-ink-200);
  border:1px solid var(--cwg-ink-200);border-radius:var(--cwg-radius);overflow:hidden;margin:2.4rem 0 3rem;}
.cwg-stat{background:var(--cwg-bone);padding:1.4rem 1.4rem 1.25rem;}
.cwg-stat__label{font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--cwg-ink-500);margin:0 0 .8rem;min-height:2.4em;line-height:1.2;}
.cwg-stat__value{font-family:var(--cwg-mono);font-weight:500;font-size:clamp(1.2rem,1.75vw,1.5rem);line-height:1;letter-spacing:-.02em;color:var(--cwg-forest);font-variant-numeric:tabular-nums;white-space:nowrap;}
.cwg-stat__note{font-family:var(--cwg-mono);font-size:.75rem;color:var(--cwg-ink-500);margin:.7rem 0 0;line-height:1.4;}
@media (max-width:640px){.cwg-stats{grid-template-columns:1fr;}}

/* ---- tables ---- */
.entry-content:has(> .cwg-hero) .wp-block-table{margin:1.6rem 0 1.8rem;overflow-x:auto;}
.entry-content table{border-collapse:collapse;width:100%;font-size:.9375rem;border:1px solid var(--cwg-ink-200);border-radius:var(--cwg-radius);}
.entry-content th{font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cwg-ink-500);
  text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--cwg-forest);background:transparent;}
.entry-content th a{font-weight:600;text-transform:none;letter-spacing:0;font-family:var(--cwg-mono);font-size:.75rem;}
.entry-content td{padding:.75rem .9rem;border-top:1px solid var(--cwg-ink-200);vertical-align:top;line-height:1.45;}
.entry-content td:not(:first-child){font-family:var(--cwg-mono);font-size:.875rem;color:var(--cwg-forest);font-variant-numeric:tabular-nums;}

/* ---- quotes, buttons ---- */
.entry-content:has(> .cwg-hero) blockquote{border-left:2px solid var(--cwg-ink-300);padding-left:1.5rem;margin:1.6rem 0;font-size:1.125rem;color:var(--cwg-ink-700);line-height:1.6;}
.wp-block-button__link,.ast-button,.cwg-btn{background:var(--cwg-forest);color:var(--cwg-bone);border-radius:var(--cwg-radius)!important;
  font-family:var(--cwg-display);font-weight:600;letter-spacing:-.01em;padding:.8rem 1.4rem;text-decoration:none;transition:background .3s var(--cwg-ease);}
.wp-block-button__link:hover,.ast-button:hover,.cwg-btn:hover{background:var(--cwg-ink-700);}
.is-style-outline .wp-block-button__link,.cwg-btn--ghost{background:transparent;color:var(--cwg-forest);border:1px solid var(--cwg-forest);}

/* ---- reveal (JS adds .cwg-reveal only to elements below the first viewport) ---- */
.cwg-reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--cwg-ease),transform .9s var(--cwg-ease);}
.cwg-reveal.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.cwg-reveal{opacity:1;transform:none;transition:none;}}

/* ---- photos as design elements (Max's own photography only) ---- */
.cwg-bleed,.cwg-hero--split,.cwg-hero--split ~ .cwg-stats,.cwg-photo--wide,
.entry-content[data-ast-blocks-layout] > .cwg-bleed,.entry-content[data-ast-blocks-layout] > .cwg-hero--split,
.entry-content[data-ast-blocks-layout] > .cwg-hero--split ~ .cwg-stats,.entry-content[data-ast-blocks-layout] > .cwg-photo--wide{
  max-width:none;width:min(66rem,100vw - 3rem);margin-left:calc(50% - min(33rem,50vw - 1.5rem));margin-right:0;}  /* beats Astra's > * {max-width; margin:auto} */
.cwg-hero--split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:2.5rem 3.5rem;align-items:end;}
.cwg-hero--split h1{font-size:clamp(2.4rem,5.6vw,4.9rem);}
.cwg-hero--split .cwg-standfirst{max-width:none;}
.cwg-hero__media{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--cwg-radius);box-shadow:0 10px 30px -12px rgba(27,58,47,.35);}
.cwg-hero__media img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:900px){.cwg-hero--split{grid-template-columns:1fr;}.cwg-hero__media{aspect-ratio:16/10;}}
.entry-content .wp-block-image.cwg-photo,.cwg-photo{margin:2.6rem 0 2.8rem;}
.cwg-photo img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:var(--cwg-radius);box-shadow:0 8px 26px -14px rgba(27,58,47,.35);}
.cwg-photo--tall img{aspect-ratio:3/2;}
.cwg-photo figcaption,.wp-block-image.cwg-photo figcaption.wp-element-caption{display:flex;justify-content:space-between;gap:1.5rem;align-items:baseline;margin:.8rem 0 0;padding-top:.6rem;border-top:1px solid var(--cwg-ink-200);
  font-size:.875rem;line-height:1.45;color:var(--cwg-ink-500);text-align:left;}
.cwg-photo figcaption .cwg-credit{flex:none;font-family:var(--cwg-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cwg-ink-500);}
.cwg-photo figcaption .cwg-cite{white-space:nowrap;}
/* wide variant breaks out of the reading column */
@media (max-width:700px){.cwg-photo figcaption{flex-direction:column;gap:.35rem;}}

/* ---- design layer over frozen content blocks (pages/_design_layer.py) ---- */
.cwg-hero + p,.entry-content > .cwg-hero ~ p:nth-of-type(1){font-family:var(--cwg-mono);font-size:.78rem;letter-spacing:.04em;color:var(--cwg-ink-500);margin:0 0 1.2rem;}
.entry-content > .cwg-hero--lift2 ~ p:nth-of-type(2){font-family:var(--cwg-display);font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.45;color:var(--cwg-ink-500);letter-spacing:0;margin:0 0 1.5rem;}
.entry-content > .cwg-hero--lift1 ~ p:nth-of-type(1){font-family:var(--cwg-display);font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.45;color:var(--cwg-ink-500);letter-spacing:0;margin:0 0 1.5rem;}
.cwg-hero .cwg-hero__text h1{margin-bottom:.4rem;}
.cwg-toc{margin:0 0 2.5rem;padding:1.2rem 0 1.4rem;border-top:1px solid var(--cwg-ink-200);border-bottom:1px solid var(--cwg-ink-200);}
.cwg-toc__label{font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--cwg-ink-500);margin:0 0 .8rem;}
.cwg-toc ol{margin:0;padding:0;list-style:none;columns:2;column-gap:2.5rem;}
.cwg-toc li{margin:0 0 .45rem;break-inside:avoid;font-size:.9375rem;line-height:1.35;}
.cwg-toc a{font-weight:500;text-decoration-color:transparent;}
.cwg-toc a:hover{text-decoration-color:var(--cwg-forest);}
@media (max-width:640px){.cwg-toc ol{columns:1;}}
.cwg-stats + .cwg-toc,.cwg-stats:has(+ .cwg-toc){margin-bottom:0;}

/* ---- design-layer script UI (cwg-v2.js): progress, copy-link, section spy, long-list collapse ---- */
.cwg-progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--cwg-forest);transform:scaleX(0);transform-origin:0 0;z-index:9999;pointer-events:none;}
.cwg-anchor{margin-left:.4em;font-family:var(--cwg-mono);font-size:.6em;font-weight:400;color:var(--cwg-ink-300);background:none;border:0;padding:0 .2em;cursor:pointer;opacity:0;transition:opacity .3s var(--cwg-ease),color .3s var(--cwg-ease);vertical-align:middle;line-height:1;}
h2:hover .cwg-anchor,h3:hover .cwg-anchor,.cwg-anchor:focus-visible{opacity:1;}
.cwg-anchor:hover{color:var(--cwg-forest);} .cwg-anchor.is-done{opacity:1;color:var(--cwg-rust);font-size:.55em;letter-spacing:.08em;text-transform:uppercase;}
@media (hover:none){.cwg-anchor{opacity:.55;}}
.cwg-spy{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(247,244,238,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--cwg-ink-200);
  opacity:0;pointer-events:none;transform:translateY(-100%);transition:opacity .4s var(--cwg-ease),transform .5s var(--cwg-ease);}
.cwg-spy.is-visible{opacity:1;pointer-events:auto;transform:none;}
.cwg-spy__bar{display:flex;align-items:center;gap:.8rem;width:100%;max-width:50rem;margin:0 auto;padding:.6rem 1.5rem;background:none;border:0;font-family:var(--cwg-display);color:var(--cwg-forest);cursor:pointer;text-align:left;}
.cwg-spy__n{font-family:var(--cwg-mono);font-size:.72rem;color:var(--cwg-ink-500);flex:none;font-variant-numeric:tabular-nums;}
.cwg-spy__cur{font-size:.875rem;font-weight:600;letter-spacing:-.01em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cwg-spy__tog{font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--cwg-ink-500);flex:none;}
.cwg-spy__list{display:none;list-style:none;margin:0 auto;padding:.2rem 1.5rem 1rem;max-width:50rem;max-height:70vh;overflow:auto;}
.cwg-spy.is-open .cwg-spy__list{display:block;}
.cwg-spy__list li{margin:0;padding:.4rem 0;border-top:1px solid var(--cwg-ink-200);}
.cwg-spy__list a{font-size:.9rem;font-weight:500;text-decoration:none;color:var(--cwg-ink-700);}
.cwg-spy__list a.is-active{color:var(--cwg-forest);font-weight:600;}
@media (min-width:1440px){
  .cwg-spy{top:7rem;right:auto;left:calc(50% - 25rem - 17rem);width:15rem;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;transform:translateY(8px);}
  .cwg-spy.is-visible{transform:none;}
  .cwg-spy__bar{display:none;}
  .cwg-spy__list{display:block;padding:0;max-height:calc(100vh - 9rem);border-left:1px solid var(--cwg-ink-200);}
  .cwg-spy__list li{border-top:0;padding:.3rem 0 .3rem .9rem;margin-left:-1px;border-left:2px solid transparent;transition:border-color .3s var(--cwg-ease);}
  .cwg-spy__list li:has(> a.is-active){border-left-color:var(--cwg-forest);}
  .cwg-spy__list a{font-size:.8125rem;line-height:1.3;color:var(--cwg-ink-500);}
  .cwg-spy__list a.is-active{color:var(--cwg-forest);}
}
.cwg-toc__more{margin-top:.6rem;background:none;border:0;padding:0;font-family:var(--cwg-display);font-size:.8125rem;font-weight:600;color:var(--cwg-forest);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--cwg-ink-300);cursor:pointer;}
@media (max-width:640px){.cwg-toc--long:not(.is-expanded) li:nth-child(n+7){display:none;}}
@media (min-width:641px){.cwg-toc__more{display:none;}}
