/* Tema Elegante — Stellato Minimal
   Playfair Display + Inter. Petrolio #004551 + arancio dorato #FF9700 su grigio #F4F4F4.
   Per ristoranti raffinati, hotel, bar di classe, wine bar, enoteche.

   FIRMA VISIVA UNICA:
   - Hero CENTERED con testo ENORME (clamp 4-7rem)
   - Negative space estremo (padding 10rem su sezioni)
   - Service grid 2 colonne con spacing 4rem tra le card
   - Cards pill arrotondate 28px, no border
   - Section headings Playfair italic enorme
   - Divider lines orizzontali sottili arancio
   - Bottoni pill molto grandi (50px radius)
   - About petrolio con citazione grande tipo Michelin */

/* === FONTS === */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/playfair-400.ttf') format('truetype')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/playfair-400i.ttf') format('truetype')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/playfair-700.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/inter-300.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/inter-400.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/inter-500.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/inter-600.ttf') format('truetype')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/inter-700.ttf') format('truetype')}

/* === VARIABLES === */
:root {
  --bg:#F4F4F4;--card:#FFFFFF;--ink:#004551;--green:#004551;--green-light:#00616F;
  --green-pale:#D9EAED;--gold:#FF9700;--gold-light:#FFF3E0;--muted:#5A5A5A;
  --border:#D9EAED;--cream:#E8F1F3;
  --font-serif:'Playfair Display',Georgia,serif;
  --font-sans:'Inter','Segoe UI',sans-serif;
}
::selection{background:#004551;color:#F4F4F4}

body{
  background:#F4F4F4;color:#1a1a1a;
  font-family:'Inter',sans-serif;font-weight:300;
}

h1,h2,h3,h4,h5,h6{font-family:'Playfair Display',Georgia,serif!important;color:#004551;font-weight:400;letter-spacing:-.015em}
h1 em,h2 em,h3 em,h4 em,h5 em,h6 em{font-style:italic;color:#FF9700;font-weight:400}

/* === CARDS — Pill rounded 28px, no border === */
.svc-card,.review-card,.team-card,.offerta-card,.blog-card,.contact-card,.orari-card,.faq-item{
  border-radius:28px!important;
  border:none!important;
  background:#FFFFFF;
  box-shadow:0 4px 30px rgba(0,69,81,.05);
  transition:all .6s cubic-bezier(.25,.8,.25,1);
}
.svc-card:hover,.review-card:hover,.team-card:hover,.offerta-card:hover,.blog-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 60px -20px rgba(0,69,81,.18);
}
.svc-card::after{display:none!important}
.svc-card:hover{border-bottom:3px solid #FF9700!important}

/* === Service grid — 2 COL con spacing generoso === */
.svc-grid{
  grid-template-columns:1fr 1fr!important;
  gap:3rem!important;
  max-width:1200px;margin:0 auto;
}
.svc-card{padding:3.2rem 2.8rem!important}
.svc-icon{
  width:64px;height:64px;border-radius:50%!important;
  background:#FFF3E0;color:#FF9700;
  border:none;
}
.svc-card:hover .svc-icon{background:#FF9700;color:#fff}
.svc-card h3{font-size:1.5rem!important;font-family:'Playfair Display',serif!important;color:#004551;font-weight:400;margin-top:1.6rem}
.svc-card p{color:#5A5A5A;font-size:1rem;line-height:1.85;font-weight:300}
@media(max-width:820px){.svc-grid{grid-template-columns:1fr!important}}

/* === Buttons — Pill enorme === */
.btn-hero,.nav-cta,.filter-btn,.page-btn{border-radius:50px!important}
.btn-hero-primary{
  background:#FF9700!important;color:#fff!important;
  padding:1.2rem 3rem!important;
  font-weight:600;font-size:.82rem;
  border:none;text-transform:uppercase;letter-spacing:.1em;
  box-shadow:0 10px 30px -8px rgba(255,151,0,.4);
}
.btn-hero-primary:hover{
  background:#e08800!important;
  transform:translateY(-3px);
  box-shadow:0 16px 38px -8px rgba(255,151,0,.5);
}
.btn-hero-outline{
  border:2px solid #004551!important;color:#004551;
  padding:1.2rem 3rem!important;background:transparent;font-weight:600;
  text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;
}
.btn-hero-outline:hover{background:#004551;color:#fff!important}

/* === Hero badge — Pill === */
.hero-badge{
  border-radius:50px;background:#D9EAED;color:#004551;
  padding:.5rem 1.4rem;letter-spacing:.1em;font-size:.78rem;font-weight:500;
  text-transform:uppercase;
}
.hero-badge::before{background:#FF9700;width:6px;height:6px;border-radius:50%}

/* === Sections — Negative space estremo === */
.services,.orari,.reviews,.team,.contact,.gallery,.faq,.offerte-preview,.offerte-section,.turni-section,.booking-section,.blog-section{
  padding:9rem 2.5rem!important;background:#F4F4F4;
}
.reviews{background:#FFFFFF}
.offerte-preview{background:#FFFFFF}

/* === Hero — CENTERED HUGE === */
.hero{
  padding:12rem 2.5rem 8rem!important;
  background:linear-gradient(180deg,#F4F4F4 0%,#E8F1F3 100%);
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;top:10%;right:-10%;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,69,81,.06),transparent 60%);
}
.hero::after{
  content:'';position:absolute;bottom:5%;left:-5%;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,151,0,.06),transparent 60%);
}
.hero-inner{
  grid-template-columns:1fr!important;
  max-width:960px!important;text-align:center;gap:2rem!important;
}
.hero-content{text-align:center;margin:0 auto}
.hero-visual{display:none}
.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(3.4rem,7vw,6.4rem)!important;
  color:#004551!important;
  font-family:'Playfair Display',serif!important;
  font-weight:400!important;line-height:1!important;
  letter-spacing:-.025em!important;
}
.hero h1 em{color:#FF9700;font-style:italic;font-weight:400}
.hero .lead,.hero-sub{color:#5A5A5A;font-weight:300;font-size:1.22rem;line-height:1.8}
.hero-stat-num{color:#FF9700;font-size:3rem!important;font-family:'Playfair Display',serif!important;font-weight:400}
.hero-stat-label{color:#5A5A5A;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem}

/* === Section headings — ENORME === */
.section-heading{
  font-size:clamp(2.8rem,5.5vw,4.6rem)!important;
  color:#004551!important;
  font-family:'Playfair Display',serif!important;
  font-weight:400!important;line-height:1.02!important;
  letter-spacing:-.02em!important;
  margin-bottom:1.2rem!important;
}
.section-heading em,.about-title em{color:#FF9700;font-style:italic;font-weight:400}
.section-tag,.contact-tag{
  color:#FF9700!important;font-size:.76rem!important;
  letter-spacing:.2em!important;text-transform:uppercase!important;
  font-weight:500!important;font-family:'Inter',sans-serif!important;
}
.section-tag::before,.contact-tag::before{content:'';width:28px;height:1px;background:#FF9700}
.section-desc{font-size:1.1rem!important;color:#5A5A5A;font-weight:300;line-height:1.8;max-width:640px}

/* === Nav === */
.nav{background:rgba(244,244,244,.92)!important;backdrop-filter:blur(18px);border-bottom:1px solid rgba(0,69,81,.08)!important}
.nav-name,.nav .brand{color:#004551!important;font-family:'Playfair Display',serif!important;font-weight:400;font-size:1.4rem;font-style:italic}
.nav-links a:not(.nav-cta){color:#5A5A5A!important;font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:.76rem}
.nav-links a:not(.nav-cta):hover{color:#FF9700!important}
.nav-cross::before,.nav-cross::after{background:#004551}
.nav-cta{
  background:#FF9700!important;color:#fff!important;
  font-size:.74rem!important;padding:.75rem 1.8rem!important;
  border-radius:50px!important;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;
}
.nav-cta:hover{background:#e08800!important;transform:translateY(-1px)}
.nav.scrolled{background:rgba(0,69,81,.97);backdrop-filter:blur(18px);box-shadow:0 4px 30px rgba(0,69,81,.15)}
.nav.scrolled .nav-name{color:#fff}
.nav.scrolled .nav-links a:not(.nav-cta){color:rgba(255,255,255,.7)}
.nav.scrolled .nav-links a:not(.nav-cta):hover{color:#FF9700}
.nav.scrolled .hamburger span{background:#fff}
.mobile-overlay{background:#004551}
.mobile-overlay a{color:#fff}
.mobile-overlay a:hover{color:#FF9700}

/* === About — Petrolio gradient with michelin-style quote === */
.about{
  background:linear-gradient(135deg,#004551,#00616F)!important;
  color:#F4F4F4!important;border-radius:0;
  padding:10rem 3rem!important;
}
.about::before,.about::after{border-color:rgba(255,151,0,.15)!important}
.about h1,.about h2,.about h3,.about-title{color:#ffffff!important}
.about-title em{color:#FF9700;font-style:italic}
.about-stat-num{color:#FF9700;font-family:'Playfair Display',serif;font-weight:400;font-size:3rem!important}
.about-quote{
  border-color:#FF9700;color:#ffffff;font-style:italic;
  border-left-width:4px;font-size:1.4rem!important;
  line-height:1.6;font-family:'Playfair Display',serif;
}
.about-values li{color:#E8F1F3}
.about-values li::before{background:#FF9700;border-radius:50%}

/* === Reviews === */
.review-card{padding:3rem 2.4rem!important;text-align:center}
.review-stars{color:#FF9700;font-size:1.2rem;letter-spacing:.3em}
.review-author{color:#004551;font-weight:500;font-family:'Playfair Display',serif;font-size:1.15rem;font-style:italic}
.review-text{color:#5A5A5A;font-style:italic;font-size:1.05rem;line-height:1.85}

/* === Team === */
.team-photo{
  border-radius:50%!important;
  width:160px!important;height:160px!important;
  box-shadow:0 16px 40px -12px rgba(0,69,81,.25);
  transition:all .5s;
}
.team-card:hover .team-photo{transform:scale(1.04)}
.team-card{text-align:center;padding:3rem 2rem!important}
.team-role{color:#FF9700;font-weight:500;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-family:'Inter',sans-serif}
.team-name{font-family:'Playfair Display',serif;color:#004551;font-size:1.5rem;font-weight:400;font-style:italic}

/* === Gallery === */
.gallery-grid{gap:1.2rem!important}
.gallery-grid img,.gallery-grid a{
  border-radius:20px!important;
  transition:all .6s cubic-bezier(.25,.8,.25,1);
  box-shadow:0 8px 30px -10px rgba(0,69,81,.15);
}
.gallery-grid img:hover,.gallery-grid a:hover{
  transform:scale(1.03);
  box-shadow:0 24px 60px -16px rgba(0,69,81,.25);
}

/* === Offerte === */
.offerta-badge{
  background:#FF9700;color:#fff;border-radius:50px;
  padding:.4rem 1.2rem;font-weight:600;font-size:.74rem;
  text-transform:uppercase;letter-spacing:.12em;
}
.offerta-scadenza{color:#FF9700;font-weight:500}
.offerta-title{font-family:'Playfair Display',serif;color:#004551;font-weight:400}

/* === Blog === */
.cat-news,.cat-offerta,.cat-blog{
  background:#D9EAED;color:#004551;
  border-radius:50px;padding:.35rem 1rem;
  font-size:.72rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;
}
.cat-offerta{background:#FFF3E0;color:#FF9700}
.blog-card h3{font-family:'Playfair Display',serif;color:#004551;font-weight:400}

/* === Contact === */
.contact{background:#E8F1F3}
.contact-card{background:#fff}
.contact-card a{color:#004551}
.contact-card a:hover{color:#FF9700}

/* === Footer === */
.site-footer{
  background:#003640;color:#D9EAED;
  padding-top:6rem!important;
}
.site-footer a{color:#D9EAED}
.site-footer a:hover{color:#FF9700}
.footer-logo{color:#FF9700;font-family:'Playfair Display',serif;font-style:italic;font-size:1.5rem}
.footer-cross::before,.footer-cross::after{background:#FF9700}
.footer-col h4{color:#ffffff;font-family:'Playfair Display',serif;font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:.88rem;font-style:italic}
.footer-bottom{border-top:1px solid rgba(255,151,0,.15)}
.footer-bottom a{color:#FF9700}

/* === FAQ === */
.faq-item{background:#fff;box-shadow:0 2px 15px rgba(0,69,81,.05);border-radius:28px!important}
.faq-item.open{box-shadow:0 12px 40px rgba(0,69,81,.12);border-left:3px solid #FF9700!important}
.faq-item.open .faq-question{color:#004551}
.faq-question{font-family:'Playfair Display',serif;color:#004551;font-weight:400;font-size:1.15rem}

/* === Turni === */
.turni-day.today{outline-color:#FF9700;outline-width:3px}
.turni-event{border-left-color:#FF9700;border-radius:20px}

/* === Forms === */
.booking-form input,.booking-form textarea,.booking-form select{
  border-radius:50px!important;border:1px solid rgba(0,69,81,.15)!important;background:#fff;
  padding:1rem 1.5rem;font-family:'Inter',sans-serif;
}
.booking-form input:focus,.booking-form textarea:focus{
  border-color:#004551;outline:none;
  box-shadow:0 0 0 4px rgba(0,69,81,.08);
}
.booking-form label{color:#004551;font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem}

/* === Brands === */
.brands{border-color:#D9EAED;background:#E8F1F3}

/* === Filter / Pagination === */
.filter-btn{border:1px solid rgba(0,69,81,.2);background:transparent;color:#004551;border-radius:50px;font-weight:500;padding:.6rem 1.4rem}
.filter-btn.active,.filter-btn:hover{background:#004551;color:#fff;border-color:#004551}
.page-btn{border:1px solid rgba(0,69,81,.15);border-radius:50px;background:#fff;font-weight:500}
.page-btn.active,.page-btn:hover{background:#004551;color:#fff;border-color:#004551}

/* === Cookie === */
.cookie-banner{background:#004551;color:#D9EAED}
.cookie-banner button{background:#FF9700;color:#fff;border-radius:50px;font-weight:600}
.cookie-banner button:hover{background:#e08800}

/* === Links === */
a{color:#004551;transition:color .2s}
a:hover{color:#FF9700}

/* === Mobile === */
@media(max-width:768px){
  .hero{padding:9rem 1.5rem 4rem!important}
  .services,.orari,.reviews,.team,.contact,.faq,.about{padding:5rem 1.5rem!important}
  .section-heading{font-size:2.4rem!important}
}
