/* AVA Core — Learn hub, guide article, Terp of the Month (Lane L, 28 Sep 2026; fidelity pass 28 Sep).
   Frames: 1:19356/1:19805 (hub), 1:17966/1:18530 (article), 1:18728/1:19094 (terp). Every value below is taken
   from get_design_context on the section's own node (padding/gap/radius/font-size/weight/line-height/colour) —
   not approximated. Reuses tokens from ava-content.css (--avc-*) and the avc-btn / avc-faq / avc-eyebrow
   components. Classes prefixed avl-. */

.ava-learn-hub, .ava-guide-article, .ava-terp { font-family: 'Krub', sans-serif; color: var(--avc-ink); }

/* These 6 pages have no Elementor document, so WordPress falls back to Astra's normal page template, which
   wraps the_content in a 1280px .ast-container — 160px narrower than the frame's 1440px canvas. Every padding
   calc below assumes a true 1440 viewport, so break the wrapper out of that container back to full width. */
.ava-learn-hub, .ava-guide-article, .ava-terp { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* Single blog posts: the article template replaces the_content entirely, so Astra's own post header
   (duplicate H1 + byline) is suppressed here — the template draws its own hero, breadcrumb and meta line. */
body.single-post .entry-header { display: none !important; }
body.single-post .entry-content { padding: 0; margin: 0; }
body.single-post article.post { max-width: none; }

/* container gutters: 72px on every section except FAQ + Local Store (80px, confirmed via design_context) */
.ava-learn-hub section, .ava-guide-article section, .ava-terp section { padding-inline: max(72px, calc((100% - 1296px) / 2)); }
.avl-faq, .avl-local-wrap { padding-inline: max(80px, calc((100% - 1280px) / 2)) !important; }
.ava-learn-hub .avl-hero, .ava-guide-article .avl-hero, .ava-terp .avl-hero { padding-top: 44px; padding-bottom: 20px; }
.avl-hero--article { padding-top: 40px; padding-bottom: 8px; } /* node 1:18012: inner starts y40 in a 488-tall frame */

.avl-h1 { font: 700 44px/1.16 'Krub', sans-serif; letter-spacing: -.01em; margin: 0 0 20px; }
.avl-h2 { font: 700 36px/1.2 'Krub', sans-serif; letter-spacing: -.01em; margin: 0 0 20px; }
.avl-h3 { font: 700 26px/1.2 'Krub', sans-serif; margin: 0 0 14px; }
.avl-p { font: 400 17px/1.5 'Krub', sans-serif; color: var(--avc-ink); margin: 0 0 20px; }
.avl-p--lead { font-size: 18px; }
.avl-sub { font: 400 19px/1.45 'Krub', sans-serif; color: var(--avc-muted); margin: 0 0 20px; }
.avl-eyebrow { font: 600 12px/1.2 'Krub', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--avc-red); margin: 0 0 14px; }
.avl-small { font: 400 14px/1.4 'Krub', sans-serif; color: var(--avc-muted); }
.avl-label-sm { font: 600 13px/1.2 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--avc-muted); margin: 0 0 8px; }
.avl-attr { font: 400 15px/1.5 'Krub', sans-serif; color: var(--avc-muted); margin: 8px 0 0; }

/* breadcrumb */
.avl-crumbrow { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.avl-crumbrow .avl-crumbs ol { margin-bottom: 0; }
.avl-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 20px; padding: 0; font: 400 13px/1.5 'Krub', sans-serif; color: var(--avc-muted); }
.avl-crumbs li:not(:last-child)::after { content: "›"; margin-left: 6px; opacity: .6; }
.avl-crumbs a { color: var(--avc-muted); text-decoration: none; }
.avl-crumbs a:hover { color: var(--avc-red); }
.avl-crumbs [aria-current] { color: var(--avc-ink); }

/* jump chips (node 1:19411 chip: bg white, 1px line, radius 999, 16/9 padding, 14px/600) */
.avl-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px; }
.avl-chip { display: inline-flex; align-items: center; padding: 9px 16px; border-radius: 999px; font: 600 14px/1.5 'Krub', sans-serif; background: #fff; border: 1px solid var(--avc-line); color: var(--avc-ink); }
.avl-chip--link { text-decoration: none; cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.avl-chip--link:hover, .avl-chip--link:focus-visible { background: var(--avc-ink); color: #fff; border-color: var(--avc-ink); }
.avl-chip--sm { padding: 3px 8px; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; background: var(--avc-gold); color: #fff; border: 0; border-radius: 999px; }
.avl-chip--outline { background: #fff; border-color: var(--avc-gold); } /* Terp spotlight tags (node 1:18794): white bg, 1px tan border */
.avl-chip--float { display: inline-flex; flex: none; padding: 5px 12px; font-size: 13px; }
.avl-chips--pill { margin-bottom: 20px; }

/* answer box (node 1:19407 / 1:18022 A3): cream, radius 8, 28/22 padding */
.avl-answer { background: var(--avc-cream); border-radius: 8px; padding: 22px 28px; margin: 0 0 20px; }
.avl-answer__label { font: 600 12px/1.2 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .12em; color: var(--avc-red); margin: 0 0 8px; }
.avl-answer__body { font: 400 18px/1.5 'Krub', sans-serif; color: var(--avc-ink); margin: 0; }

/* generic section rhythm — page-scoped since the hub (56px) and Terp (64px) use different base values */
.avl-section { padding-top: 56px; padding-bottom: 56px; }
.ava-terp .avl-section { padding-top: 64px; padding-bottom: 64px; }
.avl-section--start { padding-top: 40px; padding-bottom: 40px; }
.avl-section--cat { padding-top: 56px; padding-bottom: 56px; }
.avl-section--tight { padding-top: 8px; padding-bottom: 40px; } /* hub H7 wrapper: pt8/pb40 around the ink band */
.avl-shoplink { display: inline-block; font: 700 17px/1.4 'Krub', sans-serif; color: var(--avc-red); text-decoration: none; margin: 0 0 24px; }
.avl-shoplink:hover { color: var(--avc-ink); }

/* cards (node H6 card: radius 14, media 170, body 20/18 padding, gap 10) */
.avl-cards { display: grid; gap: 24px; align-items: start; } /* Figma sizes each card by its own content — Grid's default row-stretch was forcing every card in a row to match the tallest, inflating height across every card row on the page */
.avl-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.avl-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--avc-line); border-radius: 14px; overflow: hidden; text-decoration: none !important; color: inherit; transition: box-shadow .18s ease, transform .18s ease; }
.avl-card:hover, .avl-card:focus-visible { box-shadow: 0 12px 28px rgba(0,0,0,.08); transform: translateY(-2px); }
.avl-card.is-static { cursor: default; }
.avl-card.is-static:hover { box-shadow: none; transform: none; }
.avl-card__img { height: 140px; background: var(--avc-ink); } /* standard H6 card (H5 category rows, Related guides): confirmed 140, not the Start-Here variant's 170 */
.avl-cards--featured .avl-card__img { height: 170px; } /* Start Here row only (node 1:19432 etc: cimg 170) */
.avl-card__b { padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; }
.avl-card__tag { display: inline-flex; align-self: flex-start; padding: 4px 10px; border-radius: 999px; background: var(--avc-gold); color: #fff; font: 600 10px/1.2 'Krub', sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.avl-card__title { font: 600 19px/1.28 'Krub', sans-serif; margin: 0; color: var(--avc-ink); }
.avl-card__dek { font: 400 13px/1.45 'Krub', sans-serif; color: var(--avc-muted); margin: 0; }
.avl-card__meta { display: flex; gap: 10px; font: 600 10px/1.2 'Krub', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--avc-muted); }

/* first-timer band (node 1:19464, hub): INK card, radius 16, 36/28 padding, title 24/700 white, body 16/400 white */
.avl-band--ink { display: flex; align-items: center; gap: 24px; background: var(--avc-ink); border-radius: 16px; padding: 28px 36px; }
.avl-band--ink .avl-band__l { flex: 1; color: #fff; }
.avl-band--ink .avl-band__t { font: 700 24px/1.2 'Krub', sans-serif; color: #fff; margin: 0 0 6px; }
.avl-band--ink .avl-band__b { font: 400 16px/1.5 'Krub', sans-serif; color: #fff; margin: 0; }
.avl-band--ink > a.avc-btn { flex: none; }

/* Terp mini-guide band (node 1:19022): the whole section is cream (no separate card), 24/40 padding, title 20/700, body 15/400 */
.avl-band--cream { display: flex; align-items: center; gap: 24px; background: var(--avc-cream); padding-block: 40px; }
.avl-band--cream .avl-band__l { flex: 1; }
.avl-band__t--sm { font: 700 20px/1.2 'Krub', sans-serif; margin: 0 0 6px; }
.avl-band__b--sm { font: 400 15px/1.58 'Krub', sans-serif; margin: 0; }
.avl-band--cream > a.avc-btn { flex: none; }

/* capture / newsletter band (node 1:19542: black, 48/48, 72px gutters, gap 32) */
.avl-capture { background: var(--avc-black); color: #fff; display: flex; align-items: center; gap: 32px; padding-block: 48px; }
.avl-capture__l { flex: 1; }
.avl-capture__t { font: 700 24px/1.2 'Krub', sans-serif; color: #fff; margin: 0 0 6px; }
.avl-capture__b { font: 400 16px/1.48 'Krub', sans-serif; color: var(--avc-cream); margin: 0; }
.avl-capture .mc4wp-form, .avl-capture form { flex: none; }
.avl-capture .mc4wp-form-fields { display: flex; gap: 12px; }
.avl-capture input[type="email"] { height: 52px; min-width: 280px; border-radius: 3px; border: 0; padding: 0 18px; font: 400 15px 'Krub', sans-serif; box-sizing: border-box; }
.avl-capture input[type="submit"], .avl-capture button { height: 52px; padding: 0 26px; border-radius: 3px; background: var(--avc-red); color: #fff; border: 0; font: 600 14px/1 'Krub', sans-serif; letter-spacing: .28px; text-transform: uppercase; cursor: pointer; appearance: none; -webkit-appearance: none; white-space: nowrap; }

/* body layout: TOC + article body (node 1:18048: 72/56, gap 48, toc 250 cream) */
.avl-body-wrap { padding-top: 56px; padding-bottom: 0; }
.avl-body-grid { display: grid; grid-template-columns: 250px 1fr; gap: 48px; align-items: start; max-width: 1296px; margin: 0 auto; }
.avl-toc { position: sticky; top: 24px; background: var(--avc-cream); border: 0; border-radius: 12px; padding: 22px; }
.avl-toc__label { font: 600 12px/1.2 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .01em; color: var(--avc-muted); margin: 0 0 12px; cursor: default; list-style: none; }
.avl-toc__label::-webkit-details-marker { display: none; }
.avl-toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.avl-toc a { font: 400 14px/1.35 'Krub', sans-serif; color: var(--avc-ink); text-decoration: none; }
.avl-toc li:first-child a { color: var(--avc-red); font-weight: 600; }
.avl-toc a:hover { color: var(--avc-red); }
.avl-toc--empty { display: none; }
.avl-body { min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.avl-body > p, .avl-body > h2 { margin: 0; }
.avl-body .avl-h2 { font-size: 26px; margin: 0; }
.avl-needs { background: #FFF6E5; border: 1px dashed #E0B23A; color: #6B5B14; padding: 16px 18px; border-radius: 8px; font-size: 15px; }

.avl-meta { font: 400 15px/1.48 'Krub', sans-serif; color: var(--avc-muted); margin: 0 0 20px; }
.avl-h1--article { margin-bottom: 20px; }

/* short answer + takeaways (node 1:18022 A3/A4: 872/400 split, gap 24) */
.avl-a3a4 { display: grid; grid-template-columns: 872fr 400fr; gap: 24px; margin: 0; max-width: 1296px; }
.avl-answer--wide { margin: 0; }
.avl-takeaways { background: #fff; border: 1px solid var(--avc-line); border-radius: 8px; padding: 24px; }
.avl-takeaways ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 14px; }
.avl-takeaways li { display: flex; align-items: flex-start; gap: 10px; font: 400 15px/1.3 'Krub', sans-serif; }
.avl-tick { width: 18px; height: 18px; flex: none; padding: 4px; box-sizing: border-box; border-radius: 50%; background: var(--avc-red); color: #fff; }

/* table (node 1:18063 A9: radius 10, header ink/white, rows alternate white/cream, col A fixed 120 red/600) */
.avl-table-wrap { margin: 0; }
.avl-table { border: 1px solid var(--avc-line); border-radius: 10px; overflow: hidden; }
.avl-table__row { display: flex; gap: 16px; padding: 13px 20px; font-size: 15px; }
.avl-table__row--head { background: var(--avc-ink); color: #fff; font: 600 11px/1.2 'Krub', sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.avl-table__row:not(.avl-table__row--head) { background: #fff; color: var(--avc-ink); }
.avl-table__row.is-alt { background: var(--avc-cream); }
.avl-table__row > span { flex: 1 0 0; min-width: 0; }
.avl-table__row--head > span:first-child, .avl-table__a { flex: 0 0 120px; }
.avl-table__a { font-weight: 600; color: var(--avc-red); }

/* numbered steps: 'wrap' (article A11, node 1:18086) = one cream card, 28/26 padding, 32px red circles;
   'cols' (Terp 5.H, node 1:19003) = separate cream cards in a row, 38px red circles, gap 20 between cards */
.avl-steps--wrap { background: var(--avc-cream); border-radius: 12px; padding: 26px 28px; }
.avl-steps__title { font: 700 20px/1.2 'Krub', sans-serif; margin: 0 0 18px; }
.avl-steps--wrap .avl-step { display: flex; gap: 14px; align-items: flex-start; }
.avl-steps--wrap .avl-step + .avl-step { margin-top: 18px; }
.avl-steps--wrap .avl-step__num { width: 32px; height: 32px; font-size: 15px; }
.avl-steps--wrap .avl-step__c { display: flex; flex-direction: column; gap: 2px; }
.avl-step__num { flex: none; border-radius: 50%; background: var(--avc-red); color: #fff; display: flex; align-items: center; justify-content: center; font: 700 1em/1 'Krub', sans-serif; }
.avl-step__t { font: 600 16px/1.55 'Krub', sans-serif; margin: 0; color: var(--avc-ink); }
.avl-step__b { font: 400 14px/1.45 'Krub', sans-serif; color: var(--avc-muted); margin: 0; }
.avl-steps--cols { display: flex; gap: 20px; }
.avl-steps--cols .avl-step--col { flex: 1 0 0; min-width: 0; background: var(--avc-cream); border-radius: 14px; padding: 24px 26px; display: flex; flex-direction: column; gap: 12px; }
.avl-steps--cols .avl-step__num { width: 38px; height: 38px; font-size: 17px; }
.avl-steps--cols .avl-step__t { font: 700 19px/1.2 'Krub', sans-serif; }

/* budtender quote (node 1:18112 A12): navy, radius 8, 28/24 padding, label red, quote 18/white, attr 14/cream/600 */
.avl-quote { background: var(--avc-navy); border-radius: 8px; padding: 24px 28px; }
.avl-quote__label { font: 600 12px/1.2 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .12em; color: var(--avc-red); margin: 0 0 12px; }
.avl-quote__text { font: 400 18px/1.5 'Krub', sans-serif; color: #fff; margin: 0 0 12px; }
.avl-quote cite { font: 600 14px/1.5 'Krub', sans-serif; color: var(--avc-cream); font-style: normal; }

/* NYC-shoppers / local-angle callout (node 1:18116 A13): cream, radius 12, 28/26 padding, title 22/700, body 17/400 */
.avl-local-note { background: var(--avc-cream); border-radius: 12px; padding: 26px 28px; }
.avl-local-note .avl-h2 { font-size: 22px; margin: 0 0 12px; }
.avl-local-note .avl-p { margin: 0; }

/* inline CTA (node 1:18119 A15): ink, radius 12, 32/26 padding, title 20/700 white, body 15/400 cream */
.avl-inline-cta { display: flex; align-items: center; gap: 24px; background: var(--avc-ink); border-radius: 12px; padding: 26px 32px; }
.avl-inline-cta__t { font: 700 20px/1.2 'Krub', sans-serif; color: #fff; margin: 0 0 4px; }
.avl-inline-cta__b { font: 400 15px/1.5 'Krub', sans-serif; color: var(--avc-cream); margin: 0; }
.avl-inline-cta > a { flex: none; }

/* article FAQ (node 1:18126 A16): each item is its own cream card, radius 10, gap 12, q 17/600, a 15/muted —
   distinct from the hub/Terp side-by-side FAQ, so scoped to the article template only */
.avc-faq.avl-guide-faq { display: grid; gap: 12px; border: 0; border-radius: 0; background: transparent; }
.avl-guide-faq .avc-faq__item { background: var(--avc-cream) !important; border: 0 !important; border-radius: 10px !important; }
.avl-guide-faq .avc-faq__btn { padding: 18px 24px !important; font-size: 17px !important; font-weight: 600 !important; }
.avl-guide-faq .avc-faq__inner { padding: 0 24px 18px !important; font-size: 15px !important; color: var(--avc-muted) !important; }

/* related guides */
.avl-section--related { padding-bottom: 56px; }

/* local store block (shared, node 1:19779/1:18175/1:18994-map): ONE navy rounded card 18px, map plate tan 700w */
.avl-local-wrap { padding-block: 64px; }
.avl-local { display: flex; gap: 40px; background: var(--avc-navy); border-radius: 18px; overflow: hidden; min-height: 329px; }
.avl-local__l { flex: 0 0 760px; padding: 44px 24px 44px 48px; display: flex; flex-direction: column; gap: 14px; justify-content: center; color: #fff; }
.avl-local__h2 { font: 700 28px/1.18 'Krub', sans-serif; color: #fff; margin: 0; }
.avl-local__lines { display: flex; flex-direction: column; gap: 6px; }
.avl-local__lines p { font: 400 15px/1.5 'Krub', sans-serif; color: #fff; margin: 0; }
.avl-local__lines p:first-child { font-weight: 600; font-size: 17px; line-height: 1.55; }
.avl-local__lines p:last-child { font-size: 14px; line-height: 1.45; }
.avl-local__btns { display: flex; gap: 12px; }
.avl-local__map { position: relative; flex: 1; background: var(--avc-gold); border: 1px solid var(--avc-line); overflow: hidden; }
.avl-local__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.avl-local__maplabel { position: absolute; left: 19px; top: 19px; background: #fff; color: var(--avc-ink); font: 600 10px/1.2 'Krub', sans-serif; letter-spacing: .08em; padding: 9px 14px; border-radius: 4px; z-index: 2; }

/* author box (node 1:18200 A21): full-bleed navy, avatar 64 white, name 17/600 white, bio 14 cream, reviewed 14/600 white */
.avl-author { background: var(--avc-navy); padding-block: 48px; }
.avl-author__row { display: flex; gap: 25px; align-items: flex-start; max-width: 1296px; margin: 0 auto; }
.avl-author__av { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex: none; background: #fff; }
.avl-author__c { display: flex; flex-direction: column; gap: 6px; }
.avl-author__name { font: 600 17px/1.55 'Krub', sans-serif; color: #fff; margin: 0; }
.avl-author__bio { font: 400 14px/1.5 'Krub', sans-serif; color: var(--avc-cream); margin: 0; }
.avl-author__rev { font: 600 14px/1.5 'Krub', sans-serif; color: #fff; margin: 0; }

/* compliance (node 1:19801/1:18197: 24/24, 13px) */
.avl-compliance { padding-block: 24px; }
.avl-compliance p { font: 400 13px/1.5 'Krub', sans-serif; color: var(--avc-muted); margin: 0; }

/* FAQ (hub + terp side layout, node 15 FAQ: cream, 80 gutters, 96/96, gap 64, left col 380) */
.avl-faq { display: flex; gap: 64px; background: var(--avc-cream); padding-block: 96px; }
.avl-faq__l { flex: 0 0 380px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.avl-faq__l .avl-eyebrow { letter-spacing: .12em; margin: 0; }
.avl-faq__l .avl-h2 { margin: 0; }
.avl-faq__r { flex: 1; min-width: 0; }
.avl-faq-acc.avc-faq { border-radius: 8px; }
.avl-faq-acc .avc-faq__btn { padding: 24px 28px !important; font-size: 20px !important; font-weight: 700 !important; }
.avl-faq-acc .avc-faq__inner { padding: 0 28px 24px !important; font-size: 16px !important; }

/* ---------------- Terp of the Month specifics ---------------- */
/* node 1:18774 draws a dark gradient behind the whole hero (sampled: near-black top-left fading to a warm
   dark gray) — every text child needs a white/light override since the page-level color is ink. */
.avl-hero--terp { text-align: center; padding-top: 64px; padding-bottom: 0; background: linear-gradient(160deg, #0c0c0c 0%, #4a4a4a 100%); color: #fff; }
.avl-hero--terp .avl-eyebrow { color: var(--avc-red); }
.avl-eyebrow--center { text-align: center; margin: 0 0 8px; }
.avl-terp-kicker { font: 700 22px/1.2 'Krub', sans-serif; margin: 0 0 10px; color: #fff; }
.avl-terp-name { font: 700 76px/1 'Krub', sans-serif; letter-spacing: -.02em; margin: 0 0 12px; color: var(--avc-red); }
.avl-sub--center { text-align: center; }
.avl-hero--terp .avl-sub { color: rgba(255,255,255,.85); }
.avl-deal-pill { display: inline-block; background: transparent; border: 1.5px solid var(--avc-red); color: #fff; border-radius: 999px; padding: 10px 20px; font: 600 15px/1.4 'Krub', sans-serif; margin: 0 0 24px; }
.avl-hero__btns { display: flex; justify-content: center; gap: 12px; margin: 0 0 24px; flex-wrap: wrap; }
.avl-small--center { text-align: center; }
.avl-hero--terp .avl-small { color: rgba(255,255,255,.8); }

/* spotlight (node 1:18787: cream card, 1.5px tan border, radius 20, image 420 ink, body 44/40 padding) */
.avl-spotlight { padding-block: 64px; }
.avl-spotlight__card { display: flex; align-items: stretch; background: var(--avc-cream); border: 1.5px solid var(--avc-gold); border-radius: 20px; overflow: hidden; }
.avl-spotlight__vis { flex: 0 0 420px; background: var(--avc-ink); }
.avl-spotlight__body { flex: 1; padding: 40px 44px; display: flex; flex-direction: column; gap: 16px; }
.avl-spotlight__body .avl-h2 { font-size: 38px; letter-spacing: -.01em; margin: 0; }
.avl-pron { font: 400 16px/1.5 'Krub', sans-serif; color: var(--avc-muted); margin: 0; }
.avl-spotlight__body .avl-p { margin: 0; font-size: 16px; line-height: 1.5; }
.avl-spotlight__body .avl-label-sm { color: var(--avc-red); text-transform: uppercase; letter-spacing: .12em; font-size: 12px; margin: 0; }
.avl-spotlight__body .avl-attr { font-weight: 600; margin: 0; }

.avl-collection { padding-block: 64px; background: var(--avc-cream); }
.avl-collection__hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; flex-wrap: wrap; gap: 16px; }
.avl-filter-chips { margin: 0; }
.avl-filter-chips button.avl-chip--filter,
.avl-filter-chips button.avl-chip--filter:hover,
.avl-filter-chips button.avl-chip--filter:focus {
  appearance: none; -webkit-appearance: none; height: auto; min-height: 0; width: auto;
  background: #fff; color: var(--avc-ink); border: 1px solid var(--avc-line);
  font: 600 13px/1 'Krub', sans-serif; text-transform: none; letter-spacing: 0;
  padding: 7px 16px; border-radius: 999px; cursor: pointer; box-shadow: none;
}
.avl-filter-chips button.avl-chip--filter.is-active,
.avl-filter-chips button.avl-chip--filter.is-active:hover {
  background: var(--avc-ink); color: #fff; border-color: var(--avc-ink);
}
.avl-pgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: start; }
/* demo product card (node 1:18821 prod): radius 16, badge radius 6 red, terp chip tan pill, price20/700 + add btn */
.avl-dprod { border: 1px solid var(--avc-line); border-radius: 16px; overflow: hidden; background: #fff; }
.avl-dprod__img { height: 170px; background: var(--avc-ink); position: relative; }
.avl-badge { position: absolute; left: 14px; top: 14px; background: var(--avc-red); color: #fff; font: 600 10px/1.2 'Krub', sans-serif; letter-spacing: .05em; text-transform: uppercase; padding: 4px 10px; border-radius: 6px; }
.avl-badge--sold { background: #6B685E; }
.avl-dprod__b { padding: 16px 20px 18px; display: flex; flex-direction: column; gap: 6px; }
.avl-dprod__brand { font: 600 10px/1.2 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .1em; color: var(--avc-muted); margin: 0; }
.avl-dprod__name { font: 600 17px/1.24 'Krub', sans-serif; margin: 0; }
.avl-dprod__meta { font: 400 12px/1.5 'Krub', sans-serif; color: var(--avc-muted); margin: 0; }
.avl-dprod__p { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; }
.avl-dprod__p > span:first-child { font: 700 20px/1.2 'Krub', sans-serif; }
.avl-dprod__add { display: inline-flex; align-items: center; justify-content: center; height: 30px; padding: 0 16px; border-radius: 3px; background: var(--avc-red); color: #fff; font: 600 12px/1 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .02em; }
.avl-dprod__soldtext { font: 600 13px/1 'Krub', sans-serif; color: var(--avc-muted); }
.avl-dprod.is-sold-out .avl-dprod__img { opacity: .55; }
.avl-pgrid__item { min-width: 0; }

/* at-a-glance (node 1:18938: cream section, tiles WHITE + 1px red border, radius 14, 24/22 padding) */
.avl-glance { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-bottom: 20px; align-items: start; }
.avl-glance__tile { background: #fff; border: 1px solid var(--avc-red); border-radius: 14px; padding: 22px 24px; display: flex; flex-direction: column; gap: 8px; }
.avl-glance__l { font: 600 12px/1.2 'Krub', sans-serif; color: var(--avc-red); letter-spacing: .12em; text-transform: uppercase; margin: 0; }
.avl-glance__v { font: 400 17px/1.35 'Krub', sans-serif; margin: 0; }

/* staff picks (node 1:18960: radius 16, first card RED highlighted, others cream+line; body h161 justify-between) */
.avl-picks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.avl-pick { background: var(--avc-cream); border: 1px solid var(--avc-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.avl-pick__img { height: 170px; background: var(--avc-ink); position: relative; }
.avl-pick__b { padding: 18px 22px 20px; display: flex; flex-direction: column; justify-content: space-between; flex: 1; gap: 12px; }
.avl-pick__brand { font: 600 10px/1.2 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .1em; color: var(--avc-muted); margin: 0 0 8px; }
.avl-pick__name { font: 700 19px/1.2 'Krub', sans-serif; margin: 0 0 8px; color: var(--avc-ink); }
.avl-pick__blurb { font: 400 14px/1.48 'Krub', sans-serif; color: var(--avc-muted); margin: 0; }
.avl-pick__p { display: flex; align-items: center; justify-content: space-between; font: 700 18px/1.2 'Krub', sans-serif; }
.avl-pick__p a { color: var(--avc-red); text-decoration: none; font: 600 12px/1 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .02em; }
.avl-pick--red { background: var(--avc-red); border-color: var(--avc-red); }
.avl-pick--red .avl-pick__brand, .avl-pick--red .avl-pick__name, .avl-pick__blurb, .avl-pick--red .avl-pick__blurb, .avl-pick--red .avl-pick__p, .avl-pick--red .avl-pick__p a { color: #fff; }

/* local availability, Terp only (node 1:18994: ink bg, white text, 56 block, gap 40) */
.avl-local-compact { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-block: 56px; background: var(--avc-ink); }
.avl-local-compact__t { font: 700 24px/1.22 'Krub', sans-serif; color: #fff; margin: 0 0 10px; }
.avl-local-compact__meta { font: 600 16px/1.45 'Krub', sans-serif; color: #fff; margin: 0 0 10px; }
.avl-local-compact__sub { font: 400 15px/1.58 'Krub', sans-serif; color: #fff; margin: 0; }
.avl-local-compact__sub a { color: #fff; text-decoration: underline; }
.avl-local-compact > a { flex: none; }

.avl-terms { background: var(--avc-cream); border-radius: 12px; padding: 20px 26px; margin-top: 24px; }
.avl-terms p { font: 400 13px/1.5 'Krub', sans-serif; color: var(--avc-muted); margin: 0 0 6px; }
.avl-terms p:last-child { margin-bottom: 0; }

/* final CTA (node 1:19083: RED bg, all-white text, btn1 white/red-text, btn2 outline-white) */
.avl-final-cta { text-align: left; padding: 72px; background: var(--avc-red); position: relative; overflow: hidden; }
.avl-final-cta__t { font: 700 36px/1.16 'Krub', sans-serif; color: #fff; letter-spacing: -.01em; margin: 0 0 20px; max-width: 720px; }
.avl-final-cta__b { font: 400 18px/1.5 'Krub', sans-serif; color: #fff; margin: 0 0 20px; }
.avl-final-cta__btns { display: flex; gap: 14px; margin: 0 0 20px; flex-wrap: wrap; }
.avl-final-cta__note { font: 400 13px/1.5 'Krub', sans-serif; color: #fff; margin: 0; }
.avl-final-cta .avc-btn--white { color: var(--avc-red) !important; }

.avl-ph { background: var(--avc-ink); } /* every current usage (card/product/pick/spotlight images) is ink per the frame */

/* sticky promo bar, Terp mobile only (node 1:19349): fixed bottom, ink bg, white text, red Shop button */
.avl-sticky-promo { display: none; }

/* D39: above 1440, content aligns to the centred 1280 box (the site-wide convention), not this frame's own
   1296px/72px-gutter box, which is native to exactly 1440 only. */
@media (min-width: 1441px) {
  .ava-learn-hub section, .ava-guide-article section, .ava-terp section { padding-inline: calc((100% - 1280px) / 2) !important; }
}

/* ---------------- Tablet / laptop: keep the desktop composition, scale gutters ---------------- */
@media (max-width: 1366px) {
  .avl-a3a4 { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  .avl-cards--3, .avl-pgrid, .avl-glance, .avl-picks, .avl-steps--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .avl-steps--cols { display: grid; }
  .avl-body-grid { grid-template-columns: 1fr; }
  .avl-toc { position: static; }
  .avl-local { flex-direction: column; }
  .avl-local__l { flex: 1 1 auto; padding: 32px 28px; }
  .avl-author__row { flex-direction: column; }
  .avl-local-compact { flex-direction: column; align-items: flex-start; }
}

/* ---------------- Mobile (D34: mobile frame governs visibility; ≤767) ---------------- */
@media (max-width: 767px) {
  .ava-learn-hub section, .ava-guide-article section, .ava-terp section,
  .avl-faq, .avl-local-wrap { padding-inline: 20px !important; }
  /* mobile sections use much shorter vertical padding than desktop (confirmed per-section from the mobile
     frame's own y-deltas — not a proportional scale-down of the 1440 values). Matches the compound-selector
     specificity of the desktop .avl-hero rule (ancestor + class) so it actually wins here. */
  .ava-learn-hub .avl-hero, .ava-guide-article .avl-hero, .ava-terp .avl-hero { padding-top: 24px; padding-bottom: 24px; }
  .avl-answer__body { font-size: 16px; }
  .avl-section, .ava-terp .avl-section { padding-top: 36px; padding-bottom: 36px; }
  .avl-section--start { padding-top: 36px; padding-bottom: 36px; }
  .avl-section--tight { padding-top: 8px; padding-bottom: 36px; }
  .avl-section--cat { padding-top: 36px; padding-bottom: 36px; }
  .avl-capture { padding-block: 36px; }
  .avl-faq { padding-block: 44px; }
  .avl-local-wrap { padding-block: 24px; }
  .avl-compliance { padding-block: 24px; }
  .avl-body-wrap { padding-top: 36px; }
  .avl-h1 { font-size: 28px; line-height: 1.18; }
  .avl-h2 { font-size: 24px; }
  .avl-h3 { font-size: 21px; }
  .avl-sub, .avl-p { font-size: 16px; }
  .avl-terp-name { font-size: 40px; }
  /* card rows (Start Here, category "further reading", Related guides) stack single-column on mobile
     (confirmed: H4/H5 mobile metadata — each H6 card is x20 width350, one per row); only the Terp product
     grid and the at-a-glance tiles are genuinely 2-column on mobile (confirmed via their own mobile metadata). */
  .avl-cards--3 { grid-template-columns: 1fr; gap: 15px; }
  .avl-card__img { height: 150px; } /* mobile uses a uniform 150 for every card, desktop/featured vs standard 170/140 split does not apply */
  .avl-card__b { padding: 16px 18px; gap: 8px; }
  .avl-card__title { font-size: 17px; line-height: 1.25; }
  .avl-card__dek { font-size: 12px; }
  .avl-card__meta { font-size: 9px; }
  .avl-card__tag { font-size: 9px; padding: 3px 8px; }
  /* Jump chips (node 1:19849): the mobile frame fits all 8 pills in ONE 36px-tall row — that only works as a
     horizontally-scrollable strip, not a wrapped block. */
  .avl-chips { flex-wrap: nowrap; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; padding-bottom: 2px; }
  .avl-chips::-webkit-scrollbar { display: none; }
  .avl-chips .avl-chip { flex: none; white-space: nowrap; }
  .avl-pgrid, .avl-glance { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
  .avl-picks { grid-template-columns: 1fr; gap: 15px; }
  .avl-band--ink, .avl-band--cream { flex-direction: column; align-items: flex-start; padding: 22px; }
  .avl-band--cream { padding: 32px 20px; }
  .avl-band--ink > a.avc-btn, .avl-band--cream > a.avc-btn { width: 100%; text-align: center; }
  .avl-capture { flex-direction: column; align-items: flex-start; text-align: left; padding: 40px 20px; }
  .avl-capture form, .avl-capture .mc4wp-form, .avl-capture .mc4wp-form-fields { flex-direction: column; width: 100%; }
  .avl-capture input[type="email"] { min-width: 0; width: 100%; }
  .avl-capture input[type="submit"], .avl-capture button { width: 100%; }
  .avl-a3a4 { grid-template-columns: 1fr; }
  .avl-faq { flex-direction: column; padding-block: 56px; gap: 24px; }
  .avl-faq__l { flex: none; }
  .avl-local-wrap { padding-block: 24px; }
  .avl-local { flex-direction: column; }
  .avl-local__l { padding: 28px 20px; }
  .avl-local__map { min-height: 220px; }
  .avl-author__row { flex-direction: column; }
  .avl-spotlight__card { flex-direction: column; }
  .avl-spotlight__vis { flex: none; height: 180px; }
  .avl-spotlight__body { padding: 22px; }
  .avl-steps--cols { grid-template-columns: 1fr; display: grid; }
  .avl-local-compact { flex-direction: column; align-items: flex-start; padding-block: 32px; gap: 20px; }
  .avl-local-compact > a { width: 100%; text-align: center; }

  .avl-collection, .avl-spotlight { padding-block: 40px; }
  .ava-terp .avl-section { padding-top: 40px; padding-bottom: 40px; }
  /* demo product card (node 1:19164, mobile "prod"): much tighter than the desktop card — 105px image, small type */
  .avl-dprod__img { height: 105px; }
  .avl-dprod__b { padding: 12px 14px 14px; gap: 4px; }
  .avl-dprod__brand { font-size: 9px; }
  .avl-dprod__name { font-size: 14px; line-height: 1.2; }
  .avl-dprod__meta { font-size: 11px; }
  .avl-dprod__p > span:first-child { font-size: 16px; }
  .avl-dprod__add { height: 25px; padding: 0 12px; font-size: 10px; }
  .avl-badge { font-size: 9px; padding: 3px 8px; left: 10px; top: 10px; }
  .avl-chip--sm { font-size: 8px; padding: 2px 8px; }

  /* staff pick (node 1:19239, mobile "pick"): horizontal card — 96px image on the left, copy on the right */
  .avl-picks { grid-template-columns: 1fr; gap: 15px; }
  .avl-pick { flex-direction: row; }
  .avl-pick__img { width: 96px; height: 121px; flex: none; }
  .avl-pick__b { padding: 0 0 0 16px; justify-content: center; gap: 6px; }
  .avl-pick__name { font-size: 16px; margin-bottom: 4px; }
  .avl-pick__blurb { font-size: 13px; -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
  .avl-pick__p { font-size: 15px; }
  .avl-final-cta { padding: 48px 20px 60px; }
  .avl-final-cta__t { font-size: 26px; }
  .avl-hero__btns, .avl-final-cta__btns { flex-direction: column; width: 100%; }
  .avl-hero__btns > a, .avl-final-cta__btns > a { width: 100%; }

  /* Terp sticky promo bar (node 1:19349) — this page only, fixed to the viewport bottom */
  .ava-terp { padding-bottom: 60px; }
  .avl-sticky-promo {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; height: 60px;
    background: var(--avc-ink); padding: 0 16px; box-shadow: 0 -4px 16px rgba(0,0,0,.18);
  }
  .avl-sticky-promo__c { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .avl-sticky-promo__t { font: 700 15px/1.3 'Krub', sans-serif; color: #fff; }
  .avl-sticky-promo__s { font: 400 12px/1.3 'Krub', sans-serif; color: var(--avc-cream); }
  .avl-sticky-promo__btn { flex: none; display: inline-flex; align-items: center; justify-content: center; height: 37px; padding: 0 20px; border-radius: 3px; background: var(--avc-red); color: #fff !important; font: 600 13px/1 'Krub', sans-serif; text-transform: uppercase; letter-spacing: .02em; text-decoration: none !important; }
}

/* ORCHESTRATOR (29 Sep): blog posts render the guide article too. Match the guide pages: white page, and when a post has no
   sections (empty "On this page" list, hidden) the body keeps the article column instead of dropping into the 250px list slot. */
body.single-post { background-color: #fff; }
@media (min-width: 1025px) { .avl-body-grid > .avl-toc--empty + .avl-body { grid-column: 2; } }

/* AUDIT-learn-events (29 Sep) */
/* LE9: FAQ questions turned brand red on cream on hover (2.86:1; ava-content.css .avc-faq__btn:hover is !important).
   The question keeps its ink on the Learn hub, the guides and Terp of the Month, as it does on the Events FAQs. */
.ava-guide-article .avc-faq__btn:hover, .ava-guide-article .avc-faq__btn:focus, .ava-learn-hub .avc-faq__btn:hover, .ava-learn-hub .avc-faq__btn:focus, .ava-terp .avc-faq__btn:hover, .ava-terp .avc-faq__btn:focus { color: var(--avc-ink) !important; }
/* LE10 + LE11 (hover): breadcrumb and "On this page" links went to brand red on cream on hover (2.86:1); ink + underline. */
html body .avl-crumbs a:hover, html body .ava-guide-article .avl-toc a:hover { color: var(--avc-ink); text-decoration: underline; text-underline-offset: 3px; }
/* LE12: the red "Join" on the black capture band took the kit's global button:hover/:focus (#151515 on #0E0E0E, 1.06:1),
   so the button shape vanished. It turns white with ink text instead, like the other buttons on dark bands. */
html body .avl-capture input[type="submit"]:hover, html body .avl-capture input[type="submit"]:focus, html body .avl-capture button:hover, html body .avl-capture button:focus { background: #fff !important; color: var(--avc-ink) !important; }
/* ==== /AUDIT-learn-events ==== */
