/* ==========================================================================
   Studio Bilanzuolo — shared.css
   Token di design + primitive globali (header, burger, hero, footer,
   modale, lightbox, cursore). Condiviso da tutte le pagine del tema.
   ------------------------------------------------------------------
   Origine: prototipi Claude Design. Ripulito per produzione:
   - rimosso il blocco #variantPanel (strumento di sola fase design)
   ========================================================================== */

/* ===== Design tokens ===== */
:root{
  --cream:#F8F5F0;
  --cream-2:#EDE8DF;
  --ink:#2B2622;
  --ink-soft:#453F38;
  --ink-mute:#7D7365;
  --line:#BFB5A3;
  --blue:#2A4869;
  --blue-soft:#3A6080;
  --blue-pale:#E6EEF8;
  --terracotta:#A45A52;
  --terracotta-d:#8F4A42;
  --wine-deep:#5E2F2B;
  --brick-light:#D4917A;
}

/* ===== Reset minimo ===== */
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:var(--cream);color:var(--ink);overflow-x:hidden}
body{font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","ss02"}
img{max-width:100%;display:block}
a{color:inherit}

/* ===== Cursore custom ===== */
.cursor{position:fixed;width:16px;height:16px;background:rgba(30,77,140,0.5);border-radius:50%;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);transition:width 0.3s,height 0.3s,background 0.3s;mix-blend-mode:multiply}
.cursor.hover{width:40px;height:40px;background:rgba(30,77,140,0.35)}
@media(hover:none){.cursor{display:none}}

/* ===== Header ===== */
.site-header{position:fixed;top:0;left:0;right:0;height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,4vw,44px);z-index:100;transition:background 0.4s,height 0.3s;background:transparent}
/* Compensa la barra admin di WordPress quando si e' loggati (solo per chi e' connesso) */
.admin-bar .site-header{top:32px}
@media screen and (max-width:782px){.admin-bar .site-header{top:46px}}
.site-header.solid{background:rgba(248,245,240,0.97);backdrop-filter:blur(10px);height:72px;border-bottom:1px solid rgba(43,38,34,0.06)}
.hamburger{background:none;border:none;padding:0;width:28px;height:28px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:none}
.hamburger span{display:block;width:22px;height:3px;flex-shrink:0;background:var(--cream);transition:background 0.4s}
/* Header chiaro: lineette esterne vinaccia profondo come il pannello del menu, centrale mattone come la voce attiva */
.site-header.solid .hamburger span{background:var(--wine-deep)}
.site-header.solid .hamburger span:nth-child(2){background:var(--brick-light)}
.header-logo{position:absolute;left:50%;transform:translateX(-50%);color:var(--cream);transition:color 0.4s}
.header-logo svg{height:clamp(38px,5vw,52px);width:auto;display:block}
.header-logo img{height:clamp(38px,5vw,52px);width:auto;display:block}
.site-header.solid .header-logo{color:var(--ink)}
.header-logo:link,.header-logo:visited,.header-logo:hover,.header-logo:active{color:var(--cream)}
.site-header.solid .header-logo:link,.site-header.solid .header-logo:visited,.site-header.solid .header-logo:hover,.site-header.solid .header-logo:active{color:var(--ink)}
.lang-switch{font-size:10px;letter-spacing:0.2em;color:rgba(248,245,240,0.7);font-weight:400;transition:color 0.4s}
.lang-switch .active{color:var(--cream);font-weight:500}
.site-header.solid .lang-switch{color:var(--ink-mute)}
.site-header.solid .lang-switch .active{color:var(--ink)}

/* ===== Hero nav side links ===== */
.hero-back,.hero-next{position:fixed;top:50%;transform:translateY(-50%);z-index:90;font-size:11px;letter-spacing:0.22em;font-weight:500;text-decoration:none;cursor:none;text-transform:uppercase;transition:color 0.3s,opacity 0.25s,visibility 0.25s}
.hero-back{left:clamp(20px,4vw,44px)}
.hero-next{right:clamp(20px,4vw,44px);display:flex;align-items:center;gap:8px}
.hero-next svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hero-back.on-hero,.hero-next.on-hero{color:rgba(248,245,240,0.8)}
.hero-back.on-hero:hover,.hero-next.on-hero:hover{color:var(--cream)}
/* Fuori dall'immagine grande le scritte spariscono: invisibili, non cliccabili e saltate dal tasto Tab */
.hero-back:not(.on-hero),.hero-next:not(.on-hero){opacity:0;visibility:hidden;pointer-events:none}

/* ===== Burger overlay ===== */
.burger-backdrop{position:fixed;inset:0;background:rgba(43,38,34,0.32);backdrop-filter:blur(4px);z-index:140;opacity:0;visibility:hidden;transition:all 0.4s}
.burger-backdrop.open{opacity:1;visibility:visible}
.burger-overlay{position:fixed;top:0;left:0;bottom:0;width:min(480px,85vw);background:rgba(94,47,43,0.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:150;transform:translateX(-100%);transition:transform 0.5s cubic-bezier(0.25,0.1,0.25,1);display:flex;flex-direction:column;padding:clamp(70px,10vh,110px) clamp(32px,5vw,60px) clamp(28px,5vh,48px)}
.burger-overlay.open{transform:translateX(0)}
.burger-close{position:absolute;top:30px;right:clamp(20px,4vw,40px);background:none;border:none;font-size:26px;color:rgba(255,255,255,0.7);cursor:none;line-height:1}
.burger-close:hover{color:#fff}
.burger-nav{list-style:none;display:flex;flex-direction:column;gap:clamp(2px,0.8vh,8px);flex:1}
.burger-nav a{text-decoration:none;font-family:'Montserrat',sans-serif;font-size:clamp(32px,5vw,52px);font-weight:300;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.86);cursor:none;line-height:1.15;transition:color 0.3s,transform 0.3s;display:inline-block}
.burger-nav a:hover{color:#fff;transform:translateX(6px)}
.burger-nav a.current,.burger-nav li.current-menu-item > a{color:var(--brick-light);font-weight:600}
/* Riga vuota nel menu: occupa spazio ma e' invisibile, non cliccabile e ignorata da tastiera e lettori di schermo */
.burger-nav li.menu-spacer{visibility:hidden;pointer-events:none}
.burger-contact{margin-top:clamp(24px,4vh,40px);padding-top:18px;border-top:1px solid rgba(255,255,255,0.18);display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:300;color:rgba(255,255,255,0.7)}
.burger-contact a{color:rgba(255,255,255,0.7);text-decoration:none}
.burger-contact a:hover{color:#fff}
.burger-legal-links{margin-top:14px;display:flex;gap:10px;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.5)}
.burger-legal-links a{color:inherit;text-decoration:none}
.burger-legal-links a:hover{color:rgba(255,255,255,0.9)}
.burger-logo{position:absolute;bottom:220px;left:clamp(32px,5vw,60px);color:#fff;opacity:0.88}
.burger-logo svg{height:clamp(36px,5vw,36px);width:auto;display:block}

/* ===== Hero ===== */
.hero{position:relative;width:100%;height:100vh;overflow:hidden}
.hero-img-wrap{position:absolute;inset:-30% 0;height:160%;width:100%;will-change:transform}
.hero-img-wrap img{width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(30,27,24,0.55) 0%,rgba(30,27,24,0.1) 40%,transparent 65%)}

/* ===== Footer (layout originale da prototipo: logo grande + info/social + riga legale) ===== */
.site-footer{padding:clamp(28px,4vw,48px) clamp(14px,4vw,40px);border-top:1px solid var(--cream-2);background:var(--cream)}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:clamp(24px,4vw,50px)}
.footer-logo-orig{color:var(--ink);flex-shrink:0}
.footer-logo-orig svg,.footer-logo-orig img{height:clamp(48px,6vw,55px);width:auto;display:block}
.footer-center{display:flex;flex-direction:column;gap:10px}
.footer-info{display:flex;flex-direction:column;gap:3px;font-family:'Montserrat',sans-serif;font-size:clamp(9px,0.9vw,11px);font-weight:300;letter-spacing:0.1em;color:var(--ink-soft);text-transform:uppercase}
.footer-info a{color:var(--ink-soft);text-decoration:none}
.footer-info a:hover{color:var(--ink)}
.footer-social-orig{display:flex;flex-wrap:wrap;gap:clamp(12px,1.3vw,18px);align-items:center;margin-top:6px}
.footer-social-orig .social-icon{text-decoration:none;display:flex;align-items:center;cursor:none;background:none;border:none;width:auto;height:auto;padding:0;border-radius:0;color:inherit}
.footer-social-orig .social-icon:hover{background:none}
.footer-social-orig .social-icon svg{width:clamp(14px,1.5vw,18px);height:clamp(14px,1.5vw,18px);fill:var(--blue-soft);transition:fill 0.3s}
.footer-social-orig .social-icon:hover svg{fill:var(--wine-deep)}
.footer-social-orig .social-sep{width:1px;height:14px;background:var(--blue-soft);opacity:0.35}
.footer-legal-orig{max-width:1200px;margin:20px auto 0;padding-top:16px;border-top:1px solid var(--cream-2);display:flex;justify-content:space-between;gap:16px;font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:0.14em;color:var(--ink-mute);text-transform:uppercase;flex-wrap:wrap}
.footer-legal-orig a{color:inherit;text-decoration:none}
.footer-legal-orig a:hover{color:var(--ink)}
/* "Preferenze cookie" e' un <button> (riapre il banner Complianz) ma deve sembrare uno dei link accanto: azzera lo stile pulsante di Underscores */
.footer-legal-orig .footer-cookie-prefs{background:none;border:0;border-radius:0;padding:0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit;color:inherit;cursor:none}
.footer-legal-orig .footer-cookie-prefs:hover{color:var(--ink)}

@media(max-width:760px){
  .footer-inner{flex-direction:column;align-items:center;gap:16px;text-align:center}
  .footer-center{align-items:center;width:100%}
  .footer-info{align-items:center;text-align:center}
  .footer-social-orig{justify-content:center}
  .footer-legal-orig{justify-content:center;text-align:center}
}

/* ===== Modale (scheda tecnica) ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(30,40,60,0.28);z-index:200;display:flex;justify-content:flex-start;align-items:flex-start;padding:clamp(110px,14vh,150px) clamp(20px,4vw,80px) 20px;opacity:0;visibility:hidden;transition:all 0.4s;backdrop-filter:blur(6px)}
.modal-overlay.open{opacity:1;visibility:visible}
.modal{background:rgba(248,245,240,0.98);width:min(860px,100%);max-height:82vh;overflow-y:auto;padding:clamp(28px,4vw,48px);transform:translateY(24px);transition:transform 0.45s;border:1px solid rgba(43,38,34,0.08)}
.modal-overlay.open .modal{transform:translateY(0)}
.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--cream-2)}
.modal-title{font-family:'DM Serif Display',serif;font-size:clamp(22px,2.6vw,30px);font-weight:400;line-height:1.1}
.modal-dates{font-size:11px;letter-spacing:0.18em;color:var(--ink-mute);margin-top:6px;text-transform:uppercase}
.modal-close{background:none;border:none;font-size:26px;color:var(--ink-mute);cursor:none;line-height:1}
.modal-close:hover{color:var(--ink)}
.modal-body{display:grid;grid-template-columns:1fr 240px;gap:clamp(24px,3vw,44px)}
.modal-description{font-family:'Cormorant Garamond',serif;font-size:17px;line-height:1.7;color:var(--ink-soft)}
.modal-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--cream-2)}
.modal-section-title{font-size:10px;font-weight:500;letter-spacing:0.22em;color:var(--blue-soft);margin-bottom:8px;text-transform:uppercase}
.modal-section p{font-family:'Cormorant Garamond',serif;font-size:15px;color:var(--ink-soft);line-height:1.75;white-space:pre-line}
.modal-sidebar{border-left:1px solid var(--cream-2);padding-left:clamp(18px,2vw,28px)}
.modal-field{margin-bottom:16px}
.modal-field-label{font-size:9px;letter-spacing:0.22em;color:var(--blue-soft);font-weight:500;text-transform:uppercase}
.modal-field-value{font-size:13px;color:var(--ink);margin-top:3px;font-weight:500}
.modal-field-value.light{font-weight:400;font-size:12px;color:var(--ink-soft);line-height:1.5}
@media(max-width:768px){
  .modal-body{grid-template-columns:1fr}
  .modal-sidebar{border-left:none;padding-left:0;border-top:1px solid var(--cream-2);padding-top:18px}
}

/* ===== Lightbox ===== */
.lightbox{position:fixed;inset:0;background:rgba(20,24,30,0.94);z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all 0.35s;cursor:pointer}
.lightbox.open{opacity:1;visibility:visible}
.lightbox-inner img{max-width:90vw;max-height:80vh;object-fit:contain;transform:scale(0.96);transition:transform 0.35s}
.lightbox.open .lightbox-inner img{transform:scale(1)}
.lightbox-caption{text-align:center;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:rgba(191,181,163,0.85);margin-top:16px}
.lightbox-close{position:absolute;top:24px;right:28px;font-size:28px;color:rgba(191,181,163,0.75);background:none;border:none;cursor:pointer;z-index:301;line-height:1}
.lightbox-close:hover{color:var(--cream)}

/* ===== Utility ===== */
.blink{animation:blink 1.8s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.45}}

/* ===== Back-to-top (globale: home, metodo, studio) ===== */
.back-top-wrap{text-align:center;padding:clamp(20px,3vw,32px) 0}
.back-top{background:none;border:none;cursor:none;display:inline-flex;flex-direction:column;align-items:center;animation:blink 1.5s ease-in-out infinite}
.back-top svg{width:24px;height:24px;fill:none;stroke:var(--blue-soft);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;margin-top:-10px}
.back-top svg:first-child{margin-top:0}

/* ===== Protezione immagini (deterrente globale) ===== */
img{
  -webkit-user-drag:none;
  user-select:none;
  -webkit-user-select:none;
  -webkit-touch-callout:none;
}

/* Switch lingua nascosto fino alla versione inglese del sito.
   Per riattivarlo: eliminare questo blocco. */
.lang-switch{display:none}
