:root{--bg:#faf8f5;--bg-alt:#f3efe9;--surface:#fff;--text:#2c2824;--text-lt:#6b6560;--text-mt:#9a938c;--accent:#b08d6e;--accent-h:#967654;--accent-s:rgba(176,141,110,.1);--border:#e5dfda;--border-lt:#ece8e3;--df:'Cormorant Garamond',Georgia,serif;--bf:'Jost',-apple-system,sans-serif;--mw:1140px;--nh:72px}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--bf);background:var(--bg);color:var(--text);font-weight:300;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:#fff}
img{max-width:100%;display:block}
a{color:inherit}

/* ── NAVBAR ── */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--nh);background:rgba(250,248,245,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:200;border-bottom:1px solid var(--border-lt);display:flex;align-items:center;justify-content:center;padding:0 32px}
.topbar-inner{max-width:var(--mw);width:100%;display:flex;align-items:center;justify-content:space-between}
.logo{font-family:var(--df);font-size:1.15rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);text-decoration:none;white-space:nowrap}
.main-nav{display:flex;align-items:center;gap:0;list-style:none}
.main-nav>li{position:relative}
.main-nav>li>a{display:block;padding:0 16px;line-height:var(--nh);font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;color:var(--text-lt);font-weight:400;transition:color .3s}
.main-nav>li>a:hover,.main-nav>li>a.active{color:var(--accent)}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;min-width:240px;background:var(--surface);border:1px solid var(--border-lt);box-shadow:0 12px 40px rgba(0,0,0,.06);padding:12px 0;z-index:300}
.dropdown:hover .dropdown-menu{display:block}
.dropdown-menu a{display:block;padding:10px 24px;font-size:.82rem;color:var(--text-lt);text-decoration:none;transition:all .2s;letter-spacing:.02em}
.dropdown-menu a:hover{color:var(--accent);background:var(--accent-s)}
.nav-cta{margin-left:10px;padding:0 22px!important;line-height:38px!important;background:var(--accent);color:#fff!important;font-size:.72rem!important;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:background .3s;display:inline-block}
.nav-cta:hover{background:var(--accent-h)!important}
.hamburger{display:none;background:0 0;border:0;cursor:pointer;padding:10px;flex-direction:column;gap:5px;z-index:250}
.hamburger span{display:block;width:24px;height:1.5px;background:var(--accent);transition:all .3s}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(4px,5px)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(4px,-5px)}
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(250,248,245,.98);backdrop-filter:blur(20px);z-index:210;flex-direction:column;justify-content:center;align-items:center;gap:24px}
.mobile-overlay.open{display:flex}
.mobile-overlay a{font-family:var(--df);font-size:1.7rem;text-decoration:none;color:var(--text);letter-spacing:.05em;transition:color .3s}
.mobile-overlay a:hover{color:var(--accent)}

/* ── PAGE WRAPPER ── */
.page-wrapper{padding-top:var(--nh)}

/* ── HERO (Home) ── */
.hero{min-height:calc(100vh - var(--nh));display:flex;align-items:stretch;max-width:var(--mw);margin:0 auto;}
.hero-photo{width:420px;flex-shrink:0;overflow:hidden;}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.hero-content{flex:1;padding:60px 32px 60px 64px;display:flex;flex-direction:column;justify-content:center;}
.hero-label{font-size:.7rem;letter-spacing:.35em;text-transform:uppercase;color:var(--accent);margin-bottom:28px;font-weight:400}
.hero h1{font-family:var(--df);font-size:clamp(2.6rem,6vw,4.8rem);font-weight:300;line-height:1.12;margin-bottom:28px}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero-quote{font-family:var(--df);font-size:clamp(1.1rem,1.8vw,1.3rem);font-style:italic;color:var(--text-lt);line-height:1.7;margin-bottom:40px}
.hero-cta{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--accent);color:var(--accent);padding:14px 36px;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;font-weight:400;transition:all .35s}
.hero-cta:hover{background:var(--accent);color:#fff}
.hero-cta svg{width:14px;height:14px;stroke:currentColor}

/* ── PAGE HEADER ── */
.page-header{text-align:center;padding:60px 32px 20px;background:var(--bg)}
.page-header h1{font-family:var(--df);font-size:clamp(2rem,4.5vw,3.2rem);font-weight:300}
.page-header h1 em{font-style:italic;color:var(--accent)}
.breadcrumb{font-size:.74rem;color:var(--text-mt);margin-top:12px;letter-spacing:.05em}
.breadcrumb a{color:var(--accent);text-decoration:none}

/* ── ABOUT ── */
.about-layout{max-width:var(--mw);margin:0 auto;padding:40px 32px 80px;display:grid;grid-template-columns:380px 1fr;gap:64px;align-items:start}
.about-photo{position:sticky;top:calc(var(--nh) + 24px)}
.about-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top}
.about-body h2{font-family:var(--df);font-size:1.75rem;font-weight:400;margin:40px 0 16px}
.about-body h2:first-child{margin-top:0}
.about-body p{color:var(--text-lt);margin-bottom:16px;font-size:.97rem;line-height:1.85}
.about-body strong{font-weight:500;color:var(--text)}
.quote-block{font-family:var(--df);font-size:1.4rem;font-style:italic;color:var(--accent);padding:24px 0 24px 28px;border-left:2px solid var(--accent);margin:32px 0;line-height:1.6}

/* ── TREATMENT PAGE ── */
.treatment-layout{max-width:var(--mw);margin:0 auto;padding:48px 32px 80px;display:grid;grid-template-columns:1fr 360px;gap:64px;align-items:start}
.treatment-body h2{font-family:var(--df);font-size:1.75rem;font-weight:400;margin:40px 0 16px}
.treatment-body h2:first-child{margin-top:0}
.treatment-body p{color:var(--text-lt);margin-bottom:16px;font-size:.97rem;line-height:1.85}
.treatment-body strong{font-weight:500;color:var(--text)}
.treatment-body ul{margin:16px 0 24px 0;padding-left:0;list-style:none}
.treatment-body ul li{padding:10px 0;border-bottom:1px solid var(--border-lt);color:var(--text-lt);font-size:.95rem;display:flex;align-items:flex-start;gap:12px}
.treatment-body ul li::before{content:'—';color:var(--accent);flex-shrink:0;margin-top:2px}
.treatment-sidebar{position:sticky;top:calc(var(--nh) + 24px);display:flex;flex-direction:column;gap:24px}
.sidebar-card{background:var(--bg-alt);padding:32px;border-left:3px solid var(--accent)}
.sidebar-card h3{font-family:var(--df);font-size:1.3rem;font-weight:400;margin-bottom:16px}
.sidebar-card p{font-size:.88rem;color:var(--text-lt);line-height:1.75;margin-bottom:20px}
.sidebar-cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;padding:12px 28px;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;font-weight:400;transition:background .3s;width:100%;justify-content:center}
.sidebar-cta:hover{background:var(--accent-h)}
.sidebar-links{display:flex;flex-direction:column;gap:0;border:1px solid var(--border)}
.sidebar-links a{padding:14px 20px;font-size:.85rem;text-decoration:none;color:var(--text-lt);border-bottom:1px solid var(--border-lt);transition:all .3s;display:flex;align-items:center;justify-content:space-between}
.sidebar-links a:last-child{border-bottom:0}
.sidebar-links a:hover{color:var(--accent);background:var(--accent-s);padding-left:28px}
.sidebar-links a span{color:var(--accent);font-size:.7rem}

/* ── FAQ ── */
.faq-section{max-width:760px;margin:0 auto;padding:0 32px 80px}
.faq-section h2{font-family:var(--df);font-size:1.75rem;font-weight:400;margin-bottom:32px}
.faq-item{border-bottom:1px solid var(--border);padding:20px 0}
.faq-q{font-weight:500;font-size:.97rem;color:var(--text);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-q::after{content:'+';color:var(--accent);font-size:1.2rem;font-weight:300;flex-shrink:0}
.faq-item.open .faq-q::after{content:'−'}
.faq-a{display:none;padding-top:14px;color:var(--text-lt);font-size:.92rem;line-height:1.8}
.faq-item.open .faq-a{display:block}

/* ── SERVICE OVERVIEW GRID ── */
.service-overview{max-width:var(--mw);margin:0 auto;padding:48px 32px 80px}
.service-overview-intro{max-width:720px;margin:0 auto 48px;text-align:center;color:var(--text-lt);font-size:1rem;line-height:1.8}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.service-card{border:1px solid var(--border);padding:40px 32px;transition:all .35s;background:var(--surface);text-decoration:none;display:block;color:inherit}
.service-card:hover{border-color:var(--accent);box-shadow:0 8px 32px rgba(176,141,110,.08);transform:translateY(-2px)}
.service-card h3{font-family:var(--df);font-size:1.5rem;font-weight:400;margin-bottom:12px;color:var(--text)}
.service-card p{color:var(--text-lt);font-size:.88rem;line-height:1.75}
.service-card .tag{display:inline-block;margin-top:16px;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);font-weight:400}
.service-card .arrow{display:block;margin-top:20px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}

/* ── SEDI ── */
.sedi-content{max-width:var(--mw);margin:0 auto;padding:48px 32px 80px}
.sedi-intro{max-width:620px;margin:0 auto 48px;text-align:center;color:var(--text-lt);font-size:1rem}
.sedi-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;max-width:900px;margin:0 auto}
.sedi-item{padding:28px 32px;border:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;gap:10px;transition:all .3s}
.sedi-item:hover{border-color:var(--accent);background:var(--accent-s)}
.sedi-city{display:flex;align-items:center;gap:12px;font-size:1rem;font-weight:400}
.sedi-city svg{width:18px;height:18px;stroke:var(--accent);flex-shrink:0}
.sedi-phone{margin-left:30px;font-size:.87rem;color:var(--text-lt)}
.sedi-phone a{color:var(--text-lt);text-decoration:none;transition:color .3s}
.sedi-phone a:hover{color:var(--accent)}
.sedi-maps{margin-left:30px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.sedi-maps a{color:var(--accent);text-decoration:none;transition:opacity .3s}
.sedi-maps a:hover{opacity:.7}

/* ── CONTATTI ── */
.contatti-layout{max-width:var(--mw);margin:0 auto;padding:48px 32px 80px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:stretch}
.contatti-left h2{font-family:var(--df);font-size:1.6rem;font-weight:400;margin-bottom:32px}
.contatti-item{margin-bottom:28px}
.contatti-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-weight:400}
.contatti-value{font-size:1rem;font-weight:300}
.contatti-value a{text-decoration:none;color:var(--text);transition:color .3s}
.contatti-value a:hover{color:var(--accent)}
.contatti-right{display:flex;flex-direction:column}
.contatti-box{flex:1;background:var(--bg-alt);padding:48px 40px;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}
.contatti-box p{font-family:var(--df);font-size:1.4rem;font-style:italic;color:var(--text-lt);line-height:1.6;margin-bottom:0}
.contatti-google{padding:28px 40px;border-left:3px solid var(--border)}
.contatti-google p{font-family:var(--df);font-size:1.1rem;font-style:italic;color:var(--text-lt);margin-bottom:14px}
.contatti-google a{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-size:.88rem;font-weight:400;transition:color .3s}
.contatti-google a:hover{color:var(--accent)}

/* ── IG BAR + FOOTER ── */
.ig-bar{padding:32px;text-align:center;background:var(--bg-alt);border-top:1px solid var(--border-lt)}
.ig-bar a{font-family:var(--df);font-size:1.05rem;font-style:italic;color:var(--text-mt);text-decoration:none;transition:color .3s}
.ig-bar a:hover{color:var(--accent)}
footer{padding:32px;text-align:center;font-size:.72rem;color:var(--text-mt);letter-spacing:.06em;border-top:1px solid var(--border-lt)}
footer a{color:var(--text-mt);text-decoration:none}
footer a:hover{color:var(--accent)}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .main-nav{display:none}.hamburger{display:flex}
  .hero{flex-direction:column;min-height:auto}
  .hero-photo{width:100%;max-height:400px}
  .hero-photo img{aspect-ratio:4/3;object-position:center 20%}
  .hero-content{padding:40px 24px 60px;text-align:center}
  .about-layout{grid-template-columns:1fr;gap:32px}
  .about-photo{position:static;max-width:320px;margin:0 auto}
  .treatment-layout{grid-template-columns:1fr}
  .treatment-sidebar{position:static}
  .contatti-layout{grid-template-columns:1fr;gap:40px}
  .service-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .sedi-list{grid-template-columns:1fr}
  .hero h1{font-size:2.2rem}
  .about-layout{padding:32px 20px 60px}
  .treatment-layout,.service-overview,.sedi-content,.contatti-layout{padding-left:20px;padding-right:20px}
}
