/* ======================================== RESET & BASE ======================================== */ 

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%!important;min-height:100vh!important;margin:0!important;padding:0!important;overflow-x:hidden!important;}
html{font-size:16px;scroll-behavior:smooth;background:#cda434!important;}
body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;font-size:1rem;line-height:1.6;color:#1a1a1a;background:#fff!important;-webkit-font-smoothing:antialiased;display:flex!important;flex-direction:column!important;}
img{max-width:100%;height:auto;display:block;}
a{color:#0057b8;text-decoration:none;transition:color .3s ease;}
a:hover{color:#004494;}
h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3;margin-bottom:1rem;color:#1a1a1a;}
h1{font-size:2.25rem;}
h2{font-size:1.875rem;}
h3{font-size:1.5rem;}
p{margin-bottom:1rem;}
ul,ol{margin-bottom:1rem;padding-left:1.5rem;}
#sp-footer{margin-bottom:0!important;padding-bottom:0!important;}
#sp-footer+*{display:none!important;}
body.site { background: #ffffff; }

/* ======================================== TOP BAR & SEARCH ======================================== */
#sp-top-bar { background: #cda434 !important; color: #ffffff !important; display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 10px 15px !important; min-height: 40px !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 10000 !important; transition: top 0.3s ease; }
#sp-top-bar .container { display: flex !important; align-items: center !important; justify-content: space-between !important; max-width: 1200px !important; margin: 0 auto !important; height: 100% !important; }
#sp-top1, #sp-top2 { display: flex !important; align-items: center !important; flex: 1 !important; }
#sp-top2 { display: flex !important; justify-content: flex-end !important; align-items: center !important; flex: 1 !important; }
body.scrolled #sp-top-bar { top: -40px !important; }

/* ======================================== ICONE SOCIAL & SIMBOLI - DEFINITIVO ======================================== */
@font-face { font-family: 'Font Awesome 7 Brands'; src: url('https://www.torinofinestre.it/sofia/assets/webfonts/fa-brands-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Font Awesome 7 Free'; src: url('https://www.torinofinestre.it/sofia/assets/webfonts/fa-solid-900.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }

/* 1. REGOLA UNIVERSALE PER TUTTE LE ICONE (Social, Telefono, Pin, Stelle) */
.fa, .fas, .far, .fab, .fa-solid, .fa-brands, [class^="fa-"], [class*=" fa-"] {
    display: inline-block !important;
    font-style: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
    font-family: 'Font Awesome 7 Free' !important; /* Default su Solid per icone generiche */
    font-weight: 900 !important;
}

/* 2. FILTRO SPECIFICO PER I BRANDS (Social Network) */
.fab, .fa-brands, .fa-facebook, .fa-facebook-f, .fa-instagram, .fa-youtube, .fa-twitter, .fa-whatsapp {
    font-family: 'Font Awesome 7 Brands' !important;
    font-weight: 400 !important;
}

/* 3. MAPPATURA CODICI (Per essere sicuri che i simboli appaiano) */
.fa-facebook::before, .fa-facebook-f::before { content: "\f39e" !important; }
.fa-instagram::before { content: "\f16d" !important; }
.fa-youtube::before { content: "\f167" !important; }
.fa-twitter::before, .fa-x-twitter::before { content: "\e61b" !important; font-family: 'Font Awesome 7 Brands' !important; }
.fa-whatsapp::before { content: "\f232" !important; }
.fa-phone::before { content: "\f095" !important; }
.fa-map-marker-alt::before, .fa-map-marker::before { content: "\f3c5" !important; } /* Pin Expo */
.fa-star::before { content: "\f005" !important; }

/* 4. STILE LISTA SOCIAL BARRA ORO */
.social-icons { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; gap: 25px; align-items: center; justify-content: flex-start; }
.social-icons li a { color: #ffffff !important; font-size: 32px !important; display: flex !important; align-items: center; text-decoration: none; transition: transform 0.3s; }
.social-icons li a:hover { color: #ff6b00 !important; transform: scale(1.2); }

/* 5. RESPONSIVE MOBILE */
@media (max-width: 768px) { 
  .social-icons { gap: 10px; justify-content: center; } 
  .social-icons li a { font-size: 18px !important; } 
  .social-icons li a, .social-icons li a span, .social-icons li a i { font-size: 18px !important; }
}
}
/* ======================================== MODULO SEARCH ======================================== */

.mod-finder { position: relative !important; margin-left: auto !important; margin-right: 0 !important; width: auto !important; min-width: 250px !important; max-width: 300px !important; }

/* Kill scritte "Cerca", label e spazi extra */
.mod-finder label, .mod-finder .finder-label, .mod-finder span.label, .mod-finder .filter-search span, .mod-finder br { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; }

.mod-finder .form-search, .mod-finder form { display: flex !important; width: 100% !important; height: 50px !important; background: #ffffff !important; border-radius: 4px !important; border: 1px solid #ffffff !important; margin: 0 !important; overflow: hidden !important; }

.mod-finder .form-control, .mod-finder input[type="text"], .mod-finder input[type="search"] { flex: 1 !important; border: none !important; background: #ffffff !important; color: #333333 !important; padding: 0 15px !important; height: 50px !important; font-size: 16px !important; box-shadow: none !important; line-height: 50px !important; }

.mod-finder button.btn, .mod-finder .btn-primary, .mod-finder button[type="submit"] { background: #ff6b00 !important; color: #ffffff !important; border: none !important; padding: 0 20px !important; height: 50px !important; cursor: pointer !important; font-weight: bold !important; display: flex !important; align-items: center !important; justify-content: center !important; border-radius: 0 !important; margin: 0 !important; }


/* ======================================== HEADER & LOGO (VERSIONE DEFINITIVA) ======================================== */ 

#sp-top-bar { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; height: 80px !important; z-index: 1040 !important; } 
#sp-header { position: fixed !important; top: 80px !important; left: 0 !important; right: 0 !important; z-index: 1030 !important; background: #ffffff !important; padding-bottom: 0 !important; margin-bottom: 0 !important; border-bottom: none !important; height: 60px !important; display: flex !important; align-items: center !important; } 

.sticky-header-placeholder { height: 140px !important; } 

/* --- FIX MENU ORIZZONTALE E ALLINEAMENTO --- */ 
#sp-header .container { max-width: 1200px !important; display: flex !important; align-items: center !important; height: 100% !important; } 
#sp-header .container > .row { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; justify-content: space-between !important; width: 100% !important; align-items: center !important; margin: 0 !important; padding: 0 !important; } 
#sp-header [class*="col-"] { flex: 0 0 auto !important; width: auto !important; max-width: none !important; padding: 0 !important; display: flex !important; align-items: center !important; } 
#sp-logo { flex: 0 0 auto !important; margin-right: 20px !important; display: flex !important; align-items: center !important; height: 60px !important; } 
#sp-menu { flex: 1 1 auto !important; display: flex !important; justify-content: flex-end !important; align-items: center !important; height: 60px !important; } 
.sp-megamenu-wrapper { width: 100% !important; display: flex !important; justify-content: flex-end !important; }

/* --- LE TUE RIGHE MAGICHE (DISTANZA LOGO GRANDE) --- */ 
#sp-section-1 { padding-top: 0 !important; margin-top: -55px !important; background: #ffffff !important; } 
#sp-section-1 .sp-column { padding-top: 0 !important; margin-top: 0 !important; } 
#sp-user1 .centro img, #sp-section-1 img { margin-top: 0 !important; padding-top: 0 !important; display: block !important; margin-left: auto !important; margin-right: auto !important; } 
.body-innerwrapper > section { margin-top: 0 !important; margin-bottom: 0 !important; } 

/* --- STILE LOGO E MENU (ORIZZONTALE FORZATO) --- */ 
.logo { display: flex !important; align-items: center !important; height: 60px !important; } 
.logo-image { max-height: 50px !important; width: auto !important; display: block !important; } 
.logo-image-phone { display: none !important; } 
.sp-megamenu-parent { display: flex !important; margin-left: auto !important; flex-direction: row !important; flex-wrap: nowrap !important; list-style: none !important; margin: 0 !important; padding: 0 !important; gap: 5px !important; align-items: center !important; height: 60px !important; } 
.sp-megamenu-parent > li { position: relative !important; display: inline-flex !important; align-items: center !important; white-space: nowrap !important; } 
.sp-megamenu-parent > li > a { display: block !important; padding: 0 10px !important; color: #775d18 !important; font-weight: 790 !important; font-size: 0.90rem !important; text-transform: uppercase !important; line-height: 60px !important; } 
.sp-megamenu-parent > li > a::after { content: '' !important; position: absolute !important; bottom: 10px !important; left: 50% !important; transform: translateX(-50%) !important; width: 0 !important; height: 3px !important; background: #ff6b00 !important; transition: width 0.2s ease !important; } 
.sp-megamenu-parent > li:hover > a::after, .sp-megamenu-parent > li.active > a::after { width: 80% !important; } 
.sp-megamenu-parent > li:hover > a, .sp-megamenu-parent > li.active > a { color: #0057b8 !important; } 

/* --- FIX SCROLL & MOBILE --- */ 
#offcanvas-toggler { display: none !important; } 
body.scrolled #sp-header { top: 0 !important; transition: top 0.3s ease !important; } 
body.scrolled #sp-top-bar { transform: translateY(-100%) !important; transition: transform 0.3s ease !important; }

/* ======================================== LOGO GRANDE CENTRATO ======================================== */
#sp-user1 .centro{text-align:center!important;}
#sp-user1 img{margin:0 auto!important;display:block!important;}
#sp-section-1 .sp-column{display:flex!important;flex-direction:column!important;align-items:center!important;}
#sp-section-1 .sp-module{width:100%!important;text-align:center!important;}

/* FIX COLONNE DESKTOP (4, 3, 2 COLONNE) */
@media (min-width: 992px) {
    #sp-main-body .row, #sp-main-body .container>.row { display: block !important; width: 100% !important; clear: both !important; }
    #sp-main-body [class*="col-md-"], #sp-main-body [class*="col-lg-"] { float: left !important; box-sizing: border-box !important; padding: 0 15px !important; min-height: 1px !important; }
    
    /* Forza le larghezze matematiche */
    #sp-main-body .col-md-3, #sp-main-body .col-lg-3 { width: 25% !important; }
    #sp-main-body .col-md-4, #sp-main-body .col-lg-4 { width: 33.3333% !important; }
    #sp-main-body .col-md-6, #sp-main-body .col-lg-6 { width: 50% !important; }
    #sp-main-body .col-md-8, #sp-main-body .col-lg-8 { width: 66.6666% !important; }
    #sp-main-body .col-md-12, #sp-main-body .col-lg-12 { width: 100% !important; float: none !important; clear: both !important; display: block !important; }
    
    /* Chiusura riga per evitare sovrapposizioni al footer */
    #sp-main-body .row::after, #sp-main-body .container>.row::after { content: "" !important; display: table !important; clear: both !important; }
}

/* RESET MOBILE */
@media (max-width: 991px) {
    #sp-main-body [class*="col-"] { width: 100% !important; float: none !important; margin-bottom: 20px !important; display: block !important; }
}

/* ======================================== MOBILE & OFFCANVAS ======================================== */
@media(max-width:991px){
  body #sp-top-bar, html body #sp-top-bar{display:flex!important;position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;height:60px!important;z-index:10000!important;background:#cda434!important;visibility:visible!important;opacity:1!important;transform:none!important;margin:0!important;padding:0!important;box-sizing:border-box!important;}
  body #sp-top-bar .container, html body #sp-top-bar .container{width:100%!important;max-width:100%!important;height:60px!important;padding:0 15px!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;}
  body #sp-header, html body #sp-header{display:flex!important;position:fixed!important;top:60px!important;left:0!important;right:0!important;width:100%!important;height:60px!important;z-index:9999!important;background:#fff!important;margin:0!important;padding:0!important;box-sizing:border-box!important;}
  body #sp-header .container, html body #sp-header .container{width:100%!important;max-width:100%!important;height:60px!important;padding:0 15px!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;position:relative!important;}
  body .sticky-header-placeholder, html body .sticky-header-placeholder{height:120px!important;min-height:120px!important;display:block!important;}
  body #sp-logo, html body #sp-logo{display:flex!important;align-items:center!important;height:60px!important;margin-right:auto!important;}
  body .logo-image-phone, html body .logo-image-phone{display:block!important;max-height:50px!important;width:auto!important;}

  /* HAMBURGER (SIMBOLO RIPRISTINATO) */
  body #offcanvas-toggler, html body #offcanvas-toggler{display:flex!important;visibility:visible!important;opacity:1!important;width:48px!important;height:48px!important;position:absolute!important;right:15px!important;top:50%!important;transform:translateY(-50%)!important;z-index:10001!important;background:#fff!important;border:2px solid #0057b8!important;border-radius:4px!important;align-items:center!important;justify-content:center!important;}
  body #offcanvas-toggler .burger-icon span{display:block!important;width:22px!important;height:3px!important;background:#775d18!important;margin:4px auto!important;}

  /* CHIUSURA (X RIPRISTINATA) */
  body .close-offcanvas, html body .close-offcanvas{position:absolute!important;top:10px!important;right:10px!important;width:48px!important;height:48px!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#000!important;font-size:32px!important;font-weight:bold!important;cursor:pointer!important;z-index:10005!important;background:#f5f5f5!important;border-radius:4px!important;}
  body .close-offcanvas:after{content:'\2715'!important;} /* Inserisce il simbolo X */

  body .sp-megamenu-wrapper, html body .sp-megamenu-wrapper{display:none!important;}
  body .offcanvas-overlay, html body .offcanvas-overlay{position:fixed!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background:rgba(0,0,0,0.5)!important;z-index:10002!important;opacity:0!important;visibility:hidden!important;transition:opacity 0.3s!important;display:block!important;}
  body .offcanvas-menu, html body .offcanvas-menu{position:fixed!important;top:0!important;right:0!important;width:300px!important;max-width:80%!important;height:100%!important;background:#fff!important;z-index:10003!important;transition:transform 0.3s!important;overflow-y:auto!important;display:block!important;visibility:visible!important;transform:translateX(100%)!important;box-shadow:-2px 0 10px rgba(0,0,0,0.3)!important;}
  body.offcanvas-active .offcanvas-menu, html body.offcanvas-active .offcanvas-menu{transform:translateX(0)!important;}
  body.offcanvas-active .offcanvas-overlay, html body.offcanvas-active .offcanvas-overlay{opacity:1!important;visibility:visible!important;}
  body.offcanvas-active, html body.offcanvas-active{overflow:hidden!important;}
  body .offcanvas-inner, html body .offcanvas-inner{padding:70px 20px 20px!important;}

  /* FIX TOUCH TARGET MENU & CONTENUTI */
  body .offcanvas-inner .sp-module ul > li > a, body .offcanvas-inner .sp-module ul > li > span{display:flex!important;align-items:center!important;min-height:52px!important;padding:12px 0!important;font-size:17px!important;font-weight:700!important;border-bottom:1px solid #eee!important;}
  body .offcanvas-inner .sp-module ul > li ul{margin-top:5px!important;margin-bottom:10px!important;}
  body .offcanvas-inner .sp-module ul > li ul li a{min-height:48px!important;padding-left:15px!important;}

  .sppb-addon-text-block a, .category-module a, .sp-page-builder a, .nav-porte a{display:inline-flex!important;align-items:center!important;min-height:52px!important;margin-bottom:15px!important;padding:10px 15px!important;font-weight:800!important;border:1px solid #cda434!important;border-radius:6px!important;text-decoration:none!important;background:#fdfdfd!important;}
}

/* FIX DESKTOP */
@media(min-width:992px){
  .sp-megamenu-parent .sp-dropdown{display:none!important;position:absolute!important;top:100%!important;left:0!important;z-index:9999!important;background:#fff!important;box-shadow:0 10px 30px rgba(0,0,0,0.1)!important;padding:10px 0!important;min-width:200px!important;}
  .sp-megamenu-parent>li:hover>.sp-dropdown{display:block!important;}
  .sp-megamenu-parent{display:flex!important;flex-wrap:nowrap!important;white-space:nowrap!important;}
  #offcanvas-toggler{display:none!important;}
}

/* ======================================== SECTIONS & MAIN BODY ======================================== */
section[id^="sp-section-"] { width: 100%; }

/* Layout Elastico per spingere il footer in fondo */
.body-innerwrapper { flex: 1 0 auto !important; display: flex !important; flex-direction: column !important; width: 100% !important; }

/* Corpo principale: unificato per evitare conflitti */
#sp-main-body { flex: 1 0 auto !important; padding: 2rem 0; min-height: 60vh; background-color: #ffffff !important; width: 100% !important; }

/* Sezioni specifiche */
#sp-section-1, #sp-section-1 .sp-column { background: #ffffff !important; padding: 2rem 0 1rem !important; }
#sp-section-2 { background: #ffffff; padding: 0.5rem 0; }
#sp-section-4 { background: #ffffff; padding: 3rem 0; }
#sp-bottom { background: #ffffff; color: #ffffff; padding: 3rem 0; }

/* ======================================== BREADCRUMBS ======================================== */ 
.mod-breadcrumbs { list-style: none; padding: 5px 15px !important; margin: 0 !important; display: flex; align-items: center; flex-wrap: wrap; font-size: 0.9rem; background: #e3bd54 !important; border-radius: 4px; }
.mod-breadcrumbs a { color: #003d82 !important; text-decoration: none; font-weight: 700 !important; transition: color 0.3s ease; }
.mod-breadcrumbs a:hover { color: #002651 !important; text-decoration: underline; }
.mod-breadcrumbs__item.active { color: #1a1a1a; font-weight: 700 !important; }
.breadcrumb-item + .breadcrumb-item::before { content: '›'; padding: 0 0.5rem; color: #666666; }
#sp-breadcrumb { padding: 0 !important; margin: 0 !important; background: transparent !important; }


/* ======================================== ARTICLE DETAILS ======================================== */ 
.article-details { background: #ffffff; padding: 2rem; border-radius: 8px; }
.page-header { margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 2px solid #e6f0fa; }
.article-info { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #e0e0e0; font-size: 0.9rem; color: #666666; }
[itemprop="articleBody"] { line-height: 1.8; }
[itemprop="articleBody"] img { max-width: 100%; height: auto; border-radius: 8px; margin: 1rem 0; }

/* ======================================== BUTTONS & BLOCKS ======================================== */ 

.btn, .button { display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; font-size: 0.95rem; font-weight: 600; border-radius: 6px; transition: all 0.3s ease; cursor: pointer; border: none; text-transform: uppercase; letter-spacing: 0.5px; }
.blocco, .bloccov {font-size:20px;font-weight:700;padding:20px 15px;margin-bottom:20px;text-align:center;border-radius:12px;transition:transform 0.3s ease,box-shadow 0.3s ease,background 0.3s ease;color:#fff;display:inline-block;width:100%;} 
.blocco {background:linear-gradient(135deg,#faca43,#c29002);box-shadow:0 8px 16px rgba(0,0,0,0.2);} 
.blocco:hover {transform:translateY(-5px);box-shadow:0 12px 24px rgba(0,0,0,0.3);background:linear-gradient(135deg,#ffb74d,#ff7043);color:#fff;} 
.bloccov {background:linear-gradient(135deg,#43a047,#2e7d32);box-shadow:0 8px 16px rgba(0,0,0,0.2);} 
.bloccov:hover {transform:translateY(-5px);box-shadow:0 12px 24px rgba(0,0,0,0.3);background:linear-gradient(135deg,#66bb6a,#388e3c);color:#fff;} 
.blocco a, .bloccov a {color:#fff;text-decoration:none;transition:color 0.3s ease;} 
.blocco a:hover, .bloccov a:hover {text-decoration:none;color:#ffe082;} 
.margineblocchi {margin-top:40px;margin-bottom:40px;} 
.showroom-box {background:linear-gradient(to right,#43a047 0%,#ffffff 40%,#d32f2f 100%);border-radius:16px;padding:25px 20px;text-align:center;color:#000;box-shadow:0 12px 24px rgba(0,0,0,0.2);transition:transform 0.3s ease,box-shadow 0.3s ease;} 
.showroom-box:hover {transform:translateY(-5px);box-shadow:0 20px 34px rgba(0,0,0,0.3);} 
.showroom-box h4, .showroom-box p {text-align:center;color:#000;margin:5px 0;} 
.showroom-box h4 {font-size:26px;font-weight:700;} 
.showroom-box p {font-size:20px;}
/* Footer ancorato al fondo e senza spazi bianchi sotto */
#sp-main-body { flex: 1 0 auto !important; background-color: #ffffff !important; }
#sp-footer { background-color: #cda434 !important; color: #000000 !important; padding: 60px 0 !important; border: none !important; margin: 0 !important; width: 100% !important; position: relative !important; clear: both !important; /* Evita che le colonne sopra (4+8) ci finiscano dentro */}

/* Rimuovi eventuali margini che Helix mette di default */
#sp-bottom, #sp-footer { margin-bottom: 0 !important; }
/* Centratura totale testo Copyright */
.sp-copyright { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center !important; width: 100% !important; margin: 0 auto !important; color: #000000 !important; }
.sp-copyright p, .sp-copyright span, .sp-copyright div { text-align: center !important; margin: 5px 0 !important; width: 100% !important; display: block !important; }
.sp-copyright a { color: #000000 !important; font-weight: 900 !important; text-decoration: underline !important; }
.sp-copyright a:hover { background-color: #000000 !important; color: #cda434 !important; text-decoration: none !important; }

/* ======================================== OFFCANVAS CORRETTO - DESKTOP (nascosto) ======================================== */ 

#offcanvas-toggler { display: none !important; }
.burger-icon { display: none !important; }
.offcanvas-overlay { display: none !important; }
.offcanvas-menu { display: none !important; }
.close-offcanvas { display: none !important; }

/* ======================================== SCROLL TO TOP & UTILS ======================================== */ 

.sp-scroll-up { position: fixed; bottom: 30px; right: 30px; width: 50px; height: 50px; background: #0057b8; color: #ffffff; border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 999; box-shadow: 0 4px 15px rgba(0,87,184,0.4); }
.sp-scroll-up.visible { opacity: 1; visibility: visible; }
.d-none { display: none !important; }
.d-flex { display: flex !important; }
.text-center { text-align: center !important; }
.w-100 { width: 100% !important; }

/* ======================================== ACCESSIBILITY & PRINT ======================================== */ 

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
@media print { #sp-top-bar, #sp-header, .sp-scroll-up, .offcanvas-menu { display: none !important; } }

/* ======================================== RATINGS & STELLINE ======================================== */ 
.article-ratings { display: flex !important; flex-direction: row-reverse !important; justify-content: flex-end !important; align-items: center !important; gap: 10px !important; margin: 15px 0 30px 0 !important; padding: 0 !important; font-weight: 700 !important; color: #1a1a1a !important; }
.article-ratings .star-loader, .article-ratings .fa-spinner, .article-ratings i[class*="spin"] { display: none !important; }
.article-ratings span:first-of-type { order: 2 !important; margin-left: 5px !important; }
.article-ratings span:last-of-type { order: 1 !important; margin-right: -3px !important; }
.article-ratings .rating-container, .article-ratings .rating-stars, .article-ratings .stars { order: 3 !important; display: flex !important; flex-direction: row !important; }
.rating-star { display: inline-block !important; width: 24px !important; height: 24px !important; background-color: #e0e0e0; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); cursor: pointer !important; transition: transform 0.2s ease, background-color 0.2s ease !important; margin-right: 4px !important; }
.rating-star.active, .rating-star:hover { background-color: #ff6b00 !important; }
.rating-star:hover ~ .rating-star { background-color: #e0e0e0 !important; }

/* ======================================== UNIVERSAL ALIGNMENT ======================================== */ 

/* Questa copre la classe che usavi tu e quella standard HTML */
.centro, .center, .text-center { text-align: center !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; margin-left: auto !important; margin-right: auto !important; float: none !important; width: 100% !important; }

/* Forza il centramento delle immagini dentro queste classi */
.centro img, .center img, .text-center img { display: block !important; margin-left: auto !important; margin-right: auto !important; }

/* Fix per le colonne di Bootstrap/Helix che non vogliono centrarsi */
.row.centro, .row.center, .row.text-center { justify-content: center !important; }

/* Se vuoi centrare un blocco specifico dentro una colonna */
.center-block { display: block !important; margin-left: auto !important; margin-right: auto !important; float: none !important; }

/* ======================================== SUPER BUTTON TORINO FINESTRE ======================================== */ 

.btn-primary.btn-lg { position: relative !important; background: linear-gradient(135deg, #0057b8 0%, #003d82 100%) !important; border: none !important; color: #ffffff !important; padding: 18px 35px !important; font-size: 20px !important; font-weight: 800 !important; text-transform: uppercase !important; letter-spacing: 1.5px !important; border-radius: 50px !important; box-shadow: 0 10px 20px rgba(0, 87, 184, 0.3) !important; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important; overflow: hidden !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }

/* Effetto Riflesso Luce (Vetro) che passa */
.btn-primary.btn-lg::before { content: "" !important; position: absolute !important; top: 0 !important; left: -100% !important; width: 50% !important; height: 100% !important; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%) !important; transform: skewX(-25deg) !important; transition: none !important; }

/* Animazione Hover */
.btn-primary.btn-lg:hover { background: linear-gradient(135deg, #ff6b00 0%, #e65100 100%) !important; transform: translateY(-5px) scale(1.03) !important; box-shadow: 0 15px 30px rgba(255, 107, 0, 0.4) !important; color: #fff !important; }

/* Attivazione riflesso al passaggio */
.btn-primary.btn-lg:hover::before { left: 150% !important; transition: all 0.7s ease !important; }

/* Effetto Click */
.btn-primary.btn-lg:active { transform: translateY(-2px) scale(0.98) !important; box-shadow: 0 5px 10px rgba(0,0,0,0.2) !important; }

/* Centramento forzato per l'h6 che lo contiene */
h6.centro, h6 { text-align: center !important; margin: 25px 0 !important; border: none !important; }

/* ======================================== faq TORINO FINESTRE ======================================== */ 

.faq-tende-torino { margin-top: 40px; border-top: 2px solid #8c6d1a; padding-top: 20px; }
.faq-item { margin-bottom: 25px; padding: 15px; background: #ffffff; border: 1px solid #eeeeee; border-radius: 5px; }
.faq-item h4 { color: #8c6d1a; font-size: 1.25rem; margin-bottom: 10px; font-weight: 800; line-height: 1.4; }
.faq-item p { margin-bottom: 0; line-height: 1.7; color: #1a1a1a; font-size: 1.1rem; }
.tabelle-prezzi-tende { max-width: 900px; margin: 40px auto; font-family: sans-serif; } .table-responsive { margin-bottom: 25px; border: 1px solid #cda434; border-radius: 4px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.05); } .table { width: 100%; border-collapse: collapse; background: #fff; table-layout: fixed; } .table th { background: #cda434; color: #fff; padding: 10px; text-align: left; font-size: 14px; text-transform: uppercase; } .table td { padding: 10px; border-bottom: 1px solid #eee; color: #333; font-size: 14px; word-wrap: break-word; } .table tr:last-child td { border-bottom: none; } .table tr:nth-child(even) { background: #fafafa; } .table td strong { color: #8c6d1a; font-weight: 700; } @media (max-width: 768px) { .table th:nth-child(2), .table td:nth-child(2) { width: 40%; } .table th:last-child, .table td:last-child { text-align: right; width: 25%; } .table td { font-size: 13px; padding: 8px 5px; } }

/* FIX TITOLO */
#sp-main-body h3, #sp-main-body h3 a { display: block !important; width: 100% !important; text-align: center !important; clear: both !important; }

/* ======================================== ECCEZIONE PER I BLOCCHETTI ======================================== */
#sp-main-body .col-md-12 .blocco, 
#sp-main-body .col-md-12 .bloccov { float: none !important; width: 100% !important; display: block !important; }

/* ======================================== RESPONSIVE MOBILE SEARCH ======================================== */
@media (max-width: 767px) { 
    .mod-finder { margin: 10px auto !important; } 
}

/* ======================================== SECTIONS & MAIN BODY ======================================== */
section[id^="sp-section-"] { width: 100%; }
.body-innerwrapper { flex: 1 0 auto !important; display: flex !important; flex-direction: column !important; width: 100% !important; }
#sp-main-body { flex: 1 0 auto !important; padding: 2rem 0; background-color: #ffffff !important; }
#sp-footer { background-color: #cda434 !important; color: #000000 !important; padding: 60px 0 !important; width: 100% !important; clear: both !important; }

/* ======================================== ECCEZIONE PER I BLOCCHETTI ======================================== */
/* I blocchetti (Chiamaci, Expo, ecc.) devono ignorare le regole sopra se sono col-md-12 */
#sp-main-body .col-md-12 .blocco, 
#sp-main-body .col-md-12 .bloccov { float: none !important;  width: 100% !important; display: block !important; }

/* ======================================== RESPONSIVE MOBILE ======================================== */
@media (max-width: 767px) { #sp-main-body .col-md-4, #sp-main-body .col-md-8 {  width: 100% !important;  float: none !important; } 
    .mod-finder { margin: 10px auto !important; } 
}

/* ======================================== NASCONDI SPINNER/CLESSIDRA ======================================== */
.fa-spinner, .fa-spin, .star-loader, .rating-loading, .spinner, .loading, [class*="spinner"], [class*="loading"] { display: none !important; visibility: hidden !important; opacity: 0 !important; }

/* ======================================== OVERRIDE FAVICON ======================================== */
.social-icons li a,.social-icons li a i,.social-icons li a span,.social-icons li a::before,#sp-top-bar .social-icons li a,#sp-top1 .social-icons li a{font-size:40px!important;width:50px!important;height:40px!important;line-height:40px!important}
@media(max-width:991px){.social-icons li a,.social-icons li a i,.social-icons li a span,.social-icons li a::before,#sp-top-bar .social-icons li a,#sp-top1 .social-icons li a{font-size:26px!important;width:28px!important;height:28px!important;line-height:28px!important}}

/* ======================================== OVERRIDE CERCA A DESTRA - AGGRESSIVO ======================================== */

#sp-top-bar > .container,
#sp-top-bar .container-fluid { display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; }
#sp-top1 {  flex: 0 0 auto !important; width: auto !important; margin-right: auto !important; display: flex !important; align-items: center !important;}
#sp-top2 { flex: 0 0 auto !important; width: auto !important; margin-left: auto !important; margin-right: 0 !important; display: flex !important; justify-content: flex-end !important; align-items: center !important; }
.mod-finder { width: 280px !important; min-width: 280px !important; max-width: 280px !important; }
#sp-top-bar .row,
#sp-top-bar .container > div,
#sp-top-bar .container-fluid > div { display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; margin: 0 !important; }
#sp-top-bar [class*="col-"] { flex: 0 0 auto !important; width: auto !important; max-width: none !important; padding: 0 !important; }

/* ======================================== CLASSI IMPORTATE DA VECCHIO CSS PORTE ======================================== */

.showroom-box {background:linear-gradient(to right,#43a047 0%,#ffffff 40%,#d32f2f 100%);border-radius:16px;padding:25px 20px;text-align:center;color:#000;box-shadow:0 12px 24px rgba(0,0,0,0.2);transition:transform 0.3s ease,box-shadow 0.3s ease;} 
.showroom-box:hover {transform:translateY(-5px);box-shadow:0 20px 34px rgba(0,0,0,0.3);} 
.showroom-box h4, .showroom-box p {text-align:center;color:#000;margin:5px 0;} 
.showroom-box h4 {font-size:26px;font-weight:700;} 
.showroom-box p {font-size:20px;}

.cards-container{display:flex;flex-wrap:wrap;width:100%;box-sizing:border-box;margin:0;} 
.cards-container .col-md-4{display:flex;padding:15px;flex:1 1 33.333%;box-sizing:border-box;} 
.modern-card{flex:1;display:flex;flex-direction:column;margin-bottom:40px;transition:transform 0.3s ease,box-shadow 0.3s ease;border-radius:12px;overflow:hidden;background:#fff;} 
.modern-card:hover{transform:translateY(-8px);box-shadow:0 15px 35px rgba(0,0,0,0.15);} 
.modern-card h3 a{text-decoration:none;color:#222;font-weight:600;} 
.modern-card img{width:100%;height:auto;border-radius:12px 12px 0 0;transition:transform 0.4s ease;display:block;} 
.modern-card:hover img{transform:scale(1.05);filter:brightness(1.1) contrast(1.05);} 
.modern-card-text{padding:15px;color:#444;line-height:1.45;font-size:15px;font-weight:400;letter-spacing:0.2px;flex-grow:1;} 
@media (max-width:991px){.cards-container .col-md-4{flex:1 1 50%;}} 
@media (max-width:767px){.cards-container .col-md-4{flex:1 1 100%;padding:10px;}}

.accordion-body,.accordion .accordion-body,.card .accordion-body,.container .accordion-body,.module .accordion-body{color:#222!important;background-color:#fff;text-shadow:none}
.accordion-body *{color:#222;text-shadow:none}
[style*="color"]{color:#222}
.accordion-button{color:#036;background-color:#f0f4fb;}
.accordion-button:not(.collapsed){background-color:#036!important;color:#fff!important;}
.card-title.mb-3{background-color:#1e4e8c!important;color:#fff!important;text-align:center!important;padding:1rem!important;border-radius:8px!important;font-size:22px!important;font-weight:700!important;display:block!important;width:100%!important;margin:0 auto!important;}

.porte-swiper {width:100%;max-width:900px;margin:0 auto;position:relative;overflow:hidden}
.porte-swiper .swiper-slide {display:flex;justify-content:center;align-items:center}
.porte-swiper .swiper-slide img {width:100%;height:auto;max-height:80vh;display:block;object-fit:contain;transition:transform 0.3s ease}
.porte-swiper .swiper-pagination {bottom:10px}
.porte-swiper .swiper-button-next,.porte-swiper .swiper-button-prev {color:#333;top:50%;width:40px;height:40px;margin-top:-20px;background-color:rgba(255,255,255,0.7);border-radius:50%;display:flex;justify-content:center;align-items:center}
.porte-swiper .swiper-button-next:hover,.porte-swiper .swiper-button-prev:hover {background-color:rgba(255,255,255,1)}
.porte-swiper .swiper-button-next:after,.porte-swiper .swiper-button-prev:after {font-size:18px}

@media(max-width:991px){
.porte-swiper{width:100%;padding:0}
.porte-swiper .swiper-slide img{width:100%;height:auto;object-fit:cover}
.swiper-button-prev,.swiper-button-next{width:28px;height:28px}
.swiper-button-prev::after,.swiper-button-next::after{font-size:18px}
.swiper-button-prev{left:3px}.swiper-button-next{right:3px}}

@media(max-width:575px){
.porte-swiper{width:100%;padding:0}
.porte-swiper .swiper-slide img{width:100%;height:auto;object-fit:cover}
.swiper-button-prev,.swiper-button-next{width:26px;height:26px}.swiper-button-prev::after,.swiper-button-next::after{font-size:16px}
.swiper-button-prev{left:2px}.swiper-button-next{right:2px}}

.flash-button-container-navimages { text-align:center;margin:40px 0; }
.flash-button-navimages { display:inline-block;padding:18px 36px;font-size:1.5rem;font-weight:900;color:#fff;text-decoration:none;border-radius:16px;background:linear-gradient(270deg,#ff3c00,#ffcc00,#ff3c00);background-size:600% 600%;box-shadow:0 0 20px rgba(255,60,0,0.7),0 0 40px rgba(255,204,0,0.7);position:relative;animation:gradientShiftNavimages 2s ease infinite,pulseNavimages 1.2s ease-in-out infinite;transition:transform 0.2s ease,box-shadow 0.2s ease; }
.flash-button-navimages:hover { transform:scale(1.1) rotate(-1deg);box-shadow:0 0 30px rgba(255,60,0,1),0 0 50px rgba(255,204,0,1); }
@keyframes gradientShiftNavimages {0% {background-position:0% 50%;}50% {background-position:100% 50%;}100% {background-position:0% 50%;} }
@keyframes pulseNavimages {0%,100% { transform:scale(1); }50% { transform:scale(1.12); } }
@media(max-width:768px){ .flash-button-navimages { font-size:1.2rem;padding:14px 28px;width:90%; } }

@keyframes softFlash {
  0%, 100% { background: linear-gradient(90deg, #2dd4bf, #3b82f6); box-shadow: 0 0 20px rgba(59,130,246,0.6);}
  50% { background: linear-gradient(90deg, #3b82f6, #2dd4bf); box-shadow: 0 0 30px rgba(45,212,191,0.8);}
}
.bottone-invitante { display: inline-block; /* solo quanto serve alla scritta */  padding: 18px 38px; font-size: 22px; font-weight: bold; text-transform: uppercase; color: #fff; border-radius: 50px; text-decoration: none; background: linear-gradient(90deg,#3b82f6,#2dd4bf); box-shadow: 0 0 15px rgba(59,130,246,0.5); animation: softFlash 2s infinite ease-in-out; transition: transform 0.2s ease, box-shadow 0.2s ease;  /* centratura solo tramite classe */  position: relative; left: 50%; transform: translateX(-50%); }
.bottone-invitante:hover { transform: scale(1.1); box-shadow: 0 0 25px rgba(59,130,246,0.7); text-decoration: none;}

   .eyebrow { font-size: .9rem; letter-spacing: .08em; text-transform: uppercase; color: #666; margin-bottom: .4rem; }
    .benefits { background:#f7f7f9; padding: .8rem; border-radius: 8px; }
    .faq details { margin-bottom: .6rem; }
    .cta { display:inline-block; margin-top:1rem; padding:.6rem .9rem; border-radius:6px; text-decoration:none; background:#0a66c2; color:#fff; }

/* ======================================== 
   OVERRIDE LAYOUT 9+3 (VIDEO & CONTATTI) 
   ======================================== */
@media(min-width:992px){
  .row.mt-5{display:flex!important;flex-wrap:nowrap!important;align-items:flex-start!important;gap:20px!important;}
  .col-md-9{flex:0 0 75%!important;max-width:75%!important;}
  .col-md-3{flex:0 0 25%!important;max-width:25%!important;}
  .col-md-3 .modern-card{margin-top:20px!important;height:auto!important;}
}
@media(max-width:991px){
  .row.mt-5{display:block!important;}
  .col-md-9,.col-md-3{width:100%!important;max-width:100%!important;display:block!important;margin-bottom:20px!important;}
}
/* STILE CARD CONTATTI */
.modern-card img{max-width:100%!important;height:auto!important;border-radius:8px!important;transition:transform .3s ease!important;}
.modern-card a:hover img{transform:scale(1.05)!important;}
.fw-bold{font-weight:700!important;}
.text-center{text-align:center!important;}