/* Tema Single Page — Classico palette + scroll-snap layout
   DM Serif Display + Heebo. Crema #F6F4EF + verde bosco #1B5E3B + oro #B8963E.
   Per commercio semplice con pagina unica scorrevole + navigazione a dots laterale.

   FIRMA VISIVA UNICA:
   - scroll-snap-type: y mandatory sul body (le sezioni si agganciano)
   - scroll-padding-top per compensare la nav sticky
   - Sticky dots navigation a destra (JS + CSS)
   - Nav minimale: solo logo + CTA (no links, tanto è tutto in una pagina)
   - Sezioni full-viewport-height con flex center
   - Transizioni lente tra sezioni */

/* === FONTS === */
@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/dm-serif-display-regular.ttf') format('truetype')}
@font-face{font-family:'DM Serif Display';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/dm-serif-display-italic.ttf') format('truetype')}
@font-face{font-family:'Heebo';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/heebo-light-300.ttf') format('truetype')}
@font-face{font-family:'Heebo';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/heebo-400.ttf') format('truetype')}
@font-face{font-family:'Heebo';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/heebo-medium-500.ttf') format('truetype')}
@font-face{font-family:'Heebo';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/heebo-700.ttf') format('truetype')}

/* === VARIABLES === */
:root {
  --bg:#F6F4EF;--card:#FEFDFB;--ink:#1E1E1E;--green:#1B5E3B;--green-light:#27764D;
  --green-pale:#E2F0E7;--gold:#B8963E;--gold-light:#F5ECD7;--muted:#8A8580;
  --border:#E3DED5;--cream:#EDE9E0;
  --font-serif:'DM Serif Display',Georgia,serif;
  --font-sans:'Heebo','Segoe UI',sans-serif;
}
::selection{background:#1B5E3B;color:#F6F4EF}

/* === SCROLL SNAP === */
html{scroll-snap-type:y proximity;scroll-padding-top:80px;scroll-behavior:smooth}
body{
  background:#F6F4EF;color:#1E1E1E;
  font-family:'Heebo',sans-serif;font-weight:300;
}

h1,h2,h3,h4,h5,h6{font-family:'DM Serif Display',Georgia,serif!important;color:#1B5E3B;font-weight:400;letter-spacing:-.005em}
h1 em,h2 em,h3 em,h4 em,h5 em,h6 em{font-style:italic;color:#B8963E;font-weight:400}

/* === Section as snap stop === */
section.hero,section.services,section.about,section.gallery,section.reviews,section.team,section.contact,section.faq,section.offerte-preview,section.blog-section{
  scroll-snap-align:start;
  scroll-snap-stop:normal;
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  padding:6rem 2.5rem!important;
}
section.services{padding:8rem 2.5rem!important}
section.services-inner,.services-inner,.gallery-inner,.reviews-inner,.team-inner,.contact-inner,.faq-inner,.offerte-inner{width:100%}

/* === Onepage dots navigation sul lato destro === */
.onepage-dots{
  position:fixed;
  right:2rem;top:50%;transform:translateY(-50%);
  z-index:100;
  display:flex;flex-direction:column;gap:1rem;
  padding:1.2rem .6rem;
  background:rgba(246,244,239,.7);
  backdrop-filter:blur(10px);
  border:1px solid rgba(184,150,62,.2);
  border-radius:30px;
}
.onepage-dots a{
  display:block;
  width:10px;height:10px;
  border-radius:50%;
  background:transparent;
  border:2px solid #B8963E;
  transition:all .3s;
  position:relative;
}
.onepage-dots a::after{
  content:attr(data-label);
  position:absolute;right:calc(100% + 16px);top:50%;
  transform:translateY(-50%);
  background:#1B5E3B;color:#F6F4EF;
  padding:.3rem .7rem;border-radius:6px;
  font-size:.7rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.1em;
  white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .25s;
}
.onepage-dots a:hover::after{opacity:1}
.onepage-dots a:hover{background:#B8963E;border-color:#B8963E;transform:scale(1.2)}
.onepage-dots a.active{background:#1B5E3B;border-color:#1B5E3B;transform:scale(1.3)}
@media(max-width:900px){.onepage-dots{display:none}}

/* === CARDS === */
.svc-card,.review-card,.team-card,.offerta-card,.blog-card,.contact-card,.orari-card,.faq-item{
  border-radius:0!important;
  border:none!important;
  border-top:2px solid #B8963E!important;
  border-bottom:2px solid #B8963E!important;
  background:#FEFDFB;box-shadow:none;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
}
.svc-card:hover,.team-card:hover,.offerta-card:hover{background:#F5ECD7;transform:translateY(-3px)}
.svc-card::after{display:none!important}

/* === Service grid === */
.svc-grid{
  grid-template-columns:repeat(3,1fr)!important;
  gap:0!important;
  border-top:1px solid #B8963E;
  border-bottom:1px solid #B8963E;
}
.svc-card{
  border-top:none!important;border-bottom:none!important;
  border-left:1px solid #B8963E!important;
  padding:2.6rem 2rem!important;background:transparent;
}
.svc-card:first-child{border-left:none!important}
.svc-icon{width:56px;height:56px;border-radius:50%!important;background:#F5ECD7;color:#1B5E3B;border:2px solid #B8963E}
.svc-card h3{font-family:'DM Serif Display',serif!important;font-size:1.4rem!important;color:#1B5E3B;font-weight:400;margin-top:1.4rem}
.svc-card p{color:#6B6860;font-weight:300;font-size:.95rem;line-height:1.7}
@media(max-width:900px){.svc-grid{grid-template-columns:1fr!important}.svc-card{border-left:none!important;border-top:1px solid #B8963E!important}.svc-card:first-child{border-top:none!important}}

/* === Buttons === */
.btn-hero,.nav-cta,.filter-btn,.page-btn{border-radius:0!important}
.btn-hero-primary{
  background:#1B5E3B!important;color:#F6F4EF!important;
  padding:1rem 2.4rem!important;
  font-weight:500;letter-spacing:.12em;font-size:.78rem;
  border:2px solid #1B5E3B;text-transform:uppercase;
}
.btn-hero-primary:hover{background:#B8963E!important;border-color:#B8963E!important}
.btn-hero-outline{
  border:2px solid #1B5E3B!important;color:#1B5E3B;
  padding:1rem 2.4rem!important;background:transparent;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;
}
.btn-hero-outline:hover{background:#1B5E3B;color:#F6F4EF!important}

/* === Hero badge === */
.hero-badge{
  border-radius:0;background:transparent;color:#B8963E;
  font-size:.74rem;font-weight:500;
  padding:.4rem 0 .4rem 3rem;letter-spacing:.22em;
  text-transform:uppercase;position:relative;font-family:'Heebo',sans-serif;
}
.hero-badge::before{content:'';position:absolute;left:0;top:50%;width:40px;height:1px;background:#B8963E;transform:translateY(-50%)}

/* === Hero full-viewport === */
.hero{
  background:linear-gradient(180deg,#F6F4EF 0%,#EDE9E0 100%);
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;top:20%;left:-5%;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(184,150,62,.08),transparent 60%);
  pointer-events:none;
}
.hero-inner{grid-template-columns:2fr 3fr!important;gap:4rem!important;align-items:center}
.hero h1{
  font-size:clamp(3rem,5.8vw,5.2rem)!important;
  color:#1B5E3B!important;
  font-family:'DM Serif Display',serif!important;
  font-weight:400!important;line-height:1!important;
}
.hero h1 em{color:#B8963E;font-style:italic}
.hero .lead,.hero-sub{color:#6B6860;font-weight:300;font-size:1.08rem;line-height:1.8}
.hero-visual-circle{
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#F5ECD7 0%,#B8963E 80%);
  box-shadow:0 40px 80px -20px rgba(184,150,62,.35),inset 0 0 80px rgba(27,94,59,.08);
  position:relative;
}
.hero-visual-circle::after{content:'';position:absolute;inset:18px;border-radius:50%;background:#F6F4EF;border:1px solid #B8963E}
.hero-visual-cross::before,.hero-visual-cross::after{background:#1B5E3B;border-radius:0;z-index:2}

/* === Section headings === */
.section-heading{
  font-size:clamp(2.4rem,5vw,4rem)!important;
  color:#1B5E3B!important;
  font-family:'DM Serif Display',serif!important;
  font-weight:400!important;line-height:1.05!important;
  position:relative;padding-top:2rem;
}
.section-heading::before{
  content:'\2666';display:block;
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  color:#B8963E;font-size:.8rem;
}
.section-heading em{color:#B8963E;font-style:italic}
.section-tag,.contact-tag{color:#B8963E!important;font-size:.72rem!important;letter-spacing:.22em!important;text-transform:uppercase!important;font-weight:500!important;font-family:'Heebo',sans-serif!important}
.section-tag::before,.contact-tag::before{content:'';width:32px;height:1px;background:#B8963E}

/* === Nav — logo + menu links + CTA === */
.nav{background:rgba(246,244,239,.96)!important;backdrop-filter:blur(12px);border-bottom:1px solid #E3DED5!important}
.nav-name,.nav .brand{color:#1B5E3B!important;font-family:'DM Serif Display',serif!important;font-weight:400;font-size:1.4rem}
.nav-links a:not(.nav-cta){color:#6B6860!important;font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem}
.nav-links a:not(.nav-cta):hover{color:#1B5E3B!important}
.nav-cross::before,.nav-cross::after{background:#1B5E3B}
.nav-cta{
  background:#1B5E3B!important;color:#F6F4EF!important;
  font-size:.72rem!important;padding:.7rem 1.6rem!important;
  border-radius:0!important;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;
}
.nav-cta:hover{background:#B8963E!important}
.nav.scrolled{background:rgba(246,244,239,.98);box-shadow:0 1px 0 rgba(184,150,62,.15)}
.mobile-overlay{background:#1B5E3B}

/* === About === */
.about{
  background:linear-gradient(135deg,#1B5E3B,#0f3e28)!important;
  color:#F6F4EF!important;border-radius:0;
}
.about::before,.about::after{border-color:rgba(184,150,62,.15)!important}
.about h1,.about h2,.about h3,.about-title{color:#F6F4EF!important}
.about-title em{color:#B8963E;font-style:italic}
.about-text:first-of-type::first-letter{font-family:'DM Serif Display',serif;font-size:5rem;line-height:.85;color:#B8963E;float:left;padding:.3rem .6rem 0 0}
.about-stat-num{color:#B8963E;font-family:'DM Serif Display',serif}
.about-quote{border-color:#B8963E;color:#F5ECD7;font-style:italic;border-left-width:3px}
.about-values li{color:#F5ECD7}
.about-values li::before{background:#B8963E;width:6px;height:6px;border-radius:50%}

/* === Reviews, Team, Gallery, Offerte, Blog, Contact, Footer, FAQ, Cookie etc === */
.review-card{padding:2.4rem 2rem!important;text-align:center}
.review-stars{color:#B8963E}
.review-author{color:#1B5E3B;font-weight:500;font-family:'DM Serif Display',serif}
.review-text{color:#4A4A4A;font-style:italic}
.team-photo{border-radius:50%!important;width:140px!important;height:140px!important;border:3px solid #B8963E}
.team-card{text-align:center;padding:2.4rem 1.8rem!important}
.team-role{color:#B8963E;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:500}
.team-name{font-family:'DM Serif Display',serif;color:#1B5E3B;font-size:1.4rem;font-weight:400}
.gallery-grid img,.gallery-grid a{border-radius:0!important;border:2px solid #B8963E}
.gallery-grid img:hover,.gallery-grid a:hover{transform:scale(1.02);border-color:#1B5E3B}
.offerta-badge{background:#1B5E3B;color:#F5ECD7;border-radius:0;padding:.4rem 1rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem}
.offerta-scadenza{color:#B8963E;font-weight:500}
.offerta-title{font-family:'DM Serif Display',serif;color:#1B5E3B}
.cat-news,.cat-offerta,.cat-blog{background:transparent;color:#1B5E3B;border:1px solid #1B5E3B;border-radius:0;padding:.3rem 1rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;font-weight:500}
.cat-offerta{color:#B8963E;border-color:#B8963E}
.blog-card h3{font-family:'DM Serif Display',serif;color:#1B5E3B}
.contact{background:#EDE9E0}
.contact-card{background:#FEFDFB}
.contact-card a{color:#1B5E3B}
.contact-card a:hover{color:#B8963E}
.site-footer{
  background:#1B5E3B;color:#F5ECD7;
  border-top:4px double #B8963E;
  padding-top:5rem!important;
  scroll-snap-align:none!important;min-height:auto!important;display:block!important;
}
.site-footer a{color:#F5ECD7}
.site-footer a:hover{color:#B8963E}
.footer-logo{color:#B8963E;font-family:'DM Serif Display',serif}
.footer-col h4{color:#F6F4EF;font-family:'DM Serif Display',serif;font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:.88rem}
.faq-item{background:#FEFDFB;border-top:2px solid #B8963E!important;border-bottom:2px solid #B8963E!important;border-left:none!important;border-right:none!important;box-shadow:none;margin-bottom:-2px}
.faq-item.open{background:#F5ECD7}
.faq-item.open .faq-question{color:#1B5E3B}
.faq-question{font-family:'DM Serif Display',serif;color:#1B5E3B;font-weight:400;font-size:1.1rem}
.turni-day.today{outline-color:#B8963E;outline-width:3px}
.turni-event{border-left-color:#B8963E;border-radius:0}
.booking-form input,.booking-form textarea,.booking-form select{border-radius:0!important;border:1px solid #E3DED5!important;border-bottom:2px solid #B8963E!important;background:#FEFDFB;padding:.9rem 1rem}
.booking-form input:focus,.booking-form textarea:focus{border-color:#1B5E3B;outline:none;border-bottom-color:#1B5E3B}
.booking-form label{color:#1B5E3B;font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem}
.filter-btn{border:1px solid #B8963E;background:transparent;color:#1B5E3B;border-radius:0;font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}
.filter-btn.active,.filter-btn:hover{background:#1B5E3B;color:#F6F4EF;border-color:#1B5E3B}
.page-btn{border:1px solid #B8963E;border-radius:0;background:transparent;color:#1B5E3B;font-weight:500}
.page-btn.active,.page-btn:hover{background:#1B5E3B;color:#F6F4EF;border-color:#1B5E3B}
.cookie-banner{background:#1B5E3B;color:#F5ECD7;border-top:3px solid #B8963E}
.cookie-banner button{background:#B8963E;color:#1B5E3B;border-radius:0;font-weight:500;text-transform:uppercase;letter-spacing:.12em}

a{color:#1B5E3B;transition:color .2s}
a:hover{color:#B8963E}

@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr!important;text-align:center}
  .hero-visual{display:none}
  html{scroll-snap-type:none}
  section.hero,section.services,section.about,section.gallery,section.reviews,section.team,section.contact,section.faq{min-height:auto;padding:4rem 1.5rem!important}
}
