/*
Theme Name: GriMas
Theme URI: https://grimas.it
Author: GriMas Srl
Author URI: https://grimas.it
Description: Tema custom per GriMas Srl - automazioni e sicurezza, domotica, informatica. Area download manuali, servizi extra (tessere personalizzate e stampa 3D). Design system blu/arancio, dark mode di default.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: grimas
*/


    :root,[data-theme="light"]{--color-bg:#06142d;--color-surface:#091a38;--color-surface-2:#0c2146;--color-surface-offset:#102853;--color-surface-dynamic:#15376d;--color-border:rgba(125,164,255,.18);--color-divider:rgba(125,164,255,.14);--color-text:#f4f7fb;--color-text-muted:#aac2eb;--color-text-faint:#6f88b7;--color-primary:#1495ff;--color-secondary:#ff9d2e;--shadow-md:0 12px 30px rgba(2,9,22,.28);--shadow-lg:0 24px 60px rgba(2,9,22,.42);--radius-lg:1.2rem;--radius-xl:1.8rem;--text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);--text-base:clamp(1rem,.95rem + .25vw,1.1rem);--text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);--text-xl:clamp(1.6rem,1.2rem + 1.4vw,2.45rem);--text-2xl:clamp(2.4rem,1.3rem + 3vw,4.8rem);--text-3xl:clamp(3rem,1rem + 5vw,6rem);--font-display:'Clash Display','Inter',sans-serif;--font-body:'Satoshi','Inter',sans-serif;--content-default:1160px;--transition:180ms cubic-bezier(.16,1,.3,1)}
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0} html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility} body{font-family:var(--font-body);background:radial-gradient(circle at 85% 12%, rgba(198,31,106,.35), transparent 22%),radial-gradient(circle at 66% 28%, rgba(20,149,255,.18), transparent 22%),linear-gradient(180deg,#071126 0%, #06142d 25%, #071634 100%);color:var(--color-text);line-height:1.6;font-size:var(--text-base)} img{max-width:100%;display:block} a{text-decoration:none;color:inherit} button{font:inherit;border:0;cursor:pointer}.container{width:min(calc(100% - 2rem),var(--content-default));margin-inline:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(4,12,28,.72);backdrop-filter:blur(18px);border-bottom:1px solid var(--color-divider)}.header-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}.brand{display:flex;align-items:center;gap:.9rem}.brand-mark{font-family:var(--font-display);font-size:1.5rem;color:white;letter-spacing:-.04em}.brand-mark span{color:var(--color-secondary)}.nav-links{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}.nav-links a{font-size:var(--text-sm);color:var(--color-text-muted)}.nav-links a:hover{color:var(--color-text)}.header-actions{display:flex;align-items:center;gap:.8rem}.theme-toggle,.menu-toggle{width:44px;height:44px;border-radius:999px;background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.25rem;border-radius:999px;font-size:var(--text-sm);font-weight:700;transition:all var(--transition)}.btn-primary{background:linear-gradient(135deg,var(--color-primary),#38b6ff);color:#fff;box-shadow:0 10px 25px rgba(20,149,255,.25)}.btn-secondary{background:rgba(255,255,255,.04);border:1px solid var(--color-border);color:var(--color-text)}.hero{padding:clamp(4rem,8vw,7rem) 0 4rem}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:.75rem;color:#fff;font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.12em}.eyebrow::before{content:'';width:58px;height:4px;border-radius:99px;background:#fff}h1,h2,h3{font-family:var(--font-display);line-height:1.02;letter-spacing:-.03em}.hero h1{font-size:var(--text-3xl);max-width:11ch;margin-top:1.2rem}.hero p{max-width:62ch;color:var(--color-text-muted);margin-top:1rem;font-size:var(--text-lg)}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem}.hero-card{background:linear-gradient(180deg,rgba(12,33,70,.86),rgba(6,20,45,.65));border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-lg)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.2rem}.stat{padding:1rem;border-radius:1rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}.stat strong{font-size:var(--text-xl);display:block}section{padding:clamp(4rem,8vw,7rem) 0;border-top:1px solid var(--color-divider)}.section-head{display:grid;grid-template-columns:180px 1fr;gap:1rem;align-items:start;margin-bottom:2rem}.section-kicker{color:var(--color-primary);font-size:var(--text-xs);font-weight:800;text-transform:uppercase;letter-spacing:.15em;padding-top:.7rem}.section-head h2{font-size:var(--text-2xl)}.lead{color:var(--color-text-muted);max-width:66ch;margin-top:.65rem}.services-grid,.process-grid,.dual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.dual-grid{grid-template-columns:repeat(2,1fr)}.service-card,.partner-card,.download-card,.contact-card,.timeline-card{background:linear-gradient(180deg,rgba(11,27,58,.92),rgba(8,22,47,.82));border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-md)}.service-card{min-height:320px;display:flex;flex-direction:column;justify-content:space-between}.mock-image{border-radius:1rem;aspect-ratio:4/3;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg, rgba(20,149,255,.22), rgba(255,157,46,.18));display:flex;align-items:end;padding:1rem;font-weight:700;color:#fff}.service-card h3,.partner-card h3,.download-card h3,.contact-card h3{font-size:var(--text-xl);margin:.9rem 0 .55rem}.service-card p,.partner-card p,.download-card p,.contact-card p,.timeline-card p{color:var(--color-text-muted)}.chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.chip{padding:.48rem .8rem;border-radius:999px;background:rgba(20,149,255,.12);border:1px solid rgba(20,149,255,.22);color:#d9ecff;font-size:var(--text-xs)}.partners-wrap{display:grid;gap:1rem}.partner-card{display:grid;grid-template-columns:180px 1fr 240px;gap:1.2rem;align-items:center}.logo-box{display:flex;align-items:center;justify-content:center;min-height:110px;padding:1rem;border-radius:1rem;background:rgba(255,255,255,.02);border:1px dashed rgba(255,255,255,.08);text-align:center}.value-list{list-style:none;display:grid;gap:.75rem}.value-list li{display:flex;gap:.6rem;color:#eaf4ff}.value-list i{color:var(--color-primary);width:18px;height:18px;flex:0 0 auto;margin-top:.15rem}.downloads-layout{display:grid;grid-template-columns:290px 1fr;gap:1.2rem;align-items:start}.download-sidebar{position:sticky;top:96px;background:rgba(9,26,56,.76);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem}.download-sidebar input,.download-sidebar select{width:100%;background:rgba(255,255,255,.03);border:1px solid var(--color-border);border-radius:.9rem;color:var(--color-text);padding:.9rem 1rem;margin-top:.8rem}.category-list{display:grid;gap:.6rem;margin-top:1rem}.category-btn{width:100%;text-align:left;padding:.8rem .95rem;border-radius:.85rem;background:transparent;color:var(--color-text-muted);border:1px solid transparent}.category-btn.active,.category-btn:hover{background:rgba(20,149,255,.12);border-color:rgba(20,149,255,.22);color:#fff}.downloads-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.download-top{display:flex;gap:1rem;align-items:flex-start}.download-icon{width:88px;height:88px;border-radius:1rem;background:linear-gradient(135deg,rgba(20,149,255,.28),rgba(255,157,46,.22));border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:white;font-size:1.8rem;font-weight:800}.download-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}.meta-pill{padding:.4rem .7rem;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);font-size:var(--text-xs);color:var(--color-text-muted)}.download-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}.mini-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.75rem .95rem;border-radius:999px;border:1px solid var(--color-border);background:rgba(255,255,255,.03);font-size:var(--text-sm);color:#fff}.timeline-card span{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:999px;background:rgba(20,149,255,.12);color:#fff;border:1px solid rgba(20,149,255,.24);font-weight:800;margin-bottom:1rem}.about-panel,.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.contact-card iframe{width:100%;min-height:280px;border:0;border-radius:1rem}.footer{padding:2rem 0;border-top:1px solid var(--color-divider);color:var(--color-text-muted)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal.is-visible{opacity:1;transform:none}.mobile-nav{display:none}.hero-title .char{opacity:0;transform:translateY(20px);animation:rise .6s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--char-index) * 35ms)}@keyframes rise{to{opacity:1;transform:none}}@media (max-width:1100px){.hero-grid,.contact-grid,.about-panel,.downloads-layout,.partner-card,.services-grid,.process-grid,.dual-grid,.downloads-grid{grid-template-columns:1fr}.download-sidebar{position:static}.section-head{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr 1fr}}@media (max-width:760px){.nav-links,.header-actions .btn{display:none}.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.mobile-nav{display:none;position:absolute;left:1rem;right:1rem;top:76px;background:rgba(7,17,38,.96);border:1px solid var(--color-border);border-radius:1.2rem;padding:1rem;box-shadow:var(--shadow-lg)}.mobile-nav.open{display:grid;gap:.8rem}.mobile-nav a{padding:.8rem;border-radius:.8rem;color:var(--color-text-muted)}.mobile-nav a:hover{background:rgba(255,255,255,.04);color:#fff}.hero h1{max-width:9ch}.hero p{font-size:var(--text-base)}.stats{grid-template-columns:1fr}}
  
/* ===== WordPress + integrazioni tema ===== */
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;word-wrap:normal!important}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
.brand-logo{max-height:46px;width:auto}
.nav-links a.current-menu-item,.nav-links a[aria-current]{color:#fff}
.btn-block{width:100%;justify-content:center}
.section-narrow{--content-default:880px}
/* Pagina singolo prodotto */
.product-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.6rem;align-items:start}
.product-gallery img{border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%}
.product-gallery .mock-image{aspect-ratio:4/3}
.pdf-list{list-style:none;display:grid;gap:.8rem;margin-top:1.2rem}
.pdf-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;border-radius:var(--radius-lg);background:rgba(9,26,56,.7);border:1px solid var(--color-border)}
.pdf-item .pdf-name{display:flex;align-items:center;gap:.75rem;color:#eaf4ff;font-weight:500}
.pdf-item .pdf-name i{color:var(--color-secondary)}
.pdf-item .pdf-size{color:var(--color-text-faint);font-size:var(--text-xs)}
.breadcrumb{color:var(--color-text-faint);font-size:var(--text-sm);margin-bottom:1.2rem;display:flex;gap:.5rem;flex-wrap:wrap}
.breadcrumb a{color:var(--color-text-muted)}.breadcrumb a:hover{color:#fff}
.entry-content{max-width:72ch}
.entry-content h2{font-size:var(--text-xl);margin:2rem 0 .8rem}
.entry-content h3{font-size:var(--text-lg);margin:1.6rem 0 .6rem}
.entry-content p{color:var(--color-text-muted);margin-bottom:1rem}
.entry-content ul,.entry-content ol{color:var(--color-text-muted);margin:0 0 1rem 1.2rem;display:grid;gap:.4rem}
.entry-content a{color:var(--color-primary);text-decoration:underline}
.empty-state{padding:2rem;text-align:center;color:var(--color-text-muted);grid-column:1/-1;border:1px dashed var(--color-border);border-radius:var(--radius-lg)}
/* Cookie banner */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:200;max-width:560px;margin-inline:auto;background:rgba(7,17,38,.97);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.4rem;box-shadow:var(--shadow-lg);display:none}
.cookie-banner.show{display:block}
.cookie-banner p{color:var(--color-text-muted);font-size:var(--text-sm)}
.cookie-banner a{color:var(--color-primary);text-decoration:underline}
.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1.5rem}
.footer-grid h4{font-family:var(--font-display);font-size:var(--text-base);color:#fff;margin-bottom:.8rem}
.footer-grid a{color:var(--color-text-muted);display:block;padding:.2rem 0}
.footer-grid a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--color-divider);font-size:var(--text-sm)}
@media (max-width:900px){.product-hero{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}}

/* ===== Animazioni avanzate ===== */
@media (prefers-reduced-motion: no-preference){
  /* Sfondo gradiente in lento movimento */
  body{background-size:200% 200%,200% 200%,100% 100%;animation:bgShift 24s ease-in-out infinite alternate}
  @keyframes bgShift{0%{background-position:0% 0%,0% 0%,0 0}100%{background-position:100% 60%,80% 40%,0 0}}
  /* Card: sollevamento + bordo luminoso all'hover */
  .service-card,.partner-card,.download-card,.timeline-card,.contact-card{transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s cubic-bezier(.16,1,.3,1),border-color .45s ease}
  .service-card:hover,.partner-card:hover,.download-card:hover,.timeline-card:hover{transform:translateY(-6px);box-shadow:0 28px 60px rgba(2,9,22,.5);border-color:rgba(20,149,255,.4)}
  /* Bottoni */
  .btn{transition:transform var(--transition),filter var(--transition),box-shadow var(--transition)}
  .btn:hover{transform:translateY(-2px);filter:brightness(1.06)}
  .btn-primary:hover{box-shadow:0 16px 34px rgba(20,149,255,.4)}
  .mini-btn{transition:transform var(--transition),background .25s,border-color .25s}
  .mini-btn:hover{transform:translateY(-2px);background:rgba(20,149,255,.14);border-color:rgba(20,149,255,.4)}
  /* Mock image: gradiente animato + zoom soft */
  .mock-image{background-size:180% 180%;animation:gradPan 10s ease infinite;transition:transform .5s ease}
  .mock-image:hover{transform:scale(1.02)}
  @keyframes gradPan{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
  /* Chips: comparsa scaglionata dentro le card visibili */
  .is-visible .chip{opacity:0;animation:chipIn .5s ease forwards}
  .is-visible .chip:nth-child(1){animation-delay:.05s}.is-visible .chip:nth-child(2){animation-delay:.12s}.is-visible .chip:nth-child(3){animation-delay:.19s}.is-visible .chip:nth-child(4){animation-delay:.26s}
  @keyframes chipIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  /* Reveal scaglionato via --reveal-i */
  .reveal{transition-delay:calc(var(--reveal-i,0) * 90ms)}
  /* Eyebrow: barra che pulsa leggermente */
  .eyebrow::before{animation:barPulse 2.6s ease-in-out infinite}
  @keyframes barPulse{0%,100%{width:58px;opacity:.85}50%{width:74px;opacity:1}}
  /* Glow morbido dietro la hero card */
  .hero-card{position:relative}
  .hero-card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;background:radial-gradient(circle at 30% 0%,rgba(20,149,255,.22),transparent 60%);opacity:0;transition:opacity .6s;pointer-events:none;z-index:-1}
  .hero-card:hover::after{opacity:1}
  /* Link nav: underline animato */
  .nav-links a{position:relative}
  .nav-links a::after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));transition:width .3s ease}
  .nav-links a:hover::after,.nav-links a.current-menu-item::after{width:100%}
  /* Header che si compatta allo scroll */
  .site-header{transition:background .3s ease}
  .site-header.scrolled{background:rgba(4,12,28,.92)}
  /* header-inner: nessun cambio di padding/altezza per evitare flicker */
  /* Icona download che rimbalza all'hover della card */
  .download-card:hover .download-icon{animation:iconPop .5s ease}
  @keyframes iconPop{0%{transform:scale(1)}40%{transform:scale(1.12) rotate(-4deg)}100%{transform:scale(1)}}
  /* Contatori statistiche */
  .stat strong{transition:color .3s}
  /* Float della stat card */
  .stat{transition:transform .4s ease,background .3s}
  .stat:hover{transform:translateY(-4px);background:rgba(20,149,255,.08)}
  /* Cookie banner slide-up */
  .cookie-banner.show{animation:cookieUp .5s cubic-bezier(.16,1,.3,1)}
  @keyframes cookieUp{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
  /* Fade-in pagina */
  body{animation:bgShift 24s ease-in-out infinite alternate, pageFade .6s ease}
  @keyframes pageFade{from{opacity:0}to{opacity:1}}
}

/* ===== Griglia partner / loghi ===== */
.partner-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.partner-tile{background:linear-gradient(180deg,rgba(11,27,58,.92),rgba(8,22,47,.82));border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.4rem;box-shadow:var(--shadow-md);display:flex;flex-direction:row;align-items:flex-start;gap:1.25rem}
.partner-tile .logo-box{margin-top:.15rem}
.partner-info .chips{margin-top:.6rem;gap:.4rem}
.partner-info .chip{font-size:.72rem;padding:.34rem .6rem}
.partner-tile .logo-box{flex:0 0 auto;width:120px;min-height:84px;margin:0;padding:.6rem}
.partner-tile .partner-info{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.partner-tile h3{font-size:var(--text-lg);margin:0}
.partner-tile p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}
.logo-box.has-logo{background:#fff;border:1px solid rgba(255,255,255,.12);border-style:solid}
.logo-box img{max-height:56px;width:auto;max-width:100%;object-fit:contain}
@media (prefers-reduced-motion: no-preference){
  .partner-tile{transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s,border-color .45s}
  .partner-tile:hover{transform:translateY(-6px);box-shadow:0 28px 60px rgba(2,9,22,.5);border-color:rgba(20,149,255,.4)}
  .partner-tile .logo-box img{transition:transform .4s ease}
  .partner-tile:hover .logo-box img{transform:scale(1.06)}
}
@media (max-width:760px){.partner-grid{grid-template-columns:1fr}}

/* offset ancore sotto header fisso */
section[id],article[id]{scroll-margin-top:90px}

/* immagini schede servizi */
.service-img{border-radius:1rem;aspect-ratio:4/3;width:100%;object-fit:cover;border:1px solid rgba(255,255,255,.08);display:block}
@media (prefers-reduced-motion: no-preference){.service-img{transition:transform .5s ease}.service-card:hover .service-img{transform:scale(1.02)}}

/* =========================================================
   TEMA CHIARO (light) — attivo con data-theme="light"
   ========================================================= */
[data-theme="light"]{
  --color-bg:#eef3fb;
  --color-surface:#ffffff;
  --color-surface-2:#f1f5fc;
  --color-surface-offset:#e8eef9;
  --color-surface-dynamic:#dde8fb;
  --color-border:rgba(20,60,120,.16);
  --color-divider:rgba(20,60,120,.12);
  --color-text:#0b1b3a;
  --color-text-muted:#42587e;
  --color-text-faint:#7286a8;
  --color-primary:#0f7fe0;
  --color-secondary:#e0810f;
  --shadow-md:0 12px 30px rgba(20,50,110,.10);
  --shadow-lg:0 24px 60px rgba(20,50,110,.16);
}
[data-theme="light"] body{
  background:
    radial-gradient(circle at 85% 12%, rgba(20,149,255,.10), transparent 30%),
    radial-gradient(circle at 66% 28%, rgba(255,157,46,.10), transparent 28%),
    linear-gradient(180deg,#f7f9fe 0%, #eef3fb 60%, #e9f0fb 100%);
}
[data-theme="light"] .site-header{background:rgba(255,255,255,.82);border-bottom:1px solid var(--color-divider)}
[data-theme="light"] .site-header.scrolled{background:rgba(255,255,255,.95)}
[data-theme="light"] .brand-mark{color:var(--color-text)}
[data-theme="light"] .eyebrow{color:var(--color-text)}
[data-theme="light"] .eyebrow::before{background:var(--color-primary)}
[data-theme="light"] .btn-secondary{background:rgba(15,40,90,.05);border:1px solid var(--color-border);color:var(--color-text)}
[data-theme="light"] .hero-card,
[data-theme="light"] .service-card,
[data-theme="light"] .partner-card,
[data-theme="light"] .partner-tile,
[data-theme="light"] .download-card,
[data-theme="light"] .contact-card,
[data-theme="light"] .timeline-card{background:linear-gradient(180deg,#ffffff,#f5f8fd);border:1px solid var(--color-border)}
[data-theme="light"] .stat{background:rgba(15,40,90,.04);border:1px solid var(--color-border)}
[data-theme="light"] .mock-image{color:#08254a}
[data-theme="light"] .chip{background:rgba(15,127,224,.12);border:1px solid rgba(15,127,224,.28);color:#0c4f93}
[data-theme="light"] .value-list li{color:var(--color-text)}
[data-theme="light"] .logo-box{background:rgba(15,40,90,.04);border:1px dashed rgba(15,40,90,.16)}
[data-theme="light"] .logo-box.has-logo{background:#fff;border:1px solid var(--color-border)}
[data-theme="light"] .download-sidebar{background:#ffffff;border:1px solid var(--color-border)}
[data-theme="light"] .download-sidebar input,
[data-theme="light"] .download-sidebar select{background:#f4f7fc;border:1px solid var(--color-border);color:var(--color-text)}
[data-theme="light"] .category-btn{color:var(--color-text-muted)}
[data-theme="light"] .meta-pill{background:rgba(15,40,90,.05);border:1px solid rgba(15,40,90,.10);color:var(--color-text-muted)}
[data-theme="light"] .mini-btn{background:rgba(15,40,90,.04);border:1px solid var(--color-border);color:var(--color-text)}
[data-theme="light"] .mobile-nav{background:rgba(255,255,255,.97);border:1px solid var(--color-border)}
[data-theme="light"] .footer-grid h4{color:var(--color-text)}
[data-theme="light"] .cookie-banner{background:rgba(255,255,255,.98);border:1px solid var(--color-border)}
[data-theme="light"] .pdf-item{background:#ffffff;border:1px solid var(--color-border)}
[data-theme="light"] .pdf-item .pdf-name{color:var(--color-text)}
[data-theme="light"] .theme-toggle,
[data-theme="light"] .menu-toggle{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}

/* --- fix: icone centrate nei pulsanti + hamburger solo su mobile --- */
.theme-toggle,.menu-toggle{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:0}
.btn svg,.mini-btn svg{width:18px;height:18px;display:block;flex:0 0 auto}
.theme-toggle svg,.menu-toggle svg{display:block}
.btn,.mini-btn{line-height:1}
.menu-toggle{display:none}
@media (max-width:760px){.menu-toggle{display:inline-flex;align-items:center;justify-content:center}}

/* titoli: spaziatura lettere leggermente aumentata */
h1,h2,h3,.brand-mark{letter-spacing:.012em}

/* ===== Area download (file-based) ===== */
.dl-search{max-width:560px;margin:0 auto 2.4rem}
.dl-search input{width:100%;background:rgba(255,255,255,.03);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);padding:1rem 1.3rem;font-size:var(--text-base)}
[data-theme="light"] .dl-search input{background:#fff}
.dl-section{margin-bottom:2.6rem}
.dl-brand{display:flex;align-items:center;gap:1rem;margin:1.6rem 0 1.2rem;padding-bottom:.8rem;border-bottom:1px solid var(--color-divider)}
.dl-brand .section-kicker{padding-top:0}
.dl-brand h2{font-size:var(--text-xl)}
.dl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.1rem}
.dl-card{background:linear-gradient(180deg,rgba(11,27,58,.92),rgba(8,22,47,.82));border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:.7rem}
[data-theme="light"] .dl-card{background:linear-gradient(180deg,#ffffff,#f5f8fd)}
.dl-cover{width:100%;aspect-ratio:4/3;object-fit:contain;background:#fff;border-radius:.8rem;border:1px solid var(--color-border);padding:.6rem;display:block}
.dl-cover--ph{display:flex;align-items:center;justify-content:center;color:#9bb4dd;background:rgba(255,255,255,.04)}
.dl-cover--ph svg{width:42px;height:42px}
.dl-card h3{font-size:var(--text-base);margin:.2rem 0 0}
.dl-card p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}
.dl-card .mini-btn{align-self:flex-start;margin-top:.2rem}
.dl-toggle{cursor:pointer}
.dl-chevron{transition:transform .25s ease}
.dl-toggle[aria-expanded="true"] .dl-chevron{transform:rotate(180deg)}
.dl-manuals{list-style:none;display:grid;gap:.5rem;margin:.3rem 0 0}
.dl-manuals.collapsed{display:none}
.dl-manual{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:.7rem;background:rgba(255,255,255,.02)}
[data-theme="light"] .dl-manual{background:rgba(15,40,90,.03)}
.dl-manual-name{display:flex;align-items:center;gap:.5rem;font-size:var(--text-sm);color:var(--color-text);min-width:0}
.dl-manual-name i{color:var(--color-secondary);flex:0 0 auto}
.dl-manual .mini-btn{flex:0 0 auto}
@media (prefers-reduced-motion: no-preference){
  .dl-card{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s,border-color .4s}
  .dl-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(2,9,22,.45);border-color:rgba(20,149,255,.35)}
}

/* ===== Pagine brand (Soluzioni) ===== */
.brand-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:start;margin-top:1rem}
.brand-media{display:grid;gap:1.2rem}
.brand-logo-box{max-width:260px;min-height:120px;padding:1rem}
.brand-logo-box img{max-height:80px}
.brand-video video{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--color-border);display:block;background:#000}
.brand-embed{position:relative;aspect-ratio:16/9;width:100%}
.brand-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:var(--radius-lg)}
.brand-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:2.4rem}
.brand-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--color-border)}
.partner-more{margin-top:.7rem;align-self:flex-start}
@media (max-width:900px){.brand-hero{grid-template-columns:1fr}}

/* ===== Sezioni pagina brand (Ubiquiti) ===== */
.brand-sections{display:grid;gap:1.2rem;margin-top:2.4rem}
.brand-section{background:linear-gradient(180deg,rgba(11,27,58,.9),rgba(8,22,47,.8));border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.6rem 1.7rem;box-shadow:var(--shadow-md)}
[data-theme="light"] .brand-section{background:linear-gradient(180deg,#ffffff,#f5f8fd)}
.brand-section h2{font-size:var(--text-xl)}

/* ===== Loader custom con logo ===== */
.page-loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 38%, #0b2350, #06142d 72%);transition:opacity .6s ease,visibility .6s ease}
.page-loader.is-hidden{opacity:0;visibility:hidden}
.loader-inner{display:grid;justify-items:center;gap:1.4rem}
.loader-mark{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,3.6rem);color:#fff;letter-spacing:.02em;animation:loaderPulse 1.6s ease-in-out infinite}
.loader-mark span{color:var(--color-secondary)}
.loader-logo{max-height:88px;width:auto;animation:loaderPulse 1.6s ease-in-out infinite}
@keyframes loaderPulse{0%,100%{opacity:.55;transform:scale(.98)}50%{opacity:1;transform:scale(1.02)}}
.loader-bar{width:180px;height:4px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;position:relative}
.loader-bar::after{content:"";position:absolute;left:-40%;top:0;height:100%;width:40%;border-radius:99px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));animation:loaderSlide 1.1s ease-in-out infinite}
@keyframes loaderSlide{0%{left:-40%}100%{left:110%}}
@media (prefers-reduced-motion: reduce){.loader-mark,.loader-logo{animation:none}.loader-bar::after{animation:none;left:0;width:100%}}

/* ===== Video integrati (autoplay muto, no controlli) ===== */
.hero{position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.3;pointer-events:none}
.hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(6,20,45,.55),rgba(6,20,45,.82)),radial-gradient(circle at 80% 12%,rgba(20,149,255,.18),transparent 42%)}
[data-theme="light"] .hero-overlay{background:linear-gradient(180deg,rgba(238,243,251,.55),rgba(238,243,251,.88))}
.hero > .container{position:relative;z-index:2}
/* i video decorativi non catturano i click */
.hero-bg,.service-img video,video.service-img,.brand-video-el,.about-video{pointer-events:none}
/* video scheda servizio: stessa resa dell'immagine (4:3, riempie il riquadro) */
video.service-img{background:#0a1c3a}
/* video Chi siamo */
.about-video{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--color-border);display:block;margin-bottom:1.1rem;background:#000}

/* ===== Form contatti ===== */
.grimas-form{display:grid;gap:1rem;margin-top:1.2rem}
.grimas-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.grimas-form .form-field{display:grid;gap:.4rem}
.grimas-form .form-field > span{font-size:var(--text-sm);color:var(--color-text-muted)}
.grimas-form input,.grimas-form select,.grimas-form textarea{width:100%;background:rgba(255,255,255,.03);border:1px solid var(--color-border);border-radius:.9rem;color:var(--color-text);padding:.85rem 1rem;font:inherit}
[data-theme="light"] .grimas-form input,[data-theme="light"] .grimas-form select,[data-theme="light"] .grimas-form textarea{background:#fff}
.grimas-form textarea{resize:vertical;min-height:130px}
.grimas-form input:focus,.grimas-form select:focus,.grimas-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(20,149,255,.18)}
.grimas-form .form-check{display:flex;align-items:flex-start;gap:.6rem;font-size:var(--text-sm);color:var(--color-text-muted)}
.grimas-form .form-check input{width:auto;margin-top:.2rem}
.grimas-form .form-check a{color:var(--color-primary);text-decoration:underline}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-alert{display:flex;align-items:center;gap:.7rem;padding:1rem 1.2rem;border-radius:var(--radius-lg);margin-bottom:1.4rem;font-weight:500}
.form-alert i{width:20px;height:20px;flex:0 0 auto}
.form-alert--ok{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.4);color:#7ff0b0}
.form-alert--err{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.4);color:#ffb0b0}
[data-theme="light"] .form-alert--ok{color:#0b7a3b}
[data-theme="light"] .form-alert--err{color:#b3261e}
@media (max-width:640px){.grimas-form .form-row{grid-template-columns:1fr}}

/* =========================================================
   OTTIMIZZAZIONE RESPONSIVE / FIX VISUALIZZAZIONE
   ========================================================= */
html,body{overflow-x:clip;max-width:100%}
/* garantisce header sempre visibile allo scroll */
.site-header{position:sticky;position:-webkit-sticky;top:0}
img,video,iframe,svg{max-width:100%}
.container{max-width:100%}

/* Menu mobile fino a 980px: evita header affollato su tablet e piccoli laptop */
@media (max-width:980px){
  .nav-links{display:none}
  .header-actions .btn{display:none}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center}
  .mobile-nav{display:none;position:absolute;left:1rem;right:1rem;top:74px;background:rgba(7,17,38,.97);border:1px solid var(--color-border);border-radius:1.2rem;padding:1rem;box-shadow:var(--shadow-lg);z-index:60}
  [data-theme="light"] .mobile-nav{background:rgba(255,255,255,.98)}
  .mobile-nav.open{display:grid;gap:.5rem}
  .mobile-nav a{padding:.75rem;border-radius:.7rem;color:var(--color-text-muted)}
  .mobile-nav a:hover{background:rgba(255,255,255,.05);color:var(--color-text)}
  [data-theme="light"] .mobile-nav a:hover{background:rgba(15,40,90,.06)}
}

/* Tablet (768–1100px): 2 colonne per Servizi e Servizi extra */
@media (min-width:768px) and (max-width:1100px){
  .services-grid{grid-template-columns:1fr 1fr}
}

/* Telefoni (<=520px) */
@media (max-width:520px){
  .partner-tile{flex-direction:column;align-items:flex-start;gap:.9rem}
  .partner-tile .logo-box{width:100%;min-height:78px}
  .hero h1{font-size:clamp(2rem,7.5vw,2.7rem);max-width:100%}
  .hero p{font-size:var(--text-base)}
  .section-head h2,.dl-brand h2{font-size:var(--text-xl)}
  .btn,.mini-btn{font-size:var(--text-sm)}
  .cookie-banner{left:.6rem;right:.6rem;bottom:.6rem;padding:1rem}
  .cookie-actions .btn{width:100%;justify-content:center}
}

/* La hero non deve generare scroll orizzontale con lo sfondo video */
.hero{max-width:100%}

/* Su smartphone l'header NON è sticky (scorre con la pagina) */
@media (max-width:760px){
  .site-header{position:relative;top:auto}
  .admin-bar .site-header{top:auto}
}

/* Loghi partner un po' più grandi (migliore leggibilità, es. Dormakaba) */
.partner-tile .logo-box{width:150px}
.partner-tile .logo-box img{max-height:64px}
@media (max-width:520px){ .partner-tile .logo-box{width:100%} }

/* Servizi extra: titoli allineati (immagine in alto, bottoni in fondo) */
#extra .service-card{justify-content:flex-start}
#extra .service-card > div{display:flex;flex-direction:column;flex:1 1 auto;gap:.5rem}
#extra .service-card > div h3{margin:.9rem 0 0}
#extra .service-card .hero-actions{margin-top:auto}

/* Logo Dormakaba più grande nelle schede partner */
.partner-tile .logo-box.logo-dormakaba{width:205px;padding:.35rem}
.partner-tile .logo-box.logo-dormakaba img{max-height:80px}
@media (max-width:520px){ .partner-tile .logo-box.logo-dormakaba{width:100%} }

/* Manuali: bottone "Scarica" sotto al nome (non affiancato) */
.dl-manual{flex-direction:column;align-items:flex-start;gap:.6rem}
.dl-manual-name{width:100%}

/* Icona file dei manuali: SVG inline uniforme */
.dl-manual-name .dl-file-ico{color:var(--color-text);width:18px;height:18px;flex:0 0 auto;display:block}
