.elementor-kit-5{--e-global-color-primary:#922200;--e-global-color-secondary:#C69A2F;--e-global-color-text:#655C53;--e-global-color-accent:#181513;--e-global-color-notte:#100E0C;--e-global-color-crema:#FBF7EE;--e-global-color-carta:#FDFCF8;--e-global-color-sabbia:#EEE8DC;--e-global-color-bordo:#D2C9BB;--e-global-color-grigionotte:#B0AAA0;--e-global-color-rossoscuro:#751900;--e-global-color-rossochiaro:#D65938;--e-global-color-lineachiara:#FBF7EE40;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-weight:400;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-secondary-font-family:"Manrope";--e-global-typography-secondary-font-size:12px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-line-height:1.43em;--e-global-typography-text-font-family:"Manrope";--e-global-typography-text-font-size:13px;--e-global-typography-text-font-weight:400;--e-global-typography-text-text-transform:none;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Manrope";--e-global-typography-accent-font-size:10px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.5em;--e-global-typography-accent-letter-spacing:2.5px;--e-global-typography-pulsante-font-family:"Manrope";--e-global-typography-pulsante-font-size:11px;--e-global-typography-pulsante-font-weight:600;--e-global-typography-pulsante-text-transform:uppercase;--e-global-typography-pulsante-line-height:1.43em;--e-global-typography-pulsante-letter-spacing:0px;--e-global-typography-citazione-font-family:"Manrope";--e-global-typography-citazione-font-size:15px;--e-global-typography-citazione-font-weight:500;--e-global-typography-citazione-text-transform:none;--e-global-typography-citazione-line-height:1.5em;--e-global-typography-etichetta-font-family:"Manrope";--e-global-typography-etichetta-font-size:9px;--e-global-typography-etichetta-font-weight:400;--e-global-typography-etichetta-text-transform:uppercase;--e-global-typography-etichetta-line-height:1.5em;--e-global-typography-etichetta-letter-spacing:1.5px;--e-global-typography-didascalia-font-family:"Manrope";--e-global-typography-didascalia-font-size:9px;--e-global-typography-didascalia-font-weight:400;--e-global-typography-didascalia-text-transform:none;--e-global-typography-didascalia-line-height:1.5em;--e-global-typography-didascalia-letter-spacing:2px;--e-global-typography-telefono-font-family:"Cormorant Garamond";--e-global-typography-telefono-font-size:32px;--e-global-typography-telefono-font-weight:400;--e-global-typography-telefono-text-transform:none;--e-global-typography-telefono-line-height:1.2em;background-color:#FBF7EE;color:#181513;font-family:"Manrope", Sans-serif;font-size:13px;font-weight:400;line-height:1.5em;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:#922200;font-family:"Manrope", Sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;line-height:1.43em;letter-spacing:0px;color:#FBF7EE;border-radius:0px 0px 0px 0px;padding:16px 25px 16px 25px;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{background-color:#751900;color:#FBF7EE;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:#922200;}.elementor-kit-5 a:hover{color:#181513;}.elementor-kit-5 h1{color:#181513;font-family:"Cormorant Garamond", Sans-serif;font-size:78px;font-weight:400;text-transform:uppercase;line-height:0.98em;}.elementor-kit-5 h2{color:#181513;font-family:"Cormorant Garamond", Sans-serif;font-size:46px;font-weight:400;text-transform:uppercase;line-height:1.08em;}.elementor-kit-5 h3{color:#181513;font-family:"Cormorant Garamond", Sans-serif;font-size:26px;font-weight:400;text-transform:uppercase;line-height:1.5em;}.elementor-kit-5 h4{color:#181513;font-family:"Cormorant Garamond", Sans-serif;font-size:22px;font-weight:400;text-transform:uppercase;line-height:1.5em;}.elementor-kit-5 h5{color:#181513;font-family:"Cormorant Garamond", Sans-serif;font-size:19px;font-weight:400;text-transform:uppercase;line-height:1.5em;}.elementor-kit-5 h6{color:#181513;font-family:"Cormorant Garamond", Sans-serif;font-size:16px;font-weight:400;text-transform:uppercase;line-height:1.5em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1300px;}.e-con{--container-max-width:1300px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1100px){.elementor-kit-5 h1{font-size:78px;line-height:0.98em;}.elementor-kit-5 h2{font-size:38px;line-height:1.08em;}.elementor-kit-5 h3{font-size:23px;line-height:1.5em;}.elementor-kit-5 h4{font-size:20px;line-height:1.5em;}.elementor-kit-5 h5{font-size:19px;line-height:1.5em;}.elementor-kit-5 h6{font-size:16px;line-height:1.5em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:760px){.elementor-kit-5 h1{font-size:55px;line-height:1.03em;}.elementor-kit-5 h2{font-size:39px;line-height:1.08em;}.elementor-kit-5 h3{font-size:24px;line-height:1.5em;}.elementor-kit-5 h4{font-size:20px;line-height:1.5em;}.elementor-kit-5 h5{font-size:19px;line-height:1.5em;}.elementor-kit-5 h6{font-size:16px;line-height:1.5em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* Carletto alla Brace: generato da config/02-brand.php dai file in src/css/ */

/* --- Base (Lovable: styles.css) ------------------------------------------------ */
html { scroll-behavior: smooth; scroll-padding-top: 30px; }
body { -webkit-font-smoothing: antialiased; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Icone Lucide (brand/icone/): sono a tratto. Elementor colora le SVG col
   riempimento, che le renderebbe piene: il tratto prende invece il colore del testo. */
svg[stroke="currentColor"], svg[stroke="currentColor"] * { fill: none !important; }

/* L'ultimo paragrafo di un blocco di testo non aggiunge spazio sotto: le distanze
   le fanno i contenitori. Fra un paragrafo e l'altro 18 px (Lovable: .body-copy). */
.elementor-widget-text-editor p { margin-block: 0 18px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.sh-paragrafi { margin-bottom: 18px; }

/* Titoli: a capo bilanciato, come Lovable (text-wrap: balance). */
.elementor-heading-title { text-wrap: balance; }

/* Sopratitolo con il trattino senape di 32 px (Lovable: .eyebrow). */
.sh-sopratitolo .elementor-heading-title { display: flex; align-items: center; gap: 14px; }
.sh-sopratitolo .elementor-heading-title::before { content: ""; flex-shrink: 0; width: 32px; height: 1px; background: var(--e-global-color-secondary); }
.sh-sopratitolo.sh-senza-linea .elementor-heading-title { display: block; }
.sh-sopratitolo.sh-senza-linea .elementor-heading-title::before { display: none; }

/* --- Pulsanti (Lovable: .site-button) -------------------------------------------
   I colori di ogni variante sono nei controlli del widget (config/lib-pagine.php,
   sh_pulsante); qui solo altezza e icone. */
.sh-pulsante .elementor-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; transition: background-color .18s, color .18s, border-color .18s; }
.sh-pulsante .elementor-button-content-wrapper { align-items: center; }
.sh-pulsante .elementor-button-icon { display: flex; }
.sh-pulsante .elementor-button-icon svg { width: 16px; height: 16px; }
.sh-pulsante--crema .elementor-button, .sh-pulsante--notte .elementor-button { min-height: 40px; }
@media (max-width: 760px) {
	.sh-pulsante .elementor-button { padding-inline: 17px; font-size: 10px; }
}

/* --- Comparsa allo scorrimento (Lovable: .reveal-group) ---------------------------
   Si attiva col controllo di Elementor "Animazione d'ingresso: Dissolvenza in alto"
   (Avanzate > Effetti di movimento); qui la si rende come quella di Lovable: 54 px,
   1,6 s, stessa curva. */
@keyframes sh-comparsa { from { opacity: 0; transform: translateY(54px); } to { opacity: 1; transform: none; } }
.elementor-element.animated.fadeInUp { animation-name: sh-comparsa; animation-duration: 1.6s; animation-timing-function: cubic-bezier(.22,.61,.36,1); }
@media (prefers-reduced-motion: reduce) {
	.elementor-element.animated.fadeInUp { animation: none; }
	.elementor-invisible { visibility: visible !important; }
}

/* --- Header (Lovable: .site-header, .desktop-nav, .mobile-navigation) ---------- */

/* Appoggiato sulla foto dell'hero: il Theme Builder lo stampa in un suo involucro,
   che deve lasciar passare il posizionamento. */
.elementor-location-header { position: relative; z-index: 10; }
.sh-header .sh-logo img { display: block; }

/* Voce della pagina corrente: linea senape sotto (Lovable: .nav-button.current). */
.sh-menu-principale .elementor-nav-menu--main .elementor-item { border-bottom: 1px solid transparent; transition: color .18s; }
.sh-menu-principale .elementor-nav-menu--main .elementor-item.elementor-item-active { border-bottom-color: var(--e-global-color-secondary); }

/* "Prenota ora" e' una voce del menu solo per la tendina del telefono: su desktop e
   nel footer c'e' gia' il pulsante. */
.sh-menu-principale .elementor-nav-menu--main .sh-voce-prenota,
.sh-menu-footer .sh-voce-prenota { display: none !important; }

/* Tendina del telefono: fondo scuro sotto l'header, filo senape in basso, voci
   grandi senza maiuscolo, "Prenota ora" come pulsante rosso a tutta larghezza. */
.sh-menu-principale .elementor-menu-toggle { width: 44px; height: 44px; padding: 0; justify-content: center; background: transparent; margin-right: -9px; }   /* icona allineata al margine */
.sh-menu-principale .elementor-menu-toggle svg { width: 26px; height: 26px; }
.sh-menu-principale .elementor-nav-menu--dropdown { background: var(--e-global-color-notte); border-bottom: 1px solid var(--e-global-color-secondary); padding: 24px 24px 36px; }
.sh-menu-principale .elementor-nav-menu--dropdown .elementor-nav-menu { display: flex; flex-direction: column; gap: 20px; }
.sh-menu-principale .elementor-nav-menu--dropdown a.elementor-item { padding: 0 !important; min-height: 44px; display: flex; align-items: center; border-bottom: 1px solid transparent; background: transparent !important;
	font-size: 18px !important; text-transform: none !important; letter-spacing: 0 !important; }   /* il widget applicherebbe la tipografia del menu orizzontale */
.sh-menu-principale .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active { border-bottom-color: var(--e-global-color-lineachiara); }
.sh-menu-principale .elementor-nav-menu--dropdown .sh-voce-prenota { margin-top: 10px; }
.sh-menu-principale .elementor-nav-menu--dropdown .sh-voce-prenota a.elementor-item { justify-content: center; min-height: 48px; background: var(--e-global-color-primary) !important; color: var(--e-global-color-crema) !important; font-size: 11px !important; text-transform: uppercase !important; }
/* Telefono: sfumatura dal nero (in alto) al trasparente (in basso) dietro logo e menu,
   perche' restino leggibili su ogni foto dell'hero (indicazione del 23/10/2026). */
@media (max-width: 760px) {
	.sh-header { background: linear-gradient(180deg, rgba(16, 14, 12, .85) 0%, rgba(16, 14, 12, .45) 55%, rgba(16, 14, 12, 0) 100%); }
}
/* Header fisso (config/03-header-footer.php): scorrendo compare la fascia scura e, su
   desktop e tablet, l'header si abbassa e il logo rimpicciolisce. Sul telefono resta
   alto uguale: cambia solo lo sfondo, dalla sfumatura alla fascia piena. */
.sh-header { transition: background-color .3s, min-height .3s, box-shadow .3s; }
.sh-header .sh-logo img { transition: width .3s; }
.sh-header.elementor-sticky--effects { background: var(--e-global-color-notte) !important;   /* piena: trasparente, mostrerebbe i cambi di colore sotto */ box-shadow: 0 1px 0 var(--e-global-color-lineachiara); }
@media (min-width: 761px) {
	.sh-header.elementor-sticky--effects { --min-height: 92px; min-height: 92px; }
	.sh-header.elementor-sticky--effects .sh-logo img { width: 104px !important; }
	.sh-header.elementor-sticky--effects .sh-logo { margin-top: 6px !important; }
}
/* Elementor, per non far saltare la pagina, mette al posto dell'header fisso uno
   spaziatore alto come lui: l'header pero' e' gia' sopra la foto (assoluto), e lo
   spaziatore spingerebbe giu' tutta la pagina. */
.elementor-location-header .elementor-sticky__spacer { display: none !important; }
/* Con la tendina aperta anche l'header diventa scuro (Lovable: .menu-is-open). */
.sh-header:has(.elementor-menu-toggle.elementor-active) { background: var(--e-global-color-notte) !important; }

/* --- Footer (Lovable: .site-footer) --------------------------------------------- */
.sh-footer .sh-logo img { display: block; }
.sh-footer-riga p { font-size: 9px; line-height: 1.5; }
.sh-footer-riga a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.sh-footer-riga a:hover { color: var(--e-global-color-crema); }
.sh-footer-social .elementor-icon { display: flex; }

/* Tablet e telefono: logo e Instagram sulla prima riga, il menu sotto a tutta
   larghezza (Lovable: .footer-top in griglia). */
@media (max-width: 1100px) {
	.sh-footer-alto { row-gap: 25px !important; }
	.sh-menu-footer { order: 3; width: 100%; }
	.sh-menu-footer .elementor-nav-menu { flex-wrap: wrap; justify-content: flex-start; row-gap: 12px; }
}

/* --- Hero (Lovable: .hero) e striscia rossa (.info-strip) ------------------------ */

/* Il widget Elenco con icone colora le icone col riempimento, e le Lucide sono a
   tratto: senza questa regola restano nere. Il colore e' quello del testo (crema). */
.sh-hero-basso .elementor-icon-list-icon, .sh-striscia-voce .elementor-icon-list-icon { color: var(--e-global-color-crema); }
.sh-hero-titolo .elementor-heading-title { max-width: 650px; }
.sh-hero-testo { max-width: 420px; }
@media (max-width: 760px) {
	.sh-hero-titolo .elementor-heading-title { max-width: 380px; }
	.sh-hero-testo { max-width: 310px; }
	.sh-hero-testo p { font-size: 12px; }
	/* Due pulsanti affiancati a meta' larghezza (Lovable: .hero-actions in griglia). */
	.sh-hero .sh-pulsanti { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sh-hero .sh-pulsanti .elementor-button { width: 100%; padding-inline: 10px; letter-spacing: 1px; }
}
.sh-hero-basso .elementor-icon-list-item { letter-spacing: 2px; }
/* Il richiamo a destra ha la freccia dopo il testo. */
.sh-hero-richiamo .elementor-icon-list-item { flex-direction: row-reverse; gap: 12px; }
.sh-hero-richiamo .elementor-icon-list-text { padding-inline-start: 0 !important; }
.sh-hero-basso .elementor-icon-list-icon svg { stroke-width: 2; }
@media (max-width: 760px) { .sh-hero-basso .elementor-icon-list-text { font-size: 8px; } }

/* Voci della striscia: Cormorant maiuscolo, che cresce con lo schermo fino a 15 px. */
.sh-striscia-voce .elementor-icon-list-icon svg { stroke-width: 1.3; }
.sh-striscia-voce .elementor-icon-list-text { font-size: clamp(9px, 1.08vw - 1.8px, 15px) !important; }
@media (min-width: 1500px) { .sh-striscia-voce .elementor-icon-list-text { white-space: nowrap; } }
/* Tablet: Lovable scende fino a 9 px, illeggibile; qui almeno 12 (22/10/2026). */
@media (min-width: 761px) and (max-width: 1100px) {
	.sh-striscia-voce .elementor-icon-list-text { font-size: 12px !important; }
}
/* Telefono: le voci una sotto l'altra, allineate a sinistra, con le icone in colonna
   e all'altezza della prima riga (su Lovable erano centrate una per una e le icone
   finivano a zig-zag; indicazione del 23/10/2026). */
@media (max-width: 760px) {
	.sh-striscia-voce { width: 100%; }
	.sh-striscia-voce .elementor-icon-list-item { justify-content: flex-start; align-items: flex-start !important; }
	.sh-striscia-voce .elementor-icon-list-icon { margin-top: 2px; flex-shrink: 0; }
	.sh-striscia-voce .elementor-icon-list-text { font-size: 15px !important; text-align: left; }
}

/* Da 1600 px in su l'hero e' alto 780 (Lovable: --hero-height). */
@media (min-width: 1600px) { .e-con.sh-hero { min-height: 780px !important; } }

/* --- Sezioni ricorrenti ------------------------------------------------------------ */

/* Racconto (Lovable: .story): foto o video alti 600, larghi al massimo 485; sul
   telefono in proporzione 1103:1358, a tutta larghezza; con la foto a destra
   (.story.reverse) sul telefono la foto torna sopra al testo. */
.sh-foto-racconto, .sh-video-racconto { width: 100%; max-width: 485px; }
.sh-foto-racconto img { display: block; }
/* Il widget Video impone il 16:9: il video (verticale, 720x1280) va invece ritagliato
   nel riquadro come le foto. */
.elementor-widget-video.sh-video-racconto .elementor-wrapper { width: 100%; height: 600px; aspect-ratio: auto; }
.elementor-widget-video.sh-video-racconto video { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 760px) {
	.sh-foto-racconto, .sh-video-racconto { max-width: none; }
	.sh-foto-racconto img { height: auto !important; aspect-ratio: 1103 / 1358; }
	.elementor-widget-video.sh-video-racconto .elementor-wrapper { height: auto; aspect-ratio: 1103 / 1358; }
	.sh-racconto--inverso .sh-racconto-media { order: -1; }
}

/* Intestazione con testo breve a destra (Lovable: .section-heading). */
.sh-intestazione-testo { max-width: 300px; }
@media (max-width: 760px) { .sh-intestazione-testo { max-width: none; } }
@media (min-width: 761px) and (max-width: 1100px) {
	.sh-intestazione-titolo { flex: 1.4 1 0 !important; }
	.sh-intestazione-testo { flex: 1 1 0; max-width: none; }
}

/* Schede della sezione scura (Lovable: .experience-item): foto alte 350 a ogni
   larghezza (su Lovable la regola 4:5 del telefono e' annullata da una successiva). */
/* Il collegamento attorno alla foto si stringerebbe sul contenuto: la foto non
   arriverebbe a tutta larghezza. */
.sh-esperienza-foto a { display: block; width: 100%; }
.sh-esperienza-foto img { display: block; width: 100%; }
.sh-freccia-tonda .elementor-icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--e-global-color-lineachiara); border-radius: 50%; transition: background-color .18s, border-color .18s, color .18s; }
.sh-freccia-tonda .elementor-icon:hover { background: var(--e-global-color-crema); border-color: var(--e-global-color-crema); color: var(--e-global-color-notte); }
.sh-freccia-tonda .elementor-icon:hover svg { stroke: var(--e-global-color-notte); }

/* Recensioni: "Google" nel pulsante, in tondo e piu' grande (Lovable: .google-label). */
.sh-google { font-size: 16px; font-weight: 600; text-transform: none; margin-right: 6px; }
.sh-recensioni .sh-pulsante .elementor-button-text { display: inline-flex; align-items: center; gap: 12px; }
@media (max-width: 760px) { .sh-recensioni .sh-pulsante .elementor-button { padding-inline: 15px; letter-spacing: 1px; } }

/* Recapiti (template "Recapiti"). */
.sh-recapito-icona .elementor-icon { display: flex; }
.sh-recapito-icona svg { stroke-width: 1.4; }
.sh-telefono a { color: inherit; }

/* --- Recensioni di Google (plugin Trustindex, config/11-recensioni.php) ---------- */
/* Testi nei font e nei colori del sito; le stelle restano quelle gialle di Google. */
.sh-recensioni-google { width: 100%; }
.sh-recensioni-google .ti-widget .ti-name { font: 600 13px/1.5 Manrope, sans-serif !important; color: var(--e-global-color-accent) !important; }
.sh-recensioni-google .ti-widget .ti-date { font: 400 11px/1.5 Manrope, sans-serif !important; color: var(--e-global-color-text) !important; }
/* Solo carattere e colore: misura e interlinea le calcola il plugin per tagliare i
   testi lunghi a 4 righe (cambiandole, l'ultima riga resta tagliata a meta'). */
.sh-recensioni-google .ti-widget .ti-review-content,
.sh-recensioni-google .ti-widget .ti-review-text-container { font-family: Manrope, sans-serif !important; color: var(--e-global-color-text) !important; }
.sh-recensioni-google .ti-widget .ti-read-more span { font: 600 11px/1.5 Manrope, sans-serif !important; color: var(--e-global-color-primary) !important; text-transform: uppercase; }
.sh-recensioni-google .ti-widget .ti-footer, .sh-recensioni-google .ti-widget .ti-footer * { font-family: Manrope, sans-serif !important; color: var(--e-global-color-text); }
.sh-recensioni-google .ti-widget .ti-footer strong, .sh-recensioni-google .ti-widget .ti-footer b { color: var(--e-global-color-accent); }
.sh-recensioni-google .ti-widget .ti-next, .sh-recensioni-google .ti-widget .ti-prev { border: 1px solid var(--e-global-color-bordo) !important; background-color: transparent !important; box-shadow: none !important; }

/* --- Pagina Menu (Lovable: .mref-*) -------------------------------------------- */

/* Titolo fra due fili di 90 px (40 sotto i 900 px). */
.sh-titolo-linee .elementor-heading-title { display: flex; align-items: center; justify-content: center; gap: 24px; }
.sh-titolo-linee .elementor-heading-title::before, .sh-titolo-linee .elementor-heading-title::after { content: ""; flex-shrink: 0; width: 90px; height: 1px; background: var(--e-global-color-bordo); }
@media (max-width: 900px) { .sh-titolo-linee .elementor-heading-title::before, .sh-titolo-linee .elementor-heading-title::after { width: 40px; } }
@media (max-width: 760px) { .sh-sopratitolo-menu .elementor-heading-title { letter-spacing: 1.6px; } }

/* Hero: filo chiaro con il rombo senape al centro (Lovable: .mref-divider). */
.sh-divisore-rombo .elementor-divider { position: relative; }
.sh-divisore-rombo .elementor-divider::after { content: ""; position: absolute; top: 50%; left: 130px; width: 7px; height: 7px; background: var(--e-global-color-secondary); transform: translate(-50%, -50%) rotate(45deg); }
.sh-hero-menu .sh-hero-titolo .elementor-heading-title { max-width: 760px; }
@media (max-width: 760px) {
	.sh-hero-menu-sotto .elementor-heading-title { max-width: 340px; letter-spacing: 1.2px; font-weight: 700; }
	.sh-hero-menu-sotto br { display: none; }
}

/* Speciali: etichetta in basso a sinistra sulla foto; sul telefono foto 4:5. */
.sh-speciali-etichetta { width: max-content !important; }
@media (max-width: 760px) { .sh-speciali-foto { min-height: 0 !important; aspect-ratio: 4 / 5; } }

/* Carta: piatto e prezzo sulla stessa riga, descrizione sotto (Lovable: .mref-item). */
.sh-carta .elementor-price-list-header { align-items: flex-start; gap: 12px; }
.sh-carta .elementor-price-list-header h4 { margin: 0; font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; }   /* non i titoli H4 del sito */
.sh-carta .elementor-price-list-price { white-space: nowrap; margin-left: auto; }
.sh-carta .elementor-price-list-description { margin: 0; }
.sh-carta .elementor-price-list-text { padding: 0 !important; }

/* Pulsante fra due fili (Lovable: .mref-line-btn). */
.sh-pulsante-40 .elementor-button { min-height: 40px; }

/* Recensione. */
.sh-citazione-cliente p { margin: 0; }

/* Carta vera (27/10/2026): numeri degli allergeni accanto ai piatti, piccoli e senape,
   come rimando alla legenda; la nota sulla salsa in corsivo. */
.sh-allergeni { font-size: 10px; letter-spacing: .5px; color: var(--e-global-color-secondary); white-space: nowrap; }
.sh-carta-nota p { font-size: 12px; font-style: italic; }
.sh-carta .elementor-price-list-header h4 em { font-style: italic; }

/* Legenda degli allergeni: numero rosso in colonna, nome e descrizione accanto. */
.sh-allergene-numero .elementor-heading-title { text-align: right; }
/* Cormorant ha le cifre "all'antica" (l'1 sembra una I, le cifre scendono sotto la
   riga): nella legenda servono cifre allineate e leggibili. */
.sh-allergene-numero .elementor-heading-title { font-variant-numeric: lining-nums tabular-nums; }

/* Riquadro "Dalla griglia": nel riquadro stretto i fili da 90 px manderebbero a capo il
   titolo; qui sono piu' corti. */
.sh-speciali .sh-titolo-linee .elementor-heading-title { white-space: nowrap; }
.sh-speciali .sh-titolo-linee .elementor-heading-title::before,
.sh-speciali .sh-titolo-linee .elementor-heading-title::after { width: 48px; }
@media (max-width: 760px) {
	.sh-speciali .sh-titolo-linee .elementor-heading-title { font-size: 30px; gap: 14px; }
	.sh-speciali .sh-titolo-linee .elementor-heading-title::before,
	.sh-speciali .sh-titolo-linee .elementor-heading-title::after { width: 24px; }
}

/* --- La macelleria (Lovable: .process-grid, .cuts) ------------------------------ */

/* Quattro passaggi: fili chiari fra le colonne (due colonne su tablet, una sul
   telefono, con il filo sotto). Il filo senape in alto e' il bordo della griglia. */
.sh-passaggio { border-right: 1px solid var(--e-global-color-lineachiara); }
.sh-passaggio:last-child { border-right: 0; }
.sh-passaggio-icona .elementor-icon { display: flex; }
.sh-passaggio-icona svg { stroke-width: 1.3; }
.sh-passaggio-numero { opacity: .72; }
@media (min-width: 761px) and (max-width: 1100px) {
	.sh-passaggio { border-bottom: 1px solid var(--e-global-color-lineachiara); }
	.sh-passaggio:nth-child(2n) { border-right: 0; }
}
@media (max-width: 760px) {
	.sh-passaggio { border-right: 0; border-bottom: 1px solid var(--e-global-color-lineachiara); }
	.sh-passaggio:last-child { border-bottom: 0; }
}

/* Il banco: la frase sotto il titolo sta su una riga dove c'e' spazio. */
@media (min-width: 1100px) { .sh-una-riga p { white-space: nowrap; } }
@media (max-width: 760px) { .sh-foto-banco { max-width: 460px; } }

/* --- La nostra storia (Lovable: .storyline) ---------------------------------------- */

/* Linea del tempo: filo chiaro al centro; ogni tappa occupa meta' larghezza, a
   sinistra o a destra, con il punto rosso e un trattino verso il testo. Sul
   telefono il filo va a sinistra e le tappe tutte a destra di esso.
   (Le pseudo-classi stanno su .e-con.sh-tappa per scavalcare il ::before che
   Elementor riserva al velo di sfondo dei contenitori.) */
.sh-tappe { position: relative; padding-top: 4px !important; background: linear-gradient(var(--e-global-color-lineachiara), var(--e-global-color-lineachiara)) no-repeat 50% 0 / 1px 100%; }
.e-con.sh-tappa { position: relative; width: 50%; padding: 0 62px 76px 0; }
.e-con.sh-tappa--destra { margin-left: 50%; padding: 0 0 76px 62px; }
.e-con.sh-tappa:last-child { padding-bottom: 4px; }
.e-con.sh-tappa::before { content: ""; position: absolute; top: 8px; right: -4px; left: auto; bottom: auto; width: 8px; height: 8px; border-radius: 50%; background: var(--e-global-color-rossochiaro); box-shadow: 0 0 0 5px var(--e-global-color-notte); opacity: 1; mix-blend-mode: normal; }
.e-con.sh-tappa::after { content: ""; position: absolute; top: 12px; right: 0; width: 50px; height: 1px; background: var(--e-global-color-lineachiara); }
.e-con.sh-tappa--destra::before { left: -4px; right: auto; }
.e-con.sh-tappa--destra::after { left: 0; right: auto; }
@media (min-width: 761px) and (max-width: 1100px) {
	.e-con.sh-tappa { padding-right: 40px; }
	.e-con.sh-tappa--destra { padding-left: 40px; padding-right: 0; }
	.e-con.sh-tappa::after { width: 28px; }
}
@media (max-width: 760px) {
	.sh-tappe { background-position: 4px 0; }
	.e-con.sh-tappa, .e-con.sh-tappa--destra { width: 100%; margin-left: 0; padding: 0 0 44px 32px; }
	.e-con.sh-tappa::before, .e-con.sh-tappa--destra::before { left: 0; right: auto; }
	.e-con.sh-tappa::after { display: none; }
}

/* --- Contatti (Lovable: .contact-grid, .contact-form, .contact-map) ------------- */

/* Sotto gli 860 px recapiti e modulo uno sopra l'altro. */
@media (max-width: 860px) { .sh-contatti { grid-template-columns: 1fr !important; } }

/* Modulo: etichette piccole maiuscole, campi con il filo tutt'intorno, senza angoli. */
.sh-modulo form.jet-form-builder { display: grid; gap: 18px; }
.sh-modulo .jet-form-builder-row { display: grid !important; gap: 8px; margin: 0; padding: 0; }
.sh-modulo .jet-form-builder-row > * { width: 100% !important; max-width: 100%; }
.sh-modulo .jet-form-builder__label-text { font: 400 11px/1.5 Manrope, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--e-global-color-text); }
.sh-modulo .jet-form-builder__required { color: var(--e-global-color-text); }
.sh-modulo input.jet-form-builder__field, .sh-modulo textarea.jet-form-builder__field {
	width: 100%; padding: 12px 14px; border: 1px solid var(--e-global-color-bordo); border-radius: 0; background: transparent; box-shadow: none;
	font: 400 13px/1.5 Manrope, sans-serif; color: var(--e-global-color-accent); color-scheme: light; }
.sh-modulo textarea.jet-form-builder__field { min-height: 123px; resize: vertical; }   /* 5 righe, come Lovable */
.sh-modulo .jet-form-builder__field:focus { outline: none; border-color: var(--e-global-color-accent); }
/* Consenso: testo normale, non etichetta. */
.sh-modulo .checkradio-wrap label, .sh-modulo .jet-form-builder__field-label { display: flex; gap: 10px; align-items: flex-start; font: 400 12px/1.5 Manrope, sans-serif; color: var(--e-global-color-text); text-transform: none; letter-spacing: 0; }
.sh-modulo .jet-form-builder__field-label input { margin-top: 2px; accent-color: var(--e-global-color-primary); }
/* "Invia richiesta": rosso pieno alto 48, con la busta prima e l'aeroplano dopo
   (Lovable: icone mail e send; qui disegnate col CSS, perche' il pulsante del modulo
   non ha un controllo per le icone). */
.sh-modulo .jet-form-builder__submit-wrap { justify-content: flex-start; }
.sh-modulo .jet-form-builder__action-button { display: inline-flex; align-items: center; gap: 18px; height: 48px; padding: 0 25px; border: 0; border-radius: 0;
	background: var(--e-global-color-primary); color: var(--e-global-color-crema); font: 600 11px/1.43 Manrope, sans-serif; text-transform: uppercase; cursor: pointer; transition: background-color .18s; }
.sh-modulo .jet-form-builder__action-button:hover { background: var(--e-global-color-rossoscuro); }
.sh-modulo .jet-form-builder__action-button::before, .sh-modulo .jet-form-builder__action-button::after { content: ""; width: 16px; height: 16px; background: currentColor; flex-shrink: 0; }
.sh-modulo .jet-form-builder__action-button::before { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3C/svg%3E") center / contain no-repeat; }
.sh-modulo .jet-form-builder__action-button::after { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z'/%3E%3Cpath d='m21.854 2.147-10.94 10.939'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z'/%3E%3Cpath d='m21.854 2.147-10.94 10.939'/%3E%3C/svg%3E") center / contain no-repeat; }
.sh-modulo .jet-form-builder-messages-wrap { font: 400 13px/1.5 Manrope, sans-serif; color: var(--e-global-color-accent); }
.sh-modulo .jet-form-builder-messages-wrap:empty { display: none; }
.sh-modulo .error-message { font: 400 11px/1.4 Manrope, sans-serif; color: var(--e-global-color-primary); }
.sh-modulo-privacy p { font-size: 12px; }
.sh-modulo-privacy a { color: var(--e-global-color-text); text-decoration: underline; text-underline-offset: 2px; }

/* Mappa di Google nel riquadro col filo (Lovable: .contact-map-frame). */
.sh-mappa-riquadro { position: relative; border: 1px solid var(--e-global-color-bordo); overflow: hidden; }
.sh-mappa-riquadro iframe { display: block; width: 100%; border: 0; }

/* --- Privacy: testo lungo con sottotitoli ---------------------------------------- */
.sh-testo-legale h3 { margin: 32px 0 10px; font-size: 22px; line-height: 1.3; }
.sh-testo-legale p { font-size: 14px; line-height: 1.7; }/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Cormorant Garamond';
	font-style: italic;
	font-weight: 400 500;
	font-display: auto;
	src: url('https://carlettoallabrace.it/wp-content/uploads/sito/brand/fonts/cormorant-garamond-400-500-italic-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 400 600;
	font-display: auto;
	src: url('https://carlettoallabrace.it/wp-content/uploads/sito/brand/fonts/cormorant-garamond-400-600-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 400 700;
	font-display: auto;
	src: url('https://carlettoallabrace.it/wp-content/uploads/sito/brand/fonts/manrope-400-700-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */