/* Tema Classico — Tradizione Italiana
   DM Serif Display + Heebo. Crema #F6F4EF + verde bosco #1B5E3B + oro #B8963E.
   Per attività storiche, botteghe tradizionali, commercio classico.

   FIRMA VISIVA UNICA:
   - Hero split 2fr/3fr con immagine grande a destra
   - Cards con cornici oro solo top/bottom (niente bordi laterali)
   - Drop cap sulla prima lettera del testo about
   - Service grid 3-col con divisori verticali oro tra le card
   - Section heading con ornamento centrale (♦ oro) sopra il titolo
   - Serif heavy DM Serif Display + Heebo light
   - Hover card: sfondo crema caldo
   - About: sfondo verde bosco con drop cap oro */

/* === 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 (default: Bosco) — override via body[data-color] + body[data-font] === */
:root {
  --bg:#F6F4EF;--card:#FEFDFB;--ink:#1E1E1E;
  --primary:#1B5E3B;--primary-light:#27764D;--primary-dark:#0f3e28;--primary-pale:#E2F0E7;
  --accent:#B8963E;--accent-pale:#F5ECD7;
  --muted:#8A8580;--muted-alt:#6B6860;--border:#E3DED5;--cream:#EDE9E0;
  --font-serif:'DM Serif Display',Georgia,serif;
  --font-sans:'Heebo','Segoe UI',sans-serif;
}
/* === COLOR VARIANTS === */
body[data-theme="classico"][data-color="wine"]{
  --primary:#7C2D36;--primary-light:#943640;--primary-dark:#5B1F27;--primary-pale:#F9ECEC;
  --accent:#C4703B;--accent-pale:#FBF0E8;
}
body[data-theme="classico"][data-color="navy"]{
  --primary:#082F42;--primary-light:#0C4860;--primary-dark:#05202D;--primary-pale:#D9EAED;
  --accent:#C9A959;--accent-pale:#F5EFDE;
}
body[data-theme="classico"][data-color="noir"]{
  --primary:#0a0a0a;--primary-light:#1a1a1a;--primary-dark:#000;--primary-pale:#F5F0E1;
  --accent:#C9A959;--accent-pale:#F5EFDE;
}
body[data-theme="classico"][data-color="forest"]{
  --primary:#0F3E28;--primary-light:#1B5E3B;--primary-dark:#062013;--primary-pale:#E2F0E7;
  --accent:#C9A959;--accent-pale:#F5EFDE;
}
/* === FONT VARIANTS === */
body[data-theme="classico"][data-font="playfair"]{
  --font-serif:'Playfair Display',Georgia,serif;
  --font-sans:'Inter','Segoe UI',sans-serif;
}
body[data-theme="classico"][data-font="lora"]{
  --font-serif:'Lora',Georgia,serif;
  --font-sans:'Nunito','Segoe UI',sans-serif;
}
body[data-theme="classico"][data-font="outfit"]{
  --font-serif:'Outfit',system-ui,sans-serif;
  --font-sans:'Outfit',system-ui,sans-serif;
}

::selection{background:var(--primary);color:var(--bg)}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-sans);font-weight:300;
}

/* === GLOBAL TYPOGRAPHY === */
h1,h2,h3,h4,h5,h6{font-family:var(--font-serif)!important;color:var(--primary);font-weight:400;letter-spacing:-.005em}
h1 em,h2 em,h3 em,h4 em,h5 em,h6 em{font-style:italic;color:var(--accent);font-weight:400}

/* === GLOBAL CARD — Gold frame top+bottom === */
.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 var(--accent)!important;
  border-bottom:2px solid var(--accent)!important;
  background:var(--card);
  box-shadow:none;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
  position:relative;
}
.svc-card:hover,.review-card:hover,.team-card:hover,.offerta-card:hover,.blog-card:hover,.contact-card:hover{
  background:var(--accent-pale);
  transform:translateY(-3px);
  box-shadow:0 16px 36px -14px rgba(27,94,59,.18);
}
.svc-card::after{display:none!important}

/* === Service grid — 3-col with vertical gold dividers === */
.svc-grid{
  grid-template-columns:repeat(3,1fr)!important;
  gap:0!important;
  border-top:1px solid var(--accent);
  border-bottom:1px solid var(--accent);
}
.svc-card{
  border-top:none!important;border-bottom:none!important;
  border-left:1px solid var(--accent)!important;
  padding:2.6rem 2rem!important;
  background:transparent;
}
.svc-card:first-child{border-left:none!important}
.svc-card:hover{background:rgba(245,236,215,.4)}
.svc-icon{
  width:56px;height:56px;border-radius:50%!important;
  background:var(--accent-pale);color:var(--primary);
  border:2px solid var(--accent);
}
.svc-card h3{font-family:var(--font-serif)!important;font-size:1.5rem!important;color:var(--primary);font-weight:400;margin-top:1.4rem;line-height:1.15}
.svc-card p{color:var(--muted-alt);font-weight:300;font-size:.96rem;line-height:1.75}
@media(max-width:900px){
  .svc-grid{grid-template-columns:1fr 1fr!important}
  .svc-card:nth-child(3n+1){border-left:none!important}
}
@media(max-width:600px){
  .svc-grid{grid-template-columns:1fr!important}
  .svc-card{border-left:none!important;border-top:1px solid var(--accent)!important}
  .svc-card:first-child{border-top:none!important}
}

/* === Buttons — Square serif with gold underline === */
.btn-hero,.nav-cta,.filter-btn,.page-btn{border-radius:0!important}
.btn-hero-primary{
  background:var(--primary)!important;color:var(--bg)!important;
  padding:1rem 2.4rem!important;
  font-weight:500;letter-spacing:.12em;font-size:.78rem;
  border:2px solid var(--primary);text-transform:uppercase;
  position:relative;
}
.btn-hero-primary:hover{background:var(--accent)!important;border-color:var(--accent)!important}
.btn-hero-outline{
  border:2px solid var(--primary)!important;color:var(--primary);
  padding:1rem 2.4rem!important;background:transparent;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;
}
.btn-hero-outline:hover{background:var(--primary);color:var(--bg)!important}

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

/* === Sections === */
.services,.orari,.reviews,.team,.contact,.gallery,.faq,.offerte-preview,.offerte-section,.turni-section,.booking-section,.blog-section{
  padding:7rem 2.5rem!important;background:var(--bg);
}
.reviews{background:var(--cream)}

/* === Hero — 2fr/3fr, image dominant on right === */
.hero{
  padding:8rem 2.5rem 6rem!important;
  background:linear-gradient(180deg,var(--bg) 0%,var(--cream) 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 CLASSICO: centrato editoriale con cornici oro, no visual === */
.hero-inner{
  grid-template-columns:1fr!important;
  max-width:900px!important;
  gap:1.5rem!important;
  text-align:center;
  padding:4rem 2rem;
  border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);
  position:relative;
}
.hero-inner::before,.hero-inner::after{
  content:'\2666';position:absolute;left:50%;transform:translateX(-50%);
  color:var(--accent);font-size:1rem;background:var(--bg);padding:0 .8rem;
}
.hero-inner::before{top:-.5rem}
.hero-inner::after{bottom:-.7rem}
.hero-content{text-align:center;margin:0 auto}
.hero-visual{display:none!important}
.hero-sub{margin:0 auto!important;text-align:center;max-width:600px}
.hero-buttons{justify-content:center!important}
.hero-stats{justify-content:center!important}
.hero h1{
  font-size:clamp(3rem,5.8vw,5.2rem)!important;
  color:var(--primary)!important;
  font-family:var(--font-serif)!important;
  font-weight:400!important;line-height:1!important;
  letter-spacing:-.01em!important;
}
.hero h1 em{color:var(--accent);font-style:italic;font-weight:400}
.hero .lead,.hero-sub{color:var(--muted-alt);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%,var(--accent-pale) 0%,var(--accent) 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:var(--bg);
  border:1px solid var(--accent);
}
.hero-visual-cross::before,.hero-visual-cross::after{background:var(--primary);border-radius:0;z-index:2}
.hero-stat-num{color:var(--primary);font-size:2.6rem!important;font-family:var(--font-serif)!important;font-weight:400}
.hero-stat-label{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;font-size:.7rem}
.hero-float{
  border-radius:0;border:none;
  border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);
  background:var(--card);box-shadow:0 12px 36px -12px rgba(27,94,59,.15);
}
.hero-float-icon.green{background:var(--primary-pale);color:var(--primary);border-radius:0}
.hero-float-icon.gold{background:var(--accent-pale);color:var(--accent);border-radius:0}

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

/* === Nav === */
.nav{background:rgba(246,244,239,.96)!important;backdrop-filter:blur(12px);border-bottom:1px solid var(--border)!important}
.nav-name,.nav .brand{color:var(--primary)!important;font-family:var(--font-serif)!important;font-weight:400;font-size:1.4rem}
.nav-links a:not(.nav-cta){color:var(--muted-alt)!important;font-weight:400;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem}
.nav-links a:not(.nav-cta):hover{color:var(--primary)!important}
.nav-cross::before,.nav-cross::after{background:var(--primary)}
.nav-cta{
  background:var(--primary)!important;color:var(--bg)!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:var(--accent)!important}
.nav.scrolled{background:rgba(246,244,239,.98);box-shadow:0 1px 0 rgba(184,150,62,.15)}
.mobile-overlay{background:var(--primary)}
.mobile-overlay a{color:var(--accent-pale)}
.mobile-overlay a:hover{color:var(--accent)}

/* === About — Dark green bg with DROP CAP on first paragraph === */
.about{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark))!important;
  color:var(--bg)!important;border-radius:0;
  padding:7rem 3rem!important;
}
.about::before,.about::after{border-color:rgba(184,150,62,.15)!important}
.about h1,.about h2,.about h3,.about-title{color:var(--bg)!important}
.about-title em{color:var(--accent);font-style:italic}
.about-text:first-of-type::first-letter{
  font-family:var(--font-serif);
  font-size:5rem;line-height:.85;
  color:var(--accent);
  float:left;
  padding:.3rem .6rem 0 0;
}
.about-stat-num{color:var(--accent);font-family:var(--font-serif);font-weight:400}
.about-quote{border-color:var(--accent);color:var(--accent-pale);font-style:italic;border-left-width:3px}
.about-values li{color:var(--accent-pale)}
.about-values li::before{background:var(--accent);width:6px;height:6px;border-radius:50%}

/* === Reviews === */
.review-card{padding:2.4rem 2rem!important;text-align:center}
.review-stars{color:var(--accent);font-size:1.1rem;letter-spacing:.25em}
.review-author{color:var(--primary);font-weight:500;font-family:var(--font-serif);font-size:1.1rem}
.review-text{color:var(--muted-alt);font-style:italic;font-size:1rem;line-height:1.8}

/* === Team === */
.team-photo{
  border-radius:50%!important;
  width:140px!important;height:140px!important;
  border:3px solid var(--accent);
  filter:sepia(8%);
  transition:all .5s;
}
.team-card:hover .team-photo{border-color:var(--primary);filter:sepia(0)}
.team-card{text-align:center;padding:2.4rem 1.8rem!important}
.team-role{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:500}
.team-name{font-family:var(--font-serif);color:var(--primary);font-size:1.4rem;font-weight:400}

/* === Gallery === */
.gallery-grid{gap:.8rem!important}
.gallery-grid img,.gallery-grid a{
  border-radius:0!important;
  border:2px solid var(--accent);
  transition:all .5s ease;
}
.gallery-grid img:hover,.gallery-grid a:hover{
  transform:scale(1.02);
  border-color:var(--primary);
  box-shadow:0 16px 40px -12px rgba(27,94,59,.2);
}

/* === Offerte === */
.offerta-badge{
  background:var(--primary);color:var(--accent-pale);border-radius:0;
  padding:.4rem 1rem;font-weight:500;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.14em;
}
.offerta-scadenza{color:var(--accent);font-weight:500}
.offerta-title{font-family:var(--font-serif);color:var(--primary);font-weight:400}

/* === Blog === */
.cat-news,.cat-offerta,.cat-blog{
  background:transparent;color:var(--primary);
  border:1px solid var(--primary);border-radius:0;
  padding:.3rem 1rem;font-size:.68rem;
  text-transform:uppercase;letter-spacing:.14em;font-weight:500;
}
.cat-offerta{color:var(--accent);border-color:var(--accent)}
.blog-card h3{font-family:var(--font-serif);color:var(--primary);font-weight:400}

/* === Contact === */
.contact{background:var(--cream)}
.contact-card{background:var(--card)}
.contact-card a{color:var(--primary)}
.contact-card a:hover{color:var(--accent)}

/* === Footer === */
.site-footer{
  background:var(--primary);color:var(--accent-pale);
  border-top:4px double var(--accent);
  padding-top:5rem!important;
}
.site-footer a{color:var(--accent-pale)}
.site-footer a:hover{color:var(--accent)}
.footer-logo{color:var(--accent);font-family:var(--font-serif)}
.footer-cross::before,.footer-cross::after{background:var(--accent)}
.footer-col h4{color:var(--bg);font-family:var(--font-serif);font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:.88rem}
.footer-bottom{border-top:1px solid rgba(184,150,62,.2)}
.footer-bottom a{color:var(--accent)}

/* === FAQ === */
.faq-item{background:var(--card);border-top:2px solid var(--accent)!important;border-bottom:2px solid var(--accent)!important;border-left:none!important;border-right:none!important;box-shadow:none;margin-bottom:-2px}
.faq-item.open{background:var(--accent-pale)}
.faq-item.open .faq-question{color:var(--primary)}
.faq-question{font-family:var(--font-serif);color:var(--primary);font-weight:400;font-size:1.1rem}

/* === Turni === */
.turni-day.today{outline-color:var(--accent);outline-width:3px}
.turni-event{border-left-color:var(--accent);border-radius:0}

/* === Forms === */
.booking-form input,.booking-form textarea,.booking-form select{
  border-radius:0!important;border:1px solid var(--border)!important;
  border-bottom:2px solid var(--accent)!important;background:var(--card);
  padding:.9rem 1rem;font-family:var(--font-sans);
}
.booking-form input:focus,.booking-form textarea:focus{border-color:var(--primary);outline:none;border-bottom-color:var(--primary)}
.booking-form label{color:var(--primary);font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem}

/* === Brands === */
.brands{border-color:var(--border);background:var(--bg)}

/* === Filter / Pagination === */
.filter-btn{border:1px solid var(--accent);background:transparent;color:var(--primary);border-radius:0;font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}
.filter-btn.active,.filter-btn:hover{background:var(--primary);color:var(--bg);border-color:var(--primary)}
.page-btn{border:1px solid var(--accent);border-radius:0;background:transparent;font-weight:500;color:var(--primary)}
.page-btn.active,.page-btn:hover{background:var(--primary);color:var(--bg);border-color:var(--primary)}

/* === Cookie === */
.cookie-banner{background:var(--primary);color:var(--accent-pale);border-top:3px solid var(--accent)}
.cookie-banner button{background:var(--accent);color:var(--primary);border-radius:0;font-weight:500;text-transform:uppercase;letter-spacing:.12em}

/* === Links === */
a{color:var(--primary);transition:color .2s}
a:hover{color:var(--accent)}

/* === Mobile === */
@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr!important;text-align:center}
  .hero-visual{display:none}
}
@media(max-width:768px){
  .hero{padding:7rem 1.5rem 3rem!important}
  .services,.orari,.reviews,.team,.contact,.faq,.about{padding:4rem 1.5rem!important}
  .section-heading{font-size:2rem!important}
}
