/* ============================================================================
   LAPEDONA – IL BORGO PARLANTE · DESIGN SYSTEM
   Redesign in stile sito turistico moderno (rif. VisitFermo).
   Brand verde mantenuto + neutri caldi (crema/sabbia/ink), tipografia
   serif elegante per i titoli + sans pulito per il testo, griglie a card,
   molto respiro. Responsive desktop / tablet / mobile.
   NB: non cambia i contenuti; agisce su stile, ritmo e interazioni.
   ============================================================================ */

:root{
  /* — Accento GIALLO-ORO (stile VisitFermo). Le variabili "green" sono
       mantenute come nome ma ora contengono i toni oro: così tutte le
       regole esistenti adottano l'accento oro senza riscrivere i selettori. — */
  --lpd-green:       #C9A227;   /* oro: bottoni, link, accenti */
  --lpd-green-deep:  #9E7A1B;   /* oro scuro: hover/link */
  --lpd-green-soft:  #F6ECC9;   /* oro pallido: sfondi tenui */
  --lpd-gold:        #C9A227;
  /* — Neutri — */
  --lpd-ink:         #1C1B17;   /* near-black caldo, titoli/nav su bianco */
  --lpd-body:        #4A4943;   /* testo corrente */
  --lpd-muted:       #87857C;   /* testo secondario */
  --lpd-cream:       #FCFBF8;   /* sfondo chiaro pagina */
  --lpd-sand:        #F4F1EA;   /* sfondo sezione alternata */
  --lpd-line:        #E8E3D8;   /* bordi sottili */
  /* — Sistema — */
  --lpd-radius:      14px;
  --lpd-radius-sm:   10px;
  --lpd-shadow:      0 10px 30px rgba(28,27,23,.08);
  --lpd-shadow-lg:   0 20px 46px rgba(28,27,23,.14);
  --lpd-ease:        .35s cubic-bezier(.4,0,.2,1);
  --lpd-head:        'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ============================================================
   1 · TIPOGRAFIA
   Titoli in serif elegante (unifica anche l'hero), testo in sans.
   Le DIMENSIONI dei titoli Elementor restano quelle del progetto;
   qui cambio famiglia, interlinea e spaziatura per coerenza.
   ============================================================ */
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  color:var(--lpd-body);
}
h1,h2,h3,h4,h5,h6,
.elementor-heading-title,
.entry-title,.ast-archive-title,.widget-title{
  font-family:var(--lpd-head) !important;
  font-weight:600;
  letter-spacing:.2px;
  line-height:1.16;
}
p{ line-height:1.75; }

/* Titoli a livello tema (blog, pagine senza builder): scala fluida responsive */
.entry-title{ font-size:clamp(2rem,1.2rem + 3vw,3.4rem); }
.ast-archive-title{ font-size:clamp(1.8rem,1.1rem + 2.6vw,3rem); }

html{ scroll-behavior:smooth; }
a{ transition:color var(--lpd-ease), opacity var(--lpd-ease); }
::selection{ background:rgba(201,162,39,.22); }

/* ============================================================
   2 · BOTTONI
   Pieni nel verde brand, pill morbida, ombra e micro-interazione.
   (Non forzo il colore: rispetto eventuali bottoni chiari su scuro,
    ma standardizzo forma, ombra e hover.)
   ============================================================ */
.elementor-button,.ast-button,.ast-custom-button,.wp-block-button__link,
input[type=submit],button[type=submit],button.wpforms-submit,.wpforms-submit{
  background-color:var(--lpd-gold) !important;
  color:#1C1B17 !important;
  border-color:var(--lpd-gold) !important;
  border-radius:50px !important;
  font-weight:600 !important;
  letter-spacing:.3px;
  padding-block:.7em !important;
  padding-inline:1.9em !important;
  box-shadow:0 8px 20px rgba(28,27,23,.14);
  position:relative; overflow:hidden;
  transition:transform var(--lpd-ease),box-shadow var(--lpd-ease),
             background-color var(--lpd-ease),color var(--lpd-ease),filter var(--lpd-ease) !important;
}
.elementor-button:hover,.ast-button:hover,.ast-custom-button:hover,.wp-block-button__link:hover,
input[type=submit]:hover,button[type=submit]:hover,button.wpforms-submit:hover,.wpforms-submit:hover{
  background-color:var(--lpd-green-deep) !important; color:#fff !important;
  transform:translateY(-3px) !important;
  box-shadow:0 16px 32px rgba(28,27,23,.26) !important;
}
/* riflesso luminoso al passaggio */
.elementor-button::after,.ast-button::after,.wp-block-button__link::after{
  content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-20deg);transition:left .6s ease;pointer-events:none;
}
.elementor-button:hover::after,.ast-button:hover::after,.wp-block-button__link:hover::after{ left:150%; }

/* Mobile: bottoni "vai all'itinerario" centrati rispetto al testo */
@media (max-width:767px){
  .elementor-widget-button:has(a.elementor-button[href*="itinerario"]) .elementor-button-wrapper,
  .elementor-button-wrapper:has(> a.elementor-button[href*="itinerario"]){
    text-align:center !important;
    display:flex;justify-content:center;
  }
}

/* ============================================================
   3 · LINK DEL MENU – underline animato
   ============================================================ */
.main-header-menu .menu-link{ position:relative; }
.main-header-menu .menu-link::after{
  content:"";position:absolute;left:0;bottom:.35em;width:100%;height:2px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform var(--lpd-ease);opacity:.85;
}
.main-header-menu .menu-item:hover>.menu-link::after,
.main-header-menu .current-menu-item>.menu-link::after{ transform:scaleX(1); }

/* ============================================================
   4 · IMMAGINI – stile editoriale turistico
   Angoli morbidi, overflow contenuto, zoom + ombra al passaggio.
   ============================================================ */
.wp-block-image img,.elementor-widget-image img{
  border-radius:var(--lpd-radius);
  transition:transform var(--lpd-ease),box-shadow var(--lpd-ease);
}
.elementor-widget-image{ overflow:hidden;border-radius:var(--lpd-radius); }
.wp-block-image:hover img,.elementor-widget-image:hover img{
  transform:scale(1.05);
  box-shadow:var(--lpd-shadow-lg);
}
.wp-block-gallery img,.elementor-image-gallery img,.gallery img{ border-radius:var(--lpd-radius-sm); }
/* logo/header/footer: nessun arrotondamento o zoom */
.site-header img,.site-footer img,.ast-site-identity img,.custom-logo{
  border-radius:0 !important; transform:none !important; box-shadow:none !important;
}

/* Titolo del sito NON visibile accanto al logo (resta nel <title>/SEO e nei
   dati strutturati: lo nascondo visivamente, non con display:none) */
.ast-site-identity .ast-site-title-wrap,
.site-header .site-title,
.site-header .site-description{
  position:absolute !important;
  width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* Effetto "card immagine con overlay" (VisitFermo) per i link-immagine */
a:has(> img),figure.wp-block-image > a{ display:block;position:relative;overflow:hidden;border-radius:var(--lpd-radius); }

/* ============================================================
   5 · CARD CONTENUTO (blog/archivio Astra) + box generici
   ============================================================ */
.ast-separate-container .ast-article-post,article.post{
  border-radius:var(--lpd-radius);overflow:hidden;background:#fff;
  box-shadow:var(--lpd-shadow);border:1px solid var(--lpd-line);
  transition:transform var(--lpd-ease),box-shadow var(--lpd-ease);
}
.ast-separate-container .ast-article-post:hover{ transform:translateY(-6px);box-shadow:var(--lpd-shadow-lg); }
.ast-article-post .ast-article-inner{ border:0 !important; }

/* ============================================================
   6 · FORM (WPForms)
   ============================================================ */
.wpforms-field input,.wpforms-field textarea,.wpforms-field select{
  border-radius:var(--lpd-radius-sm) !important;
  border:1px solid var(--lpd-line) !important;
  padding:13px 15px !important;background:#fff !important;
  transition:border-color var(--lpd-ease),box-shadow var(--lpd-ease) !important;
}
.wpforms-field input:focus,.wpforms-field textarea:focus,.wpforms-field select:focus{
  border-color:var(--lpd-green) !important;
  box-shadow:0 0 0 4px rgba(201,162,39,.18) !important;outline:none !important;
}

/* ============================================================
   7 · HEADER – bianco/chiaro, sticky, shrink allo scroll (stile VisitFermo)
   (logo nero -> sfondo bianco)
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:999;
  transition:box-shadow var(--lpd-ease),background-color var(--lpd-ease);
}
/* sfondo bianco su tutte le barre dell'header Astra */
.site-header, .ast-primary-header-bar, .main-header-bar,
.ast-above-header, .ast-below-header{
  background-color:#fff !important;
  border-color:var(--lpd-line) !important;
}
.lpd-scrolled .site-header{ box-shadow:0 6px 24px rgba(28,27,23,.12); }
/* voci di menu scure, hover in oro */
.main-header-menu .menu-link,
.main-header-menu .menu-link:hover,
.ast-header-break-point .main-header-menu .menu-link{
  color:var(--lpd-ink) !important; font-weight:600; letter-spacing:.3px;
}
.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .current-menu-item > .menu-link{ color:var(--lpd-gold) !important; }
.main-header-menu .menu-link::after{ background:var(--lpd-gold); }
/* toggle menu mobile scuro */
.ast-mobile-menu-buttons-minimal, .menu-toggle,
.ast-button-wrap .menu-toggle .menu-toggle-icon{ color:var(--lpd-ink) !important; }
/* sottomenù a tendina: sfondo bianco leggibile + ombra */
.main-header-menu .sub-menu,
.ast-desktop .main-header-menu .sub-menu{
  background-color:#fff !important;
  border:1px solid var(--lpd-line) !important;
  border-top:2px solid var(--lpd-gold) !important;
  box-shadow:0 14px 34px rgba(28,27,23,.16) !important;
  border-radius:0 0 10px 10px;
}
.main-header-menu .sub-menu .menu-link{ color:var(--lpd-ink) !important; }
.main-header-menu .sub-menu .menu-item:hover > .menu-link,
.main-header-menu .sub-menu .current-menu-item > .menu-link{
  color:var(--lpd-gold) !important; background-color:var(--lpd-green-soft) !important;
}
.main-header-menu .sub-menu .menu-link::after{ display:none; } /* niente underline nei dropdown */
/* header compatto: il logo è verticale, quindi determina l'altezza.
   Lo proporziono (width:auto mantiene il rapporto). */
.site-header .custom-logo{
  transition:max-height var(--lpd-ease),width var(--lpd-ease);
  max-height:150px;width:auto !important;height:auto !important;
}
.lpd-scrolled .site-header .custom-logo{ max-height:104px; }
.main-header-bar{ padding-top:8px !important;padding-bottom:8px !important; }
.lpd-scrolled .main-header-bar{ padding-top:4px !important;padding-bottom:4px !important; }
.site-primary-header-wrap .main-header-bar{ min-height:0 !important; }

/* ============================================================
   8 · FOOTER – respiro e gerarchia
   ============================================================ */
.site-footer{ font-size:15px; }
.site-footer .widget-title{ letter-spacing:.4px;margin-bottom:1em; }
.site-footer a{ transition:color var(--lpd-ease),opacity var(--lpd-ease); }
.site-footer a:hover{ opacity:.7; }

/* ============================================================
   9 · RITMO DELLE SEZIONI · sfondi alternati caldi
   Applico crema/sabbia ai contenitori top-level Elementor SENZA
   sfondo proprio (così non sovrascrivo le sezioni già colorate).
   ============================================================ */
.entry-content,.ast-container{ color:var(--lpd-body); }
.elementor-section.elementor-section-boxed > .elementor-container{ }

/* ============================================================
   10 · EFFETTI – comparsa allo scroll, barra avanzamento, torna-su
   ============================================================ */
body.lpd-anim .lpd-reveal{
  opacity:0;transform:translateY(34px);
  transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);
  will-change:opacity,transform;
}
body.lpd-anim .lpd-reveal.lpd-in{ opacity:1;transform:none; }

.lpd-progress{
  position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--lpd-green),#7cc465);
  z-index:100000;transition:width .08s linear;pointer-events:none;
}
.lpd-top{
  position:fixed;right:24px;bottom:24px;width:52px;height:52px;
  border:0;border-radius:50%;cursor:pointer;
  background:var(--lpd-gold);color:#1C1B17;font-size:24px;font-weight:700;line-height:1;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(28,27,23,.35);
  opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity var(--lpd-ease),transform var(--lpd-ease),visibility var(--lpd-ease),filter var(--lpd-ease);
  z-index:99998;
}
.lpd-top.show{ opacity:1;visibility:visible;transform:none; }
.lpd-top:hover{ transform:translateY(-3px);filter:brightness(1.08); }

/* Icon-box animati */
.elementor-widget-icon-box,.elementor-widget-icon{ transition:transform var(--lpd-ease); }
.elementor-widget-icon-box:hover{ transform:translateY(-6px); }
.elementor-widget-icon-box:hover .elementor-icon,
.elementor-widget-icon:hover .elementor-icon{ transform:scale(1.12) rotate(-4deg);transition:transform var(--lpd-ease); }

/* Accessibilità */
a:focus-visible,button:focus-visible,input:focus-visible,
.elementor-button:focus-visible,.wp-block-button__link:focus-visible{
  outline:2px solid var(--lpd-green);outline-offset:2px;
}

/* ============================================================
   12 · HERO HOME (sezione 5957ae6) – stile turistico VisitFermo
   Full-height centrato, overlay a gradiente, gerarchia tipografica,
   CTA e indicatore di scroll. Scoped alla home (.elementor-536).
   ============================================================ */
.elementor-536 .elementor-element.elementor-element-5957ae6{
  min-height:90vh !important;
  padding-top:90px !important;
  padding-bottom:120px !important;
  align-items:center !important;
  justify-content:center !important;
  position:relative;
}
/* overlay: da piatto a gradiente (foto più viva + testo leggibile in basso) */
.elementor-536 .elementor-element.elementor-element-5957ae6::before{
  background-color:transparent !important;
  background-image:linear-gradient(180deg,
      rgba(12,20,6,.25) 0%, rgba(12,20,6,.50) 52%, rgba(12,20,6,.82) 100%) !important;
}
/* "Benvenuti a" -> sopra-titolo con filetto */
.elementor-536 .elementor-element-a4a2591 .elementor-heading-title{
  font-family:'IBM Plex Sans',sans-serif !important;
  text-transform:uppercase; letter-spacing:4px;
  font-size:clamp(12px,2vw,15px) !important; font-weight:600; opacity:.95;
}
.elementor-536 .elementor-element-a4a2591 .elementor-heading-title::after{
  content:""; display:block; width:48px; height:2px; margin:16px auto 0;
  background:rgba(255,255,255,.85);
}
/* "Lapedona" -> display serif grande */
.elementor-536 .elementor-element-2f521c9 .elementor-heading-title{
  font-size:clamp(3rem,8vw,6.5rem) !important;
  line-height:1 !important; color:#fff !important; font-weight:700 !important;
  margin:.12em 0 !important; text-shadow:0 6px 34px rgba(0,0,0,.35);
}
/* "IL BORGO PARLANTE" -> sotto-titolo spaziato */
.elementor-536 .elementor-element-4300097 .elementor-heading-title{
  font-family:'IBM Plex Sans',sans-serif !important;
  text-transform:uppercase; letter-spacing:6px; font-weight:500;
  font-size:clamp(13px,2.4vw,18px) !important; color:#fff !important; opacity:.92;
  margin-top:.5em !important;
}
/* CTA hero (iniettata via JS) */
.lpd-hero-cta{
  align-self:center; display:inline-block; margin-top:36px;
  padding:14px 40px; border-radius:50px;
  background:var(--lpd-gold); color:#1C1B17 !important; font-weight:700; letter-spacing:.4px;
  text-decoration:none; box-shadow:0 12px 28px rgba(0,0,0,.3);
  transition:transform var(--lpd-ease),box-shadow var(--lpd-ease),background var(--lpd-ease),color var(--lpd-ease);
}
.lpd-hero-cta:hover{ transform:translateY(-3px); box-shadow:0 18px 36px rgba(0,0,0,.4); background:var(--lpd-green-deep); }
/* indicatore di scroll animato (iniettato via JS) */
.lpd-scrolldown{
  position:absolute; left:50%; bottom:26px; margin-left:-15px;
  width:30px; height:30px; cursor:pointer; z-index:3; animation:lpdBounce 1.8s infinite;
}
.lpd-scrolldown i{
  display:block; width:18px; height:18px; margin:0 auto;
  border-right:2px solid rgba(255,255,255,.9); border-bottom:2px solid rgba(255,255,255,.9);
  transform:rotate(45deg);
}
@keyframes lpdBounce{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(10px) } }

@media (max-width:768px){
  .elementor-536 .elementor-element.elementor-element-5957ae6{ min-height:82vh !important; padding-top:70px !important; padding-bottom:90px !important; }
}
@media (prefers-reduced-motion: reduce){ .lpd-scrolldown{ animation:none; } }

/* ============================================================
   13 · GRIGLIE A CARD DELLA HOME (stile turistico)
   ============================================================ */

/* "Scopri il Borgo" (b21877d) usa il SISTEMA CARD UNIFICATO (sezione 17),
   come tutte le altre schede del sito, per coerenza e dimensioni uniformi. */

/* "Dove soggiornare" usa il SISTEMA ICON-BOX UNIFICATO (sezione 17b),
   identico in tutto il sito. */

/* ============================================================
   14 · COERENZA SEZIONI HOME (overline, intro, itinerari)
   ============================================================ */

/* Sopra-titolo ricorrente "lapedona, il borgo parlante" -> overline uniforme */
.elementor-536 .elementor-element-f8a7922 .elementor-heading-title,
.elementor-536 .elementor-element-8001a79 .elementor-heading-title,
.elementor-536 .elementor-element-db95071 .elementor-heading-title{
  font-family:'IBM Plex Sans',sans-serif !important;
  text-transform:uppercase !important; letter-spacing:3px !important;
  font-weight:600 !important; font-size:13px !important; opacity:.95;
}
/* su fondo chiaro (Dove soggiornare) l'overline va in oro accento */
.elementor-536 .elementor-element-db95071 .elementor-heading-title{ color:var(--lpd-green) !important; }

/* Sezione eventi ora CHIARA: titoli scuri/oro (prima erano crema su scuro) */
.elementor-536 .elementor-element-8001a79 .elementor-heading-title{ color:var(--lpd-gold) !important; }
.elementor-536 .elementor-element-97e5a73 .elementor-heading-title{ color:var(--lpd-ink) !important; }
.elementor-536 .elementor-element-f1630ed .elementor-divider-separator{ border-color:var(--lpd-gold) !important; }

/* Itinerari (1254f2a): righe leggibili e spaziate */
.elementor-536 .elementor-element-1254f2a .elementor-widget-text-editor{
  color:rgba(255,255,255,.88) !important; line-height:1.7;
}
.elementor-536 .elementor-element-1254f2a .elementor-icon i,
.elementor-536 .elementor-element-1254f2a .elementor-icon svg{ color:#fff !important; fill:#fff !important; }

/* ============================================================
   15 · BANNER PAGINE INTERNE (Il borgo, Le chiese, Piazze…)
   Stesso trattamento dell'hero: overlay piatto -> gradiente.
   Tocca solo le sezioni che HANNO già un overlay (::before esiste
   solo in quel caso), quindi non altera pagine senza banner.
   Esclude la home (front page) che ha il suo hero dedicato.
   ============================================================ */
body:not(.home) .elementor > .e-con.e-parent:first-child::before{
  background-color:transparent !important;
  background-image:linear-gradient(180deg,
      rgba(12,20,6,.32) 0%, rgba(12,20,6,.52) 55%, rgba(12,20,6,.80) 100%) !important;
}
/* banner come hero: altezza coerente + contenuto centrato verticalmente */
body:not(.home) .elementor > .e-con.e-parent:first-child{
  min-height:46vh !important;
  justify-content:center !important;
  padding-top:64px !important;
  padding-bottom:64px !important;
}
/* titolo del banner: respiro + ombra (sfrutta la scala serif globale) */
body:not(.home) .elementor > .e-con.e-parent:first-child .elementor-heading-title{
  text-shadow:0 4px 26px rgba(0,0,0,.3);
  font-size:clamp(2.4rem,5vw,4.2rem) !important;
}
/* KIDS: la prima sezione ha sfondo a tinta piena (non una foto), quindi
   niente gradiente "banner" che sembrerebbe un'ombra. */
.page-id-1630 .elementor > .e-con.e-parent:first-child::before{
  background-image:none !important; background-color:transparent !important;
}
@media (max-width:768px){
  body:not(.home) .elementor > .e-con.e-parent:first-child{ min-height:36vh !important; padding-top:48px !important; padding-bottom:48px !important; }
}

/* ============================================================
   16 · RIFINITURE (icon-box a badge, footer)
   ============================================================ */

/* (badge icon-box ora nel sistema unificato, sezione 17b) */

/* Footer: filetto accento + social con micro-interazione */
.site-footer{ position:relative; }
.site-footer::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--lpd-green); z-index:3;
}
.site-footer .ast-builder-social-element{ transition:transform var(--lpd-ease), opacity var(--lpd-ease); }
.site-footer .ast-builder-social-element:hover{ transform:translateY(-3px); }

/* ===== Header: tutto su una riga, allineato verticalmente ===== */
.main-header-bar .site-header-section,
.site-header-primary-section-left,
.site-header-primary-section-center,
.site-header-primary-section-right,
.site-header-primary-section-right .ast-builder-layout-element,
.main-header-bar .ast-builder-menu{
  align-items:center !important;
}
/* la sezione destra (menu-2 + social + bandiere) su una sola riga */
.site-header-primary-section-right{ flex-wrap:nowrap !important; }
.main-header-bar .main-header-menu{ flex-wrap:nowrap; align-items:center; }

/* ===== Switcher lingua IT/EN (bandiere flat SVG) ===== */
/* allineato con i social nell'header (stesso contenitore) */
.site-header .header-social-inner-wrap{ display:flex; align-items:center; }
.lpd-lang{ display:inline-flex; align-items:center; align-self:center; gap:14px; margin-left:14px; }
.lpd-lang button{
  background:none; border:0; cursor:pointer; padding:0; line-height:0;
  border-radius:3px; overflow:hidden; opacity:.5; filter:grayscale(.6);
  box-shadow:0 1px 4px rgba(28,27,23,.25);
  transition:opacity var(--lpd-ease), transform var(--lpd-ease), filter var(--lpd-ease), box-shadow var(--lpd-ease);
}
.lpd-lang button svg{ display:block; width:28px; height:19px; }
.lpd-lang button:hover{ opacity:1; transform:translateY(-2px); filter:none; }
.lpd-lang button.active{ opacity:1; filter:none; }

/* Nasconde la barra/banner di Google Translate */
.goog-te-banner-frame, .skiptranslate iframe, iframe.goog-te-banner-frame{ display:none !important; }
body{ top:0 !important; position:static !important; }
#goog-gt-tt, .goog-te-balloon-frame{ display:none !important; }
.goog-text-highlight{ background:none !important; box-shadow:none !important; }
/* elemento Google invisibile ma renderizzato (così il selettore si inizializza) */
#google_translate_element{ position:absolute !important; left:-9999px !important; top:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* Icone social: visibili su ogni sfondo */
.site-header .ast-builder-social-element,
.site-header .ast-builder-social-element svg,
.site-header .ast-builder-social-element .ahfb-svg-iconset{
  color:var(--lpd-ink) !important; fill:var(--lpd-ink) !important;
}
.site-header .ast-builder-social-element:hover,
.site-header .ast-builder-social-element:hover svg{ color:var(--lpd-gold) !important; fill:var(--lpd-gold) !important; }
.site-footer .ast-builder-social-element,
.site-footer .ast-builder-social-element svg,
.site-footer .ast-builder-social-element .ahfb-svg-iconset{
  color:#fff !important; fill:#fff !important;
}

/* ============================================================
   17 · SISTEMA CARD SITO (pagine interne: Le Chiese, Centro storico…)
   Ogni image-box diventa una card (foto piena + titolo sotto).
   Griglia automatica: i contenitori che contengono image-box
   diventano flex-grid; titoli/pulsanti nello stesso contenitore
   restano a tutta larghezza (così non finiscono in linea con le card).
   ============================================================ */
.e-con:has(> .elementor-widget-image-box),
.e-con-inner:has(> .elementor-widget-image-box){
  display:grid !important;
  /* colonne a LARGHEZZA FISSA -> ogni card è identica su tutto il sito,
     centrate nella riga (niente vuoti squilibrati con poche card). */
  grid-template-columns:repeat(auto-fill, minmax(min(100%, 290px), 290px));
  justify-content:center;
  grid-auto-rows:1fr;            /* tutte le righe della stessa altezza */
  gap:26px; align-items:stretch;
}
.e-con:has(> .elementor-widget-image-box) > .elementor-widget-image-box,
.e-con-inner:has(> .elementor-widget-image-box) > .elementor-widget-image-box{
  margin:0; height:100%;
}
/* titoli/pulsanti nello stesso contenitore: tutta la larghezza */
.e-con:has(> .elementor-widget-image-box) > :not(.elementor-widget-image-box),
.e-con-inner:has(> .elementor-widget-image-box) > :not(.elementor-widget-image-box){
  grid-column:1 / -1;
}
/* il contenitore interno riempie la cella della griglia (altezze uniformi) */
.e-con:has(> .elementor-widget-image-box) > .elementor-widget-image-box > .elementor-widget-container,
.e-con-inner:has(> .elementor-widget-image-box) > .elementor-widget-image-box > .elementor-widget-container{
  height:100%;
}
/* aspetto card */
.elementor-widget-image-box .elementor-image-box-wrapper{
  display:block; margin:0; height:100%; background:#fff;
  border:1px solid var(--lpd-line); border-radius:var(--lpd-radius);
  overflow:hidden; box-shadow:var(--lpd-shadow);
  transition:transform var(--lpd-ease), box-shadow var(--lpd-ease);
}
.elementor-widget-image-box:hover .elementor-image-box-wrapper{
  transform:translateY(-6px); box-shadow:var(--lpd-shadow-lg);
}
.elementor-widget-image-box .elementor-image-box-img{
  margin:0 !important; width:100% !important; aspect-ratio:1/1; overflow:hidden;
}
.elementor-widget-image-box .elementor-image-box-img img{
  width:100% !important; height:100% !important; object-fit:cover; border-radius:0 !important;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.elementor-widget-image-box:hover .elementor-image-box-img img{ transform:scale(1.06); box-shadow:none; }
.elementor-widget-image-box .elementor-image-box-content{ padding:18px 20px 22px; text-align:left; }
.elementor-widget-image-box .elementor-image-box-title{
  margin:0 0 6px !important; color:var(--lpd-ink) !important; line-height:1.25;
  font-size:clamp(18px,1vw + 12px,23px) !important;
}
.elementor-widget-image-box .elementor-image-box-title a{ color:var(--lpd-ink) !important; }
.elementor-widget-image-box .elementor-image-box-description{ color:var(--lpd-muted); line-height:1.6; }
/* "Scopri →" SOLO sulle card con titolo linkato (place card "Scopri il borgo"):
   le foto di galleria sono image-box senza titolo/link -> nessun "Scopri". */
.elementor-widget-image-box:has(.elementor-image-box-title a) .elementor-image-box-content::after{
  content:"Scopri \2192"; display:inline-block; margin-top:10px;
  font-family:'IBM Plex Sans',sans-serif; font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--lpd-gold); font-weight:700; transition:transform .35s ease;
}
.elementor-widget-image-box:has(.elementor-image-box-title a):hover .elementor-image-box-content::after{ transform:translateX(6px); }

/* ============================================================
   17b · SISTEMA ICON-BOX SITO ("Dove soggiornare" e simili)
   Identico in tutto il sito: griglia uniforme + card + badge circolare.
   ESCLUSA la pagina "Dove soggiornare" (1712) su richiesta: lì le icon-box
   restano come nell'originale (body:not(.page-id-1712)).
   ============================================================ */
body:not(.page-id-1712) .e-con:has(> .elementor-widget-icon-box),
body:not(.page-id-1712) .e-con-inner:has(> .elementor-widget-icon-box){
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(min(100%, 290px), 290px));
  justify-content:center;
  grid-auto-rows:1fr;
  gap:22px; align-items:stretch;
}
body:not(.page-id-1712) .e-con:has(> .elementor-widget-icon-box) > .elementor-widget-icon-box,
body:not(.page-id-1712) .e-con-inner:has(> .elementor-widget-icon-box) > .elementor-widget-icon-box{ margin:0; height:100%; }
body:not(.page-id-1712) .e-con:has(> .elementor-widget-icon-box) > :not(.elementor-widget-icon-box),
body:not(.page-id-1712) .e-con-inner:has(> .elementor-widget-icon-box) > :not(.elementor-widget-icon-box){ grid-column:1 / -1; }
body:not(.page-id-1712) .e-con:has(> .elementor-widget-icon-box) > .elementor-widget-icon-box > .elementor-widget-container,
body:not(.page-id-1712) .e-con-inner:has(> .elementor-widget-icon-box) > .elementor-widget-icon-box > .elementor-widget-container{ height:100%; }
/* card */
body:not(.page-id-1712) .elementor-widget-icon-box .elementor-icon-box-wrapper{
  background:#fff; border:1px solid var(--lpd-line); border-radius:var(--lpd-radius);
  padding:34px 26px; height:100%; box-shadow:var(--lpd-shadow);
  transition:transform var(--lpd-ease), box-shadow var(--lpd-ease);
}
body:not(.page-id-1712) .elementor-widget-icon-box:hover{ transform:none !important; } /* il lift lo fa la card */
body:not(.page-id-1712) .elementor-widget-icon-box:hover .elementor-icon-box-wrapper{ transform:translateY(-6px); box-shadow:var(--lpd-shadow-lg); }
body:not(.page-id-1712) .elementor-widget-icon-box .elementor-icon-box-title{ margin-bottom:6px; }
/* badge circolare oro */
body:not(.page-id-1712) .elementor-widget-icon-box .elementor-icon-box-icon{ margin-bottom:18px; }
body:not(.page-id-1712) .elementor-widget-icon-box .elementor-icon{
  width:70px; height:70px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:var(--lpd-green-soft) !important; color:var(--lpd-gold) !important;
  font-size:28px !important; transition:background var(--lpd-ease), color var(--lpd-ease), transform var(--lpd-ease);
}
body:not(.page-id-1712) .elementor-widget-icon-box .elementor-icon svg{ width:30px; height:30px; fill:currentColor; }
body:not(.page-id-1712) .elementor-widget-icon-box:hover .elementor-icon{ background:var(--lpd-gold) !important; color:#fff !important; }

/* (Le 3 pagine Centro storico/Le Chiese/Fuori le mura ora hanno la colonna
   "Dove soggiornare" all'80% come Il borgo, quindi le card sono grandi e
   allineate dal sistema unificato: nessuna regola speciale necessaria.) */

/* "Le Chiese": schede (image-box) in fila per 3 su desktop */
@media (min-width:1025px){
  .page-id-1290 .e-con:has(> .elementor-widget-image-box),
  .page-id-1290 .e-con-inner:has(> .elementor-widget-image-box){
    grid-template-columns:repeat(3, 1fr) !important;
    justify-content:stretch !important;
  }
}


/* ============================================================
   17c · PAGINA CONTATTI (540) – sezione "Contatti utili" pulita
   ============================================================ */
/* annulla la griglia/card del sistema icon-box solo in questa sezione */
.page-id-540 .elementor-element-5525978 .e-con:has(> .elementor-widget-icon-box),
.page-id-540 .elementor-element-5525978 .e-con-inner:has(> .elementor-widget-icon-box){
  display:block !important;
}
.page-id-540 .elementor-element-5525978 .elementor-icon-box-wrapper{
  background:none !important; border:0 !important; box-shadow:none !important; padding:0 !important; height:auto !important;
}
.page-id-540 .elementor-element-5525978 .elementor-widget-icon-box:hover .elementor-icon-box-wrapper{
  transform:none !important; box-shadow:none !important;
}
/* contenuti centrati */
.page-id-540 .elementor-element-5525978 .elementor-widget-icon,
.page-id-540 .elementor-element-5525978 .elementor-icon-box-content{ text-align:center; }
/* icone in badge circolare oro */
.page-id-540 .elementor-element-5525978 .elementor-widget-icon .elementor-icon{
  width:62px; height:62px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:var(--lpd-green-soft); color:var(--lpd-gold) !important;
  font-size:24px; margin-bottom:12px; transition:background var(--lpd-ease), color var(--lpd-ease);
}
.page-id-540 .elementor-element-5525978 .elementor-widget-icon a:hover .elementor-icon,
.page-id-540 .elementor-element-5525978 .elementor-widget-icon:hover .elementor-icon{
  background:var(--lpd-gold); color:#fff !important;
}
.page-id-540 .elementor-element-5525978 .elementor-widget-icon .elementor-icon svg{ width:26px; height:26px; fill:currentColor; }
/* etichetta + valore */
.page-id-540 .elementor-element-5525978 .elementor-icon-box-title{
  margin:0 0 2px !important; text-transform:uppercase; letter-spacing:1.2px;
  font-size:13px !important; color:var(--lpd-muted) !important;
}
.page-id-540 .elementor-element-5525978 .elementor-icon-box-description{
  font-size:17px !important; color:var(--lpd-ink) !important; font-weight:600; display:block !important;
}
/* colonna social (Facebook/Instagram) affiancati */
.page-id-540 .elementor-element-972a0f3{ text-align:center; }
.page-id-540 .elementor-element-972a0f3 .elementor-widget-icon{ display:inline-block; width:auto; margin:0 6px; }

/* "Contatti utili" IN COLONNA (voci impilate verticalmente) */
.page-id-540 .elementor-element-5525978,
.page-id-540 .elementor-element-5525978 > .e-con-inner{
  flex-direction:column !important; align-items:center !important; gap:26px !important;
}
.page-id-540 .elementor-element-5525978 .elementor-element-830bcf0,
.page-id-540 .elementor-element-5525978 .elementor-element-ee7bf99,
.page-id-540 .elementor-element-5525978 .elementor-element-972a0f3{
  width:100% !important; max-width:480px !important;
}

/* Contatti utili (container 4b692e0): le 2 schede ESATTAMENTE uguali
   (stessa larghezza e altezza) e allineate a sinistra. */
@media (min-width:768px){
  .page-id-540 .elementor-element-4b692e0,
  .page-id-540 .elementor-element-4b692e0 > .e-con-inner{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 300px)) !important;
    justify-content:start !important; align-items:stretch !important; gap:22px !important;
  }
  .page-id-540 .elementor-element-4b692e0 .elementor-widget-icon-box{ height:100% !important; margin:0 !important; }
  .page-id-540 .elementor-element-4b692e0 .elementor-widget-icon-box > .elementor-widget-container,
  .page-id-540 .elementor-element-4b692e0 .elementor-icon-box-wrapper{ height:100% !important; }
  .page-id-540 .elementor-element-4b692e0 .elementor-widget-spacer{ grid-column:1 / -1 !important; }
}

/* Itinerario dentro le mura (1891): nascondi il titolo WP duplicato sulla
   fascia grigia (la pagina ha già il titolo nel banner Elementor). */
.page-id-1891 .entry-header.ast-header-without-markup,
.page-id-1917 .entry-header.ast-header-without-markup,
.page-id-1891 .ast-header-without-markup .entry-title,
.page-id-1917 .ast-header-without-markup .entry-title{ display:none !important; }

/* Mappe WP Google Maps: frame moderno (angoli arrotondati + ombra) */
.wpgmza_map, .wpgmza-inner-map, .wpgmza_map .gm-style{ border-radius:16px; }
.wpgmza_map{ overflow:hidden; box-shadow:0 14px 40px rgba(28,27,23,.14); }

/* "Dentro le mura" (1891): responsive – stack colonne + niente overflow */
.page-id-1891 .lap-itinerario, .page-id-1917 .lap-itinerario,
.page-id-1891 .lap-mappa, .page-id-1917 .lap-mappa,
.page-id-1891 .elementor-widget-shortcode, .page-id-1917 .elementor-widget-shortcode{ max-width:100%; }
.page-id-1891 .lap-mappa, .page-id-1917 .lap-mappa{ overflow:hidden; }
@media (max-width:921px){
  .page-id-1891 .elementor-element-416e35ad, .page-id-1917 .elementor-element-416e35ad,
  .page-id-1891 .elementor-element-731b7fb9, .page-id-1917 .elementor-element-731b7fb9{ flex-direction:column !important; }
  .page-id-1891 .elementor-element-19b6778b, .page-id-1917 .elementor-element-19b6778b,
  .page-id-1891 .elementor-element-5cc96e6d, .page-id-1917 .elementor-element-5cc96e6d{ width:100% !important; }
}

/* Itinerario: pulsante "Apri su Google Maps" + link nei popup */
.lap-gmaps-route{
  display:inline-flex; align-items:center; gap:6px; margin-top:14px;
  background:var(--lpd-gold); color:#fff !important; text-decoration:none;
  font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:14px;
  padding:11px 22px; border-radius:50px; box-shadow:0 6px 16px rgba(28,27,23,.18);
  transition:transform var(--lpd-ease), box-shadow var(--lpd-ease), filter var(--lpd-ease);
}
.lap-gmaps-route:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(28,27,23,.28); filter:brightness(1.06); color:#fff !important; }
.lap-gmaps{ display:inline-block; margin-top:6px; color:#1d6a96; font-weight:600; text-decoration:none; font-size:13px; }
.lap-gmaps:hover{ text-decoration:underline; }

/* ============================================================
   18 · ELEMENTI DI CONTENUTO (testo, liste, citazioni, link, tabelle)
   Migliora le pagine ricche di testo (schede, FAQ, descrizioni).
   ============================================================ */

/* Marcatori delle liste in verde */
.entry-content li::marker,
.elementor-widget-text-editor li::marker{ color:var(--lpd-green); }
.entry-content li,
.elementor-widget-text-editor li{ margin-bottom:.4em; }

/* Citazioni eleganti */
.entry-content blockquote,
.elementor-widget-text-editor blockquote{
  border-left:4px solid var(--lpd-green);
  margin:1.5em 0; padding:.6em 1.3em;
  background:var(--lpd-sand); border-radius:0 10px 10px 0;
  font-family:var(--lpd-head); font-style:italic; font-size:1.18em; color:var(--lpd-ink);
}

/* Link nel testo: verde brand con sottolineatura raffinata */
.entry-content a:not(.elementor-button):not(.wp-block-button__link):not(.ast-button),
.elementor-widget-text-editor a{
  color:var(--lpd-green); text-decoration:underline;
  text-underline-offset:3px; text-decoration-thickness:1px;
}
.entry-content a:hover,
.elementor-widget-text-editor a:hover{ color:var(--lpd-green-deep); }

/* Tabelle */
.entry-content table,
.elementor-widget-text-editor table{ border-collapse:collapse; width:100%; margin:1.4em 0; }
.entry-content table th,
.elementor-widget-text-editor table th{ background:var(--lpd-green-soft); color:var(--lpd-ink); text-align:left; }
.entry-content table th, .entry-content table td,
.elementor-widget-text-editor table th, .elementor-widget-text-editor table td{
  border:1px solid var(--lpd-line); padding:11px 14px;
}

/* Separatori e didascalie */
.entry-content hr{ border:0; height:1px; background:var(--lpd-line); margin:2.2em 0; }
figcaption, .wp-element-caption, .elementor-image-box-description{ color:var(--lpd-muted); }
figcaption, .wp-element-caption{ font-size:.9em; text-align:center; margin-top:.6em; }

/* Etichette dei form più chiare */
.wpforms-field-label{ font-weight:600 !important; color:var(--lpd-ink) !important; margin-bottom:6px !important; }

/* ============================================================
   11 · RESPONSIVE
   ============================================================ */
/* Tablet */
@media (max-width:1024px){
  .site-header .custom-logo{ max-height:92px; }
  .lpd-scrolled .site-header .custom-logo{ max-height:64px; }
}
/* Mobile: nella sezione "Da non perdere" mostra solo il calendario,
   nascondi il testo (overline + titolo + divisore). Desktop/tablet invariati. */
@media (max-width:767px){
  .elementor-536 .elementor-element-8acce19{ display:none !important; }
  /* "Scopri il Borgo" e "Dove soggiornare" su mobile sono gestiti dai sistemi
     card unificati (colonna singola centrata, max 290px). */
}

/* Mobile */
@media (max-width:768px){
  .lpd-top{ right:16px;bottom:16px;width:44px;height:44px; }
  .site-header .custom-logo{ max-height:78px; }
  .elementor-button,.ast-button,.wp-block-button__link{ padding-inline:1.5em !important; }
  p{ line-height:1.7; }
}

/* Riduzione movimento */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  body.lpd-anim .lpd-reveal{ opacity:1 !important;transform:none !important;transition:none; }
  .elementor-button::after,.ast-button::after,.wp-block-button__link::after{ display:none; }
}
