/* =====================================================================
   OVERLAP — Premium luxury site
   Design system & global styles
   Author: Boscom / Agente Delta Overlap
   ===================================================================== */

/* ---------- Fonts (self-hosted: no request to Google on page load) ---------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/inter-300.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-400.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-500.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-600.ttf') format('truetype')}
@font-face{font-family:'Sora';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/sora-300.ttf') format('truetype')}
@font-face{font-family:'Sora';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/sora-400.ttf') format('truetype')}
@font-face{font-family:'Sora';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/sora-500.ttf') format('truetype')}
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/sora-600.ttf') format('truetype')}
@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/sora-700.ttf') format('truetype')}
@font-face{font-family:'Sora';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/sora-800.ttf') format('truetype')}

/* ---------- Tokens ---------- */
:root{
  --bg:#0a0b0d;
  --bg-2:#101216;
  --bg-3:#15181d;
  --surface:rgba(255,255,255,.04);
  --surface-2:rgba(255,255,255,.07);
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.18);

  --text:#f4f3ef;
  --muted:#a7a9ad;
  --muted-2:#74777c;

  /* OVERLAP brand accent — coral orange + warm taupe */
  --gold:#e0512d;        /* brand orange (var name kept for compatibility) */
  --gold-2:#f47a4f;      /* lighter orange — hover / gradient text */
  --gold-deep:#b23a18;   /* deep orange */
  --taupe:#9c9b8d;       /* warm grey from the logo */
  --grad-gold:linear-gradient(135deg,#f47a4f 0%,#e0512d 48%,#b23a18 100%);
  --grad-line:linear-gradient(90deg,transparent,var(--gold),transparent);
  --on-accent:#ffffff;   /* text/icons on orange */

  --radius:18px;
  --radius-lg:26px;
  --radius-sm:12px;

  --maxw:1280px;
  --gut:clamp(20px,5vw,72px);

  --ease:cubic-bezier(.16,1,.3,1);
  --ease-2:cubic-bezier(.6,.01,0,1);

  --font-display:'Sora',sans-serif;
  --font-body:'Inter',sans-serif;
}
:root[lang="zh"]{
  --font-display:'PingFang SC','Microsoft YaHei','Noto Sans CJK SC','Sora',sans-serif;
  --font-body:'PingFang SC','Microsoft YaHei','Noto Sans CJK SC','Inter',sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.no-scroll{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul{list-style:none}
::selection{background:var(--gold);color:#0a0b0d}
:focus-visible{outline:3px solid var(--gold-2);outline-offset:4px}

/* subtle film grain / vignette layer */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(120% 80% at 50% 0%,transparent 50%,rgba(0,0,0,.55) 100%);
  mix-blend-mode:multiply;
}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.04;letter-spacing:-.02em}
.display{
  font-size:clamp(2.6rem,7vw,6.4rem);
  font-weight:700;line-height:.98;letter-spacing:-.035em;
}
.h-xl{font-size:clamp(2rem,4.6vw,3.8rem);font-weight:600}
.h-lg{font-size:clamp(1.6rem,3.2vw,2.6rem)}
.h-md{font-size:clamp(1.25rem,2.2vw,1.7rem)}
.eyebrow{
  font-family:var(--font-body);font-size:.74rem;font-weight:600;
  letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);
  display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--gold)}
.lede{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--muted);max-width:62ch}
.gold-text{
  background:var(--grad-gold);-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent;
}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
section{position:relative;z-index:2}
.section-pad{padding-block:clamp(70px,11vw,150px)}
.center{text-align:center}
.stack-sm>*+*{margin-top:.9rem}
.divider{height:1px;background:var(--line);margin-block:0}

/* ---------- Buttons ---------- */
.btn{
  --pad-y:1rem;--pad-x:1.9rem;
  display:inline-flex;align-items:center;gap:.7em;
  padding:var(--pad-y) var(--pad-x);
  font-family:var(--font-display);font-weight:600;font-size:.92rem;
  letter-spacing:.01em;border-radius:100px;
  position:relative;overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),color .4s;
  will-change:transform;
}
.btn .arr{transition:transform .45s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
.btn-primary{
  background:var(--grad-gold);color:var(--on-accent);
  box-shadow:0 10px 40px -12px rgba(224,81,45,.55);
}
.btn-primary:hover{box-shadow:0 18px 50px -10px rgba(224,81,45,.72);transform:translateY(-2px)}
.btn-ghost{
  border:1px solid var(--line-2);color:var(--text);
  backdrop-filter:blur(8px);
}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-2);transform:translateY(-2px)}
.btn-lg{--pad-y:1.15rem;--pad-x:2.3rem;font-size:1rem}

/* ---------- Reveal animations (fallback if GSAP absent) ---------- */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
.no-js [data-reveal]{opacity:1;transform:none}

/* =====================================================================
   PRELOADER
   ===================================================================== */
#preloader{
  position:fixed;inset:0;z-index:9999;background:var(--bg);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;
  transition:opacity .8s var(--ease),visibility .8s;
}
#preloader.done{opacity:0;visibility:hidden}
.pl-mark{font-family:var(--font-display);font-weight:300;font-size:clamp(2.2rem,7vw,4.4rem);letter-spacing:.42em;text-indent:.42em;color:var(--text)}
.pl-bar{width:min(240px,52vw);height:2px;background:var(--line);overflow:hidden;border-radius:2px}
.pl-bar span{display:block;height:100%;width:0;background:var(--grad-gold);transition:width .2s linear}
.pl-pct{font-size:.72rem;letter-spacing:.3em;color:var(--muted-2)}

/* =====================================================================
   CUSTOM CURSOR
   ===================================================================== */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;z-index:9998;pointer-events:none;border-radius:50%;mix-blend-mode:difference}
.cursor-dot{width:6px;height:6px;background:#fff;transform:translate(-50%,-50%)}
.cursor-ring{width:38px;height:38px;border:1px solid rgba(255,255,255,.6);transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),background .3s,border-color .3s}
.cursor-ring.hover{width:64px;height:64px;background:rgba(201,168,106,.12);border-color:var(--gold)}
@media (hover:none),(max-width:900px){.cursor-dot,.cursor-ring{display:none}}

/* =====================================================================
   HEADER / NAV
   ===================================================================== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:200;
  padding:18px var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  transition:background .5s var(--ease),padding .5s var(--ease),border-color .5s;
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(10,11,13,.72);backdrop-filter:blur(18px) saturate(140%);
  padding-block:12px;border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:700;letter-spacing:.28em;font-size:1.05rem;z-index:210}
.brand img{height:30px;width:auto;filter:brightness(0) invert(1)}
.nav{display:flex;align-items:center;gap:6px}
.nav a,.nav .has-mega>button{
  font-family:var(--font-display);font-weight:500;font-size:.86rem;letter-spacing:.04em;
  padding:.6rem .85rem;border-radius:10px;color:var(--text);
  display:inline-flex;align-items:center;gap:.4em;transition:color .3s,background .3s;
  position:relative;
}
.nav a::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.35rem;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.nav a:hover::after{transform:scaleX(1)}
.nav a:hover,.nav .has-mega>button:hover{color:var(--gold-2)}
.nav .chev{width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
.has-mega{position:relative}
.has-mega:hover .chev{transform:rotate(225deg) translateY(-1px)}

/* mega menu */
.mega{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(10px);
  width:min(760px,86vw);background:rgba(16,18,22,.96);backdrop-filter:blur(22px);
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),transform .4s var(--ease);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8);
}
/* invisible bridge: fills the 14px gap so the menu stays open while the cursor travels to it */
.mega::before{content:"";position:absolute;left:0;right:0;top:-18px;height:20px;background:transparent}
.has-mega:hover .mega,.has-mega:focus-within .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega:hover{opacity:1;visibility:visible}
/* dropdown piccolo (Configuratore) */
.mega.mega-sm{width:min(340px,86vw);grid-template-columns:1fr;left:auto;right:0;transform:translateX(0) translateY(10px)}
.has-mega:hover .mega.mega-sm,.has-mega:focus-within .mega.mega-sm{transform:translateX(0) translateY(0)}
.mega-item{display:flex;gap:14px;padding:14px;border-radius:14px;transition:background .3s}
.mega-item:hover{background:var(--surface-2)}
.mega-item .ic{width:42px;height:42px;border-radius:11px;flex:0 0 auto;background:var(--surface-2);display:grid;place-items:center;color:var(--gold);border:1px solid var(--line)}
.mega-item .ic svg{width:21px;height:21px}
.mega-item h5{font-family:var(--font-display);font-size:.92rem;font-weight:600;margin-bottom:2px}
.mega-item p{font-size:.78rem;color:var(--muted-2);line-height:1.35}

/* header right */
.header-right{display:flex;align-items:center;gap:14px;z-index:210}

/* language switcher */
.lang{position:relative}
.lang-btn{display:flex;align-items:center;gap:8px;padding:.5rem .8rem;border:1px solid var(--line);border-radius:100px;font-size:.82rem;font-weight:600;transition:border-color .3s,background .3s}
.lang-btn:hover{border-color:var(--gold)}
.lang-btn .flag{font-size:1.05rem;line-height:1}
.lang-menu{position:absolute;right:0;top:calc(100% + 10px);background:rgba(16,18,22,.97);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:14px;padding:6px;min-width:170px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.3s var(--ease);box-shadow:0 30px 60px -25px rgba(0,0,0,.8)}
.lang.open .lang-menu{opacity:1;visibility:visible;transform:none}
.lang-menu button{display:flex;width:100%;align-items:center;gap:10px;padding:.6rem .7rem;border-radius:9px;font-size:.86rem;transition:background .25s}
.lang-menu button:hover{background:var(--surface-2)}
.lang-menu button.active{color:var(--gold-2)}
.lang-menu .flag{font-size:1.15rem}

/* burger */
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.6px;background:var(--text);transition:.4s var(--ease)}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
body.menu-open .burger span:nth-child(1){top:22px;transform:rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){top:22px;transform:rotate(-45deg)}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:190;background:rgba(8,9,11,.98);backdrop-filter:blur(20px);padding:120px var(--gut) 40px;transform:translateX(100%);transition:transform .6s var(--ease);overflow-y:auto;display:none}
.drawer a{display:block;font-family:var(--font-display);font-size:1.5rem;font-weight:500;padding:.6rem 0;border-bottom:1px solid var(--line)}
.drawer .sub a{font-size:1rem;color:var(--muted);padding-left:14px}
body.menu-open .drawer{transform:none}

/*
 * Header compatto per notebook Windows e browser con scala 125%/150%.
 * In questa fascia il menu completo non ha spazio affidabile: mostriamo un
 * comando Menu esplicito e manteniamo il CTA Contatti visibile.
 */
@media (max-width:1220px){
  .nav{display:none}
  .burger{display:block}
  .drawer{display:block}
}
@media (min-width:761px) and (max-width:1220px){
  .site-header{padding-inline:clamp(20px,3vw,42px);gap:14px}
  .header-right{gap:10px}
  .burger{
    display:flex;align-items:center;justify-content:flex-end;
    width:auto;min-width:96px;padding:0 14px 0 42px;
    border-radius:100px;
  }
  .burger span{left:14px;right:auto;width:18px}
  .burger::after{
    content:"Menu";font-family:var(--font-display);font-size:.76rem;
    font-weight:600;letter-spacing:.04em;line-height:1;
  }
  body.menu-open .burger::after{content:"Chiudi"}
}
/* CTA "preventivo" anche dentro il drawer su mobile */
.drawer .drawer-cta{display:inline-flex;margin-top:18px}

/* =====================================================================
   HERO
   ===================================================================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;text-align:center;padding:120px 0 clamp(90px,14vh,160px);overflow:hidden}
#hero-canvas{position:absolute;inset:0;z-index:0}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.5}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(120% 90% at 50% 40%,rgba(10,11,13,.45) 0%,rgba(10,11,13,.78) 60%,rgba(10,11,13,.95) 100%)}
.hero-inner{position:relative;z-index:2;width:100%;max-width:1000px;margin:0 auto;text-align:center}
.hero h1{margin:.5rem auto 1.4rem;max-width:16ch}
.hero .lede{margin:0 auto 2.2rem;max-width:60ch}
.hero .eyebrow{justify-content:center}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
@media(min-width:1081px){
  .hero-inner{max-width:1280px;text-align:left;padding-right:35%}
  .hero h1{font-size:clamp(3.8rem,5.6vw,5.2rem);margin:.5rem 0 1.4rem;max-width:14ch}
  .hero .lede{margin:0 0 2.2rem;max-width:48ch}
  .hero .eyebrow{justify-content:flex-start}
  .hero-cta,.hero .home-social{justify-content:flex-start}
  .hero .hero-meta{left:auto;right:var(--gut);width:40%;bottom:24px;justify-content:space-between;gap:18px}
}
.hero-meta{position:absolute;left:0;right:0;bottom:clamp(40px,7vh,90px);z-index:2;text-align:center;display:flex;flex-direction:row;justify-content:center;gap:clamp(26px,6vw,80px)}
.hero-meta .stat .n{font-family:var(--font-display);font-size:2.1rem;font-weight:700}
.hero-meta .stat .l{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}
@media(max-width:900px){.hero-meta{display:none}}
.scroll-hint{position:absolute;left:max(90px,var(--gut));bottom:26px;z-index:3;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted-2);display:flex;align-items:center;gap:10px}
.scroll-hint .line{width:46px;height:1px;background:var(--line-2);position:relative;overflow:hidden}
.scroll-hint .line::after{content:"";position:absolute;inset:0;width:40%;background:var(--gold);animation:scrollLine 2.4s var(--ease) infinite}
@keyframes scrollLine{0%{transform:translateX(-100%)}60%,100%{transform:translateX(280%)}}

/* =====================================================================
   MARQUEE
   ===================================================================== */
.marquee{border-block:1px solid var(--line);padding-block:22px;overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee .track{display:inline-flex;gap:60px;animation:marq 28s linear infinite}
.marquee span{font-family:var(--font-display);font-size:clamp(1.1rem,2vw,1.7rem);font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:60px}
.marquee span::after{content:"◆";color:var(--gold);font-size:.6em}
@keyframes marq{to{transform:translateX(-50%)}}

/* =====================================================================
   FEATURE / SPLIT
   ===================================================================== */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:center}
.split.rev .split-media{order:-1}
@media(max-width:880px){.split{grid-template-columns:1fr}.split.rev .split-media{order:0}}
.split-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3.2}
.split-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.split-media:hover img{transform:scale(1.05)}
.split-media .badge{position:absolute;left:18px;bottom:18px;background:rgba(10,11,13,.7);backdrop-filter:blur(10px);border:1px solid var(--line);padding:.6rem 1rem;border-radius:100px;font-size:.78rem;font-weight:600;letter-spacing:.04em}

/* =====================================================================
   FEATURE CARDS (vantaggi)
   ===================================================================== */
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:960px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.feat-grid{grid-template-columns:1fr}}
.feat-card{position:relative;padding:30px 26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;transition:transform .6s var(--ease),border-color .6s}
.feat-card::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 140% at 0% 0%,rgba(201,168,106,.14),transparent 55%);opacity:0;transition:opacity .6s}
.feat-card:hover{transform:translateY(-6px);border-color:var(--line-2)}
.feat-card:hover::before{opacity:1}
.feat-card .ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--gold);margin-bottom:22px}
.feat-card .ic svg{width:26px;height:26px}
.feat-card h3{font-size:1.12rem;margin-bottom:10px}
.feat-card p{font-size:.9rem;color:var(--muted);line-height:1.55}
.feat-num{position:absolute;top:22px;right:24px;font-family:var(--font-display);font-size:.8rem;color:var(--muted-2)}

/* =====================================================================
   PRODUCT GRID (gamma)
   ===================================================================== */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:960px){.prod-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.prod-grid{grid-template-columns:1fr}}
.prod-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:3/3.7;display:flex;align-items:flex-end;isolation:isolate;border:1px solid var(--line)}
.prod-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.3s var(--ease)}
.prod-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(8,9,11,.95) 6%,rgba(8,9,11,.15) 60%,rgba(8,9,11,.4))}
.prod-card:hover img{transform:scale(1.07)}
.prod-card .body{padding:26px;width:100%}
.prod-card .tag{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-2);margin-bottom:8px;display:block}
.prod-card h3{font-size:1.45rem;margin-bottom:14px}
.prod-card .go{display:inline-flex;align-items:center;gap:.55em;font-size:.84rem;font-weight:600;color:var(--text);opacity:.85;transition:gap .4s,opacity .3s}
.prod-card:hover .go{gap:1em;opacity:1;color:var(--gold-2)}
.prod-card.tall{aspect-ratio:3/4.2}
/* "Altre soluzioni" → 2 x 2 */
.prod-grid.others{grid-template-columns:1fr 1fr}
.prod-grid.others .prod-card{aspect-ratio:5/3.2}
@media(max-width:600px){.prod-grid.others{grid-template-columns:1fr}}

/* =====================================================================
   STATS STRIP
   ===================================================================== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(30px,4vw,52px);background:var(--surface)}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr);gap:34px 20px}}
.stat-b .n{font-family:var(--font-display);font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:700;line-height:1}
.stat-b .l{margin-top:10px;font-size:.82rem;color:var(--muted);letter-spacing:.02em}

/* =====================================================================
   GALLERY (masonry-ish)
   ===================================================================== */
.gal{columns:3;column-gap:16px}
@media(max-width:900px){.gal{columns:2}}
@media(max-width:560px){.gal{columns:1}}
.gal figure{break-inside:avoid;margin-bottom:16px;border-radius:var(--radius);overflow:hidden;position:relative;cursor:pointer}
.gal img{width:100%;transition:transform 1.1s var(--ease),filter .6s}
.gal figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,9,11,.55),transparent 50%);opacity:0;transition:opacity .5s}
.gal figure:hover img{transform:scale(1.06)}
.gal figure:hover::after{opacity:1}

/* Gallery v51: selezione curata per famiglia di prodotto */
.gallery-browser{position:relative}
.gallery-toolbar{position:sticky;top:82px;z-index:30;display:grid;gap:12px;margin-bottom:18px;padding:12px;border:1px solid var(--line);border-radius:20px;background:rgba(13,15,19,.92);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(0,0,0,.22)}
.gallery-toolbar-main{display:grid;grid-template-columns:minmax(260px,520px) auto;align-items:center;justify-content:space-between;gap:18px}
.gallery-filter-scroll{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;overflow-x:auto;padding:1px 1px 3px;scrollbar-width:none;overscroll-behavior-x:contain}
.gallery-filter-scroll::-webkit-scrollbar{display:none}
.gallery-filter{flex:0 0 auto;padding:.68rem 1rem;border:1px solid transparent;border-radius:100px;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;transition:color .25s,border-color .25s,background .25s,transform .25s}
.gallery-filter:hover{color:var(--text);border-color:var(--line-2);transform:translateY(-1px)}
.gallery-filter[aria-pressed="true"]{color:#111;background:linear-gradient(135deg,var(--gold-2),var(--gold));border-color:transparent;box-shadow:0 8px 24px rgba(201,168,106,.2)}
.gallery-count{margin:0;padding-right:8px;color:var(--muted);font-size:.76rem;white-space:nowrap}
.gallery-premium-grid{display:block;columns:3;column-gap:16px;min-height:300px}
@media(min-width:1380px){.gallery-premium-grid{columns:4}}
.gallery-premium-item{display:inline-block;width:100%;min-width:0;aspect-ratio:var(--gallery-card-ratio,1.333);margin:0 0 16px;vertical-align:top;break-inside:avoid;border-radius:20px;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.gallery-card{position:relative;width:100%;height:100%;display:block;overflow:hidden;text-align:left;background:#0c0e12;isolation:isolate}
.gallery-card::before{content:"";position:absolute;inset:-9%;z-index:0;background-image:var(--gallery-image);background-size:cover;background-position:center;filter:blur(22px) brightness(.54) saturate(.92);transform:scale(1.13);opacity:.95}
.gallery-card::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(5,6,8,.94),rgba(5,6,8,.04) 62%,rgba(5,6,8,.06));transition:background .5s}
.gallery-card img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center center;transition:transform 1s var(--ease),filter .5s}
.gallery-card-copy{position:absolute;left:0;right:0;bottom:0;z-index:3;display:grid;gap:6px;padding:clamp(16px,2vw,24px);transform:translateY(4px);transition:transform .45s var(--ease)}
.gallery-card-copy strong{max-width:calc(100% - 50px);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-family:var(--font-display);font-size:clamp(.96rem,1.25vw,1.18rem);line-height:1.22}
.gallery-card-category{max-width:calc(100% - 12px);overflow:hidden;color:var(--gold-2);font-size:.63rem;font-weight:750;letter-spacing:.13em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.gallery-card-arrow{position:absolute;right:22px;bottom:22px;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.25);border-radius:50%;font-size:1.1rem;opacity:0;transform:translate(-8px,8px);transition:.4s var(--ease)}
.gallery-card:hover img,.gallery-card:focus-visible img{filter:saturate(1.06) brightness(1.03)}
.gallery-card:hover::after,.gallery-card:focus-visible::after{background:linear-gradient(to top,rgba(5,6,8,.96),rgba(5,6,8,.03) 70%)}
.gallery-card:hover .gallery-card-copy,.gallery-card:focus-visible .gallery-card-copy{transform:none}
.gallery-card:hover .gallery-card-arrow,.gallery-card:focus-visible .gallery-card-arrow{opacity:1;transform:none}
.gallery-card:focus-visible{outline:2px solid var(--gold-2);outline-offset:-4px}
.gallery-search{position:relative;display:block;min-width:0}.gallery-search span{position:absolute;left:16px;top:50%;transform:translateY(-53%);color:var(--muted);font-size:1.3rem;pointer-events:none}.gallery-search input{width:100%;min-height:48px;border:1px solid var(--line-2);border-radius:999px;padding:11px 46px 11px 44px;color:var(--text);background:rgba(8,9,12,.82);font:inherit;transition:border-color .25s,box-shadow .25s,background .25s}.gallery-search input::-webkit-search-cancel-button{filter:invert(1);opacity:.62}.gallery-search input:focus{outline:0;border-color:var(--gold);background:var(--surface);box-shadow:0 0 0 3px rgba(224,81,45,.14)}
.gallery-quick-search{display:flex;align-items:center;gap:8px;overflow-x:auto;margin:0 0 22px;padding:2px 2px 8px;scrollbar-width:none;overscroll-behavior-x:contain}.gallery-quick-search::-webkit-scrollbar{display:none}.gallery-quick-search button{flex:0 0 auto;min-height:38px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:rgba(255,255,255,.025);font-size:.72rem;font-weight:700;letter-spacing:.02em;transition:.25s}.gallery-quick-search button:hover,.gallery-quick-search button:focus-visible{color:var(--text);border-color:var(--gold);background:rgba(201,168,106,.08)}
.gallery-card-specs{display:block;max-width:calc(100% - 50px);overflow:hidden;color:rgba(255,255,255,.72);font-size:.68rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.gallery-empty{width:100%;min-height:280px;display:grid;place-content:center;gap:9px;padding:32px;border:1px dashed var(--line-2);border-radius:22px;text-align:center;background:rgba(255,255,255,.018);column-span:all}.gallery-empty strong{font-family:var(--font-display);font-size:clamp(1.05rem,2vw,1.45rem)}.gallery-empty span{color:var(--muted);font-size:.86rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.photo-search-panel{position:relative;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(360px,1.28fr);align-items:center;gap:clamp(28px,5vw,76px);overflow:hidden;padding:clamp(26px,5vw,60px);border:1px solid var(--line);border-radius:clamp(24px,4vw,38px);background:radial-gradient(circle at 92% 15%,rgba(224,81,45,.16),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 30px 90px rgba(0,0,0,.22)}.photo-search-copy p{max-width:520px;margin-top:14px}.photo-search-form{display:grid;gap:14px}.photo-search-control{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 8px 8px 18px;border:1px solid var(--line-2);border-radius:999px;background:rgba(8,9,11,.72);box-shadow:0 18px 50px rgba(0,0,0,.22)}.photo-search-control>span{color:var(--gold-2);font-size:1.5rem}.photo-search-control input{min-width:0;border:0;outline:0;color:var(--text);background:transparent;font:inherit}.photo-search-control input::placeholder{color:var(--muted)}.photo-search-control .btn{white-space:nowrap}.photo-search-examples{display:flex;flex-wrap:wrap;gap:8px;padding-inline:8px}.photo-search-examples a{padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:700;transition:.25s}.photo-search-examples a:hover{color:var(--text);border-color:var(--gold)}
@media(max-width:820px){.photo-search-panel{grid-template-columns:1fr}.photo-search-control{grid-template-columns:auto minmax(0,1fr)}.photo-search-control .btn{grid-column:1/-1;width:100%}}
@media(max-width:900px){.gallery-premium-grid{columns:2}.gallery-toolbar-main{grid-template-columns:minmax(0,1fr) auto}}
@media(max-width:700px){.gallery-toolbar{position:relative;top:auto}.gallery-toolbar-main{grid-template-columns:1fr;gap:8px}.gallery-search,.gallery-count{width:100%}}
.gallery-loading,.gallery-error{width:100%;padding:60px 20px;color:var(--muted);text-align:center;column-span:all}
.gallery-more-wrap{display:flex;justify-content:center;padding-top:28px}
.gallery-more[hidden]{display:none}
.product-gallery-grid{min-height:0}
.product-gallery-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:28px}
.product-gallery-count{margin:0;color:var(--muted);font-size:.82rem}
.product-gallery-footer .btn{flex:0 0 auto}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox{position:fixed;inset:0;z-index:11000;display:grid;place-items:center;padding:clamp(10px,2vw,28px)}
.gallery-lightbox-backdrop{position:absolute;inset:0;background:rgba(3,4,6,.94);backdrop-filter:blur(16px)}
.gallery-lightbox-shell{position:relative;z-index:1;width:min(1500px,100%);height:min(1000px,calc(100svh - clamp(20px,4vw,56px)));max-height:100%;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;gap:12px}
.gallery-lightbox-figure{min-width:0;min-height:0;max-height:100%;height:100%;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--line-2);border-radius:22px;background:var(--bg-2);box-shadow:0 40px 120px rgba(0,0,0,.72)}
.gallery-lightbox-stage{position:relative;min-width:0;min-height:0;overflow:hidden;display:grid;place-items:center;padding:14px;background:radial-gradient(circle at 50% 45%,rgba(201,168,106,.1),transparent 48%),#07080b}
.gallery-lightbox-stage img{display:block;min-width:0;min-height:0;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;object-position:center center;border-radius:10px;opacity:0;transform:scale(.985);transition:opacity .35s,transform .5s var(--ease)}
.gallery-lightbox-stage img.is-ready{opacity:1;transform:none}
.gallery-lightbox-loader{position:absolute;color:var(--muted);font-size:.8rem}
.gallery-lightbox-figure figcaption{display:grid;grid-template-columns:1fr auto;gap:5px 20px;padding:18px 22px;border-top:1px solid var(--line);background:var(--surface)}
.gallery-lightbox-category{grid-column:1;color:var(--gold-2);font-size:.62rem;font-weight:750;letter-spacing:.15em;text-transform:uppercase}
.gallery-lightbox-figure figcaption strong{grid-column:1;font-family:var(--font-display);font-size:clamp(1rem,2vw,1.3rem)}
.gallery-lightbox-index{grid-column:2;grid-row:1/3;align-self:center;color:var(--muted);font-size:.78rem}
.gallery-lightbox-close,.gallery-lightbox-nav{width:50px;height:50px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:50%;color:var(--text);background:rgba(16,18,23,.82);backdrop-filter:blur(12px);transition:.25s}
.gallery-lightbox-close:hover,.gallery-lightbox-nav:hover{color:var(--gold-2);border-color:var(--gold);background:var(--surface-2)}
.gallery-lightbox-close{position:absolute;z-index:3;top:14px;right:14px;font-size:1.65rem}
.gallery-lightbox-nav{font-size:1.25rem}
body.gallery-lightbox-open{overflow:hidden}
@media(max-width:1000px){
  .gallery-toolbar{top:72px}
}
@media(max-width:620px){
  .gallery-toolbar{top:auto;margin-inline:-4px;padding:10px;border-radius:17px}
  .gallery-toolbar-main{gap:7px}
  .gallery-search input{min-height:50px;padding-inline:42px 38px;font-size:16px}
  .gallery-filter-scroll{scroll-snap-type:x proximity;overscroll-behavior-x:contain}
  .gallery-filter{min-height:42px;display:inline-flex;align-items:center;padding:.6rem .86rem;scroll-snap-align:start}
  .gallery-count{padding:1px 7px 0;font-size:.7rem}
  .gallery-premium-grid{columns:1}
  .gallery-premium-item{margin-bottom:12px;border-radius:16px}
  .product-gallery-footer{align-items:stretch;flex-direction:column;padding-top:20px;text-align:center}
  .product-gallery-footer .btn{width:100%}
  .gallery-card-copy{padding:16px}
  .gallery-card-copy strong{font-size:1rem}
  .gallery-card-category{font-size:.58rem;letter-spacing:.11em}
  .gallery-quick-search{margin-top:0;margin-bottom:16px;scroll-snap-type:x proximity}.gallery-quick-search button{min-height:40px;scroll-snap-align:start}
  .gallery-card-specs{max-width:calc(100% - 44px)}
  .gallery-card-arrow{right:16px;bottom:16px;opacity:1;transform:none}
  .gallery-lightbox{padding:0}
  .gallery-lightbox-shell{width:100%;height:100svh;max-height:100svh;display:block}
  .gallery-lightbox-figure{height:100%;border:0;border-radius:0;grid-template-rows:minmax(0,1fr) auto}
  .gallery-lightbox-stage{padding:52px 8px 10px}
  .gallery-lightbox-figure figcaption{padding:16px 18px 22px}
  .gallery-lightbox-nav{position:absolute;z-index:3;bottom:82px;width:44px;height:44px}
  .gallery-lightbox-prev{left:14px}
  .gallery-lightbox-next{right:14px}
}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:9000;background:rgba(6,7,9,.94);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.4s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-width:90vw;max-height:86vh;border-radius:12px;box-shadow:0 40px 120px -30px #000}
.lightbox .x{position:absolute;top:24px;right:28px;width:48px;height:48px;border:1px solid var(--line-2);border-radius:50%;font-size:1.4rem;display:grid;place-items:center}

/* =====================================================================
   CATALOGS
   ===================================================================== */
.catalog-page{--catalog-orange:240,73,40;--catalog-yellow:246,163,24;--catalog-blue:63,134,170}
.catalog-page .page-hero{padding-bottom:clamp(42px,5vw,72px)}
.catalog-library{padding-top:clamp(30px,4vw,58px)}
.catalog-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,30px);align-items:stretch}
.catalog-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);margin-top:clamp(38px,5vw,70px)}
.catalog-card{--cat-accent:201,168,106;position:relative;display:flex;border:1px solid rgba(var(--cat-accent),.24);border-radius:clamp(20px,2vw,28px);background:linear-gradient(145deg,rgba(var(--cat-accent),.075),transparent 34%),var(--surface);overflow:hidden;box-shadow:0 22px 70px -46px rgba(0,0,0,.9);transition:transform .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease)}
.catalog-card::before{content:"";position:absolute;z-index:3;inset:0 0 auto;height:3px;background:linear-gradient(90deg,rgba(var(--cat-accent),1),rgba(var(--cat-accent),.2) 60%,transparent);pointer-events:none}
.catalog-card:hover{transform:translateY(-6px);border-color:rgba(var(--cat-accent),.58);box-shadow:0 30px 90px -48px rgba(var(--cat-accent),.55)}
.catalog-tone-overlap{--cat-accent:var(--catalog-orange)}
.catalog-tone-sectional{--cat-accent:var(--catalog-yellow)}
.catalog-tone-pergola{--cat-accent:var(--catalog-blue)}
.catalog-card-featured{flex-direction:column}
.catalog-cover-link{position:relative;isolation:isolate;display:block;aspect-ratio:800/1132;margin:clamp(10px,1.1vw,16px);margin-bottom:0;overflow:hidden;border-radius:clamp(14px,1.5vw,20px);background:#efeee9;box-shadow:0 22px 60px -34px rgba(0,0,0,.9);cursor:pointer}
.catalog-cover-link img{display:block;width:100%;height:100%;object-fit:contain;background:#efeee9}
.catalog-cover-link .pdf-chip{position:absolute;z-index:3;top:12px;left:12px;display:inline-flex;align-items:center;min-height:30px;padding:.4rem .7rem;border:1px solid rgba(255,255,255,.28);border-radius:100px;background:rgba(7,8,10,.76);backdrop-filter:blur(10px);color:#fff;font-size:.65rem;font-weight:700;letter-spacing:.14em;box-shadow:0 8px 26px rgba(0,0,0,.26)}
.catalog-cover-link>.lang-pill-action{position:absolute;z-index:3;display:flex;align-items:center;justify-content:space-between;left:12px;right:12px;bottom:12px;min-height:48px;padding:.78rem .95rem;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:linear-gradient(90deg,rgba(8,9,12,.9),rgba(8,9,12,.68));backdrop-filter:blur(14px);color:#fff;font-size:.77rem;font-weight:700;letter-spacing:.03em;box-shadow:0 12px 34px rgba(0,0,0,.32)}
.catalog-cover-link>.lang-pill-action::after{content:"→";margin-left:12px;color:rgb(var(--cat-accent));font-size:1.05rem}
.catalog-cover-link:focus-visible{outline:2px solid rgb(var(--cat-accent));outline-offset:4px}
.cat-body{position:relative;z-index:2;padding:24px;display:flex;flex-direction:column;gap:14px;flex:1}
.catalog-card-featured .cat-body{min-height:228px}
.cat-body h3{font-size:clamp(1.08rem,1.45vw,1.32rem);line-height:1.24}
.cat-body p{font-size:.86rem;color:var(--muted);line-height:1.65;flex:1}
.cat-langs{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.lang-pill{display:inline-flex;align-items:center;gap:7px;padding:.5rem .85rem;border:1px solid var(--line);border-radius:100px;font-size:.8rem;font-weight:600;transition:.3s var(--ease)}
.catalog-card .lang-pill:hover{border-color:rgba(var(--cat-accent),.7);background:rgba(var(--cat-accent),.08);transform:translateY(-2px)}
.catalog-page .catalog-card .lang-pill>.lang-pill-action{display:none}
.lang-pill .flag{font-size:1rem}
.lang-pill .dl{width:13px;height:13px;opacity:.6}
.lang-pill.disabled{opacity:.32;pointer-events:none}
.catalog-card-compact{display:grid;grid-template-columns:minmax(170px,38%) minmax(0,1fr);min-height:360px}
.catalog-card-compact .catalog-cover-link{height:calc(100% - 24px);min-height:0;margin:12px;aspect-ratio:auto}
.catalog-card-compact .catalog-cover-link img{object-fit:contain}
.catalog-card-compact .cat-body{padding:clamp(22px,2.4vw,34px) clamp(20px,2.5vw,36px) clamp(22px,2.4vw,34px) clamp(12px,1.5vw,22px);justify-content:center}
.catalog-archive-card{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;width:min(760px,100%);min-height:150px;margin:clamp(24px,3vw,38px) auto 0;border-color:var(--line);background:linear-gradient(100deg,rgba(255,255,255,.035),transparent),var(--surface)}
.catalog-archive-card::before{display:none}
.catalog-archive-thumb{position:relative;display:block;width:72px;aspect-ratio:1200/1697;margin-left:18px;overflow:hidden;border-radius:8px;background:#eee;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.catalog-archive-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.catalog-archive-thumb>.lang-pill-action{display:none}
.catalog-archive-card .cat-body{padding:22px 24px 22px 12px;gap:8px}
.catalog-archive-card .cat-body p{margin:0}
.catalog-archive-label{color:var(--muted-2);font-size:.63rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:1040px){
  .catalog-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catalog-card-featured:last-child{grid-column:1/-1;width:min(520px,100%);justify-self:center}
  .catalog-secondary-grid{grid-template-columns:1fr}
  .catalog-card-compact{min-height:340px}
}
@media(max-width:660px){
  .catalog-page .page-hero{padding-bottom:30px}
  .catalog-library{padding-top:18px}
  .catalog-feature-grid,.catalog-secondary-grid{grid-template-columns:1fr;gap:16px}
  .catalog-card-featured:last-child{grid-column:auto;width:auto}
  .catalog-card{border-radius:20px}
  .catalog-cover-link{width:calc(100% - 20px);max-width:420px;margin:10px auto 0;border-radius:14px}
  .catalog-card-featured .cat-body{min-height:0}
  .catalog-secondary-grid{margin-top:30px}
  .catalog-card-compact{display:flex;flex-direction:column;min-height:0}
  .catalog-card-compact .catalog-cover-link{width:calc(100% - 20px);height:auto;max-height:none;aspect-ratio:800/1132;margin:10px auto 0}
  .catalog-card-compact .cat-body{padding:22px 20px}
  .catalog-cover-link>.lang-pill-action{left:10px;right:10px;bottom:10px;min-height:46px}
  .catalog-page .catalog-card .cat-langs{display:flex;grid-template-columns:none}
  .catalog-page .catalog-card .lang-pill{width:auto;min-width:72px;justify-content:center}
  .catalog-archive-card{grid-template-columns:78px minmax(0,1fr);margin-top:18px}
  .catalog-archive-thumb{width:58px;margin-left:14px}
  .catalog-archive-card .cat-body{padding:18px 16px 18px 4px}
}
.pdf-viewer[hidden]{display:none}
.pdf-viewer{position:fixed;inset:0;z-index:10000;padding:clamp(10px,2vw,24px);background:rgba(5,6,8,.94);backdrop-filter:blur(18px);display:grid;place-items:center}
.pdf-viewer-shell{width:min(1540px,100%);height:min(95svh,1040px);min-height:0;background:var(--bg-2);border:1px solid var(--line-2);border-radius:22px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:0 40px 120px rgba(0,0,0,.75)}
.pdf-viewer-shell:fullscreen{width:100%;height:100%;max-width:none;border:0;border-radius:0}
.pdf-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 16px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(201,168,106,.12),transparent 48%),var(--bg-2)}
.pdf-viewer-home{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 .95rem;border:1px solid var(--line);border-radius:100px;color:var(--text);font-size:.78rem;font-weight:700;white-space:nowrap;transition:.2s}
.pdf-viewer-home:hover{border-color:var(--gold);color:var(--gold-2);background:var(--surface-2)}
.pdf-viewer-heading{min-width:0}
.pdf-viewer-bar h2{font-size:clamp(1rem,2vw,1.35rem);margin:2px 0 0}
.pdf-viewer-kicker{display:block;color:var(--gold-2);font-size:.62rem;letter-spacing:.18em}
.pdf-viewer-actions{display:flex;align-items:center;gap:10px}
.pdf-viewer-actions .btn{white-space:nowrap;padding:.65rem 1rem}
.pdf-viewer-icon,.pdf-viewer-close{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;line-height:1;color:var(--text);display:grid;place-items:center;transition:.2s}
.pdf-viewer-icon{font-size:1.2rem}
.pdf-viewer-close{font-size:1.7rem}
.pdf-viewer-icon:hover,.pdf-viewer-close:hover{border-color:var(--gold);color:var(--gold-2);background:var(--surface-2)}
.flipbook-workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr);background:radial-gradient(circle at 50% 45%,rgba(201,168,106,.09),transparent 38%),linear-gradient(145deg,#101217,#08090c)}
.flipbook-workspace.has-thumbs{grid-template-columns:220px minmax(0,1fr)}
.flipbook-thumbs[hidden]{display:none}
.flipbook-thumbs{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--line);background:rgba(8,9,12,.94)}
.flipbook-thumbs-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.flipbook-thumbs-close{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;font-size:1.2rem;display:grid;place-items:center}
.flipbook-thumbs-list{min-height:0;overflow:auto;padding:12px;scrollbar-color:var(--gold) transparent}
.flipbook-thumb{width:100%;display:grid;grid-template-columns:66px 1fr;align-items:center;gap:12px;padding:7px;margin-bottom:8px;border:1px solid transparent;border-radius:10px;text-align:left;color:var(--muted);transition:.2s}
.flipbook-thumb:hover,.flipbook-thumb.is-current{border-color:var(--gold);background:rgba(201,168,106,.09);color:var(--text)}
.flipbook-thumb img{width:66px;aspect-ratio:var(--page-ratio,.72);object-fit:contain;background:#e9e7e2;border-radius:4px;box-shadow:0 5px 14px rgba(0,0,0,.3)}
.flipbook-thumb img:not([src]){background:linear-gradient(110deg,#25272c 20%,#34363d 38%,#25272c 56%);background-size:200% 100%;animation:flipbook-shimmer 1.35s linear infinite}
.flipbook-thumb span{font-size:.78rem;font-variant-numeric:tabular-nums}
.flipbook-stage{position:relative;min-width:0;min-height:0;overflow:auto;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;padding:clamp(16px,2vw,30px);isolation:isolate}
.flipbook-book{--page-ratio:.707;--spread-ratio:1.414;position:relative;width:min(100%,calc(var(--spread-ratio) * (100dvh - 210px)));aspect-ratio:var(--spread-ratio);perspective:2600px;filter:drop-shadow(0 28px 36px rgba(0,0,0,.58));touch-action:pan-y pinch-zoom;user-select:none;outline:none}
.flipbook-book:focus-visible{outline:2px solid var(--gold);outline-offset:8px;border-radius:5px}
.flipbook-page,.flipbook-sheet{position:absolute;top:0;width:50%;height:100%}
.flipbook-page{overflow:hidden;background:#f5f3ef}
.flipbook-page img,.flipbook-sheet-face img{width:100%;height:100%;object-fit:contain;background:#f5f3ef;pointer-events:none}
.flipbook-page-left{left:0;border-radius:8px 1px 1px 8px;box-shadow:inset -18px 0 26px -26px rgba(0,0,0,.8)}
.flipbook-page-right{right:0;border-radius:1px 8px 8px 1px;box-shadow:inset 18px 0 26px -26px rgba(0,0,0,.8)}
.flipbook-page-single{display:none}
.flipbook-page.is-empty{background:transparent;box-shadow:none}
.flipbook-page.is-empty img{display:none}
.flipbook-sheet{left:50%;z-index:5;transform-style:preserve-3d;transform-origin:left center;pointer-events:none}
.flipbook-sheet-face{position:absolute;inset:0;overflow:hidden;background:#f5f3ef;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flipbook-sheet-face.is-front{border-radius:1px 8px 8px 1px;box-shadow:inset 18px 0 26px -26px rgba(0,0,0,.8)}
.flipbook-sheet-face.is-back{transform:rotateY(180deg);border-radius:8px 1px 1px 8px;box-shadow:inset -18px 0 26px -26px rgba(0,0,0,.8)}
.flipbook-sheet.is-forward-desktop{animation:flip-forward .82s cubic-bezier(.62,.05,.28,1) both}
.flipbook-sheet.is-backward-desktop{animation:flip-backward .82s cubic-bezier(.62,.05,.28,1) both}
@keyframes flip-forward{0%{transform:rotateY(0);filter:brightness(1)}48%{filter:brightness(.76);box-shadow:-25px 10px 38px rgba(0,0,0,.42)}100%{transform:rotateY(-180deg);filter:brightness(1)}}
@keyframes flip-backward{0%{transform:rotateY(-180deg);filter:brightness(1)}52%{filter:brightness(.76);box-shadow:25px 10px 38px rgba(0,0,0,.42)}100%{transform:rotateY(0);filter:brightness(1)}}
@keyframes flip-forward-mobile{0%{transform:rotateY(0);filter:brightness(1)}50%{filter:brightness(.75);box-shadow:-25px 10px 38px rgba(0,0,0,.42)}100%{transform:rotateY(-180deg);filter:brightness(1)}}
@keyframes flip-backward-mobile{0%{transform:rotateY(0);filter:brightness(1)}50%{filter:brightness(.75);box-shadow:25px 10px 38px rgba(0,0,0,.42)}100%{transform:rotateY(180deg);filter:brightness(1)}}
@keyframes flipbook-shimmer{to{background-position:-200% 0}}
.flipbook-loading,.flipbook-error{position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;max-width:min(420px,80%);padding:22px 26px;border:1px solid var(--line-2);border-radius:16px;text-align:center;background:rgba(12,14,18,.94);box-shadow:0 20px 60px rgba(0,0,0,.45)}
.flipbook-loading[hidden],.flipbook-error[hidden]{display:none}
.flipbook-loading{font-size:.8rem;color:var(--muted)}
.flipbook-spinner{width:34px;height:34px;border:2px solid var(--line-2);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}
.flipbook-error strong{font-size:1rem}
.flipbook-error p{font-size:.82rem;color:var(--muted)}
.flipbook-error .btn{margin-top:4px}
.flipbook-hint{align-self:end;margin:10px 0 0;font-size:.68rem;letter-spacing:.08em;color:var(--muted-2);text-align:center}
.flipbook-controls{display:flex;align-items:center;justify-content:center;gap:10px;min-height:62px;padding:9px 14px;border-top:1px solid var(--line);background:linear-gradient(180deg,var(--bg-2),#0b0c0f)}
.flipbook-control{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--text);font-size:1.1rem;transition:.2s}
.flipbook-zoom{display:none}
.flipbook-control:hover:not(:disabled),.flipbook-control.is-active{border-color:var(--gold);background:rgba(201,168,106,.1);color:var(--gold-2)}
.flipbook-control:disabled{opacity:.3;cursor:not-allowed}
.flipbook-page-status{display:flex;align-items:center;gap:7px;min-width:100px;justify-content:center;color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}
.flipbook-page-status input{width:48px;height:36px;padding:0 5px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;text-align:center;-moz-appearance:textfield}
.flipbook-page-status input::-webkit-inner-spin-button,.flipbook-page-status input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.flipbook-native-link{margin-left:10px;color:var(--muted);font-size:.75rem;text-decoration:underline;text-underline-offset:3px}
.flipbook-native-link:hover{color:var(--gold-2)}
body.pdf-viewer-open{overflow:hidden}
@media(max-width:760px),(max-height:560px) and (max-width:960px){
  .pdf-viewer{padding:0}
  .pdf-viewer-shell{height:100svh;border:0;border-radius:0}
  .pdf-viewer-bar{padding:10px 12px}
  .pdf-viewer-heading{max-width:35vw}
  .pdf-viewer-bar h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pdf-viewer-actions{gap:6px}
  .pdf-viewer-home{width:38px;height:38px;min-height:38px;padding:0;border-radius:50%;font-size:0}
  .pdf-viewer-home::before{content:"⌂";font-size:1.25rem}
  .pdf-viewer-download{width:38px;height:38px;padding:0!important;border-radius:50%;font-size:0!important}
  .pdf-viewer-download::before{content:"↓";font-size:1.15rem}
  .pdf-viewer-icon,.pdf-viewer-close{width:38px;height:38px}
  .flipbook-workspace.has-thumbs{grid-template-columns:minmax(0,1fr)}
  .flipbook-thumbs{position:absolute;z-index:20;inset:0 18% 0 0;border-right:1px solid var(--line-2);box-shadow:24px 0 70px rgba(0,0,0,.65)}
  .flipbook-stage{padding:14px 12px 8px}
  .flipbook-book{width:min(100%,calc(var(--page-ratio) * (100dvh - 140px)));aspect-ratio:var(--page-ratio)}
  .flipbook-page-left,.flipbook-page-right{display:none}
  .flipbook-page-single{display:block;inset:0;width:100%;border-radius:6px}
  .flipbook-sheet{left:0;width:100%}
  .flipbook-sheet.is-forward-mobile{transform-origin:left center;animation:flip-forward-mobile .72s cubic-bezier(.62,.05,.28,1) both}
  .flipbook-sheet.is-backward-mobile{transform-origin:right center;animation:flip-backward-mobile .72s cubic-bezier(.62,.05,.28,1) both}
  .flipbook-sheet-face.is-front,.flipbook-sheet-face.is-back{border-radius:6px}
  .flipbook-hint{margin-top:6px;font-size:.62rem}
  .flipbook-controls{min-height:58px;padding:8px 10px}
  .flipbook-native-link{display:none}
  .flipbook-zoom{display:grid}
}
@media(max-width:400px){
  .pdf-viewer-kicker{letter-spacing:.1em}
  .pdf-viewer-heading{max-width:31vw}
  .flipbook-controls{gap:7px}
  .flipbook-control{width:39px;height:39px}
  .flipbook-page-status{min-width:88px}
}
@media(prefers-reduced-motion:reduce){
  .flipbook-spinner,.flipbook-thumb img:not([src]){animation-duration:2.4s}
}

/* =====================================================================
   CONTACT
   ===================================================================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px)}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.contact-form-grid .field{min-width:0}
.contact-routing-note{margin:-2px 0 18px;padding:12px 14px;border:1px solid rgba(224,81,45,.26);border-radius:12px;background:rgba(224,81,45,.08);color:var(--muted);font-size:.8rem;line-height:1.5}
@media(max-width:560px){.contact-form-grid{grid-template-columns:1fr}}
.field{margin-bottom:18px}
.field label{display:block;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field input,.field select,.field textarea{
  width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;
  padding:.95rem 1.1rem;color:var(--text);font-family:inherit;font-size:.95rem;transition:border-color .3s,background .3s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);background:var(--surface-2)}
.field textarea{min-height:130px;resize:vertical}
.contact-info{display:flex;flex-direction:column;gap:26px}
.info-row{display:flex;gap:16px;align-items:flex-start;padding-bottom:24px;border-bottom:1px solid var(--line)}
.info-row .ic{width:46px;height:46px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--gold);flex:0 0 auto}
.info-row h4{font-size:1rem;margin-bottom:4px}
.info-row p,.info-row a{color:var(--muted);font-size:.9rem;line-height:1.5}
.info-row a:hover{color:var(--gold-2)}
.map-embed{border:0;width:100%;height:340px;border-radius:var(--radius-lg);filter:grayscale(1) invert(.9) contrast(.85);margin-top:30px}
.embed-consent{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;text-align:center;background:radial-gradient(circle at 50% 30%,rgba(224,81,45,.13),transparent 58%),var(--bg-2);border:1px solid var(--line);border-radius:inherit}
.embed-consent p{max-width:42ch;color:var(--muted);font-size:.9rem}
.embed-consent.is-map{position:relative;min-height:340px;margin-top:30px;border-radius:var(--radius-lg)}
iframe[data-consent-src]:not([src]){display:none}

/* =====================================================================
   PAGE HERO (interior pages)
   ===================================================================== */
.page-hero{position:relative;padding-top:clamp(140px,18vh,210px);padding-bottom:clamp(40px,6vw,70px);overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(80% 120% at 80% -10%,rgba(201,168,106,.16),transparent 60%)}
.page-hero .wrap{position:relative;z-index:2}
.breadcrumb{font-size:.78rem;letter-spacing:.05em;color:var(--muted-2);margin-bottom:22px;display:flex;gap:8px}
.breadcrumb a:hover{color:var(--gold-2)}

/* spec list */
.spec-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.spec-list div{background:var(--bg-2);padding:18px 22px;display:flex;justify-content:space-between;gap:20px;font-size:.92rem}
.spec-list div span:first-child{color:var(--muted)}
.spec-list div span:last-child{font-weight:600;text-align:right}

/* pill chips row */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:.55rem 1rem;border:1px solid var(--line);border-radius:100px;font-size:.82rem;color:var(--muted);background:var(--surface)}

/* model cards (range tiles) */
.range{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.range a{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--surface);transition:.5s var(--ease);display:flex;flex-direction:column;gap:8px}
.range a:hover{border-color:var(--gold);transform:translateY(-5px);background:var(--surface-2)}
.range a .nm{font-family:var(--font-display);font-size:1.15rem;font-weight:600}
.range a p{font-size:.82rem;color:var(--muted)}

/* =====================================================================
   CTA band
   ===================================================================== */
.cta-band{position:relative;border-radius:var(--radius-lg);overflow:hidden;padding:clamp(44px,7vw,90px);border:1px solid var(--line);background:linear-gradient(135deg,var(--bg-2),var(--bg-3))}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 130% at 90% 10%,rgba(201,168,106,.18),transparent 55%)}
.cta-band .wrap-cta{position:relative;z-index:2;max-width:680px}

/* =====================================================================
   FOOTER
   ===================================================================== */
.site-footer{position:relative;z-index:2;border-top:1px solid var(--line);padding-top:clamp(56px,8vw,96px);background:linear-gradient(to bottom,var(--bg),var(--bg-2))}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:40px;padding-bottom:54px}
@media(max-width:860px){.footer-top{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.footer-top{grid-template-columns:1fr}}
.footer-brand img{height:34px;filter:brightness(0) invert(1);margin-bottom:18px}
.footer-brand p{font-size:.88rem;color:var(--muted);max-width:34ch}
.foot-col h5{font-family:var(--font-display);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2);margin-bottom:18px}
.foot-col a{display:block;font-size:.9rem;color:var(--muted);padding:.32rem 0;transition:color .3s,padding-left .3s}
.foot-col a:hover{color:var(--gold-2);padding-left:5px}
.socials{display:flex;gap:10px;margin-top:18px}
.socials a{width:40px;height:40px;border:1px solid var(--line);border-radius:11px;display:grid;place-items:center;color:var(--muted);transition:.4s var(--ease)}
.socials a:hover{border-color:var(--gold);color:var(--gold-2);transform:translateY(-3px)}
.socials svg{width:18px;height:18px}
.footer-bottom{border-top:1px solid var(--line);padding-block:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--muted-2)}
.footer-bottom a:hover{color:var(--gold-2)}

/* =====================================================================
   CHATBOT
   ===================================================================== */
.cb-toggle{position:fixed;right:24px;bottom:24px;z-index:8000;width:62px;height:62px;border-radius:50%;background:var(--grad-gold);display:grid;place-items:center;box-shadow:0 14px 40px -10px rgba(201,168,106,.65);transition:transform .5s var(--ease)}
.cb-toggle:hover{transform:scale(1.07)}
.cb-toggle svg{width:27px;height:27px;color:var(--on-accent)}
.cb-toggle .pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold);animation:cbPulse 2.6s var(--ease) infinite}
@keyframes cbPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}
.cb-badge{position:absolute;top:-3px;right:-3px;width:18px;height:18px;background:#e5484d;border-radius:50%;font-size:.62rem;font-weight:700;color:#fff;display:grid;place-items:center;border:2px solid var(--bg)}

.cb-panel{position:fixed;right:24px;bottom:100px;z-index:8001;width:min(390px,calc(100vw - 32px));height:min(580px,calc(100vh - 140px));background:rgba(14,16,20,.97);backdrop-filter:blur(24px);border:1px solid var(--line);border-radius:24px;display:flex;flex-direction:column;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(24px) scale(.97);transform-origin:bottom right;transition:.5s var(--ease);box-shadow:0 40px 100px -30px rgba(0,0,0,.85)}
.cb-panel.open{opacity:1;visibility:visible;transform:none}
.cb-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,rgba(201,168,106,.1),transparent)}
.cb-head .av{width:42px;height:42px;border-radius:50%;background:var(--grad-gold);display:grid;place-items:center;color:var(--on-accent);font-family:var(--font-display);font-weight:700;flex:0 0 auto}
.cb-head h4{font-size:.98rem}
.cb-head .status{font-size:.74rem;color:#5fd07f;display:flex;align-items:center;gap:6px}
.cb-head .status::before{content:"";width:7px;height:7px;border-radius:50%;background:#5fd07f;box-shadow:0 0 8px #5fd07f}
.cb-head .cb-x{margin-left:auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--muted);transition:.3s}
.cb-head .cb-x:hover{background:var(--surface-2);color:var(--text)}
.cb-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px}
.cb-msg{max-width:84%;padding:.8rem 1rem;border-radius:16px;font-size:.9rem;line-height:1.5;animation:cbIn .4s var(--ease)}
@keyframes cbIn{from{opacity:0;transform:translateY(8px)}}
.cb-msg.bot{background:var(--surface-2);border:1px solid var(--line);border-bottom-left-radius:5px;align-self:flex-start}
.cb-msg.user{background:var(--grad-gold);color:var(--on-accent);border-bottom-right-radius:5px;align-self:flex-end;font-weight:500}
.cb-typing{align-self:flex-start;display:flex;gap:5px;padding:.9rem 1rem;background:var(--surface-2);border:1px solid var(--line);border-radius:16px;border-bottom-left-radius:5px}
.cb-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:cbDot 1.2s infinite}
.cb-typing span:nth-child(2){animation-delay:.2s}.cb-typing span:nth-child(3){animation-delay:.4s}
@keyframes cbDot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.cb-quick{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 12px}
.cb-quick button{font-size:.78rem;padding:.5rem .8rem;border:1px solid var(--line);border-radius:100px;color:var(--muted);transition:.3s}
.cb-quick button:hover{border-color:var(--gold);color:var(--gold-2)}
.cb-foot{padding:14px 16px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}
.cb-foot input{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:100px;padding:.8rem 1.1rem;color:var(--text);font-family:inherit;font-size:.9rem}
.cb-foot input:focus{outline:none;border-color:var(--gold)}
.cb-send{width:42px;height:42px;border-radius:50%;background:var(--grad-gold);display:grid;place-items:center;color:var(--on-accent);flex:0 0 auto;transition:transform .3s}
.cb-send:hover{transform:scale(1.08)}
.cb-send svg{width:18px;height:18px}
.cb-disclaimer{font-size:.66rem;color:var(--muted-2);text-align:center;padding:0 16px 12px}

/* =====================================================================
   UTIL
   ===================================================================== */
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,60px)}
@media(max-width:760px){.grid-2{grid-template-columns:1fr}}
.text-muted{color:var(--muted)}
.maxw-sm{max-width:640px}
.sec-head{margin-bottom:clamp(36px,5vw,64px)}
.sec-head .eyebrow{margin-bottom:18px}

/* ---------- Finishes & colours (Plana / Classic) ---------- */
.fin{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,36px)}
@media(max-width:880px){.fin{grid-template-columns:1fr}}
.fin-col{border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(22px,3vw,34px);background:var(--surface)}
.fin-col > .tag{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-2)}
.fin-col h3{font-size:1.5rem;margin:8px 0 4px}
.fin-col .panels{font-size:.86rem;color:var(--muted);margin-bottom:8px}
.fam{margin-top:22px}
.fam h4{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:12px}
.sw{font-size:.7rem;color:var(--muted-2);text-align:center;line-height:1.25}
.sw .chip{position:relative;overflow:hidden;height:56px;border-radius:10px;border:1px solid var(--line-2);margin-bottom:7px;background-size:cover;background-position:center;box-shadow:inset 0 0 24px rgba(0,0,0,.25)}
.sw .chip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sw .nm{display:block;color:var(--text);font-weight:600;font-size:.72rem}
.chip.wood{background:linear-gradient(135deg,#8a5a34,#3f2a18)}
.chip.wood2{background:linear-gradient(135deg,#b07a45,#5c3d22)}
.chip.woodlight{background:linear-gradient(135deg,#d8cbb4,#a99878)}
.chip.material{background:linear-gradient(135deg,#7c6a52,#332a20)}
.chip.rust{background:linear-gradient(135deg,#9c5a32,#5a3320)}
.chip.stone{background:linear-gradient(135deg,#d7d2c7,#8f8b82)}
.chip.marble{background:linear-gradient(135deg,#eceae6,#b9b6ad 60%,#7f7d75)}
.chip.glass{background:linear-gradient(135deg,rgba(255,255,255,.40),rgba(255,255,255,.06))}
.chip.print{display:grid;place-items:center;color:var(--gold-2);font-size:1.5rem;border-style:dashed;background:transparent}

/* ---------- Configuratore estetico 3D ---------- */
.cfg-layout{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}
@media(max-width:860px){.cfg-layout{grid-template-columns:1fr}}
.cfg-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px}
.cfg-viewer{position:sticky;top:92px}
@media(max-width:860px){.cfg-viewer{position:static}}
.cfg-tabs{display:flex;gap:6px;margin-bottom:18px}
.cfg-tabs button{flex:1;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);padding:.6rem;border-radius:10px;cursor:pointer;font-weight:600;font-size:.84rem}
.cfg-tabs button.active{border-color:var(--gold);color:var(--gold-2)}
.cfg-group{margin-bottom:20px}
.cfg-group h4{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.cfg-colors{display:flex;gap:10px;flex-wrap:wrap}
.cfg-sw{width:62px;height:62px;border-radius:12px;border:2px solid var(--line);cursor:pointer;position:relative;overflow:hidden;padding:0}
.cfg-sw.active{border-color:var(--gold);box-shadow:0 0 0 3px rgba(224,81,45,.25)}
.cfg-sw span{position:absolute;left:0;right:0;bottom:0;font-size:.58rem;background:rgba(10,11,13,.62);color:#fff;padding:2px;text-align:center}
.cfg-opts{display:flex;gap:8px;flex-wrap:wrap}
.cfg-opts button{background:var(--surface-2);border:1px solid var(--line);color:var(--text);padding:.5rem .85rem;border-radius:100px;cursor:pointer;font-size:.82rem}
.cfg-opts button.active{border-color:var(--gold);color:var(--gold-2)}
.cfg-install-opts{display:grid;grid-template-columns:1fr}
.cfg-install-opts button{width:100%;justify-content:flex-start;text-align:left;border-radius:12px;line-height:1.35}
.cfg-mini{font-size:.7rem;color:var(--muted-2);margin-top:8px}
.cfg-famtabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.cfg-famtabs button{background:var(--surface-2);border:1px solid var(--line);color:var(--text);padding:.34rem .66rem;border-radius:100px;cursor:pointer;font-size:.72rem;font-weight:600}
.cfg-famtabs button.active{border-color:var(--gold);color:var(--gold-2);background:rgba(224,81,45,.08)}
.cfg-fam{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2);margin:14px 0 8px;font-weight:700}
.cfg-fam:first-child{margin-top:0}
.cfg-colors .cfg-swgrid{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:4px;max-height:188px;overflow:auto}
.cfg-sw.is-glass{background-image:linear-gradient(135deg,rgba(255,255,255,.65),rgba(255,255,255,.15))!important;border-style:dashed}
.cfg-measures{display:flex;gap:10px}
.cfg-measures label{flex:1;display:flex;flex-direction:column;gap:5px;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cfg-measures input{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:.55rem .6rem;font:inherit;width:100%}
.cfg-measures input:focus{outline:none;border-color:var(--gold)}
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:300;background:rgba(16,18,22,.97);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:14px;padding:20px 48px 18px 20px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;box-shadow:0 20px 60px rgba(0,0,0,.45);max-width:900px;margin:0 auto}
.cookie-banner p{font-size:.82rem;color:var(--muted);margin:0;flex:1;min-width:240px}
.cookie-banner a{color:var(--gold-2)}
.cookie-banner .cookie-close{position:absolute;right:12px;top:10px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-size:1.3rem;color:var(--muted)}
.cookie-banner .cookie-close:hover{border-color:var(--gold);color:var(--text)}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-actions .btn{--pad-y:.5rem;--pad-x:1rem;font-size:.85rem}
.privacy-modal[hidden]{display:none}
.privacy-modal{position:fixed;inset:0;z-index:360;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}
.privacy-dialog{position:relative;width:min(640px,100%);max-height:min(760px,calc(100dvh - 36px));overflow:auto;background:#121419;border:1px solid var(--line-2);border-radius:22px;padding:clamp(22px,4vw,36px);box-shadow:0 30px 90px rgba(0,0,0,.65)}
.privacy-dialog h2{font-size:clamp(1.35rem,4vw,2rem);margin:0 42px 8px 0}
.privacy-dialog>p{color:var(--muted);font-size:.9rem;margin-bottom:18px}
.privacy-dialog-close{position:absolute;right:16px;top:16px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:1.35rem;color:var(--muted)}
.privacy-choice{display:grid;grid-template-columns:1fr auto;gap:8px 18px;padding:16px 0;border-top:1px solid var(--line)}
.privacy-choice strong{font-size:.95rem}
.privacy-choice p{grid-column:1;margin:0;color:var(--muted);font-size:.8rem;line-height:1.5}
.privacy-choice .always-on{align-self:start;color:#7bd88f;font-size:.75rem;font-weight:700}
.privacy-switch{position:relative;width:48px;height:28px;align-self:start}
.privacy-switch input{position:absolute;opacity:0;pointer-events:none}
.privacy-switch span{display:block;width:48px;height:28px;border-radius:20px;background:#363a42;border:1px solid var(--line-2);transition:.2s}
.privacy-switch span::after{content:"";position:absolute;left:4px;top:4px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s}
.privacy-switch input:checked+span{background:var(--gold);border-color:var(--gold)}
.privacy-switch input:checked+span::after{transform:translateX(20px)}
.privacy-switch input:focus-visible+span{outline:3px solid var(--gold-2);outline-offset:3px}
.privacy-dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}
.privacy-status{margin-top:12px;color:#7bd88f;font-size:.78rem;min-height:1.2em}
.privacy-settings-link{display:inline-flex!important;align-items:center;gap:6px}
.legal .wrap{max-width:920px}.legal-body{padding-top:clamp(18px,3vw,38px)}.legal-copy h2{margin:34px 0 10px;font-size:clamp(1.05rem,2vw,1.25rem)}.legal-copy p,.legal-copy li{color:var(--muted);line-height:1.72}.legal-copy ul{margin:10px 0 12px 22px}.legal-copy li+li{margin-top:7px}.legal-copy a{color:var(--gold-2);text-decoration:underline;text-underline-offset:2px}.legal-version{padding:12px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:.82rem}.legal-language{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.legal-language button{border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:.55rem .9rem;font:inherit;font-size:.82rem}.legal-language button[aria-pressed="true"]{border-color:var(--gold);background:rgba(224,81,45,.12);color:var(--text)}.legal-table-wrap{max-width:100%;overflow-x:auto;border-radius:12px}.legal-table{width:100%;border-collapse:collapse;font-size:.84rem}.legal-table th,.legal-table td{min-width:155px;border:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top;color:var(--muted);line-height:1.55}.legal-table th{color:var(--text);background:var(--surface)}.legal-inline-button{border:0;padding:0;color:var(--gold-2);font:inherit;text-decoration:underline;text-underline-offset:2px;vertical-align:baseline}
.legal-lang-switch{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 26px}
.legal-lang-switch button{border:1px solid var(--line);border-radius:100px;padding:.55rem .9rem;font-weight:700;color:var(--muted)}
.legal-lang-switch button[aria-pressed="true"]{border-color:var(--gold);color:var(--text);background:rgba(224,81,45,.12)}
.legal-copy[hidden]{display:none}
.legal-copy h2{margin-top:1.8rem;margin-bottom:.55rem}
.legal-copy h3{margin-top:1.2rem;margin-bottom:.4rem}
.legal-copy p,.legal-copy li{color:var(--muted);line-height:1.75}
.legal-copy ul{list-style:disc;padding-left:1.3rem}
.legal-copy a{color:var(--gold-2);text-decoration:underline;text-underline-offset:3px}
.home-social{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.home-social a{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:100px;padding:.7rem 1.3rem;color:var(--text);font-weight:600;transition:.2s}
.home-social a:hover{border-color:var(--gold);color:var(--gold-2);transform:translateY(-2px)}
.home-social svg{width:20px;height:20px}
/* recensioni */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:860px){.rev-grid{grid-template-columns:1fr}}
.rev-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}
.rev-stars{color:var(--gold);letter-spacing:2px;margin-bottom:10px}
.rev-card blockquote{margin:0 0 14px;color:var(--text);line-height:1.6;font-size:.98rem}
.rev-card figcaption{color:var(--muted);font-size:.84rem;font-weight:600}
.rev-card figcaption span{color:var(--muted-2);font-weight:400}
/* globo mercati */
.globe-wrap{position:relative;width:min(620px,88vw);max-width:620px;aspect-ratio:1/1;margin:10px auto 6px}
#globe-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab;-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 72%,rgba(0,0,0,.6) 86%,transparent 96%);mask-image:radial-gradient(circle at 50% 50%,#000 72%,rgba(0,0,0,.6) 86%,transparent 96%)}
.globe-tip{position:absolute;transform:translate(-50%,-150%);background:var(--surface);border:1px solid var(--gold);color:var(--text);padding:.3rem .65rem;border-radius:8px;font-size:.8rem;font-weight:600;pointer-events:none;opacity:0;transition:opacity .15s;white-space:nowrap;z-index:3}
/* mercati */
.globe-pop{position:absolute;left:50%;top:8%;transform:translateX(-50%);z-index:5;width:min(330px,86%);background:rgba(16,18,24,.94);border:1px solid var(--gold);border-radius:14px;padding:18px 18px 16px;box-shadow:0 18px 50px rgba(0,0,0,.5);backdrop-filter:blur(6px);text-align:center;animation:gpIn .25s var(--ease) both}
@keyframes gpIn{from{opacity:0;transform:translateX(-50%) translateY(-8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.globe-pop .gp-x{position:absolute;top:8px;right:12px;background:none;border:0;color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer}
.globe-pop .gp-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--text);margin-bottom:6px}
.globe-pop .gp-q{color:var(--muted);font-size:.9rem;line-height:1.5;margin:0 0 14px}
.globe-pop .gp-cta{width:100%}
/* Configuratore — realtà aumentata (fotocamera + prodotto in sovraimpressione) */
.ar-modal{position:fixed;inset:0;z-index:300;background:#000;overflow:hidden;touch-action:none}
.ar-modal .ar-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ar-modal .ar-prod{position:absolute;cursor:grab;filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));user-select:none;-webkit-user-drag:none;touch-action:none}
.ar-modal .ar-prod:active{cursor:grabbing}
.ar-modal .ar-hint{position:absolute;top:14px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.55);color:#fff;padding:.5rem .9rem;border-radius:100px;font-size:.78rem;max-width:92%;text-align:center}
.ar-modal .ar-bar{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:rgba(16,18,24,.92);border:1px solid var(--line);padding:10px 14px;border-radius:100px;backdrop-filter:blur(6px);max-width:94%}
.ar-modal .ar-size,.ar-modal .ar-rot{accent-color:var(--gold);width:96px}
.ar-modal .ar-ico{color:#fff;font-size:.95rem;opacity:.85}
@media(max-width:560px){.ar-modal .ar-size,.ar-modal .ar-rot{width:64px}.ar-modal .ar-bar{gap:7px;padding:8px 10px}}
/* maniglie prospettiche: ogni angolo modifica solo il proprio punto */
.cfg-handles{position:absolute;inset:0;z-index:6;pointer-events:none}
.cfg-handles b{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border:2px solid #fff;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(224,81,45,.28),0 4px 14px rgba(0,0,0,.55);pointer-events:auto;cursor:nwse-resize;touch-action:none}
.cfg-handles b[data-c="tr"],.cfg-handles b[data-c="bl"]{cursor:nesw-resize}
.cfg-handles b:focus-visible{outline:3px solid #fff;outline-offset:3px}
.cfg-tool-reset{font-size:1.35rem;line-height:1;font-weight:700}
.cfg-tool[hidden]{display:none!important}
@media(max-width:860px),(pointer:coarse){
  .cfg-handles b{width:44px;height:44px;margin:-22px 0 0 -22px}
}
.cfg-meas-live{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:6;background:rgba(16,18,24,.9);border:1px solid var(--line);color:var(--text);padding:.35rem .8rem;border-radius:100px;font-size:.82rem;font-weight:600;pointer-events:none}
.markets{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:880px;margin:0 auto}
.markets span{border:1px solid var(--line);border-radius:100px;padding:.5rem 1rem;font-size:.84rem;color:var(--text);background:var(--surface-2);cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.markets span:hover{border-color:var(--gold);color:var(--gold-2);background:rgba(224,81,45,.08)}
/* video grid */
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.video-grid .vidcard{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:#000}
.video-grid video{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.ig-feed{max-width:1040px;margin:0 auto}
.ig-feed:empty{display:none}
/* footer recensione */
.foot-rev{border-top:1px solid var(--line);margin-top:8px;padding-top:16px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.foot-rev .fr-txt{color:var(--muted);font-size:.84rem;max-width:60ch}
.foot-rev .fr-txt b{color:var(--text)}
/* video di sfondo hero */
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28;z-index:0;pointer-events:none;filter:saturate(1.05)}
.hero canvas#hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.hero.hero-3d-fallback{background:#0a0b0d url('../img/home-overlap.jpg') center/cover no-repeat}
.hero.hero-3d-fallback #hero-canvas,.hero.hero-3d-fallback .hero-bg{display:none}
.hero.hero-3d-ready #hero-canvas{display:block}
/* scrim per leggibilità del testo sopra il 3D */
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 64% 56% at 50% 46%,rgba(8,9,11,.40) 0%,rgba(8,9,11,.22) 45%,rgba(8,9,11,.05) 72%,transparent 100%)}
.hero .hero-inner{position:relative;z-index:2}
.hero .display,.hero .lede,.hero .eyebrow,.hero-meta{text-shadow:0 2px 24px rgba(0,0,0,.55),0 1px 4px rgba(0,0,0,.5)}
@media(max-width:820px){
  .hero{min-height:100svh;padding:104px var(--gut) 46px;align-items:center}
  .hero .hero-inner{padding-top:clamp(120px,18svh,180px)}
  .hero .display{font-size:clamp(2.5rem,11.5vw,4rem);line-height:.98;max-width:11ch}
  .hero .lede{font-size:clamp(.94rem,4vw,1.08rem);max-width:32ch;margin-bottom:1.5rem}
  .hero-cta{width:100%;gap:10px}
  .hero-cta .btn{width:100%;justify-content:center}
  .hero::after{
    background:
      linear-gradient(180deg,rgba(8,9,11,.03) 10%,rgba(8,9,11,.28) 36%,rgba(8,9,11,.74) 66%,rgba(8,9,11,.95) 100%),
      radial-gradient(ellipse 92% 42% at 50% 46%,rgba(8,9,11,.18),rgba(8,9,11,.55) 72%,transparent);
  }
}
.cfg-modal{position:fixed;inset:0;z-index:200;background:rgba(8,9,11,.72);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto}
.cfg-modal.open{display:flex}
.cfg-modal-box{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;width:min(720px,96vw);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.cfg-modal-box h3{font-size:1.3rem;margin-bottom:6px}
.cfg-modal-x{position:absolute;top:14px;right:14px;background:var(--surface-2);border:1px solid var(--line);color:var(--text);width:34px;height:34px;border-radius:9px;cursor:pointer;font-size:1rem}
.cfg-modal-x:hover{border-color:var(--gold)}
.cfg-prev-head{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2);font-weight:700;margin:18px 0 8px;border-bottom:1px solid var(--line);padding-bottom:6px}
.cfg-prev-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.cfg-prev-grid.cfg-prev-mini{grid-template-columns:repeat(6,1fr)}
.cfg-prev-grid label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cfg-prev-grid .cfg-prev-wide{grid-column:1/-1}
.cfg-prev-grid input,.cfg-prev-grid select,.cfg-prev-grid textarea{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:.5rem .6rem;font:inherit;width:100%}
.cfg-prev-grid input:focus,.cfg-prev-grid select:focus,.cfg-prev-grid textarea:focus{outline:none;border-color:var(--gold)}
.cfg-prev-grid input[readonly]{opacity:.7}
.cfg-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cfg-prev-foot{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:20px}
.cfg-prev-msg{font-size:.82rem}
@media(max-width:640px){.cfg-prev-grid{grid-template-columns:1fr 1fr}.cfg-prev-grid.cfg-prev-mini{grid-template-columns:repeat(3,1fr)}}
.privacy-check{display:flex!important;align-items:flex-start;gap:10px;margin:4px 0 18px;color:var(--muted);font-size:.78rem;line-height:1.45;text-transform:none!important;letter-spacing:0!important}
.privacy-check input{width:18px!important;height:18px;flex:0 0 auto;margin-top:1px;accent-color:var(--gold)}
.privacy-check a{color:var(--gold-2);text-decoration:underline;text-underline-offset:2px}
.lead-location-slot{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.lead-location-slot::before{content:"Località del progetto / attività";display:block;margin-bottom:12px;color:var(--gold-2);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lead-location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.lead-location-grid label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.lead-location-grid input,.lead-location-grid select{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:.65rem .72rem;font:inherit}.lead-location-grid [hidden]{display:none!important}.lead-location-note{margin:10px 0 0;color:var(--muted);font-size:.76rem}
.cfg-prev-foot .privacy-check{margin:0 auto 0 0;max-width:390px}
@media(max-width:640px){.cfg-prev-foot{align-items:stretch;flex-direction:column}.cfg-prev-foot .privacy-check{max-width:none}}
.cfg-canvas-wrap{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/10;background:#12141a;cursor:grab;touch-action:none}
.cfg-tools{position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:5}
.cfg-tool{width:38px;height:38px;border-radius:10px;background:rgba(10,11,13,.55);border:1px solid var(--line);color:#fff;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(6px);transition:.2s}
.cfg-tool svg{width:18px;height:18px}
.cfg-tool:hover{border-color:var(--gold)}
.cfg-tool.active{border-color:var(--gold);color:var(--gold-2)}
.cfg-canvas-wrap:fullscreen{aspect-ratio:auto;width:100vw;height:100vh;border-radius:0;border:0}
.cfg-canvas-wrap:fullscreen canvas{width:100%;height:100%}
.cfg-canvas-wrap:-webkit-full-screen{aspect-ratio:auto;width:100vw;height:100vh}
.cfg-canvas-wrap:active{cursor:grabbing}
#cfgCanvas{width:100%;height:100%;display:block}
.cfg-hint{text-align:center;color:var(--muted-2);font-size:.78rem;margin-top:12px}

/* ---------- Home product videos + YouTube spots (2-up, compact) ---------- */
.vid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:760px){.vid-2{grid-template-columns:1fr}}
.vidcard{position:relative;display:block;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:#0a0b0d}
.vidcard video{width:100%;height:100%;object-fit:cover;display:block}
.vidcard::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,9,11,.7),transparent 55%)}
.vidcap{position:absolute;left:18px;bottom:16px;z-index:2;font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:#fff;display:flex;align-items:center;gap:.5em}
.vidcap::before{content:"▷";color:var(--gold-2);font-size:.8em}
.ytcard{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/9;background:#000}
.ytcard iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- Home big-impact showcase + 3D tilt ---------- */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:860px){.pillars{grid-template-columns:1fr}}
.pillars .showcase{aspect-ratio:4/4.2}
.tilt-scene{perspective:1200px}
.showcase{display:block;position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/8;border:1px solid var(--line);transform-style:preserve-3d;transition:transform .35s var(--ease),box-shadow .35s var(--ease);box-shadow:0 30px 80px -40px rgba(0,0,0,.8)}
.showcase img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.showcase:hover img{transform:scale(1.05)}
.showcase::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,9,11,.88),rgba(8,9,11,.05) 55%)}
.showcase-cap{position:absolute;left:clamp(22px,4vw,54px);bottom:clamp(22px,4vw,46px);right:clamp(22px,4vw,54px);z-index:2;transform:translateZ(50px)}
.showcase-cap h2{font-size:clamp(1.6rem,3.4vw,2.8rem);margin:.3rem 0 .6rem}
.showcase-cap .go{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-display);font-weight:600;color:var(--gold-2)}
.showcase-ph{display:none}
.showcase.ph{display:grid;place-items:center;background:var(--bg-3)}
.showcase.ph img,.showcase.ph::after,.showcase.ph .showcase-cap{display:none}
.showcase.ph .showcase-ph{display:flex;flex-direction:column;gap:8px;align-items:center;color:var(--muted);text-align:center;padding:20px}
.showcase.ph .showcase-ph span{font-family:var(--font-display);font-size:2rem;color:var(--gold-2)}
.showcase.ph .showcase-ph small{font-size:.78rem}

/* ---------- Finishes: catalog sheet with hover-zoom ---------- */
.sheet{position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;cursor:zoom-in;min-height:200px;margin-top:6px}
.sheet img{width:100%;display:block;transition:transform .25s var(--ease);transform-origin:center}
.sheet:hover img{transform:scale(2.3)}
.sheet-hint{position:absolute;left:12px;bottom:12px;background:rgba(10,11,13,.7);color:#fff;backdrop-filter:blur(8px);border:1px solid var(--line);font-size:.72rem;padding:.45rem .8rem;border-radius:100px;pointer-events:none;transition:opacity .3s}
.sheet:hover .sheet-hint{opacity:0}
.sheet-ph{display:none}
.sheet.sheet-empty{cursor:default;background:var(--bg-3);min-height:240px}
.sheet.sheet-empty img{display:none}
.sheet.sheet-empty .sheet-hint{display:none}
.sheet.sheet-empty .sheet-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:240px;text-align:center;color:var(--muted)}
.sheet.sheet-empty .sheet-ph span{font-family:var(--font-display);font-size:1.6rem;color:var(--gold-2)}
.sheet.sheet-empty .sheet-ph small{font-size:.76rem;max-width:30ch}

/* ---------- Home rotator: Overlap ⇄ Pergola ---------- */
[data-rotate]{transition:opacity .5s var(--ease)}
[data-rotate] > .v-pergola{display:none}

/* =====================================================================
   MOBILE EXPERIENCE v54
   Touch target, safe-area, contenuti e lettore cataloghi ottimizzati.
   ===================================================================== */
.howto-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.howto-actions{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}
.lang-pill-action{display:none}

@media(max-width:960px){
  .howto-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:760px){
  :root{--gut:clamp(18px,5vw,24px)}
  html{scroll-padding-top:calc(74px + env(safe-area-inset-top))}
  body{overflow-wrap:anywhere}
  .section-pad{padding-block:clamp(56px,15vw,76px)}
  .display{font-size:clamp(2.25rem,11vw,3.15rem);line-height:1.01}
  .h-xl{font-size:clamp(1.85rem,9vw,2.65rem)}
  .h-lg{font-size:clamp(1.45rem,7vw,2rem)}
  .eyebrow{font-size:.68rem;letter-spacing:.22em;line-height:1.45}
  .lede{font-size:1rem;line-height:1.65}

  .site-header{
    gap:10px;
    padding:max(12px,env(safe-area-inset-top)) max(var(--gut),env(safe-area-inset-right)) 12px max(var(--gut),env(safe-area-inset-left));
  }
  .site-header.scrolled{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:8px}
  .header-right{gap:8px}
  .lang-btn{min-height:44px;padding:.55rem .72rem}
  .lang-menu button{min-height:44px}
  .burger{width:44px;height:44px;flex:0 0 auto}
  .header-right .btn-primary{display:none} /* su smartphone il CTA resta nel drawer */
  .drawer{
    padding:calc(90px + env(safe-area-inset-top)) max(var(--gut),env(safe-area-inset-right)) calc(34px + env(safe-area-inset-bottom)) max(var(--gut),env(safe-area-inset-left));
  }
  .drawer a{min-height:48px;display:flex;align-items:center;font-size:1.28rem;padding:.62rem 0}
  .drawer .sub a{font-size:.96rem;padding-left:12px}

  .hero{
    min-height:100dvh;
    align-items:center;
    padding:calc(92px + env(safe-area-inset-top)) 0 calc(58px + env(safe-area-inset-bottom));
  }
  .hero-inner{padding-inline:var(--gut)}
  .hero h1{margin:.7rem auto 1.2rem}
  .hero .lede{margin-bottom:1.7rem}
  .scroll-hint{left:var(--gut);bottom:calc(18px + env(safe-area-inset-bottom))}
  .marquee{padding-block:16px}
  .marquee .track,.marquee span{gap:38px}

  .sec-head{margin-bottom:32px}
  .sec-head .eyebrow{margin-bottom:12px}
  .feat-grid{gap:12px}
  .feat-card{padding:24px 20px}
  .feat-card:hover,.cat-card:hover{transform:none}
  .pillars .showcase{aspect-ratio:4/4.5}
  .showcase-cap{left:20px;right:20px;bottom:22px}
  .showcase-cap h2{font-size:clamp(1.35rem,7vw,2rem)}
  .prod-card .body{padding:22px}
  .prod-grid.others .prod-card{aspect-ratio:4/3.2}
  .stats{padding:26px 22px;gap:28px 16px}
  .stat-b .n{font-size:clamp(2rem,10vw,2.65rem)}

  .hero-cta,.howto-actions{width:100%;flex-direction:column;align-items:stretch;gap:10px}
  .hero-cta .btn,.howto-actions .btn{width:100%;min-height:50px;justify-content:center;text-align:center}
  .cta-band{padding:36px 24px;border-radius:20px}
  .cta-band .hero-cta{margin-top:4px}

  .page-hero{padding-top:calc(112px + env(safe-area-inset-top));padding-bottom:38px}
  .breadcrumb{flex-wrap:wrap;line-height:1.55;margin-bottom:16px}
  .breadcrumb a{display:inline-flex;align-items:center;min-height:44px}
  .spec-list div{padding:16px 18px}

  .gallery-toolbar{position:relative;top:auto}
  .gallery-filter-scroll{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:2px}
  .gallery-filter{min-height:44px;scroll-snap-align:start}
  .gallery-lightbox-shell{height:100dvh}
  .gallery-lightbox-stage{padding-top:calc(52px + env(safe-area-inset-top))}
  .gallery-lightbox-figure figcaption{padding-bottom:calc(18px + env(safe-area-inset-bottom))}

  .cat-body{padding:22px 20px}
  .cat-langs{display:grid;grid-template-columns:1fr;width:100%}
  .lang-pill{width:100%;min-height:46px;justify-content:flex-start;padding:.7rem .9rem}
  .lang-pill-action{display:inline;margin-left:auto;color:var(--gold-2);font-size:.72rem;letter-spacing:.04em}

  input,select,textarea{font-size:16px!important}
  .field input,.field select,.field textarea{min-height:48px}
  .field textarea{min-height:130px}
  .privacy-check{min-height:44px;font-size:.82rem;line-height:1.55}
  .info-row a{display:inline-flex;align-items:center;min-height:44px}
  .cfg-tabs button,.cfg-opts button,.cfg-famtabs button,.rl-tabs button{min-height:44px}
  .cfg-tool{width:44px;height:44px}
  .cfg-canvas-wrap{aspect-ratio:4/3}
  .markets span{display:inline-flex;align-items:center;min-height:44px}

  .footer-top{gap:34px;padding-bottom:40px}
  .foot-col h5{margin-bottom:10px}
  .foot-col a{display:flex;align-items:center;min-height:44px;padding:.52rem 0}
  .footer-bottom a{display:inline-flex;align-items:center;min-height:44px}
  .socials a{width:44px;height:44px}
  .footer-bottom{padding-bottom:calc(26px + env(safe-area-inset-bottom))}

  .cookie-banner{
    left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));
    padding:18px 48px 16px 16px;gap:12px;
  }
  .cookie-banner p{min-width:0;width:100%}
  .cookie-actions{display:grid;grid-template-columns:1fr;width:100%}
  .cookie-actions .btn{min-height:44px;justify-content:center}
  .privacy-modal{padding:8px}
  .privacy-dialog{max-height:calc(100dvh - 16px);border-radius:16px;padding:22px 16px}
  .privacy-dialog-actions{display:grid;grid-template-columns:1fr}
  .privacy-dialog-actions .btn{justify-content:center;min-height:46px}
  .cb-toggle{right:max(14px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));width:54px;height:54px}
  .cb-panel{
    right:max(10px,env(safe-area-inset-right));
    bottom:calc(80px + env(safe-area-inset-bottom));
    width:calc(100vw - 20px);
    max-width:390px;
    height:min(620px,calc(100dvh - 105px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
    border-radius:20px;
  }
}

@media(max-width:600px){
  .howto-grid{grid-template-columns:1fr}
  .feat-card h3{font-size:1.08rem}
}

@media(max-width:480px){
  .spec-list div{flex-direction:column;gap:5px}
  .spec-list div span:last-child{text-align:left}
  .cfg-measures{flex-direction:column}
  .cfg-prev-grid,.cfg-prev-grid.cfg-prev-mini{grid-template-columns:1fr}
}

@media(max-width:370px){
  .site-header .brand>span{display:none}
  .site-header .brand{gap:0}
  .lang-btn{padding-inline:.6rem}
}

@media(max-height:560px) and (max-width:960px){
  .hero{min-height:auto;padding-top:calc(88px + env(safe-area-inset-top));padding-bottom:40px}
  .scroll-hint{display:none}
  .pdf-viewer-heading{display:none}
}

@media(max-width:760px),(max-height:560px) and (max-width:960px){
  .pdf-viewer-shell{height:100dvh}
  .pdf-viewer-bar{
    min-height:60px;
    padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));
  }
  .pdf-viewer-home,.pdf-viewer-download,.pdf-viewer-icon,.pdf-viewer-close{width:44px;height:44px;min-height:44px}
  .flipbook-stage{padding:10px 12px 6px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .flipbook-book{max-height:none;touch-action:pan-x pan-y pinch-zoom}
  .flipbook-hint{line-height:1.35}
  .flipbook-controls{
    min-height:60px;
    gap:8px;
    padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  }
  .flipbook-control{width:44px;height:44px;flex:0 0 44px}
  .flipbook-page-status{min-width:86px}
  .flipbook-page-status input{height:42px;font-size:16px}
  .flipbook-stage.is-zoomed{display:block;overflow:auto;place-items:start}
  .flipbook-stage.is-zoomed .flipbook-book{left:0;right:auto;justify-self:start;width:min(145vw,760px);max-width:none;margin:0}
  .flipbook-stage.is-zoomed .flipbook-hint{padding:10px 0 18px}
  .flipbook-thumbs{inset:0 12% 0 0;padding-bottom:env(safe-area-inset-bottom)}
}

@media(max-width:400px){
  .flipbook-controls{gap:4px}
  .flipbook-control{width:42px;height:42px;flex-basis:42px}
  .flipbook-page-status{min-width:78px;gap:4px}
  .flipbook-page-status input{width:42px}
}

@media(hover:none){
  .feat-card:hover,.cat-card:hover,.prod-card:hover,.showcase:hover{transform:none}
  .prod-card:hover img,.cat-card:hover .cat-cover img,.showcase:hover img{transform:none}
  .sheet:hover img{transform:none}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
}
