/* CSS della home di becoworking.it — estratto da public/site/index.html l'08/11/2026 (prima era
   inline: 100 KB scaricati a ogni pagina, ora un file che il browser tiene in cache).
   I colori del tema arrivano da <style id="beco-theme"> iniettato dal server DOPO questo file. */

/* ══════════ base (head di index.html) ══════════ */
:root {
  --orange: #F26B1D;
  --clr-orange: #F26B1D;
  --clr-orange-light: #F9A06A;
  --clr-orange-dark: #B84E12;
  --orange-pale: #FDF0E8;
  --orange-mid: rgba(242,107,29,0.12);
  --orange-glow: rgba(242,107,29,0.25);
  --clr-orange-glow: rgba(242,107,29,0.15);
  --clr-orange-subtle: rgba(242,107,29,0.06);
  --bg: #FFFFFF;
  --bg2: #FAFAF9;
  --ink: #0D0D0D;
  --clr-black: #0D0D0D;
  --clr-white: #FFFFFF;
  --clr-gray-100: #FAFAF9;
  --clr-gray-200: #EFEFED;
  --clr-border: rgba(0,0,0,0.07);
  --clr-text-muted: rgba(13,13,13,0.52);
  --ink-dim: rgba(13,13,13,0.52);
  --ink-faint: rgba(13,13,13,0.1);
  --white: #FFFFFF;
  --border: rgba(0,0,0,0.07);
  --font-display: 'Plus Jakarta Sans', sans-serif;
  --font-title: 'Plus Jakarta Sans', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'Inter', sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-spring: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --container: min(1280px, 100%);
  --nav-h: 68px;
  --section-pad: clamp(3.5rem, 6vw, 5.5rem);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:hidden}
body{
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--ink);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button{border:none;background:none;font-family:inherit;cursor:pointer}

/* ── CUSTOM CURSOR (si aggiunge al cursore di sistema, non lo sostituisce) ── */
#c-dot, #c-ring {
  position: fixed; border-radius: 50%; pointer-events: none; z-index: 99999;
  transform: translate(-50%, -50%);
}
#c-dot {
  width: 8px; height: 8px;
  background: var(--clr-orange);
  top: 0; left: 0;
  transition: width 0.2s var(--ease-spring), height 0.2s var(--ease-spring), opacity 0.2s;
}
#c-ring {
  width: 38px; height: 38px;
  border: 1.5px solid var(--clr-orange);
  background: transparent;
  top: 0; left: 0;
  opacity: 0.6;
  transition: width 0.32s var(--ease-spring), height 0.32s var(--ease-spring), opacity 0.2s;
}
#c-dot.expanded { width: 12px; height: 12px; opacity: 0.5; }
#c-ring.expanded { width: 56px; height: 56px; opacity: 0.9; }
@media (pointer: coarse) { #c-dot, #c-ring { display: none; } }

/* ─── SCROLL REVEAL ─── */
.sr{opacity:0;transform:translateY(40px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.sr.show{opacity:1;transform:translateY(0)}
.sr-l{opacity:0;transform:translateX(-50px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.sr-l.show{opacity:1;transform:translateX(0)}
.sr-r{opacity:0;transform:translateX(50px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.sr-r.show{opacity:1;transform:translateX(0)}
.delay1{transition-delay:.1s}
.delay2{transition-delay:.2s}
.delay3{transition-delay:.3s}
.delay4{transition-delay:.45s}
.delay5{transition-delay:.6s}

/* ─── KEYFRAMES ─── */
@keyframes wordIn { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}

/* ── NAVBAR ── */
#navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 2000;
  height: var(--nav-h);
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(24px) saturate(1.9);
  -webkit-backdrop-filter: blur(24px) saturate(1.9);
  border-bottom: 1px solid rgba(0,0,0,0.06);
  transition: height 0.35s var(--ease-spring), background 0.35s, box-shadow 0.35s, border-color 0.35s;
}
#navbar.scrolled {
  height: var(--nav-h);
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
  border-bottom-color: rgba(0,0,0,0.1);
}
/* ── NAVBAR PAGINA PRENOTAZIONE — identico al sito, sticky invece di fixed ── */
/* ── NAVBAR PAGINA PRENOTAZIONE — identico a navbar, sticky ── */
/* ── NAVBAR PAGINA PRENOTAZIONE — identico a #navbar, normale nel suo flusso ── */
#pren-nav-bar {
  flex-shrink: 0;
  height: var(--nav-h);
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(24px) saturate(1.9);
  -webkit-backdrop-filter: blur(24px) saturate(1.9);
  border-bottom: 1px solid rgba(0,0,0,0.08);
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

.nav-inner {
  max-width: var(--container); margin: 0 auto; height: 100%;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 2rem;
}
.nav-logo { display: flex; align-items: center; }
.nav-logo svg { height: 30px; width: auto; display: block; transition: opacity 0.2s; }
.nav-logo:hover svg { opacity: 0.8; }
.nav-links { display: flex; align-items: center; gap: 2rem; }
.nav-links a {
  font-family: var(--font-body); font-weight: 500; font-size: 0.98rem;
  color: rgba(13,13,13,0.6); transition: color 0.2s;
}
.nav-links a:hover { color: var(--clr-orange); }
@media (max-width: 768px) { .nav-links { display: none; } }
.nav-cta {
  background: var(--orange-pale); color: var(--clr-orange);
  font-family: var(--font-body); font-weight: 500; font-size: 0.875rem;
  padding: 0.6rem 1.4rem; border-radius: 8px; border: 1.5px solid var(--clr-orange);
  transition: background 0.22s, transform 0.22s, box-shadow 0.22s, color 0.22s;
  display: inline-flex; align-items: center;
}
.nav-cta:hover {
  background: var(--clr-orange); color: #fff;
  transform: translateY(-1px);
}
@media (max-width: 768px) { .nav-cta { display: none; } }
.hamburger {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer; padding: 6px; z-index: 10;
}
.hamburger span {
  display: block; width: 24px; height: 2px;
  background: var(--clr-black); border-radius: 2px; transition: 0.3s;
}
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 768px) { .hamburger { display: flex; } }
.mobile-menu {
  display: none; position: absolute; top: 100%; left: 0; right: 0;
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  padding: 1.5rem 2rem; flex-direction: column; gap: 1.2rem;
  border-bottom: 1px solid var(--clr-border);
}
.mobile-menu.open { display: flex; animation: slideDown 0.3s ease forwards; }
.mobile-menu a { font-family: var(--font-body); font-weight: 500; font-size: 1rem; color: var(--clr-black); }
.mobile-menu .mob-cta {
  background: var(--clr-orange); color: #fff;
  padding: 0.75rem 1.4rem; border-radius: 8px;
  text-align: center; font-size: 0.95rem; margin-top: 0.4rem;
}

/* ── HERO ── */
#hero {
  position: relative;
  height: 100vh; height: 100dvh;
  min-height: 700px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
  overflow: hidden;
  background: #fff;
}
#aurora-canvas {
  position: absolute; inset: 0; width: 100%; height: 100%;
  z-index: 0; pointer-events: none;
}
#particle-canvas { display: none; }
.hero-content {
  position: relative; z-index: 3;
  display: flex; flex-direction: column; align-items: center;
  gap: 1rem; max-width: 1200px; padding: 0 1.5rem;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(242,107,29,0.2); border-radius: 40px;
  padding: 0.4rem 1.1rem;
  font-family: var(--font-body); font-weight: 500; font-size: 0.78rem;
  color: rgba(13,13,13,0.7);
  opacity: 0; transform: translateY(16px);
  animation: fadeUp 0.7s 0.1s var(--ease-spring) forwards;
}
.hero-badge-dot {
  width: 7px; height: 7px; background: #22c55e; border-radius: 50%;
  animation: blink 1.8s ease-in-out infinite;
}
.hero-overline {
  display: flex; align-items: center; gap: 0.6rem;
  font-size: 0.7rem; font-weight: 500; letter-spacing: 0.16em;
  color: var(--clr-orange); text-transform: uppercase;
  opacity: 0; animation: fadeUp 0.6s 0.25s var(--ease-spring) forwards;
}
.hero-overline::before, .hero-overline::after {
  content: ''; width: 28px; height: 1px; background: var(--clr-orange);
}
.hero-h1 {
  font-family: var(--font-title); font-weight: 800;
  font-size: clamp(2.4rem, 5.2vw, 5rem);
  letter-spacing: -0.028em; line-height: 1.06;
  color: var(--clr-black);
  text-align: center;
}
/* Il sub-container hero-sub ha max-width proprio, non ereditato: rimane bello leggibile */
.hero-h1 { max-width: 100%; }
.hero-h1 .word {
  display: inline-block; opacity: 0; transform: translateY(28px);
  animation: wordIn 0.65s var(--ease-spring) forwards;
}
.hero-h1 .orange { color: var(--clr-orange); }
/* Titolo hero:
   Desktop → 2 righe: "Il tuo coworking tra" / "Porto San Giorgio e Fermo."
   Mobile IT → 3 righe: "Il tuo coworking tra" / "Porto San Giorgio" / "e Fermo."
   Mobile EN → 4 righe (per il testo più lungo, "between" va a capo).
   Le sotto-parti sono span.hero-part inline su desktop, block su mobile (gestito dal marker `~` nel ContentBlock hero.title). */
.hero-h1 .hero-part { display: inline; }
@media (max-width: 640px) {
  .hero-h1 .hero-part { display: block; }
}
/* Su viewport molto stretti (iPhone SE, Android piccoli) riduci ancora il font
   per far stare "Porto San Giorgio" / "Your coworking space" senza overflow. */
@media (max-width: 380px) {
  .hero-h1 { font-size: 1.7rem !important; }
}
.hero-sub {
  font-family: var(--font-body); font-size: 1.1rem;
  font-weight: 300;
  color: rgba(13,13,13,0.56); max-width: 560px;
  opacity: 0; transform: translateY(14px);
  animation: fadeUp 0.65s 0.8s var(--ease-spring) forwards;
}
.hero-ctas {
  display: flex; gap: 0.85rem; flex-wrap: wrap; justify-content: center;
  opacity: 0; transform: translateY(14px);
  animation: fadeUp 0.6s 1.05s var(--ease-spring) forwards;
  margin-top: 1.4rem;
}
.btn-primary {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: var(--clr-orange); color: #fff;
  font-family: var(--font-body); font-weight: 500; font-size: 0.95rem;
  padding: 0.9rem 2rem; border-radius: 10px; border: none;
  transition: transform 0.25s var(--ease-spring), box-shadow 0.25s;
}
.btn-primary:hover {
  background: var(--clr-orange);
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 0 0 4px rgba(242,107,29,0.22), 0 16px 36px rgba(242,107,29,0.28);
}
.btn-secondary {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: transparent; color: var(--clr-black);
  font-family: var(--font-body); font-weight: 500; font-size: 0.95rem;
  padding: 0.9rem 2rem; border-radius: 10px;
  border: 1.5px solid rgba(13,13,13,0.18); cursor: pointer;
  transition: border-color 0.22s, color 0.22s, background 0.22s;
}
.btn-secondary:hover { border-color: var(--clr-orange); color: var(--clr-orange); background: rgba(242,107,29,0.04); }
.scroll-indicator { display: none; }

/* ─── TICKER STRIP ─── */
.marquee-strip{
  overflow:hidden;white-space:nowrap;
  padding:1.7rem 0;
  background: #F26B1D;
}
.marquee-track{
  display:inline-flex;align-items:center;
  animation:marquee 80s linear infinite;
}
.marquee-item{
  font-family:var(--font-body);font-size:.88rem;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,0.82);
  display:inline-flex;align-items:center;
  white-space:nowrap;
  padding:0 1.6rem;
}
.marquee-item::before{
  content:none;
}
.marquee-item::after{
  content:'/';font-size:.85rem;font-weight:300;
  color:rgba(255,255,255,0.5);
  margin-left:1.6rem;
}
.marquee-item.marquee-stat{
  color:#fff;
  font-weight:700;
}

/* ─── SECTION SHARED ─── */
.section-label{
  font-family:var(--font-body);font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--clr-orange);display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;
}
.section-label::before,.section-label::after{content:'';flex:1;height:1px;background:var(--clr-orange);min-width:20px;max-width:40px}
.section-inner { max-width: var(--container); margin: 0 auto; padding-left: 2rem; padding-right: 2rem; }
.section-header { text-align: center; margin-bottom: 3.5rem; }
.overline { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.7rem; font-weight: 500; letter-spacing: 0.14em; color: var(--clr-orange); text-transform: uppercase; font-family: var(--font-body); margin-bottom: 0.85rem; }
.overline::before, .overline::after { content: ''; width: 20px; height: 1px; background: var(--clr-orange); }
.section-h2 { font-family: var(--font-title); font-weight: 700; font-size: clamp(2rem, 3.8vw, 3.2rem); letter-spacing: -0.02em; line-height: 1.15; color: var(--clr-black); }
.section-sub { font-family: var(--font-body); font-size: 1.1rem; color: var(--clr-text-muted); max-width: 500px; margin: 0.75rem auto 0; }

/* ─── SPAZI ─── */
#spazi{padding:var(--section-pad) 0;background:var(--bg)}
.spazi-header{max-width:var(--container);margin:0 auto;padding:0 2.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;margin-bottom:4rem}
@media(max-width:768px){.spazi-header{padding:0 1.5rem}}
.spazi-h2{font-family:var(--font-title);font-size:clamp(2rem,3.8vw,3.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}
.spazi-desc{font-family:var(--font-body);font-size:1.1rem;color:var(--ink-dim);line-height:1.72;max-width:560px}
.spazi-desc a{color:var(--orange);font-weight:500}

/* Photo grid */
.photo-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  grid-template-rows:400px 320px;
  gap:3px;
}
@media(max-width:900px){
  .photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:300px 280px 260px}
  .pg-main{grid-column:1/3;grid-row:1}
  .pg-b{grid-column:1;grid-row:2}
  .pg-c{grid-column:2;grid-row:2}
  .pg-d{grid-column:1;grid-row:3}
  .pg-e{grid-column:2;grid-row:3}
}
@media(max-width:600px){
  .photo-grid{grid-template-columns:1fr;grid-template-rows:280px 240px 220px 210px 200px}
  .pg-main,.pg-b,.pg-c,.pg-d,.pg-e{grid-column:auto;grid-row:auto}
}
.pg-main{grid-column:1;grid-row:1/3;position:relative;overflow:hidden}
.pg-b{grid-column:2;grid-row:1;position:relative;overflow:hidden}
.pg-c{grid-column:3;grid-row:1;position:relative;overflow:hidden}
.pg-d{grid-column:2;grid-row:2;position:relative;overflow:hidden}
.pg-e{grid-column:3;grid-row:2;position:relative;overflow:hidden}
.pg-main img,.pg-b img,.pg-c img,.pg-d img,.pg-e img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease);
  filter:brightness(.97) saturate(1.05);
}
.pg-main:hover img,.pg-b:hover img,.pg-c:hover img,.pg-d:hover img,.pg-e:hover img{transform:scale(1.04)}
.photo-caption{
  position:absolute;bottom:0;left:0;right:0;
  padding:2rem 1.4rem 1.2rem;
  background:linear-gradient(transparent,rgba(0,0,0,.55));
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.85);
  transform:translateY(4px);
  transition:transform .4s var(--ease),opacity .4s;
  opacity:0;
}
.pg-main:hover .photo-caption,
.pg-b:hover .photo-caption,
.pg-c:hover .photo-caption,
.pg-d:hover .photo-caption,
.pg-e:hover .photo-caption{opacity:1;transform:translateY(0)}

/* ─── SERVICES / FEATURES ─── */
#features{padding:3.5rem 0;background:var(--bg)}
.features-inner{max-width:var(--container);margin:0 auto;padding:0 2.5rem}
.features-header{text-align:center;margin-bottom:3.5rem}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;background:var(--border);border:1.5px solid var(--border);margin-top:0}
@media(max-width:900px){.features-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.features-grid{grid-template-columns:1fr}}
.feat-item{
  padding:2.8rem 2.5rem;
  position:relative;overflow:hidden;
  background:var(--white);
  transition:background .5s var(--ease),box-shadow .4s var(--ease);
  z-index:1;
}
/* Fill arancione morbido dall'angolo in alto a sinistra */
.feat-item::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at top left, var(--orange-pale) 0%, rgba(253,240,232,0) 70%);
  opacity:0;
  transition:opacity .5s var(--ease);
}
/* Hover: bordo arancione sottile su tutti e 4 i lati tramite outline (pixel-perfect, niente spessore doppio) */
.feat-item:hover{
  z-index:2;
  outline:1px solid var(--orange);
  outline-offset:-1px;
  box-shadow:0 10px 28px -14px rgba(242,107,29,.25);
}
.feat-item:hover::before{opacity:1}
.feat-item > *{position:relative;z-index:1}
.feat-icon{
  width:48px;height:48px;border-radius:10px;
  background:var(--orange-mid);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.5rem;
  transition:background .4s var(--ease),transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .4s var(--ease);
}
.feat-item:hover .feat-icon{
  background:var(--orange);
  transform:scale(1.08) rotate(-4deg);
  box-shadow:0 8px 24px rgba(242,107,29,.35);
}
.feat-icon svg{width:22px;height:22px;stroke:var(--orange);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s var(--ease)}
.feat-item:hover .feat-icon svg{stroke:#fff}
.feat-name{font-family:var(--font-display);font-size:1.2rem;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin-bottom:.6rem;transition:color .4s var(--ease)}
.feat-item:hover .feat-name{color:var(--orange)}
.feat-desc{font-family:var(--font-body);font-size:1.1rem;color:var(--ink-dim);line-height:1.7}
.feat-tag{
  display:inline-block;margin-top:1.1rem;
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--orange);border:1px solid rgba(242,107,29,.3);
  border-radius:3px;padding:.25rem .6rem;
}
/* Neutralizza scroll-reveal sui feat-item: l'IntersectionObserver poteva non
   triggerare per le card già in viewport al carico, lasciando alcune card
   invisibili (opacity:0) e shifted (translateY(40px)) — risultato: card "dentro"
   altre card. Le features devono essere sempre visibili. */
.feat-item.sr{opacity:1!important;transform:none!important;transition:none!important}
.feat-item{min-width:0;min-height:0}

/* ─── FULL-BLEED SHOWCASE ─── */
/* ═══ SHOWCASE — 3-STEP SLIDER (EDGE-TO-EDGE) ═══ */
/* #showcase senza sfondo: il beige vive solo su .sc-stage
   così l'altezza dello sfondo coincide esattamente con l'immagine */
#showcase{
  position:relative;
  padding:var(--section-pad) 0;
  background:transparent;
  overflow:hidden;
}
.sc-reveal{
  opacity:0;transform:translateY(24px);
  transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1);
}
.sc-reveal.visible{opacity:1;transform:translateY(0)}

/* ── TAG "Open space" — overlay in alto a sinistra, sopra l'immagine ── */
.sc-section-tag-wrap{
  display:none;
}
.sc-section-tag{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.6rem 1.05rem;border-radius:999px;
  background:#fff;
  border:1px solid rgba(13,13,13,.08);
  box-shadow:0 3px 12px -4px rgba(13,13,13,.15);
  font-family:var(--font-body);font-size:.74rem;font-weight:600;
  color:var(--orange);letter-spacing:.2em;text-transform:uppercase;
  transition:color .35s;
  pointer-events:auto;
}
.sc-section-tag::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--orange);
  box-shadow:0 0 10px rgba(242,107,29,.6);
}

/* ── TABS — overlay posizionato sopra la colonna body, allineato come il kicker sotto ── */
.sc-tabs-wrap{
  position:absolute;
  /* allineati alla colonna body (immagine è 1.2fr, body è 1fr → body inizia al ~54.55%) */
  top:clamp(1.5rem,2.5vw,2.2rem);
  left:54.5%;
  z-index:6;
  /* stesso padding-left del sc-panel-body per combaciare con l'inizio del kicker */
  padding-left:clamp(1.5rem,4vw,4rem);
  pointer-events:none;
}
.sc-tabs{
  display:inline-flex;align-items:center;gap:.4rem;
  background:#fff;padding:.4rem;border-radius:999px;
  border:1px solid rgba(13,13,13,.06);
  box-shadow:0 3px 12px -4px rgba(13,13,13,.12);
  pointer-events:auto;
}
.sc-tab{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.6rem 1rem;border-radius:999px;
  font-family:var(--font-body);font-size:.78rem;font-weight:600;
  color:var(--ink-dim);letter-spacing:.04em;
  border:none;background:transparent;cursor:pointer;
  transition:background .3s, color .3s;white-space:nowrap;
}
.sc-tab:hover{color:var(--ink)}
.sc-tab.active{background:var(--orange);color:#fff}
.sc-tab-num{
  font-family:var(--font-mono, monospace);font-size:.72rem;
  opacity:.6;font-variant-numeric:tabular-nums;
}
.sc-tab.active .sc-tab-num{color:#fff;opacity:.9}

/* ── STAGE: riceve lo sfondo beige; la sua altezza = altezza dell'immagine ── */
.sc-stage{
  position:relative;
  background:var(--clr-gray-100, #FAFAF9);
  border-radius:0;
  overflow:hidden;
  box-shadow:none;
  border:none;
  width:100%;
}

/* Viewport: altezza naturale, dettata dai pannelli */
.sc-viewport{
  position:relative;overflow:hidden;
}
.sc-track{
  display:flex;
  width:300%;
  transition:transform .85s cubic-bezier(.7,0,.3,1);
}
.sc-track[data-step="0"]{transform:translateX(0%)}
.sc-track[data-step="1"]{transform:translateX(-33.3333%)}
.sc-track[data-step="2"]{transform:translateX(-66.6666%)}

.sc-panel{
  flex:0 0 33.3333%;
  position:relative;
  opacity:.35;
  transition:opacity .85s cubic-bezier(.7,0,.3,1);
  /* Tutti i pannelli: stessa identica struttura split immagine/testo */
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  align-items:stretch;
}
.sc-panel.is-active{opacity:1}

/* ── MEDIA (comune a tutti i pannelli) ── */
.sc-panel-media{
  position:relative;overflow:hidden;background:#e8e3dc;
  aspect-ratio:4/3;
  min-height:clamp(340px,46vh,500px);
}
.sc-panel-media img{
  width:100%;height:100%;object-fit:cover;display:block;
  object-position:center center;
  transform:scale(1.02);
  transition:transform 14s ease-out, filter .6s;
  filter:saturate(.92);
}
.sc-panel.is-active .sc-panel-media img{transform:scale(1.1)}
.sc-panel-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg, rgba(13,13,13,.08) 0%, transparent 45%);
  pointer-events:none;
}

/* ── BODY (identico per tutti i pannelli) ── */
.sc-panel-body{
  padding:clamp(3.4rem,6vw,4.75rem) clamp(1.5rem,4vw,4rem) clamp(1.8rem,3vw,3rem) clamp(1.5rem,4vw,4rem);
  display:flex;flex-direction:column;justify-content:center;
  position:relative;
  max-width:640px;
}
.sc-panel-kicker{
  display:inline-flex;align-items:baseline;gap:.8rem;
  margin-bottom:1.8rem;
}
.sc-panel-num{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(2.4rem,3.8vw,3.4rem);letter-spacing:-.03em;
  color:var(--orange);line-height:1;
  font-variant-numeric:tabular-nums;
}
.sc-panel-cat{
  font-family:var(--font-body);font-size:.75rem;font-weight:600;
  color:var(--ink);letter-spacing:.22em;text-transform:uppercase;
  padding-bottom:.45rem;border-bottom:1.5px solid var(--orange);
}
.sc-panel-title{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(2rem,3.2vw,2.8rem);letter-spacing:-.035em;
  line-height:1.05;color:var(--ink);margin:0 0 1.3rem;
}
.sc-panel-title em{color:var(--orange);font-style:normal}
.sc-panel-desc{
  font-family:var(--font-body);font-size:1.1rem;
  font-weight:300;
  color:var(--ink-dim);line-height:1.6;
  margin:0 0 2.2rem;max-width:46ch;
}
.sc-panel-desc em{font-style:normal;color:var(--ink);font-weight:500}

/* CTA — solo su pannello Spazi, senza freccia */
.sc-panel-cta{
  display:inline-flex;align-items:center;
  padding:.85rem 1.8rem;border-radius:10px;
  background:rgba(13,13,13,0.06);color:var(--clr-black);
  font-family:var(--font-body);font-size:.9rem;font-weight:500;
  letter-spacing:.02em;text-decoration:none;
  transition:all 0.22s ease;
  align-self:flex-start;border:none;cursor:pointer;white-space:nowrap;
}
.sc-panel-cta:hover{
  background:var(--clr-orange);color:#fff;
  box-shadow:0 6px 20px rgba(242,107,29,0.3);
}
.sc-panel-cta:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

/* ── Responsive ── */
@media (max-width: 900px){
  .sc-panel{grid-template-columns:1fr}
  .sc-panel-media{min-height:280px;aspect-ratio:16/10}
  .sc-panel-body{max-width:none;padding:clamp(2.2rem,5vw,3rem) clamp(1.5rem,4vw,2.5rem) clamp(2rem,5vw,2.5rem)}
  /* Su mobile esco da position:absolute: i tab vanno in flusso sopra l'immagine,
     in modo da non risultare "impiccati" tra immagine e body. */
  .sc-tabs-wrap{
    position:relative;
    top:auto;bottom:auto;left:auto;right:auto;
    padding:1.25rem clamp(1.5rem,4vw,2.5rem) .25rem;
    pointer-events:auto;
    display:flex;justify-content:center;
  }
  .sc-tabs{box-shadow:none;border:1px solid rgba(13,13,13,.08)}
}
@media (max-width: 560px){
  .sc-tab{padding:.5rem .75rem;font-size:.72rem}
  .sc-tab-num{display:none}
  .sc-section-tag{font-size:.68rem;padding:.5rem .85rem}
}

@media (prefers-reduced-motion: reduce){
  .sc-track,.sc-panel,.sc-panel-media img,.sc-panel-cta,.sc-reveal,.sc-section-tag{
    transition:none;animation:none;
  }
  .sc-reveal{opacity:1;transform:none}
  .sc-panel{opacity:1}
  .sc-panel-media img,.sc-panel.is-active .sc-panel-media img{transform:none}
}

/* ── PREZZI ── */
#prezzi { padding: 3rem 0 6rem; background: var(--clr-white); }
#prezzi .section-header { margin-bottom: 3rem; }
.price-toggle-wrap { text-align: center; margin-bottom: 2.2rem; }
.price-toggle { display: inline-flex; background: rgba(13,13,13,0.05); border-radius: 50px; padding: 5px; gap: 4px; }
.toggle-btn { font-family: var(--font-body); font-weight: 500; font-size: 0.875rem; padding: 0.6rem 1.6rem; border-radius: 50px; border: none; cursor: pointer; color: rgba(13,13,13,0.5); background: transparent; transition: all 0.25s ease; }
.toggle-btn.active { background: var(--clr-orange); color: #fff; box-shadow: 0 4px 16px rgba(242,107,29,0.3); }
/* price-panel wrapper: one visible at a time, animated swap */
.price-panel {
  transition: opacity 0.45s cubic-bezier(.22,.61,.36,1), transform 0.45s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}
.price-panel.is-leaving {
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}
.price-panel.is-entering {
  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;
}
.price-panel.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
/* Stagger sulle singole card quando il pannello diventa attivo */
.price-panel.is-entering .price-card {
  opacity: 0;
  transform: translateY(16px);
}
.price-panel.is-active .price-card {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(.22,.61,.36,1), transform 0.5s cubic-bezier(.22,.61,.36,1);
}
.price-panel.is-active .price-card:nth-child(1) { transition-delay: 0.05s; }
.price-panel.is-active .price-card:nth-child(2) { transition-delay: 0.13s; }
.price-panel.is-active .price-card:nth-child(3) { transition-delay: 0.21s; }

@media (prefers-reduced-motion: reduce) {
  .price-panel, .price-panel .price-card {
    transition: none !important;
    transform: none !important;
  }
}
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; max-width: 1100px; margin: 0 auto; padding: 1.8rem 0.5rem 1.8rem; }
@media (max-width: 900px) { .price-grid { grid-template-columns: 1fr; max-width: 440px; } }
.price-card { background: #FFFFFF; border: 1.5px solid rgba(13,13,13,0.09); border-radius: 22px; padding: 2.4rem 2.2rem; box-shadow: 0 2px 16px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04); transition: transform 0.6s cubic-bezier(.22,.61,.36,1), box-shadow 0.6s cubic-bezier(.22,.61,.36,1), border-color 0.35s ease; position: relative; display: flex; flex-direction: column; }
/* Le features occupano lo spazio disponibile → il pulsante finisce sempre in fondo alla card */
.price-card .plan-features { flex: 1 1 auto; }
.price-card .plan-cta-wrap { margin-top: auto; }
.plan-hint { font-family: var(--font-body); font-size: 0.78rem; color: var(--clr-text-muted); text-align: center; margin: 0 0 0.55rem; line-height: 1.4; font-weight: 400; }
.price-panel.is-active .price-card:hover,
.price-card:hover { transform: translateY(-12px); box-shadow: 0 28px 56px rgba(0,0,0,0.14), 0 6px 14px rgba(0,0,0,0.06); border-color: var(--clr-orange); }
.price-card.featured { border: 1.5px solid rgba(242,107,29,0.35); box-shadow: 0 8px 32px rgba(0,0,0,0.07), 0 2px 8px rgba(0,0,0,0.04), 0 0 0 4px rgba(242,107,29,0.06); }
.price-panel.is-active .price-card.featured:hover,
.price-card.featured:hover { transform: translateY(-12px); box-shadow: 0 28px 56px rgba(242,107,29,0.22), 0 0 0 4px rgba(242,107,29,0.12); border-color: var(--clr-orange); }
.featured-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--clr-orange); color: #fff; border-radius: 20px; font-family: var(--font-body); font-weight: 500; font-size: 0.7rem; padding: 0.28rem 0.85rem; white-space: nowrap; }
.plan-name { font-family: var(--font-title); font-weight: 600; font-size: 0.85rem; color: rgba(13,13,13,0.5); text-transform: uppercase; letter-spacing: 0.09em; margin-bottom: 0.85rem; transition: color 0.22s ease; }
.plan-price { display: flex; align-items: flex-start; gap: 0.2rem; margin-bottom: 0.3rem; line-height: 1; }
.plan-currency { font-family: var(--font-title); font-weight: 800; font-size: 1.4rem; color: var(--clr-black); margin-top: 0.45rem; transition: color 0.22s ease; }
.plan-amount { font-family: var(--font-title); font-weight: 800; font-size: clamp(2.4rem, 4vw, 3rem); color: var(--clr-black); letter-spacing: -0.03em; transition: color 0.22s ease; }
.plan-period { font-family: var(--font-body); font-weight: 400; font-size: 0.88rem; color: var(--clr-text-muted); align-self: flex-end; padding-bottom: 0.25rem; }
.price-card:hover .plan-currency,
.price-card:hover .plan-amount,
.price-card:hover .plan-decimal,
.price-card:hover .plan-name { color: var(--clr-orange); }

/* Prezzo custom: "a partire da €120,00 / in base al vincolo di durata" */
.plan-price.plan-price-custom { display: flex; flex-direction: column; align-items: flex-start; gap: 0.15rem; line-height: 1.15; margin-bottom: 0.3rem; }
.plan-price-prefix { font-family: var(--font-body); font-weight: 400; font-size: 0.8rem; color: var(--clr-text-muted); text-transform: lowercase; letter-spacing: 0.01em; }
.plan-price-main { display: inline-flex; align-items: flex-start; gap: 0.05rem; line-height: 1; }
.plan-price-main .plan-amount { font-size: clamp(2.2rem, 3.6vw, 2.7rem); }
.plan-price-main .plan-currency { margin-top: 0.35rem; font-size: 1.25rem; }
.plan-price-decimal,
.plan-price-main .plan-decimal { font-family: var(--font-title); font-weight: 800; font-size: 1.3rem; color: var(--clr-black); align-self: flex-start; margin-top: 0.45rem; letter-spacing: -0.02em; }
.plan-price-suffix { font-family: var(--font-body); font-weight: 400; font-size: 0.78rem; color: var(--clr-text-muted); font-style: normal; margin-top: 0.1rem; }

.plan-divider { height: 1px; background: rgba(0,0,0,0.07); margin: 1.4rem -2.2rem; }
.plan-features { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 1.6rem; list-style: none; padding: 0; }
.feature-row { display: flex; align-items: flex-start; gap: 0.6rem; }
.feature-row svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; }
.feature-row .f-text { font-family: var(--font-body); font-size: 0.9rem; color: var(--clr-black); }
.feature-row.excluded .f-text { color: rgba(13,13,13,0.38); }
.plan-cta { width: 100%; padding: 0.85rem; border-radius: 10px; font-family: var(--font-body); font-weight: 500; font-size: 0.9rem; border: none;  transition: all 0.22s ease; }
.plan-cta-secondary { background: rgba(13,13,13,0.06); color: var(--clr-black); }
.plan-cta-secondary:hover { background: var(--clr-orange); color: #fff; box-shadow: 0 6px 20px rgba(242,107,29,0.3); }
.plan-cta-primary { background: var(--clr-orange); color: #fff; box-shadow: 0 4px 16px rgba(242,107,29,0.2); }
.plan-cta-primary:hover { background: var(--clr-orange); box-shadow: 0 0 0 4px rgba(242,107,29,0.25), 0 12px 32px rgba(242,107,29,0.35); transform: translateY(-2px) scale(1.02); }

/* ── TESTIMONIAL ── */
#testimonials { padding: var(--section-pad) 0; background: var(--clr-gray-100); }

.testi-google-badge { display:flex; align-items:center; gap:16px; max-width:820px; margin:0 auto 28px; padding:14px 18px; background:#fff; border:1px solid rgba(13,13,13,.08); border-radius:14px; box-shadow:0 6px 20px rgba(13,13,13,.04); }
.testi-google-badge > svg { flex-shrink:0; }
.testi-google-badge-text { flex:1; display:flex; flex-direction:column; line-height:1.35; min-width:0; }
.testi-google-badge-text strong { font-family:var(--font-title); font-size:.95rem; color:#0d0d0d; font-weight:700; }
.testi-google-badge-text span { font-size:.82rem; color:rgba(13,13,13,.6); }
.testi-google-cta { flex-shrink:0; font-family:var(--font-title); font-size:.85rem; font-weight:600; color:#0d0d0d; text-decoration:none; white-space:nowrap; padding:10px 18px; border-radius:999px; border:1.5px solid rgba(13,13,13,.14); background:#fff; transition:all .2s; }
.testi-google-cta:hover { background:#0d0d0d; color:#fff; border-color:#0d0d0d; transform:translateY(-1px); box-shadow:0 6px 18px rgba(13,13,13,.15); }
@media (max-width:700px){ .testi-google-badge{flex-direction:column; align-items:flex-start; text-align:left;} .testi-google-cta{align-self:stretch; text-align:center;} }

.testi-static-wrap { width: 100%; position: relative; }
/* Stage: altezza fissa = pagina più alta, così le frecce laterali non si muovono. */
.testi-stage { position: relative; width: 100%; }
.testi-page {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.4rem;
  width: 100%;
  position: absolute; top: 0; left: 0; right: 0;
  opacity: 0;
  transform: scale(.985);
  filter: blur(6px);
  pointer-events: none;
  transition:
    opacity .7s cubic-bezier(.22,.61,.36,1),
    transform .7s cubic-bezier(.22,.61,.36,1),
    filter .7s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform, filter;
}
.testi-page.active {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
  pointer-events: auto;
  z-index: 1;
}
@media (max-width: 1024px) { .testi-page { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px)  { .testi-page { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce){
  .testi-page{transition:opacity .3s ease;transform:none;filter:none}
}

.testi-card-static {
  background: #fff;
  border: 1px solid rgba(13,13,13,0.08);
  border-radius: 14px;
  padding: 1.6rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  display: flex; flex-direction: column;
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.testi-card-static:hover {
  border-color: var(--clr-orange);
  box-shadow: 0 10px 32px -8px rgba(242,107,29,.22), 0 2px 8px rgba(0,0,0,.04);
  transform: translateY(-2px);
}
.stars { display: flex; gap: 3px; margin-bottom: 0.85rem; }
.stars svg { width: 13px; height: 13px; fill: var(--clr-orange); stroke: none; }
.testi-quote { font-family: var(--font-body); font-size: 0.92rem; color: rgba(13,13,13,0.68); line-height: 1.7; font-style: italic; flex: 1; }
.testi-divider { height: 1px; background: rgba(0,0,0,0.07); margin: 1rem -1.6rem; }
.testi-author { display: flex; align-items: center; gap: 0.75rem; }
.author-avatar { width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0; background: #F26B1D; display: flex; align-items: center; justify-content: center; font-family: var(--font-title); font-weight: 700; font-size: 0.8rem; color: #fff; }
.author-name { font-family: var(--font-body); font-weight: 500; font-size: 0.88rem; color: var(--clr-black); }
.author-role { font-family: var(--font-body); font-size: 0.75rem; color: var(--clr-text-muted); }
.testi-controls { display: flex; align-items: center; gap: 1rem; margin-top: 1.25rem; justify-content: center; position: relative; z-index: 2; }
.testi-photo { width:100%; aspect-ratio: 16/9; margin: 0 -.4rem .85rem; border-radius: 10px; overflow: hidden; background: rgba(13,13,13,.04); border: 0; padding: 0; cursor: zoom-in; position: relative; display: block; }
.testi-photo img { width:100%; height:100%; object-fit: cover; object-position: center 20%; display:block; transition: transform .3s var(--ease); }
.testi-photo:hover img { transform: scale(1.04); }
.testi-photo::after { content: ""; position: absolute; top: 8px; right: 8px; width: 28px; height: 28px; border-radius: 50%; background: rgba(0,0,0,.55) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/></svg>") center/14px no-repeat; opacity: 0; transition: opacity .2s; }
.testi-photo:hover::after, .testi-photo:focus-visible::after { opacity: 1; }

/* Lightbox foto testimonianze */
.testi-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.92); z-index: 9999; display: flex; align-items: center; justify-content: center; cursor: zoom-out; opacity: 0; pointer-events: none; transition: opacity .25s ease; padding: 24px; }
.testi-lightbox.open { opacity: 1; pointer-events: auto; }
.testi-lightbox img { max-width: 92vw; max-height: 92vh; object-fit: contain; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.testi-lightbox-close { position: absolute; top: 20px; right: 20px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.15); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.testi-lightbox-close:hover { background: rgba(255,255,255,.28); }
.testi-ctrl-btn { width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid rgba(13,13,13,0.14); background: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color 0.2s, background 0.2s, transform 0.2s; }
.testi-ctrl-btn svg { width: 15px; height: 15px; stroke: var(--clr-black); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.testi-ctrl-btn:hover { border-color: var(--clr-orange); background: var(--clr-orange); transform: scale(1.08); }
.testi-ctrl-btn:hover svg { stroke: #fff; }
.testi-counter-label { font-family: var(--font-body); font-size: 0.8rem; color: var(--clr-text-muted); font-variant-numeric: tabular-nums; min-width: 42px; text-align: center; }

/* ── CTA FINALE ── */
#cta {
  padding: var(--section-pad) 0;
  background: var(--clr-orange); position: relative; overflow: hidden; text-align: center;
}
#cta::before {
  content: ''; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 700px; height: 700px; border-radius: 50%; pointer-events: none; z-index: 0;
  background: radial-gradient(circle, rgba(255,255,255,0.12) 0%, transparent 65%);
}
#cta::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(rgba(255,255,255,0.15) 1px, transparent 1px);
  background-size: 32px 32px;
}
.cta-content { position: relative; z-index: 1; }
.cta-overline {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.7rem; font-weight: 500; letter-spacing: 0.14em;
  color: rgba(255,255,255,0.75); text-transform: uppercase;
  font-family: var(--font-body); margin-bottom: 1rem;
}
.cta-overline::before, .cta-overline::after { content: ''; width: 20px; height: 1px; background: rgba(255,255,255,0.5); }
.cta-h2 {
  font-family: var(--font-title); font-weight: 700;
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  letter-spacing: -0.02em; line-height: 1.15;
  color: #fff; margin-bottom: 1rem;
}
.cta-sub {
  font-family: var(--font-body); font-size: 1.1rem;
  color: rgba(255,255,255,0.75); max-width: 480px; margin: 0 auto 2rem;
}
.btn-cta-big {
  display: inline-flex; align-items: center; gap: 0.55rem;
  background: transparent; color: #fff;
  font-family: var(--font-body); font-weight: 600; font-size: 1rem;
  padding: 1rem 2.4rem; border-radius: 11px;
  border: 2px solid rgba(255,255,255,0.6); 
  transition: background 0.22s, border-color 0.22s, box-shadow 0.22s, transform 0.22s;
}
.btn-cta-big:hover { background: rgba(255,255,255,0.12); border-color: #fff; box-shadow: 0 8px 32px rgba(0,0,0,0.15); transform: translateY(-2px); }
.cta-info {
  font-family: var(--font-body); font-size: 0.82rem;
  color: rgba(255,255,255,0.6); margin-top: 1.4rem;
}

/* ── FOOTER ── */
footer { background: var(--clr-black); padding: 0; }
.footer-top {
  max-width: var(--container); margin: 0 auto; padding: 4rem 2rem 3.5rem;
  display: grid; grid-template-columns: 1.1fr 1.5fr 1.2fr;
  gap: 3rem; align-items: start;
}
@media (max-width: 900px) { .footer-top { grid-template-columns: 1fr; gap: 2rem; } }
.footer-logo-svg { display: block; width: 176px; height: auto; margin-bottom: 1rem; }
.footer-brand > a { display: inline-block; }
.footer-tagline { font-family: var(--font-body); font-size: 0.9rem; color: rgba(255,255,255,0.35); line-height: 1.65; max-width: 280px; margin-bottom: 1rem; }
.footer-nav-label { display: none; }
.footer-nav-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.footer-nav-group-label { font-family: var(--font-body); font-weight: 500; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.13em; color: var(--clr-orange); margin-bottom: 1.1rem; display: block; }
.footer-nav-grid { display: flex; flex-direction: column; gap: 0; }
.footer-nav-grid a { font-family: var(--font-body); font-size: 0.85rem; color: rgba(255,255,255,0.45); transition: color 0.2s; padding: 0.35rem 0; display: block; }
.footer-nav-grid a:hover { color: #fff; }
/* Prenota ora nel footer: sempre grigio, mai arancione */
.footer-nav-grid a[onclick*="openPrenotazione"], .footer-nav-grid a[onclick*="return false"] { color: rgba(255,255,255,0.45) !important; }
.footer-contact-label { font-family: var(--font-body); font-weight: 500; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.13em; color: var(--clr-orange); margin-bottom: 1.1rem; display: block; }
.footer-contact-item { display: flex; align-items: flex-start; gap: 0.7rem; margin-bottom: 0.9rem; }
.footer-contact-item svg { width: 14px; height: 14px; stroke: var(--clr-orange); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; margin-top: 3px; }
.footer-contact-item span, .footer-contact-item a { font-family: var(--font-body); font-size: 0.82rem; color: rgba(255,255,255,0.42); line-height: 1.5; }
.footer-contact-item a:hover { color: var(--clr-orange); }
.footer-social { display: flex; gap: 0.6rem; margin-top: 0; }
.social-btn { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; transition: border-color 0.2s, background 0.2s;  }
.social-btn:hover { border-color: var(--clr-orange); background: rgba(242,107,29,0.12); }
.social-btn svg { width: 15px; height: 15px; stroke: rgba(255,255,255,0.45); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: stroke 0.2s; }
.social-btn:hover svg { stroke: #fff; }
.footer-bottom { width: 100%; border-top: 1px solid rgba(255,255,255,0.06); }
.footer-bottom-inner { max-width: var(--container); margin: 0 auto; padding: 1.4rem 2rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.6rem; }
.footer-copy { font-family: var(--font-body); font-size: 0.74rem; color: rgba(255,255,255,0.18); display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
.footer-copy-sep { color: rgba(255,255,255,0.18); }
.footer-builtby { display:inline-flex; align-items:center; gap:.55rem; color: rgba(255,255,255,0.18); }
.footer-builtby-logo { width: 132px; height: auto; display:block; }
.footer-legal { display: flex; gap: 1.4rem; }
.footer-legal a { font-family: var(--font-body); font-size: 0.74rem; color: rgba(255,255,255,0.18);  transition: color 0.2s; }
.footer-legal a:hover { color: rgba(255,255,255,0.5); }
.footer-focus {
  animation: footerAppear .55s var(--ease-spring);
}
@keyframes footerAppear {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ── CONTATTI ACTIVE STATE nel navbar reale ── */
body.contatti-open .nav-links a[onclick*="openContatti"] { color: var(--clr-orange) !important; }
body.contatti-open .nav-links a[onclick*="openContatti"]:hover { color: var(--clr-orange-dark) !important; }

/* ─── FOCUS ─── */
:focus-visible{outline:2px solid var(--clr-orange);outline-offset:3px;border-radius:4px}

/* ── REVEAL (sezioni prezzi/testimonials) ── */
.reveal {
  opacity: 0;
  transform: translateY(36px) scale(0.98);
  transition: opacity 0.65s var(--ease-spring), transform 0.65s var(--ease-spring);
}
.reveal.visible { opacity: 1; transform: translateY(0) scale(1); }

/* ══════════════════════════════════════════════
   PAGINA PRENOTAZIONE — CSS (colonna centrata)
   ══════════════════════════════════════════════ */

#prenotazione-overlay {
  position: fixed; inset: 0; z-index: 5000;
  background: #fff;
  overflow: hidden;
  display: flex; flex-direction: column;
  opacity: 0;
  transform: translateY(18px);
  pointer-events: none;
  transition: opacity .45s var(--ease), transform .45s var(--ease);
}
#prenotazione-overlay.pren-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
/* Il contenuto sotto il nav scorre, il nav resta fisso in cima */
#pren-overlay-body {
  flex: 1;
  overflow-y: auto; overflow-x: hidden;
  scrollbar-width: thin;
  display: flex; flex-direction: column;
}

/* Contenuto centrato — max 680px come un form */
.pren-page-content {
  flex: 1;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 2rem 2rem 3.5rem;
  display: flex; flex-direction: column; gap: 1.3rem;
}
@media(max-width:480px){ .pren-page-content { padding: 1.2rem 1rem 2.5rem; } }

/* Intestazione centrata */
.pren-page-heading {
  text-align: center;
  padding-bottom: .5rem;
}
.pren-overline {
  font-family: var(--font-body); font-size: .65rem; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--clr-orange); margin-bottom: .4rem;
  display: flex; align-items: center; justify-content: center; gap: .5rem;
}
.pren-overline::before, .pren-overline::after {
  content: ''; width: 18px; height: 1px; background: var(--clr-orange);
}
.pren-title {
  font-family: var(--font-title); font-weight: 700;
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  letter-spacing: -.03em; line-height: 1.1;
  color: var(--clr-black); margin-bottom: .35rem;
}
.pren-sub {
  font-family: var(--font-body); font-size: .98rem;
  color: var(--clr-text-muted); line-height: 1.6;
  max-width: 520px; margin: 0 auto;
}

/* Sezioni card compatte */
.pren-section {
  display: flex; flex-direction: column; gap: .9rem;
  background: #fff;
  border: 1.5px solid var(--clr-border);
  border-radius: 16px;
  padding: 1.5rem 1.6rem;
}
.pren-section-label {
  display: flex; align-items: center; gap: .6rem;
  font-family: var(--font-body); font-size: .82rem; font-weight: 600;
  color: var(--clr-black); letter-spacing: .05em; text-transform: uppercase;
}
.pren-step-num {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--clr-orange); color: #fff;
  font-size: .75rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}

/* Tipo di spazio — orizzontale compatto */
.pren-service-toggle {
  display: grid; grid-template-columns: 1fr 1fr; gap: .8rem;
}
@media (max-width: 560px) {
  .pren-service-toggle { grid-template-columns: 1fr; }
}
.pren-svc-btn {
  display: flex; align-items: center; gap: .85rem;
  padding: 1rem 1.2rem;
  border: 1.5px solid var(--clr-border);
  border-radius: 10px; background: var(--clr-white);
  cursor: pointer;
  transition: border-color .22s, background .22s, transform .18s;
  text-align: left;
}
.pren-svc-btn:hover { border-color: rgba(242,107,29,.4); background: var(--orange-pale); transform: translateY(-1px); }
.pren-svc-btn.active { border-color: var(--clr-orange); background: var(--orange-pale); }
.pren-svc-icon {
  width: 42px; height: 42px; border-radius: 10px;
  background: var(--orange-mid); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: background .22s;
}
.pren-svc-btn.active .pren-svc-icon { background: var(--clr-orange); }
.pren-svc-icon svg { width: 21px; height: 21px; stroke: var(--clr-orange); transition: stroke .22s; }
.pren-svc-btn.active .pren-svc-icon svg { stroke: #fff; }
.pren-svc-texts { display: flex; flex-direction: column; gap: .05rem; }
.pren-svc-label { font-family: var(--font-body); font-size: 1rem; font-weight: 600; color: var(--clr-black); line-height: 1.2; }
.pren-svc-price { font-family: var(--font-body); font-size: .78rem; color: var(--clr-text-muted); }

/* Hours selector compatto */
.pren-sala-hours {
  background: var(--clr-gray-100); border: 1px solid var(--clr-border);
  border-radius: 12px; padding: .9rem 1.1rem;
  display: flex; flex-direction: column; gap: .6rem;
}
.pren-hours-row { display: flex; flex-direction: column; gap: .3rem; }
.pren-hours-label {
  font-family: var(--font-body); font-size: .75rem; font-weight: 600;
  color: var(--clr-text-muted); text-transform: uppercase; letter-spacing: .07em;
}
.pren-hours-btns { display: flex; flex-wrap: wrap; gap: .35rem; }
.pren-hour-btn {
  padding: .38rem .75rem; border-radius: 7px;
  border: 1px solid var(--clr-border); background: var(--clr-white);
  font-family: var(--font-body); font-size: .84rem; font-weight: 500; color: var(--clr-black);
  cursor: pointer; transition: border-color .18s, background .18s, color .18s;
}
.pren-hour-btn:hover { border-color: rgba(242,107,29,.5); background: var(--orange-pale); }
.pren-hour-btn.active { border-color: var(--clr-orange); background: var(--clr-orange); color: #fff; }
.pren-hour-btn:disabled { opacity: .3; cursor: not-allowed; background: var(--clr-gray-200); border-color: transparent; }

/* Calendario compatto */
.pren-calendar { border: 1.5px solid var(--clr-border); border-radius: 12px; overflow: hidden; background: var(--clr-white); }
.pren-cal-nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: .6rem .9rem; border-bottom: 1px solid var(--clr-border);
  background: var(--clr-gray-100);
}
.pren-cal-nav-btn {
  width: 28px; height: 28px; border-radius: 7px;
  background: var(--clr-white); border: 1px solid var(--clr-border);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: border-color .18s, background .18s;
}
.pren-cal-nav-btn:hover { border-color: var(--clr-orange); background: var(--orange-pale); }
.pren-cal-nav-btn svg { width: 13px; height: 13px; }
.pren-cal-month-name { font-family: var(--font-title); font-weight: 700; font-size: .88rem; color: var(--clr-black); text-transform: capitalize; }
.pren-cal-weekdays {
  display: grid; grid-template-columns: repeat(7,1fr);
  padding: .35rem .6rem .15rem;
  background: var(--clr-gray-100); border-bottom: 1px solid var(--clr-border);
}
.pren-cal-weekdays span {
  text-align: center; font-family: var(--font-body); font-size: .58rem;
  font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
  color: var(--clr-text-muted); padding: .15rem 0;
}
.pren-cal-wd-we { color: rgba(13,13,13,.35) !important; }
.pren-cal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; padding: .4rem .6rem .6rem; }
.pren-cal-cell {
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
  border-radius: 7px;
  font-family: var(--font-body); font-size: .76rem; font-weight: 500; color: var(--clr-black);
  cursor: pointer; transition: background .15s, color .15s, transform .12s;
  position: relative; user-select: none;
}
.pren-cal-cell:hover:not(.disabled):not(.empty) { background: var(--orange-pale); color: var(--clr-orange); transform: scale(1.07); }
.pren-cal-cell.empty { cursor: default; }
.pren-cal-cell.disabled { color: rgba(13,13,13,.2); cursor: default; pointer-events: none; }
.pren-cal-cell.weekend { color: rgba(13,13,13,.22); cursor: not-allowed; pointer-events: none; }
.pren-cal-cell.holiday { color: rgba(242,107,29,.55); cursor: not-allowed; pointer-events: none; }
/* Sabato: card opzione mostrata sotto "Scegli la quantità" */
.pren-sat-badge {
  width: 34px; height: 24px; border-radius: 99px;
  background: var(--clr-orange); color: #fff;
  font-size: .62rem; font-weight: 700; letter-spacing: .04em;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.pren-sat-hint { font-size: .8rem; color: #666; line-height: 1.4; margin: .4rem 0 0 2rem; }
/* Elenco dei singoli sabati (compare solo se il periodo ne tocca più di uno) */
.pren-sat-list { display: flex; flex-direction: column; gap: .4rem; margin: .6rem 0 0 2rem; }
.pren-sat-day {
  display: flex; align-items: center; gap: .6rem;
  padding: .55rem .7rem; border-radius: 10px;
  border: 1.5px solid var(--clr-border); background: #FAFAFA;
  cursor: pointer; transition: border-color .18s, background .18s;
}
.pren-sat-day:hover { border-color: var(--clr-orange); background: #fff; }
.pren-sat-day.is-on { border-color: var(--clr-orange); background: rgba(242,107,29,.06); }
.pren-sat-day.is-on .pren-checkbox-box { border-color: var(--clr-orange); background: rgba(242,107,29,.1); }
.pren-sat-day.is-on .pren-checkbox-check { display: block; }
.pren-sat-day-label { flex: 1; font-size: .88rem; color: var(--clr-black); }
.pren-sat-day-price { font-size: .85rem; font-weight: 600; color: #666; }
.pren-sat-day.is-on .pren-sat-day-price { color: var(--clr-orange); }
@media (max-width: 480px) {
  .pren-sat-list, .pren-sat-hint { margin-left: 0; }
}
.pren-sat-note {
  padding: .7rem .85rem; border-radius: 10px;
  background: #FFF7ED; border: 1px solid rgba(242,107,29,.3);
  color: #7C3A0F; font-size: .84rem; line-height: 1.45;
}
.pren-sat-link {
  display: inline-block; margin-top: .35rem;
  color: var(--clr-orange); font-weight: 600; text-decoration: none;
  border-bottom: 1px solid rgba(242,107,29,.4);
}
.pren-sat-link:hover { border-bottom-color: var(--clr-orange); }
/* Sabato coperto dalla Postazione mensile — bordo tratteggiato per distinguerlo dal range normale */
.pren-cal-cell.sat-covered { border: 1px dashed rgba(242,107,29,.5); position: relative; }
.pren-cal-cell.sat-covered::after { content: 'Sab OK'; position: absolute; bottom: 2px; left: 0; right: 0; font-size: 8px; text-align: center; opacity: .6; }

/* Tag dentro la cella ("TUTTO PRENOTATO" / "SOLO ALCUNE ORE") */
.pren-cal-cell.cell-fullbooked { background: rgba(220,40,40,.07); color: rgba(180,30,30,.7); flex-direction: column; gap: 2px; }
.pren-cal-cell.cell-partial { background: rgba(255,184,0,.10); flex-direction: column; gap: 2px; }
.pren-cal-cell .cell-tag {
  font-size: 7px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; line-height: 1;
  color: rgba(180,30,30,.85);
  white-space: nowrap; max-width: 100%; overflow: hidden;
}
.pren-cal-cell .cell-tag--partial { color: rgba(180,120,0,.95); }
@media (max-width: 480px) {
  .pren-cal-cell .cell-tag { font-size: 6px; }
}

.pren-cal-cell.selected { background: var(--clr-orange); color: #fff; box-shadow: 0 3px 10px rgba(242,107,29,.3); transform: scale(1.04); }
.pren-cal-cell.in-range { background: rgba(242,107,29,.1); color: var(--clr-orange); border-radius: 0; }
.pren-cal-cell.range-start { background: var(--clr-orange); color: #fff; border-radius: 7px 0 0 7px; box-shadow: 0 3px 10px rgba(242,107,29,.3); }
.pren-cal-cell.range-end { background: var(--clr-orange); color: #fff; border-radius: 0 7px 7px 0; box-shadow: 0 3px 10px rgba(242,107,29,.3); }
.pren-cal-cell.range-start.range-end { border-radius: 7px; }
.pren-cal-cell.range-start.range-solo { border-radius: 7px !important; }
/* today: nessun highlight (rimosso per richiesta utente */


/* Riepilogo & prezzo */
.pren-summary {
  background: var(--clr-white);
  border: 1.5px solid var(--clr-border);
  border-radius: 16px;
  padding: 1.5rem 1.6rem;
  transition: border-color .3s;
}
.pren-summary.has-price { border-color: rgba(242,107,29,.4); }
.pren-offer-banner {
  display: flex; align-items: center; gap: .6rem;
  margin: .75rem 0 .9rem;
  padding: .75rem 1rem;
  background: var(--clr-gray-100); border: 1.5px solid var(--clr-border);
  border-radius: 9px; transition: border-color .3s, background .3s;
}
.pren-summary.has-price .pren-offer-banner { border-color: rgba(242,107,29,.3); background: rgba(242,107,29,.05); }
.pren-offer-pill {
  flex-shrink: 0; font-family: var(--font-body); font-size: .64rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  background: rgba(13,13,13,.07); color: var(--clr-text-muted);
  border-radius: 5px; padding: .22rem .6rem;
  transition: background .3s, color .3s; white-space: nowrap;
}
.pren-summary.has-price .pren-offer-pill { background: var(--clr-orange); color: #fff; }
.pren-offer-hint { font-family: var(--font-body); font-size: .88rem; color: var(--clr-text-muted); line-height: 1.4; transition: color .3s; }
.pren-summary.has-price .pren-offer-hint { color: var(--clr-black); font-weight: 500; }
.pren-summary-grid { display: flex; flex-direction: column; gap: .6rem; margin-top: .75rem; }
.pren-sum-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.pren-sum-key { font-family: var(--font-body); font-size: .88rem; color: var(--clr-text-muted); }
.pren-sum-val { font-family: var(--font-body); font-size: .92rem; font-weight: 500; color: var(--clr-black); text-align: right; }
.pren-sum-badge {
  font-family: var(--font-body); font-size: .74rem; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
  background: rgba(242,107,29,.1); color: var(--clr-orange);
  border: 1px solid rgba(242,107,29,.22); border-radius: 5px; padding: .24rem .65rem;
}
.pren-sum-divider { height: 1px; background: var(--clr-border); margin: .3rem -1.6rem; }
.pren-sum-total .pren-sum-key { font-weight: 700; color: var(--clr-black); font-size: .95rem; }
.pren-sum-price {
  font-family: var(--font-title); font-size: 2rem; font-weight: 800;
  color: var(--clr-orange); letter-spacing: -.025em;
}


/* Bottone conferma */
.pren-btn-confirm {
  width: 100%; margin-top: .9rem;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-body); font-size: 1rem; font-weight: 600;
  background: var(--clr-orange); color: #fff;
  padding: .9rem 1.7rem; border-radius: 11px; border: none;
  cursor: pointer;
  transition: box-shadow .25s, transform .25s, opacity .25s;
  box-shadow: none;
}
.pren-btn-confirm:disabled { opacity: .4; cursor: not-allowed; box-shadow: none; }
.pren-btn-confirm:not(:disabled):hover {
  background: var(--clr-orange);
  transform: translateY(-2px) scale(1.02);
  box-shadow: none;
}

body.pren-open { overflow: hidden; }
/* Custom dropdown orario — stili sopra */
.pren-dd-wrap {
  position: relative;
  display: inline-block;
}
.pren-dd-btn {
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: var(--font-body); font-size: .82rem; font-weight: 500;
  color: var(--clr-black);
  border: 1.5px solid var(--clr-border); border-radius: 7px;
  background: var(--clr-white); padding: .32rem .65rem;
  cursor: pointer; outline: none;
  transition: border-color .2s, color .2s;
  white-space: nowrap;
  /* Match pren-custom-select appearance */
  -webkit-appearance: auto;
  appearance: auto;
  min-width: 72px;
}
.pren-dd-btn:hover { border-color: var(--clr-orange); color: var(--clr-orange); }
.pren-dd-wrap.open .pren-dd-btn { border-color: var(--clr-orange); color: var(--clr-black); }
.pren-dd-btn svg { flex-shrink: 0; color: currentColor; transition: transform .2s; }
.pren-dd-val { color: var(--clr-black) !important; }
.pren-dd-wrap.open .pren-dd-btn svg { transform: rotate(180deg); }
.pren-dd-list {
  display: none;
  position: absolute;
  top: calc(100% + 4px); left: 0;
  min-width: 100%;
  background: var(--clr-white);
  border: 1.5px solid rgba(0,0,0,.1);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
  list-style: none; padding: .3rem 0;
  z-index: 100;
}
.pren-dd-wrap.open .pren-dd-list { display: block; border-color: var(--clr-orange); }
.pren-dd-list li {
  padding: .4rem .8rem;
  font-family: var(--font-body); font-size: .82rem; font-weight: 500;
  color: var(--clr-black);
  cursor: pointer;
  transition: background .15s, color .15s;
}
.pren-dd-list li:not(.disabled):hover { background: var(--orange-pale); color: var(--clr-orange); }
.pren-dd-list li.selected { color: var(--clr-orange); font-weight: 700; }
.pren-dd-list li.disabled {
  background: #ececec;
  color: #999;
  text-decoration: line-through;
  cursor: not-allowed;
  pointer-events: none;
  position: relative;
}
.pren-dd-list li.disabled:hover { background: #ececec; color: #999; }

/* Card orario uniforme — come pren-custom-day-row ma senza label giorno */
/* Card uniforme — layout colonnare, identico alle card personalizzate */
#pren-uniform-day-row { flex-direction: row; align-items: center; }
#pren-uniform-day-row .pren-custom-day-selects { flex-direction: row; align-items: center; gap: .6rem; flex-wrap: wrap; }
/* Label orario: grigia default, nera solo quando il suo dropdown è aperto */
.pren-custom-day-selects-label {
  font-family: var(--font-body); font-size: .68rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--clr-text-muted); white-space: nowrap;
  transition: color .2s;
}
.pren-custom-day-selects-label.dd-label-active {
  color: var(--clr-black);
}

/* ── Step 3 orari nuova struttura ── */
.pren-ora-row-header {
  cursor: pointer;
  padding: .2rem 0;
}
.pren-ora-chk-wrap {
  display: flex; align-items: center; gap: .75rem;
  user-select: none;
}

/* ── Titoli orario: testo semplice, leggibile, nessun effetto sfumatura ── */
.pren-ora-row-header .pren-checkbox-box {
  border-color: rgba(13,13,13,.25);
  background: var(--clr-white);
  transition: border-color .2s, background .2s;
}
.pren-ora-row-header .pren-checkbox-label {
  color: var(--clr-black);
  font-weight: 600;
  text-shadow: none;
  filter: none;
  -webkit-font-smoothing: antialiased;
}
.pren-ora-row-header:hover .pren-checkbox-box { border-color: var(--clr-orange); }
.pren-ora-row-header:hover .pren-checkbox-label { color: var(--clr-black); }
/* ── Stato attivo: classe .ora-active aggiunta via JS ── */
.ora-active .pren-checkbox-box { border-color: var(--clr-orange) !important; background: rgba(242,107,29,.1) !important; }
.ora-active .pren-checkbox-check { display: block !important; }
.ora-active .pren-checkbox-label { color: var(--clr-black) !important; font-weight: 600 !important; }
/* ── Titolo inattivo: leggermente più tenue ma SENZA transizioni che creano sfumature ── */
.pren-ora-row-header:not(.ora-active) .pren-checkbox-label { opacity: 1; }
/* ── Panel sbiadito quando inattivo ── */
.pren-uniform-inactive #pren-uniform-panel { opacity: .38; pointer-events: none; }

/* Checkbox personalizzazione orario sala */
.pren-checkbox-row {
  display: flex; align-items: center; gap: .75rem;
  cursor: pointer; user-select: none;
  padding: .3rem 0;
}
.pren-checkbox-box {
  width: 20px; height: 20px; border-radius: 5px;
  border: 2px solid var(--clr-border);
  background: var(--clr-white);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: border-color .2s, background .2s;
}
.pren-checkbox-row:hover .pren-checkbox-box { border-color: var(--clr-orange); }
.pren-checkbox-row.checked .pren-checkbox-box {
  border-color: var(--clr-orange);
  background: rgba(242,107,29,.1);
}
.pren-checkbox-check {
  display: none;
  width: 11px; height: 11px;
}
.pren-checkbox-row.checked .pren-checkbox-check { display: block; }
.pren-checkbox-label {
  font-family: var(--font-body); font-size: .9rem; font-weight: 500;
  color: var(--clr-black);
  transition: color .2s, font-weight .1s;
}

/* Calendario — selezione: arancione pieno */
.pren-cal-cell { transition: background .12s, color .12s; }
.pren-cal-cell:hover:not(.disabled):not(.empty) { background: var(--orange-pale); color: var(--clr-orange); transform: none; }
.pren-cal-cell.selected { background: var(--clr-orange) !important; color: #fff !important; font-weight: 700; border: none; border-radius: 7px; box-shadow: none; transform: none; }
.pren-cal-cell.range-start { background: var(--clr-orange) !important; color: #fff !important; font-weight: 700; border-radius: 7px 0 0 7px; box-shadow: none; transform: none; }
.pren-cal-cell.range-end { background: var(--clr-orange) !important; color: #fff !important; font-weight: 700; border-radius: 0 7px 7px 0; box-shadow: none; transform: none; }
.pren-cal-cell.range-start.range-end,
.pren-cal-cell.range-solo { background: var(--clr-orange) !important; color: #fff !important; border-radius: 7px !important; box-shadow: none; transform: none; }
.pren-cal-cell.in-range { background: rgba(242,107,29,.12); color: var(--clr-orange); border-radius: 0; transform: none; }

/* ── Sala personalizzazione giornaliera ── */
.pren-custom-toggle-btn {
  display: flex; width: 100%; align-items: center; justify-content: center; gap: .55rem;
  font-family: var(--font-body); font-size: .9rem; font-weight: 600;
  color: #fff;
  background: var(--clr-orange);
  border: none;
  border-radius: 10px; padding: .7rem 1.4rem;
  cursor: pointer;
  transition: background .2s, transform .18s, box-shadow .2s;
  box-shadow: 0 4px 14px rgba(242,107,29,.28);
}
.pren-custom-toggle-btn:hover { background: var(--clr-orange-dark); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(242,107,29,.38); }
.pren-custom-toggle-btn.active { background: var(--clr-orange-dark); }
.pren-custom-day-row {
  display: flex; align-items: center; gap: .8rem;
  padding: .6rem .8rem;
  background: var(--clr-gray-100);
  border: 1px solid var(--clr-border);
  border-radius: 8px;
  margin-bottom: .4rem;
  transition: border-color .2s;
}
.pren-custom-day-label {
  font-family: var(--font-body); font-size: .82rem; font-weight: 600;
  color: var(--clr-black); min-width: 100px; flex-shrink: 0;
}
.pren-custom-day-selects {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
}
.pren-custom-day-selects span {
  font-family: var(--font-body); font-size: .76rem; color: var(--clr-text-muted);
}
.pren-custom-select {
  font-family: var(--font-body); font-size: .82rem; font-weight: 500;
  color: var(--clr-black);
  border: 1.5px solid var(--clr-border); border-radius: 7px;
  background: var(--clr-white); padding: .32rem .65rem;
  cursor: pointer; outline: none;
  transition: border-color .2s, color .2s;
  -webkit-appearance: auto;
  appearance: auto;
}
.pren-custom-select:hover { border-color: var(--clr-orange); color: var(--clr-orange); }
.pren-custom-select:focus { border-color: var(--clr-orange); color: var(--clr-orange); outline: none; }
/* Opzioni nel menu a tendina */
.pren-custom-select option { font-family: var(--font-body); font-size: .82rem; }
.pren-custom-select option:checked,
.pren-custom-select option:hover { background: var(--clr-orange); color: #fff; }




/* ─── Photo-grid carousel (sezione #spazi) ─── */
.pg-main, .pg-b, .pg-c, .pg-d, .pg-e {
  isolation: isolate;
  background: #f4f4f4;
}

.pg-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  /* Filtro iniziale: blur 12px (fuori scena) */
  filter: brightness(.97) saturate(1.05) blur(12px);
  transition:
    opacity 1.6s cubic-bezier(.45, .05, .55, .95),
    filter  1.6s cubic-bezier(.45, .05, .55, .95);
  will-change: opacity, filter;
  pointer-events: none;
  backface-visibility: hidden;
  /* Il wrapper ha overflow:hidden, ma il blur "sbordante" lo mitighiamo
     garantendo che l'img copra completamente lo slot */
  transform: scale(1.02);
}
.pg-img.is-active {
  opacity: 1;
  filter: brightness(.97) saturate(1.05) blur(0);
}

/* Hover leggero scale sulla sola immagine attiva */
.pg-main:hover .pg-img.is-active,
.pg-b:hover .pg-img.is-active,
.pg-c:hover .pg-img.is-active,
.pg-d:hover .pg-img.is-active,
.pg-e:hover .pg-img.is-active {
  transform: scale(1.05);
  transition: transform .8s var(--ease), opacity 1.6s cubic-bezier(.45, .05, .55, .95), filter 1.6s cubic-bezier(.45, .05, .55, .95);
}

/* Caption: fade soft */
.photo-caption .pg-cap-text {
  display: inline-block;
  transition: opacity .4s ease;
}
.photo-caption.is-caption-fading .pg-cap-text { opacity: 0; }

/* Controlli */
.spazi-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin-top: 1.6rem;
  padding: 0 1rem;
}
.spazi-ctrl {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  border: 1px solid var(--ink-faint, rgba(13,13,13,.14));
  background: var(--bg, #fff);
  color: var(--ink, #0D0D0D);
  cursor: pointer;
  transition: background .3s var(--ease), color .3s var(--ease),
              border-color .3s var(--ease), transform .3s var(--ease),
              box-shadow .3s var(--ease);
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}
.spazi-ctrl svg { width: 20px; height: 20px; display: block; }
.spazi-ctrl:hover {
  background: var(--ink, #0D0D0D);
  color: var(--bg, #fff);
  border-color: var(--ink, #0D0D0D);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0,0,0,.09);
}
.spazi-ctrl:focus-visible {
  outline: 2px solid var(--orange, #F26B1D);
  outline-offset: 3px;
}
.spazi-ctrl:active { transform: translateY(0); }

.spazi-dots {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: 0 .25rem;
}
.spazi-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: 0;
  padding: 0;
  background: rgba(13,13,13,.2);
  cursor: pointer;
  transition: background .3s var(--ease), width .4s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.spazi-dot:hover { background: rgba(13,13,13,.4); }
.spazi-dot.is-active {
  background: var(--orange, #F26B1D);
  width: 26px;
  border-radius: 4px;
}
.spazi-dot:focus-visible {
  outline: 2px solid var(--orange, #F26B1D);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  .spazi-controls { gap: 1rem; margin-top: 1.2rem; }
  .spazi-ctrl { width: 40px; height: 40px; }
  .spazi-ctrl svg { width: 18px; height: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .pg-img {
    transition: opacity .2s linear;
    filter: brightness(.97) saturate(1.05) !important;
    transform: none !important;
  }
  .spazi-ctrl, .spazi-dot { transition: none; }
  .photo-caption .pg-cap-text { transition: none; }
}


/* ─── Auth Modal (Prenota e paga) ─── */
.auth-modal {
  position: fixed; inset: 0;
  z-index: 10000;
  display: flex; align-items: center; justify-content: center;
  padding: 1.25rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .32s var(--ease, cubic-bezier(.22,1,.36,1));
}
.auth-modal[hidden] { display: none !important; }
.auth-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}
.auth-backdrop {
  position: absolute; inset: 0;
  background: rgba(13, 13, 13, .55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.auth-card {
  position: relative;
  background: var(--bg, #fff);
  border-radius: 18px;
  padding: 2.4rem 2.2rem 2rem;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 24px 60px rgba(13, 13, 13, .22), 0 4px 16px rgba(13, 13, 13, .08);
  transform: translateY(14px) scale(.985);
  transition: transform .45s var(--ease, cubic-bezier(.22,1,.36,1));
  font-family: var(--font-body, 'Inter', sans-serif);
  color: var(--ink, #0D0D0D);
}
.auth-modal.is-open .auth-card { transform: translateY(0) scale(1); }

.auth-close {
  position: absolute; top: .85rem; right: .85rem;
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; background: transparent; border-radius: 50%;
  cursor: pointer; color: var(--ink-dim, rgba(13,13,13,.52));
  transition: background .25s, color .25s;
  padding: 0;
}
.auth-close:hover { background: rgba(13,13,13,.06); color: var(--ink, #0D0D0D); }
.auth-close svg { width: 18px; height: 18px; display: block; }
.auth-close:focus-visible { outline: 2px solid var(--orange, #F26B1D); outline-offset: 2px; }

.auth-logo-wrap {
  display: flex; justify-content: center;
  margin-bottom: 1.4rem;
}
.auth-logo-svg { height: 36px; width: auto; display: block; }

.auth-title {
  font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.2;
  text-align: center;
  margin: 0 0 .45rem;
  color: var(--ink, #0D0D0D);
  letter-spacing: -0.01em;
}
.auth-subtitle {
  text-align: center;
  color: var(--ink-dim, rgba(13,13,13,.52));
  font-size: .95rem;
  margin: 0 0 1.5rem;
  line-height: 1.5;
}

.auth-form { display: flex; flex-direction: column; gap: 1rem; }

.auth-field { display: flex; flex-direction: column; gap: .4rem; }
.auth-field-label {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--ink, #0D0D0D);
  text-transform: uppercase;
}
.auth-input {
  width: 100%;
  padding: .85rem 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: var(--ink, #0D0D0D);
  background: var(--bg2, #FAFAF9);
  border: 1px solid var(--ink-faint, rgba(13,13,13,.1));
  border-radius: 10px;
  outline: none;
  transition: border-color .25s, background .25s, box-shadow .25s;
  box-sizing: border-box;
}
.auth-input::placeholder { color: rgba(13,13,13,.35); }
.auth-input:hover { border-color: rgba(13,13,13,.22); }
.auth-input:focus {
  border-color: var(--orange, #F26B1D);
  background: #fff;
  box-shadow: 0 0 0 4px var(--orange-mid, rgba(242,107,29,.12));
}
.auth-input.has-error {
  border-color: #e04545;
  box-shadow: 0 0 0 4px rgba(224, 69, 69, .1);
}
.auth-error {
  min-height: 1.05rem;
  font-size: .82rem;
  color: #c63535;
  margin-top: .1rem;
}

.auth-submit {
  width: 100%;
  padding: .95rem 1.25rem;
  font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
  font-weight: 600;
  font-size: 1rem;
  color: #fff;
  background: var(--orange, #F26B1D);
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  letter-spacing: .01em;
  transition: background .25s, transform .2s, box-shadow .25s;
  box-shadow: 0 6px 16px var(--orange-mid, rgba(242,107,29,.12));
  margin-top: .4rem;
}
.auth-submit:hover {
  background: #dc5b15;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px var(--orange-glow, rgba(242,107,29,.25));
}
.auth-submit:active { transform: translateY(0); }
.auth-submit:focus-visible { outline: 2px solid var(--ink, #0D0D0D); outline-offset: 2px; }
.auth-submit:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.auth-fineprint {
  text-align: center;
  font-size: .78rem;
  color: var(--ink-dim, rgba(13,13,13,.52));
  margin: 1.25rem 0 0;
}

@media (max-width: 480px) {
  .auth-card { padding: 2rem 1.5rem 1.6rem; border-radius: 16px; }
  .auth-title { font-size: 1.35rem; }
}

@media (prefers-reduced-motion: reduce) {
  .auth-modal, .auth-card { transition: none; }
}

/* ══════════ overlay #contatti-overlay ══════════ */
    #contatti-overlay {
      position:fixed;inset:0;z-index:1001;
      background:#f8f7f5;
      overflow-y:auto;
      opacity:1;
      padding-top:68px;
    }
    #contatti-overlay.co-open { opacity:1; }
    /* pattern sottile sfondo */
    .co-bg {
      position:fixed;inset:0;pointer-events:none;
      background-image: radial-gradient(circle, rgba(242,107,29,.08) 1px, transparent 1px);
      background-size:36px 36px;
    }
    /* gradient orb chiaro */
    .co-orb {
      position:fixed;width:600px;height:600px;border-radius:50%;
      pointer-events:none;
    }
    .co-orb-a { display:none; }
    .co-orb-b { bottom:-250px;left:-250px; background:radial-gradient(circle, rgba(242,107,29,.07) 0%, transparent 70%); }

    .co-wrap {
      position:relative;z-index:2;
      max-width:min(1280px, 100%);margin:0 auto;
      padding:0 2rem;
    }

    /* hero testo — colonna sinistra, allineato a sinistra in cima */
    .co-hero {
      padding:0 0 1.5rem;
      text-align:left;
      transform:translateY(18px);opacity:0;
      transition:transform .45s .05s cubic-bezier(.16,1,.3,1), opacity .35s .05s ease;
    }
    #contatti-overlay.co-open .co-hero { transform:translateY(0);opacity:1; }
    .co-label {
      display:inline-flex;align-items:center;gap:.5rem;
      font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;
      letter-spacing:.18em;text-transform:uppercase;color:#F26B1D;
      margin-bottom:.6rem;
    }
    .co-label::before { content:'';width:5px;height:5px;border-radius:50%;background:#F26B1D;box-shadow:0 0 8px rgba(242,107,29,.5); }
    .co-h1 {
      font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2rem,3.5vw,3.2rem);
      font-weight:800;line-height:1.08;letter-spacing:-.03em;
      color:#0D0D0D;margin:0 0 .6rem;
    }
    .co-h1 em { font-style:normal;color:#F26B1D; }
    .co-sub {
      font-family:'Inter',sans-serif;font-size:1.1rem;
      color:rgba(13,13,13,.5);line-height:1.65;max-width:500px;margin:1.2rem 0 0;
    }

    /* grid principale — 2 colonne allineate */
    .co-grid {
      display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;
      align-items:stretch;
      transform:translateY(22px);opacity:0;
      transition:transform .5s .12s cubic-bezier(.16,1,.3,1), opacity .38s .12s ease;
      padding:3.5rem 0 3rem;
    }
    #contatti-overlay.co-open .co-grid { transform:translateY(0);opacity:1; }
    @media(max-width:768px){ .co-grid{grid-template-columns:1fr;gap:1.8rem;} }

    /* colonna sinistra: hero + info card, si allunga fino in fondo */
    .co-left-col { display:flex;flex-direction:column;gap:1.5rem; }
    .co-info-card {
      background:#fff;
      border:1px solid rgba(13,13,13,.07);
      border-radius:20px;padding:2rem;
      display:flex;flex-direction:column;gap:1.5rem;
      box-shadow:0 4px 24px rgba(0,0,0,.06);
      flex:1;
    }

    /* colonna destra: form occupa tutta l'altezza */
    .co-right-col { display:flex;flex-direction:column;gap:0; }
    .co-info-item { display:flex;gap:.9rem;align-items:flex-start; }
    .co-info-icon {
      width:40px;height:40px;border-radius:11px;flex-shrink:0;
      background:rgba(242,107,29,.08);border:1px solid rgba(242,107,29,.15);
      display:flex;align-items:center;justify-content:center;
    }
    .co-info-icon svg { width:17px;height:17px;stroke:#F26B1D;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
    .co-info-label { font-family:'Inter',sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(13,13,13,.35);margin:0 0 .25rem; }
    .co-info-val { font-family:'Inter',sans-serif;font-size:.9rem;color:rgba(13,13,13,.75);line-height:1.55;margin:0; }
    .co-info-val a { color:#F26B1D;text-decoration:none; }
    .co-hours { display:block; }
    .co-hours + .co-hours { margin-top:.75rem; }
    .co-hours-t { display:block;font-size:.78rem;font-weight:600;color:rgba(13,13,13,.9);margin-bottom:.1rem; }
    .co-info-val a:hover { text-decoration:underline; }

    /* form — occupa tutta l'altezza della colonna */
    .co-form-card {
      background:#fff;
      border:1px solid rgba(13,13,13,.07);
      border-radius:20px;padding:2rem;
      box-shadow:0 4px 24px rgba(0,0,0,.06);
      flex:1;display:flex;flex-direction:column;
    }
    .co-form-title {
      font-family:'Plus Jakarta Sans',sans-serif;font-size:1.15rem;font-weight:700;
      color:#0D0D0D;margin:0 0 1.6rem;
    }
    .co-form { display:flex;flex-direction:column;gap:1.1rem;flex:1; }
    .co-field textarea { min-height:0;flex:1; }
    .co-row { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
    @media(max-width:520px){ .co-row{grid-template-columns:1fr;} }
    .co-field { display:flex;flex-direction:column;gap:.4rem; }
    .co-field label {
      font-family:'Inter',sans-serif;font-size:.7rem;font-weight:600;
      letter-spacing:.12em;text-transform:uppercase;color:rgba(13,13,13,.4);
    }
    .co-field label .opt { font-weight:400;color:rgba(13,13,13,.28);letter-spacing:0;text-transform:none; }
    .co-field input,.co-field textarea {
      background:#f8f7f5;
      border:1px solid rgba(13,13,13,.1);
      border-radius:10px;padding:.8rem 1rem;
      font-family:'Inter',sans-serif;font-size:.9rem;
      color:#0D0D0D;outline:none;transition:border .25s,background .25s,box-shadow .25s;
      resize:none;
    }
    .co-field input::placeholder,.co-field textarea::placeholder { color:rgba(13,13,13,.3); }
    .co-field input:focus,.co-field textarea:focus {
      border-color:rgba(242,107,29,.5);
      background:#fff;
      box-shadow:0 0 0 3px rgba(242,107,29,.1);
    }
    .co-field textarea { min-height:200px; }

    /* bottone invio */
    .co-btn {
      display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
      background:#F26B1D;color:#fff;border:none;border-radius:12px;
      padding:.95rem 2rem;cursor:pointer;
      font-family:'Plus Jakarta Sans',sans-serif;font-size:.9rem;font-weight:700;
      letter-spacing:-.01em;transition:background .25s,transform .2s,box-shadow .25s;
      width:100%;margin-top:.3rem;
      box-shadow:0 4px 20px rgba(242,107,29,.3);
    }
    .co-btn:hover { background:#B84E12;transform:translateY(-2px);box-shadow:0 8px 28px rgba(242,107,29,.4); }
    .co-btn:active { transform:translateY(0); }
    .co-btn svg { width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;transition:transform .25s; }
    .co-btn:hover svg { transform:translateX(3px); }
    .co-btn.loading { opacity:.7;pointer-events:none; }

    /* feedback */
    .co-feedback {
      display:none;border-radius:10px;padding:1rem 1.2rem;
      font-family:'Inter',sans-serif;font-size:.88rem;
      margin-top:.4rem;
    }
    .co-feedback.success { background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.25);color:#16a34a; }
    .co-feedback.error { background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.2);color:#dc2626; }

    /* footer interno pagina contatti — sempre visibile, statico in fondo. Era margin-top:22rem
       (fascia vuota di ~350 px sotto le FAQ, da quando /contatti è una pagina normale) */
    .co-footer-wrap {
      margin-top:2.5rem;
      margin-left:calc(-50vw + 50%);
      margin-right:calc(-50vw + 50%);
      width:100vw;
    }
    .co-footer-wrap footer {
      background:#0D0D0D;
      border-radius:0 !important;
      margin:0 !important;
    }
    .co-divider { display:none; }
  

/* ══════════ overlay #chisiamo-overlay ══════════ */
/* ── OVERLAY BASE ── */
#chisiamo-overlay {
  position:fixed;inset:0;z-index:1001;
  background:#fff;overflow-y:auto;
  opacity:1;
  padding-top:68px;
}
#chisiamo-overlay.cs-open { opacity:1; }

/* ── HERO — sfondo bianco ── */
.cs-hero {
  background:#fff;
  padding:clamp(4rem,8vw,8rem) 0 clamp(3rem,6vw,6rem);
  position:relative;overflow:hidden;
}
.cs-hero-inner {
  max-width:var(--container);margin:0 auto;padding:0 2rem;
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:3rem;align-items:center;
}
@media(max-width:768px){.cs-hero-inner{grid-template-columns:1fr;gap:2rem;padding:0 1.5rem;}}
.cs-hero-left { }
.cs-hero-badge {
  display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(242,107,29,.08);border:1px solid rgba(242,107,29,.2);
  border-radius:40px;padding:.4rem 1.1rem;
  font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:#F26B1D;
  margin-bottom:1.6rem;
  opacity:0;transform:translateY(10px);
  transition:opacity .3s .04s ease, transform .4s .04s cubic-bezier(.16,1,.3,1);
}
.cs-hero-badge-dot {width:6px;height:6px;border-radius:50%;background:#F26B1D;animation:csBlink 1.8s ease-in-out infinite;}
@keyframes csBlink{0%,100%{opacity:1}50%{opacity:.3}}
#chisiamo-overlay.cs-open .cs-hero-badge{opacity:1;transform:translateY(0);}
.cs-hero-h1 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(2.2rem,4.5vw,3.8rem);
  font-weight:800;line-height:1.1;letter-spacing:-.03em;color:#0D0D0D;
  margin-bottom:1.2rem;
  opacity:0;transform:translateY(20px);
  transition:opacity .38s .1s ease, transform .5s .1s cubic-bezier(.16,1,.3,1);
}
#chisiamo-overlay.cs-open .cs-hero-h1{opacity:1;transform:translateY(0);}
.cs-hero-h1 em{font-style:normal;color:#F26B1D;}
.cs-hero-sub {
  font-family:'Inter',sans-serif;font-size:1.1rem;
  color:rgba(13,13,13,.52);line-height:1.72;max-width:480px;
  opacity:0;transform:translateY(12px);
  transition:opacity .35s .18s ease, transform .45s .18s cubic-bezier(.16,1,.3,1);
}
#chisiamo-overlay.cs-open .cs-hero-sub{opacity:1;transform:translateY(0);}
.cs-hero-right {
  position:relative;
  opacity:0;transform:translateX(28px);
  transition:opacity .42s .08s ease, transform .55s .08s cubic-bezier(.16,1,.3,1);
}
#chisiamo-overlay.cs-open .cs-hero-right{opacity:1;transform:translateX(0);}
.cs-hero-img-wrap {
  border-radius:24px;overflow:hidden;
  aspect-ratio:1.48;background:#EFEFED;
  position:relative;
  box-shadow:none;
  transition:transform .45s var(--ease), filter .45s var(--ease);
}
.cs-hero-img-wrap img {
  width:100%;height:100%;object-fit:cover;display:block;
  object-position:center center;
  transition:transform .6s var(--ease), filter .45s var(--ease);
}
.cs-hero-img-wrap:hover{transform:translateY(-4px);}
.cs-hero-img-wrap:hover img{transform:scale(1.035);filter:saturate(1.03);}
.cs-hero-img-badge {
  position:absolute;bottom:1.5rem;left:1.5rem;
  background:rgba(255,255,255,.95);backdrop-filter:blur(12px);
  border-radius:14px;padding:.85rem 1.2rem;
  display:flex;align-items:center;gap:.75rem;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.cs-hero-img-badge-icon {
  width:36px;height:36px;border-radius:10px;
  background:#F26B1D;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.cs-hero-img-badge-icon svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;}
.cs-hero-img-badge-text strong{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:.88rem;font-weight:700;color:#0D0D0D;}
.cs-hero-img-badge-text span{font-family:'Inter',sans-serif;font-size:.72rem;color:rgba(13,13,13,.45);}
/* floating orb */
.cs-hero::before {
  content:'';position:absolute;top:-200px;right:-200px;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(242,107,29,.07) 0%,transparent 65%);
  pointer-events:none;
}

/* ── STATS — sfondo grigio ── */
.cs-stats-section {
  background:#FAFAF9;
  padding:clamp(3rem,6vw,5rem) 0;
}
.cs-stats-inner {
  max-width:var(--container);margin:0 auto;padding:0 2rem;
}
@media(max-width:768px){.cs-stats-inner{padding:0 1.5rem;}}
.cs-stats-grid {
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid rgba(0,0,0,.07);border-radius:20px;overflow:hidden;
}
@media(max-width:768px){.cs-stats-grid{grid-template-columns:repeat(2,1fr);}}
.cs-stat {
  padding:2.5rem 2rem;text-align:center;background:#fff;
  border-right:1px solid rgba(0,0,0,.07);
  opacity:0;transform:translateY(20px);
  transition:opacity .55s var(--ease),transform .55s var(--ease), background .4s, box-shadow .4s;
  cursor:default;
  position:relative;
  overflow:hidden;
}
.cs-stat::after{
  content:'';
  position:absolute;
  inset:0;
  border:1px solid transparent;
  border-radius:inherit;
  pointer-events:none;
  transition:border-color .4s var(--ease), opacity .4s var(--ease);
  opacity:0;
}
.cs-stat:first-child{border-radius:20px 0 0 20px;}
.cs-stat:last-child{border-right:none;}
.cs-stat:last-child{border-radius:0 20px 20px 0;}
.cs-stat.cs-v{opacity:1;transform:translateY(0);}
.cs-stat:hover {
  background: rgba(242,107,29,.03);
  box-shadow: 0 0 24px -10px rgba(242,107,29,.16);
  z-index:1;
}
.cs-stat:hover::after{
  border-color:#F26B1D;
  opacity:1;
}
@media(max-width:768px){
  .cs-stat:first-child{border-radius:20px 0 0 0;}
  .cs-stat:nth-child(2){border-radius:0 20px 0 0;}
  .cs-stat:nth-child(3){border-radius:0 0 0 20px;}
  .cs-stat:last-child{border-radius:0 0 20px 0;}
}
.cs-stat .cs-stat-num, .cs-stat .cs-stat-label { transition: color .4s; }
.cs-stat:hover .cs-stat-num { color: #F26B1D; }
.cs-stat:hover .cs-stat-num span { color: #F26B1D; }
.cs-stat-num {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(2.2rem,3.8vw,3rem);
  font-weight:800;letter-spacing:-.04em;color:#0D0D0D;line-height:1;
  display:block;margin-bottom:.4rem;
}
.cs-stat-num span{color:#F26B1D;}
.cs-stat-label {
  font-family:'Inter',sans-serif;font-size:.75rem;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:rgba(13,13,13,.38);
}

/* ── STORIA — sfondo bianco ── */
.cs-story {
  background:#fff;
  padding:clamp(4rem,7vw,7rem) 0;
}
.cs-story-inner {
  max-width:var(--container);margin:0 auto;padding:0 2rem;
}
@media(max-width:768px){.cs-story-inner{padding:0 1.5rem;}}
.cs-section-label {
  font-family:'Inter',sans-serif;font-size:.7rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:#F26B1D;
  display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;
}
.cs-section-label::before,.cs-section-label::after{content:'';flex:1;height:1px;background:#F26B1D;max-width:40px;}
.cs-story-grid {
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;
  margin-top:0;
}
@media(max-width:768px){.cs-story-grid{grid-template-columns:1fr;gap:2.5rem;}}
.cs-story-img {
  border-radius:20px;overflow:hidden;
  aspect-ratio:1/1;background:#EFEFED;
  box-shadow:none;
  opacity:0;transform:translateX(-30px);
  transition:opacity .75s var(--ease),transform .75s var(--ease), filter .45s var(--ease);
  position:relative;
}
.cs-story-img.cs-v{opacity:1;transform:translateX(0);}
.cs-story-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease), filter .45s var(--ease);}
.cs-story-img:hover{transform:translateY(-4px);}
.cs-story-img:hover img{transform:scale(1.035);filter:saturate(1.03);}
.cs-story-img-caption {
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(transparent,rgba(0,0,0,.7));
  padding:2rem 1.5rem 1.2rem;
  font-family:'Inter',sans-serif;font-size:.8rem;color:rgba(255,255,255,.75);
}
.cs-story-text {
  opacity:0;transform:translateX(30px);
  transition:opacity .75s .15s var(--ease),transform .75s .15s var(--ease);
}
.cs-story-text.cs-v{opacity:1;transform:translateX(0);}
.cs-section-h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(1.8rem,3vw,2.8rem);
  font-weight:700;letter-spacing:-.02em;line-height:1.18;color:#0D0D0D;
  margin-bottom:1.2rem;
}
.cs-section-h2 em{font-style:normal;color:#F26B1D;}
.cs-story-text p {
  font-family:'Inter',sans-serif;font-size:1.1rem;
  color:rgba(13,13,13,.52);line-height:1.78;margin-bottom:.9rem;
}

/* ── NEXIA BADGE ── */
.cs-nexia {
  display:inline-flex;align-items:center;gap:.6rem;margin-top:.6rem;
  background:rgba(242,107,29,.07);border:1px solid rgba(242,107,29,.18);
  border-radius:40px;padding:.5rem 1.1rem;
  font-family:'Inter',sans-serif;font-size:.75rem;font-weight:600;
  color:#F26B1D;letter-spacing:.06em;text-transform:uppercase;
}

/* ── FOUNDER — sfondo grigio ── */
.cs-founder {
  background:#FAFAF9;
  padding:clamp(4rem,7vw,7rem) 0;
}
.cs-founder-inner {
  max-width:var(--container);margin:0 auto;padding:0 2rem;
}
@media(max-width:768px){.cs-founder-inner{padding:0 1.5rem;}}
.cs-founder-grid {
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;
  margin-top:0;
}
@media(max-width:768px){.cs-founder-grid{grid-template-columns:1fr;gap:2.5rem;}}
.cs-founder-text {
  opacity:0;transform:translateY(30px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.cs-founder-text.cs-v{opacity:1;transform:translateY(0);}
.cs-founder-quote-big {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(1.4rem,2.5vw,2rem);
  font-weight:600;line-height:1.35;letter-spacing:-.02em;color:#0D0D0D;
  margin-bottom:1.5rem;position:relative;padding-left:1.8rem;
}
.cs-founder-quote-big::before {
  content:'';position:absolute;left:0;top:.3em;
  width:2px;height:calc(100% - .3em);
  background:#F26B1D;
  border-radius:2px;
}
.cs-founder-by {
  display:flex;align-items:center;gap:1rem;
}
.cs-founder-avatar {
  width:52px;height:52px;border-radius:50%;flex-shrink:0;
  background:#F26B1D;
  display:flex;align-items:center;justify-content:center;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1rem;color:#fff;
  box-shadow:0 4px 16px rgba(242,107,29,.3);
}
.cs-founder-by-text strong{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:.9rem;font-weight:700;color:#0D0D0D;}
.cs-founder-by-text span{font-family:'Inter',sans-serif;font-size:.75rem;color:rgba(13,13,13,.42);}
.cs-founder-photo {
  border-radius:20px;overflow:hidden;
  aspect-ratio:4/5;background:#EFEFED;
  box-shadow:none;
  opacity:0;transform:translateY(30px) scale(.97);
  transition:opacity .75s .1s var(--ease),transform .75s .1s var(--ease), filter .45s var(--ease);
  position:relative;
}
.cs-founder-photo.cs-v{opacity:1;transform:translateY(0) scale(1);}
.cs-founder-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;transition:transform .6s var(--ease), filter .45s var(--ease);}
.cs-founder-photo:hover{transform:translateY(-4px) scale(1);}
.cs-founder-photo:hover img{transform:scale(1.035);filter:saturate(1.03);}
/* decorative orange shape */
.cs-founder-photo::after {
  content:'';position:absolute;top:-16px;right:-16px;
  width:80px;height:80px;border-radius:50%;
  background:rgba(242,107,29,.12);
  z-index:1;
}

/* ── VALUES — sfondo bianco ── */
.cs-values {
  background:#fff;
  padding:clamp(4rem,7vw,7rem) 0;
}
.cs-values-inner {
  max-width:var(--container);margin:0 auto;padding:0 2rem;
}
@media(max-width:768px){.cs-values-inner{padding:0 1.5rem;}}
.cs-values-header{text-align:center;margin-bottom:3.5rem;}
.cs-values-header .cs-section-label{justify-content:center;}
.cs-values-header .cs-section-label::before,.cs-values-header .cs-section-label::after{max-width:40px;}
.cs-values-h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(1.8rem,3vw,2.8rem);
  font-weight:700;letter-spacing:-.02em;line-height:1.18;color:#0D0D0D;
  margin-bottom:.6rem;
}
.cs-values-h2 em{font-style:normal;color:#F26B1D;}
.cs-values-sub{font-family:'Inter',sans-serif;font-size:1.1rem;color:rgba(13,13,13,.45);line-height:1.65;}
.cs-values-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
}
@media(max-width:900px){.cs-values-grid{grid-template-columns:1fr;}}
.cs-value-card {
  background:#fff;border:1.5px solid rgba(0,0,0,.08);
  border-radius:22px;padding:2.5rem 2rem;
  transition:border-color .3s,box-shadow .3s,transform .3s;
  opacity:0;transform:translateY(28px);
  transition:opacity .6s var(--ease),transform .6s var(--ease),border-color .3s,box-shadow .3s;
}
.cs-value-card:hover{border-color:#F26B1D;box-shadow:0 16px 48px rgba(242,107,29,.12);transform:translateY(-6px) !important;}
.cs-value-card.cs-v{opacity:1;transform:translateY(0);}
.cs-value-icon {
  width:52px;height:52px;border-radius:16px;
  background:var(--clr-orange);border:none;
  display:flex;align-items:center;justify-content:center;margin-bottom:1.4rem;
  box-shadow:0 4px 14px rgba(242,107,29,.35);
}
.cs-value-icon svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.cs-value-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.1rem;font-weight:700;color:#0D0D0D;margin-bottom:.55rem;}
.cs-value-desc{font-family:'Inter',sans-serif;font-size:1.1rem;color:rgba(13,13,13,.45);line-height:1.72;}

/* ── TEAM PHOTO STRIP — sfondo grigio ── */
.cs-gallery {
  background:#FAFAF9;
  padding:clamp(3rem,6vw,5rem) 0;overflow:hidden;
}
.cs-gallery-inner {
  max-width:var(--container);margin:0 auto;padding:0 2rem;
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;
}
@media(max-width:768px){.cs-gallery-inner{grid-template-columns:1fr 1fr;padding:0 1.5rem;}}
.cs-gallery-item {
  border-radius:16px;overflow:hidden;background:#EFEFED;
  opacity:0;transform:translateY(24px);
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}
.cs-gallery-item.cs-v{opacity:1;transform:translateY(0);}
.cs-gallery-item:first-child{grid-row:span 2;}
.cs-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;min-height:200px;}
.cs-gallery-item:hover img{transform:scale(1.03);transition:transform .5s var(--ease);}
.cs-gallery-item img{transition:transform .5s var(--ease);}

/* ── CTA PRE-FOOTER — arancione identico homepage ── */
.cs-cta {
  background:var(--clr-orange);
  padding:var(--section-pad) 0;
  position:relative;overflow:hidden;text-align:center;
}
.cs-cta::before {
  content:'';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:700px;height:700px;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 65%);
}
.cs-cta::after {
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(255,255,255,.15) 1px,transparent 1px);
  background-size:32px 32px;
}
.cs-cta-inner{position:relative;z-index:1;max-width:var(--container);margin:0 auto;padding:0 2rem;}
@media(max-width:768px){.cs-cta-inner{padding:0 1.5rem;}}
.cs-cta-overline {
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.7rem;font-weight:500;letter-spacing:.14em;
  color:rgba(255,255,255,.75);text-transform:uppercase;
  font-family:'Inter',sans-serif;margin-bottom:1rem;
}
.cs-cta-overline::before,.cs-cta-overline::after{content:'';width:20px;height:1px;background:rgba(255,255,255,.5);}
.cs-cta h2 {
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;
  font-size:clamp(2rem,3.8vw,3.2rem);
  letter-spacing:-.02em;line-height:1.15;color:#fff;margin-bottom:1rem;
}
.cs-cta p{font-family:'Inter',sans-serif;font-size:1.1rem;color:rgba(255,255,255,.75);max-width:480px;margin:0 auto 2rem;}
.cs-cta-btn {
  display:inline-flex;align-items:center;gap:.55rem;
  background:transparent;color:#fff;
  font-family:'Inter',sans-serif;font-weight:600;font-size:1rem;
  padding:1rem 2.4rem;border-radius:11px;
  border:2px solid rgba(255,255,255,.6);
  transition:background .22s,border-color .22s,box-shadow .22s,transform .22s;
}
.cs-cta-btn:hover{background:rgba(255,255,255,.12);border-color:#fff;box-shadow:0 8px 32px rgba(0,0,0,.15);transform:translateY(-2px);}

/* ── SCROLL REVEAL helper ── */
.cs-sr{opacity:0;transform:translateY(30px);transition:opacity .65s var(--ease),transform .65s var(--ease);}
.cs-sr.cs-v{opacity:1;transform:translateY(0);}

/* ══════════ overlay #servizi-overlay ══════════ */
#servizi-overlay { position:fixed;inset:0;z-index:1001;background:#f8f7f5;overflow-y:auto;overscroll-behavior:contain;opacity:0;padding-top:68px;transition:opacity .35s ease;display:flex;flex-direction:column; }
#servizi-overlay.sv-open { opacity:1; }
#servizi-overlay > footer { margin-top:auto; }
.sv-hero { background:#fff;padding:clamp(3rem,6vw,5.5rem) 0 clamp(2.5rem,4vw,4rem);position:relative;overflow:hidden;text-align:center; }
.sv-hero::before { content:"";position:absolute;top:-120px;left:50%;transform:translateX(-50%);width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(242,107,29,.08) 0%,transparent 65%);pointer-events:none; }
.sv-hero-inner { max-width:820px;margin:0 auto;padding:0 1.5rem;position:relative; }
.sv-badge { display:inline-flex;align-items:center;gap:.5rem;background:rgba(242,107,29,.1);border:1px solid rgba(242,107,29,.22);border-radius:40px;padding:.42rem 1.15rem;font-family:'Inter',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#F26B1D;margin-bottom:1.4rem;opacity:0;transform:translateY(10px);transition:opacity .35s .05s ease,transform .45s .05s cubic-bezier(.16,1,.3,1); }
.sv-badge::before { content:"";width:6px;height:6px;border-radius:50%;background:#F26B1D;animation:csBlink 1.8s ease-in-out infinite; }
#servizi-overlay.sv-open .sv-badge { opacity:1;transform:translateY(0); }
.sv-hero h1 { font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:800;line-height:1.12;letter-spacing:-.025em;color:#0D0D0D;margin:0 0 1rem;opacity:0;transform:translateY(20px);transition:opacity .4s .12s ease,transform .5s .12s cubic-bezier(.16,1,.3,1); }
#servizi-overlay.sv-open .sv-hero h1 { opacity:1;transform:translateY(0); }
.sv-hero h1 span { color:#F26B1D; }
.sv-hero p { font-family:'Inter',sans-serif;font-size:1.05rem;line-height:1.65;color:rgba(13,13,13,.7);max-width:640px;margin:0 auto;opacity:0;transform:translateY(20px);transition:opacity .4s .22s ease,transform .5s .22s cubic-bezier(.16,1,.3,1); }
#servizi-overlay.sv-open .sv-hero p { opacity:1;transform:translateY(0); }

.sv-body-section { padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(3.5rem,6vw,5.5rem); }
.sv-inner { max-width:var(--container);margin:0 auto;padding:0 2rem; }
.sv-inner--narrow { max-width:900px; }

/* ── LISTA SERVIZI (griglia card cliccabili) ── */
.sv-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem; }
.sv-card { display:flex;flex-direction:column;gap:1rem;padding:1.7rem 1.6rem 1.5rem;background:#fff;border:1px solid rgba(13,13,13,.08);border-radius:18px;box-shadow:0 4px 20px rgba(13,13,13,.03);text-decoration:none;color:inherit;transition:transform .3s,box-shadow .3s,border-color .3s;position:relative;overflow:hidden; }
.sv-card:hover { transform:translateY(-4px);box-shadow:0 20px 44px -12px rgba(13,13,13,.14);border-color:rgba(242,107,29,.35); }
.sv-card-icon { width:52px;height:52px;border-radius:13px;background:linear-gradient(135deg,#F26B1D 0%,#ff8544 100%);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(242,107,29,.28); }
.sv-card-icon svg { width:26px;height:26px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }
.sv-card-title { font-family:'Plus Jakarta Sans',sans-serif;font-size:1.2rem;font-weight:700;color:#0D0D0D;margin:0;line-height:1.25;letter-spacing:-.01em; }
.sv-card-sub { font-family:'Inter',sans-serif;font-size:.92rem;color:rgba(13,13,13,.65);margin:0;line-height:1.55;flex:1; }
.sv-card-more { display:inline-flex;align-items:center;gap:6px;font-family:'Plus Jakarta Sans',sans-serif;font-size:.87rem;font-weight:600;color:#F26B1D;margin-top:.2rem; }
.sv-card-more svg { width:14px;height:14px;transition:transform .25s; }
.sv-card:hover .sv-card-more svg { transform:translateX(3px); }
.sv-empty { grid-column:1/-1;font-family:'Inter',sans-serif;font-size:.92rem;color:rgba(13,13,13,.5);text-align:center;padding:2rem 1rem;font-style:italic;border:1px dashed rgba(13,13,13,.14);border-radius:12px; }

/* ── DETTAGLIO SERVIZIO ── */
.sv-back { display:inline-flex;align-items:center;gap:8px;font-family:'Inter',sans-serif;font-size:.9rem;font-weight:500;color:rgba(13,13,13,.65);text-decoration:none;margin-bottom:2rem;padding:8px 14px;border-radius:999px;background:rgba(13,13,13,.04);transition:background .2s,color .2s; }
.sv-back:hover { background:rgba(242,107,29,.1);color:#F26B1D; }
.sv-back svg { width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round; }
.sv-detail-grid { display:grid;grid-template-columns:1.35fr 1fr;gap:3rem;align-items:start; }
@media (max-width:900px){ .sv-detail-grid { grid-template-columns:1fr;gap:2rem; } }
.sv-detail-lead { font-family:'Inter',sans-serif;font-size:1.05rem;line-height:1.7;color:rgba(13,13,13,.75);margin:0 0 2rem; }
.sv-detail h2 { font-family:'Plus Jakarta Sans',sans-serif;font-size:1.15rem;font-weight:700;color:#0D0D0D;margin:1.8rem 0 1rem;letter-spacing:-.01em;text-transform:uppercase;letter-spacing:.03em;font-size:.95rem; }
.sv-detail ul { list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-direction:column;gap:.9rem; }
.sv-detail ul li { display:flex;align-items:flex-start;gap:.8rem;font-family:'Inter',sans-serif;font-size:.96rem;line-height:1.6;color:rgba(13,13,13,.78); }
.sv-detail ul li svg { flex-shrink:0;width:20px;height:20px;margin-top:2px;stroke:#F26B1D;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round; }
.sv-detail ul li strong { color:#0D0D0D;font-weight:600; }

/* ── FORM RICHIESTA ── */
.sv-form-card { background:#fff;border:1px solid rgba(13,13,13,.08);border-radius:20px;padding:2rem 1.8rem;box-shadow:0 12px 36px -12px rgba(13,13,13,.08);position:sticky;top:88px; }
.sv-form-eyebrow { font-family:'Plus Jakarta Sans',sans-serif;font-size:.72rem;font-weight:700;color:#F26B1D;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.6rem; }
.sv-form-title { font-family:'Plus Jakarta Sans',sans-serif;font-size:1.25rem;font-weight:700;color:#0D0D0D;margin:0 0 .5rem;line-height:1.3;letter-spacing:-.01em; }
.sv-form-desc { font-family:'Inter',sans-serif;font-size:.88rem;line-height:1.55;color:rgba(13,13,13,.6);margin:0 0 1.4rem; }
.sv-form { display:flex;flex-direction:column;gap:.85rem; }
.sv-form label { font-family:'Inter',sans-serif;font-size:.82rem;font-weight:600;color:rgba(13,13,13,.7);margin-bottom:.3rem;display:block; }
.sv-form label .opt { font-weight:400;color:rgba(13,13,13,.45);font-size:.78rem; }
.sv-form input, .sv-form textarea { width:100%;padding:12px 14px;border:1.5px solid rgba(13,13,13,.12);border-radius:10px;font-family:'Inter',sans-serif;font-size:.94rem;color:#0D0D0D;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box; }
.sv-form input:focus, .sv-form textarea:focus { outline:none;border-color:#F26B1D;box-shadow:0 0 0 3px rgba(242,107,29,.14); }
.sv-form textarea { resize:vertical;min-height:110px;font-family:inherit; }
.sv-form-submit { display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;background:#F26B1D;color:#fff;border:0;border-radius:999px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s;box-shadow:0 6px 18px rgba(242,107,29,.3);margin-top:.5rem; }
.sv-form-submit:hover { transform:translateY(-2px);box-shadow:0 10px 26px rgba(242,107,29,.42);background:#ff7f30; }
.sv-form-submit:disabled { opacity:.65;cursor:not-allowed;transform:none; }
.sv-form-submit svg { width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round; }
.sv-form-note { font-family:'Inter',sans-serif;font-size:.78rem;color:rgba(13,13,13,.5);text-align:center;margin-top:.9rem; }
.sv-form-feedback { display:none;padding:12px 14px;border-radius:10px;font-family:'Inter',sans-serif;font-size:.88rem;margin-top:.9rem; }
.sv-form-feedback.success { display:block;background:rgba(56,161,105,.1);color:#22795a;border:1px solid rgba(56,161,105,.25); }
.sv-form-feedback.error { display:block;background:rgba(216,53,53,.1);color:#a11e1e;border:1px solid rgba(216,53,53,.25); }

@media (max-width: 640px) {
  .sv-card { padding:1.4rem 1.3rem 1.3rem; }
  .sv-form-card { padding:1.5rem 1.2rem;position:static; }
}


/* «Azzera date» accanto al titolo del passo 2 (compare solo con una data selezionata) */
.pren-cal-reset {
  margin-left: auto; font-family: var(--font-body); font-size: .72rem; font-weight: 600; letter-spacing: .04em;
  text-transform: none; color: var(--clr-orange, #F26B1D); background: transparent;
  border: 1px solid currentColor; border-radius: 999px; padding: .25rem .75rem; cursor: pointer;
  transition: background .15s, color .15s;
}
.pren-cal-reset:hover { background: var(--clr-orange, #F26B1D); color: #fff; }
.pren-cal-reset[hidden] { display: none; }
