/*!
 * Reformistas Core — Design System
 * Mobile-first, paleta Escola Sabatina + brandbook institucional
 * BEM-ish naming (rf-block__element--modifier)
 */

/* =============================================================
 * 1. DESIGN TOKENS
 * ============================================================= */
:root {
    /* Paleta institucional oficial (brandbook + Escola Sabatina) */
    --rf-color-primary:         #0A245E;  /* Azul escuro — autoridade */
    --rf-color-primary-dark:    #061538;
    --rf-color-primary-light:   #0F3999;  /* Azul complementar */
    --rf-color-secondary:       #597EA1;  /* Azul médio — equilíbrio */
    --rf-color-accent:          #F4A580;  /* Salmão/Pêssego — calor, CTAs */
    --rf-color-accent-dark:     #E08864;
    --rf-color-warm:            #F1BE48;  /* Destaque quente */
    --rf-color-coral:           #FF8D6D;  /* Destaque coral */
    --rf-color-soft-blue:       #3E80F2;  /* Azul claro de apoio */
    --rf-color-beige:           #EFD19F;  /* Bege suave */

    --rf-color-bg:              #F7F6F4;  /* Off-white — respiro */
    --rf-color-bg-alt:          #F2F1EF;  /* Neutro quente */
    --rf-color-surface:         #FFFFFF;
    --rf-color-border:          #E6E4E0;
    --rf-color-divider:         #C1C7C7;  /* Cinza divisores */
    --rf-color-muted:           #7E7E82;
    --rf-color-text:            #1A1D29;
    --rf-color-text-soft:       #4a5568;

    /* Scoping por departamento — override em .depto-{slug} */
    --rf-color-default:         var(--rf-color-primary);
    --rf-color-default-dark:    var(--rf-color-primary-dark);
    --rf-color-default-light:   var(--rf-color-secondary);
    --rf-color-default-aux:     var(--rf-color-accent);

    /* Tipografia */
    --rf-font-display:          "Inter", "BW Modelica", -apple-system, BlinkMacSystemFont, sans-serif;
    --rf-font-body:             "Noto Sans", "Inter", sans-serif;
    --rf-font-serif:            "Lora", "Noto Serif", Georgia, serif;

    --rf-fs-base:               16px;
    --rf-lh-base:               1.55;

    /* Espaçamento (escala 4pt) */
    --rf-sp-1:  4px;
    --rf-sp-2:  8px;
    --rf-sp-3:  12px;
    --rf-sp-4:  16px;
    --rf-sp-5:  20px;
    --rf-sp-6:  24px;
    --rf-sp-8:  32px;
    --rf-sp-10: 40px;
    --rf-sp-12: 48px;
    --rf-sp-16: 64px;
    --rf-sp-20: 80px;

    /* Raios, sombras, transições */
    --rf-radius-sm:  6px;
    --rf-radius-md:  10px;
    --rf-radius-lg:  14px;
    --rf-radius-xl:  20px;
    --rf-radius-full: 9999px;

    --rf-shadow-sm:  0 1px 2px rgba(10, 36, 94, .06);
    --rf-shadow-md:  0 4px 12px rgba(10, 36, 94, .08), 0 2px 4px rgba(10, 36, 94, .04);
    --rf-shadow-lg:  0 12px 32px rgba(10, 36, 94, .12), 0 4px 8px rgba(10, 36, 94, .05);
    --rf-shadow-xl:  0 24px 56px rgba(10, 36, 94, .18);

    --rf-ease:       cubic-bezier(.2, .8, .2, 1);
    --rf-dur:        .22s;

    /* Containers */
    --rf-container:  1200px;
    --rf-container-wide: 1440px;
}

/* =============================================================
 * 2. RESET / BASE
 * ============================================================= */
.rf-listing, .rf-grid, .rf-card, .rf-hero, .rf-btn, .rf-chip, .rf-section,
.rf-depto-card, .rf-destaque, .rf-filtros, .rf-localizador, .rf-empty {
    box-sizing: border-box;
}
.rf-listing *, .rf-hero *, .rf-card *, .rf-grid * { box-sizing: border-box; }

/* =============================================================
 * 3. CONTAINER / LAYOUT
 * ============================================================= */
.rf-container {
    width: 100%;
    max-width: var(--rf-container);
    margin-inline: auto;
    padding-inline: var(--rf-sp-4);
}

.rf-section {
    padding-block: var(--rf-sp-10);
}
.rf-section__title {
    font-family: var(--rf-font-display);
    font-weight: 800;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    color: var(--rf-color-primary);
    margin: 0 0 var(--rf-sp-6);
    letter-spacing: -0.01em;
}
.rf-section__subtitle {
    color: var(--rf-color-secondary);
    font-size: 1rem;
    margin-top: calc(var(--rf-sp-6) * -1 + var(--rf-sp-2));
    margin-bottom: var(--rf-sp-6);
}

/* =============================================================
 * 4. GRID (mobile-first)
 * ============================================================= */
.rf-grid {
    display: grid;
    gap: var(--rf-sp-5);
    grid-template-columns: 1fr;
}
@media (min-width: 560px) {
    .rf-grid--cols-2, .rf-grid--cols-3, .rf-grid--cols-4, .rf-grid--cols-5, .rf-grid--cols-6 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 860px) {
    .rf-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .rf-grid--cols-4, .rf-grid--cols-5, .rf-grid--cols-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1080px) {
    .rf-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .rf-grid--cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .rf-grid--cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* =============================================================
 * 5. HERO
 * ============================================================= */
.rf-hero {
    position: relative;
    min-height: 280px;
    padding-block: var(--rf-sp-12);
    color: #fff;
    background: linear-gradient(135deg, var(--rf-color-default, var(--rf-color-primary)) 0%, var(--rf-color-default-dark, var(--rf-color-primary-dark)) 100%);
    background-size: cover;
    background-position: center;
    overflow: hidden;
}
.rf-hero--simples[style*="background-image"],
.rf-hero[style*="background-image"] {
    background-color: var(--rf-color-default, var(--rf-color-primary));
}
.rf-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(10,36,94,.8) 0%, rgba(10,36,94,.55) 100%);
    z-index: 1;
}
.rf-hero__content {
    position: relative; z-index: 2;
    max-width: 780px;
    display: grid;
    gap: var(--rf-sp-4);
}
.rf-hero__badge {
    display: inline-flex; align-items: center; gap: .5em;
    padding: .35em 1em;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.3);
    border-radius: var(--rf-radius-full);
    font-family: var(--rf-font-body);
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    width: fit-content;
    backdrop-filter: blur(8px);
}
.rf-hero__title {
    font-family: var(--rf-font-display);
    font-weight: 900;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.05;
    margin: 0;
    letter-spacing: -0.02em;
}
.rf-hero__subtitle {
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.5;
    opacity: .92;
    margin: 0;
    max-width: 60ch;
}
.rf-hero--depto {
    min-height: 340px;
}

/* =============================================================
 * 6. BOTÕES
 * ============================================================= */
.rf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    padding: .8em 1.4em;
    border: 1px solid transparent;
    border-radius: var(--rf-radius-md);
    font-family: var(--rf-font-display);
    font-weight: 700;
    font-size: .95rem;
    line-height: 1;
    letter-spacing: .01em;
    text-decoration: none;
    cursor: pointer;
    transition: transform var(--rf-dur) var(--rf-ease), box-shadow var(--rf-dur) var(--rf-ease), background-color var(--rf-dur);
    min-height: 44px; /* target touch */
}
.rf-btn:hover { transform: translateY(-1px); box-shadow: var(--rf-shadow-md); }
.rf-btn:active { transform: translateY(0); }
.rf-btn:focus-visible { outline: 3px solid var(--rf-color-accent); outline-offset: 2px; }

.rf-btn--primary {
    background: var(--rf-color-default, var(--rf-color-primary));
    color: #fff;
}
.rf-btn--primary:hover { background: var(--rf-color-default-dark, var(--rf-color-primary-dark)); color: #fff; }

.rf-btn--accent {
    background: var(--rf-color-accent);
    color: var(--rf-color-primary);
}
.rf-btn--accent:hover { background: var(--rf-color-accent-dark); color: var(--rf-color-primary); }

.rf-btn--ghost {
    background: transparent;
    color: var(--rf-color-default, var(--rf-color-primary));
    border-color: currentColor;
}
.rf-btn--ghost:hover { background: var(--rf-color-default, var(--rf-color-primary)); color: #fff; }

.rf-btn--sm { padding: .55em 1em; font-size: .85rem; min-height: 38px; }
.rf-btn--lg { padding: 1em 1.8em; font-size: 1.05rem; }

.rf-link-arrow {
    font-weight: 600;
    color: var(--rf-color-default, var(--rf-color-primary));
    text-decoration: none;
    transition: color var(--rf-dur);
}
.rf-link-arrow:hover { color: var(--rf-color-accent-dark); }
.rf-link-arrow--inverse { color: #fff; }

/* =============================================================
 * 7. CARDS (base genérico — mobile-first)
 * ============================================================= */
.rf-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--rf-color-surface);
    border: 1px solid var(--rf-color-border);
    border-radius: var(--rf-radius-lg);
    overflow: hidden;
    transition: transform var(--rf-dur) var(--rf-ease), box-shadow var(--rf-dur) var(--rf-ease), border-color var(--rf-dur);
    height: 100%;
}
.rf-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--rf-shadow-lg);
    border-color: transparent;
}
.rf-card__link {
    color: inherit;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.rf-card__media {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--rf-color-bg-alt) center/cover no-repeat;
    overflow: hidden;
}
.rf-card__media::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.1));
    opacity: 0; transition: opacity var(--rf-dur);
}
.rf-card:hover .rf-card__media::after { opacity: 1; }

.rf-card__badge,
.rf-card__file-badge,
.rf-card__date-badge {
    position: absolute;
    font-family: var(--rf-font-display);
    font-weight: 800;
    z-index: 2;
}
.rf-card__badge {
    top: var(--rf-sp-3); left: var(--rf-sp-3);
    background: var(--rf-color-accent);
    color: var(--rf-color-primary);
    width: 44px; height: 44px;
    border-radius: 50%;
    display: grid; place-items: center;
    font-size: 1.1rem;
    box-shadow: var(--rf-shadow-md);
}
.rf-card__file-badge {
    top: var(--rf-sp-3); right: var(--rf-sp-3);
    background: rgba(10,36,94,.9);
    color: #fff;
    padding: .3em .7em;
    border-radius: var(--rf-radius-full);
    font-size: .7rem;
    letter-spacing: .08em;
    backdrop-filter: blur(6px);
}
.rf-card__date-badge {
    top: var(--rf-sp-3); left: var(--rf-sp-3);
    background: #fff; color: var(--rf-color-primary);
    padding: var(--rf-sp-2) var(--rf-sp-3);
    border-radius: var(--rf-radius-md);
    text-align: center; line-height: 1;
    box-shadow: var(--rf-shadow-md);
}
.rf-card__date-badge span { font-size: 1.5rem; display: block; font-weight: 900; }
.rf-card__date-badge small { font-size: .65rem; font-weight: 700; letter-spacing: .1em; }

.rf-card__icon-video {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    z-index: 2;
    font-size: 3rem;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,0,0,.4);
    pointer-events: none;
}

.rf-card__body {
    padding: var(--rf-sp-5);
    display: flex;
    flex-direction: column;
    gap: var(--rf-sp-2);
    flex: 1;
}
.rf-card__tag {
    display: inline-block;
    color: var(--rf-color-default, var(--rf-color-primary));
    font-weight: 700;
    font-size: .75rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.rf-card__title {
    font-family: var(--rf-font-display);
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.3;
    margin: 0;
    color: var(--rf-color-text);
    letter-spacing: -0.01em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.rf-card__excerpt {
    font-size: .9rem;
    color: var(--rf-color-text-soft);
    margin: 0;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.rf-card__meta {
    font-size: .8rem;
    color: var(--rf-color-muted);
    display: inline-flex; align-items: center; gap: .3em;
    margin: 0;
}
.rf-card__meta .dashicons { font-size: .9rem; width: 1em; height: 1em; }
.rf-card__chips {
    display: flex; flex-wrap: wrap; gap: var(--rf-sp-1);
    margin-top: auto;
    padding-top: var(--rf-sp-2);
}

.rf-card__footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--rf-sp-3) var(--rf-sp-5) var(--rf-sp-5);
    gap: var(--rf-sp-3);
}
.rf-card__counter {
    display: inline-flex; align-items: center; gap: .3em;
    font-size: .8rem;
    color: var(--rf-color-muted);
}

/* Card variações */
.rf-card--crenca .rf-card__media { aspect-ratio: 4 / 3; }
.rf-card--lider .rf-card__avatar {
    aspect-ratio: 1 / 1;
    background: var(--rf-color-bg-alt) center/cover no-repeat;
    border-radius: 50%;
    width: 64%;
    margin: var(--rf-sp-6) auto 0;
    box-shadow: var(--rf-shadow-md);
}
.rf-card--curso {
    background: linear-gradient(135deg, var(--rf-color-default, var(--rf-color-primary)) 0%, var(--rf-color-default-dark, var(--rf-color-primary-dark)) 100%);
    color: #fff;
}
.rf-card--curso .rf-card__title { color: #fff; }
.rf-card--curso .rf-card__excerpt { color: rgba(255,255,255,.85); }
.rf-card--curso .rf-card__tag { color: var(--rf-color-accent); }
.rf-card--curso .rf-btn--ghost { color: #fff; border-color: rgba(255,255,255,.5); }
.rf-card--curso .rf-btn--ghost:hover { background: #fff; color: var(--rf-color-primary); border-color: #fff; }

/* =============================================================
 * 8. CHIPS (filtros de taxonomias)
 * ============================================================= */
.rf-chip {
    display: inline-flex;
    align-items: center;
    padding: .25em .7em;
    background: var(--rf-color-bg);
    color: var(--rf-color-primary);
    border: 1px solid var(--rf-color-border);
    border-radius: var(--rf-radius-full);
    font-size: .72rem;
    font-weight: 600;
    line-height: 1.4;
}
.rf-chip--alt {
    background: transparent;
    color: var(--rf-color-secondary);
    border-color: var(--rf-color-divider);
}

/* =============================================================
 * 9. DESTAQUE (1 grande + 2 laterais)
 * ============================================================= */
.rf-destaque {
    display: grid;
    gap: var(--rf-sp-4);
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    margin-bottom: var(--rf-sp-10);
}
@media (min-width: 860px) {
    .rf-destaque {
        grid-template-columns: 2fr 1fr;
        grid-template-rows: 1fr 1fr;
        min-height: 460px;
    }
    .rf-destaque__item--main {
        grid-row: 1 / span 2;
    }
}
.rf-destaque__item {
    position: relative;
    min-height: 220px;
    border-radius: var(--rf-radius-lg);
    overflow: hidden;
    background: var(--rf-color-primary) center/cover no-repeat;
    color: #fff;
    transition: transform var(--rf-dur) var(--rf-ease), box-shadow var(--rf-dur) var(--rf-ease);
}
.rf-destaque__item:hover { transform: translateY(-2px); box-shadow: var(--rf-shadow-lg); }
.rf-destaque__item--main { min-height: 340px; }
.rf-destaque__link {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: var(--rf-sp-6);
    color: #fff;
    text-decoration: none;
}
.rf-destaque__date {
    font-size: .8rem;
    opacity: .85;
    letter-spacing: .05em;
}
.rf-destaque__title {
    font-family: var(--rf-font-display);
    font-weight: 800;
    font-size: clamp(1rem, 1.7vw, 1.5rem);
    line-height: 1.2;
    margin: .3em 0 0;
    letter-spacing: -0.01em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.rf-destaque__item--main .rf-destaque__title { font-size: clamp(1.5rem, 3vw, 2.4rem); }

/* =============================================================
 * 10. DEPTO CARDS (grid de departamentos)
 * ============================================================= */
.rf-grid--depto-cards { gap: var(--rf-sp-3); }

.rf-depto-card {
    display: flex;
    flex-direction: column;
    gap: var(--rf-sp-2);
    padding: var(--rf-sp-6);
    background: linear-gradient(135deg, var(--rf-color-default, var(--rf-color-primary)) 0%, var(--rf-color-default-dark, var(--rf-color-primary-dark)) 100%);
    color: #fff;
    border-radius: var(--rf-radius-lg);
    text-decoration: none;
    min-height: 140px;
    transition: transform var(--rf-dur) var(--rf-ease), box-shadow var(--rf-dur) var(--rf-ease);
    position: relative;
    overflow: hidden;
}
.rf-depto-card::before {
    content: "";
    position: absolute; right: -20%; top: -50%;
    width: 180px; height: 180px;
    background: rgba(255,255,255,.08);
    border-radius: 50%;
    transition: transform var(--rf-dur) var(--rf-ease);
}
.rf-depto-card:hover { transform: translateY(-4px); box-shadow: var(--rf-shadow-lg); }
.rf-depto-card:hover::before { transform: scale(1.2); }
.rf-depto-card .dashicons { font-size: 2rem; width: 1em; height: 1em; opacity: .9; }
.rf-depto-card__label { font-family: var(--rf-font-display); font-weight: 800; font-size: 1.1rem; letter-spacing: -0.01em; }
.rf-depto-card__desc { font-size: .85rem; opacity: .85; line-height: 1.4; }
.rf-depto-card__count { font-size: .8rem; opacity: .75; }

/* =============================================================
 * 11. FILTROS (sidebar mobile drawer)
 * ============================================================= */
.rf-filtros {
    margin-bottom: var(--rf-sp-5);
    background: var(--rf-color-bg);
    border: 1px solid var(--rf-color-border);
    border-radius: var(--rf-radius-lg);
    overflow: hidden;
}
.rf-filtros__toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: var(--rf-sp-2);
    padding: var(--rf-sp-4) var(--rf-sp-5);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-family: var(--rf-font-display);
    font-weight: 700;
    font-size: .95rem;
    color: var(--rf-color-primary);
    text-align: left;
}
.rf-filtros__toggle::after {
    content: "▾";
    margin-left: auto;
    transition: transform var(--rf-dur);
}
.rf-filtros__toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.rf-filtros__body {
    display: none;
    padding: 0 var(--rf-sp-5) var(--rf-sp-5);
    gap: var(--rf-sp-4);
    flex-direction: column;
}
.rf-filtros__toggle[aria-expanded="true"] + .rf-filtros__body { display: flex; }

.rf-filtros__group { border: 0; padding: 0; margin: 0; }
.rf-filtros__group legend {
    font-weight: 700;
    font-size: .8rem;
    color: var(--rf-color-secondary);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: var(--rf-sp-2);
    padding: 0;
}
.rf-filtros__group select {
    width: 100%;
    padding: .7em 1em;
    background: #fff;
    border: 1px solid var(--rf-color-border);
    border-radius: var(--rf-radius-md);
    font-family: var(--rf-font-body);
    font-size: .95rem;
    color: var(--rf-color-text);
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><path fill='%230A245E' d='M8 11L3 6h10z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
    cursor: pointer;
    transition: border-color var(--rf-dur);
}
.rf-filtros__group select:hover { border-color: var(--rf-color-primary); }
.rf-filtros__group select:focus { outline: 2px solid var(--rf-color-accent); outline-offset: 1px; }

@media (min-width: 1080px) {
    .rf-listing {
        display: grid;
        grid-template-columns: 260px 1fr;
        gap: var(--rf-sp-8);
    }
    .rf-filtros { position: sticky; top: 88px; align-self: start; margin-bottom: 0; }
    .rf-filtros__toggle { pointer-events: none; cursor: default; background: #fff; }
    .rf-filtros__toggle::after { display: none; }
    .rf-filtros__body { display: flex !important; padding-top: var(--rf-sp-2); }
}

/* =============================================================
 * 12. LOCALIZADOR
 * ============================================================= */
.rf-localizador {
    background: var(--rf-color-bg);
    border-radius: var(--rf-radius-lg);
    padding: var(--rf-sp-6);
    display: grid;
    gap: var(--rf-sp-5);
}
.rf-localizador__form { display: grid; gap: var(--rf-sp-4); }
.rf-localizador__form label {
    display: grid; gap: var(--rf-sp-2);
    font-weight: 600;
    color: var(--rf-color-secondary);
    font-size: .85rem;
}
.rf-localizador__form input {
    padding: .9em 1em;
    border: 1px solid var(--rf-color-border);
    border-radius: var(--rf-radius-md);
    font-size: 1rem;
    font-family: var(--rf-font-body);
}
.rf-localizador__resultados:empty::before {
    content: "Use a geolocalização ou pesquise por cidade para ver igrejas próximas.";
    display: block;
    color: var(--rf-color-muted);
    text-align: center;
    padding: var(--rf-sp-6);
}

/* =============================================================
 * 13. EMPTY / LOADING
 * ============================================================= */
.rf-empty {
    padding: var(--rf-sp-10);
    text-align: center;
    color: var(--rf-color-muted);
    background: var(--rf-color-bg);
    border: 1px dashed var(--rf-color-divider);
    border-radius: var(--rf-radius-lg);
}

.rf-skeleton {
    background: linear-gradient(90deg, #eee 25%, #f4f4f4 50%, #eee 75%);
    background-size: 200% 100%;
    animation: rfShimmer 1.2s linear infinite;
    border-radius: var(--rf-radius-md);
}
@keyframes rfShimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* =============================================================
 * 14. SINGLE TEMPLATES HELPERS
 * ============================================================= */
.rf-single {
    padding-block: var(--rf-sp-8);
}
.rf-single__header {
    margin-bottom: var(--rf-sp-8);
}
.rf-single__title {
    font-family: var(--rf-font-display);
    font-weight: 900;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1.1;
    margin: 0 0 var(--rf-sp-3);
    color: var(--rf-color-text);
    letter-spacing: -0.02em;
}
.rf-single__meta {
    display: flex; flex-wrap: wrap; gap: var(--rf-sp-4);
    color: var(--rf-color-muted);
    font-size: .9rem;
}
.rf-single__content {
    font-family: var(--rf-font-body);
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--rf-color-text);
}
.rf-single__content p { margin: 0 0 1.2em; }
.rf-single__content h2 {
    font-family: var(--rf-font-display);
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--rf-color-primary);
    margin-top: 2em;
    margin-bottom: .6em;
}
.rf-single__content img { max-width: 100%; height: auto; border-radius: var(--rf-radius-md); }

.rf-download-files {
    background: var(--rf-color-bg);
    border-radius: var(--rf-radius-lg);
    padding: var(--rf-sp-5);
    display: grid;
    gap: var(--rf-sp-3);
    margin-block: var(--rf-sp-6);
}
.rf-download-files__title {
    font-family: var(--rf-font-display);
    font-weight: 800;
    color: var(--rf-color-primary);
    margin: 0 0 var(--rf-sp-3);
    font-size: 1.1rem;
}
.rf-download-file {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--rf-sp-3);
    padding: var(--rf-sp-4);
    background: #fff;
    border: 1px solid var(--rf-color-border);
    border-radius: var(--rf-radius-md);
    transition: border-color var(--rf-dur);
}
.rf-download-file:hover { border-color: var(--rf-color-primary); }
.rf-download-file__info { display: flex; align-items: center; gap: var(--rf-sp-3); min-width: 0; }
.rf-download-file__ext {
    background: var(--rf-color-default, var(--rf-color-primary));
    color: #fff;
    width: 44px; height: 44px;
    display: grid; place-items: center;
    border-radius: var(--rf-radius-md);
    font-weight: 800;
    font-size: .75rem;
    flex-shrink: 0;
}
.rf-download-file__label { font-weight: 600; color: var(--rf-color-text); min-width: 0; }
.rf-download-file__label small { display: block; color: var(--rf-color-muted); font-weight: 400; font-size: .8rem; }

/* =============================================================
 * 15. BREADCRUMBS
 * ============================================================= */
.rf-breadcrumbs {
    font-size: .85rem;
    color: var(--rf-color-muted);
    margin-bottom: var(--rf-sp-4);
}
.rf-breadcrumbs a { color: var(--rf-color-secondary); text-decoration: none; }
.rf-breadcrumbs a:hover { color: var(--rf-color-primary); }
.rf-breadcrumbs .sep { margin-inline: .5em; opacity: .5; }

/* =============================================================
 * 16. UTILS
 * ============================================================= */
.rf-hide-mobile  { display: none; }
.rf-show-mobile  { display: block; }
@media (min-width: 860px) {
    .rf-hide-mobile { display: block; }
    .rf-show-mobile { display: none; }
}
.rf-text-center { text-align: center; }
.rf-mt-0 { margin-top: 0; }
.rf-mb-0 { margin-bottom: 0; }

/* =============================================================
 * 16.5 LAYOUT DOWNLOADS HOME (replica adventistas .pa-*)
 * ============================================================= */

/* Hero colorido por depto (bloco laranja sólido) */
.rf-pa-header {
    background: var(--rf-color-default, var(--rf-color-primary));
    color: #fff;
    padding-block: var(--rf-sp-12);
}
.rf-pa-header__badge {
    display: inline-block;
    padding: .35em 1em;
    background: rgba(255,255,255,.18);
    border-radius: var(--rf-radius-md);
    font-family: var(--rf-font-display);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: var(--rf-sp-4);
}
.rf-pa-header__title {
    font-family: var(--rf-font-display);
.rf-pa-header__title {
    font-family: var(--rf-font-display);
    font-weight: 900;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.05;
    margin: 0;
    letter-spacing: -0.02em;
    color: #fff;
}
.rf-pa-header__subtitle {
    margin: var(--rf-sp-3) 0 0;
    font-size: 1.1rem;
    opacity: .92;
}

/* DOWNLOADS HOME (Destaque + Populares + Carrosseis) */
.rf-downloads-home { padding-block: var(--rf-sp-10); background: #fff; }
.rf-row {
    display: grid;
    gap: var(--rf-sp-8);
    grid-template-columns: 1fr;
    margin-bottom: var(--rf-sp-12);
}
@media (min-width: 992px) {
    .rf-row--8-4 { grid-template-columns: 8fr 4fr; }
}
.rf-col-8, .rf-col-4 { min-width: 0; }

.rf-widget__title {
    font-family: var(--rf-font-display);
    font-weight: 800;
    font-size: 1.4rem;
    color: var(--rf-color-default, var(--rf-color-primary));
    margin: 0 0 var(--rf-sp-4);
    padding-left: var(--rf-sp-3);
    border-left: 4px solid var(--rf-color-default, var(--rf-color-primary));
    line-height: 1;
}

/* FEATURE card grande (Destaque) */
.rf-feature {
    border-radius: var(--rf-radius-lg);
    overflow: hidden;
    box-shadow: var(--rf-shadow-md);
    transition: transform .2s ease, box-shadow .2s ease;
}
.rf-feature:hover { transform: translateY(-3px); box-shadow: var(--rf-shadow-lg); }
.rf-feature__link { text-decoration: none; color: inherit; display: block; }
.rf-feature__media {
    aspect-ratio: 16 / 9;
    background: var(--rf-color-bg-alt) center/cover no-repeat;
    min-height: 280px;
}
.rf-feature__body {
    padding: var(--rf-sp-5) var(--rf-sp-6);
    background: #fff;
}
.rf-feature__title {
    font-family: var(--rf-font-display);
    font-weight: 800;
    font-size: clamp(1.2rem, 2vw, 1.7rem);
    margin: var(--rf-sp-3) 0 0;
    color: var(--rf-color-text);
    line-height: 1.25;
    letter-spacing: -0.01em;
}

/* POPULARES — lista vertical com thumb */
.rf-w-list__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--rf-sp-3);
}
.rf-w-list__item {
    background: #fff;
    border-radius: var(--rf-radius-md);
    transition: background .2s;
}
.rf-w-list__item:hover { background: var(--rf-color-bg); }
.rf-w-list__link {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: var(--rf-sp-3);
    text-decoration: none;
    color: inherit;
    padding: var(--rf-sp-2);
}
.rf-w-list__thumb {
    aspect-ratio: 56 / 31;
    background: var(--rf-color-bg-alt) center/cover no-repeat;
    border-radius: var(--rf-radius-sm);
}
.rf-w-list__body { display: flex; flex-direction: column; gap: var(--rf-sp-1); justify-content: center; }
.rf-w-list__title {
    font-family: var(--rf-font-display);
    font-weight: 700;
    font-size: .95rem;
    line-height: 1.3;
    margin: 0;
    color: var(--rf-color-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.rf-see-more {
    display: inline-block;
    margin-top: var(--rf-sp-4);
    color: var(--rf-color-default, var(--rf-color-primary));
    font-weight: 700;
    text-decoration: none;
    font-size: .9rem;
}
.rf-see-more:hover { color: var(--rf-color-default-dark, var(--rf-color-primary-dark)); }

/* TAGS pa-style (badges pastel) */
.rf-pa-tag {
    display: inline-block;
    padding: .3em .8em;
    background: var(--rf-color-default-aux, var(--rf-color-accent));
    color: var(--rf-color-default-dark, var(--rf-color-primary));
    font-family: var(--rf-font-display);
    font-weight: 700;
    font-size: .7rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    border-radius: var(--rf-radius-sm);
    line-height: 1.4;
}
.rf-pa-tag--sm { font-size: .62rem; padding: .2em .6em; }

/* CARROSSEL Glide.js */
.rf-section--carrossel { padding-block: var(--rf-sp-8); }
.rf-carousel { position: relative; }
.rf-carousel__head {
    display: flex;
    align-items: center;
    gap: var(--rf-sp-4);
    margin-bottom: var(--rf-sp-5);
}
.rf-carousel__title {
    flex: 1;
    font-family: var(--rf-font-display);
    font-weight: 800;
    font-size: 1.4rem;
    color: var(--rf-color-default, var(--rf-color-primary));
    margin: 0;
    padding-left: var(--rf-sp-3);
    border-left: 4px solid var(--rf-color-default, var(--rf-color-primary));
    line-height: 1;
}
.rf-carousel__nav { display: flex; gap: var(--rf-sp-2); }
.rf-carousel__btn {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--rf-color-default, var(--rf-color-primary));
    color: #fff;
    border: 0;
    font-size: 1.4rem;
    cursor: pointer;
    transition: transform .2s, background .2s;
    display: grid; place-items: center;
}
.rf-carousel__btn:hover { transform: scale(1.1); background: var(--rf-color-default-dark, var(--rf-color-primary-dark)); }

.rf-carousel__slides { list-style: none; margin: 0; padding: 0; }
.rf-carousel__item {
    background: #fff;
    border-radius: var(--rf-radius-lg);
    overflow: hidden;
    box-shadow: var(--rf-shadow-sm);
    transition: transform .2s, box-shadow .2s;
    height: 100%;
}
.rf-carousel__item:hover { transform: translateY(-4px); box-shadow: var(--rf-shadow-md); }
.rf-carousel__link { text-decoration: none; color: inherit; display: flex; flex-direction: column; height: 100%; }
.rf-carousel__media { aspect-ratio: 16 / 9; background: var(--rf-color-bg-alt) center/cover no-repeat; }
.rf-carousel__body { padding: var(--rf-sp-4); display: grid; gap: var(--rf-sp-2); }
.rf-carousel__item-title {
    font-family: var(--rf-font-display);
    font-weight: 700;
    font-size: .95rem;
    line-height: 1.3;
    margin: 0;
    color: var(--rf-color-text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* PRINT */
@media print {
    .rf-hero, .rf-filtros, .rf-btn, .rf-card__footer, .rf-breadcrumbs { display: none !important; }
    .rf-single__title { color: #000 !important; }
    body { background: #fff !important; }
}

/* REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        transition: none !important;
        animation: none !important;
    }
    .rf-card:hover, .rf-depto-card:hover, .rf-btn:hover, .rf-feature:hover, .rf-carousel__item:hover { transform: none; }
}
