/*
 * ═══════════════════════════════════════════════════════════════
 *  Reti Solidali — style.css
 *  Bootstrap 5 + Font Awesome 6 + WordPress base
 * ═══════════════════════════════════════════════════════════════
 */

/* ─────────────────────────────────────────────
   0. VARIABILI CSS
───────────────────────────────────────────── */
:root {

    /* =====================================================
       COLORI BRAND
    ===================================================== */
    --rs-navy:          #21305a;
    --rs-navy-dark:     #12203f;
    --rs-navy-light:    #2a4580;

    --rs-orange:        #f56a08;
    --rs-orange-dark:   #c4530a;
    --rs-orange-light:  #f07a2a;

    --rs-cream:         #f5f3ed;
    --rs-cream-dark:    #ede9e0;

    --rs-white:         #fcfbf6;
    --rs-pure-white:    #ffffff;

    --rs-text:          #000000;
    --rs-text-muted:    #6b7280;

    --rs-border:        #e2ddd5;

    /* =====================================================
       FONT
    ===================================================== */
    --rs-font-body:      'Literata', serif;
    --rs-font-display:   'Bitter', serif;

    /* =====================================================
       DIMENSIONI LAYOUT
    ===================================================== */
    --rs-header-h:       4.25rem;    /* 68px */
    --rs-drawer-w:       20rem;      /* 320px */
    --rs-drawer-w-lg:    23.75rem;   /* 380px */

    /* =====================================================
       SPAZIATURE
    ===================================================== */
    --rs-space-2xs:      .25rem;
    --rs-space-xs:       .5rem;
    --rs-space-sm:       .75rem;
    --rs-space:          1rem;
    --rs-space-md:       1.5rem;
    --rs-space-lg:       2rem;
    --rs-space-xl:       3rem;
    --rs-space-2xl:      4rem;

    /* =====================================================
       BORDER RADIUS
    ===================================================== */
    --rs-radius-sm:      .25rem;     /* 4px */
    --rs-radius:         .5rem;      /* 8px */
    --rs-radius-lg:      .75rem;     /* 12px */
    --rs-radius-xl:      1.25rem;    /* 20px */
    --rs-radius-full:    999rem;

    /* =====================================================
       OMBRE
    ===================================================== */
    --rs-shadow-sm:      0 .0625rem .1875rem rgba(26,46,90,.08);

    --rs-shadow:         0 .25rem 1rem rgba(26,46,90,.12);

    --rs-shadow-lg:      0 .5rem 2rem rgba(26,46,90,.18);

    /* =====================================================
       TRANSIZIONI
    ===================================================== */
    --rs-transition:     .28s cubic-bezier(.4,0,.2,1);

    /* =====================================================
       Z-INDEX
    ===================================================== */
    --rs-overlay-z:      1040;
    --rs-header-z:       1030;
    --rs-drawer-z:       1050;
}


/* ─────────────────────────────────────────────
   1. RESET & BASE WORDPRESS
───────────────────────────────────────────── */

/* Override Bootstrap per usare i nostri font */
*,
*::before,
*::after { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--rs-font-body);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.65;
    color: var(--rs-text);
    background-color: var(--rs-white);
    /* Spazio per l'header fisso */
    padding-top: var(--rs-header-h);
}

/* Headings */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--rs-font-display);
    font-weight: 800;
    color: var(--rs-navy);
    line-height: 1.2;
}

h1, .h1 { font-size: clamp(1.8rem, 4vw, 2.5rem); }
h2, .h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
h3, .h3 { font-size: clamp(1.2rem, 2.5vw, 1.5rem); }
h4, .h4 { font-size: 1.15rem; }
h5, .h5 { font-size: 1rem; }
h6, .h6 { font-size: .9rem; }

/* Link */
a {
    color: var(--rs-orange);
    text-decoration: none;
    transition: color var(--rs-transition);
}
a:hover, a:focus {
    color: var(--rs-orange-dark);
    text-decoration: underline;
}

/* Immagini responsive (WordPress default) */
img, svg, video {
    max-width: 100%;
    height: auto;
    display: block;
}

/* WordPress: immagine allineata */
.alignleft  { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignnone  { float: none; }

/* Clearfix per WordPress galleries */
.wp-block-gallery::after,
.gallery::after {
    content: '';
    display: table;
    clear: both;
}

/* WordPress: captions */
.wp-caption { max-width: 100%; }
.wp-caption-text,
.wp-element-caption {
    font-size: .85rem;
    color: var(--rs-text-muted);
    text-align: center;
    margin-top: .4rem;
}

/* WordPress: screen reader text */
.screen-reader-text {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}
.screen-reader-text:focus {
    background: var(--rs-white);
    clip: auto; height: auto; width: auto;
    padding: 1rem 1.5rem;
    z-index: 9999;
    top: 1rem; left: 1rem;
    font-size: 1rem;
    font-weight: 700;
    box-shadow: var(--rs-shadow-lg);
    border-radius: var(--rs-radius);
}

/* Paginazione WordPress */
.wp-pagenavi,
.nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    justify-content: center;
    padding: 2rem 0;
}

/* Blocco citazione */
blockquote,
.wp-block-quote {
    border-left: 4px solid var(--rs-orange);
    padding: 1rem 1.5rem;
    margin: 1.5rem 0;
    background: var(--rs-cream);
    border-radius: 0 var(--rs-radius) var(--rs-radius) 0;
    font-style: italic;
    color: var(--rs-navy);
}
blockquote cite,
.wp-block-quote cite {
    font-size: .85rem;
    font-style: normal;
    color: var(--rs-text-muted);
}

/* Tabelle */
table { width: 100%; border-collapse: collapse; }
th, td {
    padding: .6rem 1rem;
    border-bottom: 1px solid var(--rs-border);
    text-align: left;
}
th {
    font-weight: 700;
    color: var(--rs-navy);
    background: var(--rs-cream);
}

/* Codice */
code, kbd, pre, samp {
    font-family: 'Courier New', Courier, monospace;
    font-size: .9em;
}
code {
    background: var(--rs-cream);
    padding: .15em .4em;
    border-radius: var(--rs-radius-sm);
    color: var(--rs-navy);
}
pre {
    background: var(--rs-navy);
    color: #e8e8e8;
    padding: 1.25rem 1.5rem;
    border-radius: var(--rs-radius);
    overflow-x: auto;
}
pre code { background: none; color: inherit; padding: 0; }

/* Forms WordPress / WooCommerce base */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea,
select {
    font-family: var(--rs-font-body);
    font-size: 1rem;
    border: 1px solid var(--rs-border);
    border-radius: var(--rs-radius);
    padding: .55rem .85rem;
    width: 100%;
    background: var(--rs-white);
    color: var(--rs-text);
    transition: border-color var(--rs-transition), box-shadow var(--rs-transition);
}
input:focus,
textarea:focus,
select:focus {
    border-color: var(--rs-orange);
    box-shadow: 0 0 0 3px rgba(232,101,10,.15);
    outline: none;
}

/* Bottoni base */
.btn-rs-primary,
button.wp-block-button__link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--rs-orange);
    color: var(--rs-white) !important;
    font-family: var(--rs-font-display);
    font-weight: 700;
    font-size: .95rem;
    padding: .65rem 1.4rem;
    border-radius: var(--rs-radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: background var(--rs-transition), transform .15s;
    text-decoration: none;
}
.btn-rs-primary:hover {
    background: var(--rs-orange-dark);
    transform: translateY(-1px);
    text-decoration: none;
}
.btn-rs-outline {
    background: transparent;
    color: var(--rs-navy) !important;
    border-color: var(--rs-navy);
}
.btn-rs-outline:hover {
    background: var(--rs-navy);
    color: var(--rs-white) !important;
}


/* ─────────────────────────────────────────────
   2. HEADER
───────────────────────────────────────────── */
.reti-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: var(--rs-header-z);
    background: var(--rs-pure-white);
    box-shadow: var(--rs-shadow-sm);
}

.reti-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--rs-header-h);
    padding-left: 1rem;
    padding-right: 1rem;
}

/* Le 3 colonne dell'header */
.reti-header__left,
.reti-header__right {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.reti-header__center {
    flex: 1;
    display: flex;
    justify-content: center;
}

/* Barra arancio in fondo all'header */
.reti-header__bar {
    height: 2px;
    background: var(--rs-orange);
}


/* ─────────────────────────────────────────────
   3. LOGO
───────────────────────────────────────────── */
.reti-logo,
.reti-drawer__logo {
    display: flex;
    align-items: center;
}

/* Custom logo WordPress */
.reti-logo .custom-logo-link,
.reti-drawer__logo .custom-logo-link {
    display: flex;
    align-items: center;
}
.reti-logo .custom-logo,
.reti-drawer__logo .custom-logo {
    height: 55px;
    width: auto;
    max-width: 250px;
}

/* Fallback testuale (se non c'è logo caricato) */
.reti-logo__link,
.reti-drawer__logo .reti-logo__link {
    font-family: var(--rs-font-display);
    font-size: 1.6rem;
    font-weight: 800;
    text-decoration: none;
    line-height: 1;
    display: flex;
}
.reti-logo__reti    { color: var(--rs-navy); }
.reti-logo__solidali { color: var(--rs-orange); }


/* ─────────────────────────────────────────────
   4. HAMBURGER
───────────────────────────────────────────── */
.reti-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 8px;
    background: none;
    border: none;
    cursor: pointer;
    border-radius: var(--rs-radius-sm);
    transition: background var(--rs-transition);
}
.reti-hamburger:hover {
    background: var(--rs-cream);
}
.reti-hamburger:focus-visible {
    outline: 2px solid var(--rs-orange);
    outline-offset: 2px;
}

.reti-hamburger__bar {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--rs-navy);
    border-radius: 2px;
    transition:
        transform var(--rs-transition),
        opacity   var(--rs-transition),
        width     var(--rs-transition);
    transform-origin: center;
}

/* Stato aperto: animazione → X */
.reti-hamburger.is-active .reti-hamburger__bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.reti-hamburger.is-active .reti-hamburger__bar:nth-child(2) {
    opacity: 0;
    width: 0;
}
.reti-hamburger.is-active .reti-hamburger__bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}


/* ─────────────────────────────────────────────
   5. ICONE SOCIAL HEADER
───────────────────────────────────────────── */
.reti-social-icons__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: var(--rs-navy);
    color: var(--rs-white) !important;
    font-size: .8rem;
    text-decoration: none;
    transition: background var(--rs-transition), transform .15s;
}
.reti-social-icons__link:hover {
    background: var(--rs-orange);
    transform: translateY(-2px);
    text-decoration: none;
}

/* Social nel drawer: leggermente più grandi */
.reti-drawer__foot .reti-social-icons__link {
    width: 38px;
    height: 38px;
    font-size: .9rem;
}


/* ─────────────────────────────────────────────
   6. OVERLAY
───────────────────────────────────────────── */
.reti-overlay {
    position: fixed;
    inset: 0;
    z-index: var(--rs-overlay-z);
    background: rgba(26,46,90,.5);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition:
        opacity     var(--rs-transition),
        visibility  var(--rs-transition);
    cursor: pointer;
}
.reti-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}


/* ─────────────────────────────────────────────
   7. DRAWER (sidebar menu)
───────────────────────────────────────────── */
.reti-drawer {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: var(--rs-drawer-z);
    width: var(--rs-drawer-w);
    max-width: 90vw;
    background: var(--rs-white);
    display: flex;
    flex-direction: column;
    transform: translateX(-100%);
    transition: transform var(--rs-transition);
    overflow: hidden;
    box-shadow: var(--rs-shadow-lg);
}

.reti-drawer.is-open {
    transform: translateX(0);
}

/* Head del drawer */
.reti-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 3px solid var(--rs-orange);
    flex-shrink: 0;
    min-height: var(--rs-header-h);
}

.reti-drawer__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--rs-navy);
    font-size: 1.1rem;
    border-radius: var(--rs-radius-sm);
    transition: background var(--rs-transition), color var(--rs-transition);
}
.reti-drawer__close:hover {
    background: var(--rs-cream);
    color: var(--rs-orange);
}

/* Body del drawer: scrollabile */
.reti-drawer__body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 1rem 0;
    /* Scrollbar sottile */
    scrollbar-width: thin;
    scrollbar-color: var(--rs-border) transparent;
}
.reti-drawer__body::-webkit-scrollbar { width: 4px; }
.reti-drawer__body::-webkit-scrollbar-thumb {
    background: var(--rs-border);
    border-radius: 4px;
}

/* Foot del drawer */
.reti-drawer__foot {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--rs-border);
    flex-shrink: 0;
}


/* ─────────────────────────────────────────────
   8. MENU — BASE (comune a mobile e desktop)
───────────────────────────────────────────── */

/* Lista radice */
.reti-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Ogni voce */
.reti-menu__item {
    position: relative;
    border-bottom: 1px solid var(--rs-cream-dark);
}
.reti-menu__item:last-child { border-bottom: none; }

/* Icona freccia nel link */
.reti-menu__arrow {
    display: inline-flex;
    align-items: center;
    font-size: .65rem;
    color: var(--rs-text-muted);
    transition: transform var(--rs-transition), color var(--rs-transition);
    flex-shrink: 0;
    pointer-events: none;
}

/* Icona personalizzata voce */
.reti-menu__icon {
    width: 1.2em;
    text-align: center;
    color: var(--rs-orange);
    flex-shrink: 0;
}

/* ──────────────────────────────────────────────────────────────
   8a. MOBILE  (< 992px) — accordion classico
────────────────────────────────────────────────────────────── */

/* Link di primo livello */
.reti-menu__link--top {
    display: flex;
    align-items: center;
    padding: .8rem 1.25rem;
    font-family: var(--rs-font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--rs-navy) !important;
    text-decoration: none;
    transition: background var(--rs-transition), color var(--rs-transition);
    /* Lascia spazio al bottone toggle che è assoluto */
    padding-right: 3rem;
}
.reti-menu__link--top:hover,
.reti-menu__item--active > .reti-menu__link--top {
    background: var(--rs-cream);
    color: var(--rs-orange) !important;
    text-decoration: none;
}

/* Freccia nel link: nascosta su mobile (usiamo il bottone toggle) */
.reti-menu__link--top .reti-menu__arrow { display: none; }

/* ── Bottone toggle accordion (solo mobile) ────────────────── */
.reti-menu__toggle {
    position: absolute;
    top: 0;
    right: 0;
    width: 3rem;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    border-left: 1px solid var(--rs-border);
    color: var(--rs-navy);
    font-size: .75rem;
    cursor: pointer;
    transition:
        background     var(--rs-transition),
        color          var(--rs-transition);
    z-index: 1;
}
.reti-menu__toggle:hover { background: var(--rs-cream); color: var(--rs-orange); }
.reti-menu__toggle i {
    transition: transform var(--rs-transition);
}

/* Ruota icona toggle quando aperto */
.reti-menu__item--has-children.is-open > .reti-menu__toggle i {
    transform: rotate(180deg);
    color: var(--rs-orange);
}

/* ── Panel accordion: collassato di default ────────────────── */
.reti-megamenu__panel {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.38s cubic-bezier(0.4, 0, 0.2, 1);
    /* Desktop sovrascrive questo blocco */
}
.reti-menu__item--has-children.is-open > .reti-megamenu__panel {
    max-height: 3000px;
}

/* ── Sottomenu — mobile ─────────────────────────────────────── */
.reti-submenu {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--rs-cream);
}

.reti-menu__link--sub {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .6rem 1.25rem .6rem 2rem;
    font-size: .88rem;
    font-weight: 600;
    color: var(--rs-navy) !important;
    text-decoration: none;
    transition: background var(--rs-transition), color var(--rs-transition);
    gap: .5rem;
}
.reti-menu__link--sub:hover {
    background: var(--rs-cream-dark);
    color: var(--rs-orange) !important;
    text-decoration: none;
}

/* Terzo livello: più indentato */
.reti-submenu--nested .reti-menu__link--sub {
    padding-left: 3rem;
    font-size: .82rem;
    color: var(--rs-text-muted) !important;
}
.reti-submenu--nested .reti-menu__link--sub:hover {
    color: var(--rs-orange) !important;
}


/* ──────────────────────────────────────────────────────────────
   9. DESKTOP (≥ 992px) — mega menu flyout laterale
   Il pannello appare a destra del drawer su hover/focus dell'<li>
────────────────────────────────────────────────────────────── */
@media (min-width: 992px) {

    /* Drawer leggermente più largo su desktop */
    .reti-drawer { width: var(--rs-drawer-w-lg); }

    /* Il drawer deve essere overflow visible per far uscire il panel */
    .reti-drawer { overflow: visible; }
    .reti-drawer__body { overflow: visible; }

    /* ── Bottone toggle: nascosto su desktop ─────────────── */
    .reti-menu__toggle { display: none; }

    /* ── Freccia nel link: visibile su desktop ───────────── */
    .reti-menu__link--top {
        padding-right: 1.25rem; /* reset, non serve più spazio per toggle */
    }
    .reti-menu__link--top .reti-menu__arrow { display: inline-flex; }

    /* Ruota freccia quando <li> aperto */
    .reti-menu__item--has-children.is-open > .reti-menu__link--top .reti-menu__arrow {
        transform: rotate(-90deg); /* punta a destra → indica flyout */
        color: var(--rs-orange);
    }

    /* ── Panel: resetta l'accordion, diventa flyout ──────── */
    .reti-megamenu__panel {
        /* Annulla max-height accordion */
        max-height: none !important;
        overflow: visible;
        transition: none;

        /* Posizionamento flyout */
        position: absolute;
        top: 0;
        left: 100%; /* subito a destra del drawer */
        min-height: 100%;
        width: 340px;
        background: var(--rs-white);
        border-left: 3px solid var(--rs-orange);
        border-top: none;
        box-shadow: 4px 0 24px rgba(26,46,90,.15);
        padding: 1.5rem 0;
        z-index: 10;

        /* Stato di partenza: invisibile */
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(-8px);
        transition:
            opacity    var(--rs-transition),
            visibility var(--rs-transition),
            transform  var(--rs-transition);
    }

    /* Stato aperto */
    .reti-menu__item--has-children.is-open > .reti-megamenu__panel {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }

    /* ── Inner: layout a colonne nel panel ───────────────── */
    .reti-megamenu__inner {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0;
        height: 100%;
    }

    .reti-megamenu__col {
        flex: 1 1 100%;
        padding: 0;
    }

    /* ── Sottomenu dentro il panel desktop ───────────────── */
    .reti-megamenu__panel .reti-submenu {
        background: transparent;
        padding: 0;
    }

    .reti-megamenu__panel .reti-menu__item {
        border-bottom: 1px solid var(--rs-cream-dark);
    }
    .reti-megamenu__panel .reti-menu__item:last-child {
        border-bottom: none;
    }

    .reti-megamenu__panel .reti-menu__link--sub {
        padding: .65rem 1.5rem;
        font-size: .9rem;
        font-weight: 600;
        color: var(--rs-navy) !important;
        background: transparent;
    }
    .reti-megamenu__panel .reti-menu__link--sub:hover {
        background: var(--rs-cream);
        color: var(--rs-orange) !important;
        padding-left: 1.9rem; /* micro-shift su hover */
    }

    /* Terzo livello nel panel */
    .reti-megamenu__panel .reti-submenu--nested .reti-menu__link--sub {
        padding-left: 2.5rem;
        font-size: .82rem;
        color: var(--rs-text-muted) !important;
    }
    .reti-megamenu__panel .reti-submenu--nested .reti-menu__link--sub:hover {
        padding-left: 2.9rem;
        color: var(--rs-orange) !important;
    }

    /* ── Highlight voce aperta nel drawer ────────────────── */
    .reti-menu__item--has-children.is-open > .reti-menu__link--top {
        background: var(--rs-cream);
        color: var(--rs-orange) !important;
    }

    /* ── Voce attiva (current page) ──────────────────────── */
    .reti-menu__item--active > .reti-menu__link--top {
        color: var(--rs-orange) !important;
        border-left: 3px solid var(--rs-orange);
    }
}


/* ─────────────────────────────────────────────
   10. WRAPPER PRINCIPALE & STRUTTURA PAGINA
───────────────────────────────────────────── */
.reti-site-wrapper { overflow-x: hidden; }

.reti-main {
    min-height: 60vh;
}

/* Container ristretti comuni */
.reti-container {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

/* Sezione generica con padding */
.reti-section {
    padding: 3rem 0;
}
@media (min-width: 768px) {
    .reti-section { padding: 5rem 0; }
}


/* ─────────────────────────────────────────────
   11. CARD ARTICOLI (stile dalle screenshot)
───────────────────────────────────────────── */
.reti-card {
    background: var(--rs-white);
    border-radius: var(--rs-radius-lg);
    overflow: hidden;
    transition: box-shadow var(--rs-transition), transform .2s;
    border: 1px solid var(--rs-border);
}
.reti-card:hover {
    box-shadow: var(--rs-shadow);
    transform: translateY(-2px);
}

.reti-card__img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.reti-card__body { padding: 1.25rem; }

.reti-card__category {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--rs-orange);
    display: block;
    margin-bottom: .4rem;
}
.reti-card__title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--rs-navy);
    margin: 0 0 .4rem;
    line-height: 1.3;
}
.reti-card__date {
    font-size: .8rem;
    color: var(--rs-text-muted);
}
.reti-card__excerpt {
    font-size: .9rem;
    color: var(--rs-text);
    margin-top: .5rem;
}

/* Link "Leggi di più" stile freccia */
.reti-readmore {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 700;
    font-size: .9rem;
    color: var(--rs-navy);
    text-decoration: none;
    transition: gap var(--rs-transition), color var(--rs-transition);
}
.reti-readmore:hover {
    color: var(--rs-orange);
    gap: .7rem;
    text-decoration: none;
}
.reti-readmore i { color: var(--rs-orange); }


/* ─────────────────────────────────────────────
   12. HERO / FEATURED (sezione "In evidenza")
───────────────────────────────────────────── */
.reti-hero {
    background: var(--rs-cream);
    border-radius: var(--rs-radius-lg);
    overflow: hidden;
    margin-bottom: 2.5rem;
}
.reti-hero__img { width: 100%; height: 260px; object-fit: cover; }
@media (min-width: 768px) {
    .reti-hero__img { height: 380px; }
}

.reti-hero__body {
    padding: 1.5rem;
}

.reti-hero__label {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--rs-orange);
    display: block;
    margin-bottom: .6rem;
}
.reti-hero__title {
    font-size: clamp(1.4rem, 4vw, 2rem);
    font-weight: 800;
    color: var(--rs-navy);
    margin-bottom: .75rem;
    line-height: 1.2;
}
.reti-hero__excerpt {
    color: var(--rs-text);
    font-size: 1rem;
    margin-bottom: 1rem;
}


/* ─────────────────────────────────────────────
   13. NAVBAR CATEGORIE (tab: In evidenza / News…)
───────────────────────────────────────────── */
.reti-cat-nav {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    border-bottom: 2px solid var(--rs-border);
    margin-bottom: 1.5rem;
}
.reti-cat-nav::-webkit-scrollbar { display: none; }

.reti-cat-nav__link {
    display: block;
    padding: .65rem 1.1rem;
    font-size: .9rem;
    font-weight: 700;
    color: var(--rs-text-muted);
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: color var(--rs-transition), border-color var(--rs-transition);
}
.reti-cat-nav__link:hover {
    color: var(--rs-navy);
    text-decoration: none;
}
.reti-cat-nav__link.is-active {
    color: var(--rs-orange);
    border-bottom-color: var(--rs-orange);
}


/* ─────────────────────────────────────────────
   14. NEWSLETTER STRIP
───────────────────────────────────────────── */
.reti-newsletter-strip {
    background: var(--rs-cream);
    border-radius: var(--rs-radius-lg);
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-top: 2rem;
}
.reti-newsletter-strip__icon {
    width: 48px;
    height: 48px;
    background: var(--rs-cream-dark);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--rs-navy);
    flex-shrink: 0;
}
.reti-newsletter-strip__body { flex: 1; }
.reti-newsletter-strip__title {
    font-weight: 800;
    font-size: .95rem;
    color: var(--rs-navy);
    margin: 0 0 .15rem;
}
.reti-newsletter-strip__sub {
    font-size: .85rem;
    color: var(--rs-text-muted);
    margin: 0;
}
.reti-newsletter-strip__arrow {
    color: var(--rs-orange);
    font-size: 1.1rem;
}


/* ─────────────────────────────────────────────
   15. UTILITY CLASSI EXTRA
───────────────────────────────────────────── */
.text-orange  { color: var(--rs-orange)  !important; }
.text-navy    { color: var(--rs-navy)    !important; }
.bg-cream     { background: var(--rs-cream) !important; }
.bg-navy      { background: var(--rs-navy) !important; color: var(--rs-white); }
.bg-orange    { background: var(--rs-orange) !important; color: var(--rs-white); }

/* Divisore arancio */
.reti-divider {
    border: none;
    height: 3px;
    background: var(--rs-orange);
    border-radius: 3px;
    margin: 2rem 0;
}


/* ─────────────────────────────────────────────
   16. FOOTER
───────────────────────────────────────────── */
.reti-footer {
    background: var(--rs-navy);
    color: rgba(255,255,255,.85);
    padding: 3rem 0 1.5rem;
    font-size: 1rem;
    line-height: 1.2rem;
}
.reti-footer figure{margin: 0rem !important}
.reti-footer h2{font-size: 1rem !important;}
.reti-footer a {
    color: rgba(255,255,255,.7);
    text-decoration: none;
    transition: color var(--rs-transition);
}
.reti-footer a:hover { color: var(--rs-orange); text-decoration: none; }

.reti-footer__widget-title {
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--rs-orange);
    margin-bottom: 1rem;
}
.reti-footer__bottom {
    border-top: 1px solid rgba(255,255,255,.1);
    margin-top: 2rem;
    padding-top: 1.25rem;
    font-size: .8rem;
    color: rgba(255,255,255,.5);
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: space-between;
    align-items: center;
}
.wp-block-heading{color: var(--rs-white);}

/* ─────────────────────────────────────────────
   17. ACCESSIBILITÀ: FOCUS VISIBILE
───────────────────────────────────────────── */
:focus-visible {
    outline: 2px solid var(--rs-orange);
    outline-offset: 3px;
    border-radius: var(--rs-radius-sm);
}

/* Rimuovi outline per mouse, tieni per tastiera */
:focus:not(:focus-visible) { outline: none; }


/* ─────────────────────────────────────────────
   18. ANIMAZIONI
───────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }
}


.rs-home {
    background: var(--rs-white);
    padding-bottom: 4rem;
}

.rs-home a {
    text-decoration: none;
}

.rs-category-nav {
    display: flex;
    justify-content: center;
    gap: clamp(2rem, 6vw, 5rem);
    border-bottom: 1px solid var(--rs-border);
    margin-bottom: 2rem;
    overflow-x: auto;
}

.rs-category-nav a {
    padding: 1.3rem 0 .9rem;
    font-family: var(--rs-font-display);
    font-weight: 800;
    color: var(--rs-navy);
    border-bottom: 3px solid transparent;
    white-space: nowrap;
}

.rs-category-nav a.active,
.rs-category-nav a:hover {
    color: var(--rs-orange);
    border-bottom-color: var(--rs-orange);
}

.rs-featured-card {
    background: var(--rs-cream);
    border-radius: 10px;
    overflow: hidden;
}

.rs-featured-image img {
    width: 100%;
    object-fit: cover;
}

.rs-featured-content {
    padding: 2rem 1rem 2rem 0rem;
    background-color: #fcfbf6;
}

.rs-kicker {
    display: block;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--rs-orange);
}

.rs-kicker-featured
{margin-bottom: .8rem;}

.rs-featured-content h1 {
    max-width: 780px;
    margin-bottom: 0.5rem;
    font-size: clamp(1.4rem, 2.5vw, 1.8rem);
    line-height: 1.08;
}

.rs-featured-content h1 a,
.rs-side-post h2 a,
.rs-latest-card h3 a {
    color: var(--rs-navy);
}

.rs-featured-content p {
    max-width: 760px;
    margin: 0;
    font-size: 1.2rem;
    line-height: 1.55;
}

.rs-side-post {
    padding-bottom: 1.8rem;
    margin-bottom: 1.8rem;
    border-bottom: 1px solid var(--rs-orange);
}

.rs-side-post:last-child {
    margin-bottom: 0;
}

.rs-side-post h2 {
    font-size: 1.2rem;
    line-height: 1.18;
    margin-bottom: .7rem;
}

.rs-side-post p {
    margin: 0;
    color: var(--rs-text);
    line-height: 1.5;
}

.rs-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 2.5rem 0 1rem;
}

.rs-section-head h2 {
    margin: 0;
    font-size: 1.5rem;
}

.rs-section-head a {
    color: var(--rs-orange);
    font-weight: 700;
}

.rs-section-head i {
    margin-left: .4rem;
}

.rs-latest-card {
    height: 100%;
    border-top: 1px solid var(--rs-border);
    padding-top: 1rem;
}

.rs-latest-image {
    display: block;
    margin-bottom: 1.1rem;
    border-radius: 8px;
    overflow: hidden;
}

.rs-latest-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.rs-latest-content h3 {
    font-size: 1.25rem;
    line-height: 1.18;
    margin-bottom: .6rem;
}

.rs-latest-content p {
    margin-bottom: .8rem;
    line-height: 1.5;
}

.rs-latest-content time {
    color: var(--rs-text-muted);
    font-size: .95rem;
}


/* MOBILE */
@media (max-width: 991px) {

    .rs-category-nav {
        justify-content: flex-start;
        gap: 2rem;
        padding-left: .2rem;
    }

    .rs-featured-section {
        margin-top: 1rem;
    }

    .rs-featured-image img {
        height: auto;
        aspect-ratio: 16 / 9;
    }

    .rs-featured-content {
        padding: 1.8rem 1.5rem 2.2rem;
    }

    .rs-featured-content h1 {
        font-size: 1.6rem;
    }

    .rs-featured-content p {
        font-size: 1.05rem;
    }

    .rs-section-head {
        margin-top: 2.2rem;
    }

    .rs-latest-card {
        display: grid;
        grid-template-columns: 43% 1fr;
        gap: 1.2rem;
        padding: 1.2rem 0;
        border-top: none;
        border-bottom: 1px solid var(--rs-border);
    }

    .rs-latest-image {
        margin: 0;
    }

    .rs-latest-image img {
        aspect-ratio: 4 / 3;
    }

    .rs-latest-content h3 {
        font-size: 1.15rem;
    }

}

@media (max-width: 575px) {

    .rs-latest-card {
        grid-template-columns: 42% 1fr;
        gap: 1rem;
    }

    .rs-section-head h2 {
        font-size: 1.55rem;
    }

    .rs-section-head a {
        font-size: .95rem;
    }
}

/* Mega menu header */
.reti-mega-menu {
    position: fixed;
    inset: 0;
    z-index: var(--rs-drawer-z);
    background: var(--rs-white);
    color: var(--rs-navy);
    padding: 2rem 0 4rem;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: opacity var(--rs-transition), visibility var(--rs-transition), transform var(--rs-transition);
}

.reti-mega-menu.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.reti-mega-menu__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 2rem;
    border-bottom: 3px solid var(--rs-orange);
}

.reti-mega-menu__logo .custom-logo {
    height: 54px;
    width: auto;
}

/* Search mega menu */
.reti-mega-menu__search {
    margin: 2rem 0 3rem;
}

.reti-mega-menu__search form {
    position: relative;
    margin: 0;
}

.reti-mega-menu__search label {
    display: block;
    width: 100%;
    margin: 0;
}

.reti-mega-menu__search .search-field,
.reti-mega-menu__search input[type="search"] {
    width: 100%;
    height: 64px;
    border: 1px solid var(--rs-border);
    border-radius: 10px;
    background: var(--rs-cream);
    padding: 0 1.5rem;
    font-size: 1.15rem;
    color: var(--rs-navy);
    box-shadow: none;
}

.reti-mega-menu__search .search-field:focus,
.reti-mega-menu__search input[type="search"]:focus {
    border-color: var(--rs-orange);
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 4px rgba(232,101,10,.08);
}

.reti-mega-menu__search .search-submit {
    display: none;
}

/* Lista menu desktop: ordine verticale su 4 colonne */
.reti-mega-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;

    column-count: 4;
    column-gap: 3rem;
}

.reti-mega-menu__list > li {
    display: block;
    break-inside: avoid;
    margin-bottom: 2rem;
}

.reti-mega-menu__list > li > a {
    display: block;
    color: var(--rs-navy);
    font-family: var(--rs-font-display);
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.15;
    padding-bottom: .7rem;
    margin-bottom: .4rem;
    border-bottom: 1px solid var(--rs-navy);
}

.reti-mega-menu__list .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.reti-mega-menu__list .sub-menu li {
    border-bottom: 1px solid var(--rs-border);
}

.reti-mega-menu__list .sub-menu li:last-child {
    border-bottom: none;
}

.reti-mega-menu__list .sub-menu a {
    display: block;
    padding: .65rem 0;
    color: var(--rs-text);
    font-size: 1rem;
    line-height: 1.35;
}

.reti-mega-menu__list a:hover {
    color: var(--rs-orange);
    text-decoration: none;
}

.reti-mega-menu__social {
    margin-top: 3rem;
    padding-top: 1.5rem;
}

/* Tablet e mobile: lista verticale pulita */
@media (max-width: 991px) {

    .reti-mega-menu {
        padding: 1.2rem 0 3rem;
    }

    .reti-mega-menu__top {
        padding-bottom: 1.3rem;
    }

    .reti-mega-menu__logo .custom-logo {
        height: 46px;
    }

    .reti-mega-menu__search {
        margin: 1.5rem 0 2rem;
    }

    .reti-mega-menu__search .search-field,
    .reti-mega-menu__search input[type="search"] {
        height: 54px;
        font-size: 1rem;
        padding: 0 1rem;
    }

    .reti-mega-menu__list {
        column-count: unset;
        column-gap: 0;
        display: block;
    }

    .reti-mega-menu__list > li {
        display: block;
        width: 100%;
        margin-bottom: 0;
        break-inside: auto;
    }

    .reti-mega-menu__list > li > a {
        display: block;
        width: 100%;
        padding: 1rem 0;
        margin: 0;
        font-size: 1.35rem;
        line-height: 1.25;
        border-bottom: 1px solid var(--rs-border);
    }

    .reti-mega-menu__list .sub-menu {
        padding-left: 1rem;
        margin-bottom: .5rem;
    }

    .reti-mega-menu__list .sub-menu a {
        font-size: 1rem;
        padding: .65rem 0;
    }

    .reti-mega-menu__social {
        margin-top: 2rem;
        padding-top: 1.2rem;
    }
}

@media (max-width: 575px) {

    .reti-mega-menu__list > li > a {
        font-size: 1.35rem;
    }
}


/*single*/
.rs-single {
    padding: 3rem 0 5rem;
    background-color: var(--rs-white);
}

.rs-single-article {
    color: var(--rs-text);
}

.rs-single-hero {
    position: relative;
    margin: 0 0 1rem;
    border-radius: var(--rs-radius-lg);
    overflow: hidden;
    background: var(--rs-cream);
}

.rs-single-hero__img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.rs-single-goal {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    width: 82px;
    height: auto;
    border-radius: 4px;
    box-shadow: var(--rs-shadow);
}

.rs-single-caption {
    margin-bottom: 2rem;
    color: var(--rs-text-muted);
    font-size: .9rem;
    line-height: 1.45;
}

.rs-single-header {
    margin-bottom: 2rem;
}

.rs-single-category {
    color: var(--rs-orange);
    font-size: .8rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.rs-single-category::after {
    content: ',';
}
.rs-single-category:last-child::after {
    content: '';
}
.rs-single-title {
    margin-bottom: 1rem;
    color: var(--rs-navy);
    font-size: clamp(1.2rem, 3vw, 2rem);
    line-height: 1.05;
    font-weight: 900;
}

.rs-single-subtitle {
    margin-bottom: 1.4rem;
    color: var(--rs-text);
    font-size: clamp(1.15rem, 1.4vw, 1.4rem);
    line-height: 1.5;
}

.rs-single-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rs-border);
    color: var(--rs-text-muted);
    font-size: .95rem;
}

.rs-single-meta a {
    color: var(--rs-navy);
    font-weight: 800;
}

.rs-single-reading-time i {
    margin-right: .25rem;
    color: var(--rs-orange);
}

.rs-single-audio {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 1rem;
    align-items: center;
    margin: 1.4rem 0;
    padding: 1.8rem 1.2rem;
    background: var(--rs-cream);
    border-radius: var(--rs-radius-lg);
}

.rs-single-audio span {
    font-size: .75rem;
    line-height: 1.2;
}

.rs-single-audio audio {
    width: 100%;
    height: 38px;
}

.rs-single-audio span {
    color: var(--rs-navy);
    font-weight: 900;
    text-transform: uppercase;
    font-size: .8rem;
    letter-spacing: .06em;
}

.rs-single-audio audio {
    width: 100%;
}

.rs-single-content {
    font-size: 1.1rem;
    line-height: 1.8;
}

.rs-single-content > * {
    margin-bottom: 1.4rem;
}

.rs-single-content h2,
.rs-single-content h3,
.rs-single-content h4 {
    margin-top: 2.4rem;
    margin-bottom: 1rem;
    color: var(--rs-navy);
}

.rs-single-content h2 {
    font-size: clamp(1.7rem, 3vw, 2.3rem);
}

.rs-single-content h3 {
    font-size: clamp(1.4rem, 2.5vw, 1rem);
}

.rs-single-content p {
    margin-bottom: 1.4rem;
}

.rs-single-content a {
    color: var(--rs-orange);
    font-weight: 700;
    text-underline-offset: 3px;
}

.rs-single-content blockquote {
    margin: 2rem 0;
}

.rs-single-content img {
    border-radius: var(--rs-radius);
}

.rs-single-footer {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--rs-border);
}

.rs-single-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.rs-single-tags a {
    display: inline-flex;
    padding: .35rem .75rem;
    border-radius: 999px;
    background: var(--rs-cream);
    color: var(--rs-navy);
    font-size: .85rem;
    font-weight: 700;
}

.rs-single-tags a:hover {
    background: var(--rs-orange);
    color: #fff;
    text-decoration: none;
}

@media (max-width: 767px) {
    .rs-single {
        padding-top: 2rem;
    }

    .rs-single-title {
        font-size: 2.2rem;
    }

    .rs-single-audio {
        grid-template-columns: 1fr;
    }

    .rs-single-content {
        font-size: 1.03rem;
        line-height: 1.75;
    }

    .rs-single-goal {
        width: 64px;
    }
}
.rs-single-categories {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .9rem;
}

.rs-single-category {
    display: inline-flex;
    color: var(--rs-orange);
    font-size: .8rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.rs-single-category:hover {
    color: var(--rs-orange-dark);
    text-decoration: none;
}

.rs-home-category {
    display: inline-flex;
    margin-bottom: .8rem;
    color: var(--rs-orange);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.rs-home-category:hover {
    color: var(--rs-orange-dark);
    text-decoration: none;
}

/*serach*/
.rs-search-page {
    padding: 3rem 0 5rem;
}

.rs-search-header {
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 3px solid var(--rs-orange);
}

.rs-search-header h1 {
    margin: 0;
    color: var(--rs-navy);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.1;
}

.rs-search-header h1 span {
    color: var(--rs-orange);
}

.rs-breadcrumb {
    margin-bottom: 1rem;
    color: var(--rs-text-muted);
    font-size: .9rem;
    text-align: center;
}

.rs-search-results {
    display: grid;
    gap: 0;
}

.rs-search-item {
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--rs-border);
}

.rs-search-title {
    margin: 0;
    font-size: clamp(1.25rem, 2vw, 1.6rem);
    line-height: 1.25;
}

.rs-search-title a {
    color: var(--rs-navy);
    text-decoration: none;
}

.rs-search-title a:hover {
    color: var(--rs-orange);
}

.rs-search-pagination {
    margin-top: 2.5rem;
}

.rs-search-empty {
    max-width: 720px;
}

.rs-search-empty p {
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}

/*menù secondario home*/
.rs-category-nav__list {
    display: flex;
    justify-content: center;
    gap: clamp(2rem, 6vw, 5rem);
    list-style: none;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid var(--rs-border);
    overflow-x: auto;
}

.rs-category-nav__list li {
    margin: 0;
}

.rs-category-nav__list a {
    display: block;
    padding: 1.3rem 0 .9rem;
    font-family: var(--rs-font-display);
    font-weight: 800;
    color: var(--rs-navy);
    border-bottom: 3px solid transparent;
    white-space: nowrap;
}

.rs-category-nav__list .current-menu-item > a,
.rs-category-nav__list .current_page_item > a,
.rs-category-nav__list a:hover {
    color: var(--rs-orange);
    border-bottom-color: var(--rs-orange);
    text-decoration: none;
}

/*content article */
.rs-side-post--card {
    padding-bottom: 1.4rem;
    margin-bottom: 1.4rem;
}

.rs-side-post__image {
    display: block;
    margin-bottom: .9rem;
    overflow: hidden;
    border-radius: 8px;
}

.rs-side-post__image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.rs-side-post__content h2 {
    margin-bottom: .5rem;
}

.rs-side-post__content time {
    display: block;
    color: var(--rs-text-muted);
    font-size: .9rem;
}

/* Mobile: i 3 articoli sotto il featured diventano uguali agli ultimi articoli */
.rs-side-post--card {
    padding-bottom: 1.4rem;
    margin-bottom: 1.4rem;
}

.rs-side-post__image {
    display: block;
    margin-bottom: .9rem;
    overflow: hidden;
    border-radius: 8px;
}

.rs-side-post__image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.rs-side-post__content h2 {
    margin-bottom: .5rem;
}

.rs-side-post__content time {
    display: block;
    color: var(--rs-text-muted);
    font-size: .9rem;
}

/* Mobile: i 3 articoli sotto il featured diventano uguali agli ultimi articoli */
@media (max-width: 991px) {

    .rs-side-posts {
        margin-top: 1rem;
    }

    .rs-side-post--card {
        display: grid;
        grid-template-columns: 43% 1fr;
        gap: 1.2rem;
        padding: 1.2rem 0;
        margin: 0;
        border-bottom: 1px solid var(--rs-border);
    }

    .rs-side-post__image {
        margin: 0;
    }

    .rs-side-post__image img {
        aspect-ratio: 4 / 3;
    }

    .rs-side-post__content h2 {
        font-size: 1.15rem;
        line-height: 1.18;
    }

    .rs-side-post__content .rs-kicker {
        margin-bottom: .35rem;
    }
}

@media (max-width: 575px) {

    .rs-side-post--card {
        grid-template-columns: 42% 1fr;
        gap: 1rem;
    }
}

/* Mobile: i 3 articoli dopo il featured devono essere immagine sopra + testo sotto */
@media (max-width: 991px) {

    .rs-side-post--card {
        display: block;
        padding: 1.4rem 0;
        margin: 0;
        border-bottom: 1px solid var(--rs-border);
    }

    .rs-side-post__image {
        display: block;
        width: 100%;
        margin-bottom: 1rem;
    }

    .rs-side-post__image img {
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .rs-side-post__content h2 {
        font-size: 1.35rem;
        line-height: 1.15;
        margin-bottom: .7rem;
    }

    .rs-side-post__content p {
        display: block;
        margin-bottom: .8rem;
        font-size: 1rem;
        line-height: 1.55;
    }
}

@media (max-width: 575px) {

    .rs-latest-card {
        display: block;
        padding: 1.4rem 0;
        border-bottom: 1px solid var(--rs-border);
    }

    .rs-latest-image {
        display: block;
        width: 100%;
        margin-bottom: 1rem;
    }

    .rs-latest-image img {
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .rs-latest-content h3 {
        font-size: 1.25rem;
        line-height: 1.18;
    }
}

/*logo short e funzione mobile */
.reti-logo--short {
    display: none;
}

/* Mobile header su due righe */
@media (max-width: 767px) {

    :root {
        --rs-header-h: 112px;
    }

    .reti-header__inner {
        height: auto;
        min-height: var(--rs-header-h);
        padding: .75rem 1rem;
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "burger burger"
            "logo social";
        row-gap: .6rem;
    }

    .reti-header__left {
        grid-area: burger;
        justify-content: flex-start;
    }

    .reti-header__center {
        grid-area: logo;
        justify-content: flex-start;
    }

    .reti-header__right {
        grid-area: social;
        justify-content: flex-end;
    }

    .reti-logo .custom-logo {
        height: 50px;
        max-width: 250px;
    }

    .reti-header.is-scrolled .reti-logo--main {
        display: none;
    }

    .reti-header.is-scrolled .reti-logo--short {
        display: flex;
    }

    .reti-header.is-scrolled {
        box-shadow: var(--rs-shadow-sm);
    }

    .reti-header.is-scrolled .reti-header__inner {
        min-height: 64px;
        padding: .5rem 1rem;

        grid-template-columns: auto auto 1fr;
        grid-template-areas:
            "burger logo social";

        column-gap: .7rem;
        row-gap: 0;
        align-items: center;
    }
    .reti-header.is-scrolled .reti-header__left {
        justify-content: flex-start;
    }

    .reti-header.is-scrolled .reti-header__center {
        justify-content: flex-start;
    }

    .reti-header.is-scrolled .reti-header__right {
        justify-content: flex-end;
    }

    .reti-header.is-scrolled .reti-logo .custom-logo {
        height: 34px;
        max-width: 120px;
    }
}

/* breadcumbs*/
.rs-page-header {
    padding: 1.4rem 0 0.5rem;
    border-bottom: 1px solid var(--rs-border);
    background: var(--rs-white);
}

.rs-breadcrumb {
    margin-bottom: .8rem;
    font-size: .9rem;
    color: var(--rs-text-muted);
}

.rs-breadcrumb a {
    color: var(--rs-text-muted);
}

.rs-breadcrumb a:hover {
    color: var(--rs-orange);
}

.rs-page-title {
    margin: 0;
    color: var(--rs-navy);
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.05;
    font-weight: 900;
}

/* Header fisso con admin bar WordPress */
body.admin-bar .reti-header {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar .reti-header {
        top: 46px;
    }
}

/* Page */
.rs-page {
    padding: 3rem 0 5rem;
}

.rs-page-article {
    color: var(--rs-text);
}

.rs-page-hero {
    margin: 0 0 2.5rem;
    border-radius: var(--rs-radius-lg);
    overflow: hidden;
    background: var(--rs-cream);
}

.rs-page-hero__img {
    width: 100%;
    aspect-ratio: 16 / 7;
    object-fit: cover;
}

.rs-page-content {
    font-size: 1.08rem;
    line-height: 1.8;
}

.rs-page-content > * {
    margin-bottom: 1.35rem;
}

.rs-page-content h2,
.rs-page-content h3,
.rs-page-content h4 {
    margin-top: 2.4rem;
    margin-bottom: 1rem;
    color: var(--rs-navy);
}

.rs-page-content h2 {
    font-size: clamp(1.7rem, 3vw, 2.3rem);
}

.rs-page-content h3 {
    font-size: clamp(1.4rem, 2.5vw, 1.8rem);
}

.rs-page-content a {
    color: var(--rs-orange);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rs-page-content img {
    border-radius: var(--rs-radius);
}

.rs-page-content ul,
.rs-page-content ol {
    padding-left: 1.4rem;
}

.rs-page-content li {
    margin-bottom: .45rem;
}

@media (max-width: 767px) {
    .rs-page {
        padding: 2rem 0 4rem;
    }

    .rs-page-hero {
        margin-bottom: 2rem;
    }

    .rs-page-hero__img {
        aspect-ratio: 16 / 9;
    }

    .rs-page-content {
        font-size: 1.02rem;
        line-height: 1.75;
    }
}
/*3 box img home */
.rs-banner-grid {
    padding: 3rem 0;
    background: var(--rs-pure-white);
}

.rs-banner-card {
    height: 100%;
    background: var(--rs-pure-white);
    border-radius: var(--rs-radius);
    overflow: hidden;
}

.rs-banner-card__link {
    display: block;
}

.rs-banner-card__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--rs-radius);
    transition:
        transform var(--rs-transition),
        opacity var(--rs-transition);
}

.rs-banner-card__link:hover .rs-banner-card__img {
    transform: scale(1.02);
    opacity: .96;
}

@media (max-width: 767px) {

    .rs-banner-grid {
        padding: 2rem 0;
    }

    .rs-banner-card {
        margin-bottom: .5rem;
    }
}

/* category */

/* Category page */
.rs-category-page {
    padding: 3rem 0 5rem;
}

.rs-category-description {
    max-width: 900px;
    margin-bottom: 2.5rem;
    font-size: 1.05rem;
    line-height: 1.75;
}

.rs-category-card {
    height: 100%;
    background: var(--rs-pure-white);
    border-radius: var(--rs-radius);
    overflow: hidden;
    transition:
        transform var(--rs-transition),
        box-shadow var(--rs-transition);
}

.rs-category-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--rs-shadow-md);
}

.rs-category-card__image {
    display: block;
    overflow: hidden;
}

.rs-category-card__image img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform var(--rs-transition);
}

.rs-category-card:hover .rs-category-card__image img {
    transform: scale(1.03);
}

.rs-category-card__content {
    padding: 1.4rem;
}

.rs-category-card__title {
    margin: .5rem 0 .8rem;
    font-size: clamp(1.25rem, 2vw, 1.6rem);
    line-height: 1.15;
}

.rs-category-card__title a {
    color: var(--rs-navy);
    text-decoration: none;
}

.rs-category-card__title a:hover {
    color: var(--rs-orange);
}

.rs-category-card__excerpt {
    margin-bottom: 1rem;
    line-height: 1.65;
    color: var(--rs-text);
}

.rs-category-card__date {
    display: block;
    font-size: .92rem;
    color: var(--rs-text-muted);
}

.rs-pagination {
    margin-top: 3rem;
}

.rs-empty-state {
    padding: 3rem 0;
}

@media (max-width: 767px) {

    .rs-category-page {
        padding: 2rem 0 4rem;
    }

    .rs-category-card__content {
        padding: 1.1rem;
    }

    .rs-category-card__title {
        font-size: 1.35rem;
    }
}

/* Paginazione WP-PageNavi */
.rs-pagination {
    margin-top: 3rem;
}

.rs-pagination .wp-pagenavi {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: 0;
}

.rs-pagination .wp-pagenavi span,
.rs-pagination .wp-pagenavi a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 .85rem;
    border-radius: 999px;
    border: 1px solid var(--rs-border);
    background: var(--rs-pure-white);
    color: var(--rs-navy);
    font-size: .95rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}

.rs-pagination .wp-pagenavi a:hover {
    background: var(--rs-orange);
    border-color: var(--rs-orange);
    color: #fff;
    text-decoration: none;
}

.rs-pagination .wp-pagenavi .current {
    background: var(--rs-navy);
    border-color: var(--rs-navy);
    color: #fff;
}

.rs-pagination .wp-pagenavi .pages {
    width: auto;
    padding: 0 1rem;
    background: transparent;
    color: var(--rs-text-muted);
    border-color: transparent;
    font-weight: 700;
}

.rs-pagination .wp-pagenavi .extend {
    background: transparent;
    border-color: transparent;
    color: var(--rs-text-muted);
}

.rs-pagination .wp-pagenavi .nextpostslink,
.rs-pagination .wp-pagenavi .previouspostslink,
.rs-pagination .wp-pagenavi .last,
.rs-pagination .wp-pagenavi .first {
    width: auto;
    padding: 0 1.1rem;
}

@media (max-width: 575px) {
    .rs-pagination .wp-pagenavi {
        gap: .4rem;
    }

    .rs-pagination .wp-pagenavi span,
    .rs-pagination .wp-pagenavi a {
        min-width: 38px;
        height: 38px;
        font-size: .9rem;
    }

    .rs-pagination .wp-pagenavi .pages {
        flex-basis: 100%;
    }
}
/*articoli correlati*/
.rs-related-shortcode {
    margin: 3rem 0;
    padding: 1rem;
    border-top: 1px solid var(--rs-border);
    border-bottom: 1px solid var(--rs-border);
    background: var(--rs-cream);
    border-radius: var(--rs-radius);
}

.rs-related-shortcode__title {
    margin: 1rem 0rem 0rem 1rem !important;
    font-size: clamp(1rem, 2vw, 1.2rem) !important;
}

.rs-related-card {
    height: 100%;
}
p.rs-related{font-size: 1rem;  line-height: 1.5rem;}

/* ── Variante orizzontale (un solo articolo per shortcode) ── */
.rs-related-card--horizontal {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-left:1rem;
}

.rs-related-card--horizontal .rs-related-card__image {
    flex: 0 0 40%;
    max-width: 320px;
    margin-bottom: 0;
}

.rs-related-card--horizontal .rs-related-card__content {
    flex: 1 1 auto;
}

.rs-related-card--horizontal .rs-related-card__img {
    aspect-ratio: 16 / 10;
}

.rs-related-card__image {
    display: block;
    margin-bottom: 1rem;
    border-radius: var(--rs-radius);
    overflow: hidden;
}

.rs-related-card__img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.rs-related-card__title {
    margin-bottom: .6rem;
    font-size: 1.25rem !important;
    line-height: 1.18;
    margin-top: 0rem !important;
}

.rs-related-card__title a {
    color: var(--rs-navy);
}

.rs-related-card__title a:hover {
    color: var(--rs-orange);
    text-decoration: none;
}

.rs-related-card__date {
    display: block;
    color: var(--rs-text-muted);
    font-size: .9rem;
}

@media (max-width: 767px) {
    .rs-related-card {
        margin-bottom: 1rem;
    }

    .rs-related-card--horizontal {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }

    .rs-related-card--horizontal .rs-related-card__image {
        flex-basis: auto;
        max-width: none;
    }
}

/* Background per single differente */
.single,
.page {
    background: var(--rs-pure-white);
}

.single .rs-page-header,
.page .rs-page-header {
    background: var(--rs-pure-white);
}

/* Gallery */
/* Gallery Bootstrap custom */
.reti-gallery {
    margin: 3rem 0;
}

.reti-gallery__slider {
    background: var(--rs-pure-white);
    border-radius: var(--rs-radius-lg);
    overflow: hidden;
}

.reti-gallery__main-image {
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.reti-gallery__img {
    width: 100%;
    max-height: 680px;
    object-fit: contain;
    background: var(--rs-pure-white);
}

.reti-gallery__caption {
    padding: .8rem 1rem;
    color: var(--rs-text-muted);
    font-size: .9rem;
    line-height: 1.45;
    background: var(--rs-pure-white);
}

.reti-gallery__thumbs {
    display: flex;
    gap: .6rem;
    margin-top: .8rem;
    overflow-x: auto;
    padding-bottom: .4rem;
}

.reti-gallery__thumb {
    flex: 0 0 auto;
    width: 92px;
    height: 68px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--rs-radius);
    overflow: hidden;
    background: transparent;
    cursor: pointer;
    opacity: .7;
}

.reti-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reti-gallery__thumb:hover,
.reti-gallery__thumb.is-active {
    opacity: 1;
    border-color: var(--rs-orange);
}

.reti-gallery .carousel-control-prev,
.reti-gallery .carousel-control-next {
    width: 54px;
}

.reti-gallery .carousel-control-prev-icon,
.reti-gallery .carousel-control-next-icon,
.reti-gallery-modal .carousel-control-prev-icon,
.reti-gallery-modal .carousel-control-next-icon {
    filter: invert(1);
}

/* Fullscreen modal */
.reti-gallery-modal .modal-content {
    background: rgba(0, 0, 0, .92);
    border: 0;
    border-radius: 0;
}

.reti-gallery-modal__close {
    position: fixed;
    top: 1.2rem;
    right: 1.2rem;
    z-index: 10;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.3rem;
}

.reti-gallery-modal__close:hover {
    background: var(--rs-orange);
}

.reti-gallery-modal__slider,
.reti-gallery-modal .carousel-inner,
.reti-gallery-modal .carousel-item {
    height: 100vh;
}

.reti-gallery-modal__img {
    width: 100%;
    height: 100vh;
    object-fit: contain;
    padding: 4rem;
}

@media (max-width: 767px) {
    .reti-gallery {
        margin: 2rem 0;
    }

    .reti-gallery__img {
        max-height: 420px;
    }

    .reti-gallery__thumb {
        width: 74px;
        height: 56px;
    }

    .reti-gallery-modal__img {
        padding: 3.5rem 1rem;
    }
}

/* Frecce slider gallery */
.reti-gallery .carousel-control-prev,
.reti-gallery .carousel-control-next,
.reti-gallery-modal .carousel-control-prev,
.reti-gallery-modal .carousel-control-next {
    width: 72px;
    opacity: 1;
}

.reti-gallery .carousel-control-prev-icon,
.reti-gallery .carousel-control-next-icon,
.reti-gallery-modal .carousel-control-prev-icon,
.reti-gallery-modal .carousel-control-next-icon {
    width: 52px;
    height: 52px;
    border-radius: 999px;
    background-color: rgba(0,0,0,.72);
    background-size: 22px;
    background-position: center;
    transition:
        background-color .2s ease,
        transform .2s ease;
}

/* Hover */
.reti-gallery .carousel-control-prev:hover .carousel-control-prev-icon,
.reti-gallery .carousel-control-next:hover .carousel-control-next-icon,
.reti-gallery-modal .carousel-control-prev:hover .carousel-control-prev-icon,
.reti-gallery-modal .carousel-control-next:hover .carousel-control-next-icon {
    background-color: var(--rs-orange);
    transform: scale(1.06);
}

/* Icona prev bianca */
.reti-gallery .carousel-control-prev-icon,
.reti-gallery-modal .carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
}

/* Icona next bianca */
.reti-gallery .carousel-control-next-icon,
.reti-gallery-modal .carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 14.354a.5.5 0 0 1 0-.708L10.293 8 4.646 2.354a.5.5 0 1 1 .708-.708l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708 0z'/%3E%3C/svg%3E");
}

@media (max-width: 767px) {

    .reti-gallery .carousel-control-prev,
    .reti-gallery .carousel-control-next,
    .reti-gallery-modal .carousel-control-prev,
    .reti-gallery-modal .carousel-control-next {
        width: 56px;
    }

    .reti-gallery .carousel-control-prev-icon,
    .reti-gallery .carousel-control-next-icon,
    .reti-gallery-modal .carousel-control-prev-icon,
    .reti-gallery-modal .carousel-control-next-icon {
        width: 42px;
        height: 42px;
        background-size: 18px;
    }
}

/* =========================================================
   IMMAGINI CONTENUTO ARTICOLI
========================================================= */

/* Reset base immagini contenuto */
.rs-single-content img,
.rs-page-content img,
.wp-block-image img {
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: var(--rs-radius);
}

/* Figure */
.rs-single-content figure,
.rs-page-content figure,
.wp-block-image {
    margin: 2rem 0;
}

/* Caption */
.wp-caption,
.wp-element-caption,
figcaption,
.gallery-caption {
    margin-top: .7rem;
    color: var(--rs-text-muted);
    font-size: .88rem;
    line-height: 1.45;
    text-align: center;
}

/* =========================================================
   ALIGNMENT WORDPRESS CLASSICI
========================================================= */

/* Align none */
.alignnone {
    margin: 2rem 0;
}

/* Align center */
.aligncenter {
    display: table;
    margin: 2.5rem auto;
    text-align: center;
}

/* Align left */
.alignleft {
    float: left;
    margin: .5rem 2rem 1.5rem 0;
    max-width: min(48%, 420px);
}

/* Align right */
.alignright {
    float: right;
    margin: .5rem 0 1.5rem 2rem;
    max-width: min(48%, 420px);
}

/* Clear float dopo immagini */
.rs-single-content::after,
.rs-page-content::after {
    content: "";
    display: block;
    clear: both;
}

/* =========================================================
   IMMAGINI GRANDI / HERO
========================================================= */

.size-full,
.size-large {
    width: 100%;
}

.rs-single-content > .wp-block-image.alignwide,
.rs-page-content > .wp-block-image.alignwide {
    margin-left: -5%;
    margin-right: -5%;
}

.rs-single-content > .wp-block-image.alignfull,
.rs-page-content > .wp-block-image.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
}

/* =========================================================
   GUTENBERG IMAGE BLOCK
========================================================= */

.wp-block-image {
    overflow: hidden;
}

.wp-block-image img {
    transition:
        transform .35s ease,
        opacity .35s ease;
}

.wp-block-image a:hover img {
    transform: scale(1.015);
}

/* =========================================================
   GALLERIE
========================================================= */

.gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin: 2rem 0;
}

.gallery img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.gallery-columns-2 {
    grid-template-columns: repeat(2, 1fr);
}

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

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

.gallery-columns-5 {
    grid-template-columns: repeat(5, 1fr);
}

/* =========================================================
   EMBED / VIDEO / IFRAME
========================================================= */

.rs-single-content iframe,
.rs-page-content iframe,
.rs-single-content video,
.rs-page-content video {
    width: 100%;
    max-width: 100%;
    border: 0;
    border-radius: var(--rs-radius);
    overflow: hidden;
}

.wp-block-embed,
.wp-block-video {
    margin: 2rem 0;
}

/* =========================================================
   IMMAGINI CON BORDO
========================================================= */

.rs-single-content .is-style-bordered img,
.rs-page-content .is-style-bordered img {
    border: 1px solid var(--rs-border);
}

/* =========================================================
   IMMAGINI TONDE
========================================================= */

.rs-single-content .is-style-rounded img,
.rs-page-content .is-style-rounded img {
    border-radius: 999px;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .alignleft,
    .alignright {
        float: none;
        max-width: 100%;
        margin: 1.5rem 0;
    }

    .gallery,
    .gallery-columns-3,
    .gallery-columns-4,
    .gallery-columns-5 {
        grid-template-columns: repeat(2, 1fr);
    }

    .rs-single-content > .wp-block-image.alignwide,
    .rs-page-content > .wp-block-image.alignwide {
        margin-left: 0;
        margin-right: 0;
    }

    .rs-single-content > .wp-block-image.alignfull,
    .rs-page-content > .wp-block-image.alignfull {
        width: 100%;
        margin-left: 0;
        transform: none;
    }
}

/* 404 */
.rs-404 {
    min-height: 60vh;
    padding: 5rem 0;
    display: flex;
    align-items: center;
    background: var(--rs-pure-white);
}

.rs-404__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 7rem;
    height: 7rem;
    margin-bottom: 1.5rem;
    border-radius: 50%;
    background: var(--rs-cream);
    color: var(--rs-orange);
    font-family: var(--rs-font-display);
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1;
}

.rs-404__title {
    margin-bottom: 1rem;
    color: var(--rs-navy);
    font-family: var(--rs-font-display);
    font-size: clamp(2rem, 5vw, 4rem);
    font-weight: 900;
    line-height: 1.05;
}

.rs-404__text {
    max-width: 620px;
    margin: 0 auto 2rem;
    color: var(--rs-text);
    font-size: 1.1rem;
    line-height: 1.7;
}

.rs-404__search {
    max-width: 520px;
    margin: 0 auto 2rem;
}

.rs-404__search .search-area,
.rs-404__search form {
    width: 100%;
}

.rs-404__search .search-field {
    width: 100%;
    height: 3.5rem;
    padding: 0 1rem;
    border: 1px solid var(--rs-border);
    border-radius: var(--rs-radius-full);
    background: var(--rs-cream);
    color: var(--rs-navy);
}

.rs-404__search .search-field:focus {
    border-color: var(--rs-orange);
    background: var(--rs-pure-white);
    outline: none;
    box-shadow: 0 0 0 .25rem rgba(245, 106, 8, .1);
}

.rs-404__actions {
    display: flex;
    justify-content: center;
}

.rs-404__button {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .85rem 1.35rem;
    border-radius: var(--rs-radius-full);
    background: var(--rs-orange);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.rs-404__button:hover {
    background: var(--rs-orange-dark);
    color: #fff;
    text-decoration: none;
}

@media (max-width: 767px) {
    .rs-404 {
        min-height: auto;
        padding: 3.5rem 0;
    }

    .rs-404__badge {
        width: 5.5rem;
        height: 5.5rem;
        font-size: 2rem;
    }
}
.rs-404__search .search-submit,
.rs-404__search button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
    padding: .85rem 1.4rem;
    border: 0;
    border-radius: 999px;
    background: var(--rs-orange);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    transition: .2s ease;
}

.rs-404__search .search-submit:hover,
.rs-404__search button[type="submit"]:hover {
    background: var(--rs-orange-dark);
}
.search-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.4rem;
    height: 3.4rem;
    border: 0;
    border-radius: 999px;
    background: var(--rs-orange);
    color: #fff;
    cursor: pointer;
    transition: .2s ease;
}

.search-submit:hover {
    background: var(--rs-orange-dark);
}

.search-submit i {
    font-size: 1rem;
    line-height: 1;
}

/* Avatar coerenti */
.dp-journalists .dp-avatar {
    object-fit: cover;
    aspect-ratio: 1 / 1;

    display: block;
    margin: 0 auto 15px;
}
.dp-journalists .dp-circle { border-radius: 50%; }
.dp-journalists .dp-square { border-radius: 0; }

/* Card e colonne a pari altezza */
.dp-journalists .row > [class*="col-"].d-flex { align-items: stretch; margin-bottom: 1rem;}
.dp-journalists .card { display: flex; flex-direction: column; height: 100%; }
.dp-journalists .card-body { display: flex; flex-direction: column; }

h3.card-title {font-size: 1.2rem;}

/*lettore degli articoli */
/* ─── Audio Player ─────────────────────────────────────────── */
.rs-single-audio {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #f4f4f0;
    border: 1px solid #e0ddd5;
    border-radius: 10px;
    padding: 14px 20px;
    margin: 1.5rem 0;
}

.rs-audio-label {
    font-family: 'Nunito', sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #1a3a5c;
    line-height: 1.4;
    min-width: 72px;
    flex-shrink: 0;
}

.rs-audio-controls {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    border-radius: 8px;
    padding: 10px 14px;
}

/* Play/Pause */
.rs-play-btn,
.rs-mute-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--rs-navy);
    line-height: 1;
}

.rs-play-btn {
    width: 28px;
    height: 28px;
}

/* Seek bar */
.rs-seek {
    flex: 1;
    height: 3px;
    -webkit-appearance: none;
    appearance: none;
    background: #555;
    border-radius: 2px;
    outline: none;
    cursor: pointer;
    min-width: 0;
}

.rs-seek::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--rs-navy);
    cursor: pointer;
}

.rs-seek::-moz-range-thumb {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background:  var(--rs-navy);
    border: none;
    cursor: pointer;
}

/* Time */
.rs-time {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 12px;
    color: #f0a500;
    white-space: nowrap;
    min-width: 72px;
    text-align: right;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

/* Volume bar */
.rs-vol {
    width: 60px;
    height: 3px;
    -webkit-appearance: none;
    appearance: none;
    background: linear-gradient(to right, #aaa 100%, #555 100%);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
    flex-shrink: 0;
}

.rs-vol::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background:  var(--rs-navy);
    cursor: pointer;
}

.rs-vol::-moz-range-thumb {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background:  var(--rs-navy);
    border: none;
    cursor: pointer;
}

/* Mobile */
@media (max-width: 575px) {
    .rs-single-audio {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .rs-audio-label {
        min-width: unset;
    }

    .rs-audio-controls {
        width: 100%;
    }

    .rs-vol {
        display: none;
    }
}

.comments-area{margin-top:2rem;}

/*intercetto titoli arancio */
.rs-single-content h3 > span[style*="#ff6600"],
.rs-single-content h3 > span[style*="#ff6600"] strong {
    color: var(--rs-orange) !important;
}

/* blocco adv home */
.rs-banner-card {
    overflow: hidden;
}

.rs-banner-card__link {
    display: block;
}

.rs-banner-card__img {
    width: 100%;
    height: auto;
    display: block;
}

.rs-banner-slider {
    position: relative;
}

.rs-banner-slider__viewport {
    overflow: hidden;
}

.rs-banner-slider__track {
    display: flex;
    gap: 1.5rem;
    transition: transform 0.35s ease;
}

.rs-banner-slider__item {
    flex: 0 0 calc((100% - 3rem) / 3);
}

.rs-banner-slider__btn {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: var(--rs-orange);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.rs-banner-slider__btn i {
    font-size: 16px;
    line-height: 1;
}

.rs-banner-slider__btn:disabled {
    opacity: .35;
    cursor: default;
}

.rs-banner-slider__btn--prev {
    left: -55px;
}

.rs-banner-slider__btn--next {
    right: -55px;
}

@media (max-width: 991px) {
    .rs-banner-slider__item {
        flex-basis: calc((100% - 1.5rem) / 2);
    }

    .rs-banner-slider__btn--prev {
        left: 0;
    }

    .rs-banner-slider__btn--next {
        right: 0;
    }
}

@media (max-width: 575px) {
    .rs-banner-slider__item {
        flex-basis: 100%;
    }
}
.rs-banner-slider-section{margin:2rem 0rem;}

.rs-footer-extra {
    padding: 2rem 0;
}

.rs-footer-promo {
    height: 100%;
    background: #21305a;
    border-radius: 0.6rem;
}

.rs-footer-promo__link {
    display: block;
    height: 100%;
}

.rs-footer-promo__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--rs-radius);
}

.rs-footer-newsletter {
    height: 100%;
    min-height: 100%;
    display: flex;
    align-items: stretch;
}
.rs-footer-newsletter__image{
    width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--rs-radius);
}
.rs-runts-image {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    border-radius: 8px;
}

.rs-runts-image .rs-latest-card {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-top: 0;
    padding-top: 0;
    background: #21305a;
    border-radius: 0.7rem;
}

.rs-runts-image a {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rs-runts-image img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    margin: auto;
}