/* ===== DESIGN-VARIABLE SYSTEM (UTALK-26, 2026-08-29, Vela) ==================
   Single source of truth = Divi 5 native Design Variables + Global Colors
   (Variable Manager in the Visual Builder; stored in wp_options et_divi).
   This stylesheet consumes them as CSS custom properties:
     --gcid-<role>  global colors   --gvid-<role>  numbers/fonts
   The :root definitions are emitted in wp_head by utalk-assets.php via Divi's
   own Style:: generators (Divi's native footer emission is unreliable here:
   colors are gated behind use_dynamic_assets(), and the numeric emission
   narrows to content-detected ids). Editing a value in the Variable Manager
   cascades sitewide — here AND in any Divi module referencing the variable.
   NO fallback literals on purpose: a deleted variable must fail visibly, not
   silently pin an orphaned copy of the old value.
   Remaining literals are deliberate: breakpoint-specific responsive overrides
   (@media blocks), decorative whites (crew-ring border, focus outlines on
   accent), and box-shadow alpha blends — see the taxonomy spec in
   design/divi5-variables.md (repo) for the full token table. */
body *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--gcid-bg-light);font-family:var(--gvid-font-body),system-ui,sans-serif;color:var(--gcid-text-primary)}body a{color:inherit;text-decoration:none}body a:hover{opacity:.82}body img{display:block;max-width:100%}body button{font-family:inherit;cursor:pointer;background:none}body :focus-visible{outline:2px solid var(--gcid-accent-2);outline-offset:2px}body .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body .anton{font-family:var(--gvid-font-display),sans-serif}

@keyframes utalkScroll{from{background-position:0 0,200px 130px}to{background-position:400px 0,600px 130px}}body .watermark{position:absolute;inset:0;background-image:url('watermark-tile.png'),url('watermark-tile.png');background-size:400px 260px,400px 260px;background-position:0 0,200px 130px;mix-blend-mode:multiply;opacity:.45;animation:utalkScroll 30s linear infinite;pointer-events:none}
@media (prefers-reduced-motion: reduce){body .watermark{animation:none}}body .page{position:relative;color:var(--gcid-text-primary)}body .page-inner{position:relative;z-index:1}body .dark-band{background:var(--gcid-bg-base);color:var(--gcid-text-inverse)}body .wrap{max-width:var(--gvid-size-container);margin:0 auto;padding-left:44px;padding-right:44px}body .header{position:relative;display:flex;align-items:center;gap:28px;padding:16px 0;border-bottom:1px solid var(--gcid-border-rule);flex-wrap:wrap}body .logo-link{display:flex;align-items:center;gap:12px}body .logo-img{width:44px;height:44px;border-radius:var(--gvid-radius-media);object-fit:cover}body .wordmark{font-size:20px;letter-spacing:.04em}body .wordmark .accent{color:var(--gcid-accent-2)}body .nav{display:flex;gap:26px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:600;font-size:var(--gvid-text-ui);letter-spacing:.06em;flex-wrap:wrap}body .nav a.active{color:var(--gcid-accent-2)}body .live-pill{display:flex;align-items:center;gap:8px;margin-left:auto;background:var(--gcid-accent-1);border:1px solid var(--gcid-accent-1);border-radius:var(--gvid-radius-pill);padding:8px 16px;font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--gcid-text-on-accent);white-space:nowrap}body .live-pill.is-live{background:var(--gcid-live);border-color:var(--gcid-live);font-weight:800}body .live-dot{width:8px;height:8px;border-radius:50%;background:var(--gcid-live);box-shadow:0 0 8px var(--gcid-live)}body .live-pill.is-live .live-dot{background:var(--gcid-bg-surface);box-shadow:none}body .ticker{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);font-weight:800;font-size:var(--gvid-text-ui);letter-spacing:.1em;padding:12px 0;overflow:hidden}body .ticker-track{white-space:nowrap;display:inline-block;padding-left:44px}body .eyebrow{font-size:var(--gvid-text-eyebrow);font-weight:700;letter-spacing:var(--gvid-tracking-eyebrow);color:var(--gcid-accent-2);margin-bottom:14px}body h2.anton{font-size:var(--gvid-text-h2);margin:0;letter-spacing:.02em}body .section{padding:var(--gvid-space-section) 0 0}body .section.section-pad-b{padding-bottom:var(--gvid-space-section)}body .section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--gvid-space-head-gap);gap:12px;flex-wrap:wrap}body .lede-muted{color:var(--gcid-text-muted);margin:0 0 var(--gvid-space-head-gap);font-size:var(--gvid-text-body);max-width:70ch}body .link-green{color:var(--gcid-accent-1);font-weight:800;font-size:var(--gvid-text-ui)}body .btn-orange{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);font-weight:800;font-size:var(--gvid-text-ui-lg);letter-spacing:.04em;padding:15px 28px;border-radius:var(--gvid-radius-btn);display:inline-block;border:none}body .btn-outline-dark{border:1px solid var(--gcid-border-outline-dark);font-weight:700;font-size:var(--gvid-text-ui-lg);padding:14px 26px;border-radius:var(--gvid-radius-btn);display:inline-block}body .hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gvid-space-hero-gap);align-items:center;padding:48px 0 52px}body .h1-home{font-size:var(--gvid-text-h1);line-height:.95;margin:0 0 18px;letter-spacing:.01em}body .hero-lede{font-size:var(--gvid-text-lede);line-height:var(--gvid-leading-body);color:var(--gcid-text-muted-inverse);margin:0 0 28px;max-width:50ch}body .cta-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}body .video-card{display:block;position:relative;border:1px solid var(--gcid-border-emphasis);border-radius:var(--gvid-radius-card);overflow:hidden}body .video-thumb{width:100%;aspect-ratio:16/9;overflow:hidden;position:relative;background:var(--gcid-fill-dark)}body .play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}body .play-btn{width:70px;height:70px;border-radius:50%;background:var(--gcid-overlay-video);border:2px solid var(--gcid-accent-2);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--gcid-accent-2);padding-left:5px}body .play-btn.sm{width:66px;height:66px;font-size:22px}body .video-caption{display:flex;justify-content:space-between;align-items:baseline;padding:12px 4px 0;gap:10px;flex-wrap:wrap}body .video-caption .title{font-weight:700;font-size:var(--gvid-text-ui-lg)}body .video-caption .date{color:var(--gcid-text-caption);font-size:var(--gvid-text-caption-lg);white-space:nowrap}body .cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gvid-space-card-gap)}body .card{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card-sm);overflow:hidden;box-shadow:0 1px 3px rgba(26,27,31,.05);display:block}body .card-thumb{width:100%;aspect-ratio:16/9;background:var(--gcid-fill-placeholder);position:relative;overflow:hidden}body .card-body{padding:var(--gvid-space-card-pad) var(--gvid-space-card-pad) 20px}body .card-eyebrow{color:var(--gcid-accent-2);font-size:var(--gvid-text-eyebrow-sm);font-weight:800;letter-spacing:var(--gvid-tracking-eyebrow-sm);margin-bottom:8px}body .card-title{margin:0 0 10px;font-size:17px;line-height:1.35}body .card-date{color:var(--gcid-text-meta);font-size:var(--gvid-text-caption)}body .dur-badge{position:absolute;right:10px;bottom:10px;background:var(--gcid-overlay-badge);color:var(--gcid-text-on-accent);font-size:var(--gvid-text-eyebrow-sm);font-weight:700;padding:4px 8px;border-radius:var(--gvid-radius-badge)}body .img-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:repeating-linear-gradient(135deg,var(--gcid-fill-placeholder-2),var(--gcid-fill-placeholder-2) 10px,var(--gcid-fill-placeholder) 10px,var(--gcid-fill-placeholder) 20px);color:var(--gcid-text-placeholder);font-size:var(--gvid-text-eyebrow-sm);font-weight:700;letter-spacing:.08em;text-align:center;padding:10px}body .img-placeholder .ico{font-size:20px;opacity:.6}body .crew-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;text-align:center}body .crew-fig{margin:0}body .crew-ring{width:170px;height:170px;margin:0 auto;border-radius:50%;padding:5px;background:linear-gradient(135deg,var(--gcid-accent-2),var(--gcid-accent-1))}body .crew-ring-inner{width:100%;height:100%;border-radius:50%;overflow:hidden;border:4px solid #fff;box-sizing:border-box}body .crew-cap{padding:12px 2px 0}body .crew-name{font-weight:800;font-size:16px}body .crew-role{color:var(--gcid-accent-1);font-size:12.5px;font-weight:800;letter-spacing:.1em}body .bash-stack-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--gvid-space-card-gap);padding:52px 0}body .bash-card{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:28px 30px}body .bash-card h3{margin:0 0 6px;font-size:var(--gvid-text-h3);letter-spacing:.02em}body .bash-card p{color:var(--gcid-text-muted);font-size:14.5px;margin:0 0 18px}body .bash-photos{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}body .bash-photo{aspect-ratio:3/4;border-radius:var(--gvid-radius-media-lg);overflow:hidden;display:block}body .side-stack{display:flex;flex-direction:column;gap:var(--gvid-space-card-gap)}body .listen-card{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:24px 26px}body .listen-card h3{font-size:var(--gvid-text-h3-sm);margin:0 0 14px;letter-spacing:.02em}body .listen-pills{display:flex;flex-wrap:wrap;gap:10px}body .pill-outline-green{border:2px solid var(--gcid-accent-1);color:var(--gcid-accent-1);border-radius:var(--gvid-radius-pill);padding:9px 17px;font-weight:800;font-size:var(--gvid-text-caption-lg)}body .merch-card{background:var(--gcid-accent-1);color:var(--gcid-text-on-accent);border-radius:var(--gvid-radius-card);padding:24px 26px;display:flex;gap:18px;align-items:center;flex:1}body .merch-img{width:92px;height:92px;flex:none;border-radius:var(--gvid-radius-media-lg);overflow:hidden;background:rgba(255,255,255,.12)}body .merch-card h3{font-size:var(--gvid-text-h3-sm);margin:0 0 6px;letter-spacing:.02em}body .merch-card p{margin:0 0 12px;font-size:var(--gvid-text-ui);line-height:1.45;color:var(--gcid-accent-1-copy)}body footer.dark-band{padding:26px 0}body .footer-row{display:flex;align-items:center;gap:24px;font-size:var(--gvid-text-caption-lg);flex-wrap:wrap}body .footer-nav{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap}body .footer-wordmark{color:var(--gcid-text-inverse);font-size:var(--gvid-text-ui-lg);letter-spacing:.04em}body .ep-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--gvid-space-hero-gap);align-items:center;padding:44px 0 48px}body .h1-ep{font-size:var(--gvid-text-h1-episode);line-height:1.02;margin:0 0 16px;letter-spacing:.01em}body .ep-lede{font-size:var(--gvid-text-body-lg);line-height:var(--gvid-leading-body);color:var(--gcid-text-muted-inverse);margin:0 0 24px;max-width:56ch}body .ep-cta-row{display:flex;gap:12px;flex-wrap:wrap}body .filter-row{display:flex;align-items:center;gap:12px;margin-bottom:var(--gvid-space-head-gap);flex-wrap:wrap}body .chip{border-radius:var(--gvid-radius-pill);padding:8px 16px;font-weight:700;font-size:var(--gvid-text-caption);display:inline-block;border:1.5px solid var(--gcid-border-chip);color:var(--gcid-text-muted);background:transparent}body .chip[aria-pressed="true"]{background:var(--gcid-accent-1);color:var(--gcid-text-on-accent);border-color:var(--gcid-accent-1)}body .card.is-hidden{display:none}body .realtalk-strip{background:var(--gcid-bg-base);color:var(--gcid-text-inverse);padding:26px 0}body .realtalk-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}body .realtalk-pill{font-size:var(--gvid-text-eyebrow-sm);font-weight:800;letter-spacing:.14em;color:var(--gcid-accent-2);border:1px solid var(--gcid-border-emphasis);border-radius:var(--gvid-radius-pill);padding:7px 14px;white-space:nowrap}body .realtalk-link{margin-left:auto;font-weight:700;font-size:var(--gvid-text-ui);color:var(--gcid-accent-2);white-space:nowrap}body .archive-more{display:flex;justify-content:center;margin-top:36px}body .pill-outline-dark{border:1.5px solid var(--gcid-text-primary);border-radius:var(--gvid-radius-pill);padding:12px 26px;font-weight:700;font-size:var(--gvid-text-ui)}body .shop-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding:52px 0 56px}body .h1-shop{font-size:var(--gvid-text-h1-shop);line-height:.98;margin:0 0 18px;letter-spacing:.01em}body .email-row{display:flex;gap:10px;max-width:480px;flex-wrap:wrap}body .email-input{flex:1;min-width:180px;background:var(--gcid-fill-dark);border:1px solid var(--gcid-border-emphasis);border-radius:var(--gvid-radius-input);padding:14px 16px;color:var(--gcid-text-inverse);font-size:var(--gvid-text-ui-lg);font-family:var(--gvid-font-body),system-ui,sans-serif;outline:none}body .email-input::placeholder{color:var(--gcid-text-placeholder-input)}body .product-hero{position:relative}body .product-hero-img{width:100%;aspect-ratio:4/3;border:1px solid var(--gcid-border-emphasis);border-radius:var(--gvid-radius-card-lg);overflow:hidden;background:var(--gcid-fill-dark)}body .coming-soon-badge{position:absolute;top:-14px;right:-12px;background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);font-weight:800;font-size:var(--gvid-text-caption);letter-spacing:.08em;padding:10px 16px;border-radius:var(--gvid-radius-pill);transform:rotate(6deg);box-shadow:0 6px 18px rgba(0,0,0,.35)}body .products-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}body .product-card{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);overflow:hidden;box-shadow:0 3px 12px rgba(26,27,31,.06)}body .product-img{width:100%;aspect-ratio:1/1;background:var(--gcid-fill-product)}body .product-body{padding:16px 18px 18px}body .product-body h3{margin:0 0 6px;font-size:16.5px;font-weight:800}body .product-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}body .product-drop{color:var(--gcid-accent-1);font-size:var(--gvid-text-eyebrow-sm);font-weight:800;letter-spacing:.12em}body .product-price{color:var(--gcid-text-meta);font-size:var(--gvid-text-caption-lg);font-weight:700}body .green-banner{margin-top:36px;background:var(--gcid-accent-1);color:var(--gcid-text-on-accent);border-radius:var(--gvid-radius-card-lg);padding:26px 30px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}body .green-banner h3{font-size:22px;margin:0 0 6px;letter-spacing:.02em}body .green-banner p{margin:0;font-size:14.5px;line-height:1.5;color:var(--gcid-accent-1-copy)}body .btn-orange.sm{font-size:var(--gvid-text-caption-lg);padding:12px 22px;margin-left:auto}body .community-hero{padding:48px 0 52px;display:flex;align-items:end;gap:40px;flex-wrap:wrap}body .h1-community{font-size:var(--gvid-text-h1-community);line-height:.98;margin:0 0 16px;letter-spacing:.01em}body .community-lede{font-size:var(--gvid-text-lede);line-height:var(--gvid-leading-body);color:var(--gcid-text-muted-inverse);margin:0;max-width:56ch}body .bash-photos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}body .bash-photo-tile{aspect-ratio:4/3;border-radius:var(--gvid-radius-card);overflow:hidden;position:relative}body .overlay-dark{position:absolute;inset:0;background:var(--gcid-scrim-dark);color:var(--gcid-text-on-accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--gvid-text-ui-lg);letter-spacing:.06em;text-align:center}body .overlay-green{position:absolute;inset:0;background:var(--gcid-scrim-green);color:var(--gcid-text-on-accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--gvid-text-ui-lg);letter-spacing:.06em;text-align:center;padding:10px}body .fan-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}body .fan-tile{aspect-ratio:3/4;border-radius:var(--gvid-radius-media-lg);overflow:hidden;position:relative}


@media (max-width:1160px){body .nav{position:static;transform:none;order:3;width:100%;justify-content:center}}

@media (max-width:900px){body .wrap{padding-left:24px;padding-right:24px}body .hero-grid,body .ep-hero-grid,body .shop-hero-grid,body .bash-stack-grid,body .community-hero{grid-template-columns:1fr}body .community-hero{align-items:flex-start}body .cards-grid{grid-template-columns:repeat(2,1fr)}body .crew-grid{grid-template-columns:repeat(3,1fr)}body .products-grid{grid-template-columns:repeat(2,1fr)}body .bash-photos-grid{grid-template-columns:repeat(2,1fr)}body .fan-grid{grid-template-columns:repeat(3,1fr)}body .h1-home{font-size:52px}body .h1-ep{font-size:38px}body .h1-shop{font-size:44px}body .h1-community{font-size:46px}body h2.anton{font-size:28px}body .nav{gap:18px}body .live-pill{margin-left:auto}
}

@media (max-width:640px){body .wrap{padding-left:16px;padding-right:16px}body .header{gap:12px}body .nav{order:3;width:100%;justify-content:center;margin-left:0;gap:16px}body .live-pill{order:2;margin-left:auto}body .ticker-track{padding-left:16px}body .cards-grid{grid-template-columns:1fr}body .crew-grid{grid-template-columns:repeat(2,1fr)}body .bash-photos-grid,body .fan-grid{grid-template-columns:repeat(2,1fr)}body .h1-home{font-size:40px}body .h1-ep{font-size:30px}body .h1-shop{font-size:34px}body .h1-community{font-size:36px}body h2.anton{font-size:24px}body .hero-lede,body .ep-lede,body .community-lede{font-size:var(--gvid-text-ui-lg)}body .section{padding:32px 0 0}body .section.section-pad-b{padding-bottom:32px}body .bash-stack-grid{padding:32px 0}body .video-caption,body .section-head{align-items:flex-start;flex-direction:column;gap:6px}body .green-banner,body .merch-card{flex-direction:column;align-items:flex-start;text-align:left}body .btn-orange.sm{margin-left:0}body .realtalk-row{flex-direction:column;align-items:flex-start}body .realtalk-link{margin-left:0}
}

/* UTALK-66 (2026-09-06, Vela): ONE global Theme Builder FOOTER (et_footer_layout
   "Global Footer", footer.et-l--footer > .et_builder_inner_content > .et_pb_section
   .footer-band). Sticky footer is now UNIFORM: #et-boc flexes to viewport height,
   the main area grows, and the footer layout pins to the bottom on short pages —
   this REPLACES the three per-page footer-band pin hacks that used to live here
   (pages 66/3 from 2026-08-17, the 653/655/404 mop-up from UTALK-63, and the
   single-crew pin further down), all of which keyed on a .footer-band section
   INSIDE the page/body layout that no longer exists there. No-op on tall pages.
   ticker-global correction (v66, 2026-09-07, Vela): the old parenthetical here
   claimed the PHP-doc templates were unaffected — WRONG: utalk_chrome_tb_header()
   emitted a header-only #et-boc that this min-height:100vh column stretched to a
   full viewport, leaving a giant gap above the content on events / fan wall /
   episode singles. utalk-chrome.php 3.1.0 now keeps ONE #et-boc open across
   header + #main-content (template content) + footer on those templates, so
   these rules apply uniformly everywhere. */
body #et-boc{display:flex;flex-direction:column;min-height:100vh}
body #et-boc>.et-l--header,body #et-boc>footer.et-l--footer{flex:0 0 auto}
body #et-boc>#main-content,body #et-boc>#et-main-area{flex:1 0 auto}
body #et-boc>footer.et-l--footer{margin-top:auto}
/* 404 (and any theme-routed 404-style page): Divi nests the TB footer INSIDE
   #et-main-area rather than directly under #et-boc — repeat the column there. */
body #et-boc>#et-main-area{display:flex;flex-direction:column}
body #et-main-area>#main-content{flex:1 0 auto}
body #et-main-area>footer.et-l--footer{flex:0 0 auto;margin-top:auto}

/* UTALK-7 crew grid link (Devlin, 2026-08-17): crew-name caption anchors inherit text styling */
body .crew-cap a{color:inherit;text-decoration:none}body .crew-cap a:hover{opacity:.82}

/* crew profile 2026-08-17 (Vela) — Theme Builder "Crew Profile" body template (single crew).
   Section classes: .crew-hero-band > .wrap.crew-hero | .crew-connect | .crew-biz ; footer/header reuse dark-band. */
body .crew-hero{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:center;padding:56px 0 40px}
body .crew-hero-media{display:flex;justify-content:center}
body .crew-portrait.et_pb_image{width:260px;height:260px;margin:0;border-radius:50%;padding:6px;background:linear-gradient(135deg,var(--gcid-accent-2),var(--gcid-accent-1));flex:none}
body .crew-portrait.et_pb_image .et_pb_image_wrap{border-radius:50%;border:4px solid #fff;box-sizing:border-box;overflow:hidden;background:var(--gcid-fill-placeholder)}
body .crew-h1 .et_pb_module_header,body .crew-h1 h1{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:var(--gvid-text-h1-crew);line-height:.98;letter-spacing:.01em;margin:0 0 12px;padding:0;color:var(--gcid-text-primary)}
body .crew-role.et_pb_text,body .crew-role .et_pb_text_inner,body .crew-tagline.et_pb_text,body .crew-tagline .et_pb_text_inner{display:block}
body .crew-role.et_pb_text{color:var(--gcid-accent-1);font-size:var(--gvid-text-ui);font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px}
body .crew-role p,body .crew-tagline p{margin:0;padding:0}
body .crew-tagline.et_pb_text{font-size:21px;line-height:1.35;font-weight:600;color:var(--gcid-text-soft);margin:0 0 18px;max-width:44ch}
body .crew-bio.et_pb_post_content{font-size:var(--gvid-text-body-lg);line-height:1.6;color:var(--gcid-text-primary);max-width:70ch}
body .crew-bio .et_builder_inner_content{padding:0}
body .crew-bio p{margin:0 0 16px;padding:0;font-size:inherit;line-height:inherit}
body .crew-bio p:last-child{margin-bottom:0}
body .crew-connect{padding:8px 0 40px}
body .crew-connect .section-head,body .crew-biz .section-head{margin-bottom:18px}
body .crew-links{display:flex;flex-wrap:wrap;gap:12px}
body .crew-links .et_pb_button_module_wrapper{display:inline-block;margin:0}
body .crew-links .et_pb_button,body .crew-links .et_pb_module .et_pb_button{display:inline-block;background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);border:2px solid var(--gcid-accent-2);border-radius:var(--gvid-radius-pill);padding:11px 22px;font-size:var(--gvid-text-ui);font-weight:800;letter-spacing:.06em;font-family:var(--gvid-font-body),system-ui,sans-serif;text-decoration:none}
body .crew-links .et_pb_button:hover,body .crew-links .et_pb_module .et_pb_button:hover{padding:11px 22px;background:var(--gcid-accent-2-hover);border-color:var(--gcid-accent-2-hover);color:var(--gcid-text-on-accent);opacity:1}
body .crew-links .et_pb_button:after,body .crew-links .et_pb_button:before{display:none}
body .crew-links .et_pb_button:focus-visible,body .biz-card .et_pb_button:focus-visible{outline:2px solid var(--gcid-bg-base);outline-offset:3px}
body .crew-biz{padding:8px 0 56px}
body .biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gvid-space-card-gap)}
body .biz-card{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:24px 24px 26px;box-shadow:0 1px 3px rgba(26,27,31,.05);display:flex;flex-direction:column;gap:12px;min-width:0}
body .biz-logo.et_pb_image{width:72px;height:72px;border-radius:var(--gvid-radius-media-lg);overflow:hidden;background:var(--gcid-fill-product);border:1px solid var(--gcid-border-subtle)}
body .biz-logo.et_pb_image:empty,body .biz-logo.et_pb_image:not(:has(img)){display:none}
body .biz-logo.et_pb_image img{object-fit:contain;padding:6px;box-sizing:border-box}
body .biz-name .et_pb_module_header,body .biz-name h3{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:var(--gvid-text-h3);line-height:1.1;letter-spacing:.02em;margin:0;padding:0;color:var(--gcid-text-primary)}
body .biz-teaser.et_pb_text,body .biz-teaser .et_pb_text_inner{display:block}
body .biz-teaser.et_pb_text{color:var(--gcid-text-muted);font-size:14.5px;line-height:1.5}
body .biz-teaser p{margin:0;padding:0}
body .biz-card .et_pb_button_module_wrapper{margin-top:auto;padding-top:6px}
body .biz-card .et_pb_button,body .biz-card .et_pb_module .et_pb_button{display:inline-block;border:2px solid var(--gcid-accent-1);color:var(--gcid-accent-1);background:transparent;border-radius:var(--gvid-radius-pill);padding:9px 18px;font-size:var(--gvid-text-caption-lg);font-weight:800;letter-spacing:.04em;font-family:var(--gvid-font-body),system-ui,sans-serif}
body .biz-card .et_pb_button:hover,body .biz-card .et_pb_module .et_pb_button:hover{padding:9px 18px;background:var(--gcid-accent-1);color:var(--gcid-text-on-accent);opacity:1}
body .biz-card .et_pb_button:after,body .biz-card .et_pb_button:before{display:none}
@media (max-width:900px){body .crew-hero{grid-template-columns:1fr;gap:28px;padding:40px 0 32px;text-align:center}body .crew-hero-copy{display:flex;flex-direction:column;align-items:center}body .crew-tagline.et_pb_text,body .crew-bio.et_pb_post_content{text-align:left}body .crew-h1 .et_pb_module_header,body .crew-h1 h1{font-size:48px;text-align:center}body .biz-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){body .crew-hero{padding:32px 0 24px}body .crew-portrait.et_pb_image{width:220px;height:220px}body .crew-h1 .et_pb_module_header,body .crew-h1 h1{font-size:38px}body .crew-tagline.et_pb_text{font-size:18px}body .crew-bio.et_pb_post_content{font-size:16px}body .biz-grid{grid-template-columns:1fr}body .crew-connect{padding-bottom:32px}body .crew-biz{padding-bottom:40px}}
/* UTALK-66: the single-crew footer pin moved to the uniform #et-boc sticky model above. */
/* home crew grid: whole card (ring photo + caption) clickable via the EXISTING caption anchor (stretched-link pattern);
   Divi 5 Image module has no native link attr, so the anchor's ::after covers the .crew-fig column. */
body .crew-fig{position:relative}
body .crew-cap a::after{content:"";position:absolute;inset:0;border-radius:var(--gvid-radius-card-lg)}
body .crew-cap a:focus-visible{outline:none}
body .crew-cap a:focus-visible::after{outline:2px solid var(--gcid-accent-2);outline-offset:2px}
body .crew-fig .crew-ring{transition:transform .2s ease,filter .2s ease}
body .crew-fig:hover .crew-ring{transform:scale(1.03);filter:brightness(1.06)}
body .crew-fig:hover .crew-name{color:var(--gcid-accent-2)}
body .crew-cap a:hover{opacity:1}
@media (prefers-reduced-motion:reduce){body .crew-fig .crew-ring{transition:none}body .crew-fig:hover .crew-ring{transform:none}}

/* UTALK-7 fix (2026-08-17): crew-single watermark occlusion. Divi core single-post
   template wraps body in #main-content with an opaque background-color:var(--gcid-text-on-accent) (WP-core
   fallback since the crew CPT cannot use page-template-blank.php). This sits above the
   sitewide body::before watermark layer, fully hiding it on /crew/<slug>/ pages only.
   Confirmed via Playwright computed-style: #main-content bg=rgb(255,255,255) static,
   only such opaque full-width wrapper in the crew single DOM. Scoped to body.single-crew
   so no other template is affected. */
body.single-crew #main-content{background:transparent}


/* ticker band 2026-08-17 (Vela) — UTALK-9; re-plumbed UTALK-77 (2026-09-07);
   seamless-loop fix (tickergap, 2026-09-07, Vela): orange band = the
   utalk_ticker_band() partial (utalk-ticker.php), placed BELOW each page's
   hero. .ticker-track holds the item set N times, each copy wrapped in a
   .ticker-set (copies 2..N = .ticker-dup, aria-hidden+inert; PHP estimates N
   for ≥ ~2× the widest breakpoint, script.js re-measures + appends clones).
   The animation rides each .ticker-set: translateX(-100%) = exactly ONE set's
   own width, so the reset is invisible at any viewport / item count / copy
   count. (The old single-dup track + translateX(-50%) ran out of content when
   the set was narrower than the viewport → visible gap before the repeat.)
   Speed: --ticker-duration = time per set (40s default; 640px override). */
body .ticker{--ticker-duration:40s;overflow:hidden;white-space:nowrap;padding:12px 0;line-height:1}
body .ticker .ticker-track{display:inline-flex;align-items:center;gap:0;width:max-content;max-width:none;margin:0;padding:0;white-space:nowrap}
body .ticker .ticker-track>*{display:inline-flex;align-items:center;flex:none;width:auto;min-width:0}
body .ticker .ticker-set{animation:utalkTicker var(--ticker-duration) linear infinite;will-change:transform}
body .ticker .ticker-item{display:inline-flex;align-items:center;flex:none;font-weight:800;font-size:var(--gvid-text-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--gcid-text-on-accent)}
body .ticker .ticker-item p{margin:0;display:inline}
body .ticker .ticker-item::after{content:"\00B7";margin:0 18px;opacity:.9}
body .ticker .ticker-item:empty::after{content:none}
/* empty state: no active ticker items → collapse the band (mu-plugin suppresses Divi's "No Results" block) */
body .ticker:not(:has(.ticker-item>*)){display:none}
body .ticker .ticker-link{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.55)}
body .ticker .ticker-link:hover{opacity:1;border-bottom-color:var(--gcid-text-on-accent)}
body .ticker .ticker-link:focus-visible{outline:2px solid #fff;outline-offset:3px;border-bottom-color:transparent}
/* UTALK-119 auto items (2026-09-30, Devlin): .tk-auto carries no visual
   difference from a manual item — the LIVE NOW item (.tk-live) reuses the
   header's .live-dot mark, sized for inline placement inside the ticker text. */
body .ticker .ticker-item.tk-live .live-dot{display:inline-block;vertical-align:middle;margin:-2px 2px 0 0}
body .ticker:hover .ticker-set,body .ticker:focus-within .ticker-set{animation-play-state:paused}
@keyframes utalkTicker{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media (max-width:640px){body .ticker{--ticker-duration:28s}}
@media (prefers-reduced-motion:reduce){
  body .ticker .ticker-track{animation:none;width:100%;flex-wrap:wrap;white-space:normal;padding:0 44px;row-gap:8px}
  body .ticker .ticker-set{animation:none;display:contents} /* items wrap directly in the track */
  body .ticker .ticker-track>.ticker-dup{display:none}
  body .ticker .ticker-set:not(.ticker-dup) .ticker-item:last-child::after{content:none}
  @media (max-width:640px){body .ticker .ticker-track{padding:0 16px}}
}

/* 2026-08-28 (UTALK E0.1, Vela): feed-driven YouTube episode cards (mu-plugin utalk-episodes.php).
   Lite embed: thumbnail button fills .card-thumb; click swaps in a youtube-nocookie iframe. */
body .yt-lite-btn{position:absolute;inset:0;width:100%;height:100%;display:block;padding:0;border:0;background:var(--gcid-fill-dark);cursor:pointer}
body .yt-lite-btn img{width:100%;height:100%;object-fit:cover}
body .yt-lite-btn:focus-visible{outline:2px solid var(--gcid-accent-2);outline-offset:-3px}
body .yt-lite-btn:hover .play-btn{background:var(--gcid-overlay-badge-hover)}
body .yt-lite-frame{position:absolute;inset:0;width:100%;height:100%;border:0}
body .ep-feed-empty{grid-column:1/-1;background:var(--gcid-bg-surface);border:1px dashed var(--gcid-border-chip);border-radius:var(--gvid-radius-card-sm);padding:32px 24px;text-align:center;color:var(--gcid-text-muted);font-weight:600;font-size:var(--gvid-text-ui-lg)}

/* ===== Episode CPT refactor (UTALK E1, 2026-08-28, Vela) =====
   Cards are now whole-card links to each episode's own page; the Episodes
   page is a server-paginated Loop; single episode pages get a filling
   16:9 player + recap + collapsible transcript. */
body a.epcard{color:inherit;display:block}
body a.epcard .card-thumb,body a.epcard .card-body,body a.epcard .card-eyebrow,body a.epcard .card-title,body a.epcard .card-date{display:block}
body .card-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
body a.epcard{transition:box-shadow .15s ease}
body a.epcard:hover{box-shadow:0 8px 22px rgba(26,27,31,.13)}
body a.epcard:hover .card-title{color:var(--gcid-accent-2)}
body a.epcard:focus-visible{outline:3px solid var(--gcid-accent-2);outline-offset:2px}
body .card-title{display:block}
body .video-caption a.title{font-weight:700;font-size:var(--gvid-text-ui-lg);color:inherit}
body .video-caption a.title:hover,body .video-caption a.title:focus-visible{color:var(--gcid-accent-2)}
/* Episode archive: SEARCH + LOAD MORE (UTALK-36, 2026-08-30 Vela — replaces
   the numbered .ep-pagination wall). All colors ride the design variables. */
body .ep-search{display:flex;align-items:center;gap:12px;margin:0 0 var(--gvid-space-head-gap);flex-wrap:wrap}
body .ep-search-input{flex:1 1 260px;max-width:430px;min-width:200px;background:var(--gcid-bg-surface);border:1.5px solid var(--gcid-border-chip);border-radius:var(--gvid-radius-pill);padding:11px 20px;font-family:inherit;font-size:var(--gvid-text-ui);color:var(--gcid-text-primary);outline:none}
body .ep-search-input::placeholder{color:var(--gcid-text-meta)}
body .ep-search-input:focus-visible{border-color:var(--gcid-accent-1);box-shadow:0 0 0 3px color-mix(in srgb,var(--gcid-accent-1) 22%,transparent)}
body .ep-search-btn{border:1.5px solid var(--gcid-border-chip);background:transparent;color:var(--gcid-text-muted);border-radius:var(--gvid-radius-pill);padding:10px 22px;font-family:inherit;font-weight:800;font-size:var(--gvid-text-caption);letter-spacing:.06em;cursor:pointer}
body .ep-search-btn:hover,body .ep-search-btn:focus-visible{border-color:var(--gcid-accent-1);color:var(--gcid-accent-1)}
body .ep-search-clear{color:var(--gcid-text-meta);font-size:var(--gvid-text-caption-lg);font-weight:700;white-space:nowrap}
body .ep-search-clear:hover,body .ep-search-clear:focus-visible{color:var(--gcid-accent-1)}
body .ep-results-line{margin:-8px 0 20px;color:var(--gcid-text-meta);font-size:var(--gvid-text-caption-lg)}
body .ep-loadmore-row{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:36px}
body .ep-loadmore{border:1.5px solid var(--gcid-text-primary);border-radius:var(--gvid-radius-pill);padding:13px 34px;font-weight:800;font-size:var(--gvid-text-ui);letter-spacing:.04em;color:var(--gcid-text-primary);display:inline-block;text-align:center}
body .ep-loadmore:hover,body .ep-loadmore:focus-visible{border-color:var(--gcid-accent-1);color:var(--gcid-accent-1)}
body .ep-loadmore[aria-busy="true"]{opacity:.55;pointer-events:none}
body .ep-progress{color:var(--gcid-text-meta);font-size:var(--gvid-text-caption-lg)}
body .ep-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
body [data-ep-card]:focus{outline:3px solid var(--gcid-accent-2);outline-offset:2px}
/* single episode page */
body .ep-single-hero{padding-top:40px;padding-bottom:52px}
body .h1-ep-single{font-size:var(--gvid-text-h1-article);line-height:1.05;margin:0 0 var(--gvid-space-head-gap);letter-spacing:.01em;max-width:32ch}
body .ep-single-video{max-width:1160px;border:1px solid var(--gcid-border-emphasis);border-radius:var(--gvid-radius-card)}
body .ep-links-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
body .sm-cta{font-size:var(--gvid-text-ui);padding:12px 20px}
body .ep-recap-body{font-size:16.5px;line-height:var(--gvid-leading-article);color:var(--gcid-text-article);max-width:var(--gvid-size-container-narrow)}
body .ep-recap-body p{margin:0 0 16px}
body .ep-transcript{border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card-sm);background:var(--gcid-bg-surface);max-width:900px}
body .ep-transcript summary{cursor:pointer;padding:18px 22px;font-weight:800;font-size:var(--gvid-text-ui-lg);color:var(--gcid-accent-1);letter-spacing:.04em}
body .ep-transcript summary:hover{color:var(--gcid-accent-2)}
body .ep-transcript summary:focus-visible{outline:3px solid var(--gcid-accent-2);outline-offset:2px;border-radius:var(--gvid-radius-card-sm)}
body .ep-transcript[open] summary{border-bottom:1px solid var(--gcid-border-subtle)}
body .ep-transcript-body{padding:18px 22px;font-size:var(--gvid-text-ui-lg);line-height:1.7;color:var(--gcid-text-transcript);max-height:520px;overflow:auto}
@media (max-width:900px){body .h1-ep-single{font-size:34px}}
@media (max-width:640px){body .h1-ep-single{font-size:27px}body .ep-single-hero{padding-top:28px;padding-bottom:36px}body .ep-links-row{gap:10px}}

/* ===== 2026-08-29 (Vela, UTALK footer spread revert) =====
   Reverts the 2026-08-28 "centered footer" block (was here, same selectors:
   .footer-row forced to a centered stacked column). Back to the original
   SPREAD layout — brand wordmark + "Atlanta, GA · Fridays 8PM ET" on the
   left, .footer-nav links pushed to the right via its base margin-left:auto
   — but with balanced gutters: the footer column carries .wrap, and the
   column-level .wrap centering fix in utalk-divi-reset.css (margin:auto both
   sides vs Divi's gutter CSS) keeps the 1360px inner container centered, so
   left gutter == right gutter on wide viewports. Re-asserted explicitly here
   so a future edit can't silently re-stack it. */
body .footer-row{flex-direction:row;justify-content:space-between;align-items:center;text-align:left;gap:24px}
body .footer-nav{margin-left:auto;justify-content:flex-end}
body footer.dark-band,body .et_pb_section.footer-band{padding:26px 0}
/* phones: wrap to a left-aligned stack — brand, tagline, then links */
@media (max-width:640px){
  body .footer-row{flex-direction:column;align-items:flex-start;gap:10px}
  body .footer-nav{margin-left:0;justify-content:flex-start}
}

/* === SHOWS (UTALK shows, 2026-08-29, Vela) ============================
   The four U TALK series are the PRIMARY organizing dimension.
   - .show-badge: small series label on every episode card thumbnail
     (top-left; .dur-badge stays bottom-right).
   - Show chips (primary) reuse .chip; pressed state stays the green
     house style. .filter-break forces the wrap between the Show row
     and the TOPIC row inside the one flex .filter-row.
   - .chip-sub: secondary TOPIC chips — visually subordinate (smaller,
     dimmer) so Show reads as the main filter. */
body .show-badge{position:absolute;left:10px;top:10px;background:var(--gcid-overlay-badge);color:var(--gcid-text-on-accent);font-size:10.5px;font-weight:800;letter-spacing:.09em;padding:4px 9px;border-radius:var(--gvid-radius-badge);text-transform:uppercase;pointer-events:none}
body .show-badge--nfl-edition{color:var(--gcid-show-nfl)}
body .show-badge--real-talk{color:var(--gcid-show-realtalk)}
body .show-badge--game-of-life{color:var(--gcid-show-gameoflife)}
body .filter-break{flex-basis:100%;height:0}
body .filter-label{font-size:11.5px;font-weight:800;letter-spacing:.16em;color:var(--gcid-text-placeholder);text-transform:uppercase;margin-right:2px}
body .chip.chip-sub{font-size:var(--gvid-text-eyebrow-sm);padding:6px 13px;border-color:var(--gcid-border-chip-sub);color:var(--gcid-text-meta)}
body .chip.chip-sub[aria-pressed="true"]{background:var(--gcid-text-muted);border-color:var(--gcid-text-muted);color:var(--gcid-text-on-accent)}
@media (max-width:640px){
  body .show-badge{font-size:9.5px;padding:3px 7px}
}

/* ===== WooCommerce native shop skin (UTALK-18, 2026-08-29, Vela) ==========
   The REAL Woo product loop + single product + cart/checkout/account wearing
   the /shop LINEUP design M approved. Card markup comes from
   mu-plugins/utalk-shop.php (Woo hooks — no core/template forks).
   Brand: orange var(--gcid-accent-2) · green var(--gcid-accent-1) · ink var(--gcid-text-primary) · paper var(--gcid-bg-light). */

/* --- product loop: ul.products.products-grid inherits THE LINEUP grid --- */
body ul.products.products-grid{list-style:none;margin:0;padding:0}
body ul.products.products-grid::before,body ul.products.products-grid::after{content:none;display:none}
body ul.products.products-grid li.product-card,body ul.products.products-grid[class*=columns-] li.product-card{width:auto;float:none;clear:none;margin:0;padding:0;position:relative;display:flex;flex-direction:column}
body .product-card>a.woocommerce-LoopProduct-link{display:block;color:inherit;flex:1}
body .product-card .product-img{position:relative;overflow:hidden}
body .product-card .product-img img{width:100%;height:100%;object-fit:cover}
body .product-card.is-tease>a{cursor:default}
body li.product-card{transition:box-shadow .15s ease}
body li.product-card:not(.is-tease):hover{box-shadow:0 8px 22px rgba(26,27,31,.13)}
body li.product-card:not(.is-tease):hover .product-body h3{color:var(--gcid-accent-2)}
body .product-card a.woocommerce-LoopProduct-link:focus-visible{outline:3px solid var(--gcid-accent-2);outline-offset:2px;border-radius:var(--gvid-radius-card)}
body .product-card .product-cta{padding:0 18px 18px;margin-top:auto}
body .product-card .product-cta .button{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);font-weight:800;font-size:var(--gvid-text-caption-lg);letter-spacing:.04em;padding:11px 20px;border-radius:var(--gvid-radius-btn);border:none;display:inline-block;text-transform:uppercase}
body .product-card .product-cta .button:hover{background:var(--gcid-accent-2-hover);opacity:1}
body .product-card .product-cta .added_to_cart{margin-left:10px;color:var(--gcid-accent-1);font-weight:800;font-size:var(--gvid-text-caption)}
body .lineup-empty{background:var(--gcid-bg-surface);border:1px dashed var(--gcid-border-chip);border-radius:var(--gvid-radius-card);padding:36px 24px;text-align:center;color:var(--gcid-text-muted);font-weight:700;font-size:var(--gvid-text-ui-lg);letter-spacing:.04em;display:flex;flex-direction:column;align-items:center;gap:8px}
body .lineup-empty .ico{font-size:20px;opacity:.6;color:var(--gcid-accent-2)}
@media (prefers-reduced-motion:reduce){body li.product-card{transition:none}}

/* --- shared Woo chrome on branded pages --- */
body .wc-page .woocommerce-notices-wrapper:empty{display:none}
body .woocommerce-message,body .woocommerce-info,body .woocommerce-error li,body .woocommerce-error{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-left:5px solid var(--gcid-accent-1);border-radius:var(--gvid-radius-media);padding:16px 20px;margin:0 0 22px;color:var(--gcid-text-primary);font-size:14.5px;font-weight:600;list-style:none}
body .woocommerce-info{border-left-color:var(--gcid-accent-2)}
body .woocommerce-error,body .woocommerce-error li{border-left-color:var(--gcid-error)}
body ul.woocommerce-error{padding:0;border:0;background:none}
body .woocommerce-message a,body .woocommerce-info a{color:var(--gcid-accent-1);font-weight:800}
body .woocommerce-message .button,body .woocommerce-info .button,body .woocommerce-error .button{float:right;background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);border-radius:var(--gvid-radius-btn);padding:8px 14px;font-weight:800;font-size:var(--gvid-text-caption);border:none;margin-left:12px}
body .h1-wc{font-size:var(--gvid-text-h1-wc);line-height:1;margin:0 0 var(--gvid-space-head-gap);letter-spacing:.01em}
body .wc-page table.shop_table{width:100%;border-collapse:separate;border-spacing:0;background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);overflow:hidden;font-size:14.5px}
body .wc-page table.shop_table th,body .wc-page table.shop_table td{padding:14px 18px;border-bottom:1px solid var(--gcid-fill-placeholder-2);text-align:left;vertical-align:middle}
body .wc-page table.shop_table thead th{background:var(--gcid-bg-base);color:var(--gcid-text-inverse);font-size:var(--gvid-text-eyebrow-sm);font-weight:800;letter-spacing:.12em;text-transform:uppercase;border-bottom:none}
body .wc-page table.shop_table tr:last-child td{border-bottom:none}
body .wc-page .button,body .wc-page button[type=submit]{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);font-weight:800;font-size:var(--gvid-text-ui);letter-spacing:.04em;padding:13px 24px;border-radius:var(--gvid-radius-btn);border:none;display:inline-block;cursor:pointer}
body .wc-page .button:hover,body .wc-page button[type=submit]:hover{background:var(--gcid-accent-2-hover);opacity:1}
body .wc-page .button:disabled{background:var(--gcid-border-chip);color:var(--gcid-text-placeholder);cursor:not-allowed}
body .wc-page input.input-text,body .wc-page input[type=text],body .wc-page input[type=email],body .wc-page input[type=tel],body .wc-page input[type=password],body .wc-page textarea,body .wc-page select{background:var(--gcid-bg-surface);border:1.5px solid var(--gcid-border-chip);border-radius:var(--gvid-radius-input);padding:12px 14px;font-size:var(--gvid-text-ui-lg);font-family:var(--gvid-font-body),system-ui,sans-serif;color:var(--gcid-text-primary);width:100%;box-sizing:border-box}
body .wc-page input:focus-visible,body .wc-page select:focus-visible,body .wc-page textarea:focus-visible{outline:2px solid var(--gcid-accent-2);outline-offset:1px}
body .wc-page label{font-size:var(--gvid-text-caption);font-weight:700;letter-spacing:.04em;color:var(--gcid-text-soft);display:block;margin:0 0 6px}
body .wc-page .required{color:var(--gcid-accent-2);text-decoration:none}
body .wc-page fieldset{border:none;margin:0;padding:0}
body .wc-page .form-row{margin:0 0 16px;padding:0;list-style:none}

/* --- cart --- */
body .wc-cart .wc-empty-cart-message .cart-empty{background:none;border:none;padding:0;margin:0 0 10px;font-size:17px;color:var(--gcid-text-muted);font-weight:600}
body .wc-cart .return-to-shop{margin-top:8px}
body .wc-cart td.product-name a{font-weight:800;color:var(--gcid-text-primary)}
body .wc-cart td.product-name a:hover{color:var(--gcid-accent-2)}
body .wc-cart .product-remove a.remove{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--gcid-border-chip);color:var(--gcid-error);font-size:16px;font-weight:800;line-height:1}
body .wc-cart .product-remove a.remove:hover{background:var(--gcid-error);border-color:var(--gcid-error);color:var(--gcid-text-on-accent);opacity:1}
body .wc-cart .quantity .qty{width:72px;text-align:center;padding:10px 6px}
body .wc-cart .coupon{display:flex;gap:10px;align-items:center}
body .wc-cart .coupon .input-text{width:180px}
body .wc-cart .coupon label{margin:0}
body .wc-cart td.actions{background:var(--gcid-fill-soft)}
body .wc-cart td.actions>.button{float:right}
body .wc-cart .cart-collaterals{margin-top:28px;display:flex;justify-content:flex-end}
body .wc-cart .cart_totals{width:min(420px,100%)}
body .wc-cart .cart_totals h2{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:24px;letter-spacing:.02em;margin:0 0 14px}
body .wc-cart .checkout-button{width:100%;text-align:center;font-size:var(--gvid-text-ui-lg);padding:15px 24px;text-transform:uppercase}
body .wc-cart .woocommerce-shipping-destination{color:var(--gcid-text-muted);font-size:var(--gvid-text-caption)}

/* --- checkout --- */
body .wc-checkout form.checkout{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:start}
body .wc-checkout #customer_details{grid-column:1}
body .wc-checkout #order_review_heading,body .wc-checkout #order_review{grid-column:2}
body .wc-checkout #order_review_heading{grid-row:1;font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:24px;letter-spacing:.02em;margin:0 0 14px}
body .wc-checkout .woocommerce-billing-fields h3,body .wc-checkout .woocommerce-shipping-fields h3,body .wc-checkout .woocommerce-additional-fields h3{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:24px;letter-spacing:.02em;margin:0 0 14px}
body .wc-checkout .form-row-first,body .wc-checkout .form-row-last{width:48%;display:inline-block;vertical-align:top}
body .wc-checkout .form-row-first{margin-right:4%}
body .wc-checkout .form-row-wide{width:100%}
body .wc-checkout #payment{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:20px 22px;margin-top:18px}
body .wc-checkout #payment .woocommerce-notice,body .wc-checkout #payment .woocommerce-info{margin:0}
body .wc-checkout #place_order{width:100%;margin-top:16px;font-size:var(--gvid-text-ui-lg);padding:15px 24px;text-transform:uppercase}
body .wc-checkout .woocommerce-checkout-review-order-table{margin-bottom:0}
body .wc-checkout .select2-container .select2-selection--single{height:auto;border:1.5px solid var(--gcid-border-chip);border-radius:var(--gvid-radius-btn);padding:9px 14px}
body .wc-checkout .select2-container .select2-selection__arrow{top:50%;transform:translateY(-50%)}

/* --- my account --- */
body .wc-account .woocommerce{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:start}
body .wc-account .woocommerce>*:only-child{grid-column:1/-1}
body .wc-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);overflow:hidden}
body .wc-account .woocommerce-MyAccount-navigation li a{display:block;padding:13px 18px;font-weight:700;font-size:var(--gvid-text-ui);border-bottom:1px solid var(--gcid-fill-placeholder-2);color:var(--gcid-text-soft)}
body .wc-account .woocommerce-MyAccount-navigation li:last-child a{border-bottom:none}
body .wc-account .woocommerce-MyAccount-navigation li.is-active a,body .wc-account .woocommerce-MyAccount-navigation li a:hover{background:var(--gcid-accent-1);color:var(--gcid-text-on-accent);opacity:1}
body .wc-account .woocommerce-MyAccount-content{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:26px 28px;font-size:var(--gvid-text-ui-lg)}
body .wc-account .woocommerce-form-login,body .wc-account .woocommerce-form-register{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:26px 28px;max-width:480px}
body .wc-account h2{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:26px;letter-spacing:.02em;margin:0 0 16px}
body .wc-account .lost_password a{color:var(--gcid-accent-1);font-weight:700;font-size:var(--gvid-text-caption-lg)}
body .wc-account #customer_login{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}

/* --- single product --- */
body .wc-product .utalk-product .product{display:grid;grid-template-columns:1fr 1fr;gap:var(--gvid-space-hero-gap);align-items:start}
body .wc-product .woocommerce-product-gallery{border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card-lg);overflow:hidden;background:var(--gcid-fill-product);opacity:1!important}
body .wc-product .woocommerce-product-gallery__image--placeholder{aspect-ratio:1/1;background:repeating-linear-gradient(135deg,var(--gcid-fill-placeholder-2),var(--gcid-fill-placeholder-2) 10px,var(--gcid-fill-placeholder) 10px,var(--gcid-fill-placeholder) 20px);display:flex;align-items:center;justify-content:center}
body .wc-product .woocommerce-product-gallery__image--placeholder img{width:38%;opacity:.55;mix-blend-mode:multiply}
body .wc-product .summary.entry-summary{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card-lg);padding:30px 32px}
body .wc-product h1.product_title{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:40px;line-height:1.02;letter-spacing:.01em;margin:0 0 12px;color:var(--gcid-text-primary)}
body .wc-product .summary p.price{color:var(--gcid-accent-1);font-weight:800;font-size:24px;margin:0 0 16px;font-family:var(--gvid-font-body),system-ui,sans-serif}
body .wc-product .woocommerce-product-details__short-description{color:var(--gcid-text-soft);font-size:15.5px;line-height:1.6;margin:0 0 20px}
body .wc-product form.cart{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin:0 0 18px}
body .wc-product form.cart .quantity .qty{width:76px;text-align:center;padding:12px 8px;border:1.5px solid var(--gcid-border-chip);border-radius:var(--gvid-radius-input);font-size:var(--gvid-text-ui-lg);font-family:var(--gvid-font-body),system-ui,sans-serif}
body .wc-product .single_add_to_cart_button{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);font-weight:800;font-size:var(--gvid-text-ui-lg);letter-spacing:.04em;padding:14px 28px;border-radius:var(--gvid-radius-btn);border:none;text-transform:uppercase;cursor:pointer}
body .wc-product .single_add_to_cart_button:hover{background:var(--gcid-accent-2-hover);opacity:1}
body .wc-product .product_meta{color:var(--gcid-text-muted);font-size:var(--gvid-text-caption);display:flex;flex-direction:column;gap:4px}
body .wc-product .product_meta a{color:var(--gcid-accent-1);font-weight:700}
body .wc-product .woocommerce-tabs{grid-column:1/-1;margin-top:8px}
body .wc-product .woocommerce-tabs ul.tabs{list-style:none;display:flex;gap:10px;margin:0 0 0;padding:0}
body .wc-product .woocommerce-tabs ul.tabs li{margin:0;padding:0}
body .wc-product .woocommerce-tabs ul.tabs li a{display:inline-block;border:1.5px solid var(--gcid-border-chip);border-radius:var(--gvid-radius-pill);padding:9px 18px;font-weight:700;font-size:var(--gvid-text-caption-lg);color:var(--gcid-text-muted)}
body .wc-product .woocommerce-tabs ul.tabs li.active a{background:var(--gcid-accent-1);border-color:var(--gcid-accent-1);color:var(--gcid-text-on-accent)}
body .wc-product .woocommerce-tabs .panel{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:22px 26px;margin-top:14px;font-size:var(--gvid-text-ui-lg);line-height:1.6}
body .wc-product .woocommerce-tabs .panel h2{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:22px;letter-spacing:.02em;margin:0 0 10px}
body .wc-product section.related,body .wc-product section.upsells{grid-column:1/-1;margin-top:44px}
body .wc-product section.related>h2,body .wc-product section.upsells>h2{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:30px;letter-spacing:.02em;margin:0 0 22px}
body .wc-product .woocommerce-breadcrumb{display:none}

/* --- responsive --- */
@media (max-width:900px){
  body .h1-wc{font-size:38px}
  body .wc-product .utalk-product .product{grid-template-columns:1fr;gap:28px}
  body .wc-checkout form.checkout{grid-template-columns:1fr}
  body .wc-checkout #order_review_heading,body .wc-checkout #order_review{grid-column:1;grid-row:auto}
  body .wc-account .woocommerce{grid-template-columns:1fr}
  body .wc-account #customer_login{grid-template-columns:1fr}
}
@media (max-width:640px){
  body .h1-wc{font-size:30px}
  body .wc-product h1.product_title{font-size:30px}
  body .wc-product .summary.entry-summary{padding:22px 20px}
  body .wc-cart .coupon{flex-wrap:wrap}
  body .wc-cart .coupon .input-text{width:100%}
  body .wc-cart td.actions>.button{float:none;width:100%;margin-top:10px}
  body .wc-cart .cart-collaterals{justify-content:stretch}
  body .wc-cart .cart_totals{width:100%}
  body .wc-checkout .form-row-first,body .wc-checkout .form-row-last{width:100%;display:block;margin-right:0}
  /* mobile cart table: stack cells */
  body .wc-page table.shop_table.cart thead{display:none}
  body .wc-page table.shop_table.cart tr{display:block;border-bottom:1px solid var(--gcid-fill-placeholder-2);padding:8px 0}
  body .wc-page table.shop_table.cart td{display:flex;justify-content:space-between;align-items:center;border-bottom:none;padding:8px 18px}
  body .wc-page table.shop_table.cart td.product-name::before{content:"";}
  body .wc-page table.shop_table.cart td[data-title]::before{content:attr(data-title);font-weight:800;font-size:var(--gvid-text-eyebrow-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--gcid-text-placeholder);margin-right:14px}
}

/* --- Divi-theme override lane (UTALK-18) -------------------------------
   Divi styles Woo notices with !important backgrounds and the checkout
   buttons via double-ID selectors (#payment #place_order). These few rules
   match that weight — !important used ONLY where Divi already uses it
   (cannot be beaten by specificity alone); buttons out-specified cleanly. */
body .wc-page .woocommerce-message,body .wc-page .woocommerce-info,body .wc-product .woocommerce-message,body .wc-product .woocommerce-info{background:var(--gcid-bg-surface)!important;color:var(--gcid-text-primary)!important;border:1px solid var(--gcid-border-subtle)!important;border-left:5px solid var(--gcid-accent-1)!important}
body .wc-page .woocommerce-info,body .wc-product .woocommerce-info{border-left-color:var(--gcid-accent-2)!important}
body .wc-page .woocommerce-error,body .wc-page .woocommerce-error li,body .wc-product .woocommerce-error li{background:var(--gcid-bg-surface)!important;color:var(--gcid-text-primary)!important;border-left:5px solid var(--gcid-error)!important}
body .wc-page .woocommerce-message a,body .wc-page .woocommerce-info a,body .wc-product .woocommerce-info a{color:var(--gcid-accent-1)!important;font-weight:800}
body .wc-page #payment #place_order,body.woocommerce-checkout .wc-page #payment #place_order{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);border:none;border-radius:var(--gvid-radius-btn);font-weight:800;font-size:var(--gvid-text-ui-lg);letter-spacing:.04em;padding:15px 24px;text-transform:uppercase;width:100%}
body .wc-page #payment #place_order:hover{background:var(--gcid-accent-2-hover);color:var(--gcid-text-on-accent)}
body .wc-page .wc-proceed-to-checkout a.checkout-button,body .wc-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);border:none;border-radius:var(--gvid-radius-btn);font-weight:800;text-transform:uppercase}
body .wc-page .wc-proceed-to-checkout a.checkout-button:hover{background:var(--gcid-accent-2-hover);color:var(--gcid-text-on-accent)}
body .wc-page table.shop_table td.actions .coupon .button,body .wc-page button[name=update_cart]:not(:disabled){background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);border:none}
body .wc-page button[name=update_cart]:disabled{background:var(--gcid-fill-placeholder-2);color:var(--gcid-text-placeholder);border:1px solid var(--gcid-border-subtle)}
body .wc-product form.cart .single_add_to_cart_button,body.woocommerce div.product form.cart .single_add_to_cart_button{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);border:none}
body .wc-product .utalk-product .product>.woocommerce-product-gallery{width:100%;float:none}
body .wc-product .utalk-product .product>.summary.entry-summary{width:100%;float:none}
body .wc-product #review_form #submit{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent);border:none;border-radius:var(--gvid-radius-btn);font-weight:800;font-size:var(--gvid-text-ui);padding:12px 22px}
body .wc-product #review_form #submit:hover{background:var(--gcid-accent-2-hover);color:var(--gcid-text-on-accent)}
body .wc-product .woocommerce-Reviews-title,body .wc-product #reply-title{font-family:var(--gvid-font-display),sans-serif;font-weight:400;letter-spacing:.02em}

/* ===== THE RUNDOWN hub + article + signup (UTALK-20, 2026-08-29, Vela) =====
   Native WP Posts hub (/rundown/), branded single-post template, reusable
   newsletter signup ([utalk_signup], mu-plugins/utalk-rundown.php) wired to
   the EXISTING n8n utalk-subscribe capture. */
body .rundown-hero{padding:44px 0 50px}
body .rundown-hero .email-row{margin-top:4px}
body .utalk-signup-heading{font-size:22px;letter-spacing:.02em;margin:0 0 6px}
body .utalk-signup-lede{margin:0 0 12px;font-size:14.5px;line-height:1.5;color:var(--gcid-text-muted-inverse)}
body .utalk-signup-fine{margin:10px 0 0;font-size:12.5px;opacity:.78}
body .utalk-signup--light .email-input{background:var(--gcid-bg-surface);border:1.5px solid var(--gcid-border-chip);color:var(--gcid-text-primary)}
body .utalk-signup--light .email-input::placeholder{color:var(--gcid-text-placeholder)}
body .utalk-signup--light .utalk-signup-lede{color:var(--gcid-text-muted)}
body .rundown-article .utalk-signup--light{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:24px 26px;margin-top:30px;max-width:640px}
body .rundown-article .link-green{display:inline-block;margin-top:24px;font-weight:800}
body .rundown-h1 .et_pb_module_header,body .rundown-h1 h1{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:var(--gvid-text-h1-article);line-height:1.05;letter-spacing:.01em;margin:10px 0 18px;padding:0;color:var(--gcid-text-primary);max-width:26ch}
body .rundown-body.et_pb_post_content{font-size:16.5px;line-height:var(--gvid-leading-article);color:var(--gcid-text-article);max-width:var(--gvid-size-container-narrow)}
body .rundown-body .et_builder_inner_content{padding:0}
body .rundown-body p{margin:0 0 16px;font-size:inherit;line-height:inherit}
body .rundown-body h2{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:26px;letter-spacing:.02em;margin:26px 0 10px}
body .rundown-body blockquote{border-left:4px solid var(--gcid-accent-2);margin:20px 0;padding:6px 0 6px 18px;font-weight:600;color:var(--gcid-text-primary)}
/* v75 (2026-09-10, Vela, drift-approved F1 deviation): COLUMN articles only — center
   the article measure. Native Divi row centering is neutralized by the adapter reset
   (rows width:100%!important) + Divi dynamic-cache specificity, so this lives here.
   Episodes carry .ep-video and are excluded via :not(:has()). width:fit-content
   shrink-wraps the lone column to its widest capped module (signup 640px / body 75ch);
   auto margins center it. margin-right needs !important to beat Divi core
   ".et_pb_row .et_pb_column:last-child{margin-right:0!important}" ((0,3,1) beats
   (0,3,0) in the important tier); at <=479px Divi's own width:100%!important stacking
   rule restores full-width flow (desired on phones). */
body .rundown-article:not(:has(.ep-video)) .et_pb_column{width:fit-content;margin-left:auto;margin-right:auto !important}
body .rundown-card .card-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* footer signup strip (relocated into the footer band by utalk-rundown.php JS) */
body .footer-signup{padding-top:22px;padding-bottom:18px;border-bottom:1px solid var(--gcid-border-rule);margin-bottom:16px}
body .footer-signup .utalk-signup-lede{font-size:var(--gvid-text-caption-lg);margin-bottom:10px}
body .footer-signup .email-row{max-width:460px}
body .footer-signup .utalk-signup-fine{font-size:11.5px}
body .footer-signup .btn-orange{font-size:var(--gvid-text-caption-lg);padding:12px 22px}

/* ===== ONE gutter system — the foundation (UTALK-24, 2026-08-29, Vela) =====
   Single responsive gutter + single centered content max-width for EVERY
   content container, replacing the per-breakpoint / per-section ad-hoc
   paddings (incl. the LATEST EPISODES / CREW flush fix, the MERCH card and
   footer edge-flush — they all inherit this now).
   --gutter: 16px on phones (the ~520px reference look), scaling smoothly to
   44px by the 1360px content max (matches the old 16/24/44 tiers at their
   old widths, but continuous). Full-bleed BANDS (dark-band, ticker, hero
   backgrounds) still span edge-to-edge — the gutter lives on the content
   containers (.wrap) inside them. */
body{--gutter:var(--gvid-size-gutter);--content-max:var(--gvid-size-container)}
body .wrap{max-width:var(--content-max);margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}
/* the `body .section` padding shorthand used to cancel .wrap's horizontal
   padding (equal specificity, later in file) — re-assert from the system */
body .section.wrap,body .et_pb_section.section.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}
/* Divi columns/rows carrying .wrap: beat the divi-reset zero-padding rules */
body .et_pb_column.wrap,body .et_pb_row.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}
/* .wrap ROWS also inherit Divi's default 80%-width row sizing (the reset only
   normalized .hero-grid/.ep-hero-grid) — that stacked a second phantom inset
   under the shop/rundown/subscribe heroes. Normalize ALL .wrap rows the same
   way the reset does (matching its !important weight, which Divi's own row
   width rules force). */
body .et_pb_row.wrap{width:100%!important;max-width:var(--content-max)!important;margin-left:auto!important;margin-right:auto!important}
/* ticker band is full-bleed; its lead-in aligns to the same gutter */
body .ticker-track{padding-left:var(--gutter)}
@media (prefers-reduced-motion:reduce){body .ticker .ticker-track{padding:0 var(--gutter)}}

/* ===== WHERE TO LISTEN pills — brand icons + tidy phone grid (UTALK-20) ===
   Inline currentColor SVG marks (self-contained, CSP-safe, no external
   requests); section stays visually secondary — same green-outline pills,
   just with recognizable marks and an even 2x2 wrap on phones. */
body .pill-outline-green{display:inline-flex;align-items:center;gap:8px}
body .pill-ico{flex:none;display:block}
@media (max-width:640px){
  body .listen-pills{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  body .listen-pills .pill-outline-green{justify-content:center;padding:9px 10px;font-size:12.5px}
}

/* ===== MERCH: DROP 001 card — balanced placeholder layout (UTALK-20) =====
   Image area fills the left ~44% full-height with the same striped/diamond
   placeholder treatment as the LINEUP cards; consistent internal padding
   (the divi-reset zeroes column padding on stacked mobile, which left the
   label flush against the card edge). */
/* NOTE: the divi-reset flattens .et_pb_text wrappers to display:contents, so
   the card's REAL flex items are .merch-img and the copy <div> themselves. */
body .et_pb_row_inner.merch-card{padding:24px 26px}
body .merch-card{align-items:stretch;gap:20px}
body .merch-card .merch-img{width:44%;min-width:44%;height:auto;min-height:180px;align-self:stretch;flex:none;border-radius:var(--gvid-radius-media-lg);overflow:hidden;background:rgba(255,255,255,.12)}
body .merch-card .et_pb_text_inner>div:not(.merch-img){flex:1;min-width:0}
body .merch-card .merch-img .img-placeholder{font-size:11px;letter-spacing:.1em;line-height:1.6}
body .merch-card h3{margin-top:0}
@media (max-width:980px){
  /* Divi's responsive row/row_inner resets carry framework !important —
     match that weight here, nowhere else. */
  body .et_pb_row_inner.merch-card,body .merch-card{padding:20px 18px!important}
}
@media (max-width:640px){
  /* card stacks to a column here — image goes full-width banner */
  body .merch-card .merch-img{width:100%!important;min-width:0!important;height:150px!important;min-height:150px!important}
  body .merch-card{gap:14px}
}

/* ===== Fluid type + small-phone header (UTALK-23, 2026-08-29, Vela) ========
   M's loved proportions live at ~520px effective width; real phones are
   375-414. Everything below scales with clamp() so 520px keeps EXACTLY the
   previous fixed sizes (the vw term reaches each old value at ~520) and
   375-414 shrinks smoothly instead of wrapping. Desktop/tablet (>640px)
   rules are untouched. */
@media (max-width:640px){
  body .h1-home{font-size:clamp(28px,7.7vw,40px)}
  body .h1-ep{font-size:clamp(22px,5.8vw,30px)}
  body .h1-shop{font-size:clamp(25px,6.6vw,34px)}
  body .h1-community{font-size:clamp(26px,7vw,36px)}
  body .h1-ep-single{font-size:clamp(20px,5.2vw,27px)}
  body .h1-wc{font-size:clamp(23px,5.8vw,30px)}
  body h2.anton{font-size:clamp(18px,4.7vw,24px)}
  body .eyebrow{font-size:clamp(10px,2.6vw,13px);letter-spacing:clamp(.06em,.4vw,.22em)}
  body .hero-lede,body .ep-lede,body .community-lede{font-size:clamp(13.5px,2.9vw,15px)}
  body .lede-muted{font-size:clamp(14px,3.1vw,16px)}
  body .btn-orange{font-size:clamp(13px,2.9vw,15px);padding:clamp(11px,2.9vw,15px) clamp(18px,5.4vw,28px)}
  body .btn-outline-dark{font-size:clamp(13px,2.9vw,15px);padding:clamp(10px,2.7vw,14px) clamp(16px,5vw,26px)}
  body .card-title{font-size:clamp(15px,4vw,17px)}
  body .card-eyebrow{font-size:clamp(10.5px,2.8vw,12px)}
  body .video-caption .title{font-size:clamp(13.5px,2.9vw,15px)}
  body .chip{font-size:clamp(11.5px,3vw,13px);padding:clamp(6px,1.6vw,8px) clamp(11px,3vw,16px)}
  body .chip.chip-sub{font-size:clamp(10.5px,2.8vw,12px)}
  body .product-body h3{font-size:clamp(14.5px,3.9vw,16.5px)}
  /* header: logo+wordmark left, LIVE pill right on ONE row; 5-item nav on
     ONE unwrapped row beneath — sizes scale so 375px fits cleanly */
  body .wordmark{font-size:clamp(15px,4vw,20px)}
  body .logo-img{width:clamp(34px,9.6vw,44px);height:clamp(34px,9.6vw,44px)}
  body .live-pill{font-size:clamp(9.5px,2.6vw,12.5px);padding:clamp(5px,1.5vw,8px) clamp(9px,2.9vw,16px);gap:6px;letter-spacing:.05em}
  body .nav{font-size:clamp(11px,3.1vw,13px);gap:clamp(7px,2.4vw,16px);letter-spacing:.045em;flex-wrap:nowrap;white-space:nowrap}
  /* a touch less vertical section padding on small screens */
  body .section{padding-top:clamp(24px,7vw,32px)}
  body .section.section-pad-b{padding-bottom:clamp(24px,7vw,32px)}
}
@media (max-width:430px){
  body .eyebrow{letter-spacing:.1em}
  body .header{gap:8px;row-gap:10px}
  body .logo-link{gap:8px}
  body .wordmark{letter-spacing:.02em}
  body .nav{letter-spacing:.03em}
  body .live-pill .live-dot{width:7px;height:7px}
}

/* ===== single-episode watermark legibility (UTALK-25) =====================
   The sitewide body::before watermark (opacity .45) sat under the EPISODE
   RECAP body copy; soften it on episode singles so recap/transcript text is
   clearly readable while the texture stays. */
body.utalk-ep-single::before{opacity:.16}

/* ===== SHOP grid density refinement (UTALK-27, 2026-08-29, Vela) ===========
   M feedback: phone cards rendered oversized/scroll-heavy. Two real causes:
   (1) Woo's smallscreen stylesheet (`ul.products[class*=columns-] li.product`
       -> width:48%; float:left; margin-bottom:2.992em) out-specified the
       UTALK-18 li reset, so cards floated at half a 1fr track with a ~48px
       phantom bottom margin — fixed at the UTALK-18 block by matching
       [class*=columns-] in the reset selector.
   (2) 640px collapsed .products-grid to 1-up. Now: phone = 2-up compact,
       tablet(<=900) = 2-up, desktop = 4-up. Footer type/leading tightened so
       the white band sits snug; image stays 1:1. Shop-page watermark eased. */
body .product-card .product-body{padding:13px 14px 14px}
body .product-card .product-body h3{font-size:var(--gvid-text-ui-lg);line-height:1.25;margin:0 0 5px}
body .product-card .product-meta{gap:2px 8px}
body .product-card .product-drop{font-size:10.5px;letter-spacing:.1em;line-height:1.5}
body .product-card .product-price{font-size:12.5px;line-height:1.5}
body .product-card .product-cta{padding:0 14px 14px}
@media (max-width:640px){
  body .products-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  body .product-card{border-radius:var(--gvid-radius-card-sm)}
  body .product-card .product-body{padding:10px 11px 11px}
  body .product-card .product-body h3{font-size:clamp(12.5px,3.6vw,14px);margin:0 0 4px}
  body .product-card .product-drop{font-size:clamp(9px,2.5vw,9.5px);letter-spacing:.07em}
  body .product-card .product-price{font-size:clamp(11px,3vw,11.5px)}
  body .product-card .img-placeholder{font-size:clamp(9.5px,2.7vw,11px);letter-spacing:.06em;gap:4px}
  body .product-card .img-placeholder .ico{font-size:16px}
  body .product-card .product-cta{padding:0 11px 11px}
  body .product-card .product-cta .button{font-size:var(--gvid-text-eyebrow-sm);padding:9px 14px}
}
/* the tiled watermark reads a touch loud under the cream cards on /shop */
body.woocommerce-shop::before{opacity:.3}
/* ===== Platform brand marks on CTAs (UTALK-28) ============================
   Single source: utalk-icons.php (utalk_platform_icon() + [utalk_ico]) — the
   same currentColor SVGs the WHERE TO LISTEN pills established. .has-ico
   turns just the buttons that carry a mark into inline-flex so the icon sits
   left of the label, vertically centered, without touching plain buttons. */
body .has-ico{display:inline-flex;align-items:center;gap:8px}

/* ===== THE LATEST breathing room (UTALK-30, 2026-08-29, Vela) =============
   M feedback: the rundown hub's heading / filter chips / card grid stack
   reads crowded. Measured causes (headless, 390 + 1280):
   - .filter-row renders as a Divi ROW on /rundown/ — the divi-reset's row
     normalizer (".et_pb_row:not(.wrap):not(.ticker-track){margin:0
     !important}", spec 0,3,0) out-specifies the design's 26px
     margin-bottom, so the CARDS start flush under the chips at every width.
   - .section-head's 26px margin-bottom rides the COLUMN there; Divi's own
     responsive stylesheet zeroes stacked-column margins below 980px, so the
     CHIPS sit flush under the heading on phones (desktop kept 26).
   Fix: carry the stack rhythm as PADDING on the design-classed element —
   neither reset fights padding at this specificity, and padding never
   margin-collapses — fluid via clamp() like the gutter/fluid-type system.
   /episodes/ has .filter-row as a column (heading+chips share it): same
   rule gives the archive the same chips->grid seam, consistent. */
body .et_pb_section .section-head{margin-bottom:0!important;padding-bottom:clamp(20px,2.9vw,32px)}
body .et_pb_section .filter-row{margin-bottom:0!important;padding-bottom:clamp(22px,3.2vw,36px)}
/* hub section top: 52px baseline -> 64px desktop, fluid down to phones
   (beats the <=640 body .section clamp at 0,3,1 via :has() specificity) */
body .et_pb_section.section:has(.rundown-grid-row){padding-top:clamp(30px,5vw,64px)}

/* ===== HOMEPAGE HERO THEME — auto light/dark (UTALK-32, 2026-08-30, Vela;
   reworked UTALK-46, 2026-08-31, Vela for the Theme Builder GLOBAL HEADER) ===
   Approved handoff "Hero Background Options": 2c (day, deep green) = DEFAULT +
   prefers-color-scheme:light; 2a (night, near-black + orange glow) overrides
   inside @media (prefers-color-scheme: dark). Pure CSS — no JS, both themes
   ship so there is no flash of wrong theme.

   UTALK-46 structure: the header now renders from the ONE Theme Builder
   Menu layout — Divi's header slot (header.et-l--header) — a SIBLING band above the
   .home-hero section — no longer inside it. To keep the hero gradient one
   continuous surface behind header + hero:
   - the home page's TB header band goes transparent (body.home scope) and
     sits at z-index:2 (above the gradient), while
   - .home-hero paints the gradient on an ::before that extends UP by
     --utalk-header-h (the header band's rendered height) behind the header.
   If the header's height ever changes (padding/logo size), update
   --utalk-header-h below — a too-small value shows a white strip at the very
   top of the home page; too-large only stretches the gradient slightly.
   ticker-below-hero (2026-09-07, Vela, UTALK-77): the ticker band moved OUT
   of the header again — it now sits BELOW each page's hero (rendered by
   utalk_ticker_band(), utalk-ticker.php), and the TB layout #767 (now titled
   "Menu") is back to the menu band alone — so the values below return to the
   pre-ticker measurements (78 / 133 / 110 measured headless at 1280/768/360
   + the original slack). UTALK-80 (2026-09-07, Vela): the menu band stays WRAPPED (133.4px measured) all the way up to 1179px — unwrap lands between 1150 and 1180 headless — so the 141px tier now covers max-width:1179px, not 900px (86px tier was 47px short there = white strip). The 640px tier rises 119px->180px: with fonts display=optional (UTALK-96) first visits keep FALLBACK metrics, and the fallback-font header wraps taller at 360-520px (173.0px max measured, fonts blocked) — 180 covers both states; over-cover only stretches the gradient (benign, per note above).
   Header re-theme rules are scoped body.home .et-l--header (the header left
   .home-hero, so the old .home-hero .header selectors can't reach it). */

:root{--utalk-header-h:86px}
@media (max-width:1179px){:root{--utalk-header-h:141px}}
@media (max-width:640px){:root{--utalk-header-h:180px}}

/* ---- global-header band on the home page: transparent window onto the
       hero gradient, above it in paint order ---------------------------- */
body.home .et-l--header{z-index:2}
body.home .et-l--header .et_pb_section.dark-band{background:transparent}

/* ---- LIGHT / DAY (2c) — default --------------------------------------- */
body .home-hero{position:relative;background:transparent}
body .home-hero::before{content:"";position:absolute;left:0;right:0;bottom:0;
  top:calc(-1 * var(--utalk-header-h));z-index:-1;background:
  radial-gradient(1000px 600px at 75% 34%,rgba(52,130,86,.45),rgba(52,130,86,0) 60%),
  radial-gradient(900px 520px at 6% 112%,rgba(234,90,30,.20),rgba(234,90,30,0) 55%),
  linear-gradient(160deg,#17452F 0%,#103425 55%,#0C281C 100%)}
body.home .et-l--header .header{border-bottom-color:rgba(255,255,255,.10)}
body.home .et-l--header .nav a{color:#D3DDD4}
body.home .et-l--header .nav a.active{color:#F4A261}
body .home-hero .eyebrow{color:#F4A261}
body.home .et-l--header .wordmark .accent{color:#F4A261}
body.home .et-l--header .logo-img{box-shadow:0 0 0 1px rgba(255,255,255,.2)}
body.home .et-l--header .live-pill:not(.is-live){background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}
body .home-hero .hero-lede{color:#B8C6BA}
body .home-hero .btn-outline-dark{border-color:rgba(255,255,255,.4);color:#fff}
body .home-hero .btn-outline-dark:not(.has-ico){border-color:rgba(255,255,255,.28)}
body .home-hero .video-card{box-shadow:0 0 80px rgba(20,60,40,.60),0 24px 60px rgba(0,0,0,.45)}
body .home-hero .video-caption .date{color:#93A695}

/* ---- DARK / NIGHT (2a) ------------------------------------------------- */
@media (prefers-color-scheme: dark){
body .home-hero::before{background:
  radial-gradient(1100px 660px at 78% 36%,rgba(234,90,30,.40),rgba(234,90,30,0) 60%),
  radial-gradient(900px 380px at 30% -12%,rgba(244,241,234,.09),rgba(244,241,234,0) 60%),
  radial-gradient(700px 460px at 4% 112%,rgba(29,77,51,.30),rgba(29,77,51,0) 60%) #110E0A}
body.home .et-l--header .header{border-bottom-color:rgba(255,255,255,.08)}
body.home .et-l--header .nav a{color:#D8D2C8}
body.home .et-l--header .nav a.active{color:var(--gcid-accent-2)}
body .home-hero .eyebrow{color:var(--gcid-accent-2)}
body.home .et-l--header .wordmark .accent{color:var(--gcid-accent-2)}
body.home .et-l--header .logo-img{box-shadow:none}
body.home .et-l--header .live-pill:not(.is-live){background:#1D4D33;border-color:#1D4D33}
body .home-hero .hero-lede{color:#C0B9AE}
body .home-hero .btn-orange{box-shadow:0 0 28px rgba(234,90,30,.45)}
body .home-hero .btn-outline-dark{border-color:rgba(255,255,255,.35);color:#fff}
body .home-hero .btn-outline-dark:not(.has-ico){border-color:rgba(255,255,255,.2)}
body .home-hero .video-card{box-shadow:0 0 120px rgba(234,90,30,.50),0 24px 60px rgba(0,0,0,.55)}
body .home-hero .video-caption .date{color:#8A8378}
}

/* ---- Stacked layout (<=900px): recenter the thumbnail glow ------------- */
@media (max-width:900px){
body .home-hero::before{background:
  radial-gradient(1000px 600px at 50% 55%,rgba(52,130,86,.45),rgba(52,130,86,0) 60%),
  radial-gradient(900px 520px at 6% 112%,rgba(234,90,30,.20),rgba(234,90,30,0) 55%),
  linear-gradient(160deg,#17452F 0%,#103425 55%,#0C281C 100%)}
}
@media (max-width:900px) and (prefers-color-scheme: dark){
body .home-hero::before{background:
  radial-gradient(1100px 660px at 50% 55%,rgba(234,90,30,.40),rgba(234,90,30,0) 60%),
  radial-gradient(900px 380px at 30% -12%,rgba(244,241,234,.09),rgba(244,241,234,0) 60%),
  radial-gradient(700px 460px at 4% 112%,rgba(29,77,51,.30),rgba(29,77,51,0) 60%) #110E0A}
}

/* ---- Hero LIVE badge (UTALK-22, 2026-09-01, Vela) — overlays .video-thumb
   when the channel is broadcasting live. --gcid-live is a single fixed red
   (not a light/dark pair), so no extra media-query variants are needed —
   it reads on both the day (deep green) and night (near-black) hero gradient
   above without touching that gradient's own rules. */
body .home-hero .hero-live-badge{position:absolute;top:12px;left:12px;z-index:2;
  display:flex;align-items:center;gap:7px;background:var(--gcid-live);color:#fff;
  font-weight:800;font-size:12px;letter-spacing:.08em;padding:6px 12px;
  border-radius:var(--gvid-radius-pill);box-shadow:0 4px 14px rgba(0,0,0,.35);
  pointer-events:none}
body .home-hero .hero-live-badge .live-dot{width:7px;height:7px;border-radius:50%;
  background:#fff;animation:utalkLivePulse 1.6s ease-in-out infinite}
@keyframes utalkLivePulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion: reduce){
  body .home-hero .hero-live-badge .live-dot{animation:none}
}

/* --- single product v2 (UTALK-18, Vela 2026-08-31) ---------------------------
   Woo's legacy layout CSS floats div.images/div.summary at 48% INSIDE our grid
   columns -> quarter-width page. Neutralize the floats, then dress the
   variations form (size select, variation price, qty+CTA row), gallery thumbs,
   and the pre-selection disabled CTA. */
body .wc-product div.product div.images,body .wc-product div.product div.summary{width:100%;float:none;margin:0}
body .wc-product .utalk-product .product{gap:36px var(--gvid-space-hero-gap)}
body .wc-product .woocommerce-product-gallery .flex-viewport{background:var(--gcid-fill-product)}
body .wc-product .woocommerce-product-gallery img{width:100%;height:auto;display:block}
body .wc-product .flex-control-thumbs{list-style:none;display:flex;gap:10px;margin:0;padding:12px}
body .wc-product .flex-control-thumbs li{margin:0;width:84px}
body .wc-product .flex-control-thumbs img{border:2px solid transparent;border-radius:var(--gvid-radius-media);cursor:pointer;opacity:.55;transition:opacity .15s}
body .wc-product .flex-control-thumbs img.flex-active,body .wc-product .flex-control-thumbs img:hover{opacity:1;border-color:var(--gcid-accent-2)}
body .wc-product form.cart.variations_form{display:block}
body .wc-product table.variations{width:100%;border-collapse:collapse;margin:0 0 4px}
body .wc-product table.variations th.label{text-align:left;padding:4px 14px 10px 0;font-size:var(--gvid-text-eyebrow);font-weight:800;letter-spacing:var(--gvid-tracking-eyebrow-sm);text-transform:uppercase;color:var(--gcid-text-muted);vertical-align:middle;white-space:nowrap}
body .wc-product table.variations td.value{padding:0 0 10px;width:100%}
body .wc-product table.variations select{width:100%;max-width:320px;padding:12px 14px;border:1.5px solid var(--gcid-border-chip);border-radius:var(--gvid-radius-input);font-size:var(--gvid-text-ui-lg);font-family:var(--gvid-font-body),system-ui,sans-serif;background:var(--gcid-bg-surface);color:var(--gcid-text-primary)}
body .wc-product table.variations select:focus-visible{outline:3px solid var(--gcid-accent-2);outline-offset:2px}
body .wc-product .reset_variations{display:inline-block;margin-top:6px;color:var(--gcid-text-muted);font-size:var(--gvid-text-caption);font-weight:700;text-decoration:underline}
body .wc-product .woocommerce-variation{margin:0 0 12px;min-height:0}
body .wc-product .woocommerce-variation-price .price{color:var(--gcid-accent-1);font-weight:800;font-size:22px;font-family:var(--gvid-font-body),system-ui,sans-serif}
body .wc-product .woocommerce-variation-availability p{margin:4px 0 0;color:var(--gcid-text-muted);font-size:var(--gvid-text-caption-lg)}
body .wc-product .woocommerce-variation-add-to-cart{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
body .wc-product .single_add_to_cart_button.disabled,body .wc-product .single_add_to_cart_button:disabled{opacity:.45;cursor:not-allowed}
body .wc-product .single_add_to_cart_button:focus-visible{outline:3px solid var(--gcid-accent-1);outline-offset:2px}
body .wc-product .wc-lineup-band-head{margin-bottom:var(--gvid-space-head-gap)}
@media (max-width:640px){
  body .wc-product table.variations select{max-width:none}
  body .wc-product .woocommerce-variation-add-to-cart .single_add_to_cart_button{flex:1}
}
/* Woo 11 wraps gallery+summary in div.clearfix — promote its children into the
   .product grid so the 2-col layout actually applies (UTALK-18) */
body .wc-product .utalk-product .product>.clearfix{display:contents}
/* variation price: outgun Divi woo accent (.woocommerce div.product span.price) */
body .wc-product .woocommerce-variation-price span.price,body .wc-product .woocommerce-variation-price span.price .amount{color:var(--gcid-accent-1)}

/* ============================================================
   UTALK-45 — Rundown hub masthead (branded hub header, Vela 2026-08-31)
   Title lockup (accent dot) + one-line description + vertical index
   panel filling the hero's right column. Every value rides the Divi 5
   Design Variables (single source) — no hardcoded hexes. */
/* a11y: .email-input base sets outline:none which also killed the FOCUS ring (equal specificity,
   later in file). Restore a visible ring on keyboard focus - fixes every signup form sitewide. */
body .email-input:focus-visible{outline:2px solid var(--gcid-accent-2);outline-offset:2px}
body .rundown-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--gvid-space-hero-gap);align-items:center;padding:48px 0 56px}
body .anton .accent-dot{color:var(--gcid-accent-2)}
body .rundown-index{border:1px solid var(--gcid-border-emphasis);border-radius:var(--gvid-radius-card);background:var(--gcid-fill-dark);padding:20px 26px 8px}
body .rundown-index .idx-head{font-size:var(--gvid-text-eyebrow-sm);font-weight:800;letter-spacing:var(--gvid-tracking-eyebrow-sm);color:var(--gcid-text-muted-inverse);border-bottom:1px solid var(--gcid-border-rule);padding-bottom:12px}
body .rundown-index ol{list-style:none;margin:0;padding:0}
body .rundown-index li{display:grid;grid-template-columns:34px 1fr;column-gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--gcid-border-rule)}
body .rundown-index li:last-child{border-bottom:0}
body .rundown-index .idx-num{color:var(--gcid-accent-2);font-weight:800;font-size:var(--gvid-text-caption)}
body .rundown-index .idx-label{font-family:var(--gvid-font-display),sans-serif;font-size:var(--gvid-text-h3-sm);letter-spacing:.03em;color:var(--gcid-text-inverse)}
body .rundown-index .idx-sub{grid-column:2;color:var(--gcid-text-muted-inverse);font-size:var(--gvid-text-caption);line-height:1.4}
@media (max-width:900px){body .rundown-hero{grid-template-columns:1fr;padding:40px 0 44px}}
@media (max-width:640px){body .rundown-hero{padding:32px 0 36px}body .rundown-index{padding:16px 20px 4px}body .rundown-index .idx-label{font-size:var(--gvid-text-ui-lg)}}
/* UTALK-43: single recap article featured-image hero (fill-if-empty; own-YT-thumb or generated brand card). */
body .rundown-article-hero{margin:0 0 28px;border-radius:var(--gvid-radius-card);overflow:hidden;border:1px solid var(--gcid-border-subtle);background:var(--gcid-fill-placeholder)}
body .rundown-article-hero-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
@media (max-width:640px){body .rundown-article-hero{margin:0 0 20px;border-radius:var(--gvid-radius-card-sm)}}

/* ============================================================
   UTALK-56 — pill-chip filter options (M-AUTHORIZED CUSTOM CSS, 2026-09-01).
   Native Divi 5.11.1 Post Filter radio lists render vertical full-width rows
   with radio glyphs, no design group and no checked-state option — M authorized
   this isolated block so the Episodes Show/Topic filters render as filled
   wrapping pill chips matching the home "THE LATEST" .chip look. Selectors
   mirror Divi's own (.et_pb_post_filter ...>...) to out-specify stock rules.
   REVERT: delete this block down to END UTALK-56 (page 5 filter items back to
   type:select completes the full revert). Tokens only — light+dark via vars. */
body .et_pb_post_filter .et_pb_post_filter__item-options-list{display:flex;flex-wrap:wrap;gap:10px}
body .et_pb_post_filter .et_pb_post_filter__item-options-list>.et_pb_post_filter__item-option--radio{display:inline-flex;width:auto;margin:0}
body .et_pb_post_filter .et_pb_post_filter__item-options-list>.et_pb_post_filter__item-option--radio>label{flex:0 0 auto;min-width:0;display:inline-block;border:1.5px solid var(--gcid-border-chip);border-radius:var(--gvid-radius-pill);padding:8px 16px;font-weight:700;font-size:var(--gvid-text-caption);color:var(--gcid-text-muted);cursor:pointer;margin:0;transition:border-color .15s,background .15s}
body .et_pb_post_filter .et_pb_post_filter__item-control[type=radio]+label i{display:none}
body .et_pb_post_filter .et_pb_post_filter__item-options-list>.et_pb_post_filter__item-option--radio>label:hover{border-color:var(--gcid-accent-1)}
body .et_pb_post_filter .et_pb_post_filter__item-control-radio[type=radio]{display:inline-block;position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
body .et_pb_post_filter .et_pb_post_filter__item-control-radio:checked+label{background:var(--gcid-accent-1);border-color:var(--gcid-accent-1);color:var(--gcid-text-on-accent)}
body .et_pb_post_filter .et_pb_post_filter__item-control-radio:focus-visible+label{outline:2px solid var(--gcid-accent-2);outline-offset:2px}
/* END UTALK-56 pill-chip block */

/* ===== SITE-WIDE NIGHT/DAY HERO STANDARD (UTALK-63, 2026-09-01, Vela) =====
   M: HOME (+ EPISODES) = the reference standard; every other page's hero band
   was a FLAT PLAIN BLACK .dark-band that never responded to the OS scheme.
   This block promotes the approved HOMEPAGE hero treatment (UTALK-32 handoff
   "Hero Background Options": 2c day deep-green DEFAULT, 2a night near-black +
   orange glow inside @media prefers-color-scheme:dark) to a GENERIC .hero-band
   class. Pages/templates opt in by carrying `hero-band` on their first
   (hero) section — set natively in the Divi builder's CSS Class field, same
   mechanism as the existing dark-band/section classes. The home page keeps
   its own body.home/.home-hero rules above, untouched.
   Structure mirrors UTALK-46: the TB Menu band goes transparent and the
   hero paints one continuous gradient surface on an ::before extended UP by
   --utalk-header-h behind it. Header re-theme is scoped with :has() (already
   used elsewhere in this sheet) so it only fires on pages that opted in. */

/* ---- header band becomes a transparent window onto the hero gradient ---- */
body:has(.hero-band) .et-l--header{z-index:2}
body:has(.hero-band) .et-l--header .et_pb_section.dark-band{background:transparent}

/* ---- LIGHT / DAY (2c) — default ---------------------------------------- */
body .hero-band,body .discord-band{position:relative;background:transparent}
body .hero-band::before,body .discord-band::before{content:"";position:absolute;left:0;right:0;bottom:0;
  top:calc(-1 * var(--utalk-header-h));z-index:-1;background:
  radial-gradient(1000px 600px at 75% 34%,rgba(52,130,86,.45),rgba(52,130,86,0) 60%),
  radial-gradient(900px 520px at 6% 112%,rgba(234,90,30,.20),rgba(234,90,30,0) 55%),
  linear-gradient(160deg,#17452F 0%,#103425 55%,#0C281C 100%)}
body:has(.hero-band) .et-l--header .header{border-bottom-color:rgba(255,255,255,.10)}
body:has(.hero-band) .et-l--header .nav a{color:#D3DDD4}
body:has(.hero-band) .et-l--header .nav a.active{color:#F4A261}
body:has(.hero-band) .et-l--header .wordmark .accent{color:#F4A261}
body:has(.hero-band) .et-l--header .logo-img{box-shadow:0 0 0 1px rgba(255,255,255,.2)}
body:has(.hero-band) .et-l--header .live-pill:not(.is-live){background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}
body .hero-band .eyebrow,body .discord-band .eyebrow{color:#F4A261}
body .hero-band .hero-lede,body .hero-band .ep-lede,body .hero-band .community-lede,body .hero-band .lede-muted,body .discord-band .discord-lede{color:#B8C6BA}
body .hero-band .btn-outline-dark{border-color:rgba(255,255,255,.4);color:#fff}
body .hero-band .btn-outline-dark:not(.has-ico){border-color:rgba(255,255,255,.28)}
body .hero-band .video-card{box-shadow:0 0 80px rgba(20,60,40,.60),0 24px 60px rgba(0,0,0,.45)}
body .hero-band .video-caption .date{color:#93A695}

/* ---- DARK / NIGHT (2a) -------------------------------------------------- */
@media (prefers-color-scheme: dark){
body .hero-band::before,body .discord-band::before{background:
  radial-gradient(1100px 660px at 78% 36%,rgba(234,90,30,.40),rgba(234,90,30,0) 60%),
  radial-gradient(900px 380px at 30% -12%,rgba(244,241,234,.09),rgba(244,241,234,0) 60%),
  radial-gradient(700px 460px at 4% 112%,rgba(29,77,51,.30),rgba(29,77,51,0) 60%) #110E0A}
body:has(.hero-band) .et-l--header .header{border-bottom-color:rgba(255,255,255,.08)}
body:has(.hero-band) .et-l--header .nav a{color:#D8D2C8}
body:has(.hero-band) .et-l--header .nav a.active{color:var(--gcid-accent-2)}
body:has(.hero-band) .et-l--header .wordmark .accent{color:var(--gcid-accent-2)}
body:has(.hero-band) .et-l--header .logo-img{box-shadow:none}
body:has(.hero-band) .et-l--header .live-pill:not(.is-live){background:#1D4D33;border-color:#1D4D33}
body .hero-band .eyebrow,body .discord-band .eyebrow{color:var(--gcid-accent-2)}
body .hero-band .hero-lede,body .hero-band .ep-lede,body .hero-band .community-lede,body .hero-band .lede-muted,body .discord-band .discord-lede{color:#C0B9AE}
body .hero-band .btn-orange{box-shadow:0 0 28px rgba(234,90,30,.45)}
body .hero-band .btn-outline-dark{border-color:rgba(255,255,255,.35);color:#fff}
body .hero-band .btn-outline-dark:not(.has-ico){border-color:rgba(255,255,255,.2)}
body .hero-band .video-card{box-shadow:0 0 120px rgba(234,90,30,.50),0 24px 60px rgba(0,0,0,.55)}
body .hero-band .video-caption .date{color:#8A8378}
}

/* UTALK-111c (2026-09-27, Vela): the Discord band (.discord-band, Community page)
   shares the hero surfaces above (light 2c / dark 2a) so it always matches the
   header; its ::before is clipped to its own box — no --utalk-header-h extension. */
body .discord-band::before{top:0}
/* ---- Stacked layout (<=900px): recenter the glow, mirror home ----------- */
@media (max-width:900px){
body .hero-band::before,body .discord-band::before{background:
  radial-gradient(1000px 600px at 50% 55%,rgba(52,130,86,.45),rgba(52,130,86,0) 60%),
  radial-gradient(900px 520px at 6% 112%,rgba(234,90,30,.20),rgba(234,90,30,0) 55%),
  linear-gradient(160deg,#17452F 0%,#103425 55%,#0C281C 100%)}
}
@media (max-width:900px) and (prefers-color-scheme: dark){
body .hero-band::before,body .discord-band::before{background:
  radial-gradient(1100px 660px at 50% 55%,rgba(234,90,30,.40),rgba(234,90,30,0) 60%),
  radial-gradient(900px 380px at 30% -12%,rgba(244,241,234,.09),rgba(244,241,234,0) 60%),
  radial-gradient(700px 460px at 4% 112%,rgba(29,77,51,.30),rgba(29,77,51,0) 60%) #110E0A}
}

/* ===== TB-template pages: kill Divi's #main-content WHITE (UTALK-63) =====
   Theme Builder-rendered singles (Rundown articles/episode posts, product,
   404, crew) sit inside Divi's #main-content, which Divi paints #fff — so
   those pages rendered stark WHITE instead of the standard cream
   --gcid-bg-light the body (and every reference page) uses. Let the body
   surface through. */
body #main-content{background-color:transparent}

/* UTALK-63 a11y: .link-green (accent-1 deep green) is unreadable on the day-green hero
   gradient — inside a hero band, links take the hero accent orange instead (matches the
   eyebrow); night keeps the same accent via the Design Variable. */
body .hero-band .link-green{color:#F4A261}
@media (prefers-color-scheme: dark){body .hero-band .link-green{color:var(--gcid-accent-2)}}

/* ===== UTALK-63 mop-up (2026-09-02, Vela): WooCommerce product tabs =====
   The earlier .wc-product tab rules (above) lose to WooCommerce core's
   .woocommerce div.product .woocommerce-tabs selectors (higher specificity),
   so the tab strip still rendered near-default (gray boxes, full-width
   hairline, curved ::before/::after corner pseudos). Re-state the standard
   chip/pill + surface-card treatment at winning specificity
   (body.single-product #page-container ... — Divi theme rules carry the #page-container
   ID, so the override needs it too) and neutralize Woo/Divi decorations (gray ul
   background, wrapper box border). The anchor props carry !important ONLY because
   Divi's generated per-page CSS (et-divi-dynamic-tb-*.css) sets padding/color on
   these anchors with !important — a non-important rule can never win that; same
   precedent as the woo-notice !important overrides above. Tokens only — behaves identically day/night like every other
   content card. */
body.single-product #page-container .wc-product .woocommerce-tabs{border:none;background:transparent;padding:0}
body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;overflow:visible;background:transparent;border:none;border-radius:0}
body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs::before,body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs::after,body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li::before,body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li::after,body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li a::before,body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li a::after{display:none;content:none}
body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li{float:none;margin:0;padding:0;background:none!important;border:none!important;border-radius:0;box-shadow:none;display:block}
body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li a{display:inline-block;background:transparent!important;border:1.5px solid var(--gcid-border-chip)!important;border-radius:var(--gvid-radius-pill);padding:9px 18px!important;font-weight:700!important;font-size:var(--gvid-text-caption-lg)!important;color:var(--gcid-text-muted)!important;text-shadow:none}
body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li a:hover{color:var(--gcid-text-primary)!important;border-color:var(--gcid-text-primary)!important;opacity:1}
body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li.active{background:none;border:none}
body.single-product #page-container .wc-product .woocommerce-tabs ul.tabs li.active a{background:var(--gcid-accent-1)!important;border-color:var(--gcid-accent-1)!important;color:var(--gcid-text-on-accent)!important}
body.single-product #page-container .wc-product .woocommerce-tabs .panel{background:var(--gcid-bg-surface);border:1px solid var(--gcid-border-subtle);border-radius:var(--gvid-radius-card);padding:22px 26px;margin:14px 0 0;font-size:var(--gvid-text-ui-lg);line-height:1.6;box-shadow:none}
body.single-product #page-container .wc-product .woocommerce-tabs .panel h2{font-family:var(--gvid-font-display),sans-serif;font-weight:400;font-size:22px;letter-spacing:.02em;margin:0 0 10px;color:var(--gcid-text-primary)}
@media (max-width:640px){body.single-product #page-container .wc-product .woocommerce-tabs .panel{padding:18px 16px}}

/* Rundown native-loop filter (Vela 2026-09-02, UTALK-63): anchor chips use aria-current;
   loop card eyebrow ~ shortcode-card treatment; native no-results styled as designed empty state */
body a.chip{color:var(--gcid-text-muted);text-decoration:none}
body .chip[aria-current="true"]{background:var(--gcid-accent-1);color:var(--gcid-text-on-accent);border-color:var(--gcid-accent-1)}
body .rundown-grid-row .card-eyebrow{text-transform:uppercase}
body .cards-grid .card .entry{padding:32px 24px;text-align:center;color:var(--gcid-text-muted)}
body .cards-grid .card .entry .not-found-title{font-size:var(--gvid-text-h3-sm);margin:0 0 8px;letter-spacing:.02em}
body .cards-grid .card .entry p{margin:0;font-size:var(--gvid-text-ui-lg)}
body .cards-grid .card:has(.entry){grid-column:1/-1;border-style:dashed;box-shadow:none;background:var(--gcid-bg-surface)}
body .archive-more .et_pb_posts_nav{display:flex;gap:14px;justify-content:center}
body .archive-more .et_pb_posts_nav a{border:1.5px solid var(--gcid-text-primary);border-radius:var(--gvid-radius-pill);padding:12px 26px;font-weight:700;font-size:var(--gvid-text-ui);color:var(--gcid-text-primary);text-decoration:none}
body .archive-more .et_pb_posts_nav.et_pb_posts_nav a{color:var(--gcid-text-primary)}
body .archive-more .et_pb_posts_nav{--gcid-primary-color:var(--gcid-text-primary)}

/* ===== Event-single hero photo (ticker-global branch, 2026-09-07, Vela) =====
   utalk-events.php renders the event's FEATURED IMAGE (when set) as a banner
   at the top of the .dark-band hero on /events/ singles; events without one
   keep the text-only hero unchanged. Tokens only — no hardcoded values. */
body .event-hero-photo{padding-top:36px}
body .event-hero-photo img{display:block;width:100%;height:auto;max-height:440px;object-fit:cover;object-position:center 30%;border-radius:var(--gvid-radius-card-lg);border:1px solid var(--gcid-border-emphasis)}
@media (max-width:640px){body .event-hero-photo{padding-top:20px}body .event-hero-photo img{max-height:260px}}

/* ===== Merch drops Phase 1 (UTALK-89, 2026-09-07, Vela) =====
   Scarcity chrome + notify affordance on THE LINEUP cards (utalk-shop.php).
   Tokens only — extends the existing shop skin, no new palette values.
   - .product-flag over the card media: X LEFT (orange urgency) / SOLD OUT (dark)
   - .drop-countdown in the tease CTA slot (tabular digits, script.js ticks it)
   - .product-notify -> #drop-signup (the [utalk_signup source=merch-drops] block) */
body .product-flag{position:absolute;top:10px;left:10px;z-index:1;font-size:var(--gvid-text-eyebrow-sm);font-weight:800;letter-spacing:.1em;padding:5px 10px;border-radius:var(--gvid-radius-badge)}
body .product-flag--low{background:var(--gcid-accent-2);color:var(--gcid-text-on-accent)}
body .product-flag--out{background:var(--gcid-overlay-badge);color:var(--gcid-text-on-accent)}
body .product-card.is-soldout .product-img img,body .product-card.is-soldout .img-placeholder{opacity:.55;filter:grayscale(.4)}
body .product-cta--tease{display:flex;align-items:center;justify-content:space-between;gap:6px 10px;flex-wrap:wrap}
body .drop-countdown{font-variant-numeric:tabular-nums;color:var(--gcid-text-meta);font-size:var(--gvid-text-caption);font-weight:800;letter-spacing:.06em}
body .drop-countdown.is-live{color:var(--gcid-accent-1)}
body .product-notify{color:var(--gcid-accent-1);font-weight:800;font-size:var(--gvid-text-caption);letter-spacing:.06em;white-space:nowrap}
body .product-notify:focus-visible{outline:3px solid var(--gcid-accent-2);outline-offset:2px;border-radius:var(--gvid-radius-badge)}
body #drop-signup{scroll-margin-top:calc(var(--utalk-header-h) + 16px)}
@media (max-width:640px){body .product-flag{top:7px;left:7px;font-size:9px;padding:4px 8px}body .drop-countdown,body .product-notify{font-size:clamp(10px,2.8vw,11px)}}

/* ===== Coming soon — full-viewport standalone shell (UTALK-98 redesign, Vela 2026-09-09) =====
   Page 1477 only (section class .utalk-coming-soon + body.page-id-1477 guards).
   Centered, max-width composition on a richer layered gradient. DATELESS by
   default: the go-live group (#utalk-cs-golive: "WE GO LIVE" + date line +
   segment-card countdown) ships hidden and is turned on by utalk-coming-soon.php
   when the single wp_option `utalk_golive_ts` is set (empty = generic coming soon).
   Light-orange #FFC08A is the small-text accent (4.8:1+ on the mid gradient —
   #F4A261 measures 3.8–4.4:1 there, under AA for sub-18px text). */
body .et_pb_section.utalk-coming-soon{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;padding:48px 0;text-align:center;overflow:hidden}
body .utalk-coming-soon::before{top:0;background:
  radial-gradient(1050px 620px at 50% -12%,rgba(52,130,86,.50),rgba(52,130,86,0) 62%),
  radial-gradient(860px 520px at 50% 116%,rgba(234,90,30,.26),rgba(234,90,30,0) 58%),
  radial-gradient(1500px 1000px at 50% 46%,rgba(0,0,0,0) 52%,rgba(5,14,10,.60) 100%),
  linear-gradient(168deg,#17452F 0%,#0F3323 52%,#0A2418 100%)}
body .utalk-coming-soon .utalk-cs-row{width:100%;max-width:760px;margin:0 auto}
body .utalk-coming-soon .utalk-cs-logo{width:136px}
body .utalk-coming-soon .utalk-cs-logo img{border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.50),0 0 0 1px rgba(255,255,255,.10)}
body .utalk-coming-soon .utalk-cs-eyebrow{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 0 16px;color:#FFC08A;font-size:13px;font-weight:700;letter-spacing:.32em}
body .utalk-coming-soon .utalk-cs-eyebrow::before,
body .utalk-coming-soon .utalk-cs-eyebrow::after{content:"";height:1px;width:64px;flex:0 0 auto}
body .utalk-coming-soon .utalk-cs-eyebrow::before{background:linear-gradient(90deg,rgba(255,192,138,0),rgba(255,192,138,.55))}
body .utalk-coming-soon .utalk-cs-eyebrow::after{background:linear-gradient(90deg,rgba(255,192,138,.55),rgba(255,192,138,0))}
body .utalk-coming-soon h1.utalk-cs-h1{margin:0 0 20px;font-size:clamp(42px,7.4vw,78px);line-height:.96;letter-spacing:.015em;color:var(--gcid-text-inverse);text-wrap:balance}
body .utalk-coming-soon .utalk-cs-h1 .accent-dot{color:var(--gcid-accent-2)}
body .utalk-coming-soon .utalk-cs-lede{max-width:46ch;margin:0 auto;font-size:clamp(15.5px,2.1vw,18px);line-height:1.7;color:#C6D2C8}
/* go-live group — dormant until utalk_golive_ts is set (see mu-plugin) */
body .utalk-coming-soon .utalk-cs-golive{margin-top:40px}
body .utalk-coming-soon .utalk-cs-golive-label{display:block;margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.26em;color:#FFC08A}
body .utalk-coming-soon .utalk-cs-golive-date{margin:0 0 18px;font-size:clamp(15px,2vw,17px);font-weight:700;letter-spacing:.02em;color:var(--gcid-text-inverse)}
body .utalk-cs-count{display:flex;justify-content:center;align-items:stretch;gap:clamp(8px,1.6vw,14px)}
body .utalk-cs-count .cs-seg{display:flex;flex-direction:column;gap:7px;min-width:clamp(64px,10vw,92px);padding:18px 8px 14px;background:rgba(7,17,12,.50);border:1px solid rgba(255,255,255,.10);border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 30px rgba(0,0,0,.25)}
body .utalk-cs-count .cs-num{font-family:var(--gvid-font-display),sans-serif;font-size:clamp(30px,5.4vw,46px);line-height:1;color:var(--gcid-text-inverse);font-variant-numeric:tabular-nums}
body .utalk-cs-count .cs-lab{font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#FFC08A}
body .utalk-cs-count .cs-sep{align-self:center;padding-bottom:14px;color:rgba(255,255,255,.30);font-size:clamp(18px,3vw,26px);font-weight:700;line-height:1}
/* signup */
body .utalk-coming-soon .utalk-cs-form-label{display:block;margin:44px 0 14px;font-size:12px;font-weight:700;letter-spacing:.26em;color:#FFC08A}
body .utalk-coming-soon .email-row{justify-content:center;max-width:500px;margin:0 auto}
body .utalk-coming-soon .utalk-cs-privacy{margin:16px auto 0;font-size:13px;color:#C6D2C8}
body .utalk-coming-soon .utalk-cs-privacy .link-green{font-size:13px}
/* leak guard: nothing but the coming-soon section may paint on this page */
body.page-id-1477 .ticker,body.page-id-1477 #main-footer,body.page-id-1477 .et-l--footer,body.page-id-1477 .et-l--header{display:none}
body.page-id-1477 #page-container,body.page-id-1477 #main-content{background:#0A2418}
/* motion-safe entrance only */
@media (prefers-reduced-motion:no-preference){
  body .utalk-coming-soon .utalk-cs-row{animation:utalkCsIn .7s cubic-bezier(.2,.7,.3,1) both}
}
@keyframes utalkCsIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (max-width:640px){
  body .et_pb_section.utalk-coming-soon{padding:36px 0}
  body .utalk-coming-soon .utalk-cs-logo{width:108px}
  body .utalk-coming-soon .utalk-cs-eyebrow{gap:12px;letter-spacing:.22em}
  body .utalk-coming-soon .utalk-cs-eyebrow::before,
  body .utalk-coming-soon .utalk-cs-eyebrow::after{width:36px}
  body .utalk-coming-soon .utalk-cs-form-label{margin-top:36px}
  body .utalk-cs-count .cs-sep{display:none}
}

/* v76: center The Rundown Take block on episode pages (heading+body); episode pages are excluded from the .et_pb_column fit-content centering at line ~455, so the recap measure hugged left. UTALK, 2026-09-25 */
body .ep-recap-take{max-width:var(--gvid-size-container-narrow);margin-left:auto;margin-right:auto}

/* ===== v78: hero autoplay "Tap for sound" pill (UTALK-115, 2026-09-30, Vela) =====
   The home hero auto-swaps to a MUTED YouTube iframe on load (section 9 of
   utalk-episodes.php); this pill sits bottom-left of the video, lifted above
   YouTube's own control bar so its mute/volume button stays reachable, and is
   removed on tap. Brand green + white via the UTALK-63 night/day variables
   (--gcid-accent-1 / --gcid-text-on-accent), orange focus ring like every other
   control. Real <button>, keyboard reachable. */
body .video-thumb .yt-sound-pill{position:absolute;left:12px;bottom:56px;z-index:2;
  display:inline-flex;align-items:center;gap:8px;background:var(--gcid-accent-1);
  color:var(--gcid-text-on-accent);border:0;border-radius:var(--gvid-radius-pill);
  padding:9px 16px;font-family:var(--gvid-font-body),system-ui,sans-serif;
  font-weight:800;font-size:12.5px;line-height:1;letter-spacing:.08em;
  text-transform:uppercase;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35);
  transition:transform .15s ease}
body .video-thumb .yt-sound-pill:hover{transform:translateY(-1px)}
body .video-thumb .yt-sound-pill:focus-visible{outline:2px solid var(--gcid-accent-2);outline-offset:2px}
body .video-thumb .yt-sound-pill .ico{font-size:14px;line-height:1}
@media (max-width:640px){
  body .video-thumb .yt-sound-pill{left:10px;bottom:48px;padding:8px 13px;font-size:12px}
}
@media (prefers-reduced-motion: reduce){
  body .video-thumb .yt-sound-pill{transition:none}
  body .video-thumb .yt-sound-pill:hover{transform:none}
}

/* ===== v79: home crew ring re-grid for 6 crew (UTALK-116, 2026-09-30, Vela) =====
   The native Divi 5 Loop (loop-crew) drops six .crew-fig items straight into the
   4_4 column carrying .crew-grid. M's call: 3 per row at desktop (two even rows),
   2 per row on tablet (<=1024), 1 per row on phones (<=480); portraits ~30% larger
   (170 -> 220px); captions centered under each ring; consistent gaps. CSS only —
   Loop + page 4 untouched. Overrides the base repeat(5,1fr) and the older
   <=900 (3) / <=640 (2) tiers above, and the utalk-divi-reset .crew-ring.et_pb_image
   size (hence the matching specificity). */
body .crew-grid{grid-template-columns:repeat(3,1fr);gap:40px 28px;justify-items:stretch;align-items:start;text-align:center}
body .crew-grid .crew-fig{width:100%;min-width:0}
body .crew-ring.et_pb_image,body .crew-grid .crew-ring{width:220px;height:220px;max-width:100%}
body .crew-grid .crew-cap{padding-top:14px;text-align:center}
@media (max-width:1024px){
  body .crew-grid{grid-template-columns:repeat(2,1fr);gap:36px 24px}
}
@media (max-width:480px){
  body .crew-grid{grid-template-columns:1fr;gap:32px}
}
