/*
Theme Name: Basketball Stars Camp
Description: Tema a blocchi di Basketball Stars Camp. Nero e oro del logo, mappa dei camp, SEO nel tema.
Author: Daniele Blengini
Version: 0.1.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: starscamp
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--wp--preset--color--accent); color: #111; }
img { display: block; max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }

.sc-occhiello {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600; font-size: 1rem; letter-spacing: .22em; text-transform: uppercase;
	color: var(--wp--preset--color--accent); margin: 0;
}
.sc-occhiello::before { content: ""; display: inline-block; width: 2.25rem; height: 1px; background: currentColor; vertical-align: middle; margin-right: .8rem; }
.sc-attenuato { color: var(--wp--preset--color--muted); }

/* Pulsante a contorno (stile di blocco «Contorno») */
.wp-block-button.is-style-contorno .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--contrast);
	box-shadow: inset 0 0 0 1px rgba(243, 240, 234, .45);
}
.wp-block-button.is-style-contorno .wp-block-button__link:hover { box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }

/* ---------- Testata ---------- */
/* La parte «testata» di WordPress avvolge il gruppo: è il contenitore che deve restare fisso in alto
   (uno sticky resta fermo solo dentro il suo genitore, e il genitore qui è alto quanto la testata). */
.wp-site-blocks > .wp-block-template-part:first-child { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.sc-testata { position: relative; border-bottom: 1px solid rgba(255, 255, 255, .06); }
/* ⚠️ Lo sfocato sta su uno strato a parte: un backdrop-filter sulla testata diventa il riferimento dei figli
   «fixed», e il menu del telefono si apriva chiuso dentro la barra invece che a tutto schermo. */
.sc-testata::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(13, 14, 16, .82); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.sc-logo img { width: 84px; height: auto; transition: width .3s ease, opacity .3s ease, transform .3s ease; }
.sc-scorso .sc-logo img { width: 56px; }
.sc-con-logo-grande:not(.sc-logo-in-barra) .sc-logo img { opacity: 0; transform: translateY(-6px); pointer-events: none; }
.sc-testata { transition: background .3s ease; }
.sc-logo-grande { width: clamp(120px, 13vw, 190px); height: auto; margin: 0 0 1.5rem -.5rem; filter: drop-shadow(0 10px 30px rgba(0,0,0,.6)); }
.sc-testata .wp-block-navigation { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; }
.sc-testata .wp-block-navigation a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.sc-testata .wp-block-navigation a:hover { color: var(--wp--preset--color--accent); }
.sc-testata .wp-block-button__link { padding: .55rem 1.15rem; font-size: 1rem; }
.sc-testata .wp-block-navigation__responsive-container-open, .sc-testata .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--contrast); }
.sc-testata .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--contrast) !important; padding: 1.5rem 1.5rem 3rem; }
.sc-testata .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; align-items: stretch !important; }
.sc-testata .is-menu-open .wp-block-navigation__container { align-items: stretch !important; width: 100%; }
.sc-testata .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.sc-testata .is-menu-open .wp-block-navigation-item { border-bottom: 1px solid var(--wp--preset--color--line); width: 100%; padding-bottom: 1rem; }
.sc-testata .is-menu-open .wp-block-navigation__container { gap: 1.25rem; }
.sc-testata .is-menu-open .wp-block-navigation-item__content { font-size: 2rem; letter-spacing: .06em; }
@media (max-width: 600px) { .sc-testata .wp-block-button__link { padding: .5rem .9rem; font-size: .95rem; } .sc-logo img { width: 64px; } .sc-scorso .sc-logo img { width: 50px; } }

/* ---------- Apertura con la mappa ---------- */
.sc-apertura { position: relative; overflow: hidden; isolation: isolate; }
.sc-apertura::before { /* luce appena accennata sull'Atlantico */
	content: ""; position: absolute; inset: -20% -10% auto 30%; height: 120%; z-index: -1;
	background: radial-gradient(closest-side, rgba(225, 153, 51, .06), transparent 70%);
}
.sc-apertura-testo { position: relative; z-index: 2; max-width: 40rem; }
.sc-apertura h1 { margin: 1rem 0 1.25rem; }
.sc-apertura h1 em { font-style: normal; color: var(--wp--preset--color--accent); }
.sc-apertura-sotto { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); max-width: 34rem; }

.sc-mappa { margin: 0; position: relative;
	-webkit-mask-image: radial-gradient(ellipse 62% 66% at 52% 50%, #000 58%, transparent 100%);
	mask-image: radial-gradient(ellipse 62% 66% at 52% 50%, #000 58%, transparent 100%); }
.sc-mappa > svg { display: block; width: 100%; height: auto; overflow: hidden; }
.sc-arco {
	fill: none; stroke: var(--wp--preset--color--accent); stroke-width: .45; stroke-linecap: round; opacity: .6;
	stroke-dasharray: 1; stroke-dashoffset: 1; pathLength: 1;
}
.sc-mappa .sc-archi path { stroke-dasharray: 600; stroke-dashoffset: 600; }
.sc-pin { opacity: 0; transform-box: fill-box; transform-origin: center; }
.sc-pin-punto { fill: var(--wp--preset--color--accent); }
.sc-pin-alone { fill: none; stroke: rgba(225, 153, 51, .55); stroke-width: .35; transform-box: fill-box; transform-origin: center; }
.sc-pin-anello { fill: rgba(13, 14, 16, .55); stroke: var(--wp--preset--color--accent); stroke-width: .45; }
.sc-pin text {
	font-family: var(--wp--preset--font-family--body); font-weight: 600; font-size: 5.6px; letter-spacing: .12em;
	text-transform: uppercase; fill: rgba(243, 240, 234, .88); paint-order: stroke; stroke: #0d0e10; stroke-width: 1.4px;
}
.sc-pin:hover text, .sc-pin:focus text { fill: var(--wp--preset--color--accent); }
.sc-mappa-elenco { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
/* Telefono: mappa a tutta larghezza, inquadrata sull'Atlantico; sui camp restano le bandiere */
@media (max-width: 999px) {
	.sc-apertura .sc-mappa { margin: 1.5rem calc(-1 * clamp(1rem, 4vw, 2.5rem)) 0; }
	.sc-mappa > svg { aspect-ratio: 300 / 185; }
	.sc-pin text { display: none; }
}

.sc-vivo .sc-archi path { animation: sc-traccia 1.6s cubic-bezier(.65, 0, .35, 1) forwards; animation-delay: calc(2.1s + var(--i) * .18s); }
.sc-vivo .sc-pin { animation: sc-compari .6s ease-out forwards; animation-delay: calc(2.6s + var(--i) * .18s); }
.sc-vivo .sc-pin-alone { animation: sc-pulsa 3.6s ease-out infinite; animation-delay: calc(3.2s + var(--i) * .25s); }
@keyframes sc-traccia { to { stroke-dashoffset: 0; } }
@keyframes sc-compari { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: scale(1); } }
@keyframes sc-pulsa { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(3.2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
	.sc-vivo .sc-archi path, .sc-vivo .sc-pin { animation: none; opacity: 1; stroke-dashoffset: 0; }
	.sc-vivo .sc-pin-alone { animation: none; }
}

/* Da 1000px la mappa occupa tutta l'apertura, dietro al titolo (a sinistra c'è il Pacifico, vuoto) */
@media (min-width: 1000px) {
	.sc-apertura { min-height: min(88vh, 54rem); display: flex; align-items: center; }
	.sc-apertura > .sc-apertura-griglia, .sc-apertura-griglia { width: 100%; }
	.sc-apertura .sc-mappa { position: absolute; inset: 0; z-index: 0;
		-webkit-mask-image: linear-gradient(90deg, transparent 18%, #000 46%), linear-gradient(0deg, transparent, #000 18%);
		mask-image: linear-gradient(90deg, transparent 18%, #000 46%), linear-gradient(0deg, transparent, #000 18%);
		-webkit-mask-composite: source-in; mask-composite: intersect; }
	.sc-apertura .sc-mappa > svg { width: 100%; height: 100%; }
}

/* ---------- Numeri ---------- */
.sc-numeri { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }
.sc-numeri > div { padding: 1.75rem 1.25rem; }
.sc-numeri > div + div { border-left: 1px solid var(--wp--preset--color--line); }
.sc-numeri strong { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 1; color: var(--wp--preset--color--contrast); }
.sc-numeri span { display: block; margin-top: .5rem; color: var(--wp--preset--color--muted); font-size: .95rem; }
@media (max-width: 720px) {
	.sc-numeri { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sc-numeri > div:nth-child(3) { border-left: 0; }
	.sc-numeri > div:nth-child(n+3) { border-top: 1px solid var(--wp--preset--color--line); }
}

/* ---------- Schede dei camp ---------- */
.sc-camp-griglia { display: grid; gap: clamp(.75rem, 1.5vw, 1.25rem); grid-template-columns: repeat(6, minmax(0, 1fr)); }
.sc-camp { position: relative; overflow: hidden; min-height: 40rem; grid-column: span 2; background: var(--wp--preset--color--surface); display: flex; flex-direction: column; justify-content: flex-end; scroll-margin-top: 6rem; }
.sc-camp-foto { position: absolute; inset: 0; }
.sc-camp-foto img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.sc-camp:hover .sc-camp-foto img { transform: scale(1.07); }
.sc-camp-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,14,16,0) 45%, rgba(13,14,16,.5) 100%); }
.sc-camp-testo { position: relative; min-height: 9.75rem; box-sizing: border-box; padding: 1.25rem clamp(1.25rem, 2vw, 1.6rem); background: rgba(13, 14, 16, .8); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid rgba(225, 153, 51, .35); }
.sc-camp-paese { margin: 0; font-family: var(--wp--preset--font-family--heading); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; font-size: .9rem; color: var(--wp--preset--color--accent); }
.sc-camp h3 { margin: .3rem 0 .45rem; font-size: clamp(1.75rem, 2.4vw, 2.35rem); }
.sc-camp h3 a { color: inherit; text-decoration: none; }
.sc-camp-dati { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; margin: 0 0 .75rem; font-size: .9rem; color: var(--wp--preset--color--contrast); }
.sc-camp-dati span + span::before { content: "·"; margin-right: 1.25rem; color: var(--wp--preset--color--muted); }
.sc-camp-piu p { color: #ddd8d0; margin: .25rem 0 .9rem; max-width: 34rem; font-size: .95rem; line-height: 1.55; }
.sc-camp-dati { margin-bottom: 0 !important; }
@media (hover: hover) {
	.sc-camp-piu { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .45s cubic-bezier(.2,.7,.2,1), opacity .3s ease; }
	.sc-camp-piu > * { overflow: hidden; }
	.sc-camp-piu { overflow: hidden; }
	.sc-camp:hover .sc-camp-piu, .sc-camp:focus-within .sc-camp-piu { grid-template-rows: 1fr; opacity: 1; }
	.sc-camp-piu > p { min-height: 0; }
}
@media (hover: none) { .sc-camp-piu { margin-top: .5rem; } }
.sc-camp-link { font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--contrast); text-decoration: none; border-bottom: 1px solid var(--wp--preset--color--accent); padding-bottom: .2rem; }
.sc-camp-link::after { content: " →"; color: var(--wp--preset--color--accent); }
.sc-camp-link:hover { color: var(--wp--preset--color--accent); }
@media (max-width: 960px) {
	.sc-camp-griglia { grid-template-columns: 1fr; }
	.sc-camp { grid-column: auto; min-height: 26rem; }
}

/* ---------- Fascia fotografica ---------- */
.sc-fascia { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: .5rem; height: clamp(26rem, 48vw, 40rem); }
.sc-fascia > * { min-height: 0; min-width: 0; }
.sc-fascia img { width: 100%; height: 100%; object-fit: cover; }
.sc-fascia > :first-child { grid-row: span 2; }
.sc-fascia > :nth-child(4) { grid-column: span 2; }
@media (max-width: 720px) { .sc-fascia { grid-template-columns: 1fr 1fr; grid-template-rows: 16rem 11rem 11rem; height: auto; } .sc-fascia > :first-child { grid-row: auto; grid-column: span 2; } .sc-fascia > :nth-child(4) { grid-column: span 2; } }

/* ---------- Galleria (fondo nero) ---------- */
.sc-galleria { position: relative; }
.sc-galleria-comandi { display: flex; gap: .5rem; justify-content: flex-end; margin: -4.25rem 0 1.5rem; }
.sc-galleria-comandi button, .sc-lightbox button { width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid rgba(243,240,234,.35); background: transparent; color: var(--wp--preset--color--contrast); font-size: 1.25rem; cursor: pointer; transition: .2s; }
.sc-galleria-comandi button:hover, .sc-lightbox button:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.sc-galleria-nastro { list-style: none; margin: 0; padding: 0 0 1rem; display: grid; grid-auto-flow: column dense; grid-template-rows: repeat(2, clamp(11rem, 17vw, 15.5rem)); grid-auto-columns: clamp(11rem, 17vw, 15.5rem); gap: .6rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--wp--preset--color--line) transparent; }
.sc-galleria-nastro li { scroll-snap-align: start; }
.sc-galleria-nastro li:nth-child(6n+1) { grid-row: span 2; grid-column: span 2; }
.sc-galleria-nastro li:nth-child(6n+4) { grid-column: span 2; }
.sc-galleria-nastro li:nth-child(6n+5) { grid-row: span 2; }
.sc-galleria-voce { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: var(--wp--preset--color--surface); overflow: hidden; cursor: zoom-in; }
.sc-galleria-voce img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .4s; }
.sc-galleria-voce:hover img { transform: scale(1.05); }
.sc-galleria-etichetta { position: absolute; left: .75rem; bottom: .75rem; display: inline-flex; align-items: center; padding: .35rem .7rem .35rem .55rem; background: rgba(13,14,16,.62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: var(--wp--preset--color--contrast); font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; border-radius: 2px; }
.sc-galleria-etichetta .sc-bandiera { opacity: .9; }
.sc-lightbox { max-width: none; max-height: none; width: 100vw; height: 100vh; margin: 0; padding: 0; border: 0; background: rgba(8,9,10,.94); color: var(--wp--preset--color--contrast); }
.sc-lightbox::backdrop { background: rgba(0,0,0,.6); }
.sc-lightbox figure { margin: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: 4rem 5rem 2rem; box-sizing: border-box; }
.sc-lightbox img { max-width: 100%; max-height: calc(100vh - 9rem); width: auto; height: auto; object-fit: contain; }
.sc-lightbox figcaption { display: flex; align-items: center; gap: 1rem; font-family: var(--wp--preset--font-family--heading); letter-spacing: .1em; text-transform: uppercase; }
.sc-lightbox-conta { color: var(--wp--preset--color--muted); }
.sc-lightbox-prec, .sc-lightbox-succ { position: absolute; top: 50%; transform: translateY(-50%); }
.sc-lightbox-prec { left: 1rem; } .sc-lightbox-succ { right: 1rem; }
.sc-lightbox-chiudi { position: absolute; top: 1rem; right: 1rem; font-size: 1.75rem !important; }
@media (max-width: 720px) { .sc-galleria-comandi { margin-top: 0; } .sc-lightbox figure { padding: 3.5rem .5rem 1rem; } .sc-lightbox-prec, .sc-lightbox-succ { top: auto; bottom: 1rem; transform: none; } }

/* ---------- Pilastri ---------- */
.sc-pilastri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); counter-reset: p; }
.sc-pilastri > div { counter-increment: p; display: flex; flex-direction: column; }
.sc-pilastri img { order: -1; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 1.25rem; }
.sc-pilastri > div::before { content: "0" counter(p); display: block; padding-top: .9rem; border-top: 1px solid var(--wp--preset--color--line); font-family: var(--wp--preset--font-family--heading); font-weight: 700; color: var(--wp--preset--color--accent); letter-spacing: .1em; margin-bottom: .75rem; }
.sc-pilastri h3 { font-size: 1.75rem; margin: 0 0 .5rem; }
.sc-pilastri p { color: var(--wp--preset--color--muted); margin: 0; }
@media (max-width: 860px) { .sc-pilastri { grid-template-columns: 1fr; } }

/* ---------- Sezioni chiare (carta): il nero resta per apertura e chiusura ---------- */
.sc-chiaro { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); }
.sc-chiaro h2, .sc-chiaro .sc-pilastri h3 { color: var(--wp--preset--color--ink); }
.sc-chiaro .sc-attenuato, .sc-chiaro .sc-pilastri p { color: var(--wp--preset--color--ink-muted); }
.sc-chiaro .sc-occhiello, .sc-chiaro .sc-pilastri > div::before { color: var(--wp--preset--color--accent-deep); }
.sc-chiaro .sc-pilastri > div::before { border-top-color: var(--wp--preset--color--paper-line); }

/* ---------- Bandiere ---------- */
.sc-bandiera { display: inline-block; width: 1.5em; height: 1em; vertical-align: -0.12em; margin-right: .55em; border-radius: 1.5px; box-shadow: 0 0 0 1px rgba(0,0,0,.25); }
.sc-mappa .sc-bandiera { margin: 0; box-shadow: none; }

/* ---------- Voci delle famiglie (home) ---------- */
.sc-voci { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 1.5vw, 1.25rem); }
.sc-voci blockquote { margin: 0; padding: 1.75rem; background: var(--wp--preset--color--base); }
.sc-voci p { color: var(--wp--preset--color--contrast); line-height: 1.6; margin: 0 0 1rem; }
.sc-voci p::before { content: "\201C"; display: block; font-family: var(--wp--preset--font-family--heading); font-size: 3.5rem; line-height: .6; color: var(--wp--preset--color--accent); margin-bottom: .6rem; }
.sc-voci cite { font-style: normal; font-family: var(--wp--preset--font-family--heading); letter-spacing: .12em; text-transform: uppercase; font-size: .85rem; color: var(--wp--preset--color--accent); }
@media (max-width: 860px) { .sc-voci { grid-template-columns: 1fr; } }

/* ---------- Chiusura e piede ---------- */
.sc-chiusura { background: radial-gradient(60rem 30rem at 85% 0%, rgba(225,153,51,.16), transparent 60%), var(--wp--preset--color--surface); }
.sc-piede { border-top: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--muted); font-size: .95rem; }
.sc-piede a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.sc-piede a:hover { color: var(--wp--preset--color--accent); }
.sc-piede h4 { font-size: 1.05rem; letter-spacing: .16em; color: var(--wp--preset--color--accent); margin: 0 0 .75rem; }
.sc-piede ul { list-style: none; margin: 0; padding: 0; line-height: 2; }
/* Il piede non dipende dallo stile del blocco Colonne: WordPress lo carica solo nelle pagine che lo usano */
.sc-piede .wp-block-columns { display: flex; flex-wrap: wrap; gap: 2rem 3rem; margin-bottom: 2.5rem; }
.sc-piede .wp-block-column { flex: 1 1 11rem; min-width: 0; }
.sc-piede .wp-block-column:first-child { flex: 1.6 1 16rem; }
.sc-social { display: flex; gap: .6rem; margin-top: 1.25rem; }
.sc-social a { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 1px solid var(--wp--preset--color--line); border-radius: 50%; }
.sc-social a:hover { border-color: var(--wp--preset--color--accent); }
.sc-social svg { width: 1.1rem; height: 1.1rem; fill: currentColor; }
.sc-piede-fondo { border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.25rem; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; }

/* ================= Pagine interne ================= */
.sc-pagina { color: var(--wp--preset--color--ink); }
.sc-pagina :is(h2, h3, h4) { color: var(--wp--preset--color--ink); }
.sc-pagina .sc-invito :is(h2, h3) { color: var(--wp--preset--color--contrast); }
.sc-pagina h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: var(--wp--preset--spacing--60); }
.sc-pagina h3 { font-size: 1.6rem; margin-top: var(--wp--preset--spacing--50); }
.sc-pagina p, .sc-pagina li { color: #2b2d31; }
.sc-pagina a:not(.wp-block-button__link) { color: var(--wp--preset--color--accent-deep); }
.sc-pagina strong { color: var(--wp--preset--color--ink); }

/* Apertura con foto */
.sc-apertura-pagina { position: relative; isolation: isolate; min-height: clamp(26rem, 62vh, 40rem); display: flex; align-items: flex-end; background: var(--wp--preset--color--base); margin-top: 0 !important; margin-bottom: var(--wp--preset--spacing--60) !important; }
.sc-apertura-pagina-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.sc-apertura-pagina::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(13,14,16,.35) 0%, rgba(13,14,16,.25) 40%, rgba(13,14,16,.92) 100%); }
.sc-apertura-pagina-testo { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2.5rem) clamp(2rem, 5vw, 3.5rem); box-sizing: border-box; }
.sc-apertura-pagina h1 { color: var(--wp--preset--color--contrast); margin: .6rem 0 .8rem; font-size: clamp(2.6rem, 6vw, 5rem); max-width: 18ch; }
.sc-apertura-pagina .sc-occhiello { color: var(--wp--preset--color--accent); }
.sc-apertura-pagina-sotto { color: #e4dfd6 !important; font-size: var(--wp--preset--font-size--large); max-width: 40rem; margin: 0; }
.sc-briciole { font-size: .85rem; color: #cfcac2; margin-bottom: 1.25rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.sc-briciole a { color: #cfcac2 !important; text-decoration: none; }
.sc-briciole a:hover { color: var(--wp--preset--color--accent) !important; }

/* Dati del camp a colpo d'occhio */
.sc-dati { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--wp--preset--color--paper-line); background: #fff; }
.sc-dati > div { padding: 1.1rem 1.25rem; border-right: 1px solid var(--wp--preset--color--paper-line); border-bottom: 1px solid var(--wp--preset--color--paper-line); margin: -1px -1px 0 0; }
.sc-dati span { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; font-size: .8rem; color: var(--wp--preset--color--accent-deep); }
.sc-dati strong { display: block; margin-top: .25rem; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.45rem; line-height: 1.1; text-transform: uppercase; }
.sc-dati em { display: block; font-style: normal; font-size: .85rem; color: var(--wp--preset--color--ink-muted); margin-top: .2rem; }

.sc-dati:has(> div:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 600px) { .sc-dati, .sc-dati:has(> div:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Elenchi con segno */
.sc-pagina ul.is-style-spunte, .sc-pagina ul.is-style-croci { list-style: none; padding-left: 0; }
.sc-pagina ul.is-style-spunte li, .sc-pagina ul.is-style-croci li { position: relative; padding-left: 1.9rem; margin: .45rem 0; }
.sc-pagina ul.is-style-spunte li::before { content: ""; position: absolute; left: .1rem; top: .45em; width: .9rem; height: .5rem; border-left: 2px solid var(--wp--preset--color--accent-deep); border-bottom: 2px solid var(--wp--preset--color--accent-deep); transform: rotate(-45deg); }
.sc-pagina ul.is-style-croci li::before { content: "\2013"; position: absolute; left: .25rem; color: var(--wp--preset--color--ink-muted); font-weight: 700; }

/* Riquadri (blocco Colonna con lo stile «Scheda») */
.sc-pagina .wp-block-column.is-style-scheda { background: #fff; border: 1px solid var(--wp--preset--color--paper-line); padding: 1.5rem 1.6rem; }
.sc-pagina .wp-block-column.is-style-scheda h3 { margin-top: 0; }

/* Giornata tipo (blocco Tabella con lo stile «Giornata tipo») */
.sc-pagina .wp-block-table.is-style-giornata table { background: #fff; border: 1px solid var(--wp--preset--color--paper-line); }
.sc-pagina .wp-block-table.is-style-giornata td { border: 0; border-bottom: 1px solid var(--wp--preset--color--paper-line); padding: .6rem 1rem; }
.sc-pagina .wp-block-table.is-style-giornata td:first-child { width: 7.5rem; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.1rem; color: var(--wp--preset--color--accent-deep); }

/* FAQ apribili (blocco Dettagli) */
.sc-pagina .wp-block-details { background: #fff; border: 1px solid var(--wp--preset--color--paper-line); padding: 0; margin: 0 0 .5rem; }
.sc-pagina .wp-block-details summary { list-style: none; cursor: pointer; padding: 1.05rem 3rem 1.05rem 1.25rem; position: relative; font-weight: 700; color: var(--wp--preset--color--ink); }
.sc-pagina .wp-block-details summary::-webkit-details-marker { display: none; }
.sc-pagina .wp-block-details summary::after { content: "+"; position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--wp--preset--color--accent-deep); transition: transform .2s; }
.sc-pagina .wp-block-details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.sc-pagina .wp-block-details > :not(summary) { padding: 0 1.25rem; }
.sc-pagina .wp-block-details > :last-child { padding-bottom: 1.1rem; }

/* Testimonianze (blocco Citazione con lo stile «Testimonianza») */
.sc-pagina .wp-block-quote.is-style-testimonianza { border: 0; margin: 0; padding: 1.6rem 1.75rem; background: var(--wp--preset--color--base); }
.sc-pagina .wp-block-quote.is-style-testimonianza p { color: var(--wp--preset--color--contrast); font-size: 1.05rem; line-height: 1.6; }
.sc-pagina .wp-block-quote.is-style-testimonianza p:first-child::before { content: "\201C"; display: block; font-family: var(--wp--preset--font-family--heading); font-size: 3.5rem; line-height: .6; color: var(--wp--preset--color--accent); margin-bottom: .5rem; }
.sc-pagina .wp-block-quote.is-style-testimonianza cite { color: var(--wp--preset--color--accent); font-style: normal; font-family: var(--wp--preset--font-family--heading); letter-spacing: .12em; text-transform: uppercase; font-size: .85rem; }

/* Fascia finale di invito (gruppo con la classe sc-invito) */
.sc-pagina .sc-invito { background: radial-gradient(50rem 24rem at 90% 0%, rgba(225,153,51,.18), transparent 60%), var(--wp--preset--color--base); padding: clamp(2rem, 5vw, 3.5rem); margin-top: var(--wp--preset--spacing--60); }
.sc-pagina .sc-invito h2 { color: var(--wp--preset--color--contrast); margin-top: 0; }
.sc-pagina .sc-invito p { color: #d8d3cb; }
.sc-pagina .sc-invito .is-style-contorno .wp-block-button__link { color: var(--wp--preset--color--contrast); box-shadow: inset 0 0 0 1px rgba(243,240,234,.45); }
.sc-pagina .is-style-contorno .wp-block-button__link { color: var(--wp--preset--color--ink); box-shadow: inset 0 0 0 1px rgba(22,24,27,.4); }

/* Dato da confermare (solo staging: si toglie prima del lancio) */
.sc-da-confermare { background: #fff3cd; border-left: 4px solid #d39e00; padding: .6rem .9rem; font-size: .9rem; color: #5c4400 !important; }

/* Lezioni: lettore video e modulo della password */
.sc-video { margin: 1.5rem 0; }
.sc-video video { width: 100%; aspect-ratio: 16 / 9; background: #000; display: block; }
.sc-video figcaption { margin-top: .5rem; font-size: .9rem; color: var(--wp--preset--color--ink-muted); }
.sc-password { background: #fff; border: 1px solid var(--wp--preset--color--paper-line); padding: 1.75rem; max-width: 40rem; }
.sc-password input[type=password] { padding: .7rem .9rem; border: 1px solid var(--wp--preset--color--paper-line); font: inherit; min-width: 14rem; }
.sc-password input[type=submit] { background: var(--wp--preset--color--accent); border: 0; padding: .75rem 1.3rem; font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.sc-lezioni { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.sc-lezioni li { background: #fff; border: 1px solid var(--wp--preset--color--paper-line); padding: 1.1rem 1.3rem; display: grid; grid-template-columns: 4.5rem 1fr auto; gap: .25rem 1.25rem; align-items: center; }
.sc-lezioni .sc-lez-num { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.6rem; color: var(--wp--preset--color--accent-deep); grid-row: span 2; }
.sc-lezioni .sc-lez-titolo { font-weight: 700; color: var(--wp--preset--color--ink); }
.sc-lezioni .sc-lez-info { font-size: .9rem; color: var(--wp--preset--color--ink-muted); grid-column: 2; }
.sc-lezioni a.sc-lez-vai { grid-row: 1 / span 2; grid-column: 3; font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
@media (max-width: 600px) { .sc-lezioni li { grid-template-columns: 3rem 1fr; } .sc-lezioni a.sc-lez-vai { grid-column: 2; grid-row: auto; } }

/* Torna su: compare dopo una schermata di scorrimento */
.sc-su { position: fixed; right: clamp(1rem, 2.5vw, 2rem); bottom: clamp(1rem, 2.5vw, 2rem); z-index: 60; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--wp--preset--color--accent); color: #111; box-shadow: 0 8px 24px rgba(0,0,0,.35); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .3s ease, transform .3s ease, background .2s; }
.sc-su svg { width: 1.25rem; height: 1.25rem; fill: currentColor; }
.sc-su:hover { background: var(--wp--preset--color--accent-strong); }
.sc-mostra-su .sc-su { opacity: 1; transform: none; pointer-events: auto; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
