/* Tema Natura — Clean Rustic Territorio
   Lora + Nunito. Salvia #4A7C59 + terracotta #C4703B su crema #F7F5EF.
   Per cantine, agriturismi, frantoi, caseifici, territorio.

   FIRMA VISIVA UNICA (differente da Organic):
   - Hero split 2fr/3fr con image frame rotondo morbido
   - Service grid 2 COL WIDE generoso
   - Card 20px rounded, ombre morbide verdi, zero bordi
   - Section heading clean senza orpelli
   - Team foto rettangolari 3:4
   - Fonts Lora 700 + Nunito 400, clean */

/* === FONTS === */
@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/lora-400.ttf') format('truetype')}
@font-face{font-family:'Lora';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/lora-400i.ttf') format('truetype')}
@font-face{font-family:'Lora';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/lora-700.ttf') format('truetype')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/nunito-300.ttf') format('truetype')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/nunito-400.ttf') format('truetype')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/nunito-600.ttf') format('truetype')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/nunito-700.ttf') format('truetype')}

/* === VARIABLES === */
:root {
  --bg:#F7F5EF;--card:#FFFDF6;--ink:#2C3E2D;--green:#4A7C59;--green-light:#5E9E70;
  --green-pale:#E4EDE5;--gold:#C4703B;--gold-light:#FDE8D8;--muted:#6B7B6C;
  --border:#E0DCD0;--cream:#EDE7DA;
  --font-serif:'Lora',Georgia,serif;
  --font-sans:'Nunito','Segoe UI',sans-serif;
}
::selection{background:#4A7C59;color:#F7F5EF}

body{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%234A7C59' stroke-width='1.2' stroke-opacity='.08'%3E%3Cpath d='M30,60 Q30,20 60,20 Q30,40 30,60 Z' transform='rotate(10 60 60)'/%3E%3Cpath d='M90,60 Q90,20 60,20 Q90,40 90,60 Z' transform='rotate(-10 60 60)'/%3E%3Cpath d='M60,90 Q60,50 30,50' transform='rotate(25 60 60)'/%3E%3Cpath d='M60,90 Q60,50 90,50' transform='rotate(-25 60 60)'/%3E%3C/g%3E%3C/svg%3E"),
    #F7F5EF!important;
  background-size:120px 120px!important;
  color:#2C3E2D;
  font-family:'Nunito',sans-serif;font-weight:400;
}

h1,h2,h3,h4,h5,h6{font-family:'Lora',Georgia,serif!important;color:#2C3E2D;font-weight:700;letter-spacing:-.005em}
h1 em,h2 em,h3 em,h4 em,h5 em,h6 em{font-style:italic;color:#4A7C59;font-weight:400}

/* === CARDS — 20px rounded, no border, gentle shadows === */
.svc-card,.review-card,.team-card,.offerta-card,.blog-card,.contact-card,.orari-card,.faq-item{
  border-radius:20px!important;
  border:none!important;
  background:#FFFDF6;
  box-shadow:0 6px 26px rgba(44,62,45,.07);
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
}
.svc-card:hover,.review-card:hover,.team-card:hover,.offerta-card:hover,.blog-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 44px -14px rgba(74,124,89,.22);
}
.svc-card::after{display:none!important}

/* === Service grid — 2 COL WIDE spacious === */
.svc-grid{
  grid-template-columns:1fr 1fr!important;
  gap:2rem!important;
  max-width:1200px;margin:0 auto;
}
.svc-card{padding:3rem 2.6rem!important}
.svc-icon{
  width:68px;height:68px;border-radius:20px!important;
  background:linear-gradient(135deg,#E4EDE5,#FDE8D8);
  color:#4A7C59;border:none;
  transition:all .4s;
}
.svc-card:hover .svc-icon{background:linear-gradient(135deg,#4A7C59,#5E9E70);color:#F7F5EF}
.svc-card h3{font-size:1.45rem!important;font-family:'Lora',serif!important;color:#2C3E2D;font-weight:700;margin-top:1.6rem;line-height:1.2}
.svc-card p{color:#6B7B6C;font-size:1rem;line-height:1.8;font-weight:400}
@media(max-width:820px){.svc-grid{grid-template-columns:1fr!important}}

/* === Buttons === */
.btn-hero,.nav-cta,.filter-btn,.page-btn{border-radius:14px!important}
.btn-hero-primary{
  background:#4A7C59!important;color:#F7F5EF!important;
  padding:1rem 2.4rem!important;
  font-weight:700;font-size:.88rem;
  border:none;box-shadow:0 6px 20px -6px rgba(74,124,89,.4);
  letter-spacing:.02em;
}
.btn-hero-primary:hover{
  background:#C4703B!important;
  transform:translateY(-2px);
  box-shadow:0 10px 28px -6px rgba(196,112,59,.5);
}
.btn-hero-outline{
  border:2px solid #4A7C59!important;color:#4A7C59;
  padding:1rem 2.4rem!important;background:transparent;font-weight:700;font-size:.88rem;
}
.btn-hero-outline:hover{background:#4A7C59;color:#F7F5EF!important}

/* === Hero badge === */
.hero-badge{
  border-radius:14px;background:#E4EDE5;color:#4A7C59;
  padding:.5rem 1.2rem;letter-spacing:.06em;font-size:.78rem;font-weight:700;
  text-transform:uppercase;
}
.hero-badge::before{background:#C4703B;width:6px;height:6px;border-radius:50%}

/* === Sections === */
.services,.orari,.reviews,.team,.contact,.gallery,.faq,.offerte-preview,.offerte-section,.turni-section,.booking-section,.blog-section{
  padding:6rem 2.5rem!important;background:#F7F5EF;
}
.reviews{background:#EDE7DA}

/* === Hero — 2fr/3fr image right === */
.hero{
  padding:9rem 2.5rem 5rem!important;
  background:linear-gradient(160deg,#F7F5EF 0%,#EDE7DA 100%);
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;top:-15%;right:-10%;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(74,124,89,.08),transparent 60%);
  pointer-events:none;
}
.hero::after{
  content:'';position:absolute;bottom:-15%;left:-8%;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(196,112,59,.07),transparent 60%);
  pointer-events:none;
}
/* === HERO NATURA: stacked verticale, testo CENTRATO sopra, visual sotto 100% === */
.hero-inner{
  grid-template-columns:1fr!important;
  gap:3rem!important;
  max-width:1100px!important;
  text-align:center;
}
.hero-content{order:1;text-align:center;max-width:800px;margin:0 auto}
.hero-visual{order:2;margin:0 auto;width:100%;min-height:auto!important;display:flex!important;justify-content:center}
.hero-sub{margin:0 auto!important;max-width:640px;text-align:center}
.hero-buttons{justify-content:center!important}
.hero-stats{justify-content:center!important}
.hero h1{
  font-size:clamp(2.8rem,5.5vw,4.8rem)!important;
  color:#2C3E2D!important;
  font-family:'Lora',Georgia,serif!important;
  font-weight:700!important;line-height:1.05!important;
}
.hero h1 em{color:#4A7C59;font-style:italic;font-weight:400}
.hero .lead,.hero-sub{color:#6B7B6C;font-weight:400;font-size:1.08rem;line-height:1.85}
.hero-visual-circle{
  width:480px;height:480px;border-radius:20px;
  background:
    linear-gradient(135deg,rgba(74,124,89,.1),rgba(196,112,59,.1)),
    radial-gradient(circle at 30% 30%,#E4EDE5,#4A7C59 85%);
  box-shadow:0 30px 70px -18px rgba(74,124,89,.3);
  position:relative;
}
.hero-visual-circle::after{
  content:'';position:absolute;inset:14px;
  border-radius:16px;background:#F7F5EF;
}
.hero-visual-cross::before,.hero-visual-cross::after{background:#4A7C59;border-radius:3px;z-index:2}
.hero-stat-num{color:#4A7C59;font-size:2.5rem!important;font-family:'Lora',serif!important;font-weight:700}
.hero-stat-label{color:#6B7B6C;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.hero-float{
  border-radius:16px;border:none;background:#FFFDF6;
  box-shadow:0 12px 30px -10px rgba(44,62,45,.15);
}
.hero-float-icon.green{background:#E4EDE5;color:#4A7C59;border-radius:10px}
.hero-float-icon.gold{background:#FDE8D8;color:#C4703B;border-radius:10px}

/* === Section headings === */
.section-heading{
  font-size:clamp(2.2rem,4.5vw,3.4rem)!important;
  color:#2C3E2D!important;
  font-family:'Lora',Georgia,serif!important;
  font-weight:700!important;line-height:1.1!important;
  letter-spacing:-.01em!important;
}
.section-heading em,.about-title em{color:#4A7C59;font-style:italic;font-weight:400}
.section-tag,.contact-tag{
  color:#C4703B!important;font-size:.78rem!important;
  letter-spacing:.16em!important;text-transform:uppercase!important;
  font-weight:700!important;font-family:'Nunito',sans-serif!important;
}
.section-tag::before,.contact-tag::before{content:'';width:28px;height:2px;background:#4A7C59;border-radius:2px}


/* === Nav === */
.nav{background:rgba(247,245,239,.95)!important;backdrop-filter:blur(12px);border-bottom:1px solid #E0DCD0!important}
.nav-name,.nav .brand{color:#2C3E2D!important;font-family:'Lora',serif!important;font-weight:700}
.nav-links a:not(.nav-cta){color:#6B7B6C!important;font-weight:600}
.nav-links a:not(.nav-cta):hover{color:#4A7C59!important}
.nav-cross::before,.nav-cross::after{background:#4A7C59}
.nav-cta{
  background:#4A7C59!important;color:#F7F5EF!important;
  font-size:.8rem!important;padding:.75rem 1.7rem!important;
  border-radius:14px!important;font-weight:700;
  box-shadow:0 6px 16px -4px rgba(74,124,89,.35);
}
.nav-cta:hover{background:#C4703B!important;transform:translateY(-1px)}
.nav.scrolled{background:rgba(247,245,239,.98);box-shadow:0 4px 24px rgba(74,124,89,.08)}
.mobile-overlay{background:#2C3E2D}
.mobile-overlay a{color:#E4EDE5}
.mobile-overlay a:hover{color:#C4703B}

/* === About === */
.about{
  background:linear-gradient(135deg,#2C3E2D,#4A5437)!important;
  color:#F7F5EF!important;border-radius:0;
  padding:6rem 3rem!important;
}
.about::before,.about::after{border-color:rgba(196,112,59,.15)!important}
.about h1,.about h2,.about h3,.about-title{color:#F7F5EF!important}
.about-title em{color:#C4703B;font-style:italic}
.about-stat-num{color:#C4703B;font-family:'Lora',serif;font-weight:700}
.about-quote{border-color:#C4703B;color:#E4EDE5;font-style:italic;border-left-width:3px}
.about-values li{color:#E4EDE5}
.about-values li::before{background:#C4703B;border-radius:50%}

/* === Reviews === */
.review-card{padding:2.4rem 2rem!important;text-align:center}
.review-stars{color:#C4703B;font-size:1.1rem;letter-spacing:.25em}
.review-author{color:#4A7C59;font-weight:700;font-family:'Lora',serif}
.review-text{color:#4A5437;font-size:1rem;line-height:1.75}

/* === Team RECTANGULAR 3:4 === */
.team-photo{
  border-radius:16px!important;
  width:100%!important;height:260px!important;
  object-fit:cover;
  transition:all .5s;
}
.team-card{padding:1.4rem!important;text-align:left;overflow:hidden}
.team-card:hover .team-photo{transform:scale(1.04)}
.team-role{color:#C4703B;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;margin-top:1rem}
.team-name{font-family:'Lora',serif;color:#2C3E2D;font-size:1.3rem;font-weight:700}

/* === Gallery === */
.gallery-grid{gap:1rem!important}
.gallery-grid img,.gallery-grid a{
  border-radius:20px!important;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
  box-shadow:0 8px 24px -8px rgba(44,62,45,.15);
}
.gallery-grid img:hover,.gallery-grid a:hover{
  transform:scale(1.03);
  box-shadow:0 20px 44px -12px rgba(74,124,89,.25);
}

/* === Offerte === */
.offerta-badge{
  background:#C4703B;color:#F7F5EF;border-radius:14px;
  padding:.4rem 1rem;font-weight:700;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.08em;
}
.offerta-scadenza{color:#4A7C59;font-weight:600}
.offerta-title{font-family:'Lora',serif;color:#2C3E2D;font-weight:700}
.offerta-card img{border-radius:20px 20px 0 0}

/* === Blog === */
.cat-news,.cat-offerta,.cat-blog{
  background:#E4EDE5;color:#4A7C59;
  border-radius:14px;padding:.3rem .9rem;
  font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
}
.cat-offerta{background:#FDE8D8;color:#C4703B}
.blog-card h3{font-family:'Lora',serif;color:#2C3E2D;font-weight:700}
.blog-card img{border-radius:20px 20px 0 0}

/* === Contact === */
.contact{background:#EDE7DA}
.contact-card{background:#FFFDF6}
.contact-card a{color:#2C3E2D}
.contact-card a:hover{color:#4A7C59}

/* === Footer === */
.site-footer{
  background:linear-gradient(135deg,#2C3E2D,#1a2a1b)!important;
  color:#E4EDE5;
  border-top:3px solid #C4703B;padding-top:5rem!important;
}
.site-footer a{color:#E4EDE5}
.site-footer a:hover{color:#C4703B}
.footer-logo{color:#C4703B;font-family:'Lora',serif;font-weight:700}
.footer-cross::before,.footer-cross::after{background:#C4703B}
.footer-col h4{color:#F7F5EF;font-family:'Lora',serif;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.88rem}
.footer-bottom{border-top:1px solid rgba(196,112,59,.15)}
.footer-bottom a{color:#C4703B}

/* === FAQ === */
.faq-item{background:#FFFDF6;border:none;box-shadow:0 4px 18px rgba(44,62,45,.06);border-radius:20px!important;margin-bottom:1rem}
.faq-item.open{box-shadow:0 8px 28px rgba(74,124,89,.12);border-left:4px solid #4A7C59!important;background:linear-gradient(135deg,#FFFDF6,#E4EDE5)}
.faq-item.open .faq-question{color:#4A7C59}
.faq-question{font-family:'Lora',serif;color:#2C3E2D;font-weight:700}

/* === Turni === */
.turni-day.today{outline-color:#C4703B;outline-width:3px}
.turni-event{border-left-color:#4A7C59;border-radius:14px}

/* === Forms === */
.booking-form input,.booking-form textarea,.booking-form select{
  border-radius:14px!important;border:2px solid #E0DCD0!important;background:#FFFDF6;
  padding:.9rem 1.2rem;font-family:'Nunito',sans-serif;
}
.booking-form input:focus,.booking-form textarea:focus{
  border-color:#4A7C59;outline:none;
  box-shadow:0 0 0 4px rgba(74,124,89,.08);
}
.booking-form label{color:#4A7C59;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}

/* === Brands === */
.brands{border-color:#E0DCD0;background:#EDE7DA}

/* === Filter / Pagination === */
.filter-btn{border:2px solid #E0DCD0;background:transparent;color:#6B7B6C;border-radius:14px;font-weight:700;font-size:.82rem}
.filter-btn.active,.filter-btn:hover{background:#4A7C59;color:#F7F5EF;border-color:#4A7C59}
.page-btn{border:2px solid #E0DCD0;border-radius:14px;background:#FFFDF6;font-weight:700}
.page-btn.active,.page-btn:hover{background:#4A7C59;color:#F7F5EF;border-color:#4A7C59}

/* === Cookie === */
.cookie-banner{background:#2C3E2D;color:#E4EDE5;border-top:3px solid #C4703B}
.cookie-banner button{background:#4A7C59;color:#F7F5EF;border-radius:14px;font-weight:700}
.cookie-banner button:hover{background:#C4703B}

/* === Links === */
a{color:#4A7C59;transition:color .2s}
a:hover{color:#C4703B}

/* === 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}
}
