/*
Theme Name:   Boscoweb Kit
Theme URI:    https://boscoweb.it
Description:  Tema child di Kadence. Stile minimale e sezioni pronte (pattern) per siti vetrina di attività locali. Leggerissimo: font in locale, nessuna richiesta a Google, animazioni in CSS e poche righe di script, senza librerie.
Author:       Boscoweb
Author URI:   https://boscoweb.it
Template:     kadence
Version:      2.1.0
Requires at least: 6.3
Requires PHP: 7.4
License:      GPLv2 or later
Text Domain:  boscoweb-kit
*/

/* ==========================================================================
   1. FONT IN LOCALE (GDPR: nessun dato inviato a Google)
   Instrument Sans, licenza SIL Open Font License (vedi fonts/OFL.txt)
   Il font di ripiego ha le stesse proporzioni: quando arriva quello vero
   il testo non salta (punteggio CLS).
   ========================================================================== */
@font-face {
	font-family: "Instrument Sans";
	font-style: normal;
	font-display: swap;
	font-weight: 400 700;
	src: url("fonts/instrument-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Instrument Sans";
	font-style: normal;
	font-display: swap;
	font-weight: 400 700;
	src: url("fonts/instrument-sans-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Instrument Ripiego";
	src: local("Arial"), local("Liberation Sans"), local("Helvetica");
	size-adjust: 101%;
	ascent-override: 96%;
	descent-override: 25%;
	line-gap-override: 0%;
}

/* ==========================================================================
   2. VARIABILI — per un nuovo cliente si cambia quasi solo questo blocco
   ========================================================================== */
:root {
	--bw-paper: #f7f7f5;       /* sfondo pagina */
	--bw-white: #ffffff;       /* sfondo alternato */
	--bw-ink: #1b2120;         /* testo e titoli */
	--bw-graphite: #4c5654;    /* note secondarie */
	--bw-accent: #0f5e63;      /* colore principale: pulsanti, link, campo pieno */
	--bw-accent-ink: #ffffff;  /* testo sopra il colore principale */
	--bw-accent-soft: #e2eeee; /* tinta tenue del colore principale */
	--bw-night: #162221;       /* campo scuro */
	--bw-night-2: #1e2d2b;     /* campo scuro, un tono sopra */
	--bw-night-ink: #eef2f1;   /* testo sul campo scuro */
	--bw-font: "Instrument Sans", "Instrument Ripiego", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--bw-cut: 10px;            /* taglio a 45° dei pulsanti: 0 = angoli dritti */
	--bw-wrap: 1360px;         /* larghezza massima dei contenuti */
	--bw-gut: clamp(20px, 3vw, 40px);    /* margini laterali */
	--bw-sec-y: clamp(72px, 9vw, 136px); /* spazio verticale delle sezioni */
	--bw-edge: max(var(--bw-gut), calc((100vw - var(--scrollbar-offset, 0px) - var(--bw-wrap)) / 2 + var(--bw-gut)));
	/* Le cinque misure del testo */
	--bw-fs-display: clamp(44px, min(15vw, 27vh), 240px);
	--bw-fs-h2: clamp(32px, 4.6vw, 68px);
	--bw-fs-h3: clamp(22px, 2.1vw, 30px);
	--bw-fs-body: 18px;
	--bw-fs-small: 15px;
}

/* ==========================================================================
   3. BASE
   ========================================================================== */
body {
	background: var(--bw-paper);
	color: var(--bw-ink);
	font-family: var(--bw-font);
	font-size: var(--bw-fs-body);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6,
.entry-content h1, .entry-content h2, .entry-content h3 {
	font-family: var(--bw-font);
	font-weight: 600;
	color: inherit;
	letter-spacing: -0.03em;
	text-wrap: balance;
}
a { color: var(--bw-accent); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible,
summary:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}
#colophon .footer-html { font-size: var(--bw-fs-small); color: var(--bw-graphite); }

/* ==========================================================================
   4. PULSANTI (blocco Pulsante di WordPress)
   ========================================================================== */
.wp-block-buttons .wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: 54px;
	padding: 0 26px;
	font-family: var(--bw-font);
	font-weight: 600;
	font-size: var(--bw-fs-body);
	line-height: 1.1;
	border: 2px solid var(--bw-accent);
	border-radius: 0;
	background: var(--bw-accent);
	color: var(--bw-accent-ink);
	text-decoration: none;
	clip-path: polygon(0 0, calc(100% - var(--bw-cut)) 0, 100% var(--bw-cut), 100% 100%, 0 100%);
	transition: background-color .15s, color .15s, border-color .15s, transform .15s;
}
.wp-block-buttons .wp-block-button .wp-block-button__link:hover {
	background: var(--bw-ink);
	border-color: var(--bw-ink);
	color: var(--bw-accent-ink);
}
.wp-block-buttons .wp-block-button .wp-block-button__link:active { transform: translateY(2px); }
/* Il taglio nasconderebbe il contorno esterno: da tastiera il contorno sta dentro */
.wp-block-buttons .wp-block-button .wp-block-button__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -7px;
}
.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--bw-accent);
	clip-path: none;
}
.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--bw-accent-soft);
	border-color: var(--bw-accent);
	color: var(--bw-accent);
}
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==========================================================================
   5. STRUTTURA DELLE SEZIONI
   Ogni sezione: gruppo a tutta larghezza .bw-sec > gruppo interno .bw-wrap
   Le sezioni si separano col cambio di fondo, senza linee.
   ========================================================================== */
.entry-content > .bw-sec,
.bw-sec {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: var(--bw-sec-y);
	padding-bottom: var(--bw-sec-y);
	background: var(--bw-paper);
	color: var(--bw-ink);
}
.bw-sec.is-white { background: var(--bw-white); }
.bw-wrap {
	max-width: var(--bw-wrap);
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--bw-gut);
	padding-right: var(--bw-gut);
	box-sizing: border-box;
}
.bw-sec p { margin-top: 0; }
.bw-sec h2 {
	font-size: var(--bw-fs-h2);
	line-height: 1.04;
	margin: 0 0 clamp(28px, 4vw, 56px);
}
.bw-sec h3 {
	font-size: var(--bw-fs-h3);
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
}
.bw-lede { font-size: var(--bw-fs-h3); line-height: 1.3; letter-spacing: -0.01em; max-width: 34ch; }
.bw-note { font-size: var(--bw-fs-small); color: var(--bw-graphite); margin: 0; }
.bw-sec .wp-block-columns { display: grid; margin: 0; gap: clamp(32px, 5vw, 80px); }
.bw-sec .wp-block-column { min-width: 0; margin: 0; }
.bw-sec .wp-block-column p { max-width: 62ch; }
.bw-sec p > a:only-child { display: inline-block; padding: 11px 0; }

/* ==========================================================================
   6. APERTURA — solo parole, a tutta larghezza
   Il titolo è visibile dal primo istante e la sua entrata non aspetta script:
   è il contenuto più grande della pagina (punteggio LCP).
   ========================================================================== */
.bw-sec.bw-hero { padding-top: clamp(32px, 5vw, 72px); padding-bottom: clamp(48px, 6vw, 88px); }
.bw-hero h1 {
	font-size: var(--bw-fs-display);
	font-weight: 600;
	line-height: .96;
	letter-spacing: -0.045em;
	margin: 0 0 clamp(28px, 4vw, 56px);
	text-wrap: initial;
}
.bw-l { display: block; width: fit-content; position: relative; }
/* Il segnaposto della mappa cade sul puntino della i di "locali" */
.bw-l:last-child::after {
	content: "";
	position: absolute;
	right: -.035em;
	bottom: .66em;
	width: .24em;
	height: .33em;
	background: var(--bw-accent);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 44'%3E%3Cpath fill-rule='evenodd' d='M16 44C6 30 0 23 0 16a16 16 0 0 1 32 0c0 7-6 14-16 28Zm0-22a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.bw-l:last-child::before {
	/* Copre il puntino della i, visibile attraverso il foro del segnaposto */
	content: "";
	position: absolute;
	right: .01em;
	bottom: .715em;
	width: .15em;
	height: .15em;
	background: var(--bw-paper);
}
.bw-hero .wp-block-columns { grid-template-columns: 7fr 5fr; align-items: end; }
.bw-hero .bw-lede { max-width: 40ch; margin-bottom: 0; }
.bw-hero .wp-block-buttons { justify-content: flex-end; }

/* La pagina misura se stessa (riempito da poche righe in functions.php) */
.bw-meter {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px clamp(24px, 4vw, 56px);
	margin: clamp(32px, 4vw, 56px) 0 0;
}
.bw-meter p { margin: 0; font-size: var(--bw-fs-small); color: var(--bw-graphite); }
.bw-meter b {
	font-size: var(--bw-fs-h3);
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--bw-ink);
	font-variant-numeric: tabular-nums;
	margin-right: 4px;
}
.bw-meter a { font-size: var(--bw-fs-small); margin-left: auto; padding: 11px 0; }
/* Da collegati la barra di WordPress e i plugin falserebbero la misura */
.no-js .bw-meter p, .logged-in .bw-meter p { display: none; }

/* ==========================================================================
   6B. RICERCHE IN ZONA: righe grandi che scorrono con la pagina
   ========================================================================== */
.bw-sec.bw-searches { padding-top: clamp(32px, 4vw, 56px); padding-bottom: var(--bw-sec-y); overflow: clip; }
.bw-searches h2 { margin-bottom: clamp(20px, 2.4vw, 32px); }
.bw-sec .bw-mq {
	width: max-content;
	margin: 0;
	padding-left: var(--bw-edge);
	font-size: clamp(40px, 7vw, 112px);
	font-weight: 600;
	line-height: 1.16;
	letter-spacing: -0.04em;
	white-space: nowrap;
}
.bw-sec .bw-mq.is-back { color: var(--bw-accent); }
/* Senza animazione di scorrimento le righe vanno a capo, così si leggono tutte */
@supports not (animation-timeline: view()) {
	.bw-sec .bw-mq { width: auto; padding-right: var(--bw-edge); font-size: var(--bw-fs-h3); white-space: normal; }
}

/* ==========================================================================
   7. DUE METÀ ACCOSTATE (il problema)
   ========================================================================== */
.bw-sec.bw-split-sec { padding: 0; }
.bw-sec .wp-block-columns.bw-split { grid-template-columns: 1fr 1fr; gap: 0; }
.bw-split-a {
	background: var(--bw-accent-soft);
	padding: var(--bw-sec-y) clamp(24px, 4vw, 64px) var(--bw-sec-y) var(--bw-edge);
}
.bw-split-b {
	display: flex;
	flex-direction: column;
	background: var(--bw-night);
	color: var(--bw-night-ink);
}
.bw-row {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0 !important;
	padding: clamp(32px, 4vw, 56px) var(--bw-edge) clamp(32px, 4vw, 56px) clamp(24px, 4vw, 64px);
}
.bw-row:nth-child(even) { background: var(--bw-night-2); }
.bw-row p { margin: 0; max-width: 44ch; }

/* Scelta del mestiere: compare solo se lo script gira */
.bw-chips { display: none; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.bw-js .bw-chips { display: flex; }
.bw-chips button {
	min-height: 44px;
	padding: 0 14px;
	border: 0;
	border-radius: 0;
	background: var(--bw-white);
	color: var(--bw-ink);
	font: 600 var(--bw-fs-small) var(--bw-font);
	cursor: pointer;
	transition: background-color .15s, color .15s, transform .15s;
}
.bw-chips button:hover { background: var(--bw-paper); }
.bw-chips button:active { transform: translateY(2px); }
.bw-chips button:focus-visible { outline: 3px solid var(--bw-accent); outline-offset: 2px; }
.bw-chips button[aria-pressed="true"] { background: var(--bw-accent); color: var(--bw-accent-ink); }

/* Esempio di risultati locali, come su Google: mappa e tre attività */
[data-ui].bw-serp {
	--bw-r: 84px;
	background: var(--bw-white);
	padding: 16px;
	clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
}
[data-ui] .bw-serp-q { display: flex; align-items: center; gap: 10px; background: var(--bw-paper); border-radius: 24px; padding: 10px 16px; font-size: var(--bw-fs-body); }
[data-ui] .bw-serp-q svg { flex: none; }
[data-ui] .bw-map { display: block; width: 100%; height: 132px; margin-top: 10px; background: #e4ebe7; }
[data-ui] .bw-res {
	display: grid;
	grid-template-columns: 1fr auto;
	align-content: center;
	gap: 0 12px;
	height: calc(var(--bw-r) - 6px);
	margin-top: 6px;
	padding: 0 14px;
	box-sizing: border-box;
	background: var(--bw-paper);
}
[data-ui] .bw-res b { font-size: var(--bw-fs-body); font-weight: 600; color: var(--bw-ink); }
[data-ui] .bw-res small { grid-column: 1; font-size: var(--bw-fs-small); color: var(--bw-graphite); }
[data-ui] .bw-res i { grid-row: 1 / 3; grid-column: 2; align-self: center; font-style: normal; font-size: var(--bw-fs-small); font-weight: 600; color: var(--bw-accent); }
[data-ui] .bw-res.is-you { position: relative; z-index: 1; background: var(--bw-accent); }
[data-ui] .bw-res.is-you b,
[data-ui] .bw-res.is-you small,
[data-ui] .bw-res.is-you i { color: var(--bw-accent-ink); }
.bw-cap { margin: 12px 0 0; font-size: var(--bw-fs-small); color: var(--bw-graphite); }

/* ==========================================================================
   8. COME LAVORO — quello che dai, quello che ricevi
   ========================================================================== */
.bw-sec .wp-block-columns.bw-steps-grid { grid-template-columns: 5fr 7fr; align-items: start; }
.bw-steps-grid > .wp-block-column:first-child { position: sticky; top: 32px; }
.bw-step { margin: 0 0 clamp(48px, 6vw, 80px) !important; }
.bw-step:last-child { margin-bottom: 0 !important; }
.bw-step p { margin: 0; }
.bw-you { background: var(--bw-white); padding: 16px 20px; }
.bw-sec .bw-me-says { padding: 16px 20px; margin-left: clamp(0px, 4vw, 56px); background: var(--bw-accent-soft); margin-top: 8px; }
.bw-you strong, .bw-me-says strong { font-weight: 600; }

.bw-steps-grid > .wp-block-column:first-child p { margin-bottom: 28px; }
.bw-rail { position: relative; padding-left: clamp(20px, 2.6vw, 36px); }
.bw-rail::before, .bw-rail::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: var(--bw-accent-soft); }
.bw-rail::after { background: var(--bw-accent); transform-origin: top; }

/* ==========================================================================
   9. SERVIZI — listino in tabella vera (la leggono anche i motori di ricerca)
   ========================================================================== */
.bw-sec .wp-block-columns.bw-serv-head { grid-template-columns: 7fr 5fr; align-items: end; margin-bottom: clamp(40px, 5vw, 72px); }
.bw-serv-head h2 { margin-bottom: 0; }
.bw-serv-head p { margin: 0; max-width: 44ch; }

.bw-prices { margin: 0; overflow: visible; }
.bw-prices table { width: 100%; border-collapse: collapse; }
.wp-block-table.bw-prices th, .wp-block-table.bw-prices td { border: 0; padding: clamp(24px, 2.8vw, 40px) clamp(16px, 2vw, 28px); text-align: left; vertical-align: baseline; }
/* Intestazione nascosta alla vista, utile a lettori di schermo e motori di ricerca */
.wp-block-table.bw-prices thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); border: 0; }
.bw-prices tbody tr:nth-child(odd) { background: var(--bw-paper); }
.bw-prices tbody tr { transition: background-color .2s; }
.bw-prices tbody tr:hover { background: var(--bw-accent-soft); }
.wp-block-table.bw-prices td:first-child { width: 34%; font-size: var(--bw-fs-h3); font-weight: 600; line-height: 1.15; letter-spacing: -0.02em; }
.wp-block-table.bw-prices td:last-child { width: 24%; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bw-prices td strong { font-size: var(--bw-fs-h3); font-weight: 600; letter-spacing: -0.02em; }

/* ==========================================================================
   10. PER CHI LAVORO — elenco grande e campo pieno
   ========================================================================== */
.bw-sec .wp-block-columns.bw-who { grid-template-columns: 7fr 5fr; align-items: stretch; }
.bw-sec .bw-biglist {
	list-style: none;
	margin: 0 0 clamp(24px, 3vw, 40px);
	padding: 0;
	font-size: var(--bw-fs-h2);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -0.03em;
}
.bw-who p { margin: 0; max-width: 46ch; }
.bw-callout {
	height: 100%;
	box-sizing: border-box;
	background: var(--bw-accent);
	color: var(--bw-accent-ink);
	padding: clamp(28px, 4vw, 56px);
}
.bw-callout .wp-block-group__inner-container { display: flex; flex-direction: column; height: 100%; }
.bw-callout h3 { font-size: var(--bw-fs-h2); line-height: 1.04; letter-spacing: -0.03em; margin-bottom: 20px; }
.bw-callout a { color: inherit; font-weight: 600; }
.bw-callout p:last-child { margin-top: auto; padding-top: 28px; }

/* ==========================================================================
   11. CHI SONO
   ========================================================================== */
.bw-sec .wp-block-columns.bw-me { grid-template-columns: 4fr 8fr; align-items: end; }
.bw-photo { margin: 0; }
.bw-photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: var(--bw-paper);
	clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%);
}
.bw-statement { font-size: var(--bw-fs-h3); line-height: 1.28; letter-spacing: -0.015em; max-width: 36ch; }
.bw-statement mark { background: var(--bw-accent-soft); color: inherit; padding: 0 .12em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.bw-me p:last-child { margin-bottom: 0; }

/* ==========================================================================
   12. CAMPO SCURO (audit)
   ========================================================================== */
.bw-sec.bw-cta { background: var(--bw-night); color: var(--bw-night-ink); }
.bw-cta h2 { max-width: 15em; }
.bw-sec .bw-cta-grid.wp-block-columns { grid-template-columns: 7fr 5fr; align-items: end; }
.bw-cta p { margin: 0; max-width: 44ch; }
.bw-cta .wp-block-buttons { justify-content: flex-end; }
.bw-cta .wp-block-buttons .wp-block-button .wp-block-button__link { background: var(--bw-white); color: var(--bw-night); border-color: var(--bw-white); }
.bw-cta .wp-block-buttons .wp-block-button .wp-block-button__link:hover { background: var(--bw-accent-soft); border-color: var(--bw-accent-soft); color: var(--bw-night); }

/* ==========================================================================
   13. DOMANDE FREQUENTI (blocco Dettagli: nessuno script)
   ========================================================================== */
.bw-faq-list { margin-left: calc(100% / 3); }
.bw-faq-list .wp-block-details { margin: 0 0 8px; padding: 0 24px; transition: background-color .15s; }
.bw-faq-list .wp-block-details[open], .bw-faq-list .wp-block-details:hover { background: var(--bw-white); }
.bw-faq-list summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	min-height: 48px;
	padding: 18px 0;
	font-size: var(--bw-fs-h3);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.015em;
}
.bw-faq-list summary::-webkit-details-marker { display: none; }
.bw-faq-list summary::after {
	content: "";
	flex: none;
	width: 11px;
	height: 11px;
	border-right: 2px solid var(--bw-accent);
	border-bottom: 2px solid var(--bw-accent);
	transform: translateY(-3px) rotate(45deg);
	transition: transform .15s;
}
.bw-faq-list details[open] summary::after { transform: translateY(3px) rotate(225deg); }
.bw-faq-list .wp-block-details p { padding-bottom: 24px; margin: 0; max-width: 56ch; }

/* ==========================================================================
   14. CHIUSURA — il contatto è il titolo
   ========================================================================== */
.bw-sec.bw-close { background: var(--bw-accent); color: var(--bw-accent-ink); }
.bw-sec .bw-close-line {
	font-size: clamp(38px, 8.6vw, 136px);
	line-height: 1;
	letter-spacing: -0.04em;
	margin: 0 0 clamp(24px, 3vw, 40px);
}
.bw-close-line a { color: inherit; text-decoration: none; }
.bw-close-line a:hover { text-decoration: underline; text-decoration-thickness: .05em; }
.bw-close p { margin: 0; max-width: 62ch; }
.bw-close p a { color: inherit; font-weight: 600; white-space: nowrap; }

/* ==========================================================================
   15. TELEFONO
   ========================================================================== */
@media (max-width: 781px) {
	.bw-sec .wp-block-columns,
	.bw-hero .wp-block-columns,
	.bw-sec .wp-block-columns.bw-split,
	.bw-sec .wp-block-columns.bw-steps-grid,
	.bw-sec .wp-block-columns.bw-serv-head,
	.bw-sec .wp-block-columns.bw-who,
	.bw-sec .bw-cta-grid.wp-block-columns { grid-template-columns: minmax(0, 1fr); }
	.bw-hero .wp-block-buttons, .bw-cta .wp-block-buttons { justify-content: flex-start; }
	.wp-block-buttons .wp-block-button { width: 100%; }
	.wp-block-buttons .wp-block-button .wp-block-button__link { width: 100%; justify-content: center; box-sizing: border-box; }
	.bw-meter a { margin-left: 0; width: 100%; }
	.bw-split-a { padding: var(--bw-sec-y) var(--bw-gut); }
	.bw-row { padding-left: var(--bw-gut); padding-right: var(--bw-gut); }
	[data-ui].bw-serp { padding: 12px; }
	[data-ui] .bw-map { height: 104px; }
	.bw-steps-grid > .wp-block-column:first-child { position: static; }
	.bw-prices table, .bw-prices tbody, .bw-prices tr, .wp-block-table.bw-prices td { display: block; width: auto; }
	.bw-prices tr { padding: 24px 20px; }
	.wp-block-table.bw-prices td, .wp-block-table.bw-prices td:first-child, .wp-block-table.bw-prices td:last-child { width: auto; padding: 0 0 8px; text-align: left; white-space: normal; }
	.bw-faq-list { margin-left: 0; }
	.bw-faq-list .wp-block-details { padding: 0 16px; margin-left: -16px; margin-right: -16px; }
}

@media (max-width: 599px) {
	.bw-sec .wp-block-columns.bw-me { grid-template-columns: minmax(0, 1fr); }
	.bw-photo { max-width: 300px; }
}

/* ==========================================================================
   16. MOVIMENTO — solo trasformazioni, nessuna libreria.
   Ogni contenuto è nascosto solo se lo script è partito (.bw-anim), quindi
   senza script la pagina è completa. Chi chiede meno animazioni le vede ferme.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	/* Apertura: solo CSS, parte col primo disegno della pagina */
	.wp-theme-kadence .bw-l { animation: bw-line .85s cubic-bezier(.16, 1, .3, 1) backwards; }
	.wp-theme-kadence .bw-l:last-child { animation-delay: .08s; }
	.wp-theme-kadence .bw-l:last-child::after { animation: bw-pin .75s linear .75s backwards, bw-hop 6s ease-in-out 4s infinite; transform-origin: 50% 100%; }
	.wp-theme-kadence .bw-hero .wp-block-columns { animation: bw-up .7s cubic-bezier(.16, 1, .3, 1) .2s backwards; }
	.wp-theme-kadence .bw-meter { animation: bw-up .7s cubic-bezier(.16, 1, .3, 1) .3s backwards; }

	/* Titoli: parola per parola, da dietro la propria riga */
	.bw-anim .bw-w { display: inline-block; overflow: clip; overflow-clip-margin: .02em; padding-bottom: .16em; margin-bottom: -.16em; vertical-align: top; }
	.bw-anim .bw-w > span { display: inline-block; transform: translateY(112%) rotate(4deg); transform-origin: 0 100%; transition: transform .95s cubic-bezier(.16, 1, .3, 1); }
	.bw-anim .bw-split.is-in .bw-w > span { transform: none; }

	/* Parti di ogni sezione: salgono una dopo l'altra */
	.bw-anim .bw-rise { opacity: 0; transform: translateY(36px); transition: opacity .7s ease-out var(--bw-d, 0ms), transform .9s cubic-bezier(.16, 1, .3, 1) var(--bw-d, 0ms); }
	.bw-anim .bw-rise.is-in { opacity: 1; transform: none; }
	.bw-anim .bw-step.bw-rise { transform: translateX(64px); }
	.bw-anim .bw-step.bw-rise.is-in { transform: none; }

	/* La tua attività risale al primo posto; si ripete a ogni mestiere scelto */
	.bw-anim .bw-serp .bw-res { transition: none; transform: translateY(calc(var(--bw-r) * -1)); }
	.bw-anim .bw-serp .bw-res.is-you { transform: translateY(calc(var(--bw-r) * 2)); }
	.bw-anim .bw-serp.is-in .bw-res { transform: none; transition: transform .95s cubic-bezier(.34, 1.3, .5, 1) .45s; }
	.bw-anim .bw-serp.is-in .bw-map-you { animation: bw-drop .7s linear 1.1s backwards; }

	.bw-anim .wp-block-details[open] p { animation: bw-up .45s cubic-bezier(.16, 1, .3, 1); }
	.bw-faq-list summary { transition: transform .2s; }
	.bw-faq-list summary:hover { transform: translateX(6px); }

	/* Legati allo scorrimento: si muovono solo se chi legge scorre */
	@supports (animation-timeline: view()) {
		.wp-theme-kadence .bw-mq { animation: bw-mq-a linear both; animation-timeline: view(); }
		.wp-theme-kadence .bw-mq.is-back { animation-name: bw-mq-b; }
		.wp-theme-kadence .bw-rail::after { animation: bw-fill linear both; animation-timeline: view(); animation-range: cover 18% cover 72%; }
		.wp-theme-kadence .bw-sec.bw-cta { animation: bw-open linear both; animation-timeline: view(); animation-range: entry 0% entry 80%; }
		.wp-theme-kadence .bw-photo { animation: bw-unveil linear both; animation-timeline: view(); animation-range: entry 0% cover 45%; }
		.wp-theme-kadence .bw-photo img { animation: bw-settle linear both; animation-timeline: view(); animation-range: entry 0% exit 100%; }
	}
}
@keyframes bw-line {
	from { transform: translateY(42%); clip-path: inset(-12% -6% 42% -6%); }
	to { transform: none; clip-path: inset(-12% -6% -24% -6%); }
}
@keyframes bw-up { from { opacity: 0; transform: translateY(24px); } }
@keyframes bw-pin {
	0% { transform: translateY(-1.3em); opacity: 0; }
	12% { opacity: 1; }
	55% { transform: translateY(0) scale(1.08, .86); }
	72% { transform: translateY(-.12em) scale(.97, 1.04); }
	88% { transform: translateY(0) scale(1.03, .96); }
	100% { transform: none; }
}
@keyframes bw-hop {
	0%, 14%, 100% { transform: none; }
	4%   { transform: translateY(-.25em); }
	8%   { transform: translateY(0) scale(1.08, .86); }
	10.5% { transform: translateY(-.08em) scale(.97, 1.04); }
	13%  { transform: translateY(0) scale(1.03, .96); }
}
@keyframes bw-drop {
	0% { transform: translateY(-40px); opacity: 0; }
	55% { transform: translateY(0); opacity: 1; }
	75% { transform: translateY(-7px); }
	100% { transform: none; }
}
@keyframes bw-mq-a { from { transform: translateX(0); } to { transform: translateX(-22%); } }
@keyframes bw-mq-b { from { transform: translateX(-22%); } to { transform: translateX(0); } }
@keyframes bw-fill { from { transform: scaleY(0); } to { transform: none; } }
@keyframes bw-open { from { clip-path: inset(0 7%); } to { clip-path: inset(0); } }
@keyframes bw-unveil { from { clip-path: inset(16% 12%); } to { clip-path: inset(0); } }
@keyframes bw-settle { from { transform: scale(1.18) translateY(-4%); } to { transform: scale(1.02) translateY(3%); } }
@media (prefers-reduced-motion: reduce) {
	.wp-block-buttons .wp-block-button .wp-block-button__link,
	.bw-faq-list summary::after,
	.bw-chips button { transition: none; }
}
#masthead{
  position:sticky; top:0; z-index:100;
  transition:transform .25s ease, box-shadow .25s;
}
body.admin-bar #masthead{ top:32px; }
@media (max-width:782px){ body.admin-bar #masthead{ top:46px; } }
#masthead.nascosto{ transform:translateY(-100%); }
#masthead.staccato{ box-shadow:0 1px 0 rgb(30 36 34 / .1); }
@media (prefers-reduced-motion:reduce){ #masthead{ transition:none; } }