/*
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.0.5
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-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;
}

body {
    font-family: var(--font-roboto);
    color: var(--reg-black);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

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 168px 12px;
}

.reg-nav-list {
    display: flex;
    align-items: center;
    gap: 19px;
    flex-wrap: wrap;
    justify-content: center;
}

.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;
}

.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);
}

.reg-hero-slide {
    position: relative;
    width: 100%;
    height: 634px;
    border-radius: 23px;
    overflow: hidden;
    border: 1px solid var(--reg-white);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.reg-hero-play-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 107px;
    height: 107px;
    z-index: 1;
    pointer-events: none;
}

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

.reg-hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

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

.reg-hero-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    padding: 40px;
    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;
}

.reg-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    max-width: 705px;
    margin: 0 auto 16px;
    line-height: 1.2;
}

.reg-hero-meta {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 24px;
    color: var(--reg-white);
}

/* ========================================
   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-divider {
    width: 300px;
    height: 1px;
    background: rgba(255, 255, 255, 0.5);
    margin: 15px auto;
}

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

.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;
}

.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;
}

/* ========================================
   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);
}

/* ========================================
   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;
    background: var(--reg-primary-dark);
}

.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-book-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    color: var(--reg-white);
    margin: 0 0 20px;
}

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

.reg-parsha-books-card {
    position: relative;
    height: 169px;
    border: 1px solid var(--reg-white);
    border-radius: 10px;
    overflow: hidden;
    display: block;
    text-decoration: none;
    transition: transform 0.3s ease;
}

.reg-parsha-books-card:hover {
    transform: translateY(-2px);
}

.reg-parsha-books-card-thumb {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

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

.reg-parsha-books-card-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 61%);
    pointer-events: none;
}

.reg-parsha-books-play {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
}

.reg-parsha-books-play img {
    width: 19px;
    height: 19px;
}

.reg-parsha-books-play-badge {
    background: rgba(255, 255, 255, 0.2);
    color: var(--reg-white);
    font-family: var(--font-roboto);
    font-weight: 600;
    font-size: 12px;
    padding: 4px 18px;
    border-radius: 100px;
    line-height: 1;
}

.reg-parsha-books-card-title {
    position: absolute;
    left: 18px;
    bottom: 48px;
    z-index: 2;
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    line-height: 28px;
    color: var(--reg-white);
    margin: 0;
}

/* ========================================
   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);
}

.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);
}

/* Hero slider card — 1364x559, bordered, rounded-23, image w/ dark gradient, overlayed text + play icon */
.reg-parsha-single-hero {
    position: relative;
    width: 100%;
    height: 559px;
    border: 1px solid var(--reg-white);
    border-radius: 23px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    margin-bottom: 50px;
}

.reg-parsha-single-video-wrap {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: var(--reg-black);
}

.reg-parsha-single-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.reg-parsha-single-video-wrap > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reg-parsha-single-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 55%);
    pointer-events: none;
    border-radius: 23px;
}

.reg-parsha-single-hero-overlay {
    position: absolute;
    left: 48px;
    bottom: 48px;
    z-index: 2;
    color: var(--reg-white);
    max-width: 640px;
}

.reg-parsha-single-hero-title {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 30px;
    line-height: 1.2;
    color: var(--reg-white);
    margin: 0 0 12px;
}

.reg-parsha-single-hero-tag {
    font-family: var(--font-lora);
    font-weight: 600;
    font-size: 40px;
    color: var(--reg-white);
    margin: 0 0 8px;
}

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

.reg-parsha-single-hero-play {
    position: absolute;
    left: 48px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 72px;
    height: 72px;
    display: none; /* shown only if no iframe */
}

.reg-parsha-single-hero.has-thumb .reg-parsha-single-hero-play {
    display: block;
}

/* 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 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: 48px 60px;
    border-radius: 10px;
    overflow: hidden;
    background-color: #2b2955;
    background-image: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 88%), url('assets/images/support-cta-bg.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    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;
    max-width: 60%;
}

.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: 10px;
    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 {
    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;
    }

    .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;
    }

    .reg-hero-content {
        padding: 16px;
    }

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

    .reg-hero-title {
        font-size: 20px;
        line-height: 1.2;
        margin-bottom: 8px;
    }

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

    /* 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-divider {
        width: 300px;
        max-width: 100%;
    }

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

    .reg-parsha-section .reg-feature-video-btn,
    .reg-parsha-inner .reg-emunah-all-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;
    }

    .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-hero {
        height: 208px;
        border-radius: 23px;
        margin-bottom: 20px;
    }

    .reg-parsha-single-hero-overlay {
        left: 16px;
        right: 16px;
        bottom: 16px;
        max-width: calc(100% - 32px);
    }

    .reg-parsha-single-hero-title {
        font-size: 20px;
        line-height: 26px;
    }

    .reg-parsha-single-hero-tag {
        font-size: 14px;
    }

    .reg-parsha-single-hero-date {
        font-size: 12px;
        line-height: 1.2;
    }

    .reg-parsha-single-hero-play {
        width: 31px;
        height: 31px;
        left: 20px;
        top: auto;
        bottom: 70px;
        transform: none;
    }

    .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);
}

.reg-emunah-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-emunah-page-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 55%);
    border-radius: 23px;
    pointer-events: none;
}

.reg-emunah-page-hero-play {
    position: absolute;
    left: 48px;
    top: 48px;
    width: 80px;
    height: 80px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.reg-emunah-page-hero-play img {
    width: 100%;
    height: 100%;
}

.reg-emunah-page-hero-content {
    position: relative;
    z-index: 1;
    padding: 40px 56px 48px;
    max-width: 1100px;
}

.reg-emunah-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 14px;
}

.reg-emunah-page-hero-label {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 25px;
    color: var(--reg-white);
    margin: 0 0 6px;
}

.reg-emunah-page-hero-date {
    font-family: var(--font-roboto);
    font-weight: 500;
    font-size: 20px;
    color: var(--reg-white);
    margin: 0;
}

/* 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;
}

/* 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;
}

.reg-emunah-page-card-meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-roboto);
    font-size: 14px;
    color: var(--reg-white);
}

.reg-emunah-page-card-play {
    width: 22px;
    height: 22px;
}

/* 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: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.95));
    background-color: var(--reg-primary-dark);
    display: flex;
    align-items: center;
    justify-content: space-between;
    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);
}

.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 — two large cards */
.reg-watch-page-ongoing {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 20px;
}

.reg-watch-page-ongoing-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-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 — vertical thumbnails */
.reg-watch-page-shorts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.reg-watch-page-short {
    position: relative;
    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: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.95));
    background-color: var(--reg-primary-dark);
    display: flex;
    align-items: center;
    justify-content: space-between;
    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-emunah-page-hero,
    .reg-watch-page-hero {
        min-height: 380px;
    }

    .reg-emunah-page-hero-title,
    .reg-watch-page-hero-title {
        font-size: 32px;
    }

    .reg-emunah-page-hero-content,
    .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 {
        grid-template-columns: 1fr 1fr;
    }

    .reg-watch-page-shorts {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .reg-emunah-page,
    .reg-watch-page {
        padding: 20px 10px 40px;
    }

    /* Emunah — hero becomes compact 208h card per Figma 1710:138 */
    .reg-emunah-page-hero,
    .reg-watch-page-hero {
        min-height: 208px;
        border-radius: 23px;
        margin-bottom: 30px;
        align-items: center;
    }

    .reg-emunah-page-hero-play {
        left: 50%;
        top: auto;
        bottom: 30px;
        transform: translateX(-50%);
        width: 31px;
        height: 31px;
    }

    .reg-emunah-page-hero-content,
    .reg-watch-page-hero-content {
        padding: 0 20px 16px;
        text-align: center;
        width: 100%;
    }

    .reg-emunah-page-hero-title,
    .reg-watch-page-hero-title {
        font-size: 20px;
        line-height: 26px;
        font-family: var(--font-lora);
    }

    .reg-emunah-page-hero-label {
        font-size: 14px;
    }

    .reg-emunah-page-hero-date {
        font-size: 12px;
    }

    .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-card-meta {
        font-size: 12px;
    }

    .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 {
        grid-template-columns: 1fr 1fr;
        gap: 15px;
    }

    .reg-watch-page-ongoing-card {
        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 {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    .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-primary-dark);
}

/* 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-primary-dark);
}
.reg-donate-hero-body {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 24px;
    color: var(--reg-primary-dark);
}
.reg-donate-hero-image {
    margin-top: 20px;
}
.reg-donate-hero-image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
}

/* 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);
}
.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 {
    background: var(--reg-light-gray);
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 20px;
}
.reg-donate-form-duration-label {
    font-weight: 700;
    font-size: 15px;
    margin-bottom: 4px;
}
.reg-donate-form-duration-sub {
    font-size: 13px;
    opacity: 0.8;
}
.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-primary-dark);
    margin: 0 0 24px;
}
.reg-donate-block-body {
    font-size: 16px;
    line-height: 1.7;
    color: var(--reg-primary-dark);
    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;
    border-bottom: 1px solid var(--reg-light-gray);
}
.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: var(--reg-white);
    border: 1px solid var(--reg-light-gray);
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(34, 32, 68, 0.05);
}
.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-primary-dark);
    font-style: italic;
}
.reg-donate-testimonial-attrib {
    font-size: 14px;
    font-weight: 600;
    color: var(--reg-primary-dark);
    opacity: 0.8;
}

/* FAQ */
.reg-donate-faq-item {
    border-bottom: 1px solid var(--reg-light-gray);
    padding: 20px 0;
}
.reg-donate-faq-q {
    font-family: var(--font-lora);
    font-size: 18px;
    font-weight: 600;
    color: var(--reg-primary-dark);
    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-primary-dark);
    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: var(--reg-primary-dark);
}

@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: 0 38px 80px;
    font-family: var(--font-lato);
    color: var(--reg-primary-dark);
}

/* Hero */
.reg-about-hero {
    position: relative;
    margin: 40px 0 60px;
    border-radius: 16px;
    overflow: hidden;
    background: var(--reg-light-gray);
    min-height: 300px;
}
.reg-about-hero-image {
    width: 100%;
    height: 559px;
    object-fit: cover;
    display: block;
}
.reg-about-hero-title {
    position: absolute;
    left: 40px;
    bottom: 40px;
    margin: 0;
    font-family: var(--font-lora);
    font-size: 48px;
    font-weight: 700;
    color: var(--reg-white);
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

/* 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-split-copy p {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 18px;
    color: var(--reg-primary-dark);
}
.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-primary-dark);
    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: var(--reg-primary-dark);
    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: var(--reg-white);
    border: 1px solid var(--reg-light-gray);
    border-radius: 14px;
    padding: 28px 24px;
    min-height: 289px;
    transition: box-shadow 0.2s ease;
}
.reg-about-series-card:hover {
    box-shadow: 0 6px 20px rgba(34, 32, 68, 0.08);
}
.reg-about-series-card-title {
    font-family: var(--font-lora);
    font-size: 22px;
    font-weight: 700;
    color: var(--reg-primary-dark);
    margin: 0 0 16px;
}
.reg-about-series-card-body {
    font-size: 15px;
    line-height: 1.6;
    color: var(--reg-primary-dark);
    margin: 0;
}

/* Beyond Boca collage */
.reg-about-beyond {
    margin: 100px 0;
    text-align: center;
}
.reg-about-beyond-collage {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 220px 220px;
    gap: 14px;
    margin: 40px 0;
}
.reg-about-beyond-collage-item {
    overflow: hidden;
    border-radius: 12px;
    background: var(--reg-light-gray);
}
.reg-about-beyond-collage-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.reg-about-beyond-collage-item--1 { grid-column: 1 / span 2; grid-row: 1; }
.reg-about-beyond-collage-item--2 { grid-column: 3; grid-row: 1; }
.reg-about-beyond-collage-item--3 { grid-column: 4; grid-row: 1; }
.reg-about-beyond-collage-item--4 { grid-column: 1 / span 2; grid-row: 2; }
.reg-about-beyond-collage-item--5 { grid-column: 3 / span 2; grid-row: 2; }

/* Personal note */
.reg-about-note {
    max-width: 1166px;
    margin: 80px auto 0;
    padding: 48px 40px;
    background: var(--reg-light-gray);
    border-radius: 16px;
    text-align: center;
}
.reg-about-note p {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 18px;
    color: var(--reg-primary-dark);
}
.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-image {
        height: 420px;
    }
    .reg-about-hero-title {
        font-size: 36px;
    }
    .reg-about-section-title {
        font-size: 26px;
    }
    .reg-about-series-grid {
        gap: 14px;
    }
    .reg-about-beyond-collage {
        grid-template-rows: 180px 180px;
    }
}

@media (max-width: 768px) {
    .reg-about-page {
        padding: 0 20px 60px;
    }
    .reg-about-hero-image {
        height: 260px;
    }
    .reg-about-hero-title {
        font-size: 28px;
        left: 20px;
        bottom: 20px;
    }
    .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-collage {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(3, 160px);
    }
    .reg-about-beyond-collage-item--1 { grid-column: 1 / span 2; grid-row: 1; }
    .reg-about-beyond-collage-item--2 { grid-column: 1; grid-row: 2; }
    .reg-about-beyond-collage-item--3 { grid-column: 2; grid-row: 2; }
    .reg-about-beyond-collage-item--4 { grid-column: 1; grid-row: 3; }
    .reg-about-beyond-collage-item--5 { grid-column: 2; grid-row: 3; }
    .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);
}

.reg-speaking-hero {
    max-width: 1364px;
    margin: 0 auto 48px;
    text-align: left;
}
.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 0 18px;
    max-width: 900px;
}
.reg-speaking-hero-sub {
    font-size: 18px;
    line-height: 28px;
    max-width: 820px;
    margin: 0 0 36px;
    color: rgba(255,255,255,0.9);
}
.reg-speaking-hero-slider {
    width: 100%;
    height: 559px;
    border-radius: 23px;
    overflow: hidden;
    background: rgba(255,255,255,0.06);
}
.reg-speaking-hero-slider img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.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;
}
.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-slider { height: 420px; }
    .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-slider { height: 260px; border-radius: 16px; }
    .reg-speaking-platforms {
        justify-content: flex-start;
        gap: 14px;
        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;
}
.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);
}

.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; }
}

/* ========================================
   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;
}

.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; }
}
