@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root{
  --cream:#FBF6EE;
  --cream-dark:#F3ECE0;
  --brand:#CE630C;
  --brand-dark:#A94F09;
  --choc:#45332D; /* RAL 8017 */
  --olive:#6B7A4F;
  --gold:#E8A33D;
  --text-gold:#9C6E1E; /* oro leggibile per testi correnti */
  --line:#E4D8C4;
  --radius:4px;
  --maxw:1180px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Montserrat',sans-serif;
  background:var(--cream);
  color:var(--text-gold);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Montserrat',sans-serif;
  font-weight:800;
  color:var(--choc);
  line-height:1.15;
}
a{color:inherit;text-decoration:none;}
img,video{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.eyebrow{
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brand);font-weight:600;
}
section{padding:88px 0;}
@media(max-width:768px){section{padding:56px 0;}}

/* ===== HEADER ===== */
header.site{
  position:sticky;top:0;z-index:100;
  background:rgba(251,246,238,.96);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;max-width:var(--maxw);margin:0 auto;
}
.logo{font-family:'Montserrat',sans-serif;font-weight:800;font-weight:700;font-size:1.35rem;color:var(--choc);display:flex;align-items:center;gap:10px;}
.logo-mark{width:34px;height:34px;border-radius:6px;object-fit:contain;}
.logo span{color:var(--brand);}
nav.main ul{display:flex;gap:30px;list-style:none;}
nav.main a{font-size:.92rem;font-weight:500;position:relative;padding:6px 0;}
nav.main a:hover{color:var(--brand);}
.nav-cta{
  background:var(--brand);color:#fff;padding:10px 22px;border-radius:var(--radius);
  font-weight:600;font-size:.88rem;white-space:nowrap;
}
.nav-cta:hover{background:var(--brand-dark);}
.burger{display:none;background:none;border:0;font-size:1.5rem;cursor:pointer;color:var(--choc);}
@media(max-width:880px){
  nav.main{display:none;}
  .burger{display:block;}
  nav.main.open{
    display:flex;position:absolute;top:100%;left:0;right:0;background:var(--cream);
    border-bottom:1px solid var(--line);padding:20px 24px;
  }
  nav.main.open ul{flex-direction:column;gap:16px;}
}

/* ===== HERO ===== */
.hero{
  position:relative;overflow:hidden;
  min-height:78vh;display:flex;align-items:center;
  background:var(--choc);
}
.hero-bg{position:absolute;inset:0;overflow:hidden;}
.hero-bg .splide__track,.hero-bg .splide__list,.hero-bg .splide__slide{height:100%;}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.55;}
.hero-bg::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(58,35,24,.55) 0%, rgba(58,35,24,.85) 100%);
}
.hero-bg .splide__pagination{bottom:20px;z-index:3;}
.hero-bg .splide__pagination__page{background:rgba(255,255,255,.5);}
.hero-bg .splide__pagination__page.is-active{background:var(--brand,#CE630C);}
.hero-content{position:relative;z-index:2;color:#fff;max-width:640px;padding:60px 24px;}
.hero-content .eyebrow{color:var(--gold);}
.hero-content h1{font-size:clamp(2.2rem,5vw,3.4rem);margin:14px 0 20px;color:#fff;}
.hero-content p{font-size:1.08rem;color:#EFE6D6;margin-bottom:30px;max-width:520px;}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:14px 28px;border-radius:var(--radius);font-weight:600;
  font-size:.95rem;transition:transform .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--brand);color:#fff;}
.btn-primary:hover{background:var(--brand-dark);}
.btn-outline{border:1.5px solid #fff;color:#fff;}
.btn-outline:hover{background:#fff;color:var(--choc);}
.btn-dark{background:var(--choc);color:#fff;}
.btn-dark:hover{background:#241510;}

/* ===== NUTRITION-LABEL SIGNATURE COMPONENT ===== */
/* Signature element: info cards styled like a nutrition-facts panel, */
/* since the whole business is built around integratori & etichette nutrizionali */
.label-card{
  background:#fff;border:2px solid var(--choc);border-radius:2px;
  padding:22px 24px;position:relative;
}
.label-card::before{
  content:'VALORI';position:absolute;top:-11px;left:20px;background:var(--cream);
  padding:0 8px;font-size:.68rem;letter-spacing:.12em;font-weight:700;color:var(--choc);
}
.label-card h3{
  font-size:1.35rem;border-bottom:6px solid var(--choc);padding-bottom:8px;margin-bottom:10px;
}
.label-row{
  display:flex;justify-content:space-between;font-size:.9rem;
  border-bottom:1px solid var(--line);padding:7px 0;
}
.label-row strong{font-weight:700;}

/* ===== GRIDS / CARDS ===== */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}.grid-2{grid-template-columns:1fr;gap:32px;}}
@media(max-width:560px){.grid-3,.grid-4{grid-template-columns:1fr;}}

.section-head{max-width:640px;margin-bottom:48px;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.5rem);margin-top:10px;}
.section-head p{color:var(--text-gold);margin-top:14px;font-size:1.02rem;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

.feature{padding:26px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);}
.feature .num{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:.85rem;color:var(--brand);font-weight:700;
  letter-spacing:.08em;
}
.feature h4{font-size:1.15rem;margin:12px 0 8px;}
.feature p{font-size:.92rem;color:var(--text-gold);}

.product-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s;}
.product-card:hover{box-shadow:0 14px 30px rgba(58,35,24,.12);}
.product-card .img-wrap{aspect-ratio:1/1;overflow:hidden;background:var(--cream-dark);}
.product-card .img-wrap img{width:100%;height:100%;object-fit:cover;}
.product-card .body{padding:18px 20px;}
.product-card .cat{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);font-weight:700;}
.product-card h4{font-size:1.05rem;margin-top:6px;}

.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px;}
.filter-btn{
  padding:9px 18px;border:1px solid var(--line);border-radius:30px;font-size:.85rem;
  font-weight:600;background:#fff;cursor:pointer;
}
.filter-btn.active,.filter-btn:hover{background:var(--choc);color:#fff;border-color:var(--choc);}

/* ===== TIMELINE / PROCESS ===== */
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.process::before{content:'';position:absolute;top:22px;left:5%;right:5%;height:2px;background:var(--line);}
@media(max-width:880px){.process{grid-template-columns:1fr;gap:30px;}.process::before{display:none;}}
.process-step{position:relative;padding-right:20px;}
.process-step .dot{
  width:44px;height:44px;border-radius:50%;background:var(--choc);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:800;
  font-weight:700;margin-bottom:18px;position:relative;z-index:2;
}
.process-step h4{font-size:1.05rem;margin-bottom:8px;}
.process-step p{font-size:.88rem;color:var(--text-gold);}

/* ===== STATS ===== */
.stats{background:var(--choc);color:#fff;}
.stats .grid-4{text-align:center;}
.stats .stat b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:2.6rem;color:var(--gold);display:block;}
.stats .stat span{font-size:.85rem;color:#D9C9B4;letter-spacing:.03em;}

/* ===== TEAM ===== */
.team-card{text-align:left;}
.team-card .img-wrap{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius);background:var(--cream-dark);margin-bottom:16px;}
.team-card .img-wrap img{width:100%;height:100%;object-fit:cover;}
.team-card .role{color:var(--brand);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;}
.team-card h4{margin:6px 0 8px;font-size:1.2rem;}
.team-card p{font-size:.9rem;color:var(--text-gold);}

/* ===== FORM ===== */
.contact-form{display:grid;gap:16px;}
.contact-form label{font-size:.85rem;font-weight:600;margin-bottom:6px;display:block;}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius);
  font-family:inherit;font-size:.95rem;background:#fff;
}
.contact-form textarea{min-height:130px;resize:vertical;}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{
  outline:2px solid var(--brand);outline-offset:1px;
}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:600px){.two-col{grid-template-columns:1fr;}}

.info-block{display:flex;gap:16px;margin-bottom:24px;}
.info-block .ic{
  width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--cream-dark);
  display:flex;align-items:center;justify-content:center;color:var(--brand);font-weight:700;
}
.info-block h4{font-size:1.1rem;margin-bottom:5px;}
.info-block p{font-size:1.02rem;color:var(--text-gold);line-height:1.5;}

/* ===== FAQ ACCORDION ===== */
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;text-align:left;background:none;border:0;padding:22px 0;
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.08rem;font-weight:600;color:var(--choc);
  display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:20px;
}
.faq-q .plus{font-size:1.4rem;color:var(--brand);transition:transform .2s;flex-shrink:0;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;font-size:.94rem;color:var(--text-gold);}
.faq-a p{padding-bottom:20px;}
.faq-item.open .faq-a{max-height:400px;}

/* ===== BADGE PLACEHOLDER NOTE ===== */
.ph-note{
  font-size:.7rem;color:#8a5a2b;background:#FBEFDD;border:1px dashed var(--brand);
  padding:3px 8px;border-radius:20px;display:inline-block;margin-top:8px;
}

/* ===== CTA BAND ===== */
.cta-band{background:var(--brand);color:#fff;text-align:center;}
.cta-band h2{color:#fff;}
.cta-band p{color:#FBEFDD;margin:14px 0 28px;}

/* ===== FOOTER ===== */
footer.site{background:var(--choc);color:#D9C9B4;padding:64px 0 24px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:40px;margin-bottom:48px;}
@media(max-width:880px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr;}}
footer.site h5{color:#fff;font-family:'Montserrat',sans-serif;font-weight:800;font-size:1rem;margin-bottom:18px;}
footer.site ul{list-style:none;}
footer.site li{margin-bottom:10px;font-size:.9rem;}
footer.site a:hover{color:var(--gold);}
.footer-logo{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.3rem;color:#fff;font-weight:700;margin-bottom:14px;}
.footer-logo span{color:var(--gold);}
.social-row{display:flex;gap:12px;margin-top:16px;}
.social-row a{
  width:36px;height:36px;border-radius:50%;border:1px solid #6b5646;
  display:flex;align-items:center;justify-content:center;font-size:.85rem;
}
.social-row a:hover{background:var(--gold);border-color:var(--gold);color:var(--choc);}
.footer-bottom{border-top:1px solid #55432f;padding-top:24px;font-size:.8rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#a89680;}

/* ===== PAGE HEADER (inner pages) ===== */
.page-head{background:var(--choc);color:#fff;padding:70px 0 50px;}
.page-head .eyebrow{color:var(--gold);}
.page-head h1{color:#fff;font-size:clamp(2rem,4vw,2.8rem);margin-top:10px;text-transform:uppercase;font-weight:800;}
.breadcrumb{font-size:.85rem;color:#D9C9B4;margin-top:14px;}
.breadcrumb a:hover{color:var(--gold);}

.pillar{display:flex;gap:20px;padding:24px 0;border-bottom:1px solid var(--line);}
.pillar .num{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.6rem;color:var(--brand);font-weight:700;width:50px;flex-shrink:0;}
.pillar h4{font-size:1.1rem;margin-bottom:6px;}
.pillar p{font-size:.92rem;color:var(--text-gold);}


/* ===== HERO SPLIT (due colonne: testo + carosello tipologie) ===== */
.hero-split{background:var(--choc,#45332D);padding:110px 0 120px;}
.hero-split-grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:60px;align-items:center;
}
.hero-text-col{min-width:0;}
.hero-text-col .eyebrow{color:var(--gold,#E8A33D);}

.eyebrow-row{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:6px;}
.eyebrow-row .eyebrow{
  margin:0;font-size:1.05rem;font-weight:800;
  transform:scaleX(.82);transform-origin:left center; /* effetto "condensed" senza font esterno */
  letter-spacing:.06em;
}
.years-counter{display:inline-flex;align-items:baseline;gap:6px;}
.years-number{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.6rem;color:var(--gold,#E8A33D);
  line-height:1;
}
.years-label{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:.85rem;color:var(--gold,#E8A33D);
  letter-spacing:.08em;text-transform:uppercase;
}
@keyframes dq-blink-gold{0%,100%{opacity:1;}50%{opacity:.25;}}
.years-number.blinking{animation:dq-blink-gold 1s ease-in-out infinite;}
.years-label.blinking{animation:dq-blink-gold 1.3s ease-in-out infinite;animation-delay:.35s;}
.hero-claim{
  color:#fff;font-size:clamp(1.9rem,3.6vw,2.7rem);text-transform:uppercase;
  margin:14px 0 20px;line-height:1.2;
}
.hero-claim.blinking{animation:dq-blink-gold 1s ease-in-out infinite;}
.hero-text-col p{color:#EFE6D6;font-size:1.05rem;margin-bottom:28px;max-width:480px;}

.leggi-bene{display:flex;align-items:center;gap:34px;}
.leggi-bene-text{
  font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.2;
  color:var(--gold,#E8A33D);letter-spacing:.06em;text-transform:uppercase;
}
.leggi-bene-arrow{color:var(--gold,#E8A33D);display:inline-flex;align-items:center;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));}
.leggi-bene-text.blinking{animation:dq-blink-gold 1s ease-in-out infinite;}
/* freccia staccata e asincrona, stesso sfasamento usato per "ANNI" */
.leggi-bene-arrow.blinking{animation:dq-blink-gold 1.3s ease-in-out infinite;animation-delay:.35s;}

.hero-carousel-col{min-width:0;background:#FBF6EE;border-radius:10px;padding:22px;}
.hero-type-slide{text-align:center;}
.hero-type-slide .hero-type-img{
  width:100%;aspect-ratio:1/1;border-radius:6px;overflow:hidden;background:var(--cream-dark,#F3ECE0);
  margin-bottom:12px;
}
.hero-type-slide .hero-type-img img{
  width:100%;height:100%;object-fit:cover;
  animation:dq-cinematic 4.5s ease-in-out infinite;
  transform-origin:center center;
}
/* ===== Effetto cinematografico: zoom +40% (1s in) -> rientro (2s) -> shake ±3px per lato (1.5s) ===== */
/* Classe riutilizzabile: stesso effetto cinematico (zoom+shake) del carosello hero,
   applicabile a qualunque immagine in overflow:hidden nel sito */
.dq-cinematic-img{
  animation:dq-cinematic 4.5s ease-in-out infinite;
  transform-origin:center center;
  width:100%;height:100%;object-fit:cover;display:block;
}

@keyframes dq-cinematic{
  0%{transform:scale(1) translate(0,0);}
  22.22%{transform:scale(1.4) translate(0,0);}     /* 1s: zoom avanti completato */
  66.67%{transform:scale(1) translate(0,0);}       /* 3s: rientro completato */
  73%{transform:scale(1) translate(3px,0);}
  80%{transform:scale(1) translate(-3px,0);}
  87%{transform:scale(1) translate(3px,0);}
  93%{transform:scale(1) translate(-3px,0);}
  100%{transform:scale(1) translate(0,0);}         /* 4.5s: shake concluso, ciclo riparte */
}
.hero-type-slide .hero-type-tag{
  font-size:.72rem;font-weight:700;color:var(--brand,#CE630C);letter-spacing:.06em;text-transform:uppercase;
}
.hero-type-slide h5{font-size:1rem;margin:4px 0 10px;color:var(--choc,#45332D);}
.hero-type-caption{
  min-height:52px;border:1.5px dashed var(--line,#E4D8C4);border-radius:6px;
  padding:12px 14px;font-size:1.5rem;font-weight:700;color:var(--text-gold,#9C6E1E);background:#fff;
  line-height:1.35;
}
.hero-type-caption:empty::before{content:'Didascalia in arrivo...';opacity:.55;font-style:italic;font-weight:400;}

#hero-types-splide .splide__arrow{
  background:var(--choc,#45332D);opacity:1;width:38px;height:38px;
}
#hero-types-splide .splide__arrow svg{fill:#fff;width:14px;height:14px;}
#hero-types-splide .splide__arrow:hover{background:var(--brand,#CE630C);}
#hero-types-splide .splide__pagination__page.is-active{background:var(--brand,#CE630C);}

@media(max-width:900px){
  .hero-split-grid{grid-template-columns:1fr;gap:36px;}
  .hero-carousel-col{max-width:420px;margin:0 auto;}
  .hero-type-caption{font-size:1.7rem;}
}

/* ===== PERCHÉ SCEGLIERCI — box testo + carosello ===== */
.perche-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start;}
@media(max-width:900px){.perche-grid{grid-template-columns:1fr;gap:36px;}}

.perche-text-box .eyebrow{display:block;margin-bottom:10px;}
.perche-text-box h2{font-size:clamp(1.8rem,3.2vw,2.4rem);margin-bottom:16px;}
.perche-intro{font-size:1rem;color:var(--text-gold);margin-bottom:26px;}

.perche-point{
  font-size:1.15rem;color:#6b4a12;line-height:1.6;
  padding:14px 0;border-top:1px solid var(--line);
}
.perche-point:last-of-type{border-bottom:1px solid var(--line);}
.perche-point strong{
  display:block;color:var(--choc);font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:1.2rem;margin-bottom:4px;
}

.perche-cta{
  display:inline-block;margin-top:26px;font-weight:700;color:var(--brand);
  font-size:1rem;border-bottom:2px solid var(--brand);padding-bottom:2px;
}
.perche-cta:hover{color:var(--choc);border-color:var(--choc);}

.perche-media-box{border-radius:10px;overflow:hidden;aspect-ratio:4/3;}

/* ===== TITOLI SEZIONE: bold + maiuscolo ovunque, come richiesto ===== */
h2, h3, h4, .section-head h2, .feature h4, .classe-body h4, .team-card h4,
.pillar h4, .faq-q span:first-child, .perche-text-box h2, .info-block h4,
footer.site h5 {
  text-transform: uppercase;
  font-weight: 800;
}

/* ===== CARATTERE PIÙ GRANDE SU MOBILE (leggibilità) ===== */
@media(max-width:640px){
  html{font-size:18px;}
}
@media(min-width:641px) and (max-width:900px){
  html{font-size:17px;}
}

/* ===== CONTATTI — split indirizzo (sx) + pulsanti grandi (dx) ===== */
.contact-info-split{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}
@media(max-width:700px){.contact-info-split{grid-template-columns:1fr;}}

.contact-big-buttons{display:flex;flex-direction:column;gap:16px;}
.big-contact-btn{
  display:flex;align-items:center;gap:14px;padding:22px 20px;border-radius:10px;
  color:#fff;font-weight:800;font-size:1rem;text-transform:uppercase;line-height:1.3;
  box-shadow:0 8px 20px rgba(0,0,0,.15);transition:transform .15s ease;
}
.big-contact-btn:hover{transform:translateY(-3px);}
.big-contact-btn svg{width:34px;height:34px;flex-shrink:0;}
.big-contact-btn.mail{background:var(--choc);border:2px solid var(--gold);}
.big-contact-btn.whatsapp{background:#25D366;}

/* ===== RAGIONE SOCIALE (pagina contatti) ===== */
.ragione-sociale-box{
  background:#fff;border:2px solid var(--choc);border-radius:4px;padding:26px 28px;position:relative;
}
.ragione-sociale-box h3{
  font-size:1.4rem;border-bottom:6px solid var(--choc);padding-bottom:10px;margin-bottom:14px;
}
.rs-row{
  display:flex;justify-content:space-between;gap:16px;font-size:.92rem;
  border-bottom:1px solid var(--line);padding:10px 0;color:var(--text-gold);
}
.rs-row span{flex-shrink:0;font-weight:600;}
.rs-row strong{text-align:right;font-weight:700;color:var(--choc);}
@media(max-width:480px){
  .rs-row{flex-direction:column;gap:4px;}
  .rs-row strong{text-align:left;}
}

/* ===== FULL SERVICE BOX (sotto il media di Perché sceglierci) ===== */
.full-service-box{
  margin-top:20px;border:3px solid var(--choc);border-radius:8px;padding:22px 18px;
  text-align:center;background:#fff;
}
.full-service-box span{
  display:inline-block;color:var(--choc);font-weight:800;text-transform:uppercase;
  font-size:1.05rem;line-height:1.5;letter-spacing:.02em;
  animation:dq-fs-shake 4s ease-in-out infinite;
}
@keyframes dq-fs-shake{
  0%,100%{transform:translate(0,0) scale(1);}
  92%{transform:translate(0,0) scale(1);}
  93%{transform:translate(-3px,0) scale(1.02);}
  94%{transform:translate(3px,0) scale(1.02);}
  95%{transform:translate(-3px,0) scale(1.02);}
  96%{transform:translate(3px,0) scale(1.02);}
  97%{transform:translate(-2px,0) scale(1.01);}
  98%{transform:translate(2px,0) scale(1.01);}
  99%{transform:translate(0,0) scale(1);}
}

/* ===== AD BOX (pagina contatti — foto barretta + claim) ===== */
.promo-box{margin-top:24px;border:2px solid var(--brand);border-radius:8px;overflow:hidden;background:#fff;}
.promo-box-img{width:100%;aspect-ratio:16/10;overflow:hidden;}
.promo-box-img img{width:100%;height:100%;object-fit:cover;display:block;}
.promo-box-caption{
  text-align:center;font-weight:800;text-transform:uppercase;color:var(--choc);
  font-size:1rem;line-height:1.5;padding:16px;margin:0;background:var(--cream-dark);
}

/* ===== FAMILY BOX (sotto il media di Perché sceglierci) ===== */
.family-box{margin-top:20px;border:3px solid var(--choc);border-radius:8px;overflow:hidden;background:#fff;}
.family-box img{width:100%;display:block;max-height:340px;object-fit:cover;}
.family-caption{
  text-align:center;font-weight:800;text-transform:uppercase;color:var(--choc);
  font-size:1rem;line-height:1.5;padding:16px;margin:0;background:var(--cream-dark);
}

/* ===== INTRO BANNER — foto con zoom dinamico + testo typewriter ===== */
.intro-banner{background:var(--choc,#45332D);padding:60px 0;}
.intro-banner-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;}
@media(max-width:800px){.intro-banner-grid{grid-template-columns:1fr;text-align:center;}}

.intro-img-wrap{border-radius:10px;overflow:hidden;aspect-ratio:4/3;}
.intro-img-wrap img{
  width:100%;height:100%;object-fit:cover;display:block;
  animation:dq-intro-zoom 3s ease-out 1;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes dq-intro-zoom{
  0%{opacity:0;transform:scale(.92);}
  33.3%{opacity:1;transform:scale(1.25);}     /* 1s: picco zoom 125% */
  100%{opacity:1;transform:scale(1);}          /* 3s: rientro a 100% */
}

.intro-text-wrap h2{
  font-size:clamp(1.8rem,3.6vw,2.6rem);color:#fff;text-transform:uppercase;
  font-weight:800;line-height:1.3;min-height:1.3em;
}
.intro-text-wrap .cursor{
  display:inline-block;width:3px;background:var(--gold,#E8A33D);margin-left:2px;
  animation:dq-cursor-blink .8s steps(1) infinite;
}
@keyframes dq-cursor-blink{50%{opacity:0;}}

/* ===== MADE IN ITALY — badge con bandiera che sventola ===== */
.hero-split{position:relative;}
.page-head{position:relative;}
.made-in-italy-badge{
  position:absolute;top:20px;right:20px;z-index:5;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  background:rgba(255,255,255,.95);padding:10px 16px 12px;border-radius:8px;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.italy-flag{
  width:48px;height:32px;border-radius:3px;overflow:hidden;
  display:flex;box-shadow:0 0 0 1px rgba(0,0,0,.15);
  animation:dq-flag-wave 2.4s ease-in-out infinite;
  transform-origin:left center;
}
.italy-flag span{flex:1;height:100%;}
.italy-flag span:nth-child(1){background:#008C45;}
.italy-flag span:nth-child(2){background:#fff;}
.italy-flag span:nth-child(3){background:#CD212A;}
.made-in-italy-badge small{
  font-weight:800;font-size:.68rem;letter-spacing:.05em;color:var(--choc);text-transform:uppercase;
}
@keyframes dq-flag-wave{
  0%,100%{transform:skewY(0deg) scaleY(1);}
  25%{transform:skewY(-3deg) scaleY(1.03);}
  50%{transform:skewY(0deg) scaleY(1);}
  75%{transform:skewY(3deg) scaleY(.97);}
}
@media(max-width:640px){
  .made-in-italy-badge{top:12px;right:12px;padding:8px 12px 10px;}
  .italy-flag{width:38px;height:26px;}
}

/* ===== INTRO SPLASH FULLSCREEN (stile Nuova Gaia, colori Dietetici Quaranta) ===== */
html.dq-intro-active, html.dq-intro-active body{overflow:hidden;height:100%;}
.dq-intro{
  position:fixed;inset:0;z-index:9999;
  background:var(--choc,#45332D);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;cursor:pointer;
}
.dq-intro-img{
  position:absolute;inset:0;
  background:url('../images/tipologie/barretta-promo.webp') center/cover no-repeat;
  transform:scale(0);
  border-radius:52px;
  animation:dqIntroGrow 4s cubic-bezier(.45,0,.4,1) forwards;
}
@keyframes dqIntroGrow{
  0%{transform:scale(0);border-radius:52px;}
  75%{border-radius:38px;}
  100%{transform:scale(1);border-radius:0;}
}
.dq-intro-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(45,30,20,.25), rgba(30,20,14,.68));
  opacity:0;
  animation:dqIntroFadeIn 1s ease forwards;
  animation-delay:3.5s;
}
@keyframes dqIntroFadeIn{to{opacity:1;}}
.dq-intro-text{
  position:relative;z-index:2;
  max-width:760px;padding:0 32px;text-align:center;
  opacity:0;transform:scale(.02);
  animation:dqIntroTextIn 7s ease forwards;
  animation-delay:3.7s;
}
@keyframes dqIntroTextIn{
  0%{opacity:0;transform:scale(.02);}
  6%{opacity:.9;}
  57%{opacity:.9;transform:scale(1.25);}
  100%{opacity:1;transform:scale(1);}
}
.dq-intro-text p{
  font-family:'Montserrat',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vw,3rem);color:#fff;line-height:1.4;letter-spacing:.5px;
  text-shadow:0 4px 24px rgba(0,0,0,.4);
}
.dq-welcome{
  font-size:clamp(2.4rem,7vw,4.6rem) !important;
  color:var(--gold,#E8A33D) !important;
  margin-bottom:10px;
}
.dq-intro-text .dq-emph{
  display:inline-block;font-size:1.15em;letter-spacing:.6px;color:var(--gold,#E8A33D);
}
.dq-intro-skip{
  position:absolute;bottom:28px;right:32px;z-index:2;
  font-size:.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  color:rgba(255,255,255,.7);opacity:0;
  animation:dqIntroFadeIn .8s ease forwards;animation-delay:1s;
}
.dq-intro.dq-intro-out{animation:dqIntroOut 1.1s ease forwards;}
@keyframes dqIntroOut{to{opacity:0;visibility:hidden;}}

/* ===== BANNER SUGGERIMENTO LINGUA (non invasivo, non redirect) ===== */
#dq-lang-banner{
  position:fixed;top:0;left:0;right:0;z-index:10000;
  background:var(--choc,#45332D);color:#fff;
  display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;
  padding:12px 20px;font-size:.88rem;
  box-shadow:0 2px 10px rgba(0,0,0,.2);
}
#dq-lang-banner .dq-lang-banner-msg{max-width:640px;text-align:center;line-height:1.4;}
#dq-lang-banner .dq-lang-banner-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
#dq-lang-banner .dq-lang-banner-switch{
  background:var(--brand,#CE630C);color:#fff;border:0;border-radius:4px;
  padding:8px 16px;font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap;
}
#dq-lang-banner .dq-lang-banner-switch:hover{background:var(--brand-dark,#A94F09);}
#dq-lang-banner .dq-lang-banner-close{
  background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:50%;
  width:28px;height:28px;font-size:1.1rem;line-height:1;cursor:pointer;flex-shrink:0;
}
#dq-lang-banner .dq-lang-banner-close:hover{background:rgba(255,255,255,.15);}
body.dq-lang-banner-active header.site{top:0;position:sticky;}
body.dq-lang-banner-active{padding-top:0;}
@media(max-width:640px){
  #dq-lang-banner{padding:10px 14px;font-size:.8rem;gap:10px;}
  #dq-lang-banner .dq-lang-banner-msg{font-size:.8rem;}
}
