/*
Theme Name: RadioFormat Station V3
Theme URI: https://www.radioformatstation.it
Author: Digital Media Video
Author URI: https://www.dmvideo.it
Description: Tema professionale per RadioFormat Station - Compatibile con Elementor, gestibile in autonomia. Prodotto da Digital Media Video.
Version: 3.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: radioformat-station
Tags: custom-background, custom-logo, custom-menu, featured-images, full-width-template, responsive-layout, accessibility-ready, elementor
*/

/* =============================================
   VARIABILI
   ============================================= */
:root {
    --red: #E8003D;
    --gold: #FF0040;
    --dark: #ffffff;
    --mid: #f2f2f2;
    --light: #111111;
    --muted: #444444;
    --white: #ffffff;
}

/* =============================================
   RESET BASE
   ============================================= */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }
body { background: var(--dark); color: var(--light); font-family: 'Barlow', sans-serif; font-weight: 300; line-height: 1.6; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }

/* =============================================
   NOISE OVERLAY
   ============================================= */
body::before { display: none;
    content: '';
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 9999;
    opacity: 0.4;
}

/* =============================================
   NAVIGAZIONE
   ============================================= */
#site-navigation {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 60px;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid #e8e8e8;
    box-shadow: 0 1px 12px rgba(0,0,0,0.08);
    transition: padding 0.3s;
}
#site-navigation.scrolled { padding: 14px 60px; }

.nav-logo { font-family: 'Bebas Neue', sans-serif; font-size: 26px; letter-spacing: 0.05em; }
.nav-logo span { color: var(--red); }
.nav-logo img { max-height: 50px; width: auto; }

#primary-menu { display: flex; gap: 36px; align-items: center; list-style: none; }
#primary-menu li a { color: #333333; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; transition: color 0.2s; }
#primary-menu li a:hover,
#primary-menu li.current-menu-item > a { color: var(--red); }
#primary-menu li.menu-cta > a { background: var(--red); color: var(--white); padding: 10px 22px; font-weight: 700; transition: background 0.2s; }
#primary-menu li.menu-cta > a:hover { background: #c0002e; }

.menu-toggle { display: none; background: none; border: none; color: #111; font-size: 26px; cursor: pointer; z-index: 1001; padding: 4px; }

/* =============================================
   LAYOUT GENERALE PAGINE
   ============================================= */
.site-main { padding-top: 90px; min-height: 60vh; }

/* Elementor full width */
.elementor-section.elementor-section-stretched { margin-left: 0 !important; margin-right: 0 !important; }

/* =============================================
   HERO HOME (animato)
   ============================================= */
#hero {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
    position: relative;
    overflow: hidden;
    padding-top: 0;
}

.hero-left { padding: 80px 60px; display: flex; flex-direction: column; justify-content: center; z-index: 2; }

.hero-badge { display: inline-block; font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; color: #fff; border: 1px solid rgba(255,255,255,0.5); padding: 6px 14px; margin-bottom: 40px; width: fit-content; animation: fadeUp 0.8s 0.2s both; }

.hero-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(64px, 8vw, 118px); line-height: 0.95; animation: fadeUp 0.9s 0.4s both; }
.hero-title .red { color: var(--red); display: block; }

.hero-claim { font-size: 13px; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; color: #fff; margin-top: 26px; animation: fadeUp 0.9s 0.55s both; }
.hero-subtitle { font-size: 17px; font-weight: 300; line-height: 1.8; color: #555; margin-top: 20px; max-width: 440px; animation: fadeUp 0.9s 0.7s both; }
.hero-cta { margin-top: 48px; display: flex; gap: 24px; align-items: center; animation: fadeUp 0.9s 0.9s both; }

.hero-right { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.hero-right::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 50%, rgba(232,0,61,0.15) 0%, transparent 70%); }

.wave-visual { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.big-circle { width: 420px; height: 420px; border-radius: 50%; border: 1px solid rgba(232,0,61,0.2); position: absolute; animation: pulse 3.5s ease-in-out infinite; }
.big-circle:nth-child(2) { width: 310px; height: 310px; border-color: rgba(255,184,0,0.18); animation-delay: 0.6s; }
.big-circle:nth-child(3) { width: 210px; height: 210px; border-color: rgba(232,0,61,0.35); animation-delay: 1.2s; }

.center-dot { width: 90px; height: 90px; background: var(--red); border-radius: 50%; z-index: 2; display: flex; align-items: center; justify-content: center; font-size: 34px; box-shadow: 0 0 50px rgba(232,0,61,0.45); cursor: pointer; transition: transform 0.2s; }
.center-dot:hover { transform: scale(1.1); }
.center-dot.playing { animation: playPulse 1s ease-in-out infinite; }

.bars-wrap { position: absolute; bottom: 50px; left: 0; right: 0; display: flex; align-items: flex-end; justify-content: center; gap: 4px; height: 80px; opacity: 0.4; }
.bar { width: 4px; background: var(--red); border-radius: 2px; animation: barAnim 1s ease-in-out infinite alternate; }

/* Audio player nascosto */
#hero-audio { display: none; }

/* =============================================
   DIVIDER & MARQUEE
   ============================================= */
.divider { height: 1px; background: linear-gradient(90deg, transparent, var(--red), #BF00FF, transparent); }

.marquee-wrap { background: #FF0040; padding: 15px 0; overflow: hidden; }
.marquee-inner { display: flex; gap: 60px; animation: marqueeAnim 22s linear infinite; white-space: nowrap; }
.marquee-item { font-family: 'Bebas Neue', sans-serif; font-size: 20px; letter-spacing: 0.1em; color: #fff; flex-shrink: 0; opacity: 1; text-shadow: none; }
.marquee-dot { color: rgba(255,255,255,0.6); margin: 0 8px; }

/* =============================================
   SEZIONI COMUNI
   ============================================= */
.section-label { font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--red); margin-bottom: 18px; display: block; }
.section-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(44px, 5.5vw, 80px); line-height: 1; margin-bottom: 60px; }

.container { max-width: 1400px; margin: 0 auto; padding: 0 60px; }

.btn-primary { display: inline-block; background: var(--red); color: var(--white); font-weight: 700; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; padding: 16px 38px; transition: background 0.25s, transform 0.2s; border: none; cursor: pointer; }
.btn-primary:hover { background: #c0002e; transform: translateY(-2px); color: var(--white); }

.btn-outline { display: inline-block; color: var(--light); font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; border-bottom: 1px solid var(--muted); padding-bottom: 2px; transition: border-color 0.2s, color 0.2s; }
.btn-outline:hover { border-color: var(--red); color: var(--red); }

/* =============================================
   SERVIZI
   ============================================= */
#servizi { padding: 120px 0; }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.service-card { background: var(--mid); padding: 48px 38px; position: relative; overflow: hidden; transition: background 0.3s; }
.service-card::before { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: var(--red); transition: width 0.4s; }
.service-card:hover::before { width: 100%; }
.service-card:hover { background: #e8e8e8; }
.service-num { font-family: 'Bebas Neue', sans-serif; font-size: 48px; color: #FF0040; line-height: 1; margin-bottom: 16px; display: block; }
.service-icon { font-size: 34px; margin-bottom: 22px; }
.service-name { font-family: 'Bebas Neue', sans-serif; font-size: 26px; letter-spacing: 0.04em; color: var(--light); margin-bottom: 14px; }
.service-desc { font-size: 15px; font-weight: 300; color: #555; line-height: 1.75; }

/* =============================================
   CHI SIAMO
   ============================================= */
#chi-siamo { padding: 120px 0; }
.chisiamo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center; }
.chisiamo-visual { position: relative; height: 460px; }
.chisiamo-box { position: absolute; background: var(--mid); border-left: 3px solid var(--red); }
.chisiamo-box.main { inset: 0; display: flex; align-items: center; justify-content: center; font-family: 'Bebas Neue', sans-serif; font-size: 110px; color: rgba(232,0,61,0.05); letter-spacing: -0.02em; }
.chisiamo-box.accent { width: 180px; height: 120px; bottom: -20px; right: -20px; background: var(--red); border: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; }
.chisiamo-box.accent .num { font-family: 'Bebas Neue', sans-serif; font-size: 50px; line-height: 1; color: #fff; }
.chisiamo-box.accent .lbl { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.75); text-align: center; }
.chisiamo-text p { font-size: 16px; font-weight: 300; line-height: 1.88; color: #555; margin-bottom: 22px; }
.chisiamo-text strong { color: var(--light); font-weight: 600; }

/* =============================================
   ABOUT STRIP
   ============================================= */
.about-strip { background: var(--red); padding: 100px 0; }
.about-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.about-strip h2 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(52px, 6.5vw, 90px); line-height: 0.95; color: #fff; }
.about-strip p { font-size: 17px; font-weight: 300; line-height: 1.85; color: rgba(255,255,255,0.82); }

/* =============================================
   STATISTICHE
   ============================================= */
.stats-row { padding: 100px 0; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.stat-box { background: var(--mid); padding: 48px 38px; position: relative; overflow: hidden; transition: background 0.3s; text-align: left; }
.stat-box::before { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: var(--red); transition: width 0.4s; }
.stat-box:hover::before { width: 100%; }
.stat-box:hover { background: #e8e8e8; }
.stat-num { font-family: 'Bebas Neue', sans-serif; font-size: 76px; color: rgba(232,0,61,0.07); position: absolute; top: 10px; right: 20px; line-height: 1; }
.stat-label { font-family: 'Bebas Neue', sans-serif; font-size: 22px; letter-spacing: 0.04em; color: var(--light); margin-top: 14px; position: relative; z-index: 1; }

/* =============================================
   PROCESSO
   ============================================= */
#come-lavoriamo { padding: 120px 0; }
.processo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.step-card { background: var(--mid); padding: 48px 38px; position: relative; overflow: hidden; transition: background 0.3s; }
.step-card::before { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: var(--red); transition: width 0.4s; }
.step-card:hover::before { width: 100%; }
.step-card:hover { background: #e8e8e8; }
.step-num { font-family: 'Bebas Neue', sans-serif; font-size: 68px; color: rgba(232,0,61,0.07); position: absolute; top: 18px; right: 26px; line-height: 1; }
.step-title { font-family: 'Bebas Neue', sans-serif; font-size: 26px; letter-spacing: 0.04em; color: var(--light); margin-bottom: 14px; }
.step-desc { font-size: 14px; font-weight: 300; color: #555; line-height: 1.75; }

/* =============================================
   TESTIMONIANZE
   ============================================= */
#testimonianze { padding: 120px 0; background: #f9f9f9; }
.test-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.test-card { background: var(--mid); padding: 48px 40px; transition: background 0.3s; }
.test-card:hover { background: #e8e8e8; }
.test-quote { font-family: 'Bebas Neue', sans-serif; font-size: 80px; color: var(--red); line-height: 0.7; margin-bottom: 24px; opacity: 0.55; }
.test-text { font-size: 16px; font-style: italic; font-weight: 300; line-height: 1.82; color: #444; margin-bottom: 32px; }
.test-author { border-top: 1px solid #222; padding-top: 24px; }
.test-name { font-weight: 600; font-size: 15px; color: var(--light); display: block; margin-bottom: 5px; }
.test-role { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: #666; }

/* =============================================
   NEWSLETTER
   ============================================= */
.newsletter-strip { padding: 80px 0; background: #f9f9f9; border-top: 1px solid #e0e0e0; border-bottom: 1px solid #e0e0e0; }
.newsletter-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.newsletter-text h3 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(36px, 4vw, 56px); line-height: 1; margin-bottom: 14px; }
.newsletter-text h3 span { color: var(--red); }
.newsletter-text p { font-size: 15px; font-weight: 300; color: #555; line-height: 1.7; }
.newsletter-form { display: flex; flex-direction: column; gap: 14px; }
.newsletter-form .input-row { display: flex; }
.newsletter-form input[type="email"] { flex: 1; background: #fff; border: 1px solid #ddd; border-right: none; color: var(--light); padding: 16px 20px; font-family: 'Barlow', sans-serif; font-size: 15px; outline: none; transition: border-color 0.2s; }
.newsletter-form input[type="email"]:focus { border-color: var(--red); }
.newsletter-form input[type="text"] { width: 100%; background: #fff; border: 1px solid #ddd; color: var(--light); padding: 14px 20px; font-family: 'Barlow', sans-serif; font-size: 15px; outline: none; }
.newsletter-form .privacy-note { font-size: 11px; color: var(--muted); line-height: 1.6; }
.newsletter-form .privacy-note a { color: var(--red); }
.newsletter-success { display: none; background: rgba(232,0,61,0.1); border-left: 3px solid var(--red); padding: 16px 20px; font-size: 14px; color: var(--light); }

/* =============================================
   CONTATTI
   ============================================= */
#contatti { padding: 120px 0; }
.contatti-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.contatti-info h2 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(44px, 5vw, 72px); margin-bottom: 24px; line-height: 1; }
.contatti-info h2 span { color: var(--red); }
.contatti-info p { font-size: 16px; font-weight: 300; color: #555; line-height: 1.85; margin-bottom: 40px; }
.contatti-detail { display: flex; flex-direction: column; gap: 20px; }
.contatti-detail .item { display: flex; align-items: center; gap: 16px; font-size: 15px; color: #555; }
.contatti-detail .item .icon { width: 44px; height: 44px; background: var(--mid); border-left: 2px solid var(--red); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.contatti-detail .item a { color: #555; transition: color 0.2s; }
.contatti-detail .item a:hover { color: #FF0040; }

/* Form contatti */
.contact-form-wrap { background: var(--mid); padding: 50px; }

/* Immagine decorativa sinistra sezione contatti */
.contatti-img-sx {
    margin-top: 40px;
    height: 260px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

/* Striscia rete sotto footer */
.footer-rete-strip {
    width: 100%;
    height: 200px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

/* Immagine decorativa sotto griglia servizi */
.servizi-img-sx {
    margin-top: 48px;
    border-radius: 4px;
    overflow: hidden;
    max-height: 280px;
}
.servizi-img-sx img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    display: block;
    opacity: 0.85;
    transition: opacity 0.3s;
}
.servizi-img-sx img:hover { opacity: 1; }
.contact-form-wrap h3 { font-family: 'Bebas Neue', sans-serif; font-size: 28px; letter-spacing: 0.04em; margin-bottom: 32px; }
.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.form-group input, .form-group textarea, .form-group select { width: 100%; background: #fff; border: 1px solid #ddd; color: var(--light); padding: 14px 18px; font-family: 'Barlow', sans-serif; font-size: 15px; font-weight: 300; outline: none; transition: border-color 0.2s; appearance: none; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color: var(--red); }
.form-group textarea { height: 140px; resize: vertical; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-success { display: none; background: rgba(232,0,61,0.1); border-left: 3px solid var(--red); padding: 16px 20px; font-size: 14px; color: var(--light); margin-bottom: 20px; }

/* =============================================
   PAGINA DEMO AUDIO
   ============================================= */
.demo-page-hero {
    background: var(--dark);
    padding: 80px 0 60px;
    border-bottom: 1px solid #e0e0e0;
    text-align: center;
}

.demo-page-hero h1 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(52px, 7vw, 96px);
    line-height: 1;
    margin-bottom: 20px;
}
.demo-page-hero h1 span { color: var(--red); }
.demo-page-hero p { font-size: 17px; font-weight: 300; color: #555; max-width: 600px; margin: 0 auto; line-height: 1.8; }

.demo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
    padding: 80px 0;
}

.demo-card {
    background: var(--mid);
    position: relative;
    overflow: hidden;
    transition: background 0.3s;
}
.demo-card:hover { background: #e8e8e8; }

.demo-cover {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
    background: #eeeeee;
    position: relative;
}

.demo-cover-placeholder {
    width: 100%;
    aspect-ratio: 1;
    background: linear-gradient(135deg, #1a1a1a, #0d0d0d);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 80px;
    color: rgba(232,0,61,0.1);
}

.demo-play-overlay {
    position: absolute;
    top: 0; left: 0; right: 0;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.4);
    opacity: 0;
    transition: opacity 0.3s;
    cursor: pointer;
}
.demo-card:hover .demo-play-overlay { opacity: 1; }

.demo-play-btn {
    width: 70px; height: 70px;
    background: var(--red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    box-shadow: 0 0 30px rgba(232,0,61,0.5);
    transition: transform 0.2s;
}
.demo-play-btn:hover { transform: scale(1.1); }

.demo-info {
    padding: 28px 30px;
    border-top: 2px solid transparent;
    transition: border-color 0.3s;
}
.demo-card:hover .demo-info { border-top-color: var(--red); }

.demo-format-label {
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FF0040;
    margin-bottom: 8px;
    display: block;
}

.demo-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 24px;
    letter-spacing: 0.04em;
    color: var(--light);
    margin-bottom: 10px;
    line-height: 1.1;
}

.demo-desc {
    font-size: 14px;
    font-weight: 300;
    color: #555;
    line-height: 1.65;
    margin-bottom: 20px;
}

/* Player audio custom */
.demo-player {
    width: 100%;
    background: #eeeeee;
    border: 1px solid #ddd;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.demo-player audio {
    width: 100%;
    height: 32px;
    accent-color: var(--red);
}

audio::-webkit-media-controls-panel { background: #eeeeee; }
audio::-webkit-media-controls-play-button { color: var(--red); }

/* =============================================
   PAGINA ADERISCI
   ============================================= */
.aderisci-hero {
    background: var(--dark);
    padding: 100px 0 80px;
    position: relative;
    overflow: hidden;
}

.aderisci-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 80% 50%, rgba(232,0,61,0.1) 0%, transparent 60%);
}

.aderisci-hero h1 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(56px, 7vw, 100px);
    line-height: 1;
    margin-bottom: 24px;
    position: relative;
}
.aderisci-hero h1 span { color: var(--red); }

.aderisci-hero p {
    font-size: 18px;
    font-weight: 300;
    color: #555;
    line-height: 1.85;
    max-width: 700px;
    position: relative;
}

.aderisci-benefits {
    padding: 80px 0;
    background: #f9f9f9;
}

.benefits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
}

.benefit-card {
    background: var(--mid);
    padding: 40px 36px;
    border-top: 2px solid var(--red);
}

.benefit-icon { font-size: 36px; margin-bottom: 18px; }
.benefit-title { font-family: 'Bebas Neue', sans-serif; font-size: 22px; color: var(--light); margin-bottom: 12px; letter-spacing: 0.04em; }
.benefit-desc { font-size: 14px; font-weight: 300; color: #555; line-height: 1.7; }

.aderisci-cta-section {
    padding: 100px 0;
    text-align: center;
}

.aderisci-cta-section h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(44px, 5vw, 72px);
    margin-bottom: 24px;
}
.aderisci-cta-section h2 span { color: var(--red); }
.aderisci-cta-section p { font-size: 17px; font-weight: 300; color: #555; max-width: 600px; margin: 0 auto 48px; line-height: 1.8; }

/* =============================================
   MODULO ADESIONE
   ============================================= */
.modulo-page { padding: 100px 0; }

.modulo-header {
    text-align: center;
    margin-bottom: 70px;
}

.modulo-header h1 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(48px, 6vw, 86px);
    line-height: 1;
    margin-bottom: 20px;
}
.modulo-header h1 span { color: var(--red); }
.modulo-header p { font-size: 16px; font-weight: 300; color: #555; max-width: 580px; margin: 0 auto; line-height: 1.8; }

.modulo-wrap {
    background: var(--mid);
    padding: 60px;
    max-width: 900px;
    margin: 0 auto;
    border-top: 3px solid var(--red);
}

.modulo-section-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    letter-spacing: 0.1em;
    color: #FF0040;
    margin-bottom: 28px;
    padding-bottom: 12px;
    border-bottom: 1px solid #ddd;
    display: flex;
    align-items: center;
    gap: 12px;
}

.modulo-section-title::before {
    content: '';
    width: 4px;
    height: 20px;
    background: var(--red);
    display: block;
}

/* Campi format con orario */
.format-item {
    background: #eeeeee;
    border: 1px solid #ddd;
    padding: 20px 24px;
    margin-bottom: 12px;
    transition: border-color 0.3s;
}

.format-item.selected { border-color: var(--red); }

.format-checkbox-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 0;
    transition: margin-bottom 0.3s;
}

.format-item.selected .format-checkbox-row { margin-bottom: 18px; }

.format-checkbox-row input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: var(--red);
    cursor: pointer;
    flex-shrink: 0;
}

.format-checkbox-label {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 20px;
    letter-spacing: 0.04em;
    color: var(--light);
    cursor: pointer;
    flex: 1;
}

.format-badge {
    font-size: 10px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #FF0040;
    border: 1px solid #FF0040;
    padding: 3px 8px;
}

.format-orario {
    display: none;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    padding-top: 4px;
    border-top: 1px solid #ddd;
}

.format-item.selected .format-orario { display: grid; }

.format-orario label {
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--muted);
    display: block;
    margin-bottom: 6px;
}

.format-orario input[type="time"],
.format-orario select {
    width: 100%;
    background: #f9f9f9;
    border: 1px solid #ccc;
    color: var(--light);
    padding: 10px 14px;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
    appearance: none;
}

.format-orario input:focus,
.format-orario select:focus { border-color: var(--red); }

.format-orario-note {
    font-size: 11px;
    color: var(--muted);
    margin-top: 6px;
    font-weight: 300;
}

/* Privacy e submit */
.privacy-check {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 28px;
    padding: 20px;
    background: #eeeeee;
    border: 1px solid #ddd;
}

.privacy-check input[type="checkbox"] { accent-color: var(--red); margin-top: 2px; flex-shrink: 0; }
.privacy-check label { font-size: 13px; font-weight: 300; color: #555; line-height: 1.6; }
.privacy-check a { color: var(--red); }

/* =============================================
   PAGINA RADIO ASSOCIATE
   ============================================= */
.radio-associate-page { padding: 100px 0; }

.radio-associate-header {
    text-align: center;
    margin-bottom: 80px;
}

.radio-associate-header h1 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(52px, 7vw, 96px);
    line-height: 1;
    margin-bottom: 20px;
}
.radio-associate-header h1 span { color: var(--red); }
.radio-associate-header p { font-size: 16px; font-weight: 300; color: #555; max-width: 560px; margin: 0 auto; line-height: 1.8; }

/* Aree geografiche */
.area-section { margin-bottom: 80px; }

.area-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 36px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e0e0e0;
}

.area-badge {
    background: var(--red);
    color: var(--white);
    font-family: 'Bebas Neue', sans-serif;
    font-size: 13px;
    letter-spacing: 0.15em;
    padding: 6px 16px;
}

.area-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 32px;
    letter-spacing: 0.05em;
    color: var(--light);
}

.area-count {
    font-size: 12px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--muted);
    margin-left: auto;
}

/* Galleria loghi radio */
.radio-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 3px;
    background: #f0f0f0;
    padding: 3px;
}

/* ── Card radio: logo sempre a colori, info all'hover ── */
.radio-logo-card {
    background: #f4f4f4;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: background 0.3s;
    border: 1px solid #e0e0e0;
}
.radio-logo-card:hover { background: #eeeeee; border-color: #222; }

/* Linea rossa in basso */
.radio-logo-card::before {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 0; height: 3px;
    background: var(--red);
    transition: width 0.4s ease;
    z-index: 3;
}
.radio-logo-card:hover::before { width: 100%; }

/* Logo sempre a colori, zoom soft all'hover */
.radio-logo-card img {
    width: 90%;
    height: 90%;
    object-fit: cover;
    transition: transform 0.35s ease;
    position: relative;
    z-index: 1;
    display: block;
}
.radio-logo-card:hover img { transform: scale(1.1); }

/* Overlay info — appare all'hover */
.radio-hover-info {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.9);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 14px;
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 2;
    pointer-events: none;
}
.radio-logo-card:hover .radio-hover-info {
    opacity: 1;
    pointer-events: auto;
}

.radio-hover-name {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 17px;
    letter-spacing: 0.08em;
    color: #fff;
    margin: 0 0 5px;
    line-height: 1.2;
}
.radio-hover-city {
    font-size: 11px;
    color: #FF0040;
    letter-spacing: 0.05em;
    margin: 0 0 12px;
    font-weight: 300;
}
.radio-hover-link {
    font-size: 9px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #fff;
    background: var(--red);
    padding: 5px 14px;
    margin: 0;
    border: none;
    transition: background 0.2s;
}
.radio-hover-link:hover { background: #b5002e; }

/* Placeholder senza logo */
.radio-logo-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 14px;
    color: #222;
    text-align: center;
    letter-spacing: 0.05em;
}

/* =============================================
   FOOTER
   ============================================= */
#colophon { background: #f4f4f4; border-top: 1px solid #e0e0e0; }
.footer-top { padding: 70px 0; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 60px; }
.footer-brand-name { font-family: 'Bebas Neue', sans-serif; font-size: 32px; letter-spacing: 0.05em; margin-bottom: 14px; }
.footer-brand-name span { color: var(--red); }
.footer-tagline { font-size: 14px; font-weight: 300; color: var(--muted); line-height: 1.75; max-width: 280px; margin-bottom: 28px; }
.footer-social { display: flex; gap: 12px; }
.footer-social a { width: 36px; height: 36px; background: #eeeeee; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: background 0.2s; }
.footer-social a:hover { background: var(--red); }
.footer-col h4 { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; color: #111; margin-bottom: 22px; }
.footer-col ul li { margin-bottom: 10px; }
.footer-col ul li a { font-size: 14px; font-weight: 300; color: var(--muted); transition: color 0.2s; }
.footer-col ul li a:hover { color: var(--light); }
.footer-bottom { border-top: 1px solid #e0e0e0; padding: 22px 0; display: flex; justify-content: space-between; align-items: center; }
.footer-bottom p { font-size: 12px; color: #555; letter-spacing: 0.04em; }
.footer-bottom strong { color: var(--red); }
.footer-bottom a { color: #555; transition: color 0.2s; }
.footer-bottom a:hover { color: #FF0040; }

/* =============================================
   ANIMAZIONI
   ============================================= */
@keyframes fadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse { 0%, 100% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.07); opacity: 1; } }
@keyframes barAnim { from { transform: scaleY(0.1); } to { transform: scaleY(1); } }
@keyframes marqueeAnim { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes playPulse { 0%, 100% { box-shadow: 0 0 50px rgba(232,0,61,0.45); } 50% { box-shadow: 0 0 80px rgba(232,0,61,0.8); } }

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width: 1024px) {
    #site-navigation { padding: 18px 30px; }
    #hero { grid-template-columns: 1fr; }
    .hero-right { height: 300px; }
    .services-grid, .test-grid { grid-template-columns: 1fr 1fr; }
    .chisiamo-grid, .about-inner, .contatti-grid, .newsletter-inner { grid-template-columns: 1fr; gap: 50px; }
    .chisiamo-visual { height: 260px; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .processo-grid { grid-template-columns: 1fr 1fr; }
    .benefits-grid { grid-template-columns: 1fr 1fr; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 40px; }
    .modulo-wrap { padding: 40px 30px; }
}

@media (max-width: 768px) {
    #primary-menu { display: none; flex-direction: column; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #fff; padding: 100px 40px 40px; gap: 16px; align-items: flex-start; z-index: 999; overflow-y: auto; }
    #primary-menu.open { display: flex; }
    #primary-menu li a { font-size: 28px; font-family: 'Bebas Neue', sans-serif; letter-spacing: 0.05em; color: var(--light); }
    .menu-toggle { display: block; }
    .container { padding: 0 24px; }
    .hero-left { padding: 60px 24px 40px; }
    .services-grid, .test-grid, .processo-grid, .stats-grid, .benefits-grid { grid-template-columns: 1fr; }
    .form-row, .format-orario { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr; gap: 32px; padding: 50px 0; }
    .footer-bottom { flex-direction: column; gap: 10px; text-align: center; }
    .radio-gallery { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px; }
    #servizi, #chi-siamo, #come-lavoriamo, #testimonianze, #contatti, .radio-associate-page, .modulo-page, .demo-grid { padding-left: 0; padding-right: 0; }
}

/* ── DROPDOWN MENU ─────────────────────────────── */
#primary-menu .menu-item-has-children { position: relative; }
#primary-menu .menu-item-has-children > a { cursor: pointer; }
#primary-menu .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    background: #f4f4f4;
    border: 1px solid #e0e0e0;
    min-width: 220px;
    z-index: 9999;
    padding: 8px 0;
    list-style: none;
    margin: 0;
}
#primary-menu .menu-item-has-children:hover .sub-menu { display: block; }
#primary-menu .sub-menu li a {
    display: block;
    padding: 12px 20px;
    color: #444;
    font-size: 13px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s, background 0.2s;
}
#primary-menu .sub-menu li a:hover { color: #E8003D; background: #eeeeee; }

/* ── HAMBURGER ─────────────────────────────────── */
.menu-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    z-index: 10001;
    position: relative;
}
.menu-toggle span {
    display: block;
    width: 26px;
    height: 2px;
    background: #fff;
    transition: all 0.3s ease;
}

/* ── PANNELLO LATERALE ─────────────────────────── */
#side-panel {
    position: fixed;
    top: 0;
    right: -340px;
    width: 320px;
    height: 100vh;
    background: #f0f0f0;
    border-left: 1px solid #e0e0e0;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    padding: 40px 36px;
    transition: right 0.35s cubic-bezier(.4,0,.2,1);
    overflow-y: auto;
}
#side-panel.open { right: 0; }

#side-panel-close {
    background: none;
    border: none;
    color: #333;
    font-size: 22px;
    cursor: pointer;
    align-self: flex-end;
    margin-bottom: 32px;
    transition: color 0.2s;
}
#side-panel-close:hover { color: #E8003D; }

.side-panel-logo {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    color: #fff;
    letter-spacing: 0.1em;
    margin-bottom: 48px;
    border-bottom: 1px solid #1e1e1e;
    padding-bottom: 24px;
}
.side-panel-logo span { color: #E8003D; }

.side-panel-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    flex: 1;
}
.side-panel-menu li { border-bottom: 1px solid #111; }
.side-panel-menu li a {
    display: block;
    padding: 16px 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    letter-spacing: 0.12em;
    color: #444;
    text-decoration: none;
    transition: color 0.2s, padding-left 0.2s;
}
.side-panel-menu li a:hover { color: #E8003D; padding-left: 8px; }

.side-panel-footer {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    border-top: 1px solid #1e1e1e;
    padding-top: 24px;
}
.side-panel-footer a {
    font-size: 13px;
    color: #777;
    text-decoration: none;
    transition: color 0.2s;
}
.side-panel-footer a:hover { color: #E8003D; }

/* ── OVERLAY ───────────────────────────────────── */
#side-panel-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 9999;
    backdrop-filter: blur(2px);
}
#side-panel-overlay.open { display: block; }

/* Rimuovi vecchio dropdown */
#primary-menu .sub-menu { display: none !important; }

/* ── BANNER MANUTENZIONE ───────────────────────── */
.manutenzione-banner {
    background: #E8003D;
    color: #fff;
    text-align: center;
    padding: 14px 20px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 18px;
    letter-spacing: 0.15em;
    width: 100%;
}

/* ── LICENZE ───────────────────────────────────── */
.licenze-list { display: flex; flex-direction: column; gap: 12px; }
.licenza-item { border: 1px solid #ddd; padding: 16px 20px; background: #f9f9f9; transition: border-color 0.2s; }
.licenza-item:has(input:checked) { border-color: #E8003D; }
.licenza-check-row { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.licenza-check-row input[type="checkbox"] { width: 18px; height: 18px; accent-color: #E8003D; cursor: pointer; }
.licenza-check-row label { font-size: 15px; color: #444; cursor: pointer; }
.licenza-numero { margin-top: 12px; padding-top: 12px; border-top: 1px solid #ddd; }
.licenza-numero input { width: 100%; padding: 10px 14px; background: #f4f4f4; border: 1px solid #ddd; color: #111; font-size: 14px; letter-spacing: 0.05em; }
.licenza-numero input:focus { outline: none; border-color: #E8003D; }

/* ── BOTTONE AUDIO FISSO ───────────────────────── */
#sound-toggle-btn {
    position: fixed;
    bottom: 28px;
    right: 28px;
    z-index: 9998;
    background: rgba(10,10,10,0.85);
    border: 1px solid #ddd;
    color: #fff;
    padding: 10px 18px;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: background 0.2s, border-color 0.2s;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 13px;
    letter-spacing: 0.15em;
}
#sound-toggle-btn:hover { background: rgba(232,0,61,0.15); border-color: #E8003D; }
#sound-toggle-btn.active { background: rgba(232,0,61,0.2); border-color: #E8003D; }
#sound-toggle-btn .sound-icon { font-size: 16px; transition: opacity 0.2s; }
#sound-toggle-btn .sound-icon.muted { opacity: 0.4; }
#sound-toggle-btn .sound-label { font-size: 11px; letter-spacing: 0.2em; }

/* ── SELETTORE LINGUA ──────────────────────────── */
.lang-switcher {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-right: 16px;
}
.lang-btn {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 12px;
    letter-spacing: 0.1em;
    color: #777;
    text-decoration: none;
    padding: 4px 8px;
    border: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}
.lang-btn:hover { color: #fff; }
.lang-btn.active { color: #E8003D; border-color: #E8003D; }

/* ── CARD SERVIZIO CON LINK ────────────────────── */
.service-card.has-link { transition: border-color 0.2s, transform 0.2s; }
.service-card.has-link:hover { border-color: #E8003D; transform: translateY(-4px); }
.service-link-arrow { display:block; margin-top:16px; color:#E8003D; font-size:20px; font-family:'Bebas Neue',sans-serif; letter-spacing:0.1em; }

/* =============================================
   DEMO PAGE — layout conduttore + player
   ============================================= */
.demo-list { display: flex; flex-direction: column; gap: 0; }

.demo-row {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 60px;
    padding: 60px 0;
    align-items: start;
}

/* Colonna sinistra — conduttore */
.demo-conduttore { text-align: center; }

.demo-foto-conduttore {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid #E8003D;
    display: block;
    margin: 0 auto 16px;
}

.demo-foto-placeholder {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: #f4f4f4;
    border: 3px solid #1a1a1a;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 60px;
    margin: 0 auto 16px;
}

.demo-conduttore-name {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    letter-spacing: 0.08em;
    color: #fff;
    margin-bottom: 12px;
}

.demo-bio {
    font-size: 14px;
    color: #555;
    line-height: 1.8;
    font-weight: 300;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #222;
    width: 100%;
}

/* Colonna destra — cover + info + player */
.demo-card-inner {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 32px;
    align-items: start;
}

.demo-cover-img {
    width: 180px;
    height: 180px;
    object-fit: cover;
    display: block;
    border: 1px solid #e0e0e0;
}

.demo-cover-placeholder {
    width: 180px;
    height: 180px;
    background: #f4f4f4;
    border: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    color: #222;
}

.demo-card-info { display: flex; flex-direction: column; gap: 12px; }

.demo-format-label {
    font-size: 11px;
    letter-spacing: 0.2em;
    color: #E8003D;
    text-transform: uppercase;
    font-weight: 600;
}

.demo-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 32px;
    letter-spacing: 0.05em;
    color: #fff;
    line-height: 1;
}

.demo-desc {
    font-size: 14px;
    color: #555;
    line-height: 1.7;
    font-weight: 300;
}

/* Player */
.demo-player-wrap {
    margin-top: 8px;
    background: #f9f9f9;
    border: 1px solid #e0e0e0;
    padding: 16px;
}

.demo-player-controls {
    display: flex;
    align-items: center;
    gap: 16px;
}

.demo-play-btn {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #E8003D;
    border: none;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s;
}

.demo-play-btn:hover { background: #ff1a52; }

.demo-player-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.demo-player-right audio { width: 100%; accent-color: #E8003D; }

.demo-durata {
    font-size: 11px;
    color: #777;
    letter-spacing: 0.15em;
}

.demo-on-request {
    font-size: 12px;
    color: #555;
    padding: 12px;
    background: #f9f9f9;
    border: 1px solid #e0e0e0;
    letter-spacing: 0.1em;
}

/* Responsive */
@media (max-width: 900px) {
    .demo-row {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .demo-conduttore {
        display: flex;
        align-items: center;
        gap: 20px;
        text-align: left;
    }
    .demo-foto-conduttore,
    .demo-foto-placeholder {
        width: 80px;
        height: 80px;
        font-size: 28px;
        flex-shrink: 0;
        margin: 0;
    }
}

@media (max-width: 600px) {
    .demo-card-inner { grid-template-columns: 1fr; }
    .demo-cover-img, .demo-cover-placeholder { width: 100%; height: 200px; }
}


/* =============================================================
   RFS DYNAMIC BG — variabili CSS dal Customizer
   Aggiunto da rfs_dynamic_css() via wp_add_inline_style
   ============================================================= */

/* Selettori che leggono --rfs-bg, --rfs-overlay, --rfs-pos */
#hero,
#chi-siamo,
.section-header-bg,
.stats-row,
.radio-associate-header,
.radio-cta-strip,
.aderisci-hero,
.modulo-header,
.demo-page-hero,
.demo-cta-strip,
.contatti-img-sx,
.footer-rete-strip,
#primary-menu {
    background-image: var(--rfs-bg, none) !important;
    background-size: cover !important;
    background-position: var(--rfs-pos, center center) !important;
    background-repeat: no-repeat !important;
    position: relative;
}

/* Overlay scuro controllabile — usa pseudo-element ::before */
#hero::before,
#chi-siamo::before,
.section-header-bg::before,
.stats-row::before,
.radio-associate-header::before,
.radio-cta-strip::before,
.modulo-header::before,
.demo-page-hero::before,
.demo-cta-strip::before,
.contatti-img-sx::before,
.footer-rete-strip::before,
#primary-menu::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: rgba(0,0,0,var(--rfs-overlay, 0)) !important;
    pointer-events: none !important;
    z-index: 0 !important;
}

/* aderisci-hero usa ::after per non confliggere col ::before esistente */
.aderisci-hero::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: rgba(0,0,0,var(--rfs-overlay, 0)) !important;
    pointer-events: none !important;
    z-index: 0 !important;
}

/* Contenuto sopra l'overlay */
#hero > *,
#chi-siamo .container,
.section-header-bg > *,
.stats-row .container,
.radio-associate-header > *,
.radio-cta-strip .container,
.aderisci-hero .container,
.modulo-header > *,
.demo-page-hero .container,
.demo-cta-strip .container {
    position: relative !important;
    z-index: 1 !important;
}

/* modulo-wrap: nessun z-index per non creare stacking context che blocca i checkbox */

/* Menu mobile: fixed position richiede z-index specifico */
@media (max-width: 900px) {
    #primary-menu {
        background-attachment: scroll !important;
    }
    #primary-menu::before {
        position: fixed !important;
    }
}

/* .radio-cta-strip e .demo-cta-strip — stili base se non esistono */
.radio-cta-strip {
    padding: 100px 0;
    text-align: center;
}
.radio-cta-strip h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(40px, 5vw, 68px);
    margin-bottom: 20px;
}
.radio-cta-strip p {
    font-size: 17px;
    font-weight: 300;
    color: #555;
    max-width: 600px;
    margin: 0 auto 40px;
    line-height: 1.8;
}
.demo-cta-strip {
    background: #f4f4f4;
    padding: 80px 0;
    margin-top: 80px;
    text-align: center;
    border-top: 1px solid #e0e0e0;
}

/* ── PARTNER STRIP ─────────────────────────────────────── */
.partner-strip {
    background: #f0f0f0;
    border-top: 1px solid #e0e0e0;
    border-bottom: 1px solid #e0e0e0;
    padding: 60px 0;
    overflow: hidden;
}
.partner-title {
    text-align: center;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    letter-spacing: .15em;
    color: #777;
    text-transform: uppercase;
    margin-bottom: 32px;
}
.partner-track-wrap {
    overflow: hidden;
    position: relative;
    /* fade ai bordi */
    mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}
.partner-track {
    display: flex;
    align-items: center;
    gap: 60px;
    width: max-content;
    animation: partnerScroll 30s linear infinite;
}
.partner-track:hover { animation-play-state: paused; }
.partner-item {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.partner-item img {
    height: 110px;
    width: auto;
    max-width: 240px;
    object-fit: contain;
    filter: grayscale(100%) brightness(0.6);
    transition: filter 0.3s;
}
.partner-item img:hover,
.partner-item a:hover img { filter: grayscale(0%) brightness(1); }
.partner-item a { display: flex; }

@keyframes partnerScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}





/* ============================================
   CORREZIONI TEMA BIANCO — v4 FINALE
   ============================================ */

/* ── COLORE UNICO FLUORESCENTE — #FF0040 per tutto ── */
:root { --fl: #FF0040; --fl-dark: #CC0033; }

/* ── BANDA SCORRIMENTO ── */
.marquee-wrap { 
    background: #FF0040 !important; 
    opacity: 1 !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}
.marquee-inner {
    opacity: 1 !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}
.marquee-item { color: #fff !important; font-weight: 700 !important; opacity: 1 !important; text-shadow: none !important; }
.marquee-dot { color: rgba(255,255,255,0.5) !important; }

/* ── TUTTI I PULSANTI — stesso rosso, stessa struttura ── */
.btn-primary,
.hero-cta a,
.hero-cta a:first-child,
.hero-cta a:last-child,
.newsletter-form button,
#contact-submit,
button[type=submit],
input[type=submit],
.btn-accetto {
    background: #FF0040 !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    padding: 16px 38px !important;
    display: inline-block !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border: none !important;
    cursor: pointer !important;
    transition: background 0.25s, transform 0.2s !important;
}
.btn-primary:hover,
.hero-cta a:hover,
.newsletter-form button:hover,
#contact-submit:hover,
button[type=submit]:hover {
    background: #CC0033 !important;
    box-shadow: none !important;
    transform: translateY(-2px);
    color: #fff !important;
}

/* ── SECTION LABEL piccoli — BIANCHI su immagine ── */
#hero .section-label,
#chi-siamo .section-label,
.radio-associate-header .section-label,
.aderisci-hero .section-label,
.modulo-header .section-label,
.demo-page-hero .section-label,
.demo-cta-strip .section-label,
.radio-cta-strip .section-label { color: #fff !important; }

/* Section label su sfondo bianco — BIANCO con sfondo rosso pill ── */
#servizi .section-label,
#chi-siamo .section-label,
#come-lavoriamo .section-label,
#testimonianze .section-label,
#contatti .section-label {
    color: #fff !important;
    background: #FF0040;
    padding: 4px 12px !important;
    display: inline-block !important;
}

/* ── TITOLI su immagine — bianchi ── */
#hero h1, #hero h2, #hero p, #hero span,
#chi-siamo h2, #chi-siamo p, #chi-siamo strong,
.radio-associate-header h1, .radio-associate-header p,
.radio-cta-strip h2, .radio-cta-strip p,
.aderisci-hero h1, .aderisci-hero p,
.modulo-header h1, .modulo-header p,
.demo-page-hero h1, .demo-page-hero p,
.demo-cta-strip h2, .demo-cta-strip p { color: #fff !important; }

/* ── TITOLI su sfondo bianco — neri ── */
#servizi h2, #come-lavoriamo h2,
#testimonianze h2, #contatti h2 { color: #111 !important; }

/* ── NAV ── */
.nav-logo { color: #111 !important; }
#primary-menu li a { color: #333 !important; }
#primary-menu li a:hover,
#primary-menu li.current-menu-item > a { color: #FF0040 !important; }

/* ── NUMERI BOX ── */
.service-num, .step-num, .stat-num { color: #FF0040 !important; font-weight: 900 !important; }

/* ── SERVICE CARD testi ── */
.service-name { color: #111 !important; font-weight: 700 !important; }
.service-desc { color: #444 !important; }

/* ── TESTIMONIAL firma — grigia ── */
.test-role, .test-author-role { color: #666 !important; }
.test-author-name, .test-name { color: #111 !important; }

/* ── PRIVACY link — rosso ── */
.privacy-check a,
.newsletter-form .privacy-note a,
label[for*="privacy"] a,
label[for*="termini"] a { color: #FF0040 !important; }

/* ── FOOTER ── */
.footer-col h4 { color: #111 !important; }
.footer-col ul li a { color: #555 !important; }
.footer-col ul li a:hover,
.footer-bottom strong,
.footer-bottom a:hover { color: #FF0040 !important; }

/* ── HERO badge/claim ── */
.hero-badge { color: #fff !important; border-color: rgba(255,255,255,0.4) !important; }
.hero-claim, .hero-subtitle { color: #fff !important; }

/* ── NITIDEZZA BANDA SCORREVOLE ── */
.marquee-wrap {
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}
.marquee-inner {
    will-change: transform;
    /* NO transform override — lascia animare marqueeAnim */
}
.marquee-item {
    -webkit-font-smoothing: antialiased !important;
    font-smooth: always !important;
}

/* ── ADMIN ADESIONI — elimina giallo ── */
.rfs-adesioni-wrap .tab-btn.active,
.rfs-adesioni-wrap .stato-badge,
#rfs-adesioni [style*="FF0040"],
#rfs-adesioni [style*="gold"] {
    background: #FF0040 !important;
    color: #fff !important;
    border-color: #FF0040 !important;
}


/* ── NUMERI BOX — rosso visibile ── */
.service-num, .step-num {
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 48px !important;
    color: #FF0040 !important;
    line-height: 1 !important;
    margin-bottom: 16px !important;
    display: block !important;
    position: static !important;
    font-weight: 900 !important;
}
.stat-num {
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 72px !important;
    color: #FF0040 !important;
    line-height: 1 !important;
    display: block !important;
    position: static !important;
}

/* =============================================
   PAGINA PRIVACY POLICY
   ============================================= */
.privacy-page { padding-bottom: 80px; }

.privacy-hero {
    background: #111;
    padding: 140px 0 60px;
    text-align: center;
    border-bottom: 3px solid var(--red);
    margin-top: -1px;
}
.privacy-hero h1 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(48px,6vw,80px); color: #fff; line-height: 1; margin: 16px 0; }
.privacy-hero h1 span { color: var(--red); }
.privacy-hero p { color: #aaa; font-size: 15px; max-width: 560px; margin: 0 auto; }
.privacy-hero .section-label { color: var(--red); }

.privacy-content { max-width: 820px; margin: 60px auto 0; }
.privacy-update { background: #f4f4f4; border-left: 4px solid var(--red); padding: 12px 20px; margin-bottom: 40px; font-size: 13px; color: #555; }
.privacy-content h2 { font-family: 'Bebas Neue', sans-serif; font-size: 26px; letter-spacing: 0.06em; color: #111; margin: 48px 0 16px; padding-bottom: 10px; border-bottom: 1px solid #e0e0e0; }
.privacy-content h3 { font-size: 16px; font-weight: 700; color: #111; margin: 28px 0 12px; }
.privacy-content p { font-size: 15px; color: #444; line-height: 1.8; margin-bottom: 16px; }
.privacy-content ul { padding-left: 20px; margin-bottom: 16px; }
.privacy-content ul li { font-size: 15px; color: #444; line-height: 1.8; margin-bottom: 8px; }
.privacy-content a { color: var(--red); text-decoration: underline; }

.privacy-box { background: #f4f4f4; border-left: 4px solid var(--red); padding: 20px 24px; margin: 16px 0 28px; }
.privacy-box p { margin: 0; color: #333; }

.privacy-rights { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 20px 0; }
.privacy-right-item { background: #f4f4f4; padding: 14px 18px; font-size: 14px; color: #444; border-left: 3px solid var(--red); }
.privacy-right-item strong { color: #111; display: block; margin-bottom: 4px; }

/* Footer legal strip */
.footer-legal { background: #e8e8e8; border-top: 1px solid #ddd; padding: 10px 0; text-align: center; }
.footer-legal p { font-size: 11px; color: #777; margin: 0; letter-spacing: 0.03em; }

@media (max-width: 600px) {
    .privacy-rights { grid-template-columns: 1fr; }
    .privacy-hero { padding: 100px 0 40px; }
}
