/**
 * STELLARIS — 10 Temi Professionali per Ristoranti
 * Ogni tema definisce: colori, font, stile bottoni/cards/sezioni
 * Si applica con classe .theme-{nome} sul body o container
 */

/* ================================================
   VARIABILI BASE (theme-neutral)
   ================================================ */
:root {
    --section-py: 80px;
    --section-px: 24px;
    --container-max: 1140px;
    --card-radius: 12px;
    --btn-radius: 8px;
    --transition: .3s ease;
}

/* ================================================
   1. CLASSICO ELEGANTE
   Oro, legno scuro, serif. Per ristoranti di tradizione.
   ================================================ */
.theme-classico {
    --t-bg: #FDFBF7;
    --t-bg-alt: #F5F1EC;
    --t-bg-dark: #2D1B12;
    --t-bg-card: #FFFFFF;
    --t-text: #2D2D2D;
    --t-text-light: #7A7A7A;
    --t-text-on-dark: #F5F1EC;
    --t-accent: #C5A572;
    --t-accent-dark: #A68B5B;
    --t-accent-light: #E8DCC8;
    --t-primary: #722F37;
    --t-primary-dark: #5A1E24;
    --t-border: #E0DCD5;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'DM Sans', -apple-system, sans-serif;
    --t-font-accent: 'Lora', Georgia, serif;
    --btn-radius: 8px;
    --card-radius: 12px;
}

/* ================================================
   2. MODERNO MINIMAL
   Bianco pulito, sans-serif, monocromo con un tocco di colore.
   ================================================ */
.theme-moderno {
    --t-bg: #FFFFFF;
    --t-bg-alt: #F7F7F7;
    --t-bg-dark: #111111;
    --t-bg-card: #FFFFFF;
    --t-text: #1A1A1A;
    --t-text-light: #999999;
    --t-text-on-dark: #FFFFFF;
    --t-accent: #FF6B35;
    --t-accent-dark: #E55A28;
    --t-accent-light: #FFE8DE;
    --t-primary: #1A1A1A;
    --t-primary-dark: #000000;
    --t-border: #EEEEEE;
    --t-font-display: 'DM Sans', -apple-system, sans-serif;
    --t-font-body: 'DM Sans', -apple-system, sans-serif;
    --t-font-accent: 'DM Sans', -apple-system, sans-serif;
    --btn-radius: 0px;
    --card-radius: 0px;
}

/* ================================================
   3. RUSTICO TOSCANO
   Terracotta, texture calde, accogliente.
   ================================================ */
.theme-rustico {
    --t-bg: #FBF6F0;
    --t-bg-alt: #F0E8DB;
    --t-bg-dark: #3E2723;
    --t-bg-card: #FFFFFF;
    --t-text: #3E2723;
    --t-text-light: #8D6E63;
    --t-text-on-dark: #F0E8DB;
    --t-accent: #BF6D3A;
    --t-accent-dark: #A0562B;
    --t-accent-light: #F5DCC8;
    --t-primary: #5D4037;
    --t-primary-dark: #3E2723;
    --t-border: #D7C9B8;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'Lora', Georgia, serif;
    --t-font-accent: 'Lora', Georgia, serif;
    --btn-radius: 6px;
    --card-radius: 8px;
}

/* ================================================
   4. TRATTORIA VIVACE
   Colori vivi, energetico, allegro.
   ================================================ */
.theme-trattoria {
    --t-bg: #FFFDF7;
    --t-bg-alt: #FFF3E0;
    --t-bg-dark: #E65100;
    --t-bg-card: #FFFFFF;
    --t-text: #333333;
    --t-text-light: #888888;
    --t-text-on-dark: #FFFFFF;
    --t-accent: #FF8F00;
    --t-accent-dark: #EF6C00;
    --t-accent-light: #FFE0B2;
    --t-primary: #D84315;
    --t-primary-dark: #BF360C;
    --t-border: #FFE0B2;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'DM Sans', -apple-system, sans-serif;
    --t-font-accent: 'DM Sans', -apple-system, sans-serif;
    --btn-radius: 50px;
    --card-radius: 16px;
}

/* ================================================
   5. FINE DINING
   Scuro, sofisticato, minimalista di lusso.
   ================================================ */
.theme-finedining {
    --t-bg: #0D0D0D;
    --t-bg-alt: #1A1A1A;
    --t-bg-dark: #000000;
    --t-bg-card: #1A1A1A;
    --t-text: #E0E0E0;
    --t-text-light: #888888;
    --t-text-on-dark: #FFFFFF;
    --t-accent: #C9A96E;
    --t-accent-dark: #A68B5B;
    --t-accent-light: #2A2318;
    --t-primary: #C9A96E;
    --t-primary-dark: #A68B5B;
    --t-border: #333333;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'DM Sans', -apple-system, sans-serif;
    --t-font-accent: 'Lora', Georgia, serif;
    --btn-radius: 0px;
    --card-radius: 4px;
}

/* ================================================
   6. MEDITERRANEO
   Blu, bianco, fresco. Pesce e mare.
   ================================================ */
.theme-mediterraneo {
    --t-bg: #FFFFFF;
    --t-bg-alt: #EBF5FB;
    --t-bg-dark: #1B4965;
    --t-bg-card: #FFFFFF;
    --t-text: #1B4965;
    --t-text-light: #5F8CA8;
    --t-text-on-dark: #FFFFFF;
    --t-accent: #CAA04E;
    --t-accent-dark: #B08A3A;
    --t-accent-light: #FFF4DC;
    --t-primary: #1B7EA6;
    --t-primary-dark: #145F80;
    --t-border: #D4E8F0;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'DM Sans', -apple-system, sans-serif;
    --t-font-accent: 'Lora', Georgia, serif;
    --btn-radius: 8px;
    --card-radius: 12px;
}

/* ================================================
   7. BISTROT PARIGINO
   Crema, verde scuro, classico chic.
   ================================================ */
.theme-bistrot {
    --t-bg: #FAF8F3;
    --t-bg-alt: #EDE8DD;
    --t-bg-dark: #1B3A2D;
    --t-bg-card: #FFFFFF;
    --t-text: #2C3E2D;
    --t-text-light: #6B8068;
    --t-text-on-dark: #FAF8F3;
    --t-accent: #B8860B;
    --t-accent-dark: #9A7209;
    --t-accent-light: #F5ECD0;
    --t-primary: #2D5A3F;
    --t-primary-dark: #1B3A2D;
    --t-border: #D5CEBC;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'Lora', Georgia, serif;
    --t-font-accent: 'Lora', Georgia, serif;
    --btn-radius: 4px;
    --card-radius: 8px;
}

/* ================================================
   8. OSTERIA ROMANA
   Terracotta, oliva, tradizione laziale.
   ================================================ */
.theme-osteria {
    --t-bg: #FDF8F2;
    --t-bg-alt: #F2EAE0;
    --t-bg-dark: #4A3228;
    --t-bg-card: #FFFFFF;
    --t-text: #3D2B1F;
    --t-text-light: #8B7355;
    --t-text-on-dark: #F2EAE0;
    --t-accent: #C17817;
    --t-accent-dark: #A36512;
    --t-accent-light: #F8E8CC;
    --t-primary: #6B7C3A;
    --t-primary-dark: #4F5D2A;
    --t-border: #DDD2C0;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'DM Sans', -apple-system, sans-serif;
    --t-font-accent: 'Lora', Georgia, serif;
    --btn-radius: 6px;
    --card-radius: 10px;
}

/* ================================================
   9. PIZZERIA NAPOLETANA
   Rosso, bianco, deciso, popolare.
   ================================================ */
.theme-pizzeria {
    --t-bg: #FFFAFA;
    --t-bg-alt: #FFF0F0;
    --t-bg-dark: #B71C1C;
    --t-bg-card: #FFFFFF;
    --t-text: #333333;
    --t-text-light: #888888;
    --t-text-on-dark: #FFFFFF;
    --t-accent: #FFC107;
    --t-accent-dark: #FFA000;
    --t-accent-light: #FFF9E0;
    --t-primary: #C62828;
    --t-primary-dark: #B71C1C;
    --t-border: #FFCDD2;
    --t-font-display: 'DM Sans', -apple-system, sans-serif;
    --t-font-body: 'DM Sans', -apple-system, sans-serif;
    --t-font-accent: 'DM Sans', -apple-system, sans-serif;
    --btn-radius: 50px;
    --card-radius: 16px;
}

/* ================================================
   10. WINE BAR
   Borgogna profondo, rame, intimo.
   ================================================ */
.theme-winebar {
    --t-bg: #1C1118;
    --t-bg-alt: #261820;
    --t-bg-dark: #0D080B;
    --t-bg-card: #261820;
    --t-text: #E8D5C4;
    --t-text-light: #A08070;
    --t-text-on-dark: #F5EBE0;
    --t-accent: #C97D4A;
    --t-accent-dark: #A86838;
    --t-accent-light: #3D2A20;
    --t-primary: #8B2252;
    --t-primary-dark: #6D1A40;
    --t-border: #3D2A2A;
    --t-font-display: 'Playfair Display', Georgia, serif;
    --t-font-body: 'Lora', Georgia, serif;
    --t-font-accent: 'Lora', Georgia, serif;
    --btn-radius: 4px;
    --card-radius: 8px;
}

/* ================================================
   SEZIONI COMUNI — si adattano al tema attivo
   ================================================ */

/* Hero */
.s-hero{position:relative;min-height:90vh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--t-bg-dark);color:var(--t-text-on-dark);overflow:hidden;}
.s-hero .s-hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:1;}
.s-hero .s-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;}
.s-hero .s-hero-content{position:relative;z-index:2;max-width:700px;padding:0 24px;}
.s-hero .s-hero-label{font-family:var(--t-font-accent);font-size:14px;letter-spacing:3px;text-transform:uppercase;color:var(--t-accent);margin-bottom:16px;}
.s-hero h1{font-family:var(--t-font-display);font-size:clamp(36px,6vw,64px);font-weight:700;line-height:1.1;margin:0 0 20px;}
.s-hero p{font-family:var(--t-font-accent);font-size:18px;line-height:1.7;opacity:.9;margin-bottom:32px;}
.s-hero .s-hero-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* Buttons */
.s-btn{display:inline-block;padding:14px 32px;font-family:var(--t-font-body);font-size:15px;font-weight:600;text-decoration:none;border-radius:var(--btn-radius);transition:var(--transition);cursor:pointer;border:none;letter-spacing:.5px;}
.s-btn-primary{background:var(--t-accent);color:var(--t-bg-dark);}
.s-btn-primary:hover{background:var(--t-accent-dark);transform:translateY(-2px);}
.s-btn-outline{background:transparent;color:var(--t-text-on-dark);border:2px solid var(--t-text-on-dark);}
.s-btn-outline:hover{background:var(--t-text-on-dark);color:var(--t-bg-dark);}
.s-btn-primary-page{background:var(--t-primary);color:#fff;}.s-btn-primary-page:hover{background:var(--t-primary-dark);}

/* Section base */
.s-section{padding:var(--section-py) var(--section-px);background:var(--t-bg);}
.s-section-alt{background:var(--t-bg-alt);}
.s-section-dark{background:var(--t-bg-dark);color:var(--t-text-on-dark);}
.s-container{max-width:var(--container-max);margin:0 auto;}

/* Section header */
.s-header{text-align:center;margin-bottom:48px;}
.s-header .s-label{font-family:var(--t-font-accent);font-size:13px;letter-spacing:3px;text-transform:uppercase;color:var(--t-accent);margin-bottom:10px;}
.s-header h2{font-family:var(--t-font-display);font-size:clamp(28px,4vw,42px);font-weight:600;color:inherit;margin:0 0 16px;line-height:1.2;}
.s-header .s-divider{width:60px;height:3px;background:var(--t-accent);margin:0 auto;border-radius:2px;}
.s-header p{font-family:var(--t-font-accent);color:var(--t-text-light);font-size:16px;max-width:600px;margin:16px auto 0;line-height:1.7;}

/* Cards */
.s-card{background:var(--t-bg-card);border-radius:var(--card-radius);border:1px solid var(--t-border);padding:32px;transition:var(--transition);}
.s-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.08);}
.s-card .s-card-icon{font-size:36px;margin-bottom:16px;}
.s-card h3{font-family:var(--t-font-display);font-size:20px;font-weight:600;margin:0 0 10px;color:var(--t-text);}
.s-card p{font-family:var(--t-font-body);font-size:15px;color:var(--t-text-light);line-height:1.7;margin:0;}

/* Grid layouts */
.s-grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}
.s-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:32px;align-items:center;}
.s-grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;}

/* CTA Banner */
.s-cta{background:var(--t-bg-dark);color:var(--t-text-on-dark);text-align:center;padding:var(--section-py) var(--section-px);}
.s-cta h2{font-family:var(--t-font-display);font-size:clamp(24px,4vw,36px);font-weight:600;margin:0 0 12px;}
.s-cta p{font-family:var(--t-font-accent);font-size:17px;opacity:.85;margin-bottom:28px;}

/* Menu item */
.s-menu-item{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--t-border);}
.s-menu-item .s-menu-name{font-family:var(--t-font-display);font-size:17px;font-weight:600;color:var(--t-text);}
.s-menu-item .s-menu-desc{font-family:var(--t-font-body);font-size:13px;color:var(--t-text-light);margin-top:2px;}
.s-menu-item .s-menu-price{font-family:var(--t-font-display);font-size:17px;font-weight:700;color:var(--t-primary);white-space:nowrap;margin-left:16px;}

/* Text + Image */
.s-text-img{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.s-text-img img{width:100%;border-radius:var(--card-radius);object-fit:cover;max-height:500px;}
.s-text-img .s-content h2{font-family:var(--t-font-display);font-size:32px;font-weight:600;margin:0 0 16px;line-height:1.2;}
.s-text-img .s-content p{font-family:var(--t-font-accent);font-size:16px;color:var(--t-text-light);line-height:1.8;margin-bottom:24px;}

/* Gallery */
.s-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;}
.s-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--card-radius);transition:var(--transition);}
.s-gallery img:hover{transform:scale(1.03);}

/* Stats / Numbers */
.s-stat{text-align:center;padding:24px;}
.s-stat .s-stat-num{font-family:var(--t-font-display);font-size:42px;font-weight:700;color:var(--t-accent);line-height:1;}
.s-stat .s-stat-label{font-family:var(--t-font-body);font-size:14px;color:var(--t-text-light);margin-top:8px;text-transform:uppercase;letter-spacing:1px;}

/* Testimonial */
.s-testimonial{background:var(--t-bg-card);border-radius:var(--card-radius);padding:32px;border:1px solid var(--t-border);text-align:center;}
.s-testimonial .s-quote{font-family:var(--t-font-accent);font-size:17px;font-style:italic;line-height:1.8;color:var(--t-text);margin:0 0 16px;position:relative;padding-top:24px;}
.s-testimonial .s-quote::before{content:'"';font-family:var(--t-font-display);font-size:48px;color:var(--t-accent);position:absolute;top:-8px;left:50%;transform:translateX(-50%);line-height:1;}
.s-testimonial .s-author{font-family:var(--t-font-body);font-size:14px;font-weight:600;color:var(--t-accent);}
.s-testimonial .s-stars{color:var(--t-accent);font-size:16px;letter-spacing:2px;margin-bottom:8px;}

/* Contact */
.s-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.s-contact-item{display:flex;gap:16px;margin-bottom:20px;}
.s-contact-item .s-icon{font-size:24px;color:var(--t-accent);flex-shrink:0;width:40px;text-align:center;}
.s-contact-item strong{display:block;font-family:var(--t-font-display);font-size:15px;margin-bottom:2px;}
.s-contact-item span,.s-contact-item a{font-family:var(--t-font-body);font-size:14px;color:var(--t-text-light);}
.s-contact-item a:hover{color:var(--t-accent);}

/* Separator */
.s-sep{text-align:center;padding:24px 0;}
.s-sep-line{border:none;border-top:1px solid var(--t-border);margin:0 auto;max-width:200px;}
.s-sep-dots{color:var(--t-accent);font-size:18px;letter-spacing:12px;}

/* Full Image Section */
.s-fullimg{position:relative;min-height:60vh;background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:center;justify-content:center;text-align:center;}
.s-fullimg-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.45);z-index:0;}
.s-fullimg-content{position:relative;z-index:1;padding:60px 24px;max-width:700px;}
.s-fullimg-content h2{font-family:var(--t-font-display);font-size:clamp(28px,5vw,48px);font-weight:700;color:#fff;margin:0 0 12px;line-height:1.1;text-shadow:0 2px 12px rgba(0,0,0,.3);}
.s-fullimg-content p{font-family:var(--t-font-accent);font-size:18px;color:rgba(255,255,255,.85);line-height:1.7;margin:0;text-shadow:0 1px 6px rgba(0,0,0,.3);}

/* Slider / Carousel — max 4 visibili, auto-scroll */
.s-slider-wrap{position:relative;overflow:hidden;}
.s-slider{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:4px 0 16px;scrollbar-width:none;}
.s-slider::-webkit-scrollbar{display:none;}
.s-slider-item{flex:0 0 calc(25% - 12px);scroll-snap-align:start;border-radius:var(--card-radius);overflow:hidden;background:var(--t-bg-card);border:1px solid var(--t-border);transition:transform .3s,box-shadow .3s;}
.s-slider-item:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.s-slider-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.s-slider-caption{padding:12px 16px;font-family:var(--t-font-body);font-size:14px;font-weight:500;color:var(--t-text);text-align:center;}
.s-slider-btn{position:absolute;top:50%;transform:translateY(-60%);z-index:5;width:44px;height:44px;border-radius:50%;background:var(--t-bg-card);border:1px solid var(--t-border);color:var(--t-text);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.12);transition:all .2s;opacity:.9;}
.s-slider-btn:hover{background:var(--t-accent);color:#fff;border-color:var(--t-accent);opacity:1;}
.s-slider-prev{left:8px;}
.s-slider-next{right:8px;}

/* Background overlay per editor */
.s-bg-overlay{position:absolute;inset:0;pointer-events:none;z-index:0;}

/* Responsive themes */
@media(max-width:1024px){
    .s-text-img{grid-template-columns:1fr;gap:24px;}
    .s-contact-grid{grid-template-columns:1fr;}
    .s-grid-3{grid-template-columns:repeat(2,1fr);}
    .s-grid-4{grid-template-columns:repeat(2,1fr);}
    .s-slider-item{flex:0 0 calc(33.333% - 11px);}
}

/* === ACCORDION / FAQ === */
.s-accordion{display:flex;flex-direction:column;gap:8px;}
.s-accordion-item{background:var(--t-bg-card,#fff);border:1px solid var(--t-border,#eee);border-radius:var(--card-radius,12px);overflow:hidden;transition:border-color .2s;}
.s-accordion-item[open]{border-color:var(--t-accent,#c8a97e);}
.s-accordion-item summary{padding:16px 20px;font-family:var(--t-font-display);font-size:16px;font-weight:600;color:var(--t-text);cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;transition:background .2s;}
.s-accordion-item summary::-webkit-details-marker{display:none;}
.s-accordion-item summary::after{content:'+';font-size:20px;font-weight:300;color:var(--t-accent,#c8a97e);transition:transform .3s;flex-shrink:0;margin-left:12px;}
.s-accordion-item[open] summary::after{content:'\2212';transform:rotate(180deg);}
.s-accordion-item summary:hover{background:var(--t-bg-alt,#f8f7f5);}
.s-accordion-body{padding:0 20px 16px;}
.s-accordion-body p{font-family:var(--t-font-body);font-size:15px;color:var(--t-text-light);line-height:1.8;margin:0;}

/* === COUNTER ANIMATO (scroll-triggered) === */
.s-stat{text-align:center;padding:20px 0;}
.s-stat-num{font-family:var(--t-font-display);font-size:clamp(36px,5vw,52px);font-weight:700;color:var(--t-accent,#c8a97e);line-height:1;margin-bottom:8px;}
.s-stat-label{font-family:var(--t-font-body);font-size:14px;color:var(--t-text-light,#888);text-transform:uppercase;letter-spacing:1px;}

/* === ANIMAZIONI INGRESSO SEZIONI === */
.s-animate{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.s-animate.s-visible{opacity:1;transform:translateY(0);}
.s-animate-delay-1{transition-delay:.1s;}
.s-animate-delay-2{transition-delay:.2s;}
.s-animate-delay-3{transition-delay:.3s;}

/* === LAZY LOADING SKELETON === */
.s-img-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%);background-size:200% 100%;animation:s-skeleton-pulse 1.5s ease-in-out infinite;border-radius:var(--card-radius,12px);}
@keyframes s-skeleton-pulse{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

/* === SMOOTH SCROLL === */
html{scroll-behavior:smooth;}

/* === MENU INTERATTIVO === */
.s-menu-live-item{transition:opacity .3s,transform .3s;}
.s-menu-filter-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.08);}

/* === BOOKING FORM INLINE === */
.s-booking-form input:focus,.s-booking-form select:focus,.s-booking-form textarea:focus{
    border-color:var(--t-accent,#c8a97e) !important;outline:none;
}

/* === LABEL (reusable) === */
.s-label{font-family:var(--t-font-accent,serif);font-size:13px;letter-spacing:3px;text-transform:uppercase;color:var(--t-accent,#c8a97e);text-align:center;}

/* === RESPONSIVE nuovi template === */
@media(max-width:768px){
    .s-hero{min-height:70vh;}
    .s-hero-content h1{font-size:clamp(28px,8vw,40px);}
    .s-hero-content p{font-size:15px;}
    .s-hero-btns{flex-direction:column;align-items:center;gap:12px;}
    .s-hero-btns .s-btn{width:100%;max-width:280px;text-align:center;}
    .s-section{padding:48px 0;}
    .s-container{padding:0 16px;}
    .s-header h2{font-size:clamp(22px,6vw,28px);}
    .s-grid-3{grid-template-columns:1fr;}
    .s-grid-4{grid-template-columns:1fr 1fr;}
    .s-text-img img{max-height:300px;object-fit:cover;border-radius:var(--card-radius);}
    .s-card{padding:24px 16px;}
    .s-gallery{grid-template-columns:repeat(2,1fr);gap:8px;}
    .s-fullimg{min-height:50vh;}
    .s-fullimg-content{padding:40px 16px;}
    .s-fullimg-content h2{font-size:clamp(24px,6vw,32px);}
    .s-fullimg-content p{font-size:15px;}
    .s-slider-item{flex:0 0 calc(50% - 8px);}
    .s-slider-btn{width:36px;height:36px;font-size:18px;}
    .s-slider-prev{left:4px;}
    .s-slider-next{right:4px;}
    .s-menu-item{padding:12px 0;}
    .s-cta{padding:40px 0;}
    .s-cta h2{font-size:clamp(22px,5vw,28px);}
    .s-stat .s-stat-num{font-size:32px;}
    .s-testimonial{padding:24px 16px;}
    /* Nuovi template responsive */
    .s-text-img{grid-template-columns:1fr;}
    .s-text-img img{order:-1;max-height:300px;}
    .s-contact-grid{grid-template-columns:1fr;}
    .s-contact-grid iframe{height:300px;}
    .s-accordion-item summary{font-size:15px;padding:14px 16px;}
    .s-stat-num{font-size:clamp(28px,8vw,40px);}
    /* Due colonne inline → stack */
    [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important;}
    /* Eventi card: flex → stack */
    .s-card[style*="display:flex"]{flex-direction:column;}
    .s-card[style*="display:flex"] [style*="width:70px"]{width:auto;display:flex;gap:8px;align-items:center;}
    /* Mappa grande → ridotta */
    section[style*="height:450px"]{height:350px !important;}
    /* Citazione grande */
    blockquote[style*="clamp"]{font-size:clamp(20px,5vw,28px) !important;}
    /* WhatsApp pulsante: meno prominente */
    .whatsapp-float{width:48px !important;height:48px !important;bottom:16px !important;right:16px !important;}
}

@media(max-width:420px){
    .s-hero{min-height:60vh;}
    .s-section{padding:32px 0;}
    .s-container{padding:0 12px;}
    .s-grid-4{grid-template-columns:1fr;}
    .s-gallery{grid-template-columns:1fr;}
    .s-slider-item{flex:0 0 100%;}
    .s-slider-btn{display:none;}
    .s-accordion-item summary{font-size:14px;padding:12px 14px;}
    .s-accordion-body{padding:0 14px 14px;}
    /* Instagram griglia 2 colonne */
    [style*="grid-template-columns:repeat(3,1fr)"]{grid-template-columns:repeat(2,1fr) !important;}
}

/* === ACCESSIBILITY FOCUS STYLES per componenti tema === */
.s-btn:focus-visible{outline:3px solid var(--t-accent,#c8a97e);outline-offset:3px;}
.s-accordion-item summary:focus-visible{outline:3px solid var(--t-accent,#c8a97e);outline-offset:-3px;border-radius:var(--card-radius,12px);}
.s-menu-filter-btn:focus-visible{outline:3px solid var(--t-accent,#c8a97e);outline-offset:2px;}
.s-slider-btn:focus-visible{outline:3px solid var(--t-accent,#c8a97e);outline-offset:2px;}

/* === REDUCED MOTION — rispetta preferenze utente === */
@media(prefers-reduced-motion:reduce){
    .s-animate{opacity:1 !important;transform:none !important;transition:none !important;}
    .s-slider{scroll-behavior:auto;}
    .s-card:hover{transform:none;}
    .s-btn:hover{transform:none;}
    .s-slider-item:hover{transform:none;}
}

/* === DARK MODE per componenti tema === */
html.dark-mode .s-section{background:#1a1a1a;}
html.dark-mode .s-section-alt{background:#222;}
html.dark-mode .s-section-dark{background:#111;}
html.dark-mode .s-card{background:#222;border-color:#333;color:#ddd;}
html.dark-mode .s-card h3{color:#eee;}
html.dark-mode .s-card p{color:#999;}
html.dark-mode .s-header h2{color:#eee;}
html.dark-mode .s-menu-item{border-color:#333;}
html.dark-mode .s-menu-item .s-menu-name{color:#eee;}
html.dark-mode .s-testimonial{background:#222;border-color:#333;}
html.dark-mode .s-contact-item span,html.dark-mode .s-contact-item a{color:#999;}
html.dark-mode .s-accordion-item{background:#222;border-color:#333;}
html.dark-mode .s-accordion-item summary{color:#eee;}
html.dark-mode .s-accordion-body p{color:#999;}
html.dark-mode hr{border-color:#333;}

/* === VARIANTI ANIMAZIONE INGRESSO === */
.s-animate-slide-up{opacity:0;transform:translateY(40px);transition:opacity .6s ease,transform .6s ease;}
.s-animate-slide-up.s-visible{opacity:1;transform:translateY(0);}
.s-animate-slide-left{opacity:0;transform:translateX(-40px);transition:opacity .6s ease,transform .6s ease;}
.s-animate-slide-left.s-visible{opacity:1;transform:translateX(0);}
.s-animate-zoom{opacity:0;transform:scale(.92);transition:opacity .6s ease,transform .6s ease;}
.s-animate-zoom.s-visible{opacity:1;transform:scale(1);}
.s-animate-none{opacity:1 !important;transform:none !important;transition:none !important;}
