/* ================================================================
   LIBRE FILS — Community layer
   Liturgical bar, scripture, featured posts, series, media, events,
   prayer wall, reading plans, comments, dividers. Loads after
   librefils.css / motion.css and reuses their design tokens.
   ================================================================ */

/* ---------------------------------------------------------------- Navbar additions */
.rd-lang-toggle {
    font-family: var(--rd-font);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    color: var(--rd-gold-light);
    border: 1px solid var(--rd-border);
    border-radius: 999px;
    padding: 0.28rem 0.7rem;
    text-decoration: none;
    transition: background var(--rd-transition), color var(--rd-transition);
}
    .rd-lang-toggle:hover { background: rgba(181,123,238, 0.16); color: #fff; }

.rd-navbar .dropdown-toggle::after {
    border-top-color: var(--rd-gold);
    margin-left: 0.5em;
    vertical-align: 0.15em;
}

.rd-dropdown {
    background: var(--rd-navy);
    border: 1px solid var(--rd-border);
    border-radius: 0 0 8px 8px;
    padding: 0.4rem;
    margin-top: 0 !important;
    min-width: 15rem;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.4);
}
    .rd-dropdown .dropdown-item {
        font-family: var(--rd-font);
        font-size: 0.78rem;
        letter-spacing: 0.06em;
        color: var(--rd-on-dark-soft);
        border-radius: 5px;
        padding: 0.55rem 0.8rem;
    }
    .rd-dropdown .dropdown-item i { color: var(--rd-gold); margin-right: 0.65rem; }
    .rd-dropdown .dropdown-item:hover,
    .rd-dropdown .dropdown-item:focus { background: rgba(181,123,238, 0.14); color: var(--rd-gold-light); }

@media (min-width: 992px) {
    .rd-navbar .dropdown:hover > .dropdown-menu { display: block; }
}
@media (max-width: 991.98px) {
    .rd-navbar .nav-link { padding: 0.8rem 0.4rem !important; }
    .rd-dropdown { border: 0; box-shadow: none; background: rgba(255, 255, 255, 0.04); }
}

/* ---------------------------------------------------------------- Liturgical calendar */
.rd-liturgy-bar {
    --rd-lit: #3f8f5a;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.35rem 1rem;
    background: #12061f;
    border-top: 2px solid var(--rd-lit);
    color: var(--rd-on-dark-soft);
    font-family: var(--rd-font);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-align: center;
}
.rd-lit-season { color: var(--rd-gold-light); }
.rd-lit-sep { opacity: 0.5; }

.rd-lit-dot {
    width: 0.62rem;
    height: 0.62rem;
    border-radius: 50%;
    background: var(--rd-lit);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.18), 0 0 10px var(--rd-lit);
    flex: none;
}
    .rd-lit-dot.lg { width: 0.9rem; height: 0.9rem; }

.rd-liturgy-card {
    --rd-lit: #3f8f5a;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1.6rem 1.7rem;
    background: linear-gradient(160deg, var(--rd-navy) 0%, var(--rd-navy-light) 100%);
    border: 1px solid var(--rd-border);
    border-top: 4px solid var(--rd-lit);
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow-md);
    color: var(--rd-on-dark);
}
    .rd-liturgy-card .rd-label { color: var(--rd-gold-light); }
.rd-lit-title {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    font-size: clamp(1.15rem, 2.4vw, 1.55rem);
    line-height: 1.3;
    color: var(--rd-on-dark);
}
.rd-lit-meta {
    margin-top: 0.7rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.85rem;
    color: var(--rd-on-dark-faint);
}

/* ---------------------------------------------------------------- Layered hero → today */
.rd-today {
    position: relative;
    z-index: 3;
    margin-top: -5.5rem;
    padding: 0 0 3.5rem;
    background: linear-gradient(180deg, transparent 5.5rem, var(--rd-bg) 5.5rem);
}
.rd-hero .rd-scroll-cue { bottom: 6.6rem; }

.rd-scripture-card {
    position: relative;
    height: 100%;
    padding: 1.9rem 2.1rem;
    background: var(--rd-surface);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow-md);
    overflow: hidden;
}
    .rd-scripture-card::before {
        content: '“';
        position: absolute;
        right: 1.2rem;
        top: -1.6rem;
        font-size: 9rem;
        line-height: 1;
        color: var(--rd-gold);
        opacity: 0.14;
        pointer-events: none;
    }
.rd-scripture-text {
    margin: 0.3rem 0 0.6rem;
    font-size: clamp(1.15rem, 2.4vw, 1.55rem);
    line-height: 1.6;
    color: var(--rd-heading);
    font-style: italic;
}
.rd-scripture-ref { color: var(--rd-gold-text); letter-spacing: 0.08em; margin-bottom: 0.9rem; }
.rd-scripture-reflection {
    margin: 0;
    padding-top: 0.9rem;
    border-top: 1px solid var(--rd-hairline);
    color: var(--rd-text-mid);
    font-size: 0.95rem;
}

/* ---------------------------------------------------------------- Arch dividers (section tops) */
.rd-arch-top { position: relative; }
    .rd-arch-top::before {
        content: '';
        position: absolute;
        top: -27px;
        left: 50%;
        width: 150px;
        height: 28px;
        transform: translateX(-50%);
        background: var(--arch-bg, var(--rd-surface));
        -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 28' preserveAspectRatio='none'%3E%3Cpath d='M0 28 C38 28 68 14 75 0 C82 14 112 28 150 28 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 28' preserveAspectRatio='none'%3E%3Cpath d='M0 28 C38 28 68 14 75 0 C82 14 112 28 150 28 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
        z-index: 2;
        pointer-events: none;
    }
    .rd-arch-top.rd-canvas { --arch-bg: var(--rd-bg); }

/* ---------------------------------------------------------------- About / pillars */
.rd-pillar {
    height: 100%;
    padding: 1.4rem 1.2rem;
    text-align: center;
    background: var(--rd-bg);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
    transition: transform var(--rd-transition), box-shadow var(--rd-transition);
}
    .rd-pillar:hover { transform: translateY(-4px); box-shadow: var(--rd-shadow-sm); }
    .rd-pillar i { font-size: 1.7rem; color: var(--rd-gold-text); }
    .rd-pillar h3 { font-size: 1.05rem; margin: 0.6rem 0 0.35rem; }
    .rd-pillar p { margin: 0; font-size: 0.85rem; color: var(--rd-text-mid); line-height: 1.55; }

.rd-about-links { list-style: none; padding: 0; margin: 1.2rem 0 0; display: grid; gap: 0.6rem; }
    .rd-about-links a {
        display: flex;
        gap: 0.9rem;
        align-items: flex-start;
        padding: 0.85rem 1rem;
        border: 1px solid var(--rd-border);
        border-radius: var(--rd-radius);
        color: var(--rd-text);
        text-decoration: none;
        transition: background var(--rd-transition), transform var(--rd-transition);
    }
    .rd-about-links a:hover { background: var(--rd-bg); transform: translateX(4px); }
    .rd-about-links i { color: var(--rd-gold-text); font-size: 1.15rem; margin-top: 0.15rem; }

/* ---------------------------------------------------------------- Featured post + side list */
.rd-featured {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 430px;
    height: 100%;
    border-radius: var(--rd-radius);
    overflow: hidden;
    text-decoration: none;
    color: var(--rd-on-dark);
    background:
        linear-gradient(to top, rgba(10, 19, 38, 0.95) 12%, rgba(10, 19, 38, 0.35) 62%, rgba(10, 19, 38, 0.1)),
        var(--cover) center / cover no-repeat,
        var(--rd-navy);
    border: 1px solid var(--rd-border);
    box-shadow: var(--rd-shadow-md);
    transition: transform var(--rd-transition), box-shadow var(--rd-transition);
}
    .rd-featured:hover { transform: translateY(-4px); box-shadow: 0 16px 44px rgba(0, 0, 0, 0.35); color: var(--rd-on-dark); }
.rd-featured-tag {
    position: absolute;
    top: 1rem;
    left: 1rem;
    padding: 0.3rem 0.8rem;
    font-size: 0.62rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--rd-navy);
    background: var(--rd-gold-light);
    border-radius: 999px;
}
.rd-featured-body { padding: 2rem; max-width: 40rem; }
    .rd-featured-body h3 { color: #fff; font-size: clamp(1.4rem, 3vw, 2.1rem); margin-bottom: 0.6rem; }
    .rd-featured-body p { color: var(--rd-on-dark-soft); margin-bottom: 0.8rem; }
.rd-featured-meta { font-size: 0.8rem; color: var(--rd-gold-light); letter-spacing: 0.05em; }

.rd-sidelist {
    height: 100%;
    padding: 1.4rem 1.5rem;
    background: var(--rd-surface);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
}
.rd-sidelist-title { font-size: 1.05rem; color: var(--rd-gold-text); margin-bottom: 0.4rem; }
.rd-sideitem {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 0.9rem 0;
    border-top: 1px solid var(--rd-hairline);
    color: var(--rd-text);
    text-decoration: none;
    transition: transform var(--rd-transition);
}
    .rd-sideitem:first-of-type { border-top: 0; }
    .rd-sideitem:hover { transform: translateX(4px); color: var(--rd-heading); }
    .rd-sideitem strong { display: block; font-weight: 400; color: var(--rd-heading); line-height: 1.35; }
    .rd-sideitem small { color: var(--rd-text-light); }
.rd-sideitem-n {
    flex: none;
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    font-size: 1rem;
    color: var(--rd-gold-text);
    border: 1px solid var(--rd-border);
    border-radius: 50%;
}

/* ---------------------------------------------------------------- Tags */
.rd-tagcloud, .rd-tagrow { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rd-tagcloud.text-center { justify-content: center; }
.rd-tag {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    padding: 0.22rem 0.85rem;
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    color: var(--rd-gold-text);
    border: 1px solid var(--rd-border);
    border-radius: 999px;
    text-decoration: none;
    transition: background var(--rd-transition), color var(--rd-transition);
}
    .rd-tag small { opacity: 0.7; }
    .rd-tag:hover, .rd-tag.active { background: var(--rd-navy); color: var(--rd-gold-light); border-color: var(--rd-navy); }
    .rd-tag.sm { font-size: 0.68rem; padding: 0.1rem 0.6rem; }
.rd-card .rd-tagrow { margin-bottom: 0.7rem; }

/* ---------------------------------------------------------------- Image divider band */
.rd-divider-band {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    min-height: 380px;
    padding: 4rem 0;
    isolation: isolate;
    background: var(--rd-navy);
}
.rd-band-bg {
    position: absolute;
    inset: -16% 0;
    z-index: -1;
    background:
        linear-gradient(rgba(10, 19, 38, 0.68), rgba(10, 19, 38, 0.82)),
        var(--band) center / cover no-repeat;
    will-change: transform;
}
.rd-band-content { position: relative; max-width: 780px; }
    .rd-band-content blockquote {
        margin: 0.4rem 0 1rem;
        font-size: clamp(1.25rem, 3.2vw, 2.1rem);
        font-style: italic;
        line-height: 1.5;
        color: #fff;
        text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55);
    }
    .rd-band-content cite { color: var(--rd-gold-light); letter-spacing: 0.08em; font-style: normal; }

/* ---------------------------------------------------------------- Series + plan cards */
.rd-series-card, .rd-plan-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.7rem 1.6rem 1.4rem;
    background: var(--rd-bg);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
    text-decoration: none;
    color: var(--rd-text);
    overflow: hidden;
    transition: transform var(--rd-transition), box-shadow var(--rd-transition), border-color var(--rd-transition);
}
    .rd-series-card::before, .rd-plan-card::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 4px;
        background: linear-gradient(180deg, var(--rd-gold), transparent);
    }
    .rd-series-card:hover, .rd-plan-card:hover {
        transform: translateY(-5px);
        box-shadow: var(--rd-shadow-md);
        border-color: var(--rd-gold);
        color: var(--rd-text);
    }
    .rd-series-card h2, .rd-series-card h3, .rd-plan-card h2, .rd-plan-card h3 { font-size: 1.35rem; margin: 0.4rem 0 0.5rem; }
    .rd-series-card p, .rd-plan-card p { flex: 1; color: var(--rd-text-mid); font-size: 0.92rem; }
.rd-series-count, .rd-plan-days {
    align-self: flex-start;
    font-size: 0.62rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--rd-gold-text);
}
.rd-series-go { color: var(--rd-gold-text); font-size: 0.85rem; letter-spacing: 0.06em; }
    .rd-series-go i { transition: transform var(--rd-transition); display: inline-block; }
.rd-series-card:hover .rd-series-go i, .rd-plan-card:hover .rd-series-go i { transform: translateX(5px); }

.rd-series-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.8rem; }
    .rd-series-list a {
        display: flex;
        align-items: center;
        gap: 1.1rem;
        padding: 1rem 1.2rem;
        border: 1px solid var(--rd-border);
        border-radius: var(--rd-radius);
        color: var(--rd-text);
        text-decoration: none;
        background: var(--rd-surface);
        transition: transform var(--rd-transition), box-shadow var(--rd-transition);
    }
    .rd-series-list a:hover { transform: translateX(5px); box-shadow: var(--rd-shadow-sm); color: var(--rd-text); }
.rd-series-num {
    flex: none;
    width: 2.4rem;
    height: 2.4rem;
    display: grid;
    place-items: center;
    font-size: 1.15rem;
    color: var(--rd-navy);
    background: var(--rd-gold-light);
    border-radius: 50%;
}
.rd-series-item { flex: 1; min-width: 0; }
    .rd-series-item strong { display: block; font-weight: 400; color: var(--rd-heading); font-size: 1.1rem; }
    .rd-series-item small { color: var(--rd-text-light); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.rd-series-box {
    margin-bottom: 2rem;
    padding: 1rem 1.3rem;
    border: 1px solid var(--rd-border);
    border-left: 4px solid var(--rd-gold);
    border-radius: var(--rd-radius);
    background: var(--rd-bg);
}
.rd-series-box-title { display: block; font-size: 1.15rem; color: var(--rd-heading); text-decoration: none; margin-bottom: 0.4rem; }
.rd-series-box ol { margin: 0; padding-left: 1.3rem; color: var(--rd-text-mid); font-size: 0.9rem; }
    .rd-series-box li.current span { color: var(--rd-gold-text); font-weight: 400; }
    .rd-series-box a { color: var(--rd-text-mid); }

.rd-series-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
    .rd-series-nav a {
        display: block;
        padding: 0.9rem 1.1rem;
        border: 1px solid var(--rd-border);
        border-radius: var(--rd-radius);
        color: var(--rd-heading);
        text-decoration: none;
        transition: transform var(--rd-transition), background var(--rd-transition);
    }
    .rd-series-nav a:hover { background: var(--rd-bg); transform: translateY(-2px); }
    .rd-series-nav a small { display: block; color: var(--rd-gold-text); font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; }
    .rd-series-nav .next { text-align: right; grid-column: 2; }
@media (max-width: 575.98px) { .rd-series-nav { grid-template-columns: 1fr; } .rd-series-nav .next { grid-column: 1; } }

/* ---------------------------------------------------------------- Media (audio / video) */
.rd-media-section {
    background:
        radial-gradient(ellipse at 20% 0%, rgba(181,123,238, 0.12), transparent 55%),
        linear-gradient(160deg, #12061f 0%, var(--rd-navy) 55%, var(--rd-navy-light) 100%);
    color: var(--rd-on-dark);
}
.rd-media-card {
    height: 100%;
    padding: 1.6rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(181,123,238, 0.28);
    border-radius: var(--rd-radius);
    backdrop-filter: blur(4px);
}
    .rd-media-card h3 { color: #fff; font-size: 1.3rem; margin: 0.6rem 0 0.4rem; }
    .rd-media-card p { color: var(--rd-on-dark-soft); font-size: 0.9rem; }
.rd-media-head { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rd-gold-light); }
.rd-audio { width: 100%; margin-top: 0.5rem; color-scheme: dark; }
.rd-video { width: 100%; border-radius: 6px; margin-top: 0.5rem; }
.rd-video-frame { position: relative; aspect-ratio: 16 / 9; margin-top: 0.5rem; border-radius: 6px; overflow: hidden; background: #000; }
    .rd-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rd-empty-dark { color: var(--rd-on-dark-soft); }
    .rd-empty-dark i { color: var(--rd-gold-light); }

/* ---------------------------------------------------------------- Events */
.rd-event-card {
    display: flex;
    gap: 1.1rem;
    height: 100%;
    padding: 1.3rem;
    background: var(--rd-bg);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
    transition: transform var(--rd-transition), box-shadow var(--rd-transition);
}
    .rd-event-card:hover { transform: translateY(-4px); box-shadow: var(--rd-shadow-md); }
.rd-event-date {
    flex: none;
    width: 4.2rem;
    height: 4.8rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rd-navy);
    color: var(--rd-on-dark);
    border-radius: 6px;
    border-top: 4px solid var(--rd-gold);
    line-height: 1.05;
}
.rd-event-month { font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rd-gold-light); }
.rd-event-day { font-size: 1.9rem; }
.rd-event-body { min-width: 0; }
    .rd-event-body h3 { font-size: 1.2rem; margin: 0 0 0.35rem; }
    .rd-event-body p { margin: 0 0 0.25rem; font-size: 0.86rem; color: var(--rd-text-mid); line-height: 1.5; }
.rd-event-when { color: var(--rd-gold-text) !important; }
.rd-event-weekly { margin-left: 0.5rem; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.85; }

/* ---------------------------------------------------------------- Prayer wall */
.rd-wall-teaser {
    position: relative;
    isolation: isolate;
    color: var(--rd-on-dark);
    background:
        linear-gradient(rgba(10, 19, 38, 0.86), rgba(10, 19, 38, 0.92)),
        url('/images/prayer-bg.jpg') center / cover fixed no-repeat,
        var(--rd-navy);
}
.rd-wall-lead { color: var(--rd-on-dark-soft); font-size: 1.05rem; margin: 0.5rem 0 0; }

.rd-intention {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    height: 100%;
    padding: 1.4rem 1.5rem 1.2rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(181,123,238, 0.28);
    border-radius: var(--rd-radius);
    color: var(--rd-on-dark);
    transition: transform var(--rd-transition), background var(--rd-transition);
}
    .rd-intention:hover { transform: translateY(-3px); background: rgba(255, 255, 255, 0.09); }
    .rd-intention::before {
        content: '';
        position: absolute;
        top: 0.9rem;
        right: 1rem;
        width: 0.5rem;
        height: 0.5rem;
        border-radius: 50%;
        background: var(--rd-gold-light);
        box-shadow: 0 0 12px 3px rgba(217,184,255, 0.65);
        animation: rdFlicker 3.2s ease-in-out infinite;
    }
    .rd-intention p { margin: 0; flex: 1; font-style: italic; font-size: 1.05rem; line-height: 1.6; }
.rd-intention-meta { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: 0.82rem; color: var(--rd-gold-light); }
.rd-intention-count { color: var(--rd-on-dark-soft); }
@keyframes rdFlicker {
    0%, 100% { opacity: 0.55; transform: scale(0.9); }
    45% { opacity: 1; transform: scale(1.15); }
    70% { opacity: 0.75; transform: scale(1); }
}

.rd-intention.light {
    background: var(--rd-bg);
    color: var(--rd-text);
    border-color: var(--rd-border);
}
    .rd-intention.light:hover { background: var(--rd-bg); box-shadow: var(--rd-shadow-sm); }
    .rd-intention.light .rd-intention-meta { color: var(--rd-gold-text); justify-content: flex-start; }

.rd-wall-form {
    padding: 1.6rem;
    background: var(--rd-bg);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
}

/* ---------------------------------------------------------------- Amen / reactions */
.rd-amen {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.32rem 0.95rem;
    font-family: var(--rd-font);
    font-size: 0.8rem;
    letter-spacing: 0.06em;
    color: var(--rd-text-mid);
    background: transparent;
    border: 1px solid var(--rd-border);
    border-radius: 999px;
    cursor: pointer;
    transition: background var(--rd-transition), color var(--rd-transition), transform 0.15s ease;
}
    .rd-amen:hover { background: rgba(181,123,238, 0.14); }
    .rd-amen:active { transform: scale(0.94); }
    .rd-amen.on { background: var(--rd-gold-light); color: var(--rd-navy); border-color: var(--rd-gold); }
    .rd-amen.on .rd-amen-icon { animation: rdPop 0.4s var(--rd-ease, ease); }
    .rd-amen:disabled { opacity: 0.6; cursor: default; }
.rd-amen-count { padding-left: 0.5rem; border-left: 1px solid currentColor; opacity: 0.85; }
.rd-reflection-card .rd-amen { color: #2a0f52; border-color: rgba(138, 109, 31, 0.5); }
    .rd-reflection-card .rd-amen.on { color: var(--rd-navy); }
.rd-intention .rd-amen { align-self: flex-start; margin-top: 0.3rem; }
.rd-reactions { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; margin-top: 2rem; }

/* ---------------------------------------------------------------- Comments */
.rd-comment { padding: 1rem 0; border-bottom: 1px solid var(--rd-hairline); }
.rd-comment-head { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; font-size: 0.9rem; }
.rd-comment-avatar {
    width: 1.9rem;
    height: 1.9rem;
    display: grid;
    place-items: center;
    color: var(--rd-navy);
    background: var(--rd-gold-light);
    border-radius: 50%;
    font-size: 0.95rem;
}
.rd-comment-text { margin: 0.5rem 0 0 2.5rem; white-space: pre-line; color: var(--rd-text); }
.rd-comment-form { margin-top: 1.6rem; }

/* ---------------------------------------------------------------- Reading plans */
.rd-plan-progress {
    padding: 1.2rem 1.4rem;
    margin-bottom: 1.6rem;
    background: var(--rd-bg);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
}
.rd-progressbar { height: 0.55rem; margin: 0.7rem 0; background: var(--rd-hairline); border-radius: 999px; overflow: hidden; }
    .rd-progressbar span { display: block; height: 100%; background: linear-gradient(90deg, var(--rd-gold), var(--rd-gold-light)); border-radius: inherit; transition: width 0.5s var(--rd-ease, ease); }
.rd-plan-done { color: var(--rd-gold-text); margin: 0.3rem 0 0.6rem; }
.rd-link-btn { background: none; border: 0; padding: 0; color: var(--rd-gold-text); text-decoration: underline; cursor: pointer; font-family: inherit; font-size: 0.85rem; }

.rd-plan-days-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
    .rd-plan-days-list li {
        display: flex;
        gap: 1rem;
        padding: 1.1rem 1.2rem;
        background: var(--rd-surface);
        border: 1px solid var(--rd-border);
        border-radius: var(--rd-radius);
        transition: opacity var(--rd-transition), border-color var(--rd-transition);
    }
    .rd-plan-days-list li.next { border-color: var(--rd-gold); box-shadow: 0 0 0 3px rgba(181,123,238, 0.16); }
    .rd-plan-days-list li.done { opacity: 0.62; }
.rd-check {
    flex: none;
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    margin-top: 0.15rem;
    color: var(--rd-navy);
    background: transparent;
    border: 2px solid var(--rd-gold);
    border-radius: 50%;
    cursor: pointer;
    transition: background var(--rd-transition);
}
    .rd-check:hover { background: rgba(181,123,238, 0.2); }
    [aria-pressed="true"].rd-check { background: var(--rd-gold-light); }
.rd-plan-day h3 { font-size: 1.15rem; margin: 0.15rem 0; }
.rd-plan-daynum { font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rd-gold-text); }
.rd-plan-ref { margin: 0.2rem 0; color: var(--rd-heading); }
.rd-plan-reflection { margin: 0.2rem 0 0; color: var(--rd-text-mid); font-size: 0.92rem; }

/* ---------------------------------------------------------------- Newsletter band */
.rd-newsletter {
    padding: 3.5rem 0;
    background:
        radial-gradient(ellipse at 90% 0%, rgba(181,123,238, 0.16), transparent 55%),
        linear-gradient(135deg, var(--rd-navy) 0%, var(--rd-navy-light) 100%);
    border-top: 1px solid var(--rd-border);
    border-bottom: 1px solid var(--rd-border);
}
    .rd-newsletter .rd-subscribe-form { max-width: 480px; }

/* ---------------------------------------------------------------- Motion safety */
@media (prefers-reduced-motion: reduce) {
    .rd-intention::before { animation: none; }
    .rd-band-bg { transform: none !important; }
    .rd-featured, .rd-series-card, .rd-plan-card, .rd-event-card { transition: none; }
}
@media (max-width: 991.98px) {
    .rd-wall-teaser { background-attachment: scroll; }
    .rd-today { margin-top: -3rem; background: linear-gradient(180deg, transparent 3rem, var(--rd-bg) 3rem); }
    .rd-hero .rd-scroll-cue { display: none; }
}

/* ---- Admin-managed pictures ---- */
.rd-imgpick-preview { position: relative; display: inline-block; margin-bottom: 0.6rem; max-width: 100%; }
.rd-imgpick-preview img { display: block; max-width: 100%; max-height: 160px; border-radius: 8px; border: 1px solid var(--rd-border, rgba(0,0,0,.15)); }
.rd-imgpick-preview .rd-btn-danger { position: absolute; top: 6px; right: 6px; }

.rd-thumb { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; display: block; margin-bottom: 0.9rem; }
.rd-thumb-sm { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; vertical-align: middle; margin-right: 0.6rem; }
.rd-event-card .rd-event-photo { width: 100%; max-height: 180px; object-fit: cover; border-radius: 8px; margin-bottom: 0.7rem; }

/* ---- Live broadcast ---- */
.rd-live-banner {
    display: flex; align-items: center; justify-content: center; gap: 0.7rem; flex-wrap: wrap;
    padding: 0.55rem 1rem; text-align: center; text-decoration: none;
    background: var(--rd-navy-light); color: var(--rd-on-dark);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.85rem;
}
.rd-live-banner[hidden] { display: none; }
.rd-live-banner:hover { color: var(--rd-on-dark); filter: brightness(1.12); }
.rd-live-banner strong { letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.72rem; }
.rd-live-banner .rd-live-title { color: var(--rd-on-dark-soft); }
.rd-live-banner .rd-live-go { color: var(--rd-gold-light); font-weight: 500; }

.rd-live-dot {
    display: inline-block; width: 0.6rem; height: 0.6rem; border-radius: 50%;
    background: #ff3b47; box-shadow: 0 0 0 0 rgba(255, 59, 71, 0.6); animation: rd-live-pulse 1.6s infinite;
}
@keyframes rd-live-pulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 59, 71, 0.55); }
    70% { box-shadow: 0 0 0 0.55rem rgba(255, 59, 71, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 59, 71, 0); }
}
@media (prefers-reduced-motion: reduce) { .rd-live-dot { animation: none; } }

.rd-live-badge {
    display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.75rem; border-radius: 999px;
    background: rgba(255, 59, 71, 0.12); color: #c4202c; border: 1px solid rgba(255, 59, 71, 0.35);
    font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
}
:root[data-theme="dark"] .rd-live-badge { color: #ff8a92; }
.rd-live-now { margin-bottom: 1.2rem; }
.rd-live-now h2 { margin: 0.7rem 0 0.4rem; }
.rd-live-frame { box-shadow: var(--rd-shadow-md); border-radius: var(--rd-radius); overflow: hidden; }
.rd-live-admin-card { border-left: 4px solid #ff3b47; }
.rd-live-dashboard { border-left: 4px solid var(--rd-hairline); }
.rd-live-dashboard.is-live { border-left-color: #ff3b47; }
