/* Podcast.ma v4 / The listening club. Shared public components, loaded last. */
:root { --studio-ink:#102b24; --studio-lime:#b9f56a; --studio-paper:#f2f7ec; --studio-muted:#b7cebc; }
body { background:var(--surface); color:var(--text-primary); }
h1,h2,h3,h4,.brand-text { font-family:var(--font-display); font-variation-settings:normal; }
::selection { background:#b9f56a; color:#102b24; }
:focus-visible { outline:3px solid var(--accent-text); outline-offset:4px; }
.container,.container-xl { max-inline-size:1360px; padding-inline:clamp(20px,4vw,56px); }
.main-content { padding-block-start:0; }
#page-content > .main-content { padding-block-start:32px; }
#page-content > .container { padding-block:32px 72px; }
.hero-v2::before,.hero-v2::after,.hero-v2 .aurora,.page-hero::after,.radio-hero::after,.section-header-v2::after,.footer-v2::before,.hero-h1 .gradient-text::after,.section-title::after { display:none; }
.hero-v2,.page-hero,.radio-hero,.footer-v2,.search-empty { background-image:none; }
.btn { border-radius:100px; text-transform:none; letter-spacing:0; min-block-size:44px; font-weight:700; padding:12px 22px; }
.btn-primary,.btn-primary:hover,.nav-submit-pill { background:var(--accent); color:var(--text-on-accent); background-image:none; box-shadow:none; }
.btn-ghost { border-color:var(--border-strong); background:var(--surface-raised); }
.btn:active,.score-promo-link:active { transform:scale(.97); }
.site-header,.site-header.scrolled { background:var(--surface-glass); border-block-end:1px solid var(--border); backdrop-filter:blur(18px); box-shadow:none !important; }
.navbar-v2 { block-size:76px; padding-inline:clamp(20px,3vw,40px); }
:root { --app-header-h:76px; --nav-h:76px; }
.navbar-brand .brand-text { font:850 1.35rem/1 var(--font-sans); letter-spacing:-.055em; }
.navbar-brand .brand-dot { color:var(--accent-text); }
.navbar-brand > svg { inline-size:32px; block-size:32px; }
.navbar-center .nav-link { border-radius:100px; font-size:.8rem; padding:9px 13px; }
.navbar-center .nav-link::after { display:none; }
.navbar-center .nav-link.active { background:var(--accent-soft); color:var(--accent-text); }
.navbar-end .nav-submit-pill { border-radius:100px; font-size:.75rem; letter-spacing:0; text-transform:none; padding:12px 17px; }
.lang-switcher { border-radius:100px; padding:4px; background:var(--surface-raised); border:1px solid var(--border); }
.lang-btn { border-radius:100px; min-inline-size:30px; }
.navbar-end .lang-btn--active { color:var(--text-on-accent); background:var(--accent); }
.btn-icon,.hamburger { border-radius:50%; }
/* A self-contained listening stage: evergreen in both colour themes. */
.hero-v2 { margin:24px clamp(12px,2vw,28px) 0; border:1px solid #2d4d3d; border-radius:32px; background:#102b24; color:#f2f7ec; padding:clamp(32px,5vw,64px) 0 24px !important; }
.hero-v2 .hero-split { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center; gap:36px; }
.hero-v2 .hero-text-col { padding:0; min-inline-size:0; }
.hero-v2 .hero-eyebrow { background:#213e2e; color:#c4ef9d; border:1px solid #3b5e42; border-radius:100px; box-shadow:none; padding:8px 14px; margin-block-end:24px; font-size:.66rem; letter-spacing:.12em; }
.hero-v2 .eyebrow-dot { background:#b9f56a; box-shadow:none; }
.hero-v2 .hero-h1 { font-size:clamp(2.8rem,4.5vw,5.6rem); line-height:1.02; font-weight:850; letter-spacing:-.045em; margin:0 0 24px; max-inline-size:12ch; animation:none; color:#f2f7ec; }
.hero-v2 .hero-h1 .gradient-text { background:none; -webkit-text-fill-color:#b9f56a; color:#b9f56a; }
.hero-v2 .hero-sub-v2 { font-size:1rem; line-height:1.8; border:0; padding:0; color:#c1d1c4; max-inline-size:43ch; margin-block-end:26px; animation:none; }
.hero-v2 .hero-search-v2 { max-inline-size:520px; margin-block-end:18px; animation:none; }
.hero-v2 #hero-search { background:#f2f7ec; border:2px solid transparent; color:#102b24; border-radius:100px; min-block-size:60px; padding-inline:48px 62px; font-size:.9rem; }
.hero-v2 #hero-search::placeholder { color:#4d6856; }
.hero-v2 .hero-search-v2 svg { color:#4d6856; }
.hero-v2 .discovery-search-submit { border:0; border-radius:50%; background:#b9f56a; color:#102b24; inline-size:46px;block-size:46px;inset-block-start:7px;inset-inline-end:7px; }
.studio-hero-actions { display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-block:20px 28px; }
.hero-v2 .btn-primary { background:#b9f56a; color:#102b24; font-size:.85rem; }
.studio-text-link { color:#d3e7c8; font-weight:600;font-size:.85rem; }
.hero-v2 .hero-stats { border:0; padding:0; animation:none; overflow:visible; gap:0;justify-content:flex-start; }
.hero-v2 .hero-stat { padding-inline:20px; text-align:start; border-color:#365541; }
.hero-v2 .hero-stat:first-child { padding-inline-start:0; }
.hero-v2 .hero-stat-n { font:750 1.5rem/1.1 var(--font-sans); color:#f2f7ec; background:none; -webkit-text-fill-color:#f2f7ec; }
.hero-v2 .hero-stat-l { font-size:.58rem;color:#adbfad;letter-spacing:.08em; }
.hero-cats-strip { margin-block-start:36px; }
.hero-v2 .hero-cats-v2 { border-block-start:1px solid #34503d; padding-block-start:20px; gap:8px; }
.hero-v2 .cat-pill-v2 { color:#d4e3ce; border:1px solid #3a5844; border-radius:100px;background:transparent; text-transform:none;letter-spacing:0; font-size:.73rem; padding:9px 14px; }
.hero-v2 .cat-pill-v2:hover { background:#213e2e;border-color:#b9f56a;color:#b9f56a; }
.studio-soundstage { position:relative; isolation:isolate; min-inline-size:0;block-size:420px;display:grid;place-items:center; }
.soundstage-orbit { position:absolute;border:1px solid #476c4c;border-radius:50%;inline-size:92%;aspect-ratio:1;max-block-size:400px;opacity:.55;transform:rotate(-18deg) scaleY(.82); }
.soundstage-orbit--two { inline-size:72%;transform:rotate(30deg) scaleY(.85);border-style:dashed;opacity:.4; }
.soundstage-word { position:absolute;inset-block-start:12px;inset-inline-start:18px;font:900 clamp(3rem,6vw,6.5rem)/1 var(--font-sans);letter-spacing:-.08em;color:#b9f56a;opacity:.13;white-space:nowrap; }
.soundstage-disc { position:absolute;inline-size:280px;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#142b22 0px,#142b22 4px,#35523a 5px,#152c23 6px);transform:translateX(56px) rotate(-10deg);border:1px solid #547551; }
.soundstage-disc span { position:absolute;inset:35%;border-radius:50%;background:#b9f56a;box-shadow:inset 0 0 0 24px #b9f56a; }
.soundstage-disc span::after { content:'';position:absolute;inset:45%;border-radius:50%;background:#102b24; }
.soundstage-cover { display:block;position:relative;inline-size:230px;aspect-ratio:1;transform:rotate(-7deg) translateX(-24px);background:#1d4130;border:6px solid #f2f7ec;border-radius:18px;box-shadow:0 25px 60px #001c1280;overflow:hidden; }
.soundstage-cover img { inline-size:100%;block-size:100%;object-fit:cover; }
.soundstage-cover:focus-visible { outline:4px solid #b9f56a;outline-offset:7px; }
.soundstage-cover-caption { position:absolute;inset-inline:0;inset-block-end:0;background:linear-gradient(transparent,#081b16e6);color:#fff;padding:26px 12px 10px;font-size:.7rem;font-weight:600;line-height:1.4; }
.soundstage-placeholder { display:grid;place-items:center;color:#b9f56a; }
.soundstage-placeholder svg { inline-size:100px; }
.soundstage-wave { position:absolute;display:flex;align-items:center;justify-content:center;gap:5px;block-size:100px;inline-size:170px;inset-inline-end:5%;inset-block-end:36px;transform:rotate(-10deg); }
.soundstage-wave i { display:block;inline-size:5px;block-size:var(--wave-height);background:#b9f56a;border-radius:10px; }
.soundstage-chip { position:absolute;border:1px solid #526c49;border-radius:100px;background:#1c3d2c;color:#d9eccf;padding:12px 16px;font:600 .72rem/1.4 var(--font-sans);box-shadow:0 8px 25px #001c1233; }
.soundstage-chip--radio { inset-inline-start:0;inset-block-end:45px;background:#b9f56a;color:#102b24;border-color:#b9f56a;display:flex;gap:8px;align-items:center; }
.soundstage-chip--note { inset-inline-end:0;inset-block-start:65px;transform:rotate(5deg);max-inline-size:150px; }
.soundstage-live { inline-size:7px;block-size:7px;border-radius:50%;background:#235135; }
/* Measured content rhythm, artwork shelves and compact section titles. */
.page-sections-v2 { padding-block:36px 64px; }
.section-v2 { margin-block-end:52px; }
.section-header-v2 { align-items:center;gap:20px;margin-block-end:22px;padding:0;border:0; }
.section-title-v2,.section-title,.comments-title { font-size:clamp(1.35rem,2.2vw,2rem);letter-spacing:-.04em;line-height:1.2; }
.section-link-v2 { border:1px solid var(--border-strong);border-radius:100px;padding:8px 14px;font-size:.68rem;text-transform:none;letter-spacing:0;white-space:nowrap; }
.scroll-row { gap:18px;padding-block-end:14px;scroll-snap-type:x proximity; }
.podcast-card-v2,.podcast-card { border-radius:18px;background:var(--surface-raised);border:1px solid var(--border);overflow:hidden;box-shadow:none; }
.podcast-card-v2::after { display:none; }
.podcast-card-v2 .pc-img,.podcast-card-img { border-radius:12px;margin:8px 8px 0;aspect-ratio:1;overflow:hidden; }
.pc-img::before,.ec-bg::before { display:none; }
.pc-body,.podcast-card-body { padding:16px; }
.pc-title,.podcast-card-title { font:750 .95rem/1.4 var(--font-sans);letter-spacing:-.025em; }
.pc-author,.pc-count,.podcast-card-count { font-size:.72rem; }
.pc-count { color:var(--text-muted); }
.pc-play-btn,.pc-play-overlay .pc-play-btn { background:#b9f56a;color:#102b24;border:0;box-shadow:none;inline-size:48px;block-size:48px; }
.podcast-card-v2:focus-visible .pc-play-overlay { opacity:1; }
.podcasts-grid-full,.podcasts-grid { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px; }
.podcasts-grid-full .podcast-card-v2,.podcasts-grid .podcast-card { inline-size:auto;min-inline-size:0; }
.episode-card-v2 { border-radius:20px;border:1px solid var(--border);min-block-size:260px; }
.ec-overlay { background:linear-gradient(0deg,#06140ff5 4%,#06140f99 50%,transparent); }
.ec-title { font:750 1rem/1.4 var(--font-sans);letter-spacing:-.02em; }
.ec-play-btn { background:#b9f56a;color:#102b24;border:0;inline-size:42px;block-size:42px; }
.ec-podcast { color:#ccedaa;letter-spacing:.08em;font-size:.6rem; }
.ec-duration { border-radius:100px;background:#102b24e6;color:#f2f7ec; }
.categories-grid-v2 { grid-template-columns:repeat(4,minmax(0,1fr));gap:12px; }
.cat-tile { display:flex;flex-direction:row;justify-content:flex-start;gap:14px;padding:18px;text-align:start;border-radius:16px;background:var(--surface-raised);border:1px solid var(--border);min-block-size:82px; }
.cat-tile::before,.cat-tile::after { display:none; }
.cat-tile-icon { font-size:1.5rem;inline-size:42px;block-size:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft); }
.cat-tile-name { font:650 .82rem/1.4 var(--font-sans); }
.two-col-section { gap:32px; }
.sidebar-widget,.comments-section,.episode-sidebar-widget { border-radius:22px;border:1px solid var(--border);background:var(--surface-raised);padding:24px; }
.episode-list-item,.episode-list-row,.ep-row { border-radius:14px;border:1px solid var(--border);background:var(--surface-raised);padding:16px;gap:16px;margin-block-end:10px; }
.episode-rank { color:var(--accent-text);font:700 1rem var(--font-sans); }
.episode-list-img,.episode-list-thumb,.ep-img { border-radius:10px;overflow:hidden;flex-shrink:0; }
.episode-list-title,.episode-row-title { font-family:var(--font-sans);font-weight:650;letter-spacing:-.015em;line-height:1.5; }
.episode-list-play-btn,.inline-play-btn { background:var(--accent);color:var(--text-on-accent);border:0;inline-size:46px;block-size:46px;border-radius:50%; }
/* Shared inner-page feature headers. */
.page-hero,.category-header,.podcast-header,.radio-hero,.search-page-header,.sp-hero,.studio-page-head {
  border:1px solid var(--border);border-radius:28px;background:var(--surface-raised);background-image:none;
  padding:clamp(24px,4vw,48px);margin-block:12px 30px;box-shadow:none;
}
.page-hero-title,.category-header-title,.podcast-title,.radio-hero-title,.search-page-title,.sp-title,.studio-page-head h1 { font-size:clamp(2rem,4vw,3.8rem);font-weight:800;letter-spacing:-.055em;line-height:1.1; }
.page-hero-icon,.category-header-icon,.studio-page-icon { display:grid;place-items:center;inline-size:80px;block-size:80px;border-radius:22px;background:var(--accent-soft);font-size:2.5rem;flex-shrink:0; }
.page-hero-sub,.category-header-desc,.sp-desc { color:var(--text-secondary);max-inline-size:60ch;line-height:1.8; }
.filter-bar { display:flex;gap:8px;overflow:auto;margin-block:0 30px;padding:12px;background:var(--surface-raised);border:1px solid var(--border);border-radius:18px; }
.filter-pill,.cat-tag,.page-btn,.social-btn { border-radius:100px;letter-spacing:0;text-transform:none; }
.filter-pill { padding:10px 16px;border:1px solid var(--border);font-size:.76rem;flex-shrink:0; }
.filter-pill--active,.page-btn.active { background:var(--accent);color:var(--text-on-accent);border-color:var(--accent); }
.breadcrumb,.breadcrumb-nav { margin-block:4px 24px;font-size:.7rem;letter-spacing:0;text-transform:none;white-space:normal; }
.podcast-header { display:grid;grid-template-columns:240px minmax(0,1fr);align-items:center;gap:36px; }
.podcast-header-img { inline-size:240px;block-size:240px;border-radius:20px;overflow:hidden;transform:rotate(-3deg);box-shadow:0 14px 30px #001c1220; }
.podcast-desc { max-inline-size:64ch;line-height:1.8;font-size:.92rem; }
.podcast-social { gap:8px;flex-wrap:wrap; }
.social-btn { min-block-size:44px;font-size:.75rem;background:var(--surface);border:1px solid var(--border-strong); }
.episode-header { padding:24px;border-radius:24px;background:var(--surface-raised);border:1px solid var(--border);gap:24px; }
.episode-header-thumb { border-radius:16px;overflow:hidden; }
.episode-title { font-size:clamp(1.65rem,3vw,2.7rem);line-height:1.2;letter-spacing:-.045em; }
.episode-player-section { border-radius:24px;overflow:hidden;border:1px solid var(--border);background:var(--surface-raised); }
.episode-description { line-height:1.9;font-size:.95rem;max-inline-size:72ch; }
.episode-description h2,.episode-description h3 { margin-block:24px 12px; }
.yt-ctrl-bar { background:#102b24 !important; }
.yt-seek-fill { background:#b9f56a !important; }
.yt-vol-input { accent-color:#b9f56a; }
.inline-player { background:#102b24;border:1px solid #3b624e;color:#f2f7ec; }
.inline-player .inline-play-btn { background:#b9f56a;color:#102b24; }
.episode-list-play-btn:focus-visible,.inline-play-btn:focus-visible { outline-offset:4px; }
/* Broadcast rooms and radio discovery. */
.radio-page { padding-block:32px 64px; }
.radio-hero { margin-inline:clamp(20px,4vw,56px);padding-inline:0;overflow:hidden;position:relative;background:#102b24;border-color:#34533f; }
.radio-hero-title { color:#f2f7ec; }
.radio-hero-sub { color:#c1d1c4; }
.station-grid { grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.station-card { border:1px solid var(--border);border-radius:20px;background:var(--surface-raised);padding:22px;box-shadow:none; }
.station-card::before,.station-card::after { display:none; }
.sc-logo,.rmc-logo,.sp-logo,.rsc-logo { background:#fff;border:1px solid #dce6d4;border-radius:16px;overflow:hidden; }
.sc-name { font-size:1rem;font-weight:750; }
.sc-badge,.sp-badge-live,.rr-live-badge { background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--border-strong);border-radius:100px;font-size:.62rem; }
.sc-live-ring,.sp-live-ring { display:none; }
.radio-mini-card { border-radius:18px;border:1px solid var(--border);background:var(--surface-raised);padding:14px; }
.rmc-play { border-radius:50%;background:var(--accent);color:var(--text-on-accent);border:0;inline-size:38px;block-size:38px; }
.en-direct-strip { padding-block:32px; }
.radio-mini-row { gap:12px; }
.rmc-name { font-size:.82rem;font-weight:750; }
.rmc-genre { font-size:.65rem; }
.station-page-wrap { max-inline-size:1280px;margin-inline:auto;padding:32px clamp(20px,4vw,48px) 64px !important; }
.sp-hero { background:var(--surface-raised);border-radius:28px; }
.sp-player-card { background:#102b24 !important;border:1px solid #36543f !important;border-radius:24px !important;color:#f2f7ec; }
.sp-player-card .sp-player-label,.sp-player-card .sp-status,.sp-player-card .sp-vol-pct { color:#c2d8c5; }
.sp-play-btn { background:#b9f56a !important;color:#102b24 !important;box-shadow:none !important; }
.sp-chat-card,.rr-panel { background:var(--surface-raised);border:1px solid var(--border);border-radius:24px; }
.sp-messages,.rr-chat { background:var(--surface); }
.sp-send-btn,.rr-send-btn { background:var(--accent);color:var(--text-on-accent);border-radius:100px; }
.related-station-card { background:var(--surface-raised);border:1px solid var(--border);border-radius:18px; }
/* Search and useful empty states. */
.search-page-header { margin-block-start:8px; }
.search-page-title { margin-block-end:24px; }
.search-page-bar.discovery-search { max-inline-size:760px; }
.discovery-search input { border-radius:100px;min-block-size:56px;font-size:1rem; }
.discovery-search-submit { border-radius:50%;background:var(--accent);color:var(--text-on-accent); }
.search-result-count { display:inline-block;background:var(--accent-soft);border-radius:100px;padding:7px 14px;color:var(--text-secondary);font-size:.75rem;margin-block-start:16px; }
.search-result-item { border:1px solid var(--border);border-radius:16px;padding:18px;margin-block-end:10px;background:var(--surface-raised);gap:18px; }
.search-result-img { inline-size:64px;block-size:64px;border-radius:12px;object-fit:cover; }
.search-result-title { font-size:.95rem;font-weight:700;line-height:1.5; }
.search-empty,.empty-state { border:1px dashed var(--border-strong);border-radius:22px;padding:48px 24px;background:var(--surface-raised);text-align:center; }
mark { background:#d6f8ae;color:#163a28;border-radius:4px;padding-inline:2px; }
/* Utility pages: same system, readable content, explicit form rhythm. */
.studio-page { max-inline-size:1060px; }
.studio-page--form,.studio-page--contact { max-inline-size:960px; }
.studio-page-head h1 { margin-block:12px 18px; }
.studio-page-head p { color:var(--text-secondary);max-inline-size:60ch;font-size:1rem;line-height:1.8; }
.studio-page-head { text-align:start; }
.studio-form { border-radius:24px !important;padding:clamp(20px,4vw,40px) !important;background:var(--surface-raised) !important; }
.studio-form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px; }
.studio-form label { text-transform:none !important;letter-spacing:0 !important;font-size:.8rem !important; }
.studio-form input,.studio-form textarea,.studio-form select { border-radius:12px !important;background:var(--surface) !important;min-inline-size:0; }
.studio-perks { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-block-start:24px; }
.studio-perks > div { border-radius:20px !important;text-align:start !important; }
.studio-contact-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.contact-card { border:1px solid var(--border);border-radius:22px;background:var(--surface-raised);padding:26px; }
.contact-card-icon { background:var(--accent-soft);border-radius:14px;inline-size:52px;block-size:52px;display:grid;place-items:center; }
.contact-card-value { font:700 clamp(.95rem,2vw,1.3rem)/1.5 var(--font-sans);overflow-wrap:anywhere; }
.contact-card-note { font-size:.8rem;color:var(--text-secondary); }
.studio-contact-cta,.studio-legal-contact { border-radius:22px !important; }
.legal-body { padding:clamp(22px,4vw,44px);border:1px solid var(--border);border-radius:24px;background:var(--surface-raised);line-height:1.9;font-size:.95rem; }
.legal-body h2 { font-size:1.2rem;line-height:1.5;margin-block:30px 12px; }
.legal-body h2:first-child { margin-block-start:0; }
.legal-body p,.legal-body ul { margin-block-end:18px; }
.legal-body ul { padding-inline-start:22px; }
/* Listening stays in reach; existing offsets and z-index are retained. */
.player-bar { background:#102b24 !important;border-block-start:1px solid #446340 !important;color:#f2f7ec;box-shadow:0 -10px 40px #001c1244; }
.player-bar .player-play { background:#b9f56a;color:#102b24;border-radius:50%; }
.player-bar .player-title,.player-bar .player-episode-title { color:#f2f7ec; }
.player-bar .player-podcast-title,.player-bar .player-time { color:#b4c8b7; }
.player-progress-fill,.inline-progress-fill { background:#b9f56a; }
.player-progress { background:#3c5b43;border-radius:100px; }
.player-progress:focus-visible { outline:2px solid #b9f56a;outline-offset:5px; }
.player-volume input { accent-color:#b9f56a; }
.bottom-nav { background:var(--surface-glass) !important;border-block-start:1px solid var(--border) !important;backdrop-filter:blur(18px); }
.bnav-item.is-active,.bnav-item.active { color:var(--accent-text); }
.bnav-icon { inline-size:21px;block-size:21px; }
.app-drawer { background:var(--surface);border-inline-end:1px solid var(--border); }
.drawer-link { border-radius:12px; }
.drawer-link.active { background:var(--accent-soft);color:var(--accent-text); }
.modal,.modal-content { border-radius:28px;background:var(--surface-raised);border:1px solid var(--border-strong);box-shadow:var(--shadow-4); }
.modal-tab.active { background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent); }
.modal input { border-radius:12px; }
.auth-error { color:var(--danger); }
.search-overlay { background:var(--surface-glass); }
.search-overlay-close { border-radius:50%; }
.footer-v2 { border-block-start:1px solid var(--border);background:var(--surface-sunken);padding-block-start:56px; }
.footer-v2-inner { padding-block:0 40px;gap:40px; }
.footer-v2-brand .brand-text { font-size:clamp(2rem,4vw,3.5rem);font-weight:850;letter-spacing:-.07em; }
.footer-v2-brand p { max-inline-size:34ch;color:var(--text-secondary);font-size:.85rem;line-height:1.8; }
.footer-v2-col h4 { text-transform:none;letter-spacing:0;color:var(--text-primary);font-size:.85rem;margin-block-end:20px; }
.footer-v2-col a { font-size:.78rem;color:var(--text-muted); }
.footer-v2-bottom { border-block-start:1px solid var(--border);font-size:.68rem;padding-block:22px 30px; }
/* Hover is an enhancement; touch and keyboard never depend on it. */
@media(hover:hover) and (pointer:fine) {
  .podcast-card-v2:hover,.podcast-card:hover,.station-card:hover,.cat-tile:hover { transform:translateY(-5px);border-color:var(--border-interactive);box-shadow:0 16px 34px #001c1217; }
  .pc-img img,.podcast-card-img img { transition:transform 450ms var(--ease-out); }
  .podcast-card-v2:hover .pc-img img,.podcast-card:hover .podcast-card-img img { transform:scale(1.035); }
  .soundstage-cover:hover { transform:rotate(-3deg) translateX(-24px) translateY(-6px); }
}
/* Finite sound accents: no endless movement around reading or listening. */
@keyframes studio-wave { 0%,100% { transform:scaleY(.7); } 50% { transform:scaleY(1); } }
@keyframes studio-cover { from { transform:rotate(-12deg) translate(-24px,14px); } to { transform:rotate(-7deg) translate(-24px,0); } }
@media(prefers-reduced-motion:no-preference) {
  .soundstage-wave i { animation:studio-wave 1.5s ease-in-out var(--wave-delay) 3; }
  .soundstage-cover { animation:studio-cover 750ms var(--ease-out) both; }
}
[dir="rtl"] .hero-v2 .hero-h1,[dir="rtl"] .page-hero-title,[dir="rtl"] .podcast-title,[dir="rtl"] .sp-title,[dir="rtl"] .studio-page-head h1 { letter-spacing:0;line-height:1.35; }
[dir="rtl"] .soundstage-disc { transform:translateX(-56px); }
[dir="rtl"] .soundstage-cover { transform:rotate(7deg) translateX(24px);animation:none; }
[dir="rtl"] .hero-v2 .hero-stats { justify-content:flex-start; }
@media(max-width:1199px) {
  .navbar-center .nav-link { padding-inline:8px;font-size:.72rem; }
  .podcasts-grid-full,.podcasts-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .studio-soundstage { block-size:370px; }
  .soundstage-cover { inline-size:200px; }
  .soundstage-disc { inline-size:245px; }
  .soundstage-chip--note { inset-inline-end:-10px; }
}
@media(max-width:991px) {
  .hero-v2 .hero-split { grid-template-columns:minmax(0,1fr);gap:12px; }
  .studio-soundstage { max-inline-size:480px;inline-size:100%;margin-inline:auto;block-size:340px; }
  .hero-v2 .hero-h1 { max-inline-size:18ch;font-size:clamp(2.8rem,7vw,4.5rem); }
  .hero-v2 .hero-text-col { max-inline-size:700px; }
  .podcasts-grid-full,.podcasts-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .station-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .categories-grid-v2 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .podcast-header { grid-template-columns:180px minmax(0,1fr);gap:26px; }
  .podcast-header-img { inline-size:180px;block-size:180px; }
  .navbar-center .nav-link[href^='/category/'] { display:none; }
}
@media(max-width:767px) {
  :root { --app-header-h:68px;--nav-h:68px; }
  .navbar-v2 { block-size:68px;padding-inline:16px;gap:8px; }
  .navbar-brand .brand-text { font-size:1.13rem; }
  .navbar-brand > svg { inline-size:28px;block-size:28px; }
  .navbar-end { gap:4px; }
  .navbar-end #login-btn { border-radius:100px;font-size:.65rem !important;padding-inline:9px !important; }
  .hero-v2 { margin:12px 10px 0;border-radius:24px;padding:28px 0 20px !important; }
  .hero-v2 .container-xl { padding-inline:22px; }
  .hero-v2 .hero-h1 { font-size:clamp(2.6rem,10vw,4rem);letter-spacing:-.055em;margin-block-end:18px; }
  .hero-v2 .hero-eyebrow { font-size:.58rem;margin-block-end:20px; }
  .hero-v2 .hero-sub-v2 { font-size:.85rem;line-height:1.75;margin-block-end:22px; }
  .hero-v2 #hero-search { font-size:.76rem;min-block-size:56px; }
  .hero-v2 .discovery-search-submit { inline-size:42px;block-size:42px; }
  .studio-hero-actions { gap:14px;margin-block:18px 24px; }
  .hero-v2 .btn-primary { padding:12px 16px;font-size:.75rem; }
  .studio-text-link { font-size:.72rem; }
  .hero-v2 .hero-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hero-v2 .hero-stat { padding-inline:12px; }
  .hero-v2 .hero-stat-n { font-size:clamp(1.05rem,4vw,1.35rem); }
  .hero-v2 .hero-stat-l { font-size:.5rem;letter-spacing:.04em; }
  .studio-soundstage { block-size:250px;margin-block-start:14px; }
  .soundstage-cover { inline-size:160px;border-width:4px;border-radius:14px; }
  .soundstage-disc { inline-size:200px;transform:translateX(44px); }
  .soundstage-word { font-size:3.8rem;inset-block-start:0; }
  .soundstage-chip--note { display:none; }
  .soundstage-chip--radio { inset-block-end:15px;font-size:.65rem;padding:10px 14px; }
  .soundstage-wave { inline-size:130px;block-size:70px;inset-block-end:15px;inset-inline-end:0;gap:4px; }
  .soundstage-wave i { inline-size:4px; }
  .hero-cats-strip { margin-block-start:20px; }
  .hero-v2 .hero-cats-v2 { padding-block-start:16px; }
  .hero-v2 .cat-pill-v2 { font-size:.65rem;padding:8px 12px; }
  .en-direct-strip { padding-block:26px 8px; }
  .page-sections-v2 { padding-block-start:26px; }
  .section-v2 { margin-block-end:36px; }
  .section-title-v2,.section-title { font-size:1.35rem; }
  .section-link-v2 { font-size:.6rem;padding:7px 10px; }
  .scroll-row .podcast-card-v2 { inline-size:160px; }
  .pc-body,.podcast-card-body { padding:12px; }
  .pc-title,.podcast-card-title { font-size:.82rem; }
  .pc-author,.pc-count,.podcast-card-count { font-size:.65rem; }
  .podcasts-grid-full,.podcasts-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
  .categories-grid-v2 { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
  .cat-tile { padding:12px;gap:10px;min-block-size:72px; }
  .cat-tile-icon { inline-size:32px;block-size:32px;font-size:1.2rem; }
  .cat-tile-name { font-size:.72rem; }
  .page-hero,.category-header,.podcast-header,.search-page-header,.studio-page-head { padding:24px;border-radius:22px;gap:18px; }
  .page-hero-title,.category-header-title,.podcast-title,.radio-hero-title,.search-page-title,.sp-title,.studio-page-head h1 { font-size:2rem;line-height:1.2; }
  .page-hero-icon,.category-header-icon { inline-size:54px;block-size:54px;font-size:1.7rem;border-radius:16px; }
  .page-hero-sub { font-size:.8rem; }
  .podcast-header { grid-template-columns:minmax(0,1fr); }
  .podcast-header-img { inline-size:150px;block-size:150px;margin-block-end:8px; }
  .podcast-desc { font-size:.85rem; }
  .episode-header { display:flex;flex-direction:column;align-items:flex-start;padding:20px; }
  .episode-header-thumb { inline-size:140px;block-size:140px; }
  .episode-title { font-size:1.65rem; }
  .episode-list-item,.episode-list-row { gap:12px;padding:12px; }
  .station-grid { grid-template-columns:minmax(0,1fr);gap:12px; }
  .station-card { padding:18px; }
  .radio-hero { margin-inline:20px;padding-block:24px; }
  .radio-hero .container-xl { padding-inline:24px; }
  .studio-form-grid,.studio-contact-grid,.studio-perks { grid-template-columns:minmax(0,1fr); }
  .studio-page-head p { font-size:.85rem; }
  .legal-body { font-size:.88rem; }
  .search-result-item { padding:14px;gap:12px; }
  .search-result-img { inline-size:48px;block-size:48px; }
  .footer-v2 { padding-block-start:36px; }
  .footer-v2-inner { gap:28px; }
  .footer-v2-bottom { display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-block-end:calc(90px + env(safe-area-inset-bottom,0px)); }
}
@media(max-width:359px) {
  .navbar-brand > svg { display:none; }
  .navbar-brand .brand-text { font-size:1.05rem; }
  .hero-v2 .container-xl { padding-inline:18px; }
  .hero-v2 .hero-h1 { font-size:2.45rem; }
  .studio-hero-actions { gap:12px; }
  .hero-v2 .btn-primary { padding-inline:12px;font-size:.7rem; }
  .studio-soundstage { block-size:225px; }
  .soundstage-cover { inline-size:140px; }
  .soundstage-disc { inline-size:180px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important; }
  .soundstage-cover { transform:rotate(-7deg) translateX(-24px); }
  .soundstage-wave i { animation:none; }
}

/* Clear legacy container offsets and let one spacing system own each view. */
.hero-v2 .hero-split { padding-block:0; }
.hero-v2 .hero-cats-strip { margin-inline:auto;max-inline-size:1360px;inline-size:100%; }
.container-xl > .page-hero { margin-inline:0; }
.page-hero { gap:26px; }
.page-hero-sub { border:0;padding:0; }
.studio-count { display:inline-flex;padding:6px 12px;border:1px solid var(--border-strong);border-radius:100px;margin-block-start:16px;color:var(--accent-text);font-size:.72rem;font-weight:600; }
/* Failed remote covers retain a designed surface rather than a broken image. */
.media-unavailable { position:relative;min-block-size:48px;background:radial-gradient(circle at 50% 45%,#315b3d,#102b24) !important; }
.media-unavailable img.studio-image-failed { opacity:0; }
.media-unavailable::after { content:'◉';position:absolute;inset:0;display:grid !important;place-items:center;font:800 clamp(2rem,5vw,4rem) var(--font-sans);color:#b9f56a;background:none;opacity:.65;pointer-events:none; }
.media-unavailable .soundstage-cover-caption { z-index:2; }
[data-theme="light"] .hero-v2 { background:#102b24; }
[data-theme="light"] .radio-hero { background:#102b24; }
[data-theme="light"] .radio-hero-title { color:#f2f7ec; }
[data-theme="light"] .podcast-header,[data-theme="light"] .category-header,[data-theme="light"] .page-hero { background:var(--surface-raised); }
.contact-card { display:flex;gap:16px;align-items:flex-start; }
/* Legacy nested layouts should not add a second set of page gutters. */
.container-xl > .podcasts-grid-full,.page-sections-v2 .categories-grid-v2,
.container-xl > .station-grid,.container > .episode-layout,.page-sections-v2 .two-col-section { padding-inline:0; }
.hero-v2 .hero-cats-strip { animation:none; }
.player-bar .player-btn,.player-bar .player-close,.player-bar .player-volume svg { color:#d1e1d4; }
.player-bar .player-play,.player-bar .player-play:hover { background:#b9f56a;color:#102b24; }
.inline-player .inline-player-title,.inline-player .inline-player-time,.inline-player .inline-player-info { color:#d1e1d4; }
.sp-badge-genre { background:var(--accent-soft);color:var(--accent-text);border-color:var(--border-strong); }
.sp-badge-freq { background:var(--surface-sunken);color:var(--text-secondary);border-color:var(--border); }
.sp-logo { box-shadow:none; }
[data-theme="light"] .filter-pill--active { background:var(--accent);color:var(--text-on-accent);border-color:var(--accent); }
@media(max-width:991px) { .episode-layout,.two-col-section { grid-template-columns:minmax(0,1fr); } }
.studio-login { padding:24px; }
.studio-login .admin-login-box { inline-size:100%;max-inline-size:440px;border-radius:28px;padding:32px;background:var(--surface-raised);border:1px solid var(--border-strong); }
.studio-login .admin-login-box h1 { font-size:1.7rem;font-weight:800;letter-spacing:-.05em; }
.studio-login .admin-login-box input { min-block-size:50px;border-radius:12px; }
.studio-login .admin-login-box .btn { justify-content:center; }
.hero-v2 .cat-tile-name { color:inherit;font-weight:600; }
.inline-player .inline-player-progress,.inline-player #inline-current,.inline-player #inline-duration { color:#c1d1c4; }
.episode-list-row-img { border-radius:10px;overflow:hidden; }
.sponsor-card { padding:24px;border:1px solid var(--border) !important;border-radius:22px;background:var(--surface-raised) !important; }
.sponsor-label { font-size:.65rem;letter-spacing:.06em;color:var(--text-muted); }
.sponsor-inner { display:flex;align-items:center;gap:18px;padding-block-start:12px;flex-wrap:wrap; }
.sponsor-icon { inline-size:48px;block-size:48px;border-radius:14px;background:var(--accent-soft);display:grid;place-items:center;flex-shrink:0; }
.sponsor-inner .sponsor-body { flex:1;min-inline-size:180px; }
.sponsor-name { font:800 1rem var(--font-sans);color:var(--text-primary); }
.sponsor-desc { color:var(--text-secondary);font-size:.8rem;line-height:1.7;margin-block-start:6px; }
.sponsor-cta { border:1px solid var(--border-strong);padding:10px 16px;border-radius:100px;font-size:.75rem;color:var(--accent-text); }
.filter-bar { flex-wrap:nowrap;scrollbar-width:thin; }
.sp-stars .star-btn { color:var(--accent-text); }
.sp-volume { accent-color:#b9f56a; }
.sp-volume::-webkit-slider-thumb { background:#b9f56a; }
.sp-volume::-moz-range-thumb { background:#b9f56a; }
#app-drawer[aria-hidden="true"] { visibility:hidden;pointer-events:none; }
#auth-modal.modal-overlay { inset:0;inline-size:100%;max-inline-size:none;block-size:100dvh;max-block-size:none;padding:16px;border:0;border-radius:0;background:var(--scrim);overflow-y:auto;align-items:center; }
#auth-modal .modal { max-block-size:calc(100dvh - 32px);overflow-y:auto;padding:24px;flex-shrink:0;inline-size:min(100%,440px); }
#auth-modal .modal-body { padding:16px 0 0; }
.yt-center-btn { padding:0;border:0;background:transparent;cursor:pointer; }
.yt-center-btn:not(.visible) { visibility:hidden; }
.studio-page--error { max-inline-size:850px;text-align:center;padding-block:64px !important; }
.studio-error-code { font:900 clamp(6rem,20vw,12rem)/1 var(--font-sans);letter-spacing:-.09em;color:var(--accent-text);margin-block-end:24px; }
.studio-page--error h1 { font-size:clamp(1.8rem,4vw,3rem);margin-block-end:16px; }
/* Listening pages: comfortable copy, content-sized platform links and video. */
.podcast-detail > .breadcrumb { padding-block:4px;margin-block-end:20px; }
.podcast-detail .podcast-header { padding:clamp(24px,3.5vw,40px);gap:clamp(24px,3.5vw,40px);align-items:start; }
.podcast-detail .podcast-header-img { transform:none;min-inline-size:0; }
.podcast-detail .podcast-cats { margin-block:0 14px; }
.podcast-detail .podcast-title { font-size:clamp(1.8rem,3vw,2.75rem);line-height:1.3;letter-spacing:-.025em;margin:0; }
.podcast-detail .podcast-desc { margin-block:16px 0;overflow-wrap:anywhere;white-space:pre-line; }
.podcast-detail .podcast-social { margin-block:20px 0; }
.podcast-detail .podcast-social a { inline-size:auto;block-size:auto;min-block-size:44px;padding:10px 16px;gap:8px;flex:0 0 auto;border-radius:999px; }
.podcast-detail .podcast-social svg { flex:0 0 16px; }
.podcast-detail .podcast-stats { margin-block:20px 0; }
.podcast-episodes > .section-title { margin-block:32px 20px; }
.podcast-detail .episode-list-row { padding:18px 20px;gap:18px;align-items:center; }
.podcast-detail .episode-list-row-title { font-size:1rem;line-height:1.65;letter-spacing:0;display:block;margin-block-end:6px; }
.podcast-detail .episode-list-row-meta { gap:8px 12px;letter-spacing:0;line-height:1.6; }
.podcast-detail .episode-list-play-btn { flex:0 0 44px;inline-size:44px;block-size:44px; }
.episode-header { align-items:start;gap:22px;padding:24px;margin-block-end:24px; }
.episode-header-thumb { inline-size:128px;block-size:128px;min-inline-size:0;flex:0 0 128px;box-shadow:none; }
.episode-header-info { min-inline-size:0; }
.episode-podcast-link { margin-block:0 12px;letter-spacing:0;text-transform:none; }
.episode-title { font-size:clamp(1.2rem,1.6vw,1.65rem);line-height:1.65;letter-spacing:-.015em;margin:0;overflow-wrap:anywhere; }
.episode-meta { margin-block-start:14px;gap:10px 16px;letter-spacing:0; }
.episode-player-section { margin-block:0 24px;padding:0;overflow:hidden;border-radius:20px; }
.yt-custom-player { background:#07150f;inline-size:100%; }
.yt-video-wrap { position:relative;inline-size:100%;min-inline-size:0;aspect-ratio:16/9;min-block-size:200px;background:#000; }
.yt-video-wrap iframe { position:absolute;inset:0;inline-size:100%;block-size:100%;border:0; }
.yt-player-help { display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 16px;padding:14px 18px;color:#b6c8bc;font-size:.75rem;line-height:1.6; }
.yt-player-help button { font:inherit;background:transparent;color:#b9f56a;border:1px solid #42634e;border-radius:999px;padding:6px 12px;cursor:pointer; }
.yt-player-help a { color:#b9f56a; }
.yt-player-notice { margin:16px 18px 0;padding:12px;background:#203b2e;color:#f2f7ec;border-radius:10px;font-size:.85rem;line-height:1.7; }
.episode-description-html { white-space:pre-line;overflow-wrap:anywhere; }
@media(max-width:600px) {
  .podcast-detail .podcast-header { padding:22px;gap:22px;text-align:start; }
  .podcast-detail .podcast-header-img { inline-size:128px;block-size:128px;margin:0; }
  .podcast-detail .podcast-social { justify-content:flex-start; }
  .podcast-detail .episode-list-row { padding:16px 12px;gap:12px; }
  .podcast-detail .episode-list-row-img { inline-size:48px;block-size:48px; }
  .podcast-detail .episode-list-row-title { font-size:.9rem;line-height:1.65; }
  .episode-header { flex-direction:row;flex-wrap:wrap;text-align:start;padding:20px;gap:16px; }
  .episode-header-thumb { inline-size:80px;block-size:80px;flex-basis:80px;max-inline-size:80px; }
  .episode-header-info { flex:1 1 220px; }
  .episode-title { font-size:1.18rem;line-height:1.7; }
  .episode-player-section { border-radius:16px; }
  .yt-player-help { justify-content:flex-start;padding:12px;gap:8px 12px; }
}
/* Two-line radio metadata stays within the fixed player height in both directions. */
.player-bar .player-info { display:flex;flex-direction:column;justify-content:center;gap:4px;min-inline-size:0;max-block-size:100%;padding-block:2px; }
.player-bar .player-episode-title { font-family:var(--font-sans);font-size:.9rem;font-weight:700;line-height:1.35;letter-spacing:0;margin:0;text-align:match-parent; }
.player-bar .player-meta { display:flex;align-items:center;gap:8px;min-inline-size:0;line-height:1.3; }
.player-bar .player-podcast-title { min-inline-size:0;font-size:.73rem;line-height:1.3;letter-spacing:0;text-transform:none;margin:0;text-align:match-parent; }
.player-bar .player-live-badge { flex:0 0 auto;white-space:nowrap;padding:2px 7px;border:1px solid #66855c;border-radius:999px;background:#234635;color:#d4f6b1;font-size:.62rem;font-weight:650;line-height:1.3; }
.player-bar.is-live .player-info { flex:1 1 200px; }
/* Scope checkbox dimensions separately from text fields. */
.comments-section { margin-block-start:32px;padding:24px; }
.comments-section .comments-title { font-size:1.3rem;line-height:1.5;letter-spacing:0;margin-block:0 20px;gap:10px; }
.comments-section .comment-form-wrap { margin-block-end:0; }
.comments-section .comment-form { gap:12px; }
.comments-section .comment-form-avatar { flex:0 0 36px; }
.comments-section .comment-form-input-wrap textarea { min-block-size:104px;line-height:1.7;padding:14px;resize:vertical; }
.comments-section .comment-form-actions { display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-block-start:12px; }
.comments-section .timestamp-opt { display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-inline-size:0; }
.comments-section .timestamp-toggle { display:inline-flex;align-items:center;gap:8px;margin:0;font-size:.8rem;line-height:1.5;white-space:nowrap;min-block-size:40px; }
.comments-section .timestamp-toggle input[type="checkbox"] { appearance:auto;inline-size:18px;block-size:18px;min-inline-size:18px;min-block-size:18px;flex:0 0 18px;margin:0;padding:0;accent-color:var(--accent);box-shadow:none; }
.comments-section .ts-input { inline-size:96px;min-inline-size:0;min-block-size:40px;padding:8px 10px;font-variant-numeric:tabular-nums;text-align:center; }
.comments-section #submit-comment { min-block-size:42px;padding:10px 20px;margin-inline-start:auto; }
.comments-section .comments-list { margin-block-start:24px; }
.comments-section .comments-empty,.comments-section .comments-loading { color:var(--text-muted);font-size:.88rem;line-height:1.7;text-align:center;padding:20px 0;margin:0; }
.comments-section .reply-form-wrap .comment-form { flex-direction:column; }
@media(max-width:600px) {
  .player-bar:not(.is-live) .player-info { display:none; }
  .player-bar.is-live { gap:10px;padding-inline:12px; }
  .player-bar.is-live .player-info { display:flex;flex:1 1 0; }
  .player-bar.is-live .player-thumb { inline-size:36px;block-size:36px; }
  .player-bar.is-live .player-close { inline-size:28px;min-inline-size:28px;block-size:36px; }
  .player-bar.is-live .player-controls { gap:0; }
  .player-bar.is-live .player-episode-title { font-size:.82rem; }
  .player-bar.is-live .player-podcast-title { font-size:.65rem; }
  .player-bar.is-live .player-meta { gap:6px; }
  .comments-section { padding:20px 16px; }
  .comments-section .comment-form-avatar { flex-basis:30px; }
  .comments-section .comment-form-avatar img,.comments-section .comment-form-avatar .avatar-placeholder { inline-size:30px;block-size:30px; }
  .comments-section .comment-form { gap:10px; }
  .comments-section .comment-form-actions { gap:10px; }
}
[dir="rtl"] .comments-section textarea:placeholder-shown { direction:rtl;text-align:right; }
[dir="rtl"] .player-bar .player-episode-title { text-align:right; }
[dir="ltr"] .player-bar .player-episode-title { text-align:left; }
