/* ==========================================================================
   SOGLIA — design layer for the redesigned pages (home, porte, infissi,
   single porta/infisso). Loaded ONLY on those templates (see inc/enqueue.php,
   ps_is_soglia()). Old pages keep main.css untouched.
   Identity: gesso paper / warm ink / clay accent — Bodoni Moda + Hanken
   Grotesk + Spline Sans Mono. Most styling is inline in the templates; this
   file holds tokens, keyframes, and the responsive/interaction rules that
   inline styles cannot express.
   ========================================================================== */

:root{
  --paper:#F1ECE4; --paper-2:#E8E0D4; --sand:#DED4C5;
  --ink:#1C1712; --ink-70:#4C453D; --ink-45:#847C71; --ink-25:#B7AEA1;
  --clay:#A0563B; --clay-deep:#7F4130;
  --line:rgba(28,23,18,.14); --line-2:rgba(28,23,18,.07);
  --serif:'Bodoni Moda',Georgia,serif;
  --sans:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:'Spline Sans Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,.05,.36,1);
}

body.soglia{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
}
body.soglia *{box-sizing:border-box;}
body.soglia img{display:block;max-width:100%;}
body.soglia a{color:inherit;text-decoration:none;}
body.soglia ::selection{background:var(--clay);color:var(--paper);}

/* ----- Keyframes ----- */
@keyframes sg-kenburns{0%{transform:scale(1.08) translateY(0);}100%{transform:scale(1.16) translateY(-2%);}}
@keyframes sg-drawline{0%{transform:scaleX(0);}100%{transform:scaleX(1);}}
@keyframes sg-scroll-cue{0%{transform:translateY(0);opacity:.5;}50%{transform:translateY(9px);opacity:1;}100%{transform:translateY(0);opacity:.5;}}

/* ----- Nav links: prominent + animated underline ----- */
.sg-nl{position:relative;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;opacity:.95;transition:opacity .3s,letter-spacing .4s cubic-bezier(.22,1,.36,1);white-space:nowrap;}
.sg-nl:hover{letter-spacing:.3em;}
.sg-logo span span{white-space:nowrap;}
.sg-nl::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1.5px;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.22,1,.36,1);}
.sg-nl:hover{opacity:1;}
.sg-nl:hover::after{transform:scaleX(1);}
.sg-drop:hover .sg-nl::after{transform:scaleX(1);}
.sg-logo{display:flex;align-items:center;gap:15px;line-height:1;}
.sg-logo-mark{position:relative;width:50px;height:50px;border-radius:50%;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:21px;font-weight:500;letter-spacing:-.12em;flex:none;transition:border-color .5s cubic-bezier(.22,1,.36,1);}
.sg-logo-mark::before{content:"";position:absolute;inset:3px;border-radius:50%;border:1px solid currentColor;opacity:.3;transition:opacity .5s cubic-bezier(.22,1,.36,1),inset .5s cubic-bezier(.22,1,.36,1);}
.sg-logo-mark em{font-style:italic;color:var(--clay);margin-left:1px;}
.sg-logo:hover .sg-logo-mark{border-color:var(--clay);}
.sg-logo:hover .sg-logo-mark::before{opacity:.75;inset:5px;}
.sg-logo-word em{position:relative;}
.sg-logo-word em::after{content:"";position:absolute;left:2%;right:2%;bottom:-6px;height:1px;background:var(--clay);opacity:.55;transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.22,1,.36,1);}
.sg-logo:hover .sg-logo-word em::after{transform:scaleX(1);}
.sg-drop{position:relative;display:inline-flex;}
.sg-drop-menu{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  padding-top:18px;display:none;z-index:125;
}
.sg-drop:hover .sg-drop-menu,
.sg-drop:focus-within .sg-drop-menu{display:block;}
.sg-drop-inner{
  display:flex;flex-direction:column;min-width:252px;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-radius:8px;
  box-shadow:0 24px 64px -24px rgba(20,16,12,.45);
  padding:10px;
}
.sg-drop-inner a{
  font-family:var(--sans);font-size:14px;font-weight:400;letter-spacing:.02em;
  padding:11px 14px;border-radius:5px;color:var(--ink);opacity:1;
  /* v5.6.8: 'padding-left' tolto dalla transizione — animarlo obbliga il
     browser a rifare il layout della voce a ogni frame. Il rientro c'è ancora,
     ma è immediato; a portare il movimento resta lo sfondo che sfuma. Per
     animarlo davvero servirebbe uno <span> dentro il link da spostare con
     transform, cioè toccare il markup in soglia-open.php e header.php. */
  transition:background-color .25s var(--ease);
}
.sg-drop-inner a:hover{background:var(--paper-2);padding-left:19px;}

/* ==========================================================================
   Responsive layer — consolidated from all Soglia pages.
   ========================================================================== */

/* Homepage product grid + why grid */
@media (max-width:1080px){
  .sg-prod{grid-template-columns:1fr 1fr !important;}
  .sg-why{grid-template-columns:1fr 1fr !important;}
  .sg-split{grid-template-columns:1fr !important;gap:36px !important;}
}

/* Product hero split + specs + phone number */
@media (max-width:1160px){
  .sg-tel-num{display:none !important;}
  .sg-btn-tel{padding:17px 18px !important;}
}
@media (max-width:1000px){
  .sg-specs{grid-template-columns:1fr !important;}
  .sg-feat{grid-template-columns:1fr 1fr !important;}
  .sg-var-grid{grid-template-columns:repeat(4,1fr) !important;}
}

/* Category grids switch at 900 (consistent porte ↔ infissi) */
@media (max-width:900px){
  .sg-coll-grid{grid-template-columns:1fr 1fr !important;}
}

/* Nav collapses to burger early enough that links never wrap */
@media (max-width:1080px){
  .sg-nav-links{display:none !important;}
  .sg-burger{display:flex !important;}
}

@media (max-width:820px){
  .sg-hero-meta{gap:22px 30px !important;}
  .sg-metodo{grid-template-columns:1fr 1fr !important;}
  .sg-stats{grid-template-columns:1fr 1fr !important;gap:0 !important;}
  .sg-stat{border-right:none !important;border-bottom:1px solid rgba(241,236,228,.16) !important;padding:30px 0 !important;}
  .sg-gallery{grid-template-columns:1fr 1fr !important;}
  .sg-det-grid{grid-template-columns:1fr 1fr !important;}
  .sg-acc-grid{grid-template-columns:repeat(4,1fr) !important;}
  .sg-cta-row{flex-direction:column !important;align-items:stretch !important;}
  .sg-foot-grid{grid-template-columns:1fr 1fr !important;}
}

@media (max-width:760px){
  .sg-phero{grid-template-columns:1fr !important;}
}

@media (max-width:560px){
  .sg-prod{grid-template-columns:1fr !important;}
  .sg-why{grid-template-columns:1fr !important;}
  .sg-metodo{grid-template-columns:1fr !important;}
  .sg-gallery{grid-template-columns:1fr !important;}
  .sg-coll-grid{grid-template-columns:1fr !important;}
  .sg-stats{grid-template-columns:1fr !important;}
  .sg-feat{grid-template-columns:1fr !important;}
  .sg-det-grid{grid-template-columns:1fr !important;}
  .sg-stipiti{grid-template-columns:1fr 1fr !important;}
  .sg-acc-grid{grid-template-columns:repeat(3,1fr) !important;}
  .sg-acc-grid-lg{grid-template-columns:1fr !important;}
  .sg-foot-grid{grid-template-columns:1fr !important;}
  .sg-btn{width:100%;justify-content:center;}
  .sg-hero-cta{display:grid !important;grid-template-columns:1fr auto;flex-wrap:nowrap !important;}
  .sg-hero-cta .sg-btn-tel{width:auto !important;justify-content:center;}
}

/* Pagina Zanzariere (redesign 2026-07-06): griglia tipologie 3 col + split perché/FAQ */
@media (max-width:820px){
  .sg-metodo3{grid-template-columns:1fr 1fr !important;}
  .sg-feat2{grid-template-columns:1fr !important;}
}
@media (max-width:560px){
  .sg-metodo3{grid-template-columns:1fr !important;}
  .sg-filters{overflow-x:auto;flex-wrap:nowrap !important;-webkit-overflow-scrolling:touch;padding-bottom:14px !important;}
}

@media (prefers-reduced-motion:reduce){
  .sg-kb{animation:none !important;}
  body.soglia *{scroll-behavior:auto !important;}
}


/* ==========================================================================
   Cookie consent — MUTAT din main.css (2026-07-06): main.css NON e caricato
   sulle pagine Soglia (home/porte/infissi), quindi il banner restava senza
   stile e la pagina saltava in fondo. soglia.css e caricato OVUNQUE.
   ========================================================================== */
/* ============================================
   v4.14.2 — Cookie consent: banner full-width che blocca il sito (Consent Mode v2)
   Overlay trasparente: intercetta click/hover sulla pagina, lo scroll resta libero.
   Banner premium in basso, bianco, con hairline oro (firma "bordo telaio").
   ============================================ */

/* Overlay bloccante: cattura i pointer-events sulla pagina ma lascia scorrere. */
.ps-consent-overlay {
  position: fixed;
  inset: 0;
  z-index: 999998;
  background: rgba(10,9,8,0);   /* invisibile, ma intercetta click/hover */
  opacity: 0;
  transition: opacity var(--t-med, .45s) var(--ease, ease);
}
.ps-consent-overlay[hidden] { display: none; }
.ps-consent-overlay.is-visible { opacity: 1; background: rgba(10,9,8,.06); }

/* Banner */
.ps-consent {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 999999;
  background: #ffffff;
  color: var(--fg-on-light, #1a1816);
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -28px 70px -18px rgba(10,9,8,.30);
  transform: translateY(102%);
  transition: transform var(--t-med, .5s) var(--ease-out, cubic-bezier(0.23,1,0.32,1));
  will-change: transform;
}
.ps-consent[hidden] { display: none; }
.ps-consent.is-visible { transform: translateY(0); }

/* Firma: hairline oro lungo il bordo superiore (il "bordo telaio"). */
.ps-consent::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  border-radius: 22px 22px 0 0;
  background: linear-gradient(90deg, transparent, var(--clay, #A0563B) 22%, #B26A4F 50%, var(--clay, #A0563B) 78%, transparent);
}

.ps-consent-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(14px, 2.2vh, 22px) clamp(22px, 5vw, 56px);
  display: flex;
  align-items: center;
}

.ps-consent-view {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(264px, 26vw, 340px);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
}
.ps-consent-view[hidden] { display: none; }

/* Vista principale: barra bassa e compatta, copre ~10% dello schermo in basso,
   testo a sinistra e pulsanti in fila a destra. La vista "impostazioni" resta
   sulla griglia estesa (si apre solo su richiesta). */
.ps-consent-view[data-view="main"] {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(16px, 3vw, 40px);
  align-items: center;
}
.ps-consent-view[data-view="main"] .ps-consent-copy { flex: 1 1 340px; min-width: 0; }
.ps-consent-view[data-view="main"] .ps-consent-eyebrow { display: none; }
.ps-consent-view[data-view="main"] .ps-consent-title { font-size: clamp(19px, 2.3vw, 24px); margin: 0 0 5px; }
.ps-consent-view[data-view="main"] .ps-consent-text { font-size: 13.5px; line-height: 1.5; margin: 0 0 4px; max-width: 92ch; }
.ps-consent-view[data-view="main"] .ps-consent-subtext { font-size: 12.5px; }
.ps-consent-view[data-view="main"] .ps-consent-actions {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  align-self: center;
  margin-left: auto;
}
.ps-consent-view[data-view="main"] .ps-consent-btn { padding: 12px 22px; }
.ps-consent-view[data-view="main"] .ps-btn-settings { padding: 12px 14px; }

.ps-consent-eyebrow {
  font-family: var(--font-body, var(--sans));
  font-size: 12px; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--clay-deep, #7F4130);
  margin: 0 0 14px;
}
.ps-consent-title {
  font-family: var(--font-display, var(--serif));
  font-weight: 500;
  font-size: clamp(30px, 4.2vw, 38px);
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--fg-on-light, #1a1816);
  margin: 0 0 16px;
}
.ps-consent-title em { font-style: italic; color: var(--clay-deep, #7F4130); }
.ps-consent-text {
  font-family: var(--font-body, var(--sans));
  font-size: 16px; line-height: 1.6;
  color: var(--fg-on-light-2, #585249);
  max-width: 64ch;
  margin: 0 0 14px;
}
.ps-consent-subtext {
  font-family: var(--font-body, var(--sans));
  font-size: 13.5px; line-height: 1.55;
  color: var(--fg-on-light-3, #8a8275);
  margin: 0;
}
.ps-consent-subtext a { color: var(--clay-deep, #7F4130); text-decoration: underline; text-underline-offset: 2px; }
.ps-consent-subtext a:hover { color: var(--clay, #A0563B); }

/* Azioni: impilate, primaria in alto, target ampi. */
.ps-consent-actions { display: flex; flex-direction: column; gap: 12px; align-self: center; }
.ps-consent-btn {
  font-family: var(--font-body, var(--sans));
  font-size: 14px; font-weight: 600;
  letter-spacing: .04em;
  padding: 16px 26px;
  border-radius: 10px;
  cursor: pointer;
  border: 1px solid transparent;
  text-align: center;
  transition: background-color var(--t-fast,.24s) ease, color var(--t-fast,.24s) ease,
              border-color var(--t-fast,.24s) ease, transform var(--t-press,.14s) ease;
}
.ps-btn-accept {
  background: var(--clay, #A0563B);
  color: var(--paper, #F1ECE4);
  box-shadow: 0 10px 24px -10px rgba(160,86,59,.55);
}
.ps-btn-accept:hover { background: #B26A4F; transform: translateY(-1px); }
.ps-btn-reject {
  background: transparent;
  color: var(--fg-on-light, #1a1816);
  border-color: rgba(26,24,22,.22);
}
.ps-btn-reject:hover { border-color: var(--fg-on-light, #1a1816); background: rgba(26,24,22,.04); }
.ps-btn-settings {
  background: transparent;
  color: var(--fg-on-light-2, #585249);
  padding: 10px 26px;
  text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: rgba(26,24,22,.25);
}
.ps-btn-settings:hover { color: var(--clay-deep, #7F4130); text-decoration-color: currentColor; }
.ps-consent-btn:active { transform: scale(.98); }
.ps-consent-btn:focus-visible { outline: 2px solid var(--clay-deep, #7F4130); outline-offset: 3px; }

/* Vista preferenze */
.ps-consent-prefs { display: flex; flex-direction: column; margin-top: 22px; }
.ps-pref-row {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 18px 0;
  border-top: 1px solid var(--line-light, rgba(26,24,22,.12));
  margin: 0;
}
.ps-pref-row:last-child { border-bottom: 1px solid var(--line-light, rgba(26,24,22,.12)); }
.ps-pref-row > div { display: flex; flex-direction: column; gap: 4px; }
.ps-pref-row strong { font-family: var(--font-body, var(--sans)); font-size: 15px; font-weight: 600; color: var(--fg-on-light, #1a1816); }
.ps-pref-row span:not(.ps-switch):not(.ps-pref-fixed) { font-family: var(--font-body, var(--sans)); font-size: 13px; line-height: 1.5; color: var(--fg-on-light-3, #8a8275); }
.ps-pref-fixed { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--clay-deep, #7F4130); flex: none; }

/* Toggle */
.ps-switch { position: relative; flex: none; width: 50px; height: 28px; cursor: pointer; }
.ps-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ps-switch-track { position: absolute; inset: 0; border-radius: 999px; background: rgba(26,24,22,.18); transition: background-color var(--t-fast,.24s) ease; }
.ps-switch-track::after {
  content: ""; position: absolute; top: 3px; left: 3px;
  width: 22px; height: 22px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.3);
  transition: transform var(--t-fast,.24s) var(--ease-out, ease);
}
.ps-switch input:checked + .ps-switch-track { background: var(--clay, #A0563B); }
.ps-switch input:checked + .ps-switch-track::after { transform: translateX(22px); }
.ps-switch input:focus-visible + .ps-switch-track { outline: 2px solid var(--clay-deep, #7F4130); outline-offset: 3px; }

.ps-consent-actions--settings { flex-direction: column; gap: 12px; }

/* Mobile: barra bassa compatta. Accetta/Rifiuta in fila, Impostazioni sotto. */
@media (max-width: 820px) {
  .ps-consent { border-radius: 18px 18px 0 0; }
  .ps-consent-inner { padding: 18px 20px 22px; align-items: center; }
  .ps-consent-view { grid-template-columns: 1fr; gap: 20px; }
  .ps-consent-title { font-size: clamp(22px, 6.4vw, 26px); }
  .ps-consent-text { font-size: 14.5px; }
  .ps-consent-actions { width: 100%; }
  .ps-consent-btn { width: 100%; font-size: 15px; padding: 15px 20px; }

  .ps-consent-view[data-view="main"] { gap: 14px; }
  .ps-consent-view[data-view="main"] .ps-consent-copy { flex: 1 1 100%; }
  .ps-consent-view[data-view="main"] .ps-consent-actions { width: 100%; margin-left: 0; }
  .ps-consent-view[data-view="main"] .ps-btn-accept,
  .ps-consent-view[data-view="main"] .ps-btn-reject { flex: 1 1 0; width: auto; }
  .ps-consent-view[data-view="main"] .ps-btn-settings { flex: 1 1 100%; width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .ps-consent, .ps-consent-overlay, .ps-switch-track, .ps-switch-track::after { transition: none; }
}

/* Social del footer — il footer è condiviso da tutte le pagine (anche Soglia),
   quindi lo stato hover vive qui e non in pages.css. */
.foot-social a{transition:border-color .4s var(--ease),color .4s var(--ease)}
.foot-social a:hover{border-color:rgba(241,236,228,.5);color:var(--paper)}
.foot-social a:focus-visible{outline:2px solid var(--paper);outline-offset:2px}


/* ---------------------------------------------------------------
   SCHEDE SOCIAL — condivise fra home (Soglia) e Chi Siamo.
   Marchi ufficiali in monocromia: il colore del brand arriva solo
   al passaggio del mouse, così le tre schede restano una famiglia
   e non tre loghi incollati sopra la pagina.
   --------------------------------------------------------------- */
.sl-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sl-card{
  display:flex;align-items:center;gap:14px;padding:18px 20px;
  border:1px solid var(--line);background:transparent;color:var(--ink);
  transition:border-color .4s var(--ease),background .4s var(--ease),color .4s var(--ease);
}
.sl-logo{display:flex;flex:0 0 auto;color:var(--ink);transition:color .4s var(--ease)}
.sl-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.sl-net{font-family:var(--sans);font-weight:500;font-size:16px;line-height:1.15}
.sl-handle{
  font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-70);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sl-go{margin-left:auto;flex:0 0 auto;color:var(--ink-45);transition:color .4s var(--ease),transform .4s var(--ease)}

.sl-card:hover{background:var(--paper-2)}
.sl-card:hover .sl-go{transform:translate(2px,-2px)}
.sl-card:hover .sl-logo{color:var(--brand)}
.sl-card:hover{border-color:var(--brand)}
.sl-card[data-net="instagram"]{--brand:#E4405F}
.sl-card[data-net="facebook"] {--brand:#1877F2}
.sl-card[data-net="tiktok"]   {--brand:#010101}
.sl-card:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* Su fondo scuro (footer / sezioni is-deep) */
.sl-cards.is-dark .sl-card{border-color:rgba(241,236,228,.2);color:var(--paper)}
.sl-cards.is-dark .sl-logo{color:var(--paper)}
.sl-cards.is-dark .sl-handle{color:rgba(241,236,228,.55)}
.sl-cards.is-dark .sl-go{color:rgba(241,236,228,.4)}
.sl-cards.is-dark .sl-card:hover{background:rgba(241,236,228,.06)}
.sl-cards.is-dark .sl-card[data-net="tiktok"]{--brand:#25F4EE}

@media (max-width:820px){ .sl-cards{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){
  .sl-card,.sl-logo,.sl-go{transition:none}
  .sl-card:hover .sl-go{transform:none}
}


/* ==========================================================================
   INTRO — i due battenti che si aprono. Solo in home, una volta per
   visitatore; la logica sta in soglia.js.
   Il fondo è quasi nero e la luce arriva calda da dietro la porta: qui
   l'accento resta ottone, non terracotta. È l'unica schermata del sito
   illuminata da dietro, e l'ottone è ciò che fa una maniglia vera.
   z-index: deve stare SOPRA il banner cookie (.ps-consent, 999999),
   altrimenti al primo accesso il banner compare sopra le porte chiuse.
   ========================================================================== */
#page-intro{position:fixed;inset:0;z-index:1000000;background:#14100C;overflow:hidden;display:flex;align-items:center;justify-content:center;pointer-events:all;transition:background-color .9s cubic-bezier(.65,.05,.36,1),opacity .6s ease}
body.intro-active{overflow:hidden}
#page-intro.door-done{display:none}
#page-intro::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 46%,rgba(0,0,0,0) 42%,rgba(0,0,0,.42) 100%);opacity:1;transition:opacity .9s ease;z-index:5}
#page-intro.door-open::after{opacity:0}
.intro-stage{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform:scale(1);opacity:1;transition:transform 1.15s cubic-bezier(.65,.05,.36,1),opacity 1s ease;will-change:transform,opacity}
.intro-doors{position:absolute;inset:0;display:flex;perspective:1900px;perspective-origin:50% 50%}
/* la luce che filtra dalla fessura fra i due battenti */
.intro-doors::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:clamp(90px,28vw,160px);transform:translateX(-50%);pointer-events:none;background:radial-gradient(46% 62% at 50% 50%,rgba(255,214,150,.32) 0%,rgba(255,196,120,.10) 45%,rgba(0,0,0,0) 72%);opacity:0;animation:intro-lightseam 2.6s ease-in-out .5s infinite alternate;z-index:0}
@keyframes intro-lightseam{from{opacity:.35}to{opacity:.85}}
#page-intro.door-open .intro-doors::before{animation:none;opacity:0;transition:opacity 1.1s ease}
.intro-leaf{position:relative;flex:1 1 50%;height:100%;transform-style:preserve-3d;background:linear-gradient(180deg,rgba(255,236,200,.16) 0%,rgba(0,0,0,0) 24%,rgba(0,0,0,.40) 100%),linear-gradient(90deg,rgba(255,222,170,.05) 0%,rgba(0,0,0,0) 18%,rgba(0,0,0,0) 82%,rgba(255,222,170,.05) 100%),repeating-linear-gradient(90deg,rgba(0,0,0,.13) 0px,rgba(0,0,0,0) 3px,rgba(214,170,110,.05) 7px,rgba(0,0,0,0) 11px),linear-gradient(100deg,#4c3421 0%,#35200f 50%,#21130a 100%);transition:transform 1.7s cubic-bezier(.16,.84,.28,1);will-change:transform;backface-visibility:hidden}
.intro-leaf-l{transform-origin:left center;box-shadow:inset 0 0 170px rgba(0,0,0,.46),inset -1px 0 0 rgba(230,198,125,.30)}
.intro-leaf-r{transform-origin:right center;box-shadow:inset 0 0 170px rgba(0,0,0,.46),inset 1px 0 0 rgba(230,198,125,.30)}
/* spessore del battente: si vede solo quando la porta ruota */
.intro-leaf::before{content:'';position:absolute;top:0;bottom:0;width:32px;background:linear-gradient(90deg,#160d06,#3c2615 55%,#110a04)}
.intro-leaf-l::before{right:0;transform-origin:right center;transform:rotateY(-90deg)}
.intro-leaf-r::before{left:0;transform-origin:left center;transform:rotateY(90deg)}
.intro-panel{display:block;position:absolute;left:15%;right:15%;border-radius:3px;background:linear-gradient(158deg,rgba(0,0,0,.24) 0%,rgba(0,0,0,0) 42%,rgba(214,170,110,.05) 100%);box-shadow:inset 4px 4px 12px rgba(0,0,0,.7),inset -3px -3px 10px rgba(255,214,160,.07),0 0 0 2px rgba(0,0,0,.5),0 0 0 3px rgba(214,170,110,.10),2px 3px 7px rgba(0,0,0,.3)}
.intro-panel-top{top:7%;height:23%}
.intro-panel-mid{top:35%;height:41%}
.intro-panel-bot{top:81%;height:12%}
.intro-knob{display:block;position:absolute;top:50%;width:9px;height:clamp(96px,17vh,148px);border-radius:5px;transform:translateY(-50%);background:linear-gradient(90deg,#553c15 0%,#9a7833 22%,#e6c67d 46%,#f7e4ab 52%,#c79a4c 70%,#66481b 100%);box-shadow:0 10px 26px rgba(0,0,0,.6),0 0 22px rgba(230,198,125,.18),0 0 0 1px rgba(0,0,0,.35),inset 0 2px 3px rgba(255,255,255,.5),inset 0 -2px 3px rgba(0,0,0,.42)}
.intro-leaf-l .intro-knob{right:8%}
.intro-leaf-r .intro-knob{left:8%}
#page-intro.door-open{background-color:transparent}
#page-intro.door-open .intro-leaf-l{transform:rotateY(118deg)}
#page-intro.door-open .intro-leaf-r{transform:rotateY(-118deg)}
#page-intro.door-open .door-logo{opacity:0;transform:translateY(-14px)}
#page-intro.door-enter{opacity:0;pointer-events:none}
#page-intro.door-enter .intro-stage{transform:scale(1.4);opacity:0}
.door-logo{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;transition:opacity .45s ease .05s,transform .45s ease .05s;will-change:opacity,transform;z-index:4;padding:0 24px;text-align:center}
.door-logo-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#E6C67D;margin-bottom:22px;opacity:0;animation:intro-eyebrow-in 1s cubic-bezier(.2,.7,.3,1) .15s forwards}
.door-logo-name{font-family:var(--serif);font-weight:400;font-size:clamp(38px,7.2vw,84px);line-height:1.02;text-align:center;letter-spacing:-.015em;color:var(--paper,#F1ECE4);opacity:0;animation:intro-name-in .95s cubic-bezier(.2,.7,.3,1) .3s forwards}
.door-logo-name em{font-style:italic;color:#E6C67D}
.door-logo-rule{width:64px;height:1px;margin-top:22px;background:linear-gradient(90deg,rgba(230,198,125,0) 0%,#E6C67D 50%,rgba(230,198,125,0) 100%);transform:scaleX(0);animation:intro-rule-in .8s cubic-bezier(.2,.7,.3,1) .75s forwards}
.door-logo-tagline{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(241,236,228,.72);margin-top:20px;opacity:0;animation:intro-tag-in .9s ease .9s forwards}
@keyframes intro-eyebrow-in{from{opacity:0;letter-spacing:.55em}to{opacity:1;letter-spacing:.26em}}
@keyframes intro-name-in{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes intro-rule-in{to{transform:scaleX(1)}}
@keyframes intro-tag-in{from{opacity:0;transform:translateY(8px)}to{opacity:.9;transform:none}}
/* Chi ha chiesto meno movimento non vede l'overlay: la home si apre subito. */
@media (prefers-reduced-motion:reduce){#page-intro{display:none}}
@media (max-width:600px){
  .intro-panel{left:12%;right:12%}
  .intro-knob{width:7px}
  .door-logo-eyebrow{margin-bottom:14px;font-size:10px;letter-spacing:.22em}
  .door-logo-tagline{margin-top:16px;font-size:10px}
}
/* Schermi bassi in orizzontale (telefono ruotato): niente riga extra. */
@media (max-height:460px){
  .door-logo-tagline,.door-logo-rule{display:none}
  .door-logo-eyebrow{margin-bottom:10px}
}


/* ==========================================================================
   RAIL SOCIAL — colonnina fissa sul bordo sinistro, su tutte le pagine.
   Scheda chiara sopra la fotografia: i marchi restano leggibili sia sull'hero
   scuro sia sulle sezioni su carta, senza doversi adattare a ogni fondale.
   ========================================================================== */
.sg-rail{
  position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:110;
  display:flex;flex-direction:column;align-items:center;
  padding:14px 7px 16px;
  background:var(--paper);
  border-radius:0 20px 20px 0;
  box-shadow:0 20px 48px -20px rgba(28,23,18,.45),0 2px 6px rgba(28,23,18,.10);
}
.sg-rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center}
.sg-rail-list a{
  display:flex;align-items:center;justify-content:center;width:42px;height:42px;
  color:var(--ink);opacity:.82;
  transition:opacity .3s var(--ease),color .3s var(--ease),transform .3s var(--ease);
}
.sg-rail-list a:hover{opacity:1;color:var(--brand);transform:scale(1.12)}
.sg-rail-list a[data-net="instagram"]{--brand:#E4405F}
.sg-rail-list a[data-net="facebook"]{--brand:#1877F2}
.sg-rail-list a[data-net="tiktok"]{--brand:#010101}
.sg-rail-list a:focus-visible{outline:2px solid var(--ink);outline-offset:-4px;border-radius:50%}

.sg-rail-rule{display:block;width:14px;height:1px;background:var(--line);margin:8px 0 10px}
/* L'etichetta si legge dal basso verso l'alto, come sulle insegne verticali. */
.sg-rail-label{
  writing-mode:vertical-rl;transform:rotate(180deg);
  font-family:var(--mono);font-size:10px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--ink-70);white-space:nowrap;
}

/* Il margine delle pagine è clamp(20px,5vw,64px): sotto i 1280px scende sotto
   i 64px e la colonnina (56px) comincia a mangiarsi l'inizio del testo. Da lì
   in giù sparisce, e i social restano nel footer e nella sezione Social. */
@media (max-width:1279px){ .sg-rail{display:none} }
@media (prefers-reduced-motion:reduce){
  .sg-rail-list a{transition:none}
  .sg-rail-list a:hover{transform:none}
}


/* --------------------------------------------------------------------------
   I marchi social sono <svg> dentro un <a>. Immagini e SVG sono trascinabili
   per impostazione predefinita: se il mouse si sposta di due pixel mentre si
   preme, il click diventa un trascinamento, compare il cursore "vietato" e la
   pagina non si apre. Sul rail, incollato al bordo sinistro, succede spesso.
   Il glifo non deve ricevere il puntatore: lo prende sempre il link.
   -------------------------------------------------------------------------- */
.sg-rail a svg,
.sl-card svg,
.foot-social a svg{ pointer-events:none; }
.sg-rail a,
.sl-card,
.foot-social a{
  -webkit-user-drag:none; -khtml-user-drag:none; -moz-user-drag:none; user-drag:none;
  -webkit-user-select:none; user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.sg-rail a img,.sl-card img,.foot-social a img{ -webkit-user-drag:none; user-drag:none; }

/* ==========================================================================
   v5.6.8 — Regole che DEVONO valere ovunque.

   Stanno qui e non in premium.css perché inc/enqueue.php, sulle pagine Soglia
   (home + porte/infissi/persiane/blindate/zanzariere), carica SOLO questo
   foglio e poi fa return: main.css, pages.css e premium.css non arrivano mai.
   soglia.css invece è caricato su tutte le pagine (come 'ps-soglia-chrome'
   sulle pagine classiche), quindi è l'unico posto davvero globale.
   ========================================================================== */

/* ── Nav sopra hero ────────────────────────────────────────────────────────
   soglia.js commuta .sg-nav-solid; senza queste regole la barra resterebbe
   trasparente sopra il contenuto chiaro, cioè illeggibile.
   'color' va !important: lo style inline del nav dark imposta var(--paper). */
#sg-nav[data-mode="dark"].sg-nav-solid{
  background:rgba(241,236,228,.92);
  backdrop-filter:saturate(1.2) blur(12px);
  -webkit-backdrop-filter:saturate(1.2) blur(12px);
  box-shadow:0 1px 0 rgba(28,23,18,.1);
  color:#1C1712 !important;
}

/* ── Reel dai cantieri in home (#social) ───────────────────────────────────
   Le stesse classi esistono in pages.css per Chi Siamo, ma con i token del
   tema classico (--gold, --bg-deep, --sp-4) che qui NON esistono: copiarle
   così com'erano dava fondo trasparente e margini invalidi. Riscritte con i
   token Soglia e limitate a #social, così Chi Siamo resta esattamente com'è. */
#social .reel-rail{
  display:flex; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
  padding-bottom:6px; scrollbar-width:thin;
}
#social .reel-track{list-style:none;margin:0;padding:0;display:flex;gap:14px}
#social .reel{flex:0 0 auto;width:clamp(186px,44vw,244px);scroll-snap-align:start}
#social .reel-frame{
  position:relative; aspect-ratio:9/16; overflow:hidden;
  background:var(--ink); border-radius:0;
  box-shadow:0 4px 10px -4px rgba(28,23,18,.14),0 18px 44px -20px rgba(28,23,18,.30);
}
#social .reel-video{width:100%;height:100%;display:block;object-fit:cover}
#social .reel-audio{
  position:absolute; top:10px; right:10px; z-index:2;
  display:inline-flex; align-items:center; gap:6px; padding:9px 11px;
  font-family:var(--mono); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; cursor:pointer; border-radius:0;
  background:rgba(28,23,18,.55); color:var(--paper);
  border:1px solid rgba(241,236,228,.3);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
#social .reel-audio:not(.is-muted){background:var(--clay);color:var(--paper);border-color:var(--clay)}
#social .reel-audio:hover{border-color:var(--clay)}
#social .reel-bar{
  position:absolute; left:0; bottom:0; height:2px; width:0; z-index:2;
  background:var(--clay); pointer-events:none;
}
#social .reel-cap{margin:12px 0 0;font-size:13px;line-height:1.45;color:var(--ink-70)}

@media (max-width:1024px){
  /* Punti del carosello: la barra resta 34x3px come da disegno, ma l'area
     toccabile sale a 44px con uno pseudo-elemento. Nulla cambia a schermo. */
  [data-qdot]{position:relative}
  [data-qdot]::before{
    content:""; position:absolute; left:-6px; right:-6px;
    top:50%; transform:translateY(-50%); height:44px;
  }
  #sg-mclose{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  #sg-burger{min-width:44px;min-height:44px}
  /* Voci del menu mobile: erano 330x29px, ed è la navigazione principale
     sul telefono, da cui arriva la maggior parte dei visitatori. */
  #sg-mobile a{display:flex;align-items:center;min-height:44px}
  .site-footer a{display:inline-flex;align-items:center;min-height:44px}
  /* Tasto audio del reel: 57x34px. Su un riquadro largo 186px un bottone alto
     44px sarebbe pesante da vedere, quindi resta com'è e si allarga solo
     l'area sensibile al dito. */
  #social .reel-audio::before{
    content:""; position:absolute; left:-4px; right:-4px;
    top:50%; transform:translateY(-50%); height:44px;
  }
}

/* ── Corpi minimi su mobile ────────────────────────────────────────────────
   Pubblico 45+: niente testo sotto i 12px. Servono ENTRAMBE le forme del
   selettore: soglia.js riscrive lo style di ogni [data-reveal] e il browser
   ri-serializza la stringa con lo spazio dopo i due punti. Con la sola forma
   compatta gli elementi animati — cioè quasi tutti — non verrebbero presi. */
@media (max-width:640px){
  section [style*="font-size:9px"],   section [style*="font-size: 9px"],
  section [style*="font-size:10px"],  section [style*="font-size: 10px"],
  section [style*="font-size:11px"],  section [style*="font-size: 11px"],
  .site-footer [style*="font-size:10px"], .site-footer [style*="font-size: 10px"],
  .site-footer [style*="font-size:11px"], .site-footer [style*="font-size: 11px"],
  .sl-handle,
  .sg-rail-label{font-size:12px !important}
}

@media (prefers-reduced-motion:reduce){
  #social .reel-audio{transition:none}
}
