/* ==========================================================================
   Luigi Gabriele — sito statico (replica fedele del tema WordPress "Nifty")
   Font self-hosted (nessuna chiamata a Google), nessuna dipendenza esterna.
   ========================================================================== */

/* ---------- Font ---------- */
@font-face{font-family:"DM Serif Display";src:url(../fonts/dm-serif-display-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Serif";src:url(../fonts/ibm-plex-serif-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Serif";src:url(../fonts/ibm-plex-serif-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Serif";src:url(../fonts/ibm-plex-serif-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Serif";src:url(../fonts/ibm-plex-serif-latin-700-italic.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito-sans-latin-300-normal.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito-sans-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito-sans-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito-sans-latin-800-normal.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"League Spartan";src:url(../fonts/league-spartan-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* ---------- Token ---------- */
:root{
  --accent:#fa5603;
  --dark:#191919;
  --brown:#2d2928;
  --navy:#233645;
  --grey:#d6d5da;
  --text:#233645;
  --serif-display:"DM Serif Display",Georgia,serif;
  --serif:"IBM Plex Serif",Georgia,serif;
  --sans:"Nunito Sans",system-ui,sans-serif;
  --spartan:"League Spartan","Nunito Sans",sans-serif;
  --container:1200px;
  --gutter:clamp(20px,4vw,40px);
  --header-h:80px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:18px;line-height:1.5;color:var(--text);
  background:#fff url(/wp-content/uploads/2023/04/sfondo.jpg) center top/cover fixed}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none;transition:color .2s}
a:hover{color:var(--dark)}
h1,h2,h3{font-family:var(--serif-display);font-weight:400;letter-spacing:-1px;margin:0 0 .5em}
.icon{width:1em;height:1em;fill:currentColor;display:inline-block;vertical-align:-.125em}
.container{width:100%;max-width:calc(var(--container) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:10px 16px;z-index:1000}
.skip:focus{left:10px;top:10px}

/* ---------- Header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;height:var(--header-h);z-index:100;
  display:flex;align-items:center;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.06);
  transition:transform .35s ease}
.site-header .container{display:flex;align-items:center;gap:24px;max-width:none}
.menu-toggle{background:none;border:0;padding:8px;margin-left:-8px;cursor:pointer;color:var(--dark);font-size:24px;line-height:0}
.menu-toggle:hover{color:var(--accent)}
.site-header .logo img{height:50px;width:auto}
.header-tools{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:16px}
.header-tools a{color:var(--dark);display:inline-flex;align-items:center;gap:8px}
.header-tools a .icon{color:var(--accent)}
.header-tools a:hover{color:var(--accent)}
.btn-articles{font-weight:700;letter-spacing:.5px;font-size:14px;border:1px solid var(--accent);padding:10px 18px;color:var(--accent)!important}
.btn-articles:hover{background:var(--accent);color:#fff!important}
@media (max-width:900px){.header-tools .hide-sm{display:none}}
@media (max-width:560px){.header-tools{display:none}.site-header .logo img{height:42px}}

/* ---------- Pannello laterale (menu) ---------- */
.side-panel{position:fixed;inset:0 auto 0 0;width:min(400px,88vw);background:var(--dark);color:#fff;z-index:200;
  transform:translateX(-100%);transition:transform .45s cubic-bezier(.7,0,.2,1);
  display:flex;flex-direction:column;padding:32px 40px;overflow-y:auto}
.side-panel.open{transform:none}
.side-panel .close{align-self:flex-end;background:none;border:0;color:#fff;font-size:26px;cursor:pointer;padding:4px;line-height:0}
.side-panel .close:hover{color:var(--accent)}
.side-panel .panel-logo{width:200px;margin:30px 0 40px}
.side-panel .panel-links{list-style:none;margin:0 0 40px;padding:0;font-size:18px}
.side-panel .panel-links li{margin-bottom:14px}
.side-panel .panel-links a{color:#fff;display:inline-flex;gap:12px;align-items:center}
.side-panel .panel-links a:hover{color:var(--accent)}
.side-panel .panel-links .icon{color:var(--accent)}
.side-panel .panel-cta{display:inline-block;background:var(--accent);color:#fff;font-weight:700;padding:16px 22px;font-size:15px;letter-spacing:.5px;align-self:flex-start}
.side-panel .panel-cta:hover{background:#fff;color:var(--dark)}
.side-panel .socials{margin-top:auto;padding-top:40px}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:150;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.overlay.open{opacity:1;visibility:visible}
body.menu-open{overflow:hidden}

/* ---------- Social ---------- */
.socials{display:flex;gap:10px;flex-wrap:wrap}
.socials a{width:44px;height:44px;border-radius:50%;border:1px solid var(--accent);color:var(--accent);
  display:inline-flex;align-items:center;justify-content:center;font-size:17px;transition:background .25s,color .25s}
.socials a:hover{background:var(--accent);color:#fff}

/* ---------- Bottone ---------- */
.btn{display:inline-block;background:var(--accent);color:#fff;font-family:var(--sans);font-size:20px;line-height:1;
  padding:24px;letter-spacing:.3px;border:0;cursor:pointer;transition:background .25s,color .25s,transform .25s}
.btn:hover{background:#fff;color:var(--dark)}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--dark);color:#fff;min-height:min(1005px,100vh);
  display:flex;align-items:center;overflow:hidden;padding:calc(var(--header-h) + 60px) 0 100px}
.hero-bg{position:absolute;inset:-10% 0 0 0;background:url(/wp-content/uploads/2023/04/home.jpg) right center/cover no-repeat;will-change:transform}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,25,25,.55) 0%,rgba(25,25,25,.15) 55%,rgba(25,25,25,0) 100%)}
.hero .container{position:relative;z-index:1}
.hero-inner{max-width:640px}
.hero h1{font-size:clamp(48px,7vw,96px);line-height:1;color:#fff;margin-bottom:28px}
.hero p{font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.5;margin:0 0 40px;max-width:520px}
.hero .btn{font-size:16px;font-weight:700;padding:22px 26px}

/* ---------- Loghi (carosello) ---------- */
.logos{background:#fff;padding:20px 0;overflow:hidden}
.marquee{display:flex;width:max-content;animation:marquee 60s linear infinite}
.logos:hover .marquee{animation-play-state:paused}
.marquee img{width:246px;height:123px;object-fit:contain;flex:0 0 auto;padding:0 10px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Mi presento ---------- */
.about{position:relative;background:var(--brown) url(/wp-content/uploads/2023/04/sfondo2-1.jpg) center/cover no-repeat;color:#fff;padding:100px 0 0}
.about .grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.about .col-text{padding:0 40px 80px 0}
.about h2{font-size:clamp(40px,4.5vw,56.25px);line-height:1.2;color:#fff}
.about .col-text p{font-family:var(--serif);font-size:18px;line-height:1.5;margin:0 0 1.2em}
.about .col-text b,.about .col-text strong{font-weight:700}
.about .col-stats{background:url(/wp-content/uploads/2023/04/trasparente-1.png);padding:60px 40px 80px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center;margin-bottom:50px}
.stat .ring{position:relative;width:110px;height:110px;margin:0 auto 12px}
.stat .ring svg.circle{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.stat .ring svg.circle circle{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:310;stroke-dashoffset:310;transition:stroke-dashoffset 1.5s linear}
.stat.in .ring svg.circle circle{stroke-dashoffset:77}
.stat .ring .disc{position:absolute;inset:10px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center}
.stat .ring .disc svg{width:58%;height:58%}
.stat .ring .disc svg *{fill:#fff!important}
.stat .num{font-family:var(--sans);font-weight:300;font-size:44px;line-height:1.1}
.stat .label{font-weight:800;font-size:15px;letter-spacing:.3px;text-transform:uppercase;line-height:1.3;margin-top:4px}
.facts{list-style:disc;margin:0;padding-left:20px;font-size:16px;line-height:1.5}
.facts li{margin-bottom:8px}
.facts li::marker{color:#fff}

/* ---------- Servizi (accordion) ---------- */
.services{padding:20px 0 120px}
.services h2{font-size:clamp(40px,4.5vw,56.25px);line-height:1.2;color:#fff}
.accordion{max-width:1200px}
.acc-item{background:rgba(214,213,218,.95);border-bottom:1px solid rgba(25,25,25,.12);color:var(--dark)}
.acc-item:last-child{border-bottom:0}
.acc-head{width:100%;display:flex;align-items:center;gap:10px;background:none;border:0;cursor:pointer;
  padding:20px 24px;font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:.3px;text-align:left;color:var(--dark);transition:background .25s}
.acc-head:hover,.acc-item.open .acc-head{background:rgba(250,86,3,1); color: #fff;}
.acc-item.open  .acc-num {
color: #fff;
}
.acc-num{color:var(--accent);font-weight:400;min-width:24px}
.acc-head .icon{margin-left:auto;transition:transform .3s;font-size:14px}
.acc-item.open .acc-head .icon{transform:rotate(180deg)}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.acc-item.open .acc-body{grid-template-rows:1fr}
.acc-body > div{overflow:hidden}
.acc-body ul{margin:0;padding:4px 24px 24px 58px;font-size:17px;line-height:1.55}
.acc-body li{margin-bottom:6px}

/* ---------- Contatti ---------- */
.contact{background:var(--grey);padding:0}
.contact .grid{display:grid;grid-template-columns:7fr 6fr;align-items:end;gap:60px}
.contact .photo img{width:100%;max-width:none;margin-top:-1px}
@media (min-width:992px){.contact .photo{margin-left:calc(-1*var(--gutter))}}
.contact .form-col{padding:110px 0 100px}
.contact h2{font-size:clamp(40px,4.5vw,56.25px);line-height:1.2;color:var(--navy)}
.contact .lead{font-family:var(--serif);font-style:italic;font-size:18px;margin:0 0 30px;max-width:460px}
.form label{display:block;font-size:15px;margin-bottom:22px}
.form label strong{display:block;font-weight:700;margin-bottom:6px;color:var(--dark)}
.form input[type=text],.form input[type=email],.form textarea{width:100%;background:#fff;border:1px solid transparent;border-radius:0;
  font:inherit;font-size:18px;color:var(--text);padding:14.4px;outline:none;transition:border-color .2s,box-shadow .2s}
.form textarea{height:150px;resize:vertical}
.form input:focus,.form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(250,86,3,.12)}
.form .consent{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;margin:4px 0 30px}
.form .consent input{margin-top:4px;accent-color:var(--accent);width:16px;height:16px;flex:0 0 auto}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn-outline{background:transparent;border:1px solid var(--accent);color:var(--accent);font:700 16px/1 var(--sans);
  padding:24px 27px;cursor:pointer;letter-spacing:.3px;transition:background .25s,color .25s}
.btn-outline:hover:not(:disabled){background:var(--accent);color:#fff}
.btn-outline:disabled{opacity:.5;cursor:default}
.form-msg{margin-top:20px;padding:14px 18px;font-size:16px;display:none}
.form-msg.ok{display:block;background:#e6f2e9;border-left:3px solid #2e7d4f;color:#1d4d31}
.form-msg.err{display:block;background:#fdeee6;border-left:3px solid var(--accent);color:#7a2a00}
.field-error{border-color:var(--accent)!important}

/* ---------- Footer ---------- */
.footer-widgets{background:#fff;padding:90px 0 70px;color:var(--dark)}
.footer-widgets .grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;align-items:start}
.footer-widgets h4{font-family:var(--spartan);font-weight:600;font-size:24px;line-height:1.5;letter-spacing:-1px;margin:0 0 18px}
.footer-widgets .contacts a{display:flex;align-items:center;gap:12px;color:var(--dark);margin-bottom:12px}
.footer-widgets .contacts a .icon{color:var(--accent)}
.footer-widgets .contacts a:hover{color:var(--accent)}
.footer-widgets .flogo{width:250px}
.site-footer{background:var(--navy);color:#fff;font-size:15px}
.site-footer .container{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:40px;padding-bottom:40px;flex-wrap:wrap}
.site-footer a{color:#fff}
.site-footer a:hover{color:var(--accent)}

/* ---------- Privacy ---------- */
.page-head{background:var(--dark);color:#fff;padding:calc(var(--header-h) + 90px) 0 80px}
.page-head h1{font-size:clamp(44px,6vw,80px);line-height:1.05;margin:0}
.legal{background:#fff;padding:80px 0 100px}
.legal .container{max-width:calc(900px + 2*var(--gutter))}
.legal p,.legal li{font-size:17px;line-height:1.65}
.legal h2{font-family:var(--sans);font-weight:800;font-size:18px;letter-spacing:.2px;margin:2.2em 0 .8em;color:var(--dark)}
.legal ul{padding-left:22px}
.legal a{word-break:break-word}

.acc-head:hover .acc-num , .acc-item.open  .acc-num {
color: #fff;
}

.acc-item.open .acc-body {
 
  background-color: #fff;
}

.acc-body ul {
  
  margin-top: 20px;
}

/* ---------- Animazioni allo scroll ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- Responsive ---------- */
@media (max-width:991px){
  .about .grid,.contact .grid,.footer-widgets .grid{grid-template-columns:1fr}
  .about .col-text{padding:0 0 60px}
  .about .col-stats{margin:0 calc(-1*var(--gutter));padding:60px var(--gutter)}
  .contact .grid{gap:0}
  .contact .form-col{padding:80px 0 60px;order:-1}
  .contact .photo img{margin:0 auto;max-width:560px}
  body{background-attachment:scroll}
}
@media (max-width:600px){
  .stats{grid-template-columns:1fr;gap:36px}
  .hero{min-height:auto;padding-bottom:70px}
  .hero-bg{background-position:70% center;opacity:.55}
  .acc-head{padding:18px 16px}
  .acc-body ul{padding:4px 16px 20px 46px}
  .site-footer .container{justify-content:center;text-align:center}
}
