/* Sbancobet: regole che theme.json non sa esprimere. Colori e font vengono dalle variabili di theme.json. */
:root {
	--sb-nero: var(--wp--preset--color--nero);
	--sb-lime: var(--wp--preset--color--lime);
	--sb-carta: var(--wp--preset--color--carta);
	--sb-grigio: var(--wp--preset--color--grigio);
	--sb-filetto: var(--wp--preset--color--filetto);
	--sb-titoli: var(--wp--preset--font-family--inter);
}

/* ---------- struttura */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks > header.wp-block-template-part {
	position: sticky; top: 0; z-index: 100;
	border-bottom: 1px solid var(--sb-filetto);
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
:target { scroll-margin-top: 96px; }
img { max-width: 100%; height: auto; }
.wp-block-image img { display: block; }
.sb-principale > .wp-block-post-content > *:first-child { margin-block-start: 0; }
.wp-block-post-content > .sb-sezione { margin-block: 0 !important; }
.sb-sezione > * + * { margin-block-start: 1.25rem; }
.sb-sezione > h2 + p { margin-block-start: 0.75rem; }
.sb-sezione > .wp-block-columns, .sb-sezione > .wp-block-group, .sb-sezione > .wp-block-buttons { margin-block-start: 2.25rem; }
p, li { max-width: 72ch; }
.has-text-align-center, [style*="text-align:center"] { margin-left: auto; margin-right: auto; }

/* ---------- testata */
.sb-testata-riga { min-height: 56px; }
.sb-logo { margin: 0; flex-shrink: 0; }
.sb-logo a { display: block; }
.sb-menu .wp-block-navigation__container { gap: 1.6rem; }
.sb-menu .wp-block-navigation-item__content { text-decoration: none; padding: 0.4rem 0; }
.sb-menu .wp-block-navigation-item__content:hover,
.sb-menu .wp-block-navigation-item__content:focus-visible { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.sb-menu .wp-block-navigation__submenu-container {
	background: var(--sb-nero) !important; color: #fff !important; border: 0 !important;
	min-width: 290px !important; padding: 0.5rem 0 !important; margin-top: 0.4rem;
}
.sb-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.65rem 1.25rem !important; color: #fff; }
.sb-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--sb-lime); }
.sb-btn-testata .wp-block-button__link { padding: 0.65rem 1.15rem; font-size: 1rem; white-space: nowrap; }
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
/* da 1024px: logo a sinistra, menu al centro della pagina, pulsante a destra */
@media (min-width: 1024px) {
	.sb-testata .sb-testata-riga { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; column-gap: 1.5rem; }
	.sb-testata .sb-testata-azioni { display: contents; }
	.sb-testata .sb-logo { justify-self: start; }
	.sb-testata .sb-menu { justify-self: center; }
	.sb-testata .sb-testata-cta { justify-self: end; }
}
/* menu a scomparsa fino a 1024px: in mezzo le voci non ci stanno accanto al logo e al pulsante */
@media (min-width: 600px) and (max-width: 1023px) {
	.sb-menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.sb-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem clamp(1rem, 4vw, 2rem); }
.sb-menu .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; gap: 1.1rem; }
.sb-menu .is-menu-open .wp-block-navigation-item__content { font-size: 1.375rem; }
.sb-menu .is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; color: inherit !important; padding: 0.25rem 0 0 1rem !important; min-width: 0 !important; }
.sb-menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: inherit; font-size: 1.125rem; padding: 0.4rem 0 !important; }
@media (max-width: 599px) {
	.sb-testata-azioni { gap: 0.75rem !important; }
	.sb-testata-cta { order: -1; }
	.sb-logo img { width: 132px !important; }
	.sb-btn-testata .wp-block-button__link { padding: 0.55rem 0.9rem; font-size: 0.95rem; }
}

/* ---------- pulsanti */
.wp-block-button .wp-block-button__link { transition: background-color .15s, color .15s, border-color .15s; }
.sb-btn-grande .wp-block-button__link { font-size: 1.125rem; padding: 1.05rem 1.9rem; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: currentColor; border-color: currentColor; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--sb-nero); color: #fff; border-color: var(--sb-nero); }
.has-nero-background-color .wp-block-button__link:hover { background: #fff; color: var(--sb-nero); border-color: #fff; }
.has-nero-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--sb-nero); }
:where(a, button, summary, .wp-block-button__link):focus-visible { outline: 3px solid var(--sb-nero); outline-offset: 3px; }
.has-nero-background-color :where(a, button, summary, .wp-block-button__link):focus-visible { outline-color: var(--sb-lime); }

/* ---------- testi */
.sb-h1 { font-size: clamp(2.125rem, 1.5rem + 2.2vw, 3rem); letter-spacing: -0.02em; }
.sb-lead { font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.6; }
.sb-lead-piccolo { font-size: 1.1875rem; color: var(--sb-grigio); }
.sb-nota { font-size: 0.95rem; color: var(--sb-grigio); line-height: 1.5; }
.has-nero-background-color .sb-nota, .has-nero-background-color .sb-lead-piccolo { color: #d4d4d4; }
.sb-card-titolo { font-size: 1.5rem; margin-bottom: 0.5rem; }

/* elenchi con le icone Phosphor (check-circle, x) */
.sb-spunte, .sb-escluse, .sb-piede-link { list-style: none; padding-left: 0 !important; }
.sb-spunte li, .sb-escluse li { position: relative; padding-left: 2rem; margin: 0.6rem 0; }
.sb-spunte li::before, .sb-escluse li::before {
	content: ""; position: absolute; left: 0; top: 0.2em; width: 1.35rem; height: 1.35rem; background: currentColor;
	-webkit-mask: url(icone/check-circle.svg) center / contain no-repeat; mask: url(icone/check-circle.svg) center / contain no-repeat;
}
.sb-spunte-lime li::before, .sb-piano-scuro .sb-spunte li::before { background: var(--sb-lime); }
.sb-escluse { margin-top: 0 !important; }
.sb-escluse li { color: #6f6f6f; text-decoration: line-through; }
.sb-escluse li::before { -webkit-mask-image: url(icone/x.svg); mask-image: url(icone/x.svg); }

/* link con freccia */
.sb-freccia { margin-top: auto !important; padding-top: 0.5rem; }
.sb-freccia a { font-weight: 700; text-underline-offset: 4px; }
.sb-freccia a::after {
	content: ""; display: inline-block; vertical-align: -0.18em; margin-left: 0.4rem; width: 1.1em; height: 1.1em; background: currentColor;
	-webkit-mask: url(icone/arrow-right.svg) center / contain no-repeat; mask: url(icone/arrow-right.svg) center / contain no-repeat;
}

/* ---------- sezioni */
.sb-apertura .wp-block-embed { margin: 0; }
.sb-apertura .wp-block-embed iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; display: block; }
.sb-apertura .wp-block-buttons { margin-top: 1.75rem; }
.sb-carte, .sb-passi { margin-top: 2rem !important; }
.sb-card, .sb-passo { display: flex; flex-direction: column; }
.sb-card > * , .sb-passo > * { margin-block: 0 0.75rem; }
.sb-passi { counter-reset: passo; }
.sb-passo { counter-increment: passo; }
.sb-passo::before {
	content: counter(passo); font-family: var(--sb-titoli); font-weight: 800; font-size: 1.5rem; line-height: 1;
	width: 3rem; height: 3rem; display: flex; align-items: center; justify-content: center;
	background: var(--sb-lime); color: var(--sb-nero); margin-bottom: 1.1rem;
}
.sb-riga { margin-top: var(--wp--preset--spacing--60) !important; }
.sb-riga .wp-block-image img { width: 100%; }
.sb-due-elenchi { margin-top: 1.5rem !important; }
.sb-due-elenchi .wp-block-list { margin: 0; }
.sb-recensioni { align-items: start; }
.sb-recensione { padding: 1rem; }
.sb-recensione .wp-block-image { margin: 0; }
.sb-recensione img { width: 100%; }
.sb-bollette.wp-block-gallery { margin-top: 1.25rem; gap: 0.75rem; align-items: flex-start; }
.sb-bollette .wp-block-image { background: #fff; padding: 0.5rem; }
.sb-bollette .wp-block-image img { width: 100%; height: auto; }

/* ---------- prezzi */
.sb-piani { margin-top: 2.5rem !important; align-items: stretch; max-width: 1000px; margin-inline: auto !important; }
.sb-piano > * { margin-block: 0 1rem; }
.sb-piano-nome { font-size: 2rem; margin: 0 !important; }
.sb-prezzo { font-size: 1.125rem; margin-top: 0.5rem !important; }
.sb-prezzo strong { font-family: var(--sb-titoli); font-weight: 800; font-size: 2.75rem; letter-spacing: -0.02em; line-height: 1; margin-right: 0.35rem; }
.sb-piano .wp-block-buttons { margin-top: 1.25rem; }
.sb-piano .sb-nota { margin-bottom: 1.25rem; }
.sb-piano-scuro .sb-nota { color: #d4d4d4; }
.sb-garanzia { margin-top: var(--wp--preset--spacing--60) !important; text-align: center; }
.sb-garanzia h3 { font-size: 1.5rem; }

/* ---------- domande frequenti */
.sb-faq-elenco { margin-top: 2rem !important; border-top: 1px solid var(--sb-filetto); }
.sb-faq summary {
	font-weight: 700; font-size: 1.1875rem; line-height: 1.4; cursor: pointer; list-style: none;
	position: relative; padding-right: 2.75rem;
}
.sb-faq summary::-webkit-details-marker { display: none; }
.sb-faq summary::after {
	content: ""; position: absolute; right: 0.25rem; top: 0.1em; width: 1.5rem; height: 1.5rem; background: currentColor;
	-webkit-mask: url(icone/caret-down.svg) center / contain no-repeat; mask: url(icone/caret-down.svg) center / contain no-repeat;
	transition: transform .2s;
}
.sb-faq[open] summary::after { transform: rotate(180deg); }
.sb-faq > p { margin: 0.85rem 0 0.25rem; color: #222; }

/* ---------- contatti */
.sb-contatto { font-size: 1.0625rem; }
.sb-contatto a { font-size: clamp(1.375rem, 2.4vw, 1.75rem); text-decoration: none; }
.sb-contatto a:hover { text-decoration: underline; }

/* ---------- piè di pagina */
.sb-piede { font-size: 1rem; border-top: 1px solid #2b2b2b; }
.sb-piede a { color: #fff; }
.sb-piede-colonne { gap: 2rem 3rem; }
.sb-logo-chiaro img { filter: invert(1); }
.sb-piede-titolo { font-weight: 700; color: var(--sb-lime); margin-bottom: 0.25rem; }
.sb-piede-link { margin: 0; }
.sb-piede-link li { margin: 0.45rem 0; }
.sb-piede-link a { text-decoration: none; }
.sb-piede-link a:hover { text-decoration: underline; }
.sb-piede-filetto { border: 0; border-top: 1px solid #333 !important; background: none !important; margin: 2.5rem auto 1.5rem !important; opacity: 1; }
.sb-piede-legale > * + * { margin-top: 0.75rem; }
.sb-piede-avviso { font-size: 1rem; max-width: none; }
.sb-piede-piccolo { font-size: 0.9rem; color: #bdbdbd; max-width: 110ch; }
.sb-piede-fondo { margin-top: 1.5rem; gap: 0.5rem 2rem; }
.sb-piede-fondo p { margin: 0; }

/* ---------- pagine di testo (privacy, cookie, disclaimer) */
.sb-pagina-testo .wp-block-post-title { font-size: var(--wp--preset--font-size--titolo); margin-bottom: 2rem; }
.sb-pagina-testo h2 { font-size: 1.625rem; margin-top: 2.5rem; }
.sb-pagina-testo h3 { font-size: 1.25rem; margin-top: 2rem; }

@media (max-width: 781px) {
	.sb-apertura .wp-block-columns { gap: 2rem !important; }
	.sb-riga { gap: 1.5rem !important; }
	.sb-riga > .wp-block-column:has(.wp-block-image) { order: -1; }
	.sb-piano { padding: 1.5rem !important; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- banner cookie (plugin Cookie Notice): prima lo stilava il kit di Elementor */
#cookie-notice { font-family: var(--wp--preset--font-family--manrope); border-top: 1px solid var(--sb-filetto); }
#cookie-notice .cookie-notice-container { padding: 1rem clamp(1rem, 4vw, 2rem); font-size: 0.95rem; line-height: 1.5; text-align: left;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem 1.5rem; }
#cookie-notice .cn-text-container { margin: 0; max-width: 90ch; }
#cookie-notice .cn-buttons-container { display: flex; gap: 0.5rem; flex-wrap: wrap; }
#cookie-notice .cn-button { background: var(--sb-lime) !important; color: var(--sb-nero) !important; border: 2px solid var(--sb-lime) !important;
	border-radius: 4px !important; font: 700 0.95rem/1.2 var(--wp--preset--font-family--manrope) !important; padding: 0.6rem 1.1rem !important; margin: 0 !important; cursor: pointer; }
#cookie-notice .cn-button:hover { background: var(--sb-nero) !important; color: var(--sb-lime) !important; border-color: var(--sb-nero) !important; }
#cookie-notice .cn-close-icon { display: none; }

/* ---------- tabelle nei contenuti (prima nel CSS aggiuntivo di Hello Elementor) */
.wp-block-post-content table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.wp-block-post-content th, .wp-block-post-content td { border: 0; border-top: 1px solid var(--sb-filetto); padding: 0.75rem 0.5rem; text-align: left; vertical-align: middle; }
.wp-block-post-content thead th { border-top: 0; }

/* video caricati nel sito che girano in loop (pagine offerta) */
.sb-video-loop video { width: 100%; display: block; }
/* segnaposto visibile solo in anteprima: non deve mai andare online */
.sb-segnaposto { outline: 3px dashed #c00; color: #c00; font-weight: 700; }
/* screenshot larghi (multiple del giorno): uno per riga su telefono, se no non si leggono */
@media (max-width: 599px) {
  .sb-bollette-larghe.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: 100%; }
}
/* moduli di iscrizione (plugin sb-moduli, al posto dei moduli Elementor Pro) */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.sb-modulo { max-width: 560px; margin-inline: auto; display: grid; gap: 0.75rem; }
.sb-modulo p { margin: 0; }
.sb-modulo-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sb-modulo input[type="text"], .sb-modulo input[type="email"] { width: 100%; box-sizing: border-box; font: inherit; font-size: 1.0625rem; padding: 0.85rem 1rem; border: 1px solid #c9c9c9; border-radius: 6px; background: #fff; color: #111; }
.sb-modulo input:focus-visible { outline: 3px solid #D8FD45; outline-offset: 1px; }
.sb-modulo-consenso { font-size: 0.95rem; line-height: 1.5; }
.sb-modulo-consenso label { display: flex; gap: 0.6rem; align-items: flex-start; cursor: pointer; }
.sb-modulo-consenso input { margin-top: 0.3rem; width: 1.1rem; height: 1.1rem; flex: none; accent-color: #D8FD45; }
.sb-modulo-consenso a { color: inherit; text-decoration: underline; }
.sb-modulo-invio .wp-element-button { width: 100%; cursor: pointer; border: 0; }
.sb-modulo-esito { padding: 0.85rem 1rem; border-radius: 6px; font-weight: 600; background: #D8FD45; color: #111; }
.sb-modulo-esito-errore, .sb-modulo-esito-non-valido { background: #fde2e2; color: #7a1010; }
/* icone delle card delle funzionalita' (Phosphor regular, nere su quadrato lime pieno) */
.sb-icona::before { content: ""; display: block; width: 3.25rem; height: 3.25rem; margin-bottom: 1.25rem; border-radius: 6px;
	background: var(--sb-lime) center / 1.75rem 1.75rem no-repeat; }
.sb-icona-magnifying-glass::before { background-image: url(icone/magnifying-glass.svg); }
.sb-icona-funnel::before { background-image: url(icone/funnel.svg); }
.sb-icona-brain::before { background-image: url(icone/brain.svg); }
.sb-icona-clipboard-text::before { background-image: url(icone/clipboard-text.svg); }
.sb-icona-wallet::before { background-image: url(icone/wallet.svg); }
.sb-icona-lightning::before { background-image: url(icone/lightning.svg); }
.sb-icona-tennis-ball::before { background-image: url(icone/tennis-ball.svg); }
.sb-icona-chart-bar::before { background-image: url(icone/chart-bar.svg); }
/* landing pronostici AI: screenshot veri dell'app su fondo carta, senza ombre */
.sb-cornice .wp-block-image { margin: 0; }
.sb-cornice img, .sb-schermata img { width: 100%; height: auto; display: block; }
