/* ==========================================================================
   BRAND — cambia solo questi valori per ri-colorare tutto il sito
   ========================================================================== */
:root{
  --c-bg:        #f4f4f3;   /* sfondo generale (carta depliant, freddo) */
  --c-surface:   #ffffff;   /* card / sezioni chiare */
  --c-ink:       #1c1d1e;   /* testo principale */
  --c-muted:     #66686a;   /* testo secondario */
  --c-accent:    #1c1d1e;   /* accento: nero, come il depliant */
  --c-accent-dk: #000000;   /* accento hover */
  --c-line:      #e2e2e1;   /* bordi sottili */
  --c-wave:      #c3c6c8;   /* filigrana onde */
  --c-dark:      #1c1d1e;   /* footer / sezioni scure */
  --font-title:  'Jost', -apple-system, system-ui, sans-serif;
  --font-body:   'Jost', -apple-system, system-ui, sans-serif;
  --maxw: 1140px;
}

/* Jost (SIL OFL, vedi assets/fonts/OFL.txt) ospitato in locale: font variabile,
   un solo file per tutti i pesi 100–900. Niente richieste a Google Fonts. */
@font-face{
  font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/jost-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/jost-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--c-ink);
  background:var(--c-bg);
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--font-title);font-weight:300;line-height:1.2}
h2{font-size:clamp(1.6rem,3.2vw,2.35rem);text-align:center;color:var(--c-ink);
  text-transform:uppercase;letter-spacing:.16em;font-weight:300}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{
  text-transform:uppercase;letter-spacing:.34em;font-size:.68rem;
  color:var(--c-muted);text-align:center;margin-bottom:14px;font-weight:400;
}
.section{padding:96px 0;position:relative}
.section>.wrap{position:relative;z-index:1}
.filigrana{position:relative;overflow:hidden}
.filigrana::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:url("../img/filigrana.svg") center center/cover no-repeat;
  opacity:.5;
}
/* su sfondo grigio chiaro (--c-bg) la filigrana e' bianca */
.filigrana.on-grey::before{
  background-image:url("../img/filigrana-white.svg");
  opacity:.85;
}
.lead{max-width:620px;margin:14px auto 0;text-align:center;color:var(--c-muted)}

/* Bottoni */
.btn{
  display:inline-block;background:var(--c-accent);color:#fff;white-space:nowrap;
  padding:15px 34px;border-radius:0;font-size:.76rem;letter-spacing:.2em;
  text-transform:uppercase;font-weight:400;transition:.25s;border:1px solid var(--c-accent);cursor:pointer;
}
.btn:hover{background:var(--c-accent-dk);border-color:var(--c-accent-dk);transform:translateY(-2px)}
.btn-ghost{
  background:transparent;border:1px solid var(--c-accent);color:var(--c-accent);
}
.btn-ghost:hover{background:var(--c-accent);color:#fff}

/* ============================ HEADER ============================ */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:.3s;padding:22px 0;
}
header.scrolled{background:rgba(244,244,243,.97);box-shadow:0 1px 0 var(--c-line);padding:12px 0}
.nav{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:14px}
.logo-img{height:56px;display:block}
.logo-word{display:flex;flex-direction:column;line-height:1;color:#fff;transition:.3s}
.logo-word .l1{font-size:.72rem;letter-spacing:.42em;font-weight:300;text-transform:uppercase}
.logo-word .l2{font-size:1.5rem;letter-spacing:.14em;font-weight:700;text-transform:uppercase;margin-top:4px}
header.scrolled .logo-word{color:var(--c-ink)}
header.scrolled .logo-img{content:url("../img/logo-mark-dark.svg")}
.nav-links{display:flex;gap:34px;align-items:center}
.nav-links a{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;font-weight:300;transition:.2s;color:#fff}
.nav-links a:hover{opacity:.65}
.nav-cta{padding:11px 24px;border:1px solid #fff;color:#fff!important;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.2em;transition:.25s}
.nav-cta:hover{background:#fff;color:var(--c-ink)!important}
header.scrolled .nav-cta{border-color:var(--c-ink);color:var(--c-ink)!important}
header.scrolled .nav-cta:hover{background:var(--c-ink);color:#fff!important}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.burger span{width:26px;height:2px;background:#fff;transition:.3s}
header.scrolled .nav-links a{color:var(--c-ink)}
header.scrolled .burger span{background:var(--c-ink)}

/* ============================ HERO ============================ */
.hero{
  min-height:100vh;display:flex;align-items:center;position:relative;
  background:linear-gradient(rgba(20,20,20,.46),rgba(20,20,20,.46)),
    url("../img/gallery/hero.jpeg") center/cover;
  color:#fff;text-align:center;
}
.hero-inner{max-width:760px;margin:0 auto;padding:0 24px}
.hero .eyebrow{color:rgba(255,255,255,.8)}
.hero h1{font-size:clamp(2rem,4.6vw,3.4rem);color:#fff;margin-bottom:22px;
  text-transform:uppercase;letter-spacing:.14em;font-weight:300}
.hero p{font-size:1.05rem;font-weight:300;margin-bottom:38px;opacity:.92;max-width:560px;margin-inline:auto}
.hero .btn-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero .btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.hero .btn-ghost:hover{background:#fff;color:var(--c-ink)}

/* ============================ TRATTAMENTI ============================ */
.services{background:var(--c-bg)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;margin-top:54px}
.card{
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:0;
  padding:38px 32px;transition:.3s;
}
.card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(26,26,26,.07)}
.card h3{font-size:1.05rem;margin-bottom:16px;display:flex;align-items:center;gap:12px;
  text-transform:uppercase;letter-spacing:.16em;font-weight:400}
.card h3 .ico{color:var(--c-accent);flex-shrink:0}
.card h3 .ico svg{width:24px;height:24px;display:block}
.price-list{list-style:none;margin-top:10px}
.price-list li{
  position:relative;padding:9px 0 9px 22px;
  font-size:.95rem;color:var(--c-muted);
}
.price-list li::before{
  content:"";position:absolute;left:1px;top:15px;width:7px;height:7px;
  border:1.5px solid var(--c-wave);transform:rotate(45deg);
}

.section-cta{text-align:center;margin-top:44px}
.section-cta a{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;color:var(--c-ink);
  border-bottom:1px solid var(--c-wave);padding-bottom:5px;transition:.25s;
}
.section-cta a::after{content:" →";letter-spacing:0}
.section-cta a:hover{border-color:var(--c-ink)}

/* ============================ CHI SIAMO ============================ */
.about{background:var(--c-surface)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.about-img{border-radius:0;overflow:hidden;aspect-ratio:4/5;background:var(--c-line)}
.about-img img{width:100%;height:100%;object-fit:cover}
.about-text h2{text-align:left}
.about-text .eyebrow{text-align:left}
.about-text p{color:var(--c-muted);margin-top:18px}

/* ============================ GALLERY ============================ */
.gallery{background:var(--c-bg)}
.ggrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:54px}
.ggrid figure{aspect-ratio:1;overflow:hidden;border-radius:0;background:var(--c-line);transition:.35s}
.ggrid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.ggrid figure:hover{box-shadow:0 12px 30px rgba(26,26,26,.14)}
.ggrid figure:hover img{transform:scale(1.08)}

.ggrid figure.gvideo{position:relative;cursor:pointer}
.ggrid figure.gvideo .play-btn{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:56px;height:56px;border-radius:50%;background:rgba(28,29,30,.75);
  display:flex;align-items:center;justify-content:center;transition:.3s;
}
.ggrid figure.gvideo .play-btn::before{
  content:"";border-style:solid;border-width:9px 0 9px 15px;
  border-color:transparent transparent transparent #fff;margin-left:4px;
}
.ggrid figure.gvideo:hover .play-btn{background:var(--c-accent-dk);transform:translate(-50%,-50%) scale(1.08)}

.video-modal{
  position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;
  align-items:center;justify-content:center;z-index:1000;padding:24px;
}
.video-modal.open{display:flex}
.video-modal video{max-width:420px;width:100%;max-height:85vh;background:#000}
.video-modal-close{
  position:absolute;top:24px;right:28px;background:none;border:0;
  color:#fff;font-size:2.2rem;line-height:1;cursor:pointer;z-index:1001;
}

/* ============================ RECENSIONI ============================ */
.reviews{background:var(--c-dark);color:#e6e3df}
.reviews h2{color:#fff}
.reviews .eyebrow{color:rgba(255,255,255,.6)}
.reviews .lead{color:rgba(255,255,255,.62)}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;margin-top:54px}
.review{
  border:1px solid rgba(255,255,255,.18);padding:36px 32px 30px;
  display:flex;flex-direction:column;gap:20px;transition:.3s;
}
.review:hover{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.04)}
.stars{display:flex;gap:5px}
.stars svg{width:15px;height:15px;fill:#fff;display:block}
.review blockquote{
  font-size:.97rem;font-weight:300;line-height:1.75;color:rgba(255,255,255,.85);
  position:relative;flex:1;
}
.review figcaption{border-top:1px solid rgba(255,255,255,.14);padding-top:16px}
.review figcaption b{
  display:block;font-weight:400;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.18em;color:#fff;
}
.review figcaption span{font-size:.72rem;letter-spacing:.1em;color:rgba(255,255,255,.5)}
.reviews-note{text-align:center;margin-top:38px}
.reviews-note a{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;
  color:rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.28);
  padding-bottom:4px;transition:.25s;
}
.reviews-note a:hover{color:#fff;border-color:#fff}

/* ============================ CONTATTI ============================ */
.contact{background:var(--c-surface)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:54px}
.info-row{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--c-line);align-items:flex-start}
.info-row:last-child{border-bottom:0}
.info-row .ico{color:var(--c-ink);width:28px;flex-shrink:0}
.info-row .ico svg{width:24px;height:24px;display:block}
.info-row b{display:block;margin-bottom:3px;font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem}
.info-row span{color:var(--c-muted);font-size:.95rem}
/* orari: blocco a tutta larghezza sotto info + mappa */
.hours-block{grid-column:1/-1;border-top:1px solid var(--c-line);padding-top:38px;text-align:center}
.hours-head{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:30px}
.hours-head .ico{color:var(--c-ink);display:block}
.hours-head .ico svg{width:22px;height:22px;display:block}
.hours-head b{font-weight:400;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem}
.hours-grid{list-style:none;display:grid;grid-template-columns:repeat(6,1fr)}
.hours-grid li{display:flex;flex-direction:column;gap:8px;padding:4px 10px}
.hours-grid li+li{border-left:1px solid var(--c-line)}
.hours-grid li span{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--c-muted)}
.hours-grid li b{font-weight:400;font-size:.95rem;color:var(--c-ink);white-space:nowrap}
.hours-grid li.closed b{color:var(--c-muted)}
/* mappa: non si allunga per tutta la colonna, resta in alto coprendo il blocco indirizzo → email */
.map{border-radius:0;overflow:hidden;border:1px solid var(--c-line);
  align-self:start;height:290px}
.map{position:relative}
.map iframe,.map-preview{width:100%;height:100%;border:0;filter:grayscale(1);display:block}
.map-preview{object-fit:cover}
/* consenso: fascia in basso, il pin al centro dell'anteprima resta visibile */
.map-consent{
  position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:18px;
  padding:14px 18px;background:rgba(255,255,255,.92);border-top:1px solid var(--c-line)
}
.map-consent p{font-size:.8rem;line-height:1.5;color:var(--c-muted)}
.map-consent a{color:var(--c-ink);text-decoration:underline}
.map-consent .btn{flex-shrink:0;padding:12px 18px;font-size:.68rem}
.map-credit{position:absolute;top:8px;right:8px;font-size:.62rem;color:var(--c-muted);
  background:rgba(255,255,255,.8);padding:2px 6px}

/* ================== PAGINE INTERNE (trattamenti.html) ================== */
.page-hero{
  min-height:52vh;display:flex;align-items:center;text-align:center;color:#fff;
  padding:150px 0 90px;
  background:linear-gradient(rgba(20,20,20,.55),rgba(20,20,20,.55)),
    url("../img/gallery/g4.jpeg") center/cover;
}
.page-hero .eyebrow{color:rgba(255,255,255,.8)}
.page-hero h1{
  font-size:clamp(1.9rem,4vw,3rem);color:#fff;
  text-transform:uppercase;letter-spacing:.14em;font-weight:300;
}
.page-hero-lead{
  max-width:640px;margin:22px auto 0;color:rgba(255,255,255,.86);
  font-weight:300;font-size:1.02rem;
}
.cat-nav{
  /* si ferma sotto l'header fisso in stato "scrolled" (56px logo + 12px*2 padding) */
  position:sticky;top:80px;z-index:90;
  background:var(--c-surface);border-bottom:1px solid var(--c-line);
}
.cat-nav .wrap{display:flex;gap:34px;justify-content:center;flex-wrap:wrap;padding:16px 24px}
.cat-nav a{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;color:var(--c-muted);
  padding:4px 0;border-bottom:1px solid transparent;transition:.25s;
}
.cat-nav a:hover{color:var(--c-ink);border-color:var(--c-ink)}
.nav-links a.active{border-bottom:1px solid currentColor;padding-bottom:3px}
.cat{scroll-margin-top:140px}
.cat.on-grey{background:var(--c-bg)}
.cat:not(.on-grey){background:var(--c-surface)}
.cat h2{text-align:left}
.cat .eyebrow{text-align:left}
.cat .lead{margin-left:0;text-align:left;max-width:680px}
.treat-list{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:24px;margin-top:48px;
}
.treat{
  background:var(--c-surface);border:1px solid var(--c-line);
  padding:32px 30px;transition:.3s;
}
.cat:not(.on-grey) .treat{background:var(--c-bg)}
.treat:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(26,26,26,.07)}
.treat h3{
  font-size:.98rem;text-transform:uppercase;letter-spacing:.14em;font-weight:400;
  line-height:1.5;
}
.treat-tag{
  display:block;margin-top:7px;font-size:.7rem;letter-spacing:.18em;
  color:var(--c-muted);text-transform:uppercase;
}
.treat p{margin-top:16px;font-size:.94rem;color:var(--c-muted);line-height:1.7}
.treat p b{
  display:block;font-weight:400;font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--c-ink);margin-bottom:4px;
}
.treat-list-compact{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
/* sezione con una sola scheda: larghezza allineata al lead */
.treat-list-single{grid-template-columns:minmax(0,1fr);max-width:680px}
.treat-list-compact .treat{padding:26px 28px}
/* elenco zone epilazione: raggruppate per area, sotto la scheda */
.zones-head{
  margin-top:40px;font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--c-ink);
}
.zones{max-width:680px;margin-top:14px}
/* una riga per area: baseline dell'etichetta allineata a quella delle voci */
.zones>div{
  display:grid;grid-template-columns:150px 1fr;align-items:baseline;
  padding:13px 0;border-top:1px solid var(--c-line);
}
.zones dt{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-ink)}
.zones dd{font-size:.94rem;color:var(--c-muted);line-height:1.7}
.cta-band{background:var(--c-dark);color:#e6e3df;text-align:center}
.cta-band h2{color:#fff}
.cta-band .lead{color:rgba(255,255,255,.62);text-align:center;margin-inline:auto}
.cta-band .btn-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:36px}
.cta-band .btn{background:#fff;color:var(--c-ink);border-color:#fff}
.cta-band .btn:hover{background:rgba(255,255,255,.85);border-color:rgba(255,255,255,.85)}
.cta-band .btn-ghost{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}
.cta-band .btn-ghost:hover{background:#fff;color:var(--c-ink);border-color:#fff}

/* ============================ FOOTER ============================ */
footer{background:var(--c-dark);color:#b9b4ae;padding:64px 0 28px;text-align:center}
footer .logo{margin-bottom:22px;justify-content:center}
footer .logo-mono{height:76px;width:auto;margin:0 auto;filter:invert(1) brightness(2)}
.social{display:flex;gap:20px;justify-content:center;margin:26px 0}
.social a{
  width:42px;height:42px;border:1px solid rgba(255,255,255,.25);border-radius:50%;
  display:flex;align-items:center;justify-content:center;transition:.25s;font-size:.9rem
}
.social a{font-size:.72rem;letter-spacing:.1em}
.social a:hover{background:#fff;color:var(--c-ink);border-color:#fff}
.copyright{font-size:.78rem;color:#8b8680;margin-top:24px;border-top:1px solid rgba(255,255,255,.1);padding-top:24px}
.copyright a{color:inherit;text-decoration:underline}
.copyright a:hover{color:#fff}

/* ================== PRIVACY (privacy.html) ================== */
.legal .wrap{max-width:780px}
.legal h2{text-align:left;font-size:1.35rem;margin:46px 0 14px;scroll-margin-top:110px}
.legal h3{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:400;margin:22px 0 8px}
.legal p,.legal li{color:var(--c-muted)}
.legal p+p{margin-top:12px}
.legal ul{margin:0 0 12px 20px}
.legal li+li{margin-top:6px}
.legal a{color:var(--c-ink);text-decoration:underline}
.legal b{color:var(--c-ink);font-weight:400}
.legal-date{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.legal-consent{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:18px 0}
.legal-consent .btn:disabled,.legal-consent .btn:disabled:hover{opacity:.4;cursor:default;transform:none;background:transparent;color:var(--c-accent)}

/* ============================ RESPONSIVE ============================ */
@media(max-width:860px){
  .about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
  .about-img{max-width:420px;margin:0 auto}
  .ggrid{grid-template-columns:repeat(2,1fr)}
  .nav-links{
    position:fixed;top:0;right:0;height:100vh;width:75%;max-width:320px;
    background:var(--c-surface);flex-direction:column;justify-content:center;
    gap:28px;transform:translateX(100%);transition:.35s;box-shadow:-10px 0 40px rgba(0,0,0,.1)
  }
  .nav-links.open{transform:translateX(0)}
  .nav-links a{color:var(--c-ink)}
  .burger{display:flex;z-index:110}
  .logo-word .l2{font-size:1.25rem}
  .logo-img{height:46px}
  .nav-cta{display:none}
  .filigrana::before{background-size:cover;opacity:.35}
  .filigrana.on-grey::before{opacity:.7}
  .section{padding:72px 0}
  .page-hero{min-height:auto;padding:120px 0 60px}
  .cat-nav{top:70px}
  .cat{scroll-margin-top:124px}
  .cat-nav .wrap{gap:22px;justify-content:flex-start;overflow-x:auto;padding:14px 24px;
    -webkit-overflow-scrolling:touch}
  .cat-nav a{white-space:nowrap}
  .treat-list{grid-template-columns:1fr;gap:18px;margin-top:36px}
  .zones>div{grid-template-columns:1fr;align-items:start}
  .zones dd{margin-top:2px}
  .map{height:260px}
  .map-consent{flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px;text-align:center}
  .hours-block{padding-top:30px}
  .hours-grid{grid-template-columns:repeat(2,1fr);gap:22px 0}
  .hours-grid li+li{border-left:0}
  .hours-grid li:nth-child(odd){border-right:1px solid var(--c-line)}
}
