/*
Theme Name: REG Elementor Theme
Theme URI: https://rabbigoldberg.org
Author: REG Dev Team
Author URI: https://rabbigoldberg.org
Description: Custom WordPress Elementor theme for Rabbi Efrem Goldberg
Version: 4.8.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: reg-theme
*/

/* ========================================
   CSS Variables / Design Tokens
   ======================================== */
:root {
    --reg-primary-dark: #222044;
    --reg-footer-dark: #1b1a36;
    --reg-accent-yellow: #f6d147;
    --reg-accent-gold: #f6d147; /* alias used by NooraCast player overrides */
    --reg-error-red: #ff7272;
    --reg-light-gray: #f2f2f2;
    --reg-white: #ffffff;
    --reg-black: #000000;
    --reg-border-light: rgba(255, 255, 255, 0.5);
    --reg-text-placeholder: rgba(0, 0, 0, 0.7);

    --font-lato: 'Lato', sans-serif;
    --font-lora: 'Lora', serif;
    --font-roboto: 'Roboto', sans-serif;
}

/* ========================================
   Reset & Base
   ======================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    background-color: var(--reg-primary-dark);
}

body {
    font-family: var(--font-roboto);
    color: var(--reg-black);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    /* The theme is dark navy throughout; without this the page background is
       white and shows through the gaps between sections (header/widget/footer). */
    background-color: var(--reg-primary-dark);
}

/* Article (read) single posts are light: white page background, dark text. */
body.reg-read-article {
    background-color: var(--reg-white);
}

a {
    text-decoration: none;
    color: inherit;
}

ul, ol {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ========================================
   Header / Navbar
   ======================================== */
.reg-header {
    width: 100%;
    background-color: var(--reg-primary-dark);
}

.reg-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 39px;
    max-width: 1440px;
    margin: 0 auto;
    height: 79px;
}

.reg-logo img {
    height: 44px;
    width: auto;
}

.reg-search-bar {
    display: flex;
    align-items: center;
    background: var(--reg-white);
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-radius: 200px;
    padding: 0 8px 0 18px;
    height: 42px;
    width: 231px;
}

.reg-search-bar input {
    border: none;
    outline: none;
    font-family: var(--font-roboto);
    font-size: 18px;
    color: var(--reg-black);
    background: transparent;
    width: 100%;
}

.reg-search-bar input::placeholder {
    color: var(--reg-text-placeholder);
}

.reg-search-bar button {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
}

.reg-search-bar button img {
    width: 40px;
    height: 40px;
}

.reg-header-icons {
    display: flex;
    align-items: center;
    gap: 30px;
}

.reg-header-icon-link {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--reg-white);
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 15px;
}

.reg-header-icon-link img {
    width: 26px;
    height: 24px;
}

/* Navigation */
.reg-nav {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 38px 12px;
    /* Single row: pills slide horizontally instead of wrapping */
    overflow-x: auto;
    scrollbar-width: none;
}
.reg-nav::-webkit-scrollbar { display: none; }

.reg-nav-list {
    display: flex;
    align-items: center;
    gap: 19px;
    flex-wrap: nowrap;
    /* Centers when the row fits, scrolls from the left edge when it doesn't */
    width: max-content;
    margin: 0 auto;
}

.reg-nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--reg-border-light);
    border-radius: 100px;
    padding: 11px 23px;
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 18px;
    color: var(--reg-white);
    white-space: nowrap;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.reg-nav-link:hover {
    background-color: var(--reg-white);
    color: var(--reg-primary-dark);
}

/* Mobile Menu Toggle (hamburger) — hidden on desktop, shown at ≤1200px */
.reg-header-menu-toggle {
    display: none;
    background: none;
    border: 0;
    padding: 8px;
    margin-left: auto;
    cursor: pointer;
    line-height: 0;
}

.reg-header-menu-toggle img {
    width: 28px;
    height: 28px;
    display: block;
}

.reg-header-menu-toggle__close { display: none; }
.reg-header-menu-toggle[aria-expanded="true"] .reg-header-menu-toggle__open { display: none; }
.reg-header-menu-toggle[aria-expanded="true"] .reg-header-menu-toggle__close { display: block; }

.reg-nav-mobile-actions { display: none; }

/* ========================================
   Footer
   ======================================== */

/* Join Our Community Section */
.reg-community-section {
    background-color: var(--reg-primary-dark);
    padding: 60px 38px 80px;
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}

.reg-community-wrapper {
    display: flex;
    gap: 24px;
    max-width: 1440px;
    margin: 0 auto;
    justify-content: center;
    flex-wrap: wrap;
}

.reg-community-image {
    width: 670px;
    max-width: 100%;
    height: 588px;
    border-radius: 23px;
    border: 1px solid var(--reg-white);
    overflow: hidden;
    flex-shrink: 0;
}

.reg-community-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-community-form-card {
    width: 670px;
    max-width: 100%;
    background: var(--reg-white);
    border-radius: 23px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
    padding: 40px 35px;
    flex-shrink: 0;
}

.reg-community-form-card h2 {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-primary-dark);
    text-align: center;
    line-height: 52px;
    margin-bottom: 16px;
}

.reg-community-form-card .reg-subtitle {
    font-family: var(--font-roboto);
    font-size: 20px;
    color: var(--reg-primary-dark);
    text-align: center;
    line-height: 28px;
    margin-bottom: 30px;
}

.reg-form-field {
    width: 100%;
    max-width: 600px;
    margin: 0 auto 20px;
    background: var(--reg-light-gray);
    border: none;
    border-radius: 100px;
    padding: 14px 30px;
    font-family: var(--font-roboto);
    font-size: 18px;
    color: var(--reg-black);
    outline: none;
}

.reg-form-field::placeholder {
    color: var(--reg-black);
}

.reg-form-checkboxes {
    display: flex;
    gap: 20px;
    max-width: 600px;
    margin: 0 auto 20px;
    padding-left: 10px;
}

.reg-form-checkboxes label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-roboto);
    font-size: 20px;
    color: var(--reg-primary-dark);
    cursor: pointer;
}

.reg-form-checkboxes input[type="checkbox"] {
    width: 20px;
    height: 20px;
    border-radius: 2px;
    accent-color: var(--reg-primary-dark);
}

.reg-submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 600px;
    margin: 20px auto 0;
    background: var(--reg-accent-yellow);
    border: none;
    border-radius: 100px;
    padding: 13px 39px;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 23px;
    color: var(--reg-black);
    cursor: pointer;
    transition: opacity 0.3s ease;
    height: 60px;
}

.reg-submit-btn:hover {
    opacity: 0.9;
}

.reg-submit-btn img {
    width: 16px;
    height: 16px;
}

/* Footer Links Area */
.reg-footer-links {
    background-color: var(--reg-footer-dark);
    padding: 70px 37px;
}

/* Mobile-only logo at top of footer */
.reg-footer-logo-mobile {
    display: none;
    padding: 8px 10px 24px;
}

.reg-footer-logo-mobile img {
    max-width: 356px;
    width: 100%;
    height: auto;
}

.reg-footer-links-inner {
    display: flex;
    justify-content: space-between;
    max-width: 1440px;
    margin: 0 auto;
    flex-wrap: wrap;
    gap: 40px;
}

.reg-footer-column h3 {
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 24px;
    color: var(--reg-white);
    margin-bottom: 15px;
    line-height: 1.3;
}

.reg-footer-column ul {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.reg-footer-column ul li a {
    font-family: var(--font-roboto);
    font-size: 18px;
    color: var(--reg-white);
    line-height: 1.3;
    transition: opacity 0.3s ease;
}

.reg-footer-column ul li a:hover {
    opacity: 0.7;
}

/* Social Links */
.reg-social-links {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-top: 38px;
}

.reg-social-links a img {
    width: 34px;
    height: 34px;
}

/* Copyright Bar */
.reg-copyright {
    background-color: var(--reg-footer-dark);
    border-top: 1px solid var(--reg-white);
    padding: 0 37px;
}

.reg-copyright-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1440px;
    margin: 0 auto;
    height: 102px;
}

.reg-copyright-text {
    font-family: var(--font-lato);
    font-weight: 300;
    font-size: 18px;
    color: var(--reg-white);
}

.reg-copyright-links {
    display: flex;
    gap: 20px;
}

.reg-copyright-links a {
    font-family: var(--font-lato);
    font-weight: 300;
    font-size: 18px;
    color: var(--reg-white);
    transition: opacity 0.3s ease;
}

.reg-copyright-links a:hover {
    opacity: 0.7;
}

/* ========================================
   Hero Slider
   ======================================== */
.reg-hero-slider {
    padding: 25px 38px 0;
    background-color: var(--reg-primary-dark);
}

/* 500px keeps a flush-left 16:9 image clear of the right content column
   (~380px + 48px padding) at the tightest shared container width (1364px,
   Parsha/Emunah) with a ~32px gap to spare — 634px let the image run about
   190px under the column, relying entirely on the gradient to hide it. */
.reg-hero-slide {
    position: relative;
    width: 100%;
    height: 500px;
    border-radius: 23px;
    overflow: hidden;
    border: 1px solid var(--reg-white);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    background-color: var(--reg-primary-dark);
}

.reg-hero-play-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 107px;
    height: 107px;
    z-index: 1;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    transition: transform 0.2s ease;
}
.reg-hero-play-overlay:hover {
    transform: translate(-50%, -50%) scale(1.06);
}
/* Inline playback: the iframe replaces the slide content */
.reg-hero-video-frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    z-index: 2;
}
.reg-hero-slide.is-playing .reg-hero-overlay,
.reg-hero-slide.is-playing .reg-hero-content,
.reg-hero-slide.is-playing .reg-hero-play-overlay {
    display: none;
}

.reg-hero-play-overlay img {
    width: 100%;
    height: 100%;
    display: block;
}

/* Flush-left, height-filled: 16:9 source images are shorter than the
   634px-tall box, so cover cropped/zoomed them — this keeps images
   undistorted and lets the blank right edge hold the content column.
   Selector doubled up (.reg-hero-slide .reg-hero-bg) to out-specify
   Elementor's global `.elementor img{height:auto;max-width:100%}` reset,
   which otherwise silently wins and lets real photos overflow the box. */
.reg-hero-slide .reg-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: auto;
    max-width: none;
}

/* Fades into the site's own navy (--reg-primary-dark: #222044) rather than
   black, so the blank right column reads as "the page's background showing
   through" instead of a plain dark vignette. */
.reg-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(34, 32, 68, 0.1) 0%, rgba(34, 32, 68, 0.9) 55%, rgba(34, 32, 68, 1) 100%);
}

.reg-hero-content {
    position: absolute;
    top: 50%;
    right: 48px;
    transform: translateY(-50%);
    max-width: 380px;
    text-align: left;
    z-index: 1;
}

.reg-hero-badge {
    display: inline-block;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    padding: 8px 39px;
    border-radius: 100px;
    margin-bottom: 20px;
}

/* Display title, flush left/bottom — same face as the "Watch Our Video
   Series" block (Roboto 800). Line-clamped so long titles can't overflow. */
.reg-hero-title {
    font-family: var(--font-roboto);
    font-weight: 800;
    font-size: clamp(24px, 2.8vw, 40px);
    line-height: 1.18;
    color: var(--reg-white);
    max-width: 380px;
    margin: 0 0 6px;
    text-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.reg-hero-meta {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
}

/* Hide the category badge; the meta line (episode info) shows small
   under the title. */
.reg-hero-badge {
    display: none;
}

/* ========================================
   The Latest Section
   ======================================== */
.reg-latest-section {
    background-color: var(--reg-primary-dark);
    padding: 50px 40px 60px;
}

.reg-latest-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 30px;
}

.reg-section-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    line-height: 1;
}

.reg-section-title--dark {
    color: var(--reg-primary-dark);
}

.reg-arrow-circle {
    flex-shrink: 0;
    width: 39px;
    height: 39px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reg-arrow-circle img {
    width: 39px;
    height: 39px;
    min-width: 39px;
    min-height: 39px;
    object-fit: contain;
}

/* Article Cards Horizontal Scroll */
.reg-latest-cards-scroll {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    padding-bottom: 15px;
    margin-bottom: 27px;
    scrollbar-width: none;
}

.reg-latest-cards-scroll::-webkit-scrollbar {
    display: none;
}

.reg-latest-article-card {
    width: 288px;
    min-width: 288px;
    background: var(--reg-white);
    border: 1px solid #fdfdff;
    border-radius: 20px;
    overflow: hidden;
    display: block;
    transition: box-shadow 0.3s ease;
}

.reg-latest-article-card:hover {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.reg-latest-article-thumb {
    height: 162px;
    overflow: hidden;
    border-bottom: 1px solid var(--reg-primary-dark);
}

.reg-latest-article-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-latest-article-body {
    padding: 12px 8px;
}

.reg-latest-article-date {
    display: flex;
    align-items: center;
    gap: 5px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 100px;
    padding: 4px 10px;
    width: fit-content;
    margin-bottom: 12px;
}

.reg-calendar-icon {
    width: 12px;
    height: 14px;
}

.reg-latest-article-date span {
    font-family: var(--font-roboto);
    font-size: 14px;
    color: var(--reg-primary-dark);
}

.reg-latest-article-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    color: var(--reg-primary-dark);
    line-height: 25px;
}

.reg-latest-features-section {
    padding-top: 0;
}

/* Bottom Row: 3 Feature Cards */
.reg-latest-features-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 27px;
}

.reg-feature-card {
    border-radius: 20px;
    overflow: hidden;
    padding: 20px 20px 0;
    height: 479px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
    border: 1px solid var(--reg-white);
    display: flex;
    flex-direction: column;
}

.reg-feature-card > a {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.reg-feature-card-thumb {
    margin-top: auto;
    margin-bottom: 4px;
}

/* Watch Our Video Series Card */
.reg-feature-card--video-series {
    position: relative;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--reg-white);
    padding: 0;
}

.reg-feature-card-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.15;
    border-radius: 20px;
}

.reg-feature-card-bg-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 20px;
}

.reg-feature-video-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    height: 100%;
}

.reg-feature-video-title {
    font-family: var(--font-roboto);
    font-weight: 800;
    font-size: 50px;
    color: var(--reg-white);
    line-height: 58px;
    margin-bottom: 24px;
}

.reg-feature-video-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    padding: 10px 30px;
    border-radius: 23px;
    width: fit-content;
    transition: opacity 0.3s ease;
}

.reg-feature-video-btn:hover {
    opacity: 0.9;
}

/* Embrace Your Place Card */
.reg-feature-card--embrace {
    position: relative;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reg-feature-card-embrace-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
}

.reg-embrace-text {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.reg-embrace-line {
    display: inline-block;
    background: var(--reg-accent-yellow);
    color: var(--reg-primary-dark);
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 35px;
    line-height: 58px;
    padding: 0 10px;
}

.reg-feature-card--dark {
    background: rgba(255, 255, 255, 0.2);
}

.reg-feature-card--light {
    background: var(--reg-white);
}

.reg-feature-card--articles {
    background: var(--reg-primary-dark);
    border: 1px solid var(--reg-white);
}

.reg-feature-card-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 30px;
}

.reg-dot-icon {
    width: 10px;
    height: 10px;
    min-width: 10px;
    min-height: 10px;
    max-width: 10px;
    max-height: 10px;
    flex-shrink: 0;
    object-fit: contain;
    border-radius: 50%;
}

.reg-feature-card-label {
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 20px;
    color: var(--reg-white);
}

.reg-feature-card--light .reg-feature-card-label {
    color: var(--reg-primary-dark);
}

.reg-feature-card-episode {
    font-family: var(--font-roboto);
    font-weight: 800;
    font-size: 26px;
    color: var(--reg-white);
    margin-bottom: 8px;
}

.reg-feature-card-episode--dark {
    color: var(--reg-primary-dark);
}

.reg-feature-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-roboto);
    font-size: 18px;
    color: var(--reg-white);
    margin-bottom: 20px;
}

.reg-feature-card-meta--dark {
    color: var(--reg-primary-dark);
}

.reg-feature-card-meta-sep {
    opacity: 0.6;
}

.reg-feature-card-date {
    font-family: var(--font-roboto);
    font-size: 18px;
    color: var(--reg-white);
    margin-bottom: 20px;
}

.reg-feature-card-date--dark {
    color: var(--reg-primary-dark);
}

.reg-feature-card-thumb {
    border-radius: 20px;
    overflow: hidden;
}

.reg-feature-card-thumb img {
    width: 100%;
    height: 223px;
    object-fit: cover;
    border-radius: 20px;
}

/* Articles Card */
.reg-articles-card-title {
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 20px;
    color: var(--reg-white);
    text-align: center;
    margin-bottom: 15px;
}

.reg-articles-list {
    display: flex;
    flex-direction: column;
}

.reg-articles-list li {
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    padding: 10px 0;
}

.reg-articles-list li a {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 16px;
    color: var(--reg-white);
    line-height: 20px;
    transition: opacity 0.3s ease;
}

.reg-articles-list li a:hover {
    opacity: 0.7;
}

/* ========================================
   Living With Emunah Section
   ======================================== */
.reg-emunah-section {
    padding: 50px 37px;
}

.reg-emunah-inner {
    max-width: 1440px;
    margin: 0 auto;
    background: var(--reg-primary-dark);
    border: 1px solid var(--reg-white);
    border-radius: 23px;
    overflow: hidden;
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.25);
    display: flex;
    min-height: 694px;
}

.reg-emunah-left {
    width: 470px;
    flex-shrink: 0;
    padding: 30px 22px;
    display: flex;
    flex-direction: column;
}

.reg-emunah-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin-bottom: 20px;
}

.reg-emunah-episodes {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.reg-emunah-episode {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 13px;
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(50px);
    transition: background-color 0.3s ease;
}

.reg-emunah-episode--active {
    background: rgba(255, 255, 255, 0.2);
}

.reg-emunah-episode:hover {
    background: rgba(255, 255, 255, 0.15);
}

.reg-emunah-ep-thumb {
    width: 132px;
    height: 74px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
}

.reg-emunah-ep-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-emunah-ep-info h4 {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 18px;
    color: var(--reg-white);
    line-height: 1.2;
    margin-bottom: 6px;
}

.reg-emunah-ep-number {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-roboto);
    font-size: 16px;
    color: var(--reg-white);
    text-decoration: underline;
}

.reg-play-sm {
    width: 22px;
    height: 22px;
}

.reg-emunah-all-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 23px;
    padding: 13px 39px;
    border-radius: 100px;
    margin-top: 15px;
    transition: opacity 0.3s ease;
}

.reg-emunah-all-btn:hover {
    opacity: 0.9;
}

.reg-emunah-all-btn img {
    width: 16px;
    height: 16px;
}

.reg-emunah-right {
    flex: 1;
    padding: 30px;
    display: flex;
    flex-direction: column;
}

.reg-emunah-video-wrap {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.5);
    height: 457px;
    flex-shrink: 0;
}

.reg-emunah-video-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-emunah-play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reg-play-lg {
    width: 107px;
    height: 107px;
}

.reg-emunah-video-title {
    font-family: var(--font-roboto);
    font-weight: 800;
    font-size: 26px;
    color: var(--reg-white);
    text-align: center;
    margin-top: 16px;
}

.reg-emunah-video-meta {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 24px;
    color: var(--reg-white);
    text-align: center;
    margin-top: 8px;
}

/* ========================================
   Behind the Bima Section
   ======================================== */
.reg-bima-section {
    padding: 50px 37px;
}

.reg-bima-inner {
    max-width: 1440px;
    margin: 0 auto;
    background: var(--reg-white);
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 23px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    padding: 33px 20px 30px;
}

.reg-bima-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 25px;
}

.reg-bima-scroll-container {
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--reg-primary-dark) #ddd;
    padding-bottom: 15px;
}

.reg-bima-scroll-container::-webkit-scrollbar {
    height: 12px;
}

.reg-bima-scroll-container::-webkit-scrollbar-track {
    background: #e5e5e5;
    border-radius: 6px;
}

.reg-bima-scroll-container::-webkit-scrollbar-thumb {
    background: var(--reg-primary-dark);
    border-radius: 6px;
}

.reg-bima-cards {
    display: flex;
    gap: 20px;
    width: max-content;
}

.reg-bima-card {
    width: 298px;
    flex-shrink: 0;
    border: 1px solid var(--reg-primary-dark);
    border-radius: 20px;
    overflow: hidden;
    display: block;
    transition: box-shadow 0.3s ease;
}

.reg-bima-card:hover {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.reg-bima-card-thumb {
    height: 168px;
    overflow: hidden;
    border-bottom: 1px solid var(--reg-primary-dark);
}

.reg-bima-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-bima-card-body {
    padding: 10px 8px;
}

.reg-bima-card-ep {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}

.reg-play-xs {
    width: 18px;
    height: 18px;
}

.reg-bima-ep-badge {
    display: inline-block;
    background: rgba(0, 0, 0, 0.1);
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 12px;
    color: var(--reg-primary-dark);
    padding: 3px 10px;
    border-radius: 100px;
}

.reg-bima-card-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    color: var(--reg-primary-dark);
    line-height: 25px;
    margin-bottom: 6px;
}

.reg-bima-card-date {
    font-family: var(--font-roboto);
    font-size: 17px;
    color: var(--reg-black);
}

/* ========================================
   This Week's Parsha Section
   ======================================== */
.reg-parsha-section {
    padding: 50px 38px;
}

.reg-parsha-inner {
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    background: var(--reg-primary-dark);
    border: 1px solid var(--reg-white);
    border-radius: 23px;
    overflow: hidden;
    box-shadow: 0 4px 40px rgba(0, 0, 0, 0.25);
    min-height: 525px;
}

.reg-parsha-text {
    flex: 0 0 40%;
    padding: 40px 50px;
    text-align: center;
}

.reg-parsha-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin-bottom: 12px;
}

.reg-parsha-hebcal-name {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 28px;
    color: var(--reg-accent-yellow);
    margin-bottom: 8px;
}

.reg-parsha-subtitle {
    font-family: var(--font-roboto);
    font-size: 20px;
    color: var(--reg-white);
    margin-bottom: 20px;
}

.reg-parsha-name {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 28px;
    color: var(--reg-white);
    margin: 18px 0 0;
}

/* Yellow "Watch the Full Parsha" pill (Figma REG FULL home parsha block) */
.reg-parsha-watch-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 24px;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    padding: 10px 30px;
    border-radius: 23px;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.reg-parsha-watch-btn:hover {
    opacity: 0.9;
}

.reg-parsha-video {
    flex: 1;
    position: relative;
    padding: 34px;
}

.reg-parsha-video img {
    width: 100%;
    height: 457px;
    object-fit: cover;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.reg-parsha-play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reg-parsha-play-overlay img {
    width: 107px;
    height: 107px;
    border: none;
    border-radius: 50%;
}

/* ========================================
   Explore Our Series Section
   ======================================== */
.reg-explore-section {
    background-color: var(--reg-primary-dark);
    padding: 50px 37px 60px;
    text-align: center;
    position: relative;
}

.reg-explore-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin-bottom: 35px;
}

.reg-explore-grid {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 15px;
}

.reg-explore-grid::-webkit-scrollbar {
    display: none;
}

.reg-explore-card {
    width: 326px;
    min-width: 326px;
    background: var(--reg-white);
    border: 1px solid #fdfdff;
    border-radius: 20px;
    overflow: hidden;
    display: block;
    text-align: left;
    transition: box-shadow 0.3s ease;
}

.reg-explore-card:hover {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.reg-explore-card-thumb {
    height: 184px;
    overflow: hidden;
    border-bottom: 1px solid var(--reg-primary-dark);
}

.reg-explore-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-explore-card-body {
    padding: 12px 9px;
}

.reg-explore-card-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 24px;
    color: var(--reg-primary-dark);
    line-height: 30px;
    margin-bottom: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.reg-explore-card-watch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 22px;
    color: var(--reg-primary-dark);
}

.reg-explore-play-icon {
    width: 26px;
    height: 26px;
}

/* Two action chips per card (Watch + Listen) — Figma REG FULL explore cards */
.reg-explore-card-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.reg-explore-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 14px 4px 6px;
    border-radius: 100px;
    background: rgba(34, 32, 68, 0.06);
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 16px;
    color: var(--reg-primary-dark);
}
.reg-explore-chip .reg-explore-play-icon {
    width: 22px;
    height: 22px;
}
.reg-explore-chip-icon {
    width: 22px;
    height: 22px;
    color: var(--reg-primary-dark);
}

/* Scroller prev/next arrows (generated by theme.js; desktop only) */
.reg-scroll-arrow {
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    z-index: 3;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: rgba(34, 32, 68, 0.6);
    color: var(--reg-white);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.reg-scroll-arrow:hover {
    border-color: var(--reg-accent-yellow);
    background: rgba(34, 32, 68, 0.85);
}
.reg-scroll-arrow--prev { left: 10px; }
.reg-scroll-arrow--next { right: 10px; }

@media (max-width: 768px) {
    .reg-scroll-arrow { display: none; } /* mobile uses swipe + dots */
}

/* ========================================
   Page Hero (Articles list: big slider card)
   ======================================== */
.reg-page-hero {
    position: relative;
    margin: 38px auto 0;
    max-width: 1364px;
    width: calc(100% - 76px);
    min-height: 559px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding: 40px 56px;
    border: 1px solid var(--reg-white);
    border-radius: 23px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    overflow: hidden;
}

.reg-page-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.8) 70.93%);
    pointer-events: none;
    border-radius: 23px;
}

.reg-page-hero-content {
    position: relative;
    z-index: 1;
    max-width: 760px;
    text-align: left;
}

.reg-page-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin-bottom: 20px;
    line-height: 1.2;
}

.reg-page-hero-subtitle {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 24px;
    color: var(--reg-white);
    margin-bottom: 0;
    line-height: 35px;
}

.reg-page-hero-search {
    display: flex;
    align-items: center;
    background: var(--reg-white);
    border-radius: 200px;
    padding: 0 8px 0 24px;
    height: 52px;
    max-width: 500px;
    margin: 0 auto;
}

.reg-page-hero-search input {
    border: none;
    outline: none;
    font-family: var(--font-roboto);
    font-size: 18px;
    color: var(--reg-black);
    background: transparent;
    width: 100%;
}

.reg-page-hero-search input::placeholder {
    color: var(--reg-text-placeholder);
}

.reg-page-hero-search button {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
}

.reg-page-hero-search button img {
    width: 40px;
    height: 40px;
}

/* Hero date/meta line (Figma Articles hero — bottom-left) */
.reg-page-hero-meta {
    position: absolute;
    left: 38px;
    bottom: 32px;
    margin: 0;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 24px;
    line-height: 1.3;
    color: var(--reg-white);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
    z-index: 2;
}

/* Hero slider pagination dots (Figma Articles hero — bottom-right) */
.reg-page-hero-dots {
    position: absolute;
    right: 38px;
    bottom: 32px;
    display: flex;
    gap: 10px;
    z-index: 2;
}

.reg-page-hero-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transition: background 0.2s ease, transform 0.2s ease;
}

.reg-page-hero-dot--active {
    background: var(--reg-accent-yellow);
    transform: scale(1.2);
}

/* ========================================
   Filter Pills
   ======================================== */
.reg-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 19px;
    padding: 32px 38px 20px;
    background: transparent;
    max-width: 1440px;
    margin: 0 auto;
}

.reg-filter-pills::-webkit-scrollbar {
    display: none;
}

.reg-filter-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 11px 23px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 100px;
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 18px;
    color: var(--reg-white);
    background: transparent;
    white-space: nowrap;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    text-decoration: none;
}

.reg-filter-pill:hover {
    background: rgba(246, 209, 71, 0.15);
    border-color: var(--reg-accent-yellow);
    color: var(--reg-white);
}

.reg-filter-pill--active {
    background: var(--reg-accent-yellow);
    border-color: var(--reg-accent-yellow);
    color: var(--reg-black);
}

.reg-filter-pill--active:hover {
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
}

/* Mobile filter dropdown toggle — hidden on desktop, shown <=768px (Figma mobile 1:4113) */
.reg-filter-pills-toggle {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    height: 40px;
    padding: 11px 23px;
    border-radius: 100px;
    border: 1px solid var(--reg-accent-yellow);
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 18px;
    cursor: pointer;
}

.reg-filter-pills-caret {
    transition: transform 0.2s ease;
}

.reg-filter-pills.is-open .reg-filter-pills-caret {
    transform: rotate(180deg);
}

/* ========================================
   Article Grid
   ======================================== */
.reg-article-grid {
    display: grid;
    gap: 26px;
    padding: 24px 38px;
    max-width: 1440px;
    margin: 0 auto;
}

.reg-article-grid--3col {
    grid-template-columns: repeat(3, 1fr);
}

.reg-article-grid--4col {
    grid-template-columns: repeat(4, 1fr);
}

.reg-article-grid-card {
    background: var(--reg-black);
    border: 1px solid var(--reg-white);
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 14px;
    text-decoration: none;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.reg-article-grid-card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
    transform: translateY(-2px);
}

.reg-article-grid-thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 344 / 226;
    overflow: hidden;
    border-radius: 20px;
    margin-bottom: 16px;
}

.reg-article-grid-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.reg-article-grid-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 4px 14px;
    border-radius: 100px;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 13px;
    color: var(--reg-white);
}

.reg-article-grid-badge--watch {
    background: var(--reg-error-red);
}

.reg-article-grid-badge--listen {
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
}

.reg-article-grid-badge--read {
    background: var(--reg-primary-dark);
}

.reg-article-grid-body {
    padding: 0 4px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.reg-article-grid-author {
    font-family: var(--font-roboto);
    font-weight: 400;
    font-size: 15px;
    color: var(--reg-white);
    margin-bottom: 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.reg-article-grid-author-icon {
    display: inline-flex;
    width: 19px;
    height: 19px;
    color: var(--reg-white);
}

.reg-article-grid-author-icon svg {
    width: 100%;
    height: 100%;
}

.reg-article-grid-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 22px;
    color: var(--reg-white);
    line-height: 28px;
    margin-bottom: 14px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.reg-article-grid-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 18px;
    color: rgba(255, 255, 255, 0.7);
    background: rgba(78, 77, 105, 0.6);
    border-radius: 10px;
    padding: 10px 14px;
    margin-top: auto;
    min-height: 50px;
}

.reg-article-grid-meta span + span::before {
    content: "\00b7";
    margin-right: 10px;
}

.reg-article-grid-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 40px 40px 60px;
}

.reg-article-grid-pagination a,
.reg-article-grid-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 5px;
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 18px;
    color: var(--reg-white);
    background: rgba(255, 255, 255, 0.3);
    border: 1px solid transparent;
    text-decoration: none;
    transition: border-color 0.3s ease, color 0.3s ease;
}

.reg-article-grid-pagination a:hover {
    border-color: var(--reg-accent-yellow);
    color: var(--reg-accent-yellow);
}

.reg-article-grid-pagination .current {
    border-color: var(--reg-accent-yellow);
    color: var(--reg-accent-yellow);
    background: rgba(255, 255, 255, 0.3);
}

.reg-article-grid-pagination .prev,
.reg-article-grid-pagination .next {
    background: transparent;
    color: var(--reg-white);
}

.reg-article-grid-load-more-wrap {
    text-align: center;
    padding: 20px 40px 40px;
}

.reg-article-grid-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    padding: 12px 40px;
    border-radius: 100px;
    border: none;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.reg-article-grid-load-more:hover {
    opacity: 0.9;
}

/* ========================================
   Sponsor Banner
   ======================================== */
.reg-sponsor-banner {
    position: relative;
    padding: 38px;
    text-align: center;
    overflow: hidden;
    max-width: 1440px;
    margin: 30px auto;
    border-radius: 20px;
}

.reg-sponsor-banner-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.reg-sponsor-banner-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.15;
}

.reg-sponsor-banner-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 26px;
    color: var(--reg-white);
    margin: 0;
}

.reg-sponsor-banner-desc {
    font-family: var(--font-roboto);
    font-size: 16px;
    color: var(--reg-white);
    margin: 0;
    line-height: 1.5;
    flex-basis: 100%;
    max-width: 700px;
    margin: 0 auto;
}

.reg-sponsor-banner-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 16px;
    padding: 10px 28px;
    border-radius: 100px;
    transition: opacity 0.3s ease;
    white-space: nowrap;
}

.reg-sponsor-banner-btn:hover {
    opacity: 0.9;
}

/* --- Image-led Sponsor Banner variant (Articles/Watch — Figma 2227:2182) --- */
.reg-sponsor-banner--image {
    background: transparent;
    padding: 0;
    max-width: 1364px;
    width: calc(100% - 76px);
    margin: 40px auto;
    border-radius: 15px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    min-height: 324px;
    display: block;
}

.reg-sponsor-banner-label {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
    display: inline-block;
    padding: 6px 16px;
    background: rgba(0, 0, 0, 0.55);
    color: var(--reg-white);
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 100px;
    backdrop-filter: blur(4px);
}

.reg-sponsor-banner-imagelink {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0;
}

.reg-sponsor-banner--image .reg-sponsor-banner-image {
    width: 100%;
    height: 324px;
    object-fit: cover;
    display: block;
    border-radius: 15px;
}

.reg-sponsor-banner-image--placeholder {
    background: var(--reg-light-gray);
}

.reg-sponsor-banner--image .reg-sponsor-banner-content {
    position: absolute;
    left: 38px;
    bottom: 32px;
    right: 38px;
    z-index: 2;
    color: var(--reg-white);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
    max-width: 640px;
}

.reg-sponsor-banner--image .reg-sponsor-banner-title {
    color: var(--reg-white);
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 32px;
    line-height: 1.2;
    margin: 0 0 8px;
}

.reg-sponsor-banner--image .reg-sponsor-banner-desc {
    color: var(--reg-white);
    margin: 0 0 16px;
}

/* ========================================
   Parsha Books (Explore All Parshiyos) — Figma 1765:85
   ======================================== */
.reg-parsha-books {
    padding: 50px 38px 60px;
    max-width: 1440px;
    margin: 0 auto;
    background: var(--reg-primary-dark);
    /* Match .reg-parsha-single: cap content at 1440px, keep navy full-bleed */
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}

.reg-parsha-books-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin: 0 0 30px;
}

/* Tier 2 — each book section */
.reg-parsha-books-book {
    margin-top: 40px;
}

.reg-parsha-books-book:first-of-type {
    margin-top: 0;
}

.reg-parsha-books-book-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin: 0 0 20px;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.04);
    border-left: 4px solid var(--reg-accent-yellow);
    border-radius: 4px;
}

/* Tier 3 — parshiyos grid */
.reg-parsha-books-grid--parshiyos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(219px, 1fr));
    gap: 20px;
}

.reg-parsha-books-parsha {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.02);
    color: var(--reg-white);
    overflow: hidden;
    text-decoration: none;
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.reg-parsha-books-parsha:hover,
.reg-parsha-books-parsha:focus-visible {
    transform: translateY(-2px);
    border-color: var(--reg-accent-yellow);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    outline: none;
    color: var(--reg-white);
}

.reg-parsha-books-parsha-thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 219 / 140;
    background: rgba(255, 255, 255, 0.04);
    overflow: hidden;
}

.reg-parsha-books-parsha-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.reg-parsha-books-parsha-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.45) 100%);
    pointer-events: none;
}

.reg-parsha-books-parsha-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 6px;
    background: rgba(0, 0, 0, 0.65);
    border-radius: 100px;
    color: var(--reg-white);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 12px;
    backdrop-filter: blur(4px);
}

.reg-parsha-books-parsha-badge img {
    width: 16px;
    height: 16px;
    display: block;
}

.reg-parsha-books-parsha-title {
    display: block;
    padding: 12px 16px 14px;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 18px;
    line-height: 1.25;
    color: var(--reg-white);
}

.reg-parsha-books-empty {
    padding: 20px;
    color: rgba(255, 255, 255, 0.6);
    font-family: var(--font-roboto);
    font-size: 15px;
}

.reg-parsha-books-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(219px, 1fr));
    gap: 20px 10px;
}

/* ========================================
   Video/Audio Player
   ======================================== */
.reg-video-player-section {
    padding: 30px 40px;
}

.reg-video-player-layout {
    max-width: 1440px;
    margin: 0 auto;
}

/* NooraCast player slot inside the video/audio widget */
.reg-video-player-audio {
    margin-top: 24px;
}

.reg-video-player-audio-placeholder {
    margin-top: 24px;
    padding: 20px 24px;
    border: 1px dashed rgba(255, 255, 255, 0.25);
    border-radius: 12px;
    color: rgba(255, 255, 255, 0.6);
    font-family: var(--font-roboto);
    font-size: 14px;
    text-align: center;
    background: rgba(255, 255, 255, 0.03);
}

.reg-video-player-layout--with-sidebar {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 30px;
}

.reg-video-player-wrap {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    border-radius: 16px;
    overflow: hidden;
    background: var(--reg-black);
}

.reg-video-player-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.reg-video-player-poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-video-player-info {
    padding: 20px 0;
}

.reg-video-player-badge {
    display: inline-block;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 14px;
    padding: 4px 16px;
    border-radius: 100px;
    margin-bottom: 12px;
}

.reg-video-player-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 32px;
    color: var(--reg-primary-dark);
    line-height: 1.2;
    margin-bottom: 8px;
}

.reg-video-player-meta {
    font-family: var(--font-roboto);
    font-size: 16px;
    color: rgba(0, 0, 0, 0.5);
}

.reg-video-player-description {
    padding: 20px 0;
    font-family: var(--font-roboto);
    font-size: 16px;
    color: var(--reg-primary-dark);
    line-height: 1.7;
}

.reg-video-player-description p {
    margin-bottom: 16px;
}

.reg-video-player-sidebar {
    background: var(--reg-light-gray);
    border-radius: 16px;
    padding: 20px;
    max-height: 600px;
    overflow-y: auto;
}

.reg-video-player-sidebar-title {
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 20px;
    color: var(--reg-primary-dark);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.reg-video-player-transcript {
    font-family: var(--font-roboto);
    font-size: 15px;
    color: var(--reg-primary-dark);
    line-height: 1.7;
}

.reg-video-player-transcript p {
    margin-bottom: 12px;
}

/* ========================================
   Series Page (Living With Emunah etc.)
   ======================================== */
.reg-series-page {
    padding: 30px 40px;
    max-width: 1440px;
    margin: 0 auto;
}

.reg-series-hero {
    margin-bottom: 30px;
}

.reg-series-hero-video {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    border-radius: 20px;
    overflow: hidden;
    background: var(--reg-black);
}

.reg-series-hero-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.reg-series-hero-thumb-link {
    display: block;
    position: absolute;
    inset: 0;
}

.reg-series-hero-thumb-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-series-hero-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reg-series-hero-play img {
    width: 80px;
    height: 80px;
}

.reg-series-hero-title {
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 26px;
    color: var(--reg-primary-dark);
    margin-top: 16px;
}

.reg-series-hero-date {
    font-family: var(--font-roboto);
    font-size: 16px;
    color: rgba(0, 0, 0, 0.5);
    margin-top: 4px;
}

.reg-series-podcast-links {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.reg-series-podcast-label {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 16px;
    color: var(--reg-primary-dark);
}

.reg-series-podcast-btn {
    display: inline-flex;
    align-items: center;
    padding: 8px 20px;
    border: 1px solid var(--reg-primary-dark);
    border-radius: 100px;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 14px;
    color: var(--reg-primary-dark);
    transition: background-color 0.3s ease, color 0.3s ease;
}

.reg-series-podcast-btn:hover {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
}

.reg-series-episodes-header {
    margin-bottom: 20px;
}

.reg-series-episodes-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-primary-dark);
}

.reg-series-episodes-scroll {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 15px;
    margin-bottom: 40px;
}

.reg-series-episodes-scroll::-webkit-scrollbar {
    display: none;
}

.reg-series-episode-card {
    width: 288px;
    min-width: 288px;
    background: var(--reg-white);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 16px;
    overflow: hidden;
    display: block;
    transition: box-shadow 0.3s ease;
}

.reg-series-episode-card:hover {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
}

.reg-series-episode-thumb {
    height: 162px;
    overflow: hidden;
}

.reg-series-episode-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-series-episode-body {
    padding: 12px 10px;
}

.reg-series-episode-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    color: var(--reg-primary-dark);
    line-height: 1.3;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.reg-series-episode-meta {
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-roboto);
    font-size: 14px;
    color: rgba(0, 0, 0, 0.5);
}

/* ========================================
   Search Results
   ======================================== */
.reg-search-results-wrap {
    background-color: var(--reg-primary-dark);
    min-height: 60vh;
    padding-bottom: 40px;
}

.reg-search-results {
    padding: 30px 38px 0;
    max-width: 1440px;
    margin: 0 auto;
}

.reg-search-results-bar {
    margin: 20px auto 30px;
    max-width: 1104px;
}

.reg-search-results-form {
    display: flex;
    align-items: center;
    background: var(--reg-white);
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-radius: 200px;
    padding: 0 10px 0 30px;
    height: 46px;
}

.reg-search-results-input {
    border: none;
    outline: none;
    font-family: var(--font-roboto);
    font-weight: 400;
    font-size: 20px;
    color: var(--reg-black);
    background: transparent;
    width: 100%;
    height: 100%;
}

.reg-search-results-input::placeholder {
    color: rgba(0, 0, 0, 0.6);
}

.reg-search-results-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
}

.reg-search-results-btn img {
    width: 27px;
    height: 27px;
}

.reg-search-results-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 auto 24px;
    max-width: 1364px;
    padding: 0;
    flex-wrap: wrap;
    gap: 12px;
}

.reg-search-results-count {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 23px;
    color: var(--reg-white);
}

.reg-search-results-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 18px;
    color: var(--reg-white);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 100px;
    padding: 6px 20px;
    line-height: 1;
}

.reg-search-results-sort-icon {
    width: 11px;
    height: 9px;
}

.reg-search-results-grid {
    display: grid;
    gap: 24px;
    max-width: 1364px;
    margin: 0 auto;
}

.reg-search-results-grid--3col {
    grid-template-columns: repeat(3, 1fr);
}

.reg-search-results-grid--4col {
    grid-template-columns: repeat(4, 1fr);
}

/* Very small phones: collapse the 2-col search grid to a single column so
   cards aren't cramped below ~360px (Figma mobile is 2-col at 390px). */
@media (max-width: 360px) {
    .reg-search-results-grid--3col,
    .reg-search-results-grid--4col {
        grid-template-columns: 1fr;
    }
}

.reg-search-result-card {
    background: var(--reg-white);
    border: 1px solid #fdfdff;
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    min-height: 327px;
}

.reg-search-result-card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    transform: translateY(-2px);
}

.reg-search-result-thumb {
    position: relative;
    width: 100%;
    height: 184px;
    overflow: hidden;
    border-bottom: 1px solid var(--reg-primary-dark);
    background: var(--reg-light-gray);
}

.reg-search-result-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.reg-search-result-body {
    padding: 16px 12px 14px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.reg-search-result-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 24px;
    color: var(--reg-primary-dark);
    line-height: 30px;
    margin: 0 0 14px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.reg-search-result-footer {
    display: flex;
    align-items: center;
    margin-top: auto;
}

.reg-search-result-type {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 22px;
    color: var(--reg-primary-dark);
    line-height: 1;
}

.reg-search-result-type-icon {
    display: inline-flex;
    width: 26px;
    height: 26px;
    color: var(--reg-primary-dark);
}

.reg-search-result-type-icon svg {
    width: 100%;
    height: 100%;
}

.reg-search-result-type--watch .reg-search-result-type-icon {
    color: var(--reg-error-red, #e53935);
}

.reg-search-results-load-more-wrap {
    text-align: center;
    padding: 40px 0 0;
}

.reg-search-results-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    padding: 10px 30px;
    border-radius: 23px;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.reg-search-results-load-more:hover {
    opacity: 0.9;
}

.reg-search-results-empty {
    font-family: var(--font-roboto);
    font-size: 20px;
    color: rgba(255, 255, 255, 0.7);
    text-align: center;
    padding: 60px 0;
    max-width: 1364px;
    margin: 0 auto;
}

/* ========================================
   Parsha Single Page — Figma 1881:88
   ======================================== */
.reg-parsha-single {
    padding: 30px 38px 50px;
    max-width: 1440px;
    margin: 0 auto;
    background: var(--reg-primary-dark);
    /* Full-bleed dark background: paint navy edge-to-edge on wide screens while
       keeping the inner content capped at 1440px. clip-path keeps the bleed
       horizontal only, so it never spills into neighbouring sections. */
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}

/* Hero now shares the homepage's .reg-hero-slide component (see "Homepage
   Hero Slider" rules above) — just add the section's own bottom spacing. */
.reg-parsha-single .reg-hero-slide {
    margin-bottom: 50px;
}

/* Videos scroll section */
.reg-parsha-single-name {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin-top: 0;
}

.reg-parsha-single-videos-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.reg-parsha-single-videos-header h3 {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin: 0;
}

.reg-parsha-single-videos-scroll {
    display: flex;
    gap: 15px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 15px;
    margin-bottom: 60px;
}

.reg-parsha-single-videos-scroll::-webkit-scrollbar {
    display: none;
}

.reg-parsha-single-video-card {
    width: 248px;
    min-width: 248px;
    display: block;
    transition: opacity 0.3s ease;
    color: var(--reg-white);
    text-decoration: none;
}

.reg-parsha-single-video-card:hover {
    opacity: 0.85;
}

.reg-parsha-single-card-thumb {
    position: relative;
    height: 140px;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 15px;
}

.reg-parsha-single-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-parsha-single-card-play {
    position: absolute;
    bottom: 8px;
    right: 8px;
}

.reg-parsha-single-card-play img {
    width: 30px;
    height: 30px;
}

.reg-parsha-single-card-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 14px;
    color: var(--reg-white);
    margin-bottom: 6px;
}

.reg-parsha-single-card-date::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 13px;
    background: currentColor;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 13'><circle cx='6' cy='7' r='5' stroke='white' stroke-width='1' fill='none'/><path d='M6 4v3l2 1' stroke='white' stroke-width='1' fill='none' stroke-linecap='round'/></svg>") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 13'><circle cx='6' cy='7' r='5' stroke='white' stroke-width='1' fill='none'/><path d='M6 4v3l2 1' stroke='white' stroke-width='1' fill='none' stroke-linecap='round'/></svg>") no-repeat center / contain;
}

.reg-parsha-single-card-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    line-height: 26px;
    color: var(--reg-white);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Resources — PDF thumbnail cards with yellow underlined "Download Pdf" */
.reg-parsha-single-resources {
    padding-top: 40px;
}

.reg-parsha-single-resources-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin: 0 0 28px;
}

.reg-parsha-single-resources-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(214px, 1fr));
    gap: 24px;
}

.reg-parsha-single-resource-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    background: transparent;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.reg-parsha-single-resource-card:hover {
    opacity: 0.85;
}

.reg-parsha-single-resource-icon {
    width: 214px;
    height: 277px;
    background: var(--reg-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 40px;
    color: var(--reg-primary-dark);
    border-radius: 4px;
    overflow: hidden;
}

.reg-parsha-single-resource-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-parsha-single-resource-name {
    display: none;
}

.reg-parsha-single-resource-dl {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    color: var(--reg-accent-yellow);
    text-decoration: underline;
    text-align: center;
}

/* ========================================
   Single Post Templates
   ======================================== */
.reg-single-main {
    max-width: 100%;
    margin: 0 auto;
}

/* ---- Dark Wrap (Video / Audio posts) — Figma 2075:2127 / 2208:2289 ---- */
.reg-single-dark-wrap {
    background: var(--reg-primary-dark);
    padding: 38px 38px 60px;
}

/* Hero Media Area (559px rounded card, white border, gradient overlay) */
.reg-single-media {
    max-width: 1364px;
    margin: 0 auto;
}

.reg-single-media-frame {
    position: relative;
    width: 100%;
    height: 559px;
    border-radius: 23px;
    overflow: hidden;
    border: 1px solid var(--reg-white);
    background: #000;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.reg-single-media-frame::after {
    /* Subtle gradient overlay matching Figma (top transparent → bottom black 0.8) */
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(0,0,0,0.6) 100%);
    pointer-events: none;
}

.reg-single-media-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    z-index: 1;
}

.reg-single-media-frame:has(.reg-single-media-iframe)::after {
    /* When a live iframe is present, hide the decorative overlay */
    display: none;
}

.reg-single-media-poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-single-media-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.reg-single-media-play img {
    width: 107px;
    height: 107px;
    transition: transform 0.3s ease;
}

.reg-single-media-play:hover img {
    transform: scale(1.08);
}

/* ── NooraCast play triggers (cards + hero buttons) ─────────────────── */
/*
 * Two flavours of trigger:
 *  1) "Image" triggers reuse an existing large play-circle graphic
 *     (single-audio hero, Emunah hero/featured). They must NOT inherit the
 *     plugin's default circular button skin, so we reset it here.
 *  2) "Card" triggers (.reg-card-play) DO use the plugin's circular skin and
 *     are positioned over a thumbnail.
 */

/* 1) Image-based triggers: strip the default button + plugin circle skin */
.reg-single-media-play.nooracast-trigger,
.reg-emunah-play-btn.nooracast-trigger {
    background: none;
    border: 0;
    border-radius: 0;
    width: auto;
    height: auto;
    padding: 0;
    transform: none;
    cursor: pointer;
}

.reg-single-media-play.nooracast-trigger:hover,
.reg-emunah-play-btn.nooracast-trigger:hover {
    background: none;
    transform: none;
}

.reg-emunah-play-btn.nooracast-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 2) Card triggers: circular play button centered over the thumbnail.
   IMPORTANT: center with inset + margin:auto, NOT transform. The plugin's
   base `.nooracast-trigger:hover` applies `transform: scale(1.05)`, which would
   REPLACE a transform-based centering and make the button jump out from under
   the cursor on rollover (and miss clicks). With margin centering, the hover
   scale grows the button in place — no jump, clicks land reliably. */
.reg-card-play {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 56px;
    height: 56px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-primary-dark);
    color: #fff;
    border: none;
    border-radius: 50%;
    padding: 0;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    transition: background 0.15s, transform 0.15s;
}

.reg-card-play:hover {
    transform: scale(1.06);
}

.reg-card-play--watch svg {
    width: 45%;
    height: 45%;
    fill: currentColor;
    display: block;
    margin-left: 2px; /* optical centering of the play triangle */
}

/* Content-type tag pill (Read / Listen / Watch), overlaid on a card thumb. */
.reg-type-tag {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 100px;
    font-family: var(--font-lato);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1;
    background: rgba(34, 32, 68, 0.82);
    color: var(--reg-accent-yellow);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    pointer-events: none;
}

.reg-type-tag svg {
    display: block;
}

.reg-type-tag--read {
    color: #ffffff;
}

/* Ensure every card thumb that hosts a type tag is a positioning context. */
.reg-latest-article-thumb,
.reg-bima-card-thumb,
.reg-emunah-page-card-thumb,
.reg-parsha-single-card-thumb,
.reg-single-related-thumb,
.reg-single-explore-card-thumb {
    position: relative;
}

/* Stretched-link pattern: keep the whole card clickable to the post while a
   higher-z play button starts audio in place. */
.reg-bima-card,
.reg-latest-article-card,
.reg-emunah-page-card {
    position: relative;
}

.reg-bima-card-thumb,
.reg-latest-article-thumb,
.reg-emunah-page-card-thumb {
    position: relative;
}

.reg-bima-card__link,
.reg-latest-article-card__link,
.reg-emunah-page-card__link {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
    text-indent: -9999px;
    overflow: hidden;
}

/* NooraCast container — kept compatible; custom bar is preferred */
.reg-single-player-bar {
    max-width: 1364px;
    margin: 24px auto 0;
    padding: 0;
}

/* ---- Custom Audio Progress Bar (Figma 2110:2460 / 3141:3427) ---- */
.reg-audio-progress {
    display: flex;
    align-items: center;
    gap: 14px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 100px;
    padding: 14px 26px;
    margin: 24px 0 0;
    width: 100%;
    max-width: 793px;
}

.reg-audio-progress-play {
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

.reg-audio-progress-play img {
    width: 18px;
    height: 22px;
}

.reg-audio-progress-time {
    font-family: var(--font-lato, 'Lato', sans-serif);
    font-weight: 600;
    font-size: 14px;
    color: var(--reg-white);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
    flex-shrink: 0;
}

.reg-audio-progress-track {
    flex: 1;
    height: 5px;
    background: var(--reg-white);
    border-radius: 100px;
    position: relative;
    overflow: hidden;
}

.reg-audio-progress-track-fill {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 35%; /* placeholder — JS updates */
    background: var(--reg-accent-yellow);
    border-radius: 100px;
}

.reg-audio-progress-ctrl {
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 22px;
    flex-shrink: 0;
}

.reg-audio-progress-ctrl img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ── NooraCast Player — Dark Wrap Theme ────────────────────────────── */
/* Override NooraCast's default light appearance when inside dark-wrap */

.reg-single-dark-wrap .nooracast-player--inline {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 16px;
    padding: 16px 24px;
    margin: 0;
    --nooracast-accent: var(--reg-accent-gold);
    --nooracast-text: #ffffff;
    --nooracast-text-muted: rgba(255, 255, 255, 0.6);
    --nooracast-border: rgba(255, 255, 255, 0.12);
}

/* Artwork — slightly larger, rounded */
.reg-single-dark-wrap .nooracast-player__artwork {
    width: 72px;
    height: 72px;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

/* Title / Show info */
.reg-single-dark-wrap .nooracast-player__title {
    color: #ffffff;
    font-family: var(--font-lora);
    font-size: 16px;
    font-weight: 600;
}

.reg-single-dark-wrap .nooracast-player__show {
    color: rgba(255, 255, 255, 0.6);
}

.reg-single-dark-wrap .nooracast-player__ep-label {
    background: rgba(200, 155, 46, 0.2);
    color: var(--reg-accent-gold);
}

/* Progress bar */
.reg-single-dark-wrap .nooracast-player__progress {
    background: rgba(255, 255, 255, 0.15);
    height: 5px;
}

.reg-single-dark-wrap .nooracast-player__progress-buffered {
    background: rgba(255, 255, 255, 0.1);
}

.reg-single-dark-wrap .nooracast-player__progress-played {
    background: var(--reg-accent-gold);
}

.reg-single-dark-wrap .nooracast-player__progress-handle {
    background: var(--reg-accent-gold);
    border-color: var(--reg-primary-dark);
}

/* Time labels */
.reg-single-dark-wrap .nooracast-player__time-current,
.reg-single-dark-wrap .nooracast-player__time-duration {
    color: rgba(255, 255, 255, 0.5);
}

/* Control buttons */
.reg-single-dark-wrap .nooracast-player__btn {
    color: #ffffff;
}

.reg-single-dark-wrap .nooracast-player__btn:hover {
    background: rgba(255, 255, 255, 0.1);
}

/* Play button — gold accent */
.reg-single-dark-wrap .nooracast-player__btn--play {
    background: var(--reg-accent-gold);
    color: var(--reg-primary-dark);
    width: 48px;
    height: 48px;
}

.reg-single-dark-wrap .nooracast-player__btn--play:hover {
    background: #d4a83a;
}

/* Speed button */
.reg-single-dark-wrap .nooracast-player__btn--speed {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

.reg-single-dark-wrap .nooracast-player__btn--speed:hover {
    background: rgba(255, 255, 255, 0.18);
}

.reg-single-dark-wrap .nooracast-player__speed-label {
    color: #ffffff;
}

/* Two Column Layout — Figma 793px body + 528px transcript card */
.reg-single-two-col {
    display: grid;
    grid-template-columns: minmax(0, 793px) 528px;
    gap: 40px;
    max-width: 1364px;
    margin: 40px auto 0;
    align-items: start;
}

.reg-single-col-left,
.reg-single-col-right {
    min-width: 0;
}

/* Dark Body Content — Figma 2120:2462 (first p bold 22px) + 2120:2464 (body 20px) */
.reg-single-dark-body {
    font-family: var(--font-roboto);
    font-size: 20px;
    color: var(--reg-white);
    line-height: 1.4;
}

.reg-single-dark-body p {
    margin-bottom: 18px;
}

.reg-single-dark-body p:first-child {
    font-weight: 700;
    font-size: 22px;
    line-height: 1.27;
    margin-bottom: 22px;
}

.reg-single-dark-body h2 {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 26px;
    color: var(--reg-white);
    margin: 28px 0 14px;
}

.reg-single-dark-body h3 {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 22px;
    color: var(--reg-white);
    margin: 24px 0 12px;
}

.reg-single-dark-body ul,
.reg-single-dark-body ol {
    margin: 14px 0 18px 24px;
    list-style: revert;
}

.reg-single-dark-body li {
    margin-bottom: 6px;
}

.reg-single-dark-body blockquote {
    border-left: 4px solid var(--reg-accent-yellow);
    padding: 14px 20px;
    margin: 20px 0;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 0 12px 12px 0;
    font-style: italic;
}

.reg-single-dark-body a {
    color: var(--reg-accent-yellow);
    text-decoration: underline;
}

.reg-single-dark-body a:hover {
    opacity: 0.8;
}

.reg-single-dark-body img {
    border-radius: 12px;
    margin: 16px 0;
}

/* Transcript Box — Figma: white card, 528×516, 23px radius, 24px title (Lora) */
.reg-single-transcript-box {
    background: var(--reg-white);
    border-radius: 23px;
    padding: 28px 16px 16px 16px;
    max-height: 516px;
    height: 516px;
    overflow-y: auto;
    position: sticky;
    top: 30px;
    box-sizing: border-box;
}

.reg-single-transcript-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 24px;
    color: #000;
    margin: 0 0 16px;
}

.reg-single-transcript-entries {
    font-family: var(--font-roboto);
    font-size: 17px;
    color: #000;
    line-height: 1.65;
}

.reg-single-transcript-entries > p {
    margin-bottom: 18px;
    padding-bottom: 18px;
    padding-left: 55px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    position: relative;
}

.reg-single-transcript-entry {
    display: flex;
    gap: 16px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    align-items: flex-start;
}

.reg-single-transcript-entry:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.reg-single-transcript-time {
    font-family: var(--font-roboto);
    font-weight: 400;
    font-size: 16px;
    color: #313787;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 40px;
    line-height: 1.75;
}

.reg-single-transcript-entry p {
    margin: 0;
    padding: 0;
    border: none;
    font-size: 17px;
    color: #000;
    line-height: 1.65;
    flex: 1;
}

/* Custom scrollbar — subtle rounded track */
.reg-single-transcript-box::-webkit-scrollbar {
    width: 8px;
}
.reg-single-transcript-box::-webkit-scrollbar-track {
    background: transparent;
}
.reg-single-transcript-box::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 100px;
}

/* Teaching Complete CTA — Figma 2110:2428 (Lora 600/40px, white, with top+bottom rules) */
.reg-single-teaching-complete {
    text-align: center;
    padding: 60px 0 50px;
    max-width: 594px;
    margin: 0 auto;
    position: relative;
}

.reg-single-teaching-complete h2 {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    line-height: 1.2;
    margin: 0;
    padding: 30px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.6);
    border-bottom: 1px solid rgba(255, 255, 255, 0.6);
}

/* Explore Series Section — Figma 2269:3228..3268 (5-card row, translucent cards) */
.reg-single-explore-series {
    max-width: 1364px;
    margin: 0 auto;
}

.reg-single-explore-series-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin: 0 0 24px;
}

.reg-single-explore-scroll {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    padding-bottom: 0;
}

.reg-single-explore-card {
    display: flex;
    flex-direction: column;
    gap: 15px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--reg-white);
    border-radius: 20px;
    padding: 10px;
    text-decoration: none;
    transition: transform 0.25s ease, background 0.25s ease;
}

.reg-single-explore-card:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.16);
}

.reg-single-explore-card-thumb {
    height: 140px;
    border-radius: 15px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.3);
}

.reg-single-explore-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-single-explore-card-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    color: var(--reg-white);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 56px;
}

.reg-single-explore-card-icons {
    display: flex;
    gap: 8px;
    align-items: center;
}

.reg-single-explore-icon {
    height: 25px;
    width: auto;
}

/* ---- Support / Sponsor CTA banner — Figma 2122:2571 ---- */
.reg-single-support-cta {
    position: relative;
    max-width: 1364px;
    margin: 60px auto 0;
    padding: 0 60px;
    border-radius: 10px;
    overflow: hidden;
    background-color: var(--reg-primary-dark);
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.85)), url('/wp-content/uploads/2026/07/Rectangle-52.png');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 48px;
    min-height: 160px;
    box-sizing: border-box;
}

.reg-single-support-cta-title {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    line-height: 1.1;
    margin: 0;
    text-shadow: 0 40px 20px rgba(0, 0, 0, 0.3);
}

.reg-single-support-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: #000;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    padding: 10px 30px;
    border-radius: 23px;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 0.2s ease, filter 0.2s ease;
}

.reg-single-support-cta-btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
}

/* ---- Article Post (light background) ---- */
.reg-single-article-hero {
    padding: 25px 38px 0;
    max-width: 1440px;
    margin: 0 auto;
}

.reg-single-article-hero-img {
    width: 100%;
    height: 559px;
    object-fit: cover;
    border-radius: 20px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.reg-single-content-layout {
    padding: 32px 38px 40px;
    max-width: 1440px;
    margin: 0 auto;
}

/* Figma desktop: main body 649px column + 321px Latest Articles sidebar,
   centered inside the 1440px canvas (38px side padding). */
.reg-single-content-layout--with-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 649px) 321px;
    gap: 59px;
    justify-content: center;
}

.reg-single-content-main {
    min-width: 0;
}

/* Author row shown above the article title (Figma: avatar 70 + name + date) */
.reg-single-author-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
}

.reg-single-author-row-avatar {
    width: 70px;
    height: 70px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--reg-light-gray);
}

.reg-single-author-row-img,
.reg-single-author-row-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

.reg-single-author-row-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.reg-single-author-row-name {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 16px;
    color: var(--reg-primary-dark);
}

.reg-single-author-row-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-roboto);
    font-size: 13px;
    color: rgba(0, 0, 0, 0.55);
}

.reg-single-author-row-date .reg-calendar-icon {
    width: 15px;
    height: 15px;
}

.reg-single-badges {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.reg-single-post-info {
    padding: 4px 0 20px;
    margin-bottom: 0;
}

.reg-single-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 14px;
    padding: 5px 18px;
    border-radius: 100px;
}

.reg-single-badge:hover {
    opacity: 0.9;
}

.reg-single-badge--type {
    background: #e53935;
    color: var(--reg-white);
}

.reg-single-badge--listen {
    background: #7b1fa2;
    color: var(--reg-white);
}

.reg-single-badge--read {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
}

.reg-single-badge-icon {
    width: 14px;
    height: 14px;
}

.reg-single-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 36px;
    color: var(--reg-primary-dark);
    line-height: 1.2;
    margin-bottom: 16px;
}

.reg-single-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--font-roboto);
    font-size: 15px;
    color: rgba(0, 0, 0, 0.5);
    flex-wrap: wrap;
    gap: 12px;
}

.reg-single-meta-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.reg-single-meta-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
}

.reg-single-meta-right {
    display: flex;
    align-items: center;
    gap: 6px;
}

.reg-single-author {
    font-weight: 600;
    color: var(--reg-primary-dark);
}

.reg-single-meta-sep {
    opacity: 0.4;
}

/* Share / Actions Bar (article only).
   Figma: centered ~291px block below the body with a "Share" label
   followed by X, Instagram, Facebook, LinkedIn icons. */
.reg-single-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    padding: 18px 28px;
    margin: 32px auto 24px;
    width: fit-content;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 100px;
    background: var(--reg-white);
}

.reg-single-share-label {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 18px;
    color: var(--reg-primary-dark);
}

.reg-single-share-list {
    display: flex;
    align-items: center;
    gap: 16px;
}

.reg-single-share-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: transparent;
    transition: transform 0.2s ease;
}

.reg-single-share-btn:hover {
    transform: translateY(-1px);
}

.reg-single-share-btn img {
    width: 24px;
    height: 24px;
    display: block;
}

/* Article Body (light bg) */
.reg-single-body {
    font-family: var(--font-roboto);
    font-size: 18px;
    color: var(--reg-primary-dark);
    line-height: 1.8;
}

.reg-single-body p {
    margin-bottom: 20px;
}

.reg-single-body h2 {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 28px;
    color: var(--reg-primary-dark);
    margin: 32px 0 16px;
}

.reg-single-body h3 {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 24px;
    color: var(--reg-primary-dark);
    margin: 28px 0 12px;
}

.reg-single-body ul,
.reg-single-body ol {
    margin: 16px 0 20px 24px;
    list-style: revert;
}

.reg-single-body li {
    margin-bottom: 8px;
}

.reg-single-body blockquote {
    border-left: 4px solid var(--reg-accent-yellow);
    padding: 16px 24px;
    margin: 24px 0;
    background: var(--reg-light-gray);
    border-radius: 0 12px 12px 0;
    font-style: italic;
}

.reg-single-body img {
    border-radius: 12px;
    margin: 20px 0;
}

.reg-single-body a {
    color: var(--reg-primary-dark);
    text-decoration: underline;
}

.reg-single-body a:hover {
    opacity: 0.7;
}

/* Tags */
.reg-single-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 24px;
    margin-top: 24px;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.reg-single-tag {
    display: inline-block;
    padding: 6px 16px;
    border: 1px solid var(--reg-primary-dark);
    border-radius: 100px;
    font-family: var(--font-roboto);
    font-size: 14px;
    color: var(--reg-primary-dark);
    transition: background-color 0.3s ease, color 0.3s ease;
}

.reg-single-tag:hover {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
}

/* Transcript Sidebar */
.reg-single-sidebar {
    background: var(--reg-light-gray);
    border-radius: 16px;
    padding: 24px;
    max-height: 700px;
    overflow-y: auto;
    position: sticky;
    top: 30px;
}

.reg-single-sidebar-title {
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 20px;
    color: var(--reg-primary-dark);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.reg-single-transcript {
    font-family: var(--font-roboto);
    font-size: 15px;
    color: var(--reg-primary-dark);
    line-height: 1.8;
}

.reg-single-transcript p {
    margin-bottom: 14px;
}

/* Author Bio */
.reg-single-author-bio {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.reg-single-author-avatar img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
}

.reg-single-author-name {
    font-family: var(--font-roboto);
    font-weight: 700;
    font-size: 18px;
    color: var(--reg-primary-dark);
    display: block;
    margin-bottom: 4px;
}

.reg-single-author-desc {
    font-family: var(--font-roboto);
    font-size: 15px;
    color: rgba(0, 0, 0, 0.6);
    line-height: 1.5;
}

/* Latest Articles Sidebar (Figma: 321x449 box, white card with titles + dividers) */
.reg-single-latest {
    width: 321px;
    background: var(--reg-white);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 22px 0 10px;
    align-self: start;
    position: sticky;
    top: 30px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.reg-single-latest-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 18px;
    color: var(--reg-primary-dark);
    text-align: center;
    padding: 0 22px 16px;
    margin: 0;
}

.reg-single-latest-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.reg-single-latest-item {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.reg-single-latest-item:first-child {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.reg-single-latest-link {
    display: block;
    padding: 14px 22px;
    font-family: var(--font-roboto);
    font-size: 14px;
    line-height: 1.4;
    color: var(--reg-primary-dark);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.reg-single-latest-link:hover {
    background: var(--reg-light-gray);
    color: var(--reg-primary-dark);
}

/* Recent Articles Section (Figma: light bg, 4 cards 326x405 in a row) */
.reg-single-related {
    background: var(--reg-light-gray);
    padding: 50px 38px 60px;
}

.reg-single-related-inner {
    max-width: 1440px;
    margin: 0 auto;
}

.reg-single-related-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 30px;
}

.reg-single-related-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 22px;
    color: var(--reg-primary-dark);
}

.reg-single-related-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

/* Retain scroll helper class as a no-op alias in case older markup exists */
.reg-single-related-scroll {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.reg-single-related-scroll::-webkit-scrollbar {
    display: none;
}

.reg-single-related-card {
    width: 100%;
    background: var(--reg-white);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 20px;
    overflow: hidden;
    display: block;
    transition: box-shadow 0.3s ease, transform 0.2s ease;
}

.reg-single-related-card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
    transform: translateY(-2px);
}

.reg-single-related-thumb {
    position: relative;
    height: 200px;
    overflow: hidden;
    background: var(--reg-light-gray);
}

.reg-single-related-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-single-related-play {
    position: absolute;
    bottom: 10px;
    right: 10px;
}

.reg-single-related-play img {
    width: 32px;
    height: 32px;
}

.reg-single-related-body {
    padding: 18px 20px 22px;
}

.reg-single-related-author {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-roboto);
    font-size: 14px;
    color: var(--reg-primary-dark);
    margin-bottom: 10px;
}

.reg-single-related-author-icon {
    width: 18px;
    height: 18px;
}

.reg-single-related-card-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 20px;
    color: var(--reg-primary-dark);
    line-height: 1.3;
    margin-bottom: 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 52px;
}

.reg-single-related-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: var(--reg-accent-yellow);
    border-radius: 100px;
    padding: 8px 16px;
    font-family: var(--font-roboto);
    font-size: 13px;
    color: var(--reg-primary-dark);
}

.reg-single-related-date,
.reg-single-related-duration {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.reg-single-related-date .reg-calendar-icon,
.reg-single-related-duration .reg-clock-icon {
    width: 15px;
    height: 15px;
}

/* ========================================
   Elementor Overrides
   ======================================== */
.elementor-page .reg-header,
.elementor-page .reg-footer {
    /* Ensure theme header/footer display even on Elementor pages */
}

/* Force REG widgets to break out of Elementor's boxed container */
.elementor-widget-reg_hero_slider,
.elementor-widget-reg_latest_cards,
.elementor-widget-reg_latest_features,
.elementor-widget-reg_emunah,
.elementor-widget-reg_bima,
.elementor-widget-reg_parsha,
.elementor-widget-reg_explore_series,
.elementor-widget-reg_community,
.elementor-widget-reg_page_hero,
.elementor-widget-reg_article_grid,
.elementor-widget-reg_filter_pills,
.elementor-widget-reg_sponsor_banner,
.elementor-widget-reg_parsha_books,
.elementor-widget-reg_video_player,
.elementor-widget-reg_series_page,
.elementor-widget-reg_search_results,
.elementor-widget-reg_parsha_single,
.elementor-widget-reg_watch_page,
.elementor-widget-reg_series_index {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
}

/* ========================================
   Responsive
   ======================================== */
@media (max-width: 1200px) {
    /* --- Mobile / tablet header (Figma: compact 62px bar, #1b1a36) --- */
    .reg-header { background-color: var(--reg-footer-dark); }

    .reg-header-top {
        height: 62px;
        padding: 0 16px;
        gap: 12px;
    }

    .reg-logo img { height: 32px; }

    .reg-search-bar {
        width: 180px;
        height: 36px;
        border: 2px solid var(--reg-white);
        padding: 0 4px 0 14px;
        margin-left: auto;
    }

    .reg-search-bar input { font-size: 12px; }
    .reg-search-bar button img { width: 28px; height: 28px; }

    /* Hide desktop action icons and collapse nav into a drawer */
    .reg-header-icons { display: none; }
    .reg-header-menu-toggle { display: inline-flex; margin-left: 0; }

    .reg-nav {
        display: none;
        padding: 16px 20px 24px;
        background-color: var(--reg-footer-dark);
        border-top: 1px solid rgba(255, 255, 255, 0.12);
    }
    .reg-header[data-reg-menu-open="true"] .reg-nav { display: block; }

    .reg-nav-list {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        justify-content: flex-start;
        width: auto;
        flex-wrap: nowrap;
    }

    .reg-nav-link {
        justify-content: flex-start;
        width: 100%;
    }

    .reg-nav-mobile-actions {
        display: flex;
        gap: 24px;
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        justify-content: space-around;
    }

    .reg-nav-mobile-actions .reg-header-icon-link {
        flex-direction: column;
        gap: 4px;
        font-size: 13px;
    }

    .reg-community-image,
    .reg-community-form-card {
        width: 100%;
        max-width: 600px;
    }

    .reg-community-image {
        height: 400px;
    }

    .reg-latest-features-row {
        grid-template-columns: 1fr;
    }

    .reg-feature-card {
        height: auto;
        min-height: 300px;
    }

    .reg-explore-card {
        width: 280px;
        min-width: 280px;
    }

    .reg-emunah-inner {
        flex-direction: column;
    }

    .reg-emunah-left {
        width: 100%;
    }

    .reg-emunah-right {
        min-height: 400px;
    }

    .reg-parsha-inner {
        flex-direction: column;
    }

    .reg-parsha-text {
        flex: none;
        width: 100%;
    }

    .reg-parsha-video {
        width: 100%;
    }

    .reg-parsha-video img {
        height: 300px;
    }

    .reg-article-grid--4col {
        grid-template-columns: repeat(3, 1fr);
    }

    .reg-article-grid--3col {
        grid-template-columns: repeat(3, 1fr);
    }

    .reg-page-hero {
        width: calc(100% - 40px);
        min-height: 450px;
        padding: 32px 40px;
    }

    .reg-page-hero-title {
        font-size: 34px;
    }

    .reg-page-hero-subtitle {
        font-size: 20px;
        line-height: 1.4;
    }

    .reg-search-results-grid--4col {
        grid-template-columns: repeat(3, 1fr);
    }

    .reg-parsha-books-grid,
    .reg-parsha-books-grid--parshiyos {
        grid-template-columns: repeat(3, 1fr);
    }

    .reg-video-player-layout--with-sidebar {
        grid-template-columns: 1fr;
    }

    .reg-single-content-layout--with-sidebar {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .reg-single-article-hero-img {
        height: 420px;
    }

    .reg-single-latest {
        width: 100%;
        position: static;
    }

    .reg-single-related-grid,
    .reg-single-related-scroll {
        grid-template-columns: repeat(2, 1fr);
    }

    .reg-single-related-thumb {
        height: 180px;
    }

    /* Single post dark-wrap responsive — 1200px */
    .reg-single-dark-wrap {
        padding: 28px 24px 50px;
    }

    .reg-single-media-frame {
        height: auto;
        aspect-ratio: 16 / 9;
    }

    .reg-single-two-col {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .reg-single-transcript-box {
        position: static;
        max-height: 460px;
        height: auto;
    }

    .reg-single-teaching-complete h2 {
        font-size: 32px;
    }

    .reg-single-explore-scroll {
        grid-template-columns: repeat(3, 1fr);
    }

    .reg-single-explore-card-title {
        font-size: 18px;
    }

    .reg-single-support-cta {
        padding: 36px 40px;
    }

    .reg-single-support-cta-title {
        font-size: 30px;
    }
}

@media (max-width: 768px) {
    /* Header mobile styles live in the 1200px breakpoint block above. */

    .reg-community-section {
        padding: 40px 20px;
    }

    .reg-community-form-card h2 {
        font-size: 28px;
        line-height: 36px;
    }

    .reg-footer-logo-mobile { display: block; }

    .reg-footer-links {
        padding: 0 10px 30px;
    }

    .reg-footer-links-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 32px;
    }

    .reg-footer-column {
        width: 100%;
    }

    .reg-social-links {
        margin-top: 0;
    }

    /* Copyright — Lato Light 16px, centered, 0.5px top border per mobile spec */
    .reg-copyright {
        border-top-width: 0.5px;
        padding: 0 20px;
    }

    .reg-copyright-inner {
        flex-direction: column;
        height: auto;
        padding: 24px 0;
        gap: 12px;
        text-align: center;
        justify-content: center;
    }

    .reg-copyright-text {
        font-size: 16px;
    }

    .reg-copyright-links a {
        font-size: 16px;
    }

    /* Hero slider — Figma 2833:3171: 370w x 208h, 23 radius, 50px play overlay */
    .reg-hero-slider {
        padding: 23px 10px 0;
    }

    .reg-hero-slide {
        height: 208px;
        border-radius: 23px;
    }

    .reg-hero-play-overlay {
        width: 50px;
        height: 50px;
    }

    /* The mobile box (370x208) is already ~16:9, so the flush-left/height-
       fill treatment leaves no meaningful blank column — revert to the
       original bottom-anchored, full-bleed layout used above 768px. */
    .reg-hero-slide .reg-hero-bg {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
    }

    .reg-hero-overlay {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.8) 53%);
    }

    .reg-hero-content {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        transform: none;
        max-width: none;
        padding: 16px;
    }

    .reg-hero-badge {
        font-size: 13px;
        padding: 5px 20px;
        margin-bottom: 10px;
    }

    .reg-hero-title {
        font-size: 18px;
        line-height: 1.2;
        margin-bottom: 4px;
        max-width: none;
    }

    .reg-hero-meta {
        font-size: 11px;
    }

    /* Latest section — Figma 2833:3216: Lora SemiBold 28 title, cards 247w/256h */
    .reg-latest-section {
        padding: 25px 10px 30px;
    }

    .reg-latest-header {
        margin-bottom: 16px;
        gap: 8px;
    }

    .reg-section-title {
        font-size: 28px;
        font-family: var(--font-lora);
    }

    .reg-arrow-circle,
    .reg-arrow-circle img {
        width: 24px;
        height: 24px;
        min-width: 24px;
        min-height: 24px;
    }

    .reg-latest-cards-scroll {
        gap: 16px;
        padding-bottom: 10px;
        margin-bottom: 20px;
    }

    .reg-latest-article-card {
        width: 247px;
        min-width: 247px;
    }

    .reg-latest-article-thumb {
        height: 143px;
    }

    .reg-latest-article-body {
        padding: 10px 8px;
    }

    .reg-latest-article-title {
        font-size: 18px;
        line-height: 25px;
    }

    .reg-latest-article-date span {
        font-size: 14px;
    }

    /* Feature cards — stack on mobile with per-card mobile sizing */
    .reg-latest-features-row {
        gap: 20px;
    }

    .reg-feature-card {
        height: auto;
        min-height: 0;
        padding: 20px 16px 0;
    }

    .reg-feature-card--video-series {
        min-height: 256px;
        padding: 0;
    }

    .reg-feature-video-content {
        padding: 20px;
    }

    .reg-feature-video-title {
        font-size: 35px;
        line-height: 45px;
        margin-bottom: 16px;
    }

    .reg-feature-video-btn {
        font-size: 16px;
        padding: 6px 30px;
    }

    .reg-feature-card--embrace {
        min-height: 290px;
    }

    .reg-embrace-text {
        gap: 10px;
    }

    .reg-embrace-line {
        font-size: 25px;
        line-height: 58px;
    }

    .reg-feature-card--articles {
        min-height: 449px;
        padding: 24px 20px 20px;
    }

    .reg-articles-card-title {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .reg-articles-list li a {
        font-size: 16px;
        line-height: 20px;
    }

    /* Emunah section — Figma 2846:3400: Lora 28 title, horizontal episode rows, video 208h */
    .reg-emunah-section,
    .reg-bima-section,
    .reg-parsha-section {
        padding: 30px 10px;
    }

    .reg-emunah-inner {
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        min-height: 0;
    }

    .reg-emunah-left,
    .reg-emunah-right {
        padding: 0;
    }

    .reg-emunah-title,
    .reg-parsha-title {
        font-size: 28px;
        font-family: var(--font-lora);
        text-align: center;
        margin-bottom: 20px;
    }

    .reg-emunah-episodes {
        gap: 12px;
    }

    .reg-emunah-episode {
        padding: 15px;
        gap: 15px;
    }

    .reg-emunah-ep-thumb {
        width: 132px;
        height: 74px;
    }

    .reg-emunah-ep-info h4 {
        font-size: 18px;
    }

    .reg-emunah-ep-number {
        font-size: 16px;
    }

    .reg-emunah-video-wrap {
        height: 208px;
    }

    .reg-play-lg {
        width: 50px;
        height: 50px;
    }

    .reg-emunah-video-title {
        font-size: 23px;
        line-height: 35px;
    }

    .reg-emunah-video-meta {
        font-size: 18px;
        line-height: 35px;
    }

    /* Bima — Figma 2839:3272: white card wrapper, Lora 28 header, 244w cards */
    .reg-bima-inner {
        padding: 23px 10px 20px;
    }

    .reg-bima-header {
        margin-bottom: 18px;
    }

    .reg-section-title--dark {
        font-family: var(--font-lora);
        font-size: 28px;
    }

    .reg-bima-cards {
        gap: 18px;
    }

    .reg-bima-card {
        width: 244px;
    }

    .reg-bima-card-thumb {
        height: 142px;
    }

    .reg-bima-card-title {
        font-size: 18px;
        line-height: 25px;
    }

    .reg-bima-card-date {
        font-size: 17px;
    }

    .reg-bima-ep-badge {
        font-size: 12px;
    }

    /* Parsha — Figma 2839:3384: stacked, video 184h, Lora 28 title, btn 20 */
    .reg-parsha-inner {
        min-height: 0;
        padding: 23px 16px 30px;
        text-align: center;
    }

    .reg-parsha-text {
        padding: 0;
    }

    .reg-parsha-video {
        padding: 0;
        width: 100%;
        margin-bottom: 20px;
    }

    .reg-parsha-video img {
        height: 184px;
        border-radius: 20px;
    }

    .reg-parsha-play-overlay img {
        width: 50px;
        height: 50px;
    }

    .reg-parsha-hebcal-name {
        font-size: 22px;
    }

    .reg-parsha-subtitle {
        font-size: 18px;
        line-height: 26px;
        margin-bottom: 12px;
    }

    .reg-parsha-name {
        font-size: 25px;
        line-height: 35px;
    }

    .reg-parsha-section .reg-feature-video-btn,
    .reg-parsha-inner .reg-emunah-all-btn,
    .reg-parsha-watch-btn {
        font-size: 20px;
        padding: 10px 30px;
    }

    /* Explore Our Series — Figma 2846:3402: Lora 28 title, 247w cards, 18px title */
    .reg-explore-section {
        padding: 30px 10px 40px;
    }

    .reg-explore-title {
        font-size: 28px;
        line-height: 35px;
        margin-bottom: 24px;
    }

    .reg-explore-grid {
        gap: 16px;
    }

    .reg-explore-card {
        width: 247px;
        min-width: 247px;
    }

    .reg-explore-card-thumb {
        height: 143px;
    }

    .reg-explore-card-body {
        padding: 10px 8px;
    }

    .reg-explore-card-title {
        font-size: 18px;
        line-height: 25px;
    }

    .reg-explore-card-watch {
        font-size: 18px;
    }

    .reg-explore-play-icon {
        width: 21px;
        height: 21px;
    }

    .reg-page-hero {
        margin: 20px auto 0;
        width: calc(100% - 40px);
        max-width: 370px;
        min-height: 265px;
        padding: 20px 24px;
        border-radius: 23px;
    }

    .reg-page-hero-overlay {
        border-radius: 23px;
    }

    .reg-page-hero-title {
        font-family: var(--font-lora);
        font-weight: 600;
        font-size: 26px;
        margin-bottom: 8px;
        line-height: 1.2;
    }

    .reg-page-hero-subtitle {
        font-family: var(--font-roboto);
        font-weight: 500;
        font-size: 20px;
        line-height: 1.4;
    }

    .reg-page-hero-meta {
        left: 24px;
        bottom: 20px;
        font-size: 18px;
    }

    .reg-page-hero-dots {
        right: 24px;
        bottom: 20px;
        gap: 8px;
    }

    .reg-page-hero-dot {
        width: 8px;
        height: 8px;
    }

    .reg-filter-pills {
        padding: 20px;
        gap: 12px;
        flex-direction: column;
        align-items: flex-start;
    }

    .reg-filter-pills-toggle {
        display: inline-flex;
    }

    /* Collapse the pill row into the dropdown toggle; reveal on open */
    .reg-filter-pills > .reg-filter-pill {
        display: none;
    }

    .reg-filter-pills.is-open > .reg-filter-pill {
        display: inline-flex;
    }

    .reg-filter-pill {
        height: 33px;
        font-size: 18px;
        padding: 8px 20px;
    }

    .reg-article-grid {
        padding: 20px;
        gap: 20px;
    }

    .reg-article-grid--3col,
    .reg-article-grid--4col {
        grid-template-columns: 1fr;
        max-width: 370px;
        margin: 0 auto;
    }

    .reg-article-grid-card {
        padding: 14px;
    }

    .reg-article-grid-title {
        font-size: 22px;
        line-height: 28px;
    }

    .reg-article-grid-author {
        font-size: 15px;
    }

    .reg-article-grid-meta {
        font-size: 18px;
    }

    .reg-article-grid-pagination {
        padding: 24px 20px 40px;
        gap: 8px;
    }

    .reg-article-grid-pagination a,
    .reg-article-grid-pagination span {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }

    .reg-search-results {
        padding: 20px;
    }

    .reg-search-results-grid--3col,
    .reg-search-results-grid--4col {
        grid-template-columns: repeat(2, 1fr);
    }

    .reg-parsha-books {
        padding: 30px 10px;
    }

    .reg-parsha-books-title {
        font-size: 28px;
        text-align: center;
    }

    .reg-parsha-books-book-title {
        font-size: 24px;
    }

    .reg-parsha-books-grid,
    .reg-parsha-books-grid--parshiyos {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }

    .reg-parsha-books-parsha-title {
        font-size: 15px;
        padding: 10px 12px 12px;
    }

    .reg-parsha-books-parsha-badge {
        font-size: 11px;
        padding: 3px 8px 3px 4px;
    }

    .reg-parsha-books-book {
        margin-top: 28px;
    }

    .reg-parsha-books-book-title {
        font-size: 22px;
        padding: 6px 12px;
    }

    .reg-video-player-section {
        padding: 20px;
    }

    .reg-video-player-title {
        font-size: 24px;
    }

    .reg-series-page {
        padding: 20px;
    }

    .reg-series-episode-card {
        width: 250px;
        min-width: 250px;
    }

    /* Parsha Single mobile — Figma 3111:3288 */
    .reg-parsha-single {
        padding: 20px 10px 30px;
    }

    .reg-parsha-single .reg-hero-slide {
        margin-bottom: 20px;
    }

    .reg-parsha-single-name,
    .reg-parsha-single-videos-header h3 {
        font-size: 18px;
    }

    .reg-parsha-single-videos-scroll {
        flex-direction: column;
        gap: 15px;
        padding-bottom: 0;
        margin-bottom: 30px;
    }

    .reg-parsha-single-video-card {
        display: flex;
        align-items: flex-start;
        gap: 15px;
        width: 100%;
        min-width: 0;
    }

    .reg-parsha-single-card-thumb {
        width: 149px;
        min-width: 149px;
        height: 84px;
        border-radius: 5px;
        margin-bottom: 0;
    }

    .reg-parsha-single-card-body {
        flex: 1;
        min-width: 0;
    }

    .reg-parsha-single-card-title {
        font-size: 16px;
        line-height: 22px;
    }

    .reg-parsha-single-resources-title {
        font-size: 28px;
        text-align: center;
        margin-bottom: 20px;
    }

    .reg-parsha-single-resources-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 13px;
    }

    .reg-parsha-single-resource-icon {
        width: 100%;
        height: 149px;
    }

    .reg-parsha-single-resource-dl {
        font-size: 14px;
    }

    .reg-sponsor-banner {
        padding: 22px 16px;
        margin: 20px 10px;
        border-radius: 16px;
    }

    .reg-sponsor-banner-content {
        flex-direction: column;
        gap: 16px;
    }

    .reg-sponsor-banner-title {
        font-size: 18px;
        text-align: center;
    }

    .reg-sponsor-banner-desc {
        font-size: 14px;
    }

    .reg-sponsor-banner-btn {
        font-size: 14px;
        padding: 8px 24px;
    }

    /* Image-led sponsor banner — mobile (Figma 370×324) */
    .reg-sponsor-banner--image {
        margin: 20px 10px;
        width: calc(100% - 20px);
        min-height: 0;
        border-radius: 15px;
    }

    .reg-sponsor-banner--image .reg-sponsor-banner-image {
        height: 324px;
        border-radius: 15px;
    }

    .reg-sponsor-banner--image .reg-sponsor-banner-content {
        left: 16px;
        right: 16px;
        bottom: 16px;
    }

    .reg-sponsor-banner--image .reg-sponsor-banner-title {
        font-size: 22px;
    }

    .reg-sponsor-banner-label {
        top: 10px;
        left: 10px;
        font-size: 11px;
        padding: 4px 12px;
    }

    /* Single post — article template responsive */
    .reg-single-article-hero {
        padding: 15px 10px 0;
    }

    .reg-single-article-hero-img {
        height: 208px;
        border-radius: 14px;
    }

    .reg-single-author-row {
        gap: 12px;
        margin-bottom: 16px;
    }

    .reg-single-author-row-avatar {
        width: 60px;
        height: 60px;
    }

    .reg-single-author-row-name {
        font-size: 15px;
    }

    .reg-single-author-row-date {
        font-size: 12px;
    }

    .reg-single-title {
        font-size: 24px;
    }

    .reg-single-meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .reg-single-body {
        font-size: 16px;
    }

    .reg-single-body h2 {
        font-size: 22px;
    }

    .reg-single-body h3 {
        font-size: 20px;
    }

    .reg-single-content-layout {
        padding: 20px 10px 30px;
        gap: 24px;
    }

    .reg-single-author-bio {
        flex-direction: column;
    }

    .reg-single-actions {
        gap: 18px;
        padding: 14px 20px;
    }

    .reg-single-share-label {
        font-size: 16px;
    }

    .reg-single-share-list {
        gap: 12px;
    }

    .reg-single-latest {
        width: 100%;
        padding: 18px 0 8px;
    }

    .reg-single-latest-title {
        font-size: 17px;
        padding: 0 18px 14px;
    }

    .reg-single-latest-link {
        padding: 12px 18px;
        font-size: 13px;
    }

    .reg-single-related {
        padding: 30px 10px 40px;
    }

    .reg-single-related-title {
        font-size: 20px;
    }

    .reg-single-related-grid,
    .reg-single-related-scroll {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .reg-single-related-thumb {
        height: 226px;
    }

    .reg-single-related-card-title {
        font-size: 18px;
    }

    /* Single post — dark wrap (video/audio) responsive — Figma mobile 3138:3472 / 3154:3464 */
    .reg-single-dark-wrap {
        padding: 20px 10px 40px;
    }

    .reg-single-media {
        max-width: 370px;
    }

    .reg-single-media-frame {
        height: 208px;
        aspect-ratio: auto;
        border-radius: 23px;
        border-width: 1px;
    }

    .reg-single-media-play img {
        width: 50px;
        height: 50px;
    }

    .reg-single-player-bar {
        margin-top: 16px;
    }

    .reg-single-dark-wrap .nooracast-player--inline {
        padding: 12px 16px;
    }

    .reg-single-dark-wrap .nooracast-player__artwork {
        width: 56px;
        height: 56px;
    }

    .reg-single-dark-wrap .nooracast-player__btn--play {
        width: 40px;
        height: 40px;
    }

    .reg-audio-progress {
        padding: 12px 18px;
        gap: 10px;
        margin-top: 16px;
    }

    .reg-audio-progress-time {
        font-size: 13px;
    }

    .reg-single-two-col {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 24px;
        max-width: 370px;
    }

    .reg-single-dark-body {
        font-size: 16px;
    }

    .reg-single-dark-body p:first-child {
        font-size: 18px;
    }

    .reg-single-dark-body h2 {
        font-size: 22px;
    }

    .reg-single-transcript-box {
        position: static;
        max-height: 224px;
        height: 224px;
        padding: 14px;
        border-radius: 10px;
    }

    .reg-single-transcript-title {
        font-size: 18px;
        margin-bottom: 10px;
    }

    .reg-single-transcript-entry {
        gap: 10px;
        margin-bottom: 12px;
        padding-bottom: 12px;
    }

    .reg-single-transcript-time {
        font-size: 14px;
        min-width: 32px;
    }

    .reg-single-transcript-entry p {
        font-size: 15px;
        line-height: 1.45;
    }

    .reg-single-teaching-complete {
        padding: 36px 10px 30px;
    }

    .reg-single-teaching-complete h2 {
        font-size: 26px;
        padding: 20px 0;
    }

    .reg-single-explore-series {
        padding: 0;
    }

    .reg-single-explore-series-title {
        font-size: 18px;
        margin-bottom: 14px;
    }

    /* Mobile explore cards: horizontal thumb + title layout per Figma 3138:3475 */
    .reg-single-explore-scroll {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

    .reg-single-explore-card {
        flex-direction: row;
        gap: 15px;
        background: transparent;
        border: 0;
        padding: 0;
        align-items: flex-start;
    }

    .reg-single-explore-card:hover {
        transform: none;
        background: transparent;
    }

    .reg-single-explore-card-thumb {
        width: 149px;
        height: 84px;
        border-radius: 5px;
        flex-shrink: 0;
    }

    .reg-single-explore-card-title {
        font-size: 16px;
        line-height: 1.375;
        min-height: 0;
        -webkit-line-clamp: 2;
        margin-bottom: 6px;
    }

    .reg-single-explore-card-icons {
        gap: 6px;
    }

    .reg-single-explore-icon {
        height: 20px;
    }

    /* Mobile support CTA */
    .reg-single-support-cta {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 28px 20px;
        margin-top: 40px;
        border-radius: 10px;
        min-height: 118px;
        gap: 14px;
    }

    .reg-single-support-cta-title {
        font-size: 25px;
        max-width: 100%;
    }

    .reg-single-support-cta-btn {
        font-size: 16px;
        padding: 6px 30px;
        border-radius: 23px;
    }
}

/* ========================================
   Living With Emunah — Full Page (Figma 1688:58 desktop, 1710:138 mobile)
   Distinct from homepage .reg-emunah-* (REG_Emunah_Widget).
   ======================================== */
.reg-emunah-page {
    background: var(--reg-primary-dark);
    padding: 40px 38px 60px;
    max-width: 1440px;
    margin: 0 auto;
    color: var(--reg-white);
    /* Full-bleed navy background: paints navy edge-to-edge (no white side bands
       from a transparent page/Elementor wrapper) while keeping content centered.
       Safe because the page wrappers use overflow-x: visible. */
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}

/* Hero now shares the homepage's .reg-hero-slide component (see "Homepage
   Hero Slider" rules above) — just add the section's own bottom spacing. */
.reg-emunah-page .reg-hero-slide {
    margin-bottom: 40px;
}

/* Podcast platforms row */
.reg-emunah-page-podcasts {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 60px;
    margin: 40px 0;
}

.reg-emunah-page-podcast img {
    height: 40px;
    width: auto;
    display: block;
}

/* Text-badge fallback for podcast platforms (used by the landing-page template
   when official badge images aren't present). */
.reg-emunah-podcast-badge {
    display: inline-flex;
    align-items: center;
    padding: 9px 20px;
    border: 1px solid var(--reg-border-light);
    border-radius: 100px;
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 15px;
    color: var(--reg-white);
    white-space: nowrap;
    transition: background-color 0.2s ease, color 0.2s ease;
}

a.reg-emunah-podcast-badge:hover {
    background: var(--reg-white);
    color: var(--reg-primary-dark);
}

/* Landing template: paint the whole page navy so the centered sections never
   sit on a white background. */
body.reg-emunah-landing-page {
    background-color: var(--reg-primary-dark);
}

/* Episodes grid header */
.reg-emunah-page-grid-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 30px 0 20px;
}

.reg-emunah-page-grid-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin: 0;
}

.reg-emunah-page-grid-arrow {
    color: var(--reg-white);
    font-size: 34px;
    line-height: 1;
}

/* Episodes grid cards */
.reg-emunah-page-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}

.reg-emunah-page-card {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--reg-white);
    border-radius: 20px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.reg-emunah-page-card:hover {
    background: rgba(255, 255, 255, 0.18);
}

.reg-emunah-page-card-thumb {
    width: 100%;
    height: 140px;
    border-radius: 15px;
    overflow: hidden;
}

.reg-emunah-page-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-emunah-page-card-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    line-height: 28px;
    color: var(--reg-white);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Episode card actions: two yellow circular icons (listen + open) per Figma */
.reg-emunah-page-card-actions {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
}

.reg-emunah-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--reg-accent-yellow);
    color: var(--reg-primary-dark);
    cursor: pointer;
    transition: transform 0.15s ease;
}

.reg-emunah-card-icon:hover {
    transform: scale(1.08);
}

.reg-emunah-card-icon svg {
    display: block;
}

/* The listen icon is a NooraCast trigger — override the plugin's navy circle skin. */
.reg-emunah-card-icon.nooracast-trigger {
    width: 36px;
    height: 36px;
    background: var(--reg-accent-yellow);
    color: var(--reg-primary-dark);
}

.reg-emunah-card-icon.nooracast-trigger:hover {
    background: var(--reg-accent-yellow);
    transform: scale(1.08);
}

.reg-emunah-card-icon.nooracast-trigger.is-playing {
    background: var(--reg-white);
}

/* Support Living With Emunah banner */
.reg-emunah-page-support {
    position: relative;
    max-width: 1364px;
    margin: 60px auto 0;
    min-height: 160px;
    border-radius: 10px;
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.85)), url('/wp-content/uploads/2026/07/Rectangle-52.png');
    background-size: cover;
    background-position: center;
    background-color: var(--reg-primary-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px;
    flex-wrap: wrap;
    padding: 0 60px;
    color: var(--reg-white);
}

.reg-emunah-page-support-title {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin: 0;
    text-shadow: 0 40px 20px rgba(0, 0, 0, 0.3);
}

.reg-emunah-page-support-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    padding: 10px 30px;
    border-radius: 23px;
    transition: opacity 0.3s ease;
}

.reg-emunah-page-support-btn:hover {
    opacity: 0.9;
}

/* ========================================
   Watch Page (Figma 2984:3362 desktop, 3248:4265 mobile)
   ======================================== */
.reg-watch-page {
    background: var(--reg-primary-dark);
    padding: 40px 38px 60px;
    max-width: 1440px;
    margin: 0 auto;
    color: var(--reg-white);
    /* Full-bleed navy background (matches .reg-emunah-page) so the Watch page
       paints navy edge-to-edge instead of showing white side bands. */
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}

.reg-watch-page-hero {
    position: relative;
    width: 100%;
    max-width: 1364px;
    min-height: 559px;
    margin: 0 auto 40px;
    border: 1px solid var(--reg-white);
    border-radius: 23px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
}

.reg-watch-page-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 27%, rgba(0, 0, 0, 0.75) 55%);
    border-radius: 23px;
    pointer-events: none;
}

.reg-watch-page-hero-content {
    position: relative;
    z-index: 1;
    padding: 40px 56px 48px;
    max-width: 1100px;
}

.reg-watch-page-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    line-height: 1.2;
    color: var(--reg-white);
    margin: 0 0 20px;
}

.reg-watch-page-hero-ctas {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.reg-watch-page-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    padding: 10px 30px;
    border-radius: 23px;
    transition: opacity 0.3s ease;
}

.reg-watch-page-hero-btn:hover {
    opacity: 0.9;
}

/* Section wrapper */
.reg-watch-page-section {
    margin: 40px 0;
}

.reg-watch-page-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 20px;
}

.reg-watch-page-section-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin: 0 0 20px;
}

.reg-watch-page-section-header .reg-watch-page-section-title {
    margin: 0;
}

.reg-watch-page-section-arrow {
    color: var(--reg-white);
    font-size: 28px;
    line-height: 1;
}

/* Ongoing Series — horizontal scroll rail of cards (Figma REG FULL 1:957) */
.reg-watch-page-ongoing {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 15px;
}

.reg-watch-page-ongoing::-webkit-scrollbar {
    display: none;
}

.reg-watch-page-ongoing-card {
    width: 300px;
    min-width: 300px;
    flex: 0 0 auto;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--reg-white);
    border-radius: 20px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.reg-watch-page-ongoing-card:hover {
    background: rgba(255, 255, 255, 0.18);
}

.reg-watch-page-ongoing-thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 15px;
    overflow: hidden;
}

.reg-watch-page-ongoing-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-watch-page-ongoing-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    line-height: 28px;
    color: var(--reg-white);
    margin: 0;
}

.reg-watch-page-ongoing-watch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 22px;
    color: var(--reg-white);
}

.reg-watch-page-ongoing-watch img {
    width: 26px;
    height: 26px;
}

/* Horizontal scroll row — used for "New Episodes" & "Full Journey" */
.reg-watch-page-row {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 15px;
}

.reg-watch-page-row::-webkit-scrollbar {
    display: none;
}

.reg-watch-page-card {
    width: 270px;
    min-width: 270px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--reg-white);
    border-radius: 20px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.reg-watch-page-card:hover {
    background: rgba(255, 255, 255, 0.18);
}

.reg-watch-page-card-thumb {
    width: 100%;
    height: 140px;
    border-radius: 15px;
    overflow: hidden;
}

.reg-watch-page-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-watch-page-card-title {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    line-height: 28px;
    color: var(--reg-white);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Shorts — horizontal scroll rail of vertical thumbnails (Figma REG FULL 1:957) */
.reg-watch-page-shorts {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 15px;
}

.reg-watch-page-shorts::-webkit-scrollbar {
    display: none;
}

.reg-watch-page-short {
    position: relative;
    width: 200px;
    min-width: 200px;
    flex: 0 0 auto;
    border: 1px solid var(--reg-white);
    border-radius: 20px;
    overflow: hidden;
    aspect-ratio: 9 / 16;
    display: block;
}

.reg-watch-page-short img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-watch-page-short-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reg-watch-page-short-play img {
    width: 48px;
    height: 48px;
}

/* Support banner (reuse emunah-page style via own class for independence) */
.reg-watch-page-support {
    position: relative;
    max-width: 1364px;
    margin: 60px auto 0;
    min-height: 160px;
    border-radius: 10px;
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.85)), url('/wp-content/uploads/2026/07/Rectangle-52.png');
    background-size: cover;
    background-position: center;
    background-color: var(--reg-primary-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px;
    flex-wrap: wrap;
    padding: 0 60px;
    color: var(--reg-white);
}

.reg-watch-page-support-title {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin: 0;
    text-shadow: 0 40px 20px rgba(0, 0, 0, 0.3);
}

.reg-watch-page-support-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    padding: 10px 30px;
    border-radius: 23px;
    transition: opacity 0.3s ease;
}

.reg-watch-page-support-btn:hover {
    opacity: 0.9;
}

/* Tablet */
@media (max-width: 1200px) {
    .reg-emunah-page,
    .reg-watch-page {
        padding: 30px 20px 50px;
    }

    .reg-watch-page-hero {
        min-height: 380px;
    }

    .reg-watch-page-hero-title {
        font-size: 32px;
    }

    .reg-watch-page-hero-content {
        padding: 30px 32px 36px;
    }

    .reg-emunah-page-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .reg-emunah-page-podcasts {
        gap: 30px;
    }

    .reg-emunah-page-podcast img {
        height: 34px;
    }

    .reg-emunah-page-support-title,
    .reg-watch-page-support-title {
        font-size: 30px;
    }

    .reg-watch-page-ongoing-card {
        width: 280px;
        min-width: 280px;
    }

    .reg-watch-page-shorts {
        gap: 14px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .reg-emunah-page,
    .reg-watch-page {
        padding: 20px 10px 40px;
    }

    /* Watch page — hero becomes compact 208h card per Figma 1710:138 */
    .reg-watch-page-hero {
        min-height: 208px;
        border-radius: 23px;
        margin-bottom: 30px;
        align-items: center;
    }

    .reg-emunah-page .reg-hero-slide {
        margin-bottom: 30px;
    }

    .reg-watch-page-hero-content {
        padding: 0 20px 16px;
        text-align: center;
        width: 100%;
    }

    .reg-watch-page-hero-title {
        font-size: 20px;
        line-height: 26px;
        font-family: var(--font-lora);
    }

    .reg-emunah-page-podcasts {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin: 24px 0;
    }

    .reg-emunah-page-podcast {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 5px;
        padding: 3px 6px;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 36px;
    }

    .reg-emunah-page-podcast img {
        height: 30px;
        max-width: 100%;
        object-fit: contain;
    }

    .reg-emunah-page-grid-header {
        margin: 20px 0 14px;
    }

    .reg-emunah-page-grid-title,
    .reg-watch-page-section-title {
        font-size: 18px;
        line-height: 31px;
    }

    .reg-emunah-page-grid-arrow,
    .reg-watch-page-section-arrow {
        font-size: 22px;
    }

    /* Emunah grid -> list of wide horizontal rows on mobile */
    .reg-emunah-page-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .reg-emunah-page-card {
        flex-direction: row;
        gap: 15px;
        padding: 0;
        background: transparent;
        border: none;
        border-radius: 0;
    }

    .reg-emunah-page-card:hover {
        background: transparent;
    }

    .reg-emunah-page-card-thumb {
        width: 149px;
        min-width: 149px;
        height: 84px;
        border-radius: 5px;
    }

    .reg-emunah-page-card-title {
        font-size: 16px;
        line-height: 22px;
    }

    .reg-emunah-page-support,
    .reg-watch-page-support {
        min-height: 118px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 14px;
        padding: 24px 20px;
        text-align: center;
    }

    .reg-emunah-page-support-title,
    .reg-watch-page-support-title {
        font-size: 25px;
    }

    .reg-emunah-page-support-btn,
    .reg-watch-page-support-btn {
        font-size: 16px;
        padding: 6px 30px;
    }

    /* Watch page mobile specifics */
    .reg-watch-page-hero-ctas {
        justify-content: center;
        gap: 8px;
    }

    .reg-watch-page-hero-btn {
        font-size: 16px;
        padding: 6px 24px;
    }

    .reg-watch-page-ongoing {
        gap: 15px;
    }

    .reg-watch-page-ongoing-card {
        width: 240px;
        min-width: 240px;
        padding: 10px;
    }

    .reg-watch-page-ongoing-title {
        font-size: 16px;
        line-height: 22px;
    }

    .reg-watch-page-ongoing-watch {
        font-size: 16px;
    }

    .reg-watch-page-row {
        gap: 15px;
    }

    .reg-watch-page-card {
        width: 248px;
        min-width: 248px;
    }

    .reg-watch-page-card-title {
        font-size: 16px;
        line-height: 22px;
    }

    .reg-watch-page-shorts {
        gap: 10px;
    }

    .reg-watch-page-short {
        width: 140px;
        min-width: 140px;
    }

    .reg-watch-page-short-play img {
        width: 26px;
        height: 26px;
    }
}

/* ========================================
   Categories Index Page — Figma 2401:2539 / 3204:3814
   ======================================== */
.reg-categories-index {
    background: var(--reg-primary-dark);
    padding: 0 38px 40px;
    max-width: 1440px;
    margin: 0 auto;
}

.reg-categories-hero {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    padding: 16px 20px;
    margin: 30px auto 40px;
    max-width: 1364px;
    min-height: 106px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.reg-categories-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    line-height: 38px;
    color: var(--reg-white);
    margin: 0 0 4px;
}

.reg-categories-hero-subtitle {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 23px;
    line-height: 26px;
    color: var(--reg-white);
    margin: 0;
}

.reg-categories-section-heading {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    line-height: 38px;
    color: var(--reg-white);
    margin: 0 0 24px;
    max-width: 1364px;
    margin-left: auto;
    margin-right: auto;
}

.reg-categories-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
    max-width: 1364px;
    margin: 0 auto;
}

.reg-categories-card {
    position: relative;
    display: flex;
    align-items: flex-end;
    border: 1px solid var(--reg-white);
    border-radius: 10px;
    height: 202px;
    padding: 20px;
    overflow: hidden;
    background-color: var(--reg-footer-dark);
    background-size: cover;
    background-position: center;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.reg-categories-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35);
}

.reg-categories-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 46%, rgba(0, 0, 0, 0.8) 85%);
    border-radius: 10px;
    pointer-events: none;
}

.reg-categories-card-label {
    position: relative;
    z-index: 1;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 23px;
    line-height: 28px;
    color: var(--reg-white);
}

/* Tablet */
@media (max-width: 1200px) {
    .reg-categories-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .reg-categories-index {
        padding: 0 24px 30px;
    }

    .reg-search-results-bar {
        max-width: none;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .reg-categories-index {
        padding: 0 10px 24px;
    }

    .reg-categories-hero {
        margin: 16px 0 24px;
        min-height: 100px;
        padding: 12px 16px;
    }

    .reg-categories-hero-title {
        font-size: 30px;
        line-height: 38px;
    }

    .reg-categories-hero-subtitle {
        font-size: 20px;
        line-height: 26px;
    }

    .reg-categories-section-heading {
        font-size: 25px;
        line-height: 38px;
        margin-bottom: 16px;
        padding: 0 4px;
    }

    .reg-categories-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .reg-categories-card {
        height: 139px;
        padding: 12px;
    }

    .reg-categories-card-label {
        font-size: 18px;
        line-height: 22px;
    }

    /* Search results — mobile tuning */
    .reg-search-results {
        padding: 20px 10px 0;
    }

    .reg-search-results-bar {
        margin: 10px 0 20px;
    }

    .reg-search-results-form {
        height: 42px;
        padding: 0 8px 0 20px;
    }

    .reg-search-results-input {
        font-size: 16px;
    }

    .reg-search-results-count {
        font-size: 18px;
    }

    .reg-search-results-sort {
        font-size: 14px;
        padding: 5px 14px;
    }

    .reg-search-result-card {
        min-height: 0;
    }

    .reg-search-result-thumb {
        height: 160px;
    }

    .reg-search-result-title {
        font-size: 18px;
        line-height: 24px;
    }

    .reg-search-result-type {
        font-size: 18px;
    }

    .reg-search-result-type-icon {
        width: 22px;
        height: 22px;
    }
}

/* ========================================
   Donate Page
   ======================================== */
.reg-donate-page {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px 38px 80px;
    font-family: var(--font-lato);
    color: var(--reg-white);
    /* Dark navy page (Figma 1:1209) with full-bleed background */
    background: var(--reg-primary-dark);
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}

/* Hero */
.reg-donate-hero {
    display: grid;
    grid-template-columns: 1fr 493px;
    gap: 44px;
    align-items: start;
    padding-top: 78px;
}
.reg-donate-hero-title {
    font-family: var(--font-lora);
    font-size: 32px;
    line-height: 1.25;
    font-weight: 700;
    margin: 0 0 24px;
    color: var(--reg-white);
}
.reg-donate-hero-body {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 24px;
    color: var(--reg-white);
}
.reg-donate-hero-video {
    position: relative;
    display: block;
    margin-top: 20px;
    border: 1px solid var(--reg-white);
    border-radius: 23px;
    overflow: hidden;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
.reg-donate-hero-video img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: inherit;
}
.reg-donate-hero-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 82px;
    height: 82px;
    border-radius: 50%;
    background: var(--reg-accent-yellow);
    color: var(--reg-primary-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    transition: transform 0.2s ease;
}
.reg-donate-hero-video-play svg {
    margin-left: 4px;
}
a.reg-donate-hero-video:hover .reg-donate-hero-video-play {
    transform: translate(-50%, -50%) scale(1.06);
}

/* Donate form card */
.reg-donate-form {
    background: var(--reg-white);
    border: 1px solid var(--reg-light-gray);
    border-radius: 14px;
    padding: 28px 21px;
    box-shadow: 0 4px 20px rgba(34, 32, 68, 0.08);
    color: var(--reg-primary-dark);
}
.reg-donate-form-toggle {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--reg-light-gray);
    border-radius: 30px;
    padding: 4px;
    margin-bottom: 24px;
}
.reg-donate-form-tab {
    border: 0;
    background: transparent;
    padding: 12px 20px;
    border-radius: 26px;
    font-family: var(--font-lato);
    font-size: 14px;
    font-weight: 600;
    color: var(--reg-primary-dark);
    cursor: pointer;
    transition: all 0.2s ease;
}
.reg-donate-form-tab.is-active {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
}
.reg-donate-form-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}
.reg-donate-form-tier {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 14px 10px;
    background: var(--reg-light-gray);
    border: 2px solid transparent;
    border-radius: 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
}
.reg-donate-form-tier input[type="radio"] {
    position: absolute;
    opacity: 0;
    inset: 0;
    cursor: pointer;
}
.reg-donate-form-tier:has(input:checked) {
    border-color: var(--reg-primary-dark);
    background: var(--reg-white);
}
.reg-donate-form-tier-amount {
    font-family: var(--font-lora);
    font-size: 15px;
    font-weight: 700;
    color: var(--reg-primary-dark);
}
.reg-donate-form-tier-label {
    font-size: 11px;
    line-height: 1.3;
    color: var(--reg-primary-dark);
    opacity: 0.8;
}
.reg-donate-form-duration {
    margin-bottom: 20px;
}
.reg-donate-form-duration-field {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--reg-white);
    border: 1px solid var(--reg-light-gray);
    border-radius: 10px;
    padding: 14px 18px;
}
.reg-donate-form-duration-label {
    font-weight: 700;
    font-size: 15px;
}
.reg-donate-form-duration-caret {
    font-size: 12px;
    opacity: 0.7;
}
.reg-donate-form-duration-sub {
    font-size: 13px;
    opacity: 0.8;
    margin-top: 6px;
    padding: 0 4px;
}
.reg-donate-form-submit {
    width: 100%;
    padding: 14px 20px;
    background: var(--reg-primary-dark);
    color: var(--reg-white);
    border: 0;
    border-radius: 10px;
    font-family: var(--font-lato);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s ease;
}
.reg-donate-form-submit:hover {
    background: var(--reg-footer-dark);
}

/* Content blocks */
.reg-donate-block {
    max-width: 827px;
    margin: 80px 0 0;
}
.reg-donate-block-title {
    font-family: var(--font-lora);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--reg-white);
    margin: 0 0 24px;
}
.reg-donate-block-body {
    font-size: 16px;
    line-height: 1.7;
    color: var(--reg-white);
    margin: 0 0 16px;
}
.reg-donate-block-body--emphasis {
    font-weight: 600;
    font-style: italic;
}

.reg-donate-gift-list {
    list-style: none;
    padding: 0;
    margin: 16px 0 0;
}
.reg-donate-gift-list li {
    position: relative;
    padding: 12px 0 12px 28px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--reg-white);
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.reg-donate-gift-list li strong {
    color: var(--reg-accent-yellow);
}
.reg-donate-gift-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 22px;
    width: 14px;
    height: 2px;
    background: var(--reg-accent-yellow);
}

/* Testimonials */
.reg-donate-testimonials {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.reg-donate-testimonial {
    position: relative;
    margin: 0;
    padding: 60px 25px 25px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(253, 253, 255, 0.8);
    border-radius: 20px;
}
.reg-donate-testimonial-quote-mark {
    position: absolute;
    top: 10px;
    left: 25px;
    font-family: var(--font-lora);
    font-size: 72px;
    line-height: 1;
    color: var(--reg-accent-yellow);
}
.reg-donate-testimonial-quote {
    margin: 0 0 16px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--reg-white);
}
.reg-donate-testimonial-attrib {
    font-size: 16px;
    font-style: italic;
    color: var(--reg-accent-yellow);
}

/* FAQ */
.reg-donate-faq-item {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--reg-white);
    border-radius: 15px;
    padding: 19px 22px;
    margin-bottom: 14px;
}
.reg-donate-faq-q {
    font-family: var(--font-lora);
    font-size: 20px;
    font-weight: 600;
    color: var(--reg-white);
    cursor: pointer;
    list-style: none;
    position: relative;
    padding-right: 40px;
}
.reg-donate-faq-q::-webkit-details-marker {
    display: none;
}
.reg-donate-faq-q::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    font-weight: 400;
    color: var(--reg-white);
    transition: transform 0.2s ease;
}
.reg-donate-faq-item[open] .reg-donate-faq-q::after {
    content: "–";
}
.reg-donate-faq-a {
    padding: 16px 0 0;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 1200px) {
    .reg-donate-hero {
        grid-template-columns: 1fr 420px;
        gap: 30px;
    }
    .reg-donate-hero-title {
        font-size: 28px;
    }
    .reg-donate-form-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .reg-donate-page {
        padding: 24px 20px 60px;
    }
    .reg-donate-hero {
        grid-template-columns: 1fr;
        padding-top: 20px;
        gap: 24px;
    }
    .reg-donate-hero-title {
        font-size: 24px;
    }
    .reg-donate-block {
        margin-top: 48px;
    }
    .reg-donate-block-title {
        font-size: 22px;
    }
    .reg-donate-testimonials {
        grid-template-columns: 1fr;
    }
    .reg-donate-form-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ========================================
   About Page
   ======================================== */
.reg-about-page {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px 38px 80px;
    font-family: var(--font-lato);
    color: var(--reg-white);
    /* Dark navy page (Figma REG FULL 1:3451) with full-bleed background */
    background: var(--reg-primary-dark);
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}

/* Hero — full-bleed photo with overlaid eyebrow + headline + copy */
.reg-about-hero {
    position: relative;
    margin: 0 0 70px;
    border-radius: 16px;
    overflow: hidden;
    /* absolutely-positioned children can escape border-radius clipping */
    isolation: isolate;
    background: var(--reg-primary-dark);
    min-height: 480px;
    display: flex;
    align-items: center;
}
.reg-about-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: inherit;
}
.reg-about-hero-overlay {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to right, rgba(34, 32, 68, 0.94) 0%, rgba(34, 32, 68, 0.6) 48%, rgba(34, 32, 68, 0.15) 100%);
}
.reg-about-hero-content {
    position: relative;
    z-index: 1;
    max-width: 720px;
    padding: 48px 56px;
}
.reg-about-hero-eyebrow {
    display: inline-block;
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--reg-accent-yellow);
    margin-bottom: 18px;
}
.reg-about-hero-heading {
    font-family: var(--font-lora);
    font-weight: 700;
    font-size: 40px;
    line-height: 1.25;
    color: var(--reg-white);
    margin: 0 0 20px;
}
.reg-about-hero-body {
    font-size: 16px;
    line-height: 1.7;
    color: var(--reg-white);
    margin: 0 0 16px;
}
.reg-about-hero-emphasis {
    font-family: var(--font-lora);
    font-weight: 700;
    font-size: 20px;
    color: var(--reg-white);
    margin: 0;
}

/* Split two-column */
.reg-about-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 58px;
    align-items: center;
    margin: 70px 0;
}
.reg-about-split-image img {
    width: 100%;
    height: auto;
    border-radius: 14px;
    display: block;
}
.reg-about-copy-image {
    width: 100%;
    height: auto;
    border-radius: 14px;
    display: block;
    margin-top: 28px;
}
.reg-about-split-copy p {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 18px;
    color: var(--reg-white);
}
.reg-about-split-copy--emphasis {
    font-weight: 700;
    font-family: var(--font-lora);
    font-size: 20px;
}
.reg-about-split--image-right .reg-about-split-image {
    order: 2;
}

/* Section titles */
.reg-about-section-title {
    font-family: var(--font-lora);
    font-size: 30px;
    font-weight: 700;
    color: var(--reg-white);
    margin: 0 0 24px;
}
.reg-about-section-title--center {
    text-align: center;
}
.reg-about-section-lede {
    max-width: 900px;
    margin: 16px auto;
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
    text-align: center;
}

/* What I Do Every Week */
.reg-about-weekly {
    margin: 100px 0;
    text-align: center;
}
.reg-about-series-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin: 40px 0;
    text-align: left;
}
.reg-about-series-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 14px;
    padding: 28px 24px;
    min-height: 289px;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.reg-about-series-card:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.3);
}
.reg-about-series-card-title {
    font-family: var(--font-lora);
    font-size: 22px;
    font-weight: 700;
    color: var(--reg-accent-yellow);
    margin: 0 0 16px;
}
.reg-about-series-card-body {
    font-size: 15px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
}
a.reg-about-series-card {
    display: block;
    text-decoration: none;
    color: inherit;
}
.reg-about-series-card-link {
    display: inline-block;
    margin-top: 14px;
    font-family: var(--font-roboto);
    font-size: 14px;
    font-weight: 600;
    color: var(--reg-accent-yellow);
}

/* Beyond Boca collage */
.reg-about-beyond {
    margin: 100px 0;
    text-align: center;
}
.reg-about-beyond-image {
    margin: 40px 0;
    border-radius: 12px;
    overflow: hidden;
}
.reg-about-beyond-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: inherit;
}

/* Personal note */
.reg-about-note {
    max-width: 1166px;
    margin: 80px auto 0;
    padding: 48px 40px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 16px;
    text-align: center;
}
.reg-about-note p {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 18px;
    color: var(--reg-white);
}
.reg-about-note-emphasis {
    font-weight: 700;
    font-family: var(--font-lora);
    font-size: 18px;
}
.reg-about-note-signature {
    margin-top: 32px !important;
    font-style: italic;
    font-weight: 600;
}

@media (max-width: 1200px) {
    .reg-about-hero {
        min-height: 400px;
    }
    .reg-about-hero-heading {
        font-size: 34px;
    }
    .reg-about-section-title {
        font-size: 26px;
    }
    .reg-about-series-grid {
        gap: 14px;
    }
}

@media (max-width: 768px) {
    .reg-about-page {
        padding: 0 20px 60px;
    }
    .reg-about-hero {
        min-height: 360px;
    }
    .reg-about-hero-content {
        padding: 28px 24px;
    }
    .reg-about-hero-heading {
        font-size: 26px;
    }
    .reg-about-hero-emphasis {
        font-size: 18px;
    }
    .reg-about-split {
        grid-template-columns: 1fr;
        gap: 24px;
        margin: 48px 0;
    }
    /* Stack images above text */
    .reg-about-split--image-right .reg-about-split-image {
        order: -1;
    }
    .reg-about-section-title {
        font-size: 22px;
    }
    .reg-about-series-grid {
        grid-template-columns: 1fr;
    }
    .reg-about-series-card {
        min-height: 0;
    }
    .reg-about-beyond-image {
        margin: 28px 0;
    }
    .reg-about-note {
        padding: 32px 24px;
    }
}

/* ============================================================
   Speaking Page  (Figma 2657:3090 desktop, 3249:4071 mobile)
   ============================================================ */
.reg-speaking-page {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
    padding: 64px 38px 96px;
    font-family: var(--font-roboto);
}

/* Hero — single full-bleed photo card with overlaid centered text (Figma 1:3568) */
.reg-speaking-hero {
    position: relative;
    max-width: 1364px;
    min-height: 559px;
    margin: 0 auto 48px;
    border-radius: 23px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: rgba(255, 255, 255, 0.06);
}
.reg-speaking-hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.reg-speaking-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(34, 32, 68, 0.35) 0%, rgba(34, 32, 68, 0.78) 100%);
}
.reg-speaking-hero-content {
    position: relative;
    z-index: 1;
    max-width: 860px;
    padding: 48px 40px;
}
.reg-speaking-hero-eyebrow {
    font-family: var(--font-lato);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--reg-accent-yellow);
    font-size: 15px;
    margin-bottom: 14px;
}
.reg-speaking-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 52px;
    line-height: 1.15;
    margin: 0 auto 18px;
    max-width: 760px;
    color: var(--reg-white);
}
.reg-speaking-hero-sub {
    font-size: 18px;
    line-height: 28px;
    max-width: 700px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.92);
}

.reg-speaking-platforms {
    max-width: 1268px;
    margin: 0 auto 80px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.reg-speaking-platform {
    display: inline-flex;
    align-items: center;
    height: 40px;
    color: var(--reg-white);
    text-decoration: none;
    opacity: 0.95;
    transition: opacity 0.2s;
}

/* Polished fallback badge pills (shown when no platform image is uploaded) */
.reg-platform-pill {
    display: inline-flex;
    align-items: center;
    height: 40px;
    padding: 0 20px;
    border-radius: 100px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.06);
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 15px;
    color: var(--reg-white);
    white-space: nowrap;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.reg-speaking-platform:hover .reg-platform-pill {
    border-color: var(--reg-accent-yellow);
}
/* Brand tints for known platforms; unknown names keep the neutral pill */
.reg-platform-pill--apple-podcasts  { background: rgba(146, 60, 224, 0.22); border-color: rgba(146, 60, 224, 0.6); }
.reg-platform-pill--spotify         { background: rgba(29, 185, 84, 0.20);  border-color: rgba(29, 185, 84, 0.6); }
.reg-platform-pill--google-podcasts { background: rgba(66, 133, 244, 0.20); border-color: rgba(66, 133, 244, 0.6); }
.reg-platform-pill--stitcher        { background: rgba(238, 64, 53, 0.18);  border-color: rgba(238, 64, 53, 0.55); }
.reg-platform-pill--app-store       { background: rgba(0, 122, 255, 0.20);  border-color: rgba(0, 122, 255, 0.6); }
.reg-speaking-platform:hover { opacity: 1; }
.reg-speaking-platform img { max-height: 40px; width: auto; display: block; }
.reg-speaking-platform span {
    font-family: var(--font-lato);
    font-weight: 600;
    font-size: 14px;
    padding: 8px 16px;
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 100px;
}

.reg-speaking-block {
    max-width: 1364px;
    margin: 0 auto 80px;
}
.reg-speaking-block-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 32px;
    line-height: 1.2;
    margin: 0 0 22px;
    color: var(--reg-accent-yellow);
}
.reg-speaking-block-body {
    font-size: 18px;
    line-height: 28px;
    margin: 0 0 18px;
    color: rgba(255,255,255,0.92);
}

.reg-speaking-topics {
    max-width: 1401px;
    margin: 0 auto 80px;
}
.reg-speaking-section-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    line-height: 1.15;
    margin: 0 0 20px;
    color: var(--reg-white);
}
.reg-speaking-section-title--center { text-align: center; }
.reg-speaking-section-lede {
    font-size: 18px;
    line-height: 28px;
    color: rgba(255,255,255,0.9);
    margin: 0 0 40px;
    max-width: 1100px;
}
.reg-speaking-topics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 60px;
    row-gap: 48px;
    border-top: 1px solid rgba(255,255,255,0.15);
    padding-top: 32px;
}
.reg-speaking-topic {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}
.reg-speaking-topic-num {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 28px;
    color: var(--reg-accent-yellow);
    min-width: 50px;
    line-height: 1;
    padding-top: 4px;
}
.reg-speaking-topic-body { flex: 1; }
.reg-speaking-topic-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 20px;
    line-height: 1.3;
    margin: 0 0 12px;
    color: var(--reg-white);
}
.reg-speaking-topic-text {
    font-size: 16px;
    line-height: 28px;
    color: rgba(255,255,255,0.85);
    margin: 0;
}

.reg-speaking-formats {
    max-width: 1401px;
    margin: 0 auto 80px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
}
.reg-speaking-formats-image {
    height: 477px;
    border-radius: 23px;
    overflow: hidden;
    background: rgba(255,255,255,0.06);
}
.reg-speaking-formats-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.reg-speaking-formats-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.reg-speaking-formats-item {
    font-size: 16px;
    line-height: 1.55;
    color: rgba(255,255,255,0.9);
}
.reg-speaking-formats-item strong {
    color: var(--reg-accent-yellow);
    font-weight: 700;
}

.reg-speaking-testimonials-wrap {
    max-width: 1401px;
    margin: 0 auto 80px;
}
.reg-speaking-testimonials {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 48px;
}
.reg-speaking-testimonial {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 20px;
    padding: 32px 28px;
    position: relative;
    margin: 0;
}
.reg-speaking-testimonial-mark {
    position: absolute;
    top: -24px;
    left: 24px;
    width: 62px;
    height: 62px;
    background: var(--reg-accent-yellow);
    color: var(--reg-primary-dark);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--font-lora);
    font-size: 46px;
    font-weight: 700;
    line-height: 1;
}
.reg-speaking-testimonial-quote {
    margin: 16px 0 20px;
    font-size: 16px;
    line-height: 1.55;
    color: rgba(255,255,255,0.92);
}
.reg-speaking-testimonial-attrib {
    font-size: 14px;
    color: var(--reg-accent-yellow);
    font-weight: 600;
}

.reg-speaking-invite {
    max-width: 1401px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
}
.reg-speaking-invite-copy p {
    font-size: 18px;
    line-height: 28px;
    color: rgba(255,255,255,0.9);
    margin: 0 0 18px;
}
.reg-speaking-invite-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    padding: 12px 34px;
    min-height: 43px;
    background: var(--reg-accent-yellow);
    color: var(--reg-primary-dark);
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    border-radius: 100px;
    text-decoration: none;
    transition: transform 0.2s;
}
.reg-speaking-invite-button:hover { transform: translateY(-1px); }
.reg-speaking-invite-image {
    height: 477px;
    border-radius: 23px;
    overflow: hidden;
    background: rgba(255,255,255,0.06);
}
.reg-speaking-invite-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 1200px) {
    .reg-speaking-page { padding: 56px 28px 80px; }
    .reg-speaking-hero-title { font-size: 44px; }
    .reg-speaking-hero { min-height: 460px; }
    .reg-speaking-topics-grid { column-gap: 40px; row-gap: 40px; }
    .reg-speaking-section-title { font-size: 34px; }
    .reg-speaking-formats,
    .reg-speaking-invite {
        gap: 40px;
    }
    .reg-speaking-formats-image,
    .reg-speaking-invite-image { height: 380px; }
    .reg-speaking-testimonials { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    .reg-speaking-page { padding: 40px 16px 72px; }
    .reg-speaking-hero-title { font-size: 32px; }
    .reg-speaking-hero-sub { font-size: 16px; line-height: 26px; }
    .reg-speaking-hero { min-height: 380px; border-radius: 16px; }
    .reg-speaking-hero-content { padding: 32px 22px; }
    .reg-speaking-platforms {
        justify-content: center;
        gap: 14px 20px;
        margin-bottom: 56px;
    }
    .reg-speaking-platform img { max-height: 32px; }
    .reg-speaking-block-title { font-size: 26px; }
    .reg-speaking-block-body,
    .reg-speaking-section-lede,
    .reg-speaking-invite-copy p { font-size: 16px; line-height: 26px; }
    .reg-speaking-section-title { font-size: 28px; text-align: left; }
    .reg-speaking-section-title--center { text-align: center; }
    .reg-speaking-topics-grid {
        grid-template-columns: 1fr;
        row-gap: 32px;
    }
    .reg-speaking-topic-num { font-size: 24px; min-width: 40px; }
    .reg-speaking-formats,
    .reg-speaking-invite {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .reg-speaking-formats-image,
    .reg-speaking-invite-image { height: 240px; border-radius: 16px; }
    .reg-speaking-testimonials {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-top: 40px;
    }
    .reg-speaking-testimonial { padding: 28px 22px; }
    .reg-speaking-testimonial-mark { width: 52px; height: 52px; font-size: 38px; }
}

/* ============================================================
   Contact Page  (Figma 3158:3461 desktop, 3326:4249 mobile)
   ============================================================ */
.reg-contact-page {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
    padding: 80px 20px 96px;
    font-family: var(--font-roboto);
}

.reg-contact-hero {
    max-width: 654px;
    margin: 0 auto 40px;
    text-align: center;
}
.reg-contact-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    line-height: 50px;
    margin: 0 0 24px;
}
.reg-contact-hero-intro {
    font-size: 18px;
    line-height: 28px;
    margin: 0 0 16px;
    color: rgba(255,255,255,0.92);
}
.reg-contact-hero-note {
    font-size: 18px;
    line-height: 28px;
    margin: 0;
    color: rgba(255,255,255,0.75);
    font-style: italic;
}

.reg-contact-card {
    background: var(--reg-white);
    border-radius: 23px;
    max-width: 646px;
    margin: 0 auto 72px;
    padding: 35px 23px 30px;
    color: var(--reg-black);
    box-shadow: 0 18px 50px rgba(0,0,0,0.25);
}

.reg-contact-notice {
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 15px;
    margin-bottom: 18px;
}
.reg-contact-notice--success { background: rgba(22,163,74,0.1); color: #15803d; border: 1px solid rgba(22,163,74,0.3); }
.reg-contact-notice--error   { background: rgba(255,114,114,0.15); color: var(--reg-error-red); border: 1px solid var(--reg-error-red); }

.reg-contact-form { display: block; }
.reg-contact-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
}

.reg-contact-field { margin-bottom: 20px; }
.reg-contact-label {
    display: block;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    color: var(--reg-black);
    margin-bottom: 10px;
}
.reg-contact-input-wrap,
.reg-contact-textarea-wrap {
    position: relative;
}
.reg-contact-input-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(0,0,0,0.6);
    display: inline-flex;
}
.reg-contact-input,
.reg-contact-select {
    width: 100%;
    height: 50px;
    padding: 0 18px 0 44px;
    border: 1px solid var(--reg-black);
    border-radius: 100px;
    font-family: var(--font-roboto);
    font-size: 16px;
    color: var(--reg-black);
    background: var(--reg-white);
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.reg-contact-input::placeholder { color: rgba(0,0,0,0.6); }
.reg-contact-select {
    padding-left: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M1 1l7 6 7-6' stroke='%23000' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 22px center;
    padding-right: 50px;
    cursor: pointer;
}
.reg-contact-input:focus,
.reg-contact-select:focus,
.reg-contact-textarea:focus {
    outline: none;
    border-color: var(--reg-accent-yellow);
    box-shadow: 0 0 0 3px rgba(246,209,71,0.25);
}

.reg-contact-textarea {
    width: 100%;
    min-height: 90px;
    padding: 14px 18px 34px;
    border: 1px solid var(--reg-black);
    border-radius: 15px;
    font-family: var(--font-roboto);
    font-size: 16px;
    color: var(--reg-black);
    background: var(--reg-white);
    resize: vertical;
    box-sizing: border-box;
}
.reg-contact-textarea::placeholder { color: rgba(0,0,0,0.6); }
.reg-contact-counter {
    position: absolute;
    bottom: 10px;
    left: 18px;
    font-size: 12px;
    color: rgba(0,0,0,0.7);
}

.reg-contact-submit {
    width: 100%;
    height: 60px;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    border: none;
    border-radius: 100px;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 23px;
    line-height: 33px;
    cursor: pointer;
    transition: transform 0.15s, filter 0.15s;
    margin-top: 10px;
}
.reg-contact-submit:hover { filter: brightness(1.03); transform: translateY(-1px); }

.reg-contact-disclaimer {
    font-size: 18px;
    line-height: 28px;
    color: var(--reg-black);
    margin: 22px 0 0;
}

.reg-contact-follow {
    max-width: 654px;
    margin: 0 auto;
    text-align: center;
}
.reg-contact-follow-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 28px;
    line-height: 50px;
    margin: 0 0 8px;
}
.reg-contact-follow-body {
    font-size: 18px;
    line-height: 28px;
    margin: 0 0 28px;
    color: rgba(255,255,255,0.9);
}
.reg-contact-follow-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}
.reg-contact-follow-list a {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    color: var(--reg-white);
    text-decoration: none;
    border: 1px solid rgba(255,255,255,0.4);
    border-radius: 50%;
    font-size: 12px;
}
/* Elementor Pro form rendered inside the contact card (saved template
   "Contact Form" via the widget's shortcode slot) — mirror the built-in
   form's design tokens. */
.reg-contact-card .elementor-form-fields-wrapper { display: block; }
.reg-contact-card .elementor-field-group {
    margin-bottom: 20px;
    padding: 0;
    width: 100%;
    max-width: 100%;
}
.reg-contact-card .elementor-field-label {
    display: block;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 18px;
    color: var(--reg-black);
    margin-bottom: 10px;
}
.reg-contact-card .elementor-field-textual {
    width: 100%;
    height: 50px;
    padding: 0 18px;
    border: 1px solid var(--reg-black);
    border-radius: 100px;
    font-family: var(--font-roboto);
    font-size: 16px;
    color: var(--reg-black);
    background-color: var(--reg-white);
    box-sizing: border-box;
}
.reg-contact-card .elementor-field-textual::placeholder { color: rgba(0,0,0,0.6); }
.reg-contact-card .elementor-field-group-name input,
.reg-contact-card .elementor-field-group-email input {
    padding-left: 44px;
    background-repeat: no-repeat;
    background-position: 18px center;
}
.reg-contact-card .elementor-field-group-name input {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='rgba(0,0,0,0.6)' stroke-width='1.5'%3E%3Ccircle cx='8' cy='5' r='3'/%3E%3Cpath d='M2.5 14c.7-2.8 3-4.5 5.5-4.5s4.8 1.7 5.5 4.5'/%3E%3C/svg%3E");
}
.reg-contact-card .elementor-field-group-email input {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='rgba(0,0,0,0.6)' stroke-width='1.5'%3E%3Crect x='2' y='3.5' width='12' height='9' rx='1.5'/%3E%3Cpath d='m2.5 4.5 5.5 4 5.5-4'/%3E%3C/svg%3E");
}
.reg-contact-card select.elementor-field-textual {
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M1 1l7 6 7-6' stroke='%23000' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 22px center;
    padding-right: 50px;
    cursor: pointer;
}
.reg-contact-card .elementor-select-wrapper svg,
.reg-contact-card .elementor-select-wrapper i,
.reg-contact-card .elementor-select-wrapper .select-caret-down,
.reg-contact-card .elementor-select-wrapper .select-caret-down-wrapper { display: none !important; }
.reg-contact-card textarea.elementor-field-textual {
    height: auto;
    min-height: 120px;
    padding: 14px 18px;
    border-radius: 15px;
    resize: vertical;
}
.reg-contact-card .elementor-field-textual:focus {
    outline: none;
    border-color: var(--reg-accent-yellow);
    box-shadow: 0 0 0 3px rgba(246,209,71,0.25);
}
.reg-contact-card .elementor-field-type-submit { margin-bottom: 0; }
.reg-contact-card .elementor-button,
.reg-contact-card .elementor-button:hover,
.reg-contact-card .elementor-button:focus {
    /* !important: outranks the Elementor kit's per-element button styles */
    width: 100% !important;
    height: 60px;
    background: var(--reg-accent-yellow) !important;
    color: var(--reg-black) !important;
    border: none !important;
    border-radius: 100px !important;
    font-family: var(--font-roboto) !important;
    font-weight: 500 !important;
    font-size: 23px !important;
    line-height: 33px;
}
.reg-contact-card .elementor-button:hover { filter: brightness(1.03); transform: translateY(-1px); }
.reg-contact-card .elementor-message {
    font-family: var(--font-roboto);
    font-size: 15px;
    margin-top: 14px;
}

.reg-contact-follow-list img {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 0;
    object-fit: contain;
    display: block;
}
.reg-contact-follow-list a:has(img) {
    border: none;
    width: 34px;
    height: 34px;
}

@media (max-width: 1200px) {
    .reg-contact-page { padding: 64px 20px 80px; }
    .reg-contact-hero-title { font-size: 36px; line-height: 44px; }
}

@media (max-width: 768px) {
    .reg-contact-page { padding: 40px 10px 72px; }
    .reg-contact-hero { max-width: 370px; }
    .reg-contact-hero-title { font-size: 30px; line-height: 1.2; margin-bottom: 20px; }
    .reg-contact-hero-intro,
    .reg-contact-hero-note,
    .reg-contact-follow-body,
    .reg-contact-disclaimer { font-size: 16px; line-height: 26px; }
    .reg-contact-card {
        max-width: 370px;
        padding: 20px 16px 24px;
    }
    .reg-contact-label { font-size: 17px; }
    .reg-contact-input,
    .reg-contact-select { height: 50px; }
    .reg-contact-submit { font-size: 20px; height: 56px; }
    .reg-contact-follow-title { font-size: 24px; line-height: 1.3; }
}

/* ========================================
   Legal Document Template (page-legal.php)
   Privacy Policy / Terms of Use
   Figma: 2451:2755 (Privacy Desktop), 2497:2855 (Terms Desktop),
          3169:3858 (Privacy Mobile), 3194:3502 (Terms Mobile)
   ======================================== */
.reg-legal {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
    padding: 80px 40px 120px;
    min-height: 60vh;
}

.reg-legal-container {
    max-width: 900px;
    margin: 0 auto;
}

.reg-legal-header {
    margin-bottom: 48px;
}

.reg-legal-title {
    font-family: var(--font-lora), serif;
    font-weight: 600;
    font-size: 40px;
    line-height: 1.25;
    color: var(--reg-white);
    margin: 0 0 16px;
}

.reg-legal-subtitle {
    font-family: var(--font-roboto), sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.55;
    color: var(--reg-white);
    margin: 0;
    opacity: 0.85;
}

.reg-legal-body {
    font-family: var(--font-roboto), sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
    color: var(--reg-white);
    /* Prevent long inline URLs / unbroken words from overflowing on narrow phones */
    overflow-wrap: anywhere;
}

.reg-legal-body a {
    overflow-wrap: anywhere;
}

.reg-legal-body > *:first-child { margin-top: 0; }
.reg-legal-body > *:last-child  { margin-bottom: 0; }

.reg-legal-body h1,
.reg-legal-body h2,
.reg-legal-body h3,
.reg-legal-body h4,
.reg-legal-body h5,
.reg-legal-body h6 {
    font-family: var(--font-lora), serif;
    font-weight: 600;
    color: var(--reg-white);
    line-height: 1.3;
    margin: 40px 0 16px;
}

.reg-legal-body h1 { font-size: 32px; }
.reg-legal-body h2 { font-size: 25px; }
.reg-legal-body h3 { font-size: 22px; }
.reg-legal-body h4 { font-size: 20px; }
.reg-legal-body h5,
.reg-legal-body h6 { font-size: 18px; }

.reg-legal-body p {
    margin: 0 0 20px;
    font-size: 18px;
    line-height: 28px;
}

.reg-legal-body a {
    color: var(--reg-accent-yellow);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity 0.2s ease;
}

.reg-legal-body a:hover,
.reg-legal-body a:focus {
    opacity: 0.8;
}

.reg-legal-body ul,
.reg-legal-body ol {
    margin: 0 0 20px;
    padding-left: 27px;
}

.reg-legal-body ul { list-style: disc; }
.reg-legal-body ol { list-style: decimal; }

.reg-legal-body li {
    margin: 0 0 8px;
    font-size: 18px;
    line-height: 28px;
}

.reg-legal-body li:last-child { margin-bottom: 0; }

.reg-legal-body strong { font-weight: 700; }
.reg-legal-body em     { font-style: italic; }

.reg-legal-body blockquote {
    border-left: 3px solid var(--reg-accent-yellow);
    margin: 24px 0;
    padding: 8px 0 8px 20px;
    font-style: italic;
    color: var(--reg-white);
    opacity: 0.9;
}

.reg-legal-body hr {
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    margin: 40px 0;
}

@media (max-width: 1200px) {
    .reg-legal { padding: 64px 32px 96px; }
    .reg-legal-title { font-size: 34px; }
    .reg-legal-body h2 { font-size: 23px; }
    .reg-legal-body h3 { font-size: 21px; }
}

@media (max-width: 768px) {
    .reg-legal { padding: 40px 10px 64px; }
    .reg-legal-header { margin-bottom: 32px; }
    .reg-legal-title { font-size: 25px; line-height: 38px; }
    .reg-legal-subtitle { font-size: 18px; }
    .reg-legal-body,
    .reg-legal-body p,
    .reg-legal-body li { font-size: 18px; line-height: 28px; }
    .reg-legal-body h1 { font-size: 25px; }
    .reg-legal-body h2 { font-size: 22px; }
    .reg-legal-body h3 { font-size: 20px; }
    .reg-legal-body h4,
    .reg-legal-body h5,
    .reg-legal-body h6 { font-size: 18px; }
    .reg-legal-body ul,
    .reg-legal-body ol { padding-left: 27px; }
}

@media (max-width: 480px) {
    .reg-legal { padding: 32px 8px 48px; }
    .reg-legal-header { margin-bottom: 24px; }
    .reg-legal-title { font-size: 22px; line-height: 32px; }
    .reg-legal-subtitle { font-size: 16px; }
    .reg-legal-body,
    .reg-legal-body p,
    .reg-legal-body li { font-size: 16px; line-height: 25px; }
    .reg-legal-body h1 { font-size: 22px; }
    .reg-legal-body h2 { font-size: 20px; }
    .reg-legal-body h3 { font-size: 18px; }
    .reg-legal-body ul,
    .reg-legal-body ol { padding-left: 22px; }
}

/* ========================================
   404 Page (404.php)
   Figma: 2509:2879 (Desktop), 3204:3647 (Mobile)
   ======================================== */
.reg-404 {
    background: var(--reg-primary-dark);
    color: var(--reg-white);
    padding: 140px 40px 120px;
    min-height: 70vh;
    position: relative;
    overflow: hidden;
}

/* Soft left-side lavender glow on the navy background (Figma 1:3247) */
.reg-404::before {
    content: "";
    position: absolute;
    top: -12%;
    left: -15%;
    width: 62%;
    height: 85%;
    background: radial-gradient(circle at center, rgba(140, 130, 220, 0.35) 0%, rgba(34, 32, 68, 0) 66%);
    pointer-events: none;
    z-index: 0;
}

.reg-404-container {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 1;
}

.reg-404-title {
    font-family: var(--font-lora), serif;
    font-weight: 600;
    font-size: 40px;
    line-height: 50px;
    color: var(--reg-white);
    margin: 0 auto 40px;
    max-width: 870px;
}

.reg-404-lede {
    font-family: var(--font-roboto), sans-serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 28px;
    color: var(--reg-white);
    margin: 0 auto 32px;
    max-width: 850px;
}

.reg-404-tagline {
    font-family: var(--font-roboto), sans-serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 28px;
    color: var(--reg-white);
    margin: 0 auto 36px;
    max-width: 670px;
}

.reg-404-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 0 auto 40px;
    max-width: 700px;
}

.reg-404-divider-line {
    flex: 1 1 auto;
    height: 1px;
    background: rgba(255, 255, 255, 0.6);
    max-width: 287px;
}

.reg-404-divider-label {
    font-family: var(--font-lora), serif;
    font-weight: 600;
    font-size: 30px;
    line-height: 1;
    color: var(--reg-white);
    white-space: nowrap;
    flex: 0 0 auto;
}

.reg-404-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    align-items: center;
    margin: 0 auto 48px;
}

.reg-404-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-family: var(--font-roboto), sans-serif;
    font-weight: 500;
    font-size: 20px;
    line-height: 1;
    padding: 14px 30px;
    border-radius: 23px;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.reg-404-button:hover,
.reg-404-button:focus {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
    color: var(--reg-black);
    opacity: 0.95;
}

.reg-404-outro {
    font-family: var(--font-lora), serif;
    font-weight: 400;
    font-size: 28px;
    line-height: 50px;
    color: var(--reg-white);
    margin: 0 auto;
    max-width: 836px;
}

.reg-404-home-link {
    font-family: var(--font-lora), serif;
    font-weight: 600;
    color: var(--reg-white);
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: color 0.2s ease;
}

.reg-404-home-link:hover,
.reg-404-home-link:focus {
    color: var(--reg-accent-yellow);
}

@media (max-width: 1200px) {
    .reg-404 { padding: 100px 32px 96px; }
    .reg-404-title { font-size: 34px; line-height: 44px; }
    .reg-404-outro { font-size: 24px; line-height: 40px; }
    .reg-404-divider-label { font-size: 26px; }
}

@media (max-width: 768px) {
    .reg-404 { padding: 60px 10px 64px; }
    .reg-404-title { font-size: 30px; line-height: 38px; margin-bottom: 28px; }
    .reg-404-lede { font-size: 18px; line-height: 28px; margin-bottom: 24px; }
    .reg-404-tagline { font-size: 20px; line-height: 28px; margin-bottom: 28px; }
    .reg-404-divider { gap: 12px; margin-bottom: 32px; }
    .reg-404-divider-label { font-size: 24px; white-space: normal; text-align: center; }
    .reg-404-divider-line { max-width: 60px; }
    .reg-404-buttons { flex-direction: column; gap: 16px; margin-bottom: 40px; }
    .reg-404-button { width: 100%; max-width: 327px; font-size: 18px; padding: 14px 24px; }
    .reg-404-outro { font-size: 22px; line-height: 34px; }
}

/* ============================================================
   Responsive — gaps for newer components (mobile pass, batch 1)
   Components added after the original responsive pass that lacked
   mobile-specific sizing. Scoped + additive so existing rules win
   on desktop and only mobile is adjusted.
   ============================================================ */
@media (max-width: 768px) {
    /* Read/Listen/Watch tag pill — slightly smaller on phones */
    .reg-type-tag {
        font-size: 10px;
        padding: 3px 8px;
        gap: 4px;
        top: 8px;
        left: 8px;
    }
    .reg-type-tag svg { width: 12px; height: 12px; }

    /* Card play overlay — the 56px circle is oversized on small thumbs */
    .reg-card-play { width: 46px; height: 46px; }

    /* Parsha resources grid → 2 columns on phones */
    .reg-parsha-single-resources-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .reg-parsha-single-resources-grid { grid-template-columns: 1fr; }
    .reg-card-play { width: 42px; height: 42px; }
}

/* ========================================
   Carousel dots (Explore scroller etc.) — generated by theme.js
   ======================================== */
.reg-scroll-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 22px;
}

.reg-scroll-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.reg-scroll-dot.is-active {
    background: var(--reg-accent-yellow);
    transform: scale(1.25);
}

/* ========================================
   "Show more" toggle (Category index, mobile) — generated by theme.js
   ======================================== */
.reg-show-more-btn {
    display: none; /* desktop: full grid, no toggle */
}

@media (max-width: 768px) {
    .reg-categories-grid.reg-collapsible {
        max-height: 450px; /* ~3 rows of 2-up tiles */
        overflow: hidden;
    }

    .reg-categories-grid.reg-collapsible.is-expanded {
        max-height: none;
    }

    .reg-show-more-btn {
        display: flex;
        width: fit-content;
        align-items: center;
        gap: 8px;
        margin: 20px auto 0;
        padding: 8px 24px;
        border: 1px solid rgba(255, 255, 255, 0.5);
        border-radius: 100px;
        background: transparent;
        color: var(--reg-white);
        font-family: var(--font-lato);
        font-weight: 600;
        font-size: 16px;
        cursor: pointer;
    }

    .reg-show-more-caret {
        transition: transform 0.2s ease;
    }

    .reg-categories-grid.is-expanded + .reg-show-more-btn .reg-show-more-caret {
        transform: rotate(180deg);
    }
}


/* About page — per-section split widgets (REG About — Hero/Intro/.../Note).
   Each widget keeps the .reg-about-page wrapper for the dark full-bleed
   background + max-width + horizontal padding; these rules stop the
   top/bottom page padding from stacking on every block, restoring it only
   on the first and last sections so the stacked widgets read as one page. */
.reg-about-page--block { padding-top: 0; padding-bottom: 0; }
.reg-about-page--first { padding-top: 40px; }
.reg-about-page--last  { padding-bottom: 80px; }
@media (max-width: 768px) {
    .reg-about-page--first { padding-top: 0; }
    .reg-about-page--last  { padding-bottom: 60px; }
}


/* ---------- Series badge (which series a post belongs to) ---------- */
.reg-series-tag {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 100px;
    font-family: var(--font-lato);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1;
    max-width: 60%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    background: var(--reg-accent-yellow);
    color: #222044;
    pointer-events: none;
}

.reg-series-tag--inline {
    position: static;
    max-width: none;
    margin-bottom: 14px;
    pointer-events: auto;
    text-decoration: none;
}

a.reg-series-tag--inline:hover {
    filter: brightness(0.92);
    color: #222044;
}

/* ---------- In-site video lightbox ---------- */
.reg-video-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 4vw;
}

.reg-video-modal.is-open {
    display: flex;
}

.reg-video-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(12, 11, 30, 0.88);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

.reg-video-modal-frame {
    position: relative;
    width: min(1100px, 92vw);
    z-index: 1;
}

.reg-video-modal-ratio {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}

.reg-video-modal-ratio iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.reg-video-modal-close {
    position: absolute;
    top: -44px;
    right: 0;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.reg-video-modal-close:hover {
    background: rgba(255, 255, 255, 0.28);
}

body.reg-video-modal-open {
    overflow: hidden;
}


/* Series badge inside a card actions row: align with the play buttons. */
.reg-emunah-page-card-actions .reg-series-tag--inline {
    margin-bottom: 0;
}


/* Episodes-grid header arrow is a "view all" link. */
a.reg-emunah-page-grid-arrow {
    text-decoration: none;
    transition: transform 0.15s ease;
}

a.reg-emunah-page-grid-arrow:hover {
    color: var(--reg-accent-yellow);
    transform: translateX(4px);
}


/* ---------- Series taxonomy archive ---------- */
.reg-series-archive-desc {
    margin: -10px 0 26px;
    color: rgba(255, 255, 255, 0.75);
    max-width: 720px;
}

.reg-series-archive .reg-emunah-page-grid {
    margin-top: 10px;
}

.reg-series-archive-pagination {
    margin-top: 36px;
}

.reg-series-archive-pagination .nav-links {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}

.reg-series-archive-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--reg-white);
    text-decoration: none;
    font-family: var(--font-lato);
    font-weight: 700;
}

.reg-series-archive-pagination .page-numbers.current,
.reg-series-archive-pagination .page-numbers:hover {
    background: var(--reg-accent-yellow);
    color: #222044;
}


/* Homepage Emunah episode rows: stretched link + audio/video buttons. */
.reg-emunah-episode {
    position: relative;
}

.reg-emunah-episode__link {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: 15px;
}

.reg-emunah-ep-info {
    min-width: 0;
}

.reg-emunah-ep-actions {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.reg-emunah-ep-actions .reg-emunah-card-icon {
    width: 26px;
    height: 26px;
}


/* Series badge under the Watch/Listen chips on Explore Our Series cards. */
.reg-explore-card-series.reg-series-tag--inline {
    margin: 10px 0 0;
    align-self: flex-start;
    pointer-events: none;
}


/* Inline "Episode #N" label beside card action buttons. */
.reg-ep-num-inline {
    font-family: var(--font-lato);
    font-weight: 700;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    white-space: nowrap;
}




/* Dual play buttons (audio note + video triangle) centered on card thumbs. */
.reg-card-play-group {
    position: absolute;
    inset: 0;
    margin: auto;
    width: max-content;
    height: max-content;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    z-index: 3;
}

.reg-card-play-group .reg-card-play {
    position: static;
    inset: auto;
    margin: 0;
    width: 48px;
    height: 48px;
}

.reg-card-play--listen svg {
    width: 50%;
    height: 50%;
    display: block;
}

/* Cards restructured from <a> wrappers to stretched-link pattern. */
.reg-parsha-single-video-card,
.reg-single-related-card,
.reg-explore-card {
    position: relative;
}

.reg-parsha-single-video-card__link,
.reg-single-related-card__link,
.reg-explore-card__link {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.reg-explore-card .reg-explore-card-actions {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.reg-explore-card .reg-emunah-card-icon {
    width: 26px;
    height: 26px;
}

/* Badge under the date line on The Latest cards. */
.reg-latest-article-body > .reg-series-tag--inline {
    margin: 6px 0 0;
    pointer-events: none;
    align-self: flex-start;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* ---------- Category (topic) archive — Figma 1:2805 ---------- */
.reg-topic-archive-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.reg-topic-archive-title {
    font-family: var(--font-playfair, serif);
    font-size: 28px;
    margin: 0;
    color: var(--reg-white);
}

.reg-topic-format-select {
    appearance: none;
    background: var(--reg-white);
    color: #222044;
    border: 0;
    border-radius: 100px;
    padding: 7px 30px 7px 16px;
    font-family: var(--font-lato);
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='14' height='14' fill='%23222044'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
}

.reg-topic-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}

.reg-topic-cover {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 12px;
    padding: 20px;
    min-height: 240px;
    border-radius: 15px;
    overflow: hidden;
    background-color: #8a6a4f;
    background-size: cover;
    background-position: center;
}

.reg-topic-cover-overlay {
    position: absolute;
    inset: 0;
    background: rgba(34, 32, 68, 0.45);
}

.reg-topic-cover-name {
    position: relative;
    font-family: var(--font-playfair, serif);
    font-size: 26px;
    font-weight: 700;
    color: var(--reg-white);
    line-height: 1.15;
}

.reg-topic-cover-chip {
    position: relative;
    align-self: flex-start;
    background: var(--reg-accent-yellow);
    color: #222044;
    font-family: var(--font-lato);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 4px;
}

.reg-topic-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--reg-white);
    border-radius: 15px;
    overflow: hidden;
}

.reg-topic-card__link {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.reg-topic-card-thumb {
    aspect-ratio: 16 / 10;
    background: #e8e8ef;
}

.reg-topic-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.reg-topic-card-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px 16px;
    flex: 1;
}

.reg-topic-card-title {
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 15px;
    line-height: 1.35;
    color: #222044;
    margin: 0;
}

.reg-topic-card-format {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    align-self: flex-start;
    border: 0;
    background: none;
    padding: 0;
    font-family: var(--font-lato);
    font-weight: 700;
    font-size: 13px;
    color: #222044;
    cursor: pointer;
    text-decoration: none;
}

span.reg-topic-card-format {
    cursor: default;
}

.reg-topic-card-format svg {
    color: var(--reg-accent-yellow);
    background: #222044;
    border-radius: 50%;
    padding: 4px;
    width: 22px;
    height: 22px;
    box-sizing: border-box;
}

.reg-topic-series-section {
    margin-top: 48px;
}

.reg-topic-series-heading {
    font-family: var(--font-playfair, serif);
    font-size: 24px;
    color: var(--reg-white);
    margin: 0 0 20px;
}

.reg-topic-support {
    margin-top: 48px;
    padding: 34px 20px;
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
}

.reg-topic-support-title {
    font-family: var(--font-playfair, serif);
    font-size: 26px;
    color: var(--reg-white);
    margin: 0;
}

@media (max-width: 1100px) {
    .reg-topic-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
    .reg-topic-grid { grid-template-columns: repeat(2, 1fr); }
    .reg-topic-archive-header { flex-wrap: wrap; }
}


/* Category-card Listen chip: undo the NooraCast circle skin (56px navy
   circle, line-height 0) so the icon + label chip renders correctly. */
.reg-topic-card-format.nooracast-trigger {
    width: auto;
    height: auto;
    background: none;
    border-radius: 0;
    color: #222044;
    line-height: 1.2;
}

.reg-topic-card-format.nooracast-trigger:hover {
    background: none;
    transform: none;
    color: #222044;
}

.reg-topic-card-format.nooracast-trigger svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

/* Playing state: light the icon circle up gold instead of recoloring the chip. */
.reg-topic-card-format.nooracast-trigger.is-playing {
    background: none;
    color: #222044;
}

.reg-topic-card-format.nooracast-trigger.is-playing svg {
    background: var(--reg-accent-yellow);
    color: #222044;
}


/* ========================================
   WhatsApp Groups Page
   ======================================== */
.reg-whatsapp-page {
    max-width: 1440px;
    margin: 0 auto;
    padding: 70px 38px 96px;
    font-family: var(--font-roboto);
    color: var(--reg-white);
    background: var(--reg-primary-dark);
    box-shadow: 0 0 0 100vw var(--reg-primary-dark);
    clip-path: inset(0 -100vw);
}
.reg-whatsapp-hero {
    max-width: 654px;
    margin: 0 auto 48px;
    text-align: center;
}
.reg-whatsapp-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    line-height: 50px;
    margin: 0 0 24px;
}
.reg-whatsapp-hero-intro {
    font-size: 18px;
    line-height: 28px;
    margin: 0;
    color: rgba(255,255,255,0.92);
}
.reg-whatsapp-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    max-width: 1000px;
    margin: 0 auto;
}
.reg-whatsapp-card {
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 14px;
    padding: 28px 24px;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.reg-whatsapp-card:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.3);
}
.reg-whatsapp-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #25d366;
    color: var(--reg-white);
    margin-bottom: 18px;
}
.reg-whatsapp-card-title {
    font-family: var(--font-lora);
    font-size: 22px;
    font-weight: 700;
    color: var(--reg-accent-yellow);
    margin: 0 0 12px;
}
.reg-whatsapp-card-body {
    font-size: 15px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
    margin: 0 0 22px;
}
.reg-whatsapp-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    margin-top: auto;
    background: var(--reg-accent-yellow);
    color: var(--reg-black);
    font-weight: 500;
    font-size: 16px;
    padding: 10px 28px;
    border-radius: 100px;
    text-decoration: none;
    transition: filter 0.15s, transform 0.15s;
}
.reg-whatsapp-card-btn:hover {
    filter: brightness(1.03);
    transform: translateY(-1px);
    color: var(--reg-black);
}
.reg-whatsapp-card-btn--full {
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.7);
    cursor: default;
}
.reg-whatsapp-card.is-full .reg-whatsapp-card-icon {
    background: rgba(255, 255, 255, 0.15);
}
.reg-whatsapp-note {
    max-width: 654px;
    margin: 36px auto 0;
    text-align: center;
    font-size: 16px;
    line-height: 26px;
    font-style: italic;
    color: rgba(255, 255, 255, 0.7);
}
@media (max-width: 768px) {
    .reg-whatsapp-page {
        padding: 48px 20px 60px;
    }
    .reg-whatsapp-hero-title {
        font-size: 30px;
        line-height: 40px;
    }
    .reg-whatsapp-grid {
        grid-template-columns: 1fr;
    }
}


/* Join Our Community form notices + WhatsApp landing banner */
.reg-community-notice {
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 15px;
    margin-bottom: 16px;
}
.reg-community-notice--success { background: rgba(22,163,74,0.1); color: #15803d; border: 1px solid rgba(22,163,74,0.3); }
.reg-community-notice--error   { background: rgba(255,114,114,0.15); color: var(--reg-error-red); border: 1px solid var(--reg-error-red); }
.reg-whatsapp-success {
    max-width: 654px;
    margin: 0 auto 36px;
    padding: 14px 24px;
    text-align: center;
    font-size: 16px;
    border-radius: 100px;
    background: rgba(37, 211, 102, 0.14);
    border: 1px solid rgba(37, 211, 102, 0.55);
    color: #b8f5cf;
}


/* Footer Explore menu: two columns, filled top-to-bottom.
   The base .reg-footer-column ul rule is a flex column (which ignores
   column-count), so this switches the Explore list to grid instead. */
.reg-footer-column .reg-footer-menu--two-col {
    display: grid;
    grid-template-rows: repeat(5, auto);
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    column-gap: 40px;
    row-gap: 15px;
}

/* Article print button (share bar) */
.reg-single-print-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 16px;
    padding: 6px 14px;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 14px;
    cursor: pointer;
    transition: transform 0.2s ease;
}
.reg-single-print-btn:hover {
    transform: scale(1.05);
}

/* Print layout: article body only, no site chrome */
@media print {
    .reg-header,
    .reg-nav,
    .reg-community-section,
    .reg-footer,
    .reg-single-actions,
    .reg-single-latest,
    .reg-single-related,
    .reg-sponsor-banner,
    .reg-single-tags,
    #wpadminbar {
        display: none !important;
    }
    .reg-single-content-layout--with-sidebar {
        display: block;
    }
    .reg-single-content-main {
        width: 100%;
        max-width: none;
    }
    .reg-single-body a {
        text-decoration: underline;
    }
    body {
        background: #fff;
    }
}


/* Series index page (/series/): reuse the Watch "Ongoing Series" cards but
   wrap them into rows instead of the horizontal scroller. */
.reg-series-index .reg-series-index-grid {
    flex-wrap: wrap;
    overflow-x: visible;
    row-gap: 20px;
}

/* ========================================
   Homepage body width — cap the full-bleed
   sections (hero, latest, explore) at the
   1440px site body like the parsha page
   ======================================== */
.reg-hero-slider .reg-hero-slide,
.reg-latest-section .reg-latest-header,
.reg-latest-section .reg-latest-cards-scroll,
.reg-latest-section .reg-latest-features-row,
.reg-explore-section .reg-explore-title,
.reg-explore-section .reg-explore-grid {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
}

/* Keep explore carousel arrows hugging the capped 1440px rail on wide screens */
.reg-explore-section .reg-scroll-arrow--prev {
    left: max(10px, calc(50% - 774px));
}
.reg-explore-section .reg-scroll-arrow--next {
    right: max(10px, calc(50% - 774px));
}

/* ========================================
   Hero play group — listen (note) + watch
   buttons shown per the post's media
   ======================================== */
.reg-hero-play-group {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
}
.reg-hero-play-group .reg-hero-play-overlay {
    position: static;
    transform: none;
    width: 56px;
    height: 56px;
}
.reg-hero-play-group .reg-hero-play-overlay:hover {
    transform: scale(1.06);
}
/* Listen trigger: yellow disc + navy note, matching the video disc.
   Selector specificity beats the NooraCast plugin's generic trigger skin. */
.reg-hero-slide .reg-hero-play-listen.nooracast-trigger {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 0;
    background: var(--reg-accent-yellow);
    color: var(--reg-primary-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    padding: 0;
    cursor: pointer;
    transition: transform 0.2s ease;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.3);
}
.reg-hero-slide .reg-hero-play-listen.nooracast-trigger:hover {
    transform: scale(1.06);
}
.reg-hero-slide.is-playing .reg-hero-play-group {
    display: none;
}

@media (max-width: 768px) {
    .reg-hero-play-group {
        gap: 10px;
        margin-top: 10px;
    }
    .reg-hero-play-group .reg-hero-play-overlay,
    .reg-hero-slide .reg-hero-play-listen.nooracast-trigger {
        width: 40px;
        height: 40px;
    }
    .reg-hero-slide .reg-hero-play-listen.nooracast-trigger svg {
        width: 20px;
        height: 20px;
    }
}


/* ========================================
   Behind the Bima page — grouped episode
   listing (reg_bima_page widget)
   ======================================== */
.reg-bima-page-section {
    margin-top: 44px;
}
.reg-bima-page-section-title {
    font-family: 'Lora', serif;
    font-size: 28px;
    font-weight: 600;
    color: var(--reg-white);
    margin: 0 0 20px;
    padding-left: 14px;
    border-left: 4px solid var(--reg-accent-yellow);
}
.reg-bima-page-card-date {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.65);
    margin: 4px 0 0;
}

@media (max-width: 768px) {
    .reg-bima-page-section {
        margin-top: 30px;
    }
    .reg-bima-page-section-title {
        font-size: 22px;
    }
}
