:root{--page-title-display:none;}/* Start custom CSS *//* ============================================================
   LANDING ENRICA PASTORI — CSS v2
   ============================================================ */

body {
  --ink:      #15504C;
  --ink-soft: #4A7B77;
  --azione:   #D3691F;
  --azione-h: #B2571A;
  --acqua:    #77C6C7;
  --fascia:   #EAF6F6;
  --bordo:    #B9DFDF;
  --bianco:   #FFFFFF;

  color: var(--ink);
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  /* spazio per la barra CTA fissa in fondo */
  padding-bottom: 84px;
}
body *, body *::before, body *::after { box-sizing: border-box; }
body p { margin: 0 0 1em; }
body p:last-child { margin-bottom: 0; }
body strong { font-weight: 600; }

body h1, body h2, body h3 {
  font-family: Archivo, 'Helvetica Neue', Arial, sans-serif;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.14;
  margin: 0 0 0.55em;
  text-wrap: balance;
}
body h1 { font-size: 1.95rem; }
body h2 { font-size: 1.45rem; }
body h3 { font-size: 1.08rem; letter-spacing: -0.01em; margin-bottom: 0.3em; }

/* --- impaginazione: mobile --- */
.ep-sezione { padding: 44px 20px; }
.ep-sezione--fascia { background: var(--fascia); }
.ep-wrap, .ep-wrap--stretto { max-width: 100%; margin: 0; }

/* --- testata con logo: presenza discreta, non è l'elemento forte --- */
.ep-testata {
  background: var(--bianco);
  padding: 14px 20px 6px;
  display: flex; align-items: center; justify-content: flex-start;
}
.ep-testata img {
  display: block;
  height: 38px; width: auto;
  max-width: 60%;
}

/* --- hero --- */
.ep-hero { background: var(--bianco); border-bottom: 1px solid var(--bordo); padding-top: 32px; }
.ep-hero .ep-sotto { font-size: 1.05rem; color: var(--ink-soft); }

.ep-stelle {
  display: inline-flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  font-family: Archivo, Arial, sans-serif; font-size: 0.9rem;
  margin-bottom: 18px;
  padding: 6px 0; min-height: 44px;
  text-decoration: none; color: var(--ink);
}
.ep-stelle:hover span:not(.ep-glifi) { text-decoration: underline; }
.ep-stelle b { font-size: 1rem; font-weight: 700; }
.ep-stelle span:not(.ep-glifi) { color: var(--ink-soft); }
.ep-stelle .ep-glifi { color: var(--azione); letter-spacing: 1px; }

.ep-fatti { list-style: none; margin: 22px 0 0; padding: 0; }
.ep-fatti li {
  padding: 11px 0;
  border-top: 1px solid var(--bordo);
  font-family: Archivo, Arial, sans-serif;
  font-size: 0.94rem;
  font-weight: 500;
  line-height: 1.4;
}
.ep-fatti li:last-child { border-bottom: 1px solid var(--bordo); }

/* --- avviso appuntamento: elemento ricorrente --- */
.ep-appuntamento {
  font-family: Archivo, Arial, sans-serif;
  font-size: 0.9rem;
  line-height: 1.45;
  font-weight: 700;
  color: var(--bianco);
  background: var(--ink);
  border-left: 5px solid var(--acqua);
  padding: 14px 16px;
  margin: 22px 0 0;
}
.ep-appuntamento span { display: block; font-weight: 400; color: #B7E2E2; margin-top: 4px; }

/* --- situazioni --- */
.ep-situazioni { margin-top: 4px; }
.ep-situazioni p {
  border-left: 3px solid var(--acqua);
  padding: 3px 0 3px 16px;
  margin: 16px 0;
}

/* --- slot immagini --- */
.ep-slot {
  background: var(--fascia);
  border: 1px dashed var(--bordo);
  display: flex; align-items: center; justify-content: center;
  text-align: center;
  padding: 18px;
  font-family: Archivo, Arial, sans-serif;
  font-size: 0.78rem;
  color: var(--ink-soft);
  overflow: hidden;
}
.ep-slot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-slot--wide { aspect-ratio: 1 / 1; }
.ep-slot--ritratto { aspect-ratio: 4 / 5; }
.ep-slot--studio { aspect-ratio: 3 / 2; margin-bottom: 20px; }
.ep-figura { margin: 20px 0 0; }

/* --- chi è --- */
.ep-citazione {
  font-size: 1.18rem; line-height: 1.4;
  border-top: 2px solid var(--ink);
  padding-top: 16px; margin-top: 24px;
}
.ep-firma { font-family: Archivo, Arial, sans-serif; font-size: 0.86rem; color: var(--ink-soft); margin-top: 10px; }

/* --- passaggi --- */
.ep-passi { counter-reset: passo; margin-top: 26px; }
.ep-passo { display: grid; grid-template-columns: 34px 1fr; gap: 14px; padding: 18px 0; border-top: 1px solid var(--bordo); }
.ep-passo:last-of-type { border-bottom: 1px solid var(--bordo); }
.ep-passo::before {
  counter-increment: passo;
  content: counter(passo);
  font-family: Archivo, Arial, sans-serif;
  font-size: 1.3rem; font-weight: 700;
  color: var(--ink); line-height: 1.2;
}
.ep-passo p { margin: 0; color: var(--ink-soft); }

/* --- prezzo --- */
.ep-prezzo { margin-top: 32px; padding: 22px 20px; background: var(--bianco); border: 1px solid var(--bordo); }
.ep-prezzo-titolo { font-family: Archivo, Arial, sans-serif; font-size: 1.28rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; margin: 0; }
.ep-prezzo ul { list-style: none; margin: 18px 0 0; padding: 0; }
.ep-prezzo li { padding-left: 24px; position: relative; margin-bottom: 9px; }
.ep-prezzo li:last-child { margin-bottom: 0; }
.ep-prezzo li::before {
  content: ""; position: absolute; left: 3px; top: 0.6em;
  width: 9px; height: 9px; border-radius: 50%; background: var(--acqua);
}

/* --- form: unico elemento in rilievo --- */
.ep-form-box {
  background: var(--bianco);
  border: 1px solid var(--bordo);
  border-top: 5px solid var(--azione);
  padding: 22px 18px;
  margin-top: 30px;
  box-shadow: 0 14px 32px -26px rgba(21,80,76,0.5);
}
.ep-sezione--fascia .ep-form-box { border-color: #A6D6D7; border-top-color: var(--azione); }
.ep-form-box h2, .ep-form-box h3, .ep-form-box .ep-form-titolo {
  font-family: Archivo, 'Helvetica Neue', Arial, sans-serif;
  font-weight: 700; letter-spacing: -0.02em; line-height: 1.14;
  font-size: 1.28rem; margin: 0 0 0.35em;
}
.ep-form-box .ep-nota { font-size: 0.92rem; color: var(--ink-soft); margin-bottom: 18px; }

/* stili per il widget Form di Elementor inserito dentro .ep-form-box */
.ep-form-box .elementor-field-group { margin-bottom: 13px; }
.ep-form-box .elementor-field-label {
  font-family: Archivo, Arial, sans-serif !important;
  font-size: 0.86rem !important; font-weight: 600 !important;
  color: var(--ink) !important; margin-bottom: 5px !important;
}
/* 17px minimo: sotto i 16px iOS zooma da solo sul focus */
.ep-form-box .elementor-field-textual,
.ep-form-box input[type="text"],
.ep-form-box input[type="email"],
.ep-form-box input[type="tel"],
.ep-form-box select,
.ep-form-box textarea {
  width: 100%;
  font-family: 'Source Serif 4', Georgia, serif !important;
  font-size: 17px !important;
  min-height: 52px;
  padding: 14px !important;
  border: 1px solid var(--bordo) !important;
  border-radius: 2px !important;
  background: #FBFDFD !important;
  color: var(--ink) !important;
  appearance: none; -webkit-appearance: none;
}
.ep-form-box select { background-image: none; }
.ep-form-box textarea { min-height: 96px; line-height: 1.45; resize: vertical; }
.ep-form-box textarea::placeholder { color: #8FAEAC; }
.ep-form-box .elementor-field-textual:focus,
.ep-form-box input:focus, .ep-form-box select:focus, .ep-form-box textarea:focus {
  outline: 3px solid rgba(211,105,31,0.4);
  outline-offset: 1px;
  border-color: var(--azione) !important;
}
.ep-form-box .elementor-button,
.ep-form-box button[type="submit"] {
  width: 100%;
  font-family: Archivo, Arial, sans-serif !important;
  font-size: 1.1rem !important; font-weight: 700 !important;
  letter-spacing: -0.01em;
  min-height: 56px;
  padding: 16px 20px !important;
  background: var(--azione) !important;
  color: var(--bianco) !important;
  border: 0 !important; border-radius: 2px !important;
  cursor: pointer;
  transition: background 140ms ease;
}
.ep-form-box .elementor-button:hover,
.ep-form-box button[type="submit"]:hover { background: var(--azione-h) !important; }
.ep-form-box .elementor-field-type-acceptance,
.ep-form-box .ep-consenso { font-size: 0.83rem; line-height: 1.45; color: var(--ink-soft); }
.ep-form-box .ep-consenso { display: flex; gap: 12px; align-items: flex-start; margin: 16px 0; }
.ep-form-box .ep-consenso input { width: 22px; height: 22px; margin-top: 2px; flex: 0 0 auto; }
.ep-form-box a { color: var(--azione); }

/* --- chiusura --- */
.ep-studio { font-family: Archivo, Arial, sans-serif; font-size: 0.95rem; line-height: 1.65; margin-top: 34px; }
.ep-studio h3 { margin-bottom: 0.4em; }
.ep-studio a { color: var(--azione); font-weight: 600; }
.ep-tel {
  display: block; text-align: center;
  min-height: 54px; padding: 15px;
  margin-top: 18px;
  border: 1.5px solid var(--azione);
  font-family: Archivo, Arial, sans-serif; font-weight: 700; font-size: 1.02rem;
  color: var(--azione) !important; text-decoration: none;
}

/* --- barra CTA fissa (solo mobile) --- */
.ep-barra {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,0.97);
  border-top: 1px solid var(--bordo);
  box-shadow: 0 -6px 20px -14px rgba(21,80,76,0.5);
}
.ep-barra a {
  display: flex; align-items: center; justify-content: center;
  min-height: 54px; padding: 14px 18px;
  background: var(--azione); color: var(--bianco) !important;
  font-family: Archivo, Arial, sans-serif; font-weight: 700; font-size: 1.05rem;
  letter-spacing: -0.01em;
  text-decoration: none; border-radius: 2px;
}
body :focus-visible { outline: 3px solid var(--azione); outline-offset: 2px; }
html { scroll-behavior: smooth; }
#prenota { scroll-margin-top: 20px; }

/* ============================================================
   DESKTOP — da 880px in su
   ============================================================ */
@media (min-width: 880px) {
  body { font-size: 18px; line-height: 1.65; padding-bottom: 0; }
  body h1 { font-size: 3.1rem; }
  body h2 { font-size: 2rem; }
  body h3 { font-size: 1.15rem; }
  body p { max-width: 62ch; }

  .ep-sezione { padding: 80px 24px; }
  .ep-wrap { max-width: 1080px; margin: 0 auto; }
  .ep-wrap--stretto { max-width: 720px; margin: 0 auto; }

  .ep-testata { padding: 22px 24px 0; }
  .ep-testata img { height: 46px; }
  .ep-hero { padding-top: 44px; }
  .ep-hero .ep-wrap,
  .ep-chi .ep-wrap,
  .ep-chiusura .ep-wrap {
    display: grid;
    gap: 60px;
    align-items: start;
  }
  .ep-hero .ep-wrap { grid-template-columns: 1.05fr 0.95fr; }
  .ep-chi .ep-wrap { grid-template-columns: 1fr 1fr; align-items: center; }
  .ep-chiusura .ep-wrap { grid-template-columns: 0.95fr 1.05fr; }
  .ep-hero h1 { max-width: 20ch; }
  .ep-hero .ep-sotto { font-size: 1.12rem; max-width: 46ch; }

  .ep-situazioni { display: grid; grid-template-columns: 1fr 1fr; gap: 0 44px; }
  .ep-situazioni p { padding-left: 18px; max-width: 46ch; }

  .ep-slot--wide { aspect-ratio: 16 / 9; }
  .ep-citazione { font-size: 1.35rem; max-width: 26ch; }

  .ep-form-box { padding: 32px; margin-top: 0; }
  .ep-form-box .ep-nota { max-width: 40ch; }
  .ep-prezzo { padding: 28px 30px; }
  .ep-prezzo-titolo { font-size: 1.4rem; }
  .ep-passo { grid-template-columns: 42px 1fr; gap: 20px; padding: 22px 0; }
  .ep-studio { margin-top: 0; font-size: 0.98rem; }
  .ep-tel { display: inline-block; }
  .ep-barra { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body * { transition: none !important; animation: none !important; }
}

/* ============================================================
   COMPATIBILITA' ELEMENTOR
   Elementor avvolge ogni widget in div propri: queste regole
   evitano che quei wrapper rompano griglie e spaziature.
   ============================================================ */

/* i contenitori Elementor non devono aggiungere larghezze o padding propri */
.ep-sezione > .e-con-inner,
.ep-testata > .e-con-inner { max-width: none; padding: 0; }

/* il widget HTML dentro una griglia deve comportarsi da colonna */
.ep-wrap > .elementor-widget-html { min-width: 0; }

/* annulla i margini che Elementor applica agli ultimi widget */
.ep-form-box > .elementor-widget:last-child { margin-bottom: 0; }

/* il widget Form non deve avere spazio sopra: la nota lo precede già */
.ep-form-box .elementor-widget-form { margin-top: 0; }

/* logo: altezza fissa a prescindere dal contenitore */
.ep-logo {
  display: block;
  height: 38px;
  width: auto;
  max-width: 60%;
}

@media (min-width: 880px) {
  .ep-wrap > img { height: 80px !important; }
}


/* ============================================================
   RINFORZO MOBILE — da AGGIUNGERE in fondo al CSS personalizzato
   (non sostituisce landing-enrica-v2.css: si somma)

   Elementor applica ai propri contenitori padding, larghezze
   massime e regole sulle immagini con specificita' alta. Queste
   regole le neutralizzano dove servono, per far valere il
   layout mobile-first della landing.
   ============================================================ */

html, body { overflow-x: hidden; max-width: 100%; }
body * { max-width: 100%; }

/* --- 2. i contenitori Elementor non aggiungono spaziature -----
   Il padding laterale e' gia' nelle classi ep-sezione: se si
   somma a quello di Elementor, su schermi da 360px il testo
   resta schiacciato in una colonna stretta. */
.ep-sezione, .ep-testata { width: 100%; }
.ep-sezione > .e-con-inner,
.ep-testata > .e-con-inner,
.ep-chiusura > .e-con-inner {
  max-width: none;
  padding: 0;
  width: 100%;
}
.elementor-widget-html { width: 100%; }

/* --- 3. immagini: batte .elementor img { height: auto } -------
   Le classi ep-slot usano aspect-ratio e object-fit: senza
   !important Elementor le annulla e le foto escono deformate
   o altissime. */
img.ep-slot,
.ep-slot img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}
img.ep-slot--wide     { aspect-ratio: 1 / 1 !important; height: auto !important; }
img.ep-slot--ritratto { aspect-ratio: 4 / 5 !important; height: auto !important; }
img.ep-slot--studio   { aspect-ratio: 3 / 2 !important; height: auto !important; }

/* logo: altezza fissa, non deve mai scalare con la larghezza */
.ep-testata img, .ep-wrap > img.ep-logo {
  height: 38px !important;
  width: auto !important;
  max-width: 60% !important;
  display: block;
}

/* --- 4. campi del form ---------------------------------------
   17px e' la soglia: sotto i 16px iOS ingrandisce la pagina al
   tocco sul campo e l'utente si perde. 52px di altezza e'
   la misura minima comoda per un dito. */
.ep-form-box .elementor-field-textual,
.ep-form-box input[type="text"],
.ep-form-box input[type="email"],
.ep-form-box input[type="tel"],
.ep-form-box textarea,
.ep-form-box select {
  font-size: 17px !important;
  min-height: 52px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 14px !important;
  border-radius: 2px !important;
}
.ep-form-box textarea { min-height: 96px !important; }

/* il campo occupa sempre tutta la riga: le colonne del form
   Elementor su mobile devono impilarsi, non affiancarsi */
.ep-form-box .elementor-field-group {
  width: 100% !important;
  flex-basis: 100% !important;
  max-width: 100% !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
  margin-bottom: 13px !important;
}

/* bottone: piena larghezza e area di tocco generosa */
.ep-form-box .elementor-button,
.ep-form-box button[type="submit"] {
  width: 100% !important;
  min-height: 56px !important;
  font-size: 1.1rem !important;
  justify-content: center;
}

/* checkbox privacy: bersaglio abbastanza grande da centrare */
.ep-form-box input[type="checkbox"] {
  width: 22px !important;
  height: 22px !important;
  min-height: 0 !important;
  flex: 0 0 auto;
}

/* --- 5. barra CTA fissa --------------------------------------
   Lo spazio in fondo evita che la barra copra le ultime righe;
   safe-area serve sugli iPhone con la tacca. */
body { padding-bottom: 92px !important; }
.ep-barra {
  padding-bottom: calc(10px + env(safe-area-inset-bottom)) !important;
  z-index: 999;
}
.ep-barra a { min-height: 54px; }

/* --- 6. titoli: evitano di sfondare lo schermo ---------------- */
h1, .ep-hero h1 {
  font-size: clamp(1.6rem, 7.5vw, 1.95rem) !important;
  line-height: 1.15;
  overflow-wrap: break-word;
}
h2 { font-size: clamp(1.3rem, 5.6vw, 1.45rem) !important; }

/* --- 7. desktop: ripristina tutto da 880px in su ------------- */
@media (min-width: 880px) {
  body { padding-bottom: 0 !important; }
  .ep-testata img, .ep-wrap > img.ep-logo { height: 46px !important; }
  img.ep-slot--wide { aspect-ratio: 16 / 9 !important; }
  h1, .ep-hero h1 { font-size: 3.1rem !important; }
  h2 { font-size: 2rem !important; }
  .ep-barra { display: none !important; }
}/* End custom CSS */