/* ============================================================
 * BW-C Theme — main.css
 * ============================================================ */

/* DESIGN TOKENS — colori veri tema BW-C */
:root {
	/* Brand colors */
	--bwc-accent:    #0169B4;   /* BLU primario */
	--bwc-accent2:   #E94E24;   /* ARANCIO secondario */
	--bwc-text:      #7A7A7A;   /* grigio testo */
	--bwc-highlight: #2C3E48;   /* blu scuro */
	--bwc-dark:      #1C1C1C;   /* nero quasi */
	--bwc-white:     #FFFFFF;   /* bianco puro */

	/* Typography */
	--font-display: 'Archivo', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--font-body:    'Archivo', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--font-italic:  'Lora', Georgia, serif;
	--font-mono:    'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

	/* Motion */
	--ease:     cubic-bezier(0.22, 0.61, 0.36, 1);
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);

	/* Layout */
	--container: 1280px;
	--container-wide: 1480px;
	--gutter: clamp(20px, 4vw, 48px);

	/* Default colors fallback (se data-bwc-theme non settato) — usa LIGHT come default */
	--bwc-bg:            var(--bwc-white);
	--bwc-bg-alt:        #FAFAFA;
	--bwc-bg-card:       var(--bwc-white);
	--bwc-bg-inset:      #F5F5F5;
	--bwc-fg:            var(--bwc-dark);
	--bwc-fg-muted:      var(--bwc-text);
	--bwc-fg-faint:      #B0B0B0;
	--bwc-border:        rgba(28,28,28,.10);
	--bwc-border-strong: rgba(28,28,28,.18);
}

/* DARK mode (default) — usa qualunque selettore il sito imposti */
html[data-bwc-theme="dark"],
html[data-theme="dark"],
body[data-theme="dark"] {
	--bwc-bg:        var(--bwc-dark);
	--bwc-bg-alt:    #232323;
	--bwc-bg-card:   #1F1F1F;
	--bwc-bg-inset:  #161616;
	--bwc-fg:        var(--bwc-white);
	--bwc-fg-muted:  rgba(255,255,255,.65);
	--bwc-fg-faint:  rgba(255,255,255,.42);
	--bwc-border:    rgba(255,255,255,.10);
	--bwc-border-strong: rgba(255,255,255,.18);
}

/* LIGHT mode */
html[data-bwc-theme="light"],
html[data-theme="light"],
body[data-theme="light"] {
	--bwc-bg:        var(--bwc-white);
	--bwc-bg-alt:    #FAFAFA;
	--bwc-bg-card:   var(--bwc-white);
	--bwc-bg-inset:  #F5F5F5;
	--bwc-fg:        var(--bwc-dark);
	--bwc-fg-muted:  var(--bwc-text);
	--bwc-fg-faint:  #B0B0B0;
	--bwc-border:    rgba(28,28,28,.10);
	--bwc-border-strong: rgba(28,28,28,.18);
}

/* RESET */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.55;
	background: var(--bwc-bg);
	color: var(--bwc-fg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	transition: background .35s var(--ease), color .35s var(--ease);
}
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--bwc-accent2); }
em { font-style: italic; font-family: var(--font-italic); color: var(--bwc-accent2); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* SKIP LINK (accessibility) */
.bwc-skip {
	position: absolute; top: -40px; left: 8px; padding: 8px 14px;
	background: var(--bwc-accent2); color: #fff; font-weight: 700; z-index: 9999;
	transition: top .2s;
}
.bwc-skip:focus { top: 8px; }

/* ============================================================
 * HEADER
 * ============================================================ */
.bwc-header {
	position: sticky; top: 0; z-index: 100;
	background: color-mix(in srgb, var(--bwc-bg) 92%, transparent);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--bwc-border);
}
.bwc-header__inner {
	max-width: var(--container-wide);
	margin: 0 auto;
	padding: 14px var(--gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.bwc-logo {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--font-display); font-weight: 800;
	letter-spacing: -.01em; font-size: 16px;
}
.bwc-logo__dot {
	width: 16px; height: 16px; border: 2px solid currentColor; border-radius: 50%;
	display: inline-block; position: relative;
}
.bwc-logo__dot::after {
	content: ''; position: absolute; inset: 3px; border-radius: 50%;
	background: var(--bwc-accent2);
}
.bwc-logo__text em {
	font-style: normal; color: inherit; font-family: inherit;
}
.bwc-nav {
	flex: 1;
	display: flex; justify-content: center;
}
.bwc-nav__list {
	display: flex; gap: 28px; list-style: none; margin: 0; padding: 0;
	font-size: 15px; font-weight: 500;
}
.bwc-nav__list a {
	position: relative;
	padding: 6px 2px;
	transition: color .2s;
}
.bwc-nav__list a::after {
	content: ''; position: absolute; left: 0; bottom: 0; height: 2px; width: 0;
	background: var(--bwc-accent2); transition: width .25s var(--ease);
}
.bwc-nav__list a:hover::after,
.bwc-nav__list .is-active > a::after,
.bwc-nav__list .current-menu-item > a::after { width: 100%; }

/* SUBMENU DROPDOWN (es. Servizi → Marketing, Web Design, ecc.) */
.bwc-nav__list li {
	position: relative;
}
.bwc-nav__list .sub-menu,
.bwc-nav__list .children {
	position: absolute; top: 100%; left: -16px;
	min-width: 240px;
	background: var(--bwc-bg-card);
	border: 1px solid var(--bwc-border);
	border-radius: 12px;
	padding: 10px;
	margin: 0;
	list-style: none;
	display: flex; flex-direction: column; gap: 2px;
	opacity: 0; visibility: hidden; transform: translateY(-6px);
	transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
	z-index: 50;
	box-shadow: 0 16px 40px rgba(0,0,0,.18);
}
.bwc-nav__list li:hover > .sub-menu,
.bwc-nav__list li:hover > .children,
.bwc-nav__list li:focus-within > .sub-menu,
.bwc-nav__list li:focus-within > .children {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.bwc-nav__list .sub-menu a,
.bwc-nav__list .children a {
	padding: 10px 14px;
	border-radius: 8px;
	font-size: 14px; font-weight: 500;
	white-space: nowrap;
	transition: background .15s, color .15s;
}
.bwc-nav__list .sub-menu a:hover,
.bwc-nav__list .children a:hover {
	background: var(--bwc-bg-inset);
	color: var(--bwc-accent2);
}
.bwc-nav__list .sub-menu a::after,
.bwc-nav__list .children a::after { display: none; }
/* Indicatore freccia per voci con submenu */
.bwc-nav__list .menu-item-has-children > a::before,
.bwc-nav__list .page_item_has_children > a::before {
	content: '';
	display: inline-block;
	width: 6px; height: 6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	margin-right: 6px;
	vertical-align: 2px;
	opacity: .5;
}

.bwc-header__utility {
	display: flex; align-items: center; gap: 14px;
}
.bwc-lang { display: flex; gap: 4px; font-size: 13px; font-weight: 600; }
.bwc-lang ul { display: flex; gap: 6px; list-style: none; padding: 0; margin: 0; }
.bwc-lang a { text-transform: uppercase; opacity: .55; }
.bwc-lang .current-lang a, .bwc-lang a:hover { opacity: 1; }

.bwc-theme-toggle {
	width: 36px; height: 36px; border-radius: 50%;
	background: transparent; border: 1px solid var(--bwc-border-strong);
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--bwc-fg); cursor: pointer; transition: border-color .2s, color .2s;
}
.bwc-theme-toggle:hover { border-color: var(--bwc-accent2); color: var(--bwc-accent2); }
.bwc-theme-toggle__sun { display: none; }
.bwc-theme-toggle__moon { display: block; }
html[data-bwc-theme="dark"] .bwc-theme-toggle__sun { display: block; }
html[data-bwc-theme="dark"] .bwc-theme-toggle__moon { display: none; }

.bwc-burger { display: none; }

/* Toggle submenu (creato da JS): visibile SOLO su mobile quando menu aperto */
.bwc-nav__toggle { display: none; }
body.menu-open .bwc-nav__toggle { display: flex; }

@media (max-width: 1024px) {
	.bwc-nav { display: none; }
	.bwc-burger {
		display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
		width: 44px; height: 44px; padding: 10px; background: transparent; border: 1px solid var(--bwc-border-strong);
		border-radius: 8px; cursor: pointer;
		transition: border-color .2s, background .2s;
		position: relative;
		z-index: 9999;
	}
	.bwc-burger:hover { border-color: var(--bwc-accent2); }
	.bwc-burger span {
		display: block;
		height: 2px;
		background: var(--bwc-fg);
		transition: transform .25s var(--ease), opacity .2s;
		transform-origin: center;
	}

	/* === BODY LOCK iOS-friendly quando menu aperto === */
	body.menu-open {
		overflow: hidden !important;
		position: fixed;
		width: 100%;
		left: 0;
		right: 0;
	}

	/* === HEADER quando menu aperto ===
	 * z-index DEVE essere alto perché .bwc-header crea stacking context sticky + z-index.
	 * Il NAV figlio con z-index 9000 funziona solo *dentro* lo stacking context dell'header.
	 * Se altri elementi di pagina (es. .bwc-hero-v2__inner con z-index: 2) hanno z-index
	 * superiore al piano dell'header, il menu risulta visivamente sopra ma funzionalmente
	 * sotto (click "passano attraverso" al contenuto sotto). Soluzione: alziamo header
	 * a 9000 così tutto il suo stacking context sale sopra qualsiasi cosa in pagina.
	 *
	 * Anche backdrop-filter/transform su header creerebbero stacking context = via.
	 */
	body.menu-open .bwc-header {
		z-index: 9000;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		background: transparent !important;
		border-bottom-color: transparent !important;
	}

	/* === MENU MOBILE FULLSCREEN (versione v2.5.8 stabile) === */
	body.menu-open .bwc-nav {
		display: flex !important;
		flex-direction: column;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		background: var(--bwc-bg);
		padding: 90px clamp(20px, 5vw, 32px) 40px;
		z-index: 9000;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		animation: bwc-menu-slide .35s cubic-bezier(.2, .8, .2, 1);
		isolation: isolate;
	}
	@keyframes bwc-menu-slide {
		from { opacity: 0; transform: translateY(-12px); }
		to { opacity: 1; transform: translateY(0); }
	}

	/* === CLOSE BUTTON (la X) — fixed in alto a destra === */
	body.menu-open .bwc-burger {
		position: fixed !important;
		top: 18px;
		right: clamp(20px, 5vw, 32px);
		background: var(--bwc-bg);
		border-color: var(--bwc-fg);
		z-index: 9001 !important;
	}
	body.menu-open .bwc-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	body.menu-open .bwc-burger span:nth-child(2) { opacity: 0; }
	body.menu-open .bwc-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

	body.menu-open .bwc-nav__list {
		flex-direction: column !important;
		gap: 6px !important;
		font-size: 22px !important;
		align-items: stretch !important;
		display: flex !important;
		list-style: none;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	body.menu-open .bwc-nav__list > li {
		display: block !important;
		width: 100%;
		position: relative;
		border-bottom: 1px solid var(--bwc-border);
	}
	body.menu-open .bwc-nav__list > li:last-child {
		border-bottom: 0;
	}

	body.menu-open .bwc-nav__list > li > a {
		display: flex !important;
		align-items: center;
		min-height: 64px;
		padding: 18px 4px;
		font-weight: 700;
		font-size: 22px;
		letter-spacing: -.01em;
		color: var(--bwc-fg);
		text-decoration: none;
		transition: color .2s, transform .2s var(--ease);
	}
	body.menu-open .bwc-nav__list > li > a:hover,
	body.menu-open .bwc-nav__list > li > a:focus {
		color: var(--bwc-accent2);
	}
	body.menu-open .bwc-nav__list > li.current-menu-item > a,
	body.menu-open .bwc-nav__list > li.current_page_item > a {
		color: var(--bwc-accent2);
	}

	/* === TOGGLE BUTTON per submenu === */
	.bwc-nav__toggle {
		position: absolute;
		top: 50%;
		right: 0;
		transform: translateY(-50%);
		width: 48px;
		height: 48px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: transparent;
		border: 1px solid var(--bwc-border);
		border-radius: 8px;
		cursor: pointer;
		color: var(--bwc-fg-muted);
		transition: all .25s var(--ease);
		z-index: 2;
	}
	body.menu-open .bwc-nav__list > li.menu-item-has-children > a {
		padding-right: 64px;
	}
	.bwc-nav__toggle svg {
		transition: transform .3s var(--ease);
	}
	body.menu-open .bwc-nav__list > li.is-open .bwc-nav__toggle {
		background: var(--bwc-accent2);
		border-color: var(--bwc-accent2);
		color: #fff;
	}
	body.menu-open .bwc-nav__list > li.is-open .bwc-nav__toggle svg {
		transform: rotate(180deg);
	}

	/* === SUBMENU: collapsed di default, espande con toggle === */
	body.menu-open .bwc-nav__list .sub-menu,
	body.menu-open .bwc-nav__list .children {
		position: static !important;
		opacity: 0 !important;
		visibility: hidden !important;
		transform: none !important;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
		padding: 0 !important;
		margin: 0 !important;
		display: none !important;
		flex-direction: column;
		min-width: 0;
		max-height: 0;
		overflow: hidden;
		transition: max-height .35s var(--ease), opacity .25s var(--ease);
	}

	body.menu-open .bwc-nav__list > li.is-open .sub-menu,
	body.menu-open .bwc-nav__list > li.is-open .children {
		display: flex !important;
		opacity: 1 !important;
		visibility: visible !important;
		max-height: 1000px;
		padding: 4px 0 20px 16px !important;
		gap: 4px;
		animation: bwc-submenu-slide .3s var(--ease);
	}
	@keyframes bwc-submenu-slide {
		from { opacity: 0; transform: translateY(-8px); }
		to { opacity: 1; transform: translateY(0); }
	}

	body.menu-open .bwc-nav__list .sub-menu li,
	body.menu-open .bwc-nav__list .children li {
		list-style: none;
		margin: 0;
		padding: 0;
		border-left: 2px solid var(--bwc-border);
	}
	body.menu-open .bwc-nav__list .sub-menu li > a,
	body.menu-open .bwc-nav__list .children li > a {
		display: flex !important;
		align-items: center;
		min-height: 52px;
		padding: 14px 0 14px 18px !important;
		font-size: 17px !important;
		font-weight: 500 !important;
		color: var(--bwc-fg-muted);
		line-height: 1.4;
		text-decoration: none;
		transition: color .2s, border-color .2s, padding-left .2s;
	}
	body.menu-open .bwc-nav__list .sub-menu li > a:hover,
	body.menu-open .bwc-nav__list .sub-menu li > a:focus,
	body.menu-open .bwc-nav__list .children li > a:hover,
	body.menu-open .bwc-nav__list .children li > a:focus {
		color: var(--bwc-accent2);
		padding-left: 24px !important;
	}
	body.menu-open .bwc-nav__list .sub-menu li:hover,
	body.menu-open .bwc-nav__list .children li:hover {
		border-left-color: var(--bwc-accent2);
	}
}

/* ============================================================
 * GENERIC SECTIONS
 * ============================================================ */
.bwc-section {
	padding: clamp(60px, 9vw, 120px) 0;
	position: relative;
}
.bwc-section--inset { background: var(--bwc-bg-inset); }
.bwc-container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.bwc-container--wide { max-width: var(--container-wide); }

.bwc-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
	color: var(--bwc-fg-muted); margin-bottom: 18px;
}
.bwc-eyebrow::before {
	content: ''; width: 18px; height: 1px; background: var(--bwc-accent2);
}

/* Hero default (page.php) */
.bwc-hero {
	padding: clamp(80px, 12vw, 160px) 0 clamp(40px, 6vw, 80px);
	background: var(--bwc-bg);
}
.bwc-hero h1 {
	font-family: var(--font-display);
	font-size: clamp(40px, 7vw, 88px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: -0.02em;
	margin: 0 0 18px;
}
.bwc-hero h1 em {
	font-family: var(--font-italic); font-style: italic; color: var(--bwc-accent2);
	font-weight: 600;
}
.bwc-hero__lead {
	max-width: 720px; font-size: clamp(16px, 1.6vw, 19px); color: var(--bwc-fg-muted);
}

/* HERO GIANT (front page) — v1 (legacy, used as fallback) */
.bwc-hero-giant {
	min-height: clamp(560px, 92vh, 880px);
	padding: clamp(80px, 12vw, 140px) 0 clamp(40px, 6vw, 90px);
	display: flex; align-items: center;
	background:
		radial-gradient(ellipse at 30% 30%, rgba(1,105,180,.18), transparent 55%),
		radial-gradient(ellipse at 80% 80%, rgba(233,78,36,.12), transparent 60%),
		var(--bwc-bg);
	position: relative; overflow: hidden;
}
.bwc-hero-giant__inner { position: relative; z-index: 2; text-align: center; max-width: 1100px; margin: 0 auto; padding: 0 var(--gutter); }
.bwc-hero-giant__eyebrow {
	display: inline-flex; gap: 22px; font-size: 12px; font-weight: 700; letter-spacing: .26em;
	color: var(--bwc-fg-muted); margin-bottom: 28px;
}
.bwc-hero-giant__eyebrow span { position: relative; }
.bwc-hero-giant__eyebrow span:not(:last-child)::after {
	content: ''; position: absolute; right: -14px; top: 50%; width: 6px; height: 6px; border-radius: 50%;
	background: var(--bwc-accent2); transform: translateY(-50%);
}
.bwc-hero-giant h1 {
	font-family: var(--font-display);
	font-size: clamp(48px, 9vw, 156px);
	font-weight: 800;
	line-height: .92;
	letter-spacing: -0.025em;
	margin: 0 0 28px;
}
.bwc-hero-giant h1 em {
	font-family: var(--font-italic); font-style: italic; color: var(--bwc-accent2); font-weight: 600;
}
.bwc-hero-giant__lead {
	max-width: 580px; margin: 0 auto 36px; font-size: clamp(15px, 1.4vw, 17px);
	color: var(--bwc-fg-muted); line-height: 1.6;
}
.bwc-hero-giant__cta { display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* ============================================================
 * HERO V2 — animated (front-page primary hero)
 * ============================================================ */
.bwc-hero-v2 {
	position: relative;
	min-height: clamp(640px, 95vh, 920px);
	padding: clamp(80px, 12vw, 140px) 0 clamp(40px, 6vw, 90px);
	background: var(--bwc-bg);
	overflow: hidden;
	display: flex; flex-direction: column; justify-content: space-between;
}

/* Animated orbs */
.bwc-hero-v2__orbs {
	position: absolute; inset: 0;
	pointer-events: none; z-index: 0;
}
.bwc-hero-v2__orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(80px);
	opacity: .55;
	mix-blend-mode: screen;
	will-change: transform;
}
html[data-bwc-theme="light"] .bwc-hero-v2__orb { mix-blend-mode: multiply; opacity: .35; filter: blur(110px); }
.bwc-hero-v2__orb--1 {
	width: 480px; height: 480px;
	background: radial-gradient(circle, #0169B4, transparent 70%);
	top: -100px; left: -120px;
	animation: bwc-orb-1 22s ease-in-out infinite;
}
.bwc-hero-v2__orb--2 {
	width: 520px; height: 520px;
	background: radial-gradient(circle, #E94E24, transparent 70%);
	bottom: -100px; right: -120px;
	animation: bwc-orb-2 28s ease-in-out infinite;
}
.bwc-hero-v2__orb--3 {
	width: 380px; height: 380px;
	background: radial-gradient(circle, #2C3E48, transparent 70%);
	top: 40%; left: 50%;
	animation: bwc-orb-3 35s ease-in-out infinite;
}
@keyframes bwc-orb-1 {
	0%, 100% { transform: translate(0, 0) scale(1); }
	33% { transform: translate(140px, 80px) scale(1.15); }
	66% { transform: translate(-60px, 160px) scale(.92); }
}
@keyframes bwc-orb-2 {
	0%, 100% { transform: translate(0, 0) scale(1); }
	50% { transform: translate(-180px, -100px) scale(1.2); }
}
@keyframes bwc-orb-3 {
	0%, 100% { transform: translate(-50%, -50%) scale(1); }
	25% { transform: translate(-30%, -60%) scale(1.1); }
	50% { transform: translate(-70%, -40%) scale(.9); }
	75% { transform: translate(-50%, -30%) scale(1.05); }
}

/* Grid overlay */
.bwc-hero-v2__grid {
	position: absolute; inset: 0;
	background-image:
		linear-gradient(var(--bwc-border) 1px, transparent 1px),
		linear-gradient(90deg, var(--bwc-border) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
	-webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
	opacity: .35; z-index: 1;
	pointer-events: none;
}

.bwc-hero-v2__inner {
	position: relative; z-index: 2;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--gutter);
	flex: 1; display: flex; flex-direction: column; justify-content: center;
	text-align: center;
}

.bwc-hero-v2__eyebrow {
	display: inline-flex; align-items: center; gap: 12px;
	font-size: 11px; font-weight: 700; letter-spacing: .26em;
	color: var(--bwc-fg-muted);
	margin: 0 auto 32px;
	padding: 8px 18px; border-radius: 999px;
	border: 1px solid var(--bwc-border-strong);
	backdrop-filter: blur(10px);
}
.bwc-hero-v2__pulse {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--bwc-accent2);
	animation: bwc-pulse 1.6s infinite;
	flex-shrink: 0;
}

.bwc-hero-v2__h1 {
	font-family: var(--font-display);
	font-size: clamp(40px, 8vw, 132px);
	font-weight: 800;
	line-height: .92;
	letter-spacing: -0.025em;
	margin: 0 0 32px;
}

/* WORD ROTATOR */
.bwc-hero-v2__rotator {
	display: inline-block;
	position: relative;
	min-width: 9ch;
	min-height: 1em;
	vertical-align: baseline;
}
.bwc-hero-v2__rotator em {
	font-family: var(--font-italic);
	font-style: italic;
	color: var(--bwc-accent2);
	font-weight: 600;
	position: absolute;
	left: 50%; top: 0;
	transform: translateX(-50%) translateY(20px);
	opacity: 0;
	white-space: nowrap;
	transition: opacity .5s var(--ease-out), transform .5s var(--ease-out);
}
.bwc-hero-v2__rotator em.is-active {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}
.bwc-hero-v2__rotator em.is-leaving {
	opacity: 0;
	transform: translateX(-50%) translateY(-20px);
}

@media (max-width: 700px) {
	.bwc-hero-v2__rotator { display: block; min-width: 100%; margin-top: 4px; }
	.bwc-hero-v2__rotator em { position: relative; left: auto; transform: none; }
	.bwc-hero-v2__rotator em.is-active { transform: none; }
	.bwc-hero-v2__rotator em.is-leaving { transform: translateY(-12px); }
	.bwc-hero-v2__rotator em:not(.is-active):not(.is-leaving) { display: none; }
}

.bwc-hero-v2__lead {
	max-width: 600px; margin: 0 auto 36px;
	font-size: clamp(15px, 1.4vw, 18px);
	color: var(--bwc-fg-muted);
	line-height: 1.6;
}
.bwc-hero-v2__lead strong { color: var(--bwc-fg); font-weight: 700; }

.bwc-hero-v2__cta {
	display: inline-flex; gap: 14px;
	flex-wrap: wrap; justify-content: center;
}

/* TICKER */
.bwc-hero-v2__ticker {
	position: relative; z-index: 2;
	margin-top: clamp(40px, 6vw, 80px);
	border-top: 1px solid var(--bwc-border);
	background: color-mix(in srgb, var(--bwc-bg-card) 60%, transparent);
	backdrop-filter: blur(14px);
}
.bwc-hero-v2__ticker-inner {
	max-width: var(--container-wide);
	margin: 0 auto;
	padding: 24px var(--gutter);
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
@media (max-width: 880px) {
	.bwc-hero-v2__ticker-inner { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}
@media (max-width: 480px) {
	.bwc-hero-v2__ticker-inner { grid-template-columns: 1fr; gap: 14px; }
}
.bwc-hero-v2__counter {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px;
	position: relative;
	padding-left: 18px;
}
.bwc-hero-v2__counter::before {
	content: ''; position: absolute; left: 0; top: 4px; bottom: 4px;
	width: 2px; background: var(--bwc-accent2); border-radius: 2px;
}
.bwc-hero-v2__counter-prefix,
.bwc-hero-v2__counter-num,
.bwc-hero-v2__counter-suffix {
	font-family: var(--font-display);
	font-weight: 800;
	font-size: clamp(28px, 3.2vw, 40px);
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--bwc-fg);
}
.bwc-hero-v2__counter-suffix { color: var(--bwc-accent2); }
.bwc-hero-v2__counter-label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--bwc-fg-muted);
	flex: 0 0 100%;
	margin-top: 6px;
	line-height: 1.35;
}

/* Reduced motion: disabilita tutto l'animato */
@media (prefers-reduced-motion: reduce) {
	.bwc-hero-v2__orb { animation: none; }
	.bwc-hero-v2__pulse { animation: none; }
	.bwc-hero-v2__rotator em { transition: none; }
}

/* BUTTONS */
.bwc-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 26px; border-radius: 999px;
	font-weight: 700; font-size: 15px; letter-spacing: .01em;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform .25s var(--ease), background .2s, color .2s, border-color .2s;
}
.bwc-btn--primary { background: var(--bwc-accent2); color: #fff; }
.bwc-btn--primary:hover { background: #cf3a14; transform: translateY(-2px); color: #fff; }
.bwc-btn--ghost { background: transparent; color: var(--bwc-fg); border-color: var(--bwc-border-strong); }
.bwc-btn--ghost:hover { border-color: var(--bwc-accent2); color: var(--bwc-accent2); transform: translateY(-2px); }
.bwc-btn::after { content: '→'; }

/* MANIFESTO (large quote-like) */
.bwc-manifesto {
	padding: clamp(80px, 10vw, 140px) 0;
}
.bwc-manifesto__inner { max-width: 1100px; margin: 0 auto; padding: 0 var(--gutter); }
.bwc-manifesto blockquote {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(26px, 3.6vw, 56px);
	font-weight: 700; line-height: 1.18; letter-spacing: -0.015em;
}
.bwc-manifesto blockquote em { font-family: var(--font-italic); font-style: italic; color: var(--bwc-accent2); font-weight: 500; }
.bwc-manifesto__label {
	font-size: 11px; font-weight: 700; letter-spacing: .26em; text-transform: uppercase;
	color: var(--bwc-fg-muted); margin-bottom: 22px;
}
.bwc-manifesto__label::before { content: '— '; color: var(--bwc-accent2); }

/* MARQUEE GIANT */
.bwc-marquee {
	overflow: hidden; padding: clamp(28px, 4vw, 48px) 0;
	border-top: 1px solid var(--bwc-border);
	border-bottom: 1px solid var(--bwc-border);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.bwc-marquee__track {
	display: flex; gap: clamp(40px, 6vw, 80px); white-space: nowrap;
	animation: bwc-marquee 40s linear infinite;
	font-family: var(--font-display); font-weight: 800;
	font-size: clamp(34px, 5vw, 84px); letter-spacing: -0.015em;
	width: max-content;
}
.bwc-marquee__track > span { display: inline-flex; align-items: center; gap: clamp(40px, 6vw, 80px); }
.bwc-marquee__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--bwc-accent2); display: inline-block; flex: 0 0 auto; }
@keyframes bwc-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* CARDS */
.bwc-cards {
	display: grid; gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.bwc-card {
	background: var(--bwc-bg-card);
	border: 1px solid var(--bwc-border);
	border-radius: 16px;
	padding: 28px;
	transition: transform .25s var(--ease), border-color .2s, background .2s;
	display: flex; flex-direction: column; gap: 12px;
	position: relative;
	color: var(--bwc-fg);
}
.bwc-card:hover {
	transform: translateY(-4px);
	border-color: var(--bwc-accent2);
}
.bwc-card__label {
	font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
	color: var(--bwc-fg-muted);
}
.bwc-card__label::before { content: '·· '; color: var(--bwc-accent2); }
.bwc-card__title { font-family: var(--font-display); font-size: 22px; font-weight: 700; line-height: 1.2; margin: 0; }
.bwc-card__text { color: var(--bwc-fg-muted); font-size: 14px; line-height: 1.55; margin: 0; }
.bwc-card__cta {
	margin-top: auto;
	font-weight: 600; font-size: 14px; color: var(--bwc-accent2);
	display: inline-flex; align-items: center; gap: 6px;
}
.bwc-card__cta::after { content: '→'; transition: transform .2s; }
.bwc-card:hover .bwc-card__cta::after { transform: translateX(4px); }

/* Card variants */
.bwc-card--dark {
	background: #0a0a0a; color: #fff; border-color: rgba(255,255,255,.1);
}
.bwc-card--dark .bwc-card__title { color: #fff; }
.bwc-card--accent {
	background: var(--bwc-accent2); color: #fff; border-color: transparent;
}
.bwc-card--accent .bwc-card__label,
.bwc-card--accent .bwc-card__text { color: rgba(255,255,255,.92); }
.bwc-card--accent .bwc-card__cta { color: #fff; }

/* SECTION HEADER */
.bwc-section__head {
	max-width: 720px; margin-bottom: clamp(36px, 5vw, 60px);
}
.bwc-section__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.bwc-h2 {
	font-family: var(--font-display);
	font-size: clamp(30px, 4vw, 56px); font-weight: 700; line-height: 1.05;
	letter-spacing: -0.02em; margin: 0 0 16px;
}
.bwc-h2 em { font-family: var(--font-italic); font-style: italic; color: var(--bwc-accent2); font-weight: 500; }
.bwc-h3 {
	font-family: var(--font-display);
	font-size: clamp(22px, 2.4vw, 32px); font-weight: 700; line-height: 1.18;
	letter-spacing: -0.01em; margin: 0 0 12px;
}
.bwc-lead {
	font-size: clamp(16px, 1.5vw, 19px); line-height: 1.55;
	color: var(--bwc-fg-muted); margin: 0;
}

/* STATS GRID */
.bwc-stats {
	display: grid; gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
.bwc-stat {
	border-top: 1px solid var(--bwc-border);
	padding-top: 18px;
}
.bwc-stat__value {
	font-family: var(--font-display); font-size: clamp(34px, 4.5vw, 60px);
	font-weight: 800; letter-spacing: -0.02em; line-height: 1; margin-bottom: 8px;
	color: var(--bwc-fg);
}
.bwc-stat__value em { font-family: var(--font-italic); font-style: italic; color: var(--bwc-accent2); }
.bwc-stat__label {
	font-size: 13px; color: var(--bwc-fg-muted); line-height: 1.4;
}

/* DASHBOARD MOCK (per pagina marketing) */
.bwc-dash {
	background: var(--bwc-dark);
	color: #fff;
	border-radius: 18px;
	padding: 28px;
	box-shadow: 0 30px 60px rgba(0,0,0,.18);
	display: flex; flex-direction: column; gap: 20px;
	position: relative; overflow: hidden;
}
.bwc-dash::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse at top right, rgba(1,105,180,.25), transparent 60%);
	pointer-events: none;
}
.bwc-dash__head { display: flex; justify-content: space-between; align-items: center; }
.bwc-dash__title { font-size: 13px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; opacity: .55; }
.bwc-dash__live { font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.08); display: inline-flex; align-items: center; gap: 6px; }
.bwc-dash__live::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--bwc-accent2); }
.bwc-dash__metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.bwc-dash__metric { display: flex; flex-direction: column; gap: 4px; }
.bwc-dash__metric-label { font-size: 11px; opacity: .55; letter-spacing: .15em; text-transform: uppercase; }
.bwc-dash__metric-value { font-family: var(--font-display); font-size: 28px; font-weight: 800; }
.bwc-dash__metric-value sup { font-size: 12px; color: var(--bwc-accent2); margin-left: 4px; vertical-align: super; }
.bwc-dash__chart {
	display: flex; align-items: flex-end; gap: 10px; height: 160px;
	border-top: 1px solid rgba(255,255,255,.08);
	padding-top: 18px; position: relative;
}
.bwc-dash__chart-label { position: absolute; top: 0; left: 0; font-size: 11px; opacity: .55; letter-spacing: .12em; text-transform: uppercase; }
.bwc-dash__bar {
	flex: 1; background: rgba(255,255,255,.18);
	border-radius: 4px 4px 0 0;
	animation: bwc-bar-grow .8s var(--ease) both;
	animation-delay: calc(var(--i) * 80ms);
}
.bwc-dash__bar.peak { background: var(--bwc-accent2); }
@keyframes bwc-bar-grow { from { transform: scaleY(0); transform-origin: bottom; } to { transform: scaleY(1); } }
.bwc-dash__foot { font-size: 11px; opacity: .55; }

.bwc-split {
	display: grid; gap: clamp(32px, 5vw, 60px);
	grid-template-columns: 1fr 1fr;
	align-items: center;
}
@media (max-width: 900px) {
	.bwc-split { grid-template-columns: 1fr; }
	.bwc-dash__metrics { grid-template-columns: 1fr; }
}

/* FAQ ACCORDION */
.bwc-faq {
	border-top: 1px solid var(--bwc-border);
}
.bwc-faq details {
	border-bottom: 1px solid var(--bwc-border);
}
.bwc-faq summary {
	cursor: pointer; padding: 22px 0;
	font-family: var(--font-display); font-size: clamp(17px, 1.7vw, 22px); font-weight: 600;
	display: flex; justify-content: space-between; align-items: center; gap: 18px;
	list-style: none;
}
.bwc-faq summary::-webkit-details-marker { display: none; }
.bwc-faq summary::after {
	content: '+'; font-size: 26px; font-weight: 400; color: var(--bwc-accent2);
	transition: transform .25s;
}
.bwc-faq details[open] summary::after { transform: rotate(45deg); }
.bwc-faq__answer {
	padding: 0 0 24px; color: var(--bwc-fg-muted); max-width: 760px; line-height: 1.6;
}

/* TABLE */
.bwc-table {
	width: 100%; border-collapse: collapse;
	font-size: 14px;
}
.bwc-table th, .bwc-table td {
	padding: 14px 16px; border-bottom: 1px solid var(--bwc-border);
	text-align: left;
}
.bwc-table th { font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--bwc-fg-muted); }
.bwc-table tr.peak td { background: rgba(233,78,36,.06); }
.bwc-table td.num { font-family: var(--font-mono); text-align: right; }
.bwc-table td .delta-pos { color: var(--bwc-accent2); font-weight: 700; }

/* FORM */
.bwc-form {
	display: grid; gap: 16px;
}
.bwc-form__row { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (max-width: 700px) { .bwc-form__row { grid-template-columns: 1fr; } }
.bwc-form label {
	display: flex; flex-direction: column; gap: 6px;
	font-size: 13px; font-weight: 600; color: var(--bwc-fg-muted);
}
.bwc-form input, .bwc-form select, .bwc-form textarea {
	padding: 14px 16px;
	background: var(--bwc-bg-card); border: 1px solid var(--bwc-border-strong);
	border-radius: 10px; color: var(--bwc-fg);
	transition: border-color .2s;
	font-size: 15px;
}
.bwc-form input:focus, .bwc-form select:focus, .bwc-form textarea:focus {
	outline: none; border-color: var(--bwc-accent2);
}
.bwc-form textarea { min-height: 130px; resize: vertical; }
.bwc-form__honeypot { position: absolute; left: -9999px; }
.bwc-form__consent {
	display: flex; align-items: flex-start; gap: 10px;
	font-size: 13px; color: var(--bwc-fg-muted); flex-direction: row;
}
.bwc-form__consent input { width: auto; flex: 0 0 auto; margin-top: 3px; }
.bwc-form__success {
	background: rgba(1,105,180,.08); border-left: 3px solid var(--bwc-accent);
	padding: 18px 22px; border-radius: 8px; color: var(--bwc-fg);
}
.bwc-form__error {
	background: rgba(233,78,36,.08); border-left: 3px solid var(--bwc-accent2);
	padding: 18px 22px; border-radius: 8px; color: var(--bwc-fg);
}

/* BENTO (per /contattaci/) */
.bwc-bento {
	display: grid; gap: 16px;
	grid-template-columns: repeat(12, 1fr);
}
.bwc-bento__cell {
	background: var(--bwc-bg-card); border: 1px solid var(--bwc-border);
	border-radius: 16px; padding: 26px;
	display: flex; flex-direction: column; gap: 8px;
}
.bwc-bento__cell--12 { grid-column: span 12; }
.bwc-bento__cell--8  { grid-column: span 8; }
.bwc-bento__cell--6  { grid-column: span 6; }
.bwc-bento__cell--4  { grid-column: span 4; }
.bwc-bento__cell--3  { grid-column: span 3; }
@media (max-width: 900px) {
	.bwc-bento__cell--8, .bwc-bento__cell--6, .bwc-bento__cell--4, .bwc-bento__cell--3 { grid-column: span 12; }
}
.bwc-bento__label { font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--bwc-fg-muted); }
.bwc-bento__cell--accent { background: var(--bwc-dark); color: #fff; border-color: transparent; }
.bwc-bento__cell--accent .bwc-bento__label { color: rgba(255,255,255,.55); }
.bwc-bento__cell h3 { font-family: var(--font-display); font-size: 22px; font-weight: 700; margin: 0; line-height: 1.2; }

/* NEWS GRID (newsroom) */
.bwc-news-grid {
	display: grid; gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.bwc-news-card {
	background: var(--bwc-bg-card); border: 1px solid var(--bwc-border);
	border-radius: 16px; overflow: hidden;
	display: flex; flex-direction: column;
	transition: transform .25s var(--ease), border-color .2s;
}
.bwc-news-card:hover { transform: translateY(-4px); border-color: var(--bwc-accent2); }
.bwc-news-card__media {
	aspect-ratio: 16/10; background: var(--bwc-bg-inset);
	overflow: hidden;
}
.bwc-news-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--ease); }
.bwc-news-card:hover img { transform: scale(1.04); }
.bwc-news-card__body { padding: 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.bwc-news-card__cat { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--bwc-accent2); }
.bwc-news-card__title { font-family: var(--font-display); font-size: 19px; font-weight: 700; line-height: 1.25; margin: 0; }
.bwc-news-card__excerpt { font-size: 14px; color: var(--bwc-fg-muted); line-height: 1.55; margin: 0; }
.bwc-news-card__meta { font-size: 12px; color: var(--bwc-fg-faint); margin-top: auto; }

.bwc-news-filters {
	display: flex; gap: 10px; flex-wrap: wrap;
	padding: 16px 0; border-bottom: 1px solid var(--bwc-border);
	margin-bottom: 32px;
	position: sticky; top: 64px; z-index: 10;
	background: color-mix(in srgb, var(--bwc-bg) 92%, transparent);
	backdrop-filter: blur(14px);
}
.bwc-news-filters a {
	padding: 8px 16px; border-radius: 999px;
	border: 1px solid var(--bwc-border-strong); font-size: 13px; font-weight: 600;
	transition: background .2s, color .2s, border-color .2s;
}
.bwc-news-filters a:hover, .bwc-news-filters a.is-active {
	background: var(--bwc-accent2); color: #fff; border-color: transparent;
}

/* FOOTER */
.bwc-footer {
	background: var(--bwc-bg);
	border-top: 1px solid var(--bwc-border);
}
.bwc-cta-giant {
	background: var(--bwc-bg-inset);
	padding: clamp(60px, 10vw, 120px) var(--gutter);
}
.bwc-cta-giant__inner {
	max-width: var(--container);
	margin: 0 auto;
	display: flex; align-items: center; justify-content: space-between; gap: 32px;
	flex-wrap: wrap;
}
.bwc-cta-giant__left { display: flex; flex-direction: column; gap: 22px; }
.bwc-cta-giant__dot {
	width: 28px; height: 28px; border: 2px solid currentColor; border-radius: 50%;
	display: inline-block; position: relative;
}
.bwc-cta-giant__dot::after {
	content: ''; position: absolute; inset: 5px; border-radius: 50%;
	background: var(--bwc-accent2);
}
.bwc-cta-giant__title {
	font-family: var(--font-display);
	font-size: clamp(40px, 7vw, 96px); font-weight: 800; line-height: .95;
	letter-spacing: -0.02em; margin: 0;
}
.bwc-cta-giant__title em { font-family: var(--font-italic); font-style: italic; color: var(--bwc-accent2); font-weight: 500; }
.bwc-cta-giant__circle {
	width: clamp(140px, 16vw, 200px); height: clamp(140px, 16vw, 200px);
	border-radius: 50%; background: var(--bwc-accent2); color: #fff;
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: clamp(13px, 1.2vw, 16px); letter-spacing: .12em;
	transition: transform .3s var(--ease);
}
.bwc-cta-giant__circle:hover { transform: scale(1.06) rotate(8deg); color: #fff; }

.bwc-footer__cols {
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(50px, 7vw, 80px) var(--gutter) clamp(30px, 4vw, 50px);
	display: grid; gap: 32px;
	grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 900px) { .bwc-footer__cols { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .bwc-footer__cols { grid-template-columns: 1fr; } }
.bwc-footer__h {
	font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
	color: var(--bwc-fg-muted); margin: 0 0 18px;
}
.bwc-footer__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.bwc-footer__partner {
	display: inline-block;
	margin-top: 22px;
	transition: transform .25s var(--ease), opacity .25s;
}
.bwc-footer__partner img {
	display: block;
	width: 140px;
	height: auto;
	max-width: 100%;
}
.bwc-footer__partner:hover {
	transform: translateY(-2px);
	opacity: .9;
}
.bwc-footer__addr { font-style: normal; font-size: 14px; color: var(--bwc-fg-muted); line-height: 1.6; margin-bottom: 14px; }
.bwc-footer__dl { font-size: 13px; line-height: 1.6; margin: 0; }
.bwc-footer__dl dt { font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--bwc-fg-muted); margin-top: 10px; }
.bwc-footer__dl dt:first-child { margin-top: 0; }
.bwc-footer__dl dd { margin: 0; color: var(--bwc-fg); }

.bwc-footer__social {
	max-width: var(--container);
	margin: 0 auto;
	padding: 24px var(--gutter);
	border-top: 1px solid var(--bwc-border);
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
	font-size: 13px;
}
@media (max-width: 700px) { .bwc-footer__social { grid-template-columns: repeat(2, 1fr); } }
.bwc-footer__social-label { display: block; font-size: 10px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--bwc-fg-muted); margin-bottom: 4px; }

.bwc-footer__bottom {
	max-width: var(--container);
	margin: 0 auto;
	padding: 18px var(--gutter);
	border-top: 1px solid var(--bwc-border);
	display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	font-size: 11px; color: var(--bwc-fg-muted); letter-spacing: .12em; text-transform: uppercase;
}

/* REVEAL ON SCROLL */
.bwc-reveal {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .6s var(--ease-out), transform .6s var(--ease-out);
}
.bwc-reveal.is-visible { opacity: 1; transform: translateY(0); }
.bwc-reveal[data-stagger="1"] { transition-delay: 80ms; }
.bwc-reveal[data-stagger="2"] { transition-delay: 160ms; }
.bwc-reveal[data-stagger="3"] { transition-delay: 240ms; }
.bwc-reveal[data-stagger="4"] { transition-delay: 320ms; }

/* UTILITIES */
.bwc-text-center { text-align: center; }
.bwc-mt-0 { margin-top: 0 !important; }

/* ============================================================
 * CALCULATORS (interactive lead-magnet widgets)
 * ============================================================ */
.bwc-calc {
	background: var(--bwc-bg-card);
	border: 1px solid var(--bwc-border-strong);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(0,0,0,.08);
}
.bwc-calc__head {
	padding: 22px 28px;
	border-bottom: 1px solid var(--bwc-border);
	display: flex; justify-content: space-between; align-items: center; gap: 18px;
	background: var(--bwc-bg-inset);
}
.bwc-calc__head-label {
	font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
	color: var(--bwc-fg-muted);
}
.bwc-calc__live {
	font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 999px;
	background: rgba(233,78,36,.12); color: var(--bwc-accent2);
	display: inline-flex; align-items: center; gap: 6px;
}
.bwc-calc__live::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--bwc-accent2); animation: bwc-pulse 1.4s infinite; }
@keyframes bwc-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .5; transform: scale(1.4); }
}
.bwc-calc__body {
	display: grid; grid-template-columns: 5fr 7fr;
	gap: 0;
}
@media (max-width: 880px) { .bwc-calc__body { grid-template-columns: 1fr; } }
.bwc-calc__inputs {
	padding: 32px;
	display: flex; flex-direction: column; gap: 22px;
	border-right: 1px solid var(--bwc-border);
}
@media (max-width: 880px) { .bwc-calc__inputs { border-right: none; border-bottom: 1px solid var(--bwc-border); } }
.bwc-calc__field { display: flex; flex-direction: column; gap: 8px; }
.bwc-calc__field-label {
	font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
	color: var(--bwc-fg-muted);
	display: flex; justify-content: space-between; align-items: center;
}
.bwc-calc__field-value {
	font-family: var(--font-mono); font-size: 13px; color: var(--bwc-accent2);
	font-weight: 700; letter-spacing: 0;
}
.bwc-calc__range {
	-webkit-appearance: none; appearance: none;
	width: 100%; height: 4px; border-radius: 999px;
	background: var(--bwc-border-strong);
	outline: none; cursor: pointer;
}
.bwc-calc__range::-webkit-slider-thumb {
	-webkit-appearance: none; appearance: none;
	width: 22px; height: 22px; border-radius: 50%;
	background: var(--bwc-accent2);
	cursor: pointer; box-shadow: 0 2px 8px rgba(233,78,36,.4);
	transition: transform .2s, box-shadow .2s;
}
.bwc-calc__range::-webkit-slider-thumb:hover { transform: scale(1.15); box-shadow: 0 4px 14px rgba(233,78,36,.6); }
.bwc-calc__range::-moz-range-thumb {
	width: 22px; height: 22px; border-radius: 50%; border: none;
	background: var(--bwc-accent2); cursor: pointer;
}
.bwc-calc__select, .bwc-calc__number {
	padding: 12px 14px;
	background: var(--bwc-bg-inset);
	border: 1px solid var(--bwc-border-strong);
	border-radius: 10px;
	color: var(--bwc-fg);
	font-family: var(--font-body); font-size: 15px;
	transition: border-color .2s;
}
.bwc-calc__select:focus, .bwc-calc__number:focus { outline: none; border-color: var(--bwc-accent2); }

.bwc-calc__output {
	padding: 32px;
	background: var(--bwc-dark);
	color: #fff;
	display: flex; flex-direction: column; gap: 18px;
	position: relative; overflow: hidden;
}
.bwc-calc__output::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse at top right, rgba(233,78,36,.20), transparent 60%),
	            radial-gradient(ellipse at bottom left, rgba(1,105,180,.15), transparent 60%);
	pointer-events: none;
}
.bwc-calc__output > * { position: relative; z-index: 1; }
.bwc-calc__output-label {
	font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
	color: rgba(255,255,255,.55);
}
.bwc-calc__output-value {
	font-family: var(--font-display);
	font-size: clamp(36px, 5vw, 64px);
	font-weight: 800; letter-spacing: -0.02em; line-height: 1;
}
.bwc-calc__output-value em { font-family: var(--font-italic); font-style: italic; color: var(--bwc-accent2); font-weight: 600; }
.bwc-calc__output-helper {
	font-size: 14px; color: rgba(255,255,255,.65); line-height: 1.5;
	max-width: 460px;
}
.bwc-calc__output-mini {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px;
	padding: 16px;
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 12px;
}
.bwc-calc__output-mini > div { display: flex; flex-direction: column; gap: 4px; }
.bwc-calc__output-mini dt { font-size: 11px; opacity: .55; letter-spacing: .12em; text-transform: uppercase; margin: 0; }
.bwc-calc__output-mini dd { font-family: var(--font-display); font-size: 22px; font-weight: 800; margin: 0; }
.bwc-calc__cta {
	margin-top: auto; display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 24px; background: var(--bwc-accent2); color: #fff;
	border-radius: 999px; font-weight: 700; font-size: 15px;
	transition: transform .2s, background .2s;
	align-self: flex-start;
}
.bwc-calc__cta:hover { background: #cf3a14; transform: translateY(-2px); color: #fff; }
.bwc-calc__cta::after { content: '→'; }
.bwc-calc__disclaimer { font-size: 11px; color: rgba(255,255,255,.42); margin-top: 8px; line-height: 1.5; }

/* AUDIT (5 questions stepper) */
.bwc-audit__steps {
	display: flex; gap: 8px; margin-bottom: 22px;
	background: var(--bwc-bg-inset); padding: 10px; border-radius: 999px;
}
.bwc-audit__step {
	flex: 1; height: 4px; border-radius: 999px;
	background: var(--bwc-border-strong); transition: background .3s;
}
.bwc-audit__step.is-done { background: var(--bwc-accent2); }
.bwc-audit__step.is-current { background: var(--bwc-accent); }

.bwc-audit__question {
	font-family: var(--font-display);
	font-size: clamp(20px, 2.4vw, 28px); font-weight: 700; line-height: 1.25;
	margin: 14px 0 24px;
}
.bwc-audit__answers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 540px) { .bwc-audit__answers { grid-template-columns: 1fr; } }
.bwc-audit__answer {
	padding: 14px 18px; border-radius: 12px;
	background: var(--bwc-bg-inset);
	border: 1.5px solid var(--bwc-border-strong);
	font-weight: 600; cursor: pointer;
	transition: border-color .2s, background .2s, transform .15s;
	text-align: left;
	color: var(--bwc-fg);
	font-family: var(--font-body); font-size: 14px;
	display: flex; flex-direction: column; gap: 4px;
}
.bwc-audit__answer:hover {
	border-color: var(--bwc-accent2); transform: translateY(-2px);
}
.bwc-audit__answer.is-selected {
	border-color: var(--bwc-accent2); background: rgba(233,78,36,.08);
}
.bwc-audit__answer-label { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--bwc-fg-muted); }

.bwc-audit__nav {
	display: flex; justify-content: space-between; gap: 12px;
	margin-top: 26px;
}
.bwc-audit__nav-btn {
	padding: 10px 20px; border-radius: 999px;
	background: transparent; border: 1px solid var(--bwc-border-strong);
	color: var(--bwc-fg); font-weight: 600; font-size: 14px;
	cursor: pointer; transition: border-color .2s;
}
.bwc-audit__nav-btn:hover:not(:disabled) { border-color: var(--bwc-accent2); }
.bwc-audit__nav-btn:disabled { opacity: .35; cursor: not-allowed; }

/* Audit result (radar chart) */
.bwc-audit__result {
	display: none;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	padding-top: 14px;
}
.bwc-audit__result.is-visible { display: grid; }
@media (max-width: 700px) { .bwc-audit__result { grid-template-columns: 1fr; } }
.bwc-audit__score {
	font-family: var(--font-display); font-size: clamp(80px, 10vw, 140px);
	font-weight: 900; line-height: 1; letter-spacing: -0.04em;
	color: var(--bwc-accent2);
}
.bwc-audit__score sup { font-size: 0.4em; color: rgba(255,255,255,.55); font-weight: 600; }
.bwc-audit__verdict {
	font-family: var(--font-display); font-size: 22px; font-weight: 700; margin: 14px 0 8px;
}
.bwc-audit__radar {
	width: 100%; max-width: 320px;
	margin: 0 auto;
	aspect-ratio: 1;
}
.bwc-audit__radar polygon { transition: opacity .8s var(--ease-out); }
.bwc-audit__radar text { font-size: 10px; font-family: var(--font-mono); fill: rgba(255,255,255,.55); font-weight: 600; }

/* ============================================================
 * BREADCRUMB
 * Sticky sotto l'header per navigazione costante
 * ============================================================ */
.bwc-breadcrumb {
	position: sticky;
	top: 58px; /* altezza header BW-C (padding 14px*2 + ~30px contenuto) */
	z-index: 90; /* sotto l'header (z:100) ma sopra il contenuto */
	border-bottom: 1px solid var(--bwc-border);
	background: color-mix(in srgb, var(--bwc-bg) 92%, transparent);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	padding: 12px 0;
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: .04em;
}
.bwc-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.bwc-breadcrumb__item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
}
.bwc-breadcrumb__link {
	color: var(--bwc-fg-muted);
	text-decoration: none;
	transition: color .2s;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 280px;
	display: inline-block;
}
.bwc-breadcrumb__link:hover { color: var(--bwc-accent2); }
.bwc-breadcrumb__current {
	color: var(--bwc-accent2);
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 360px;
	display: inline-block;
}
.bwc-breadcrumb__sep { color: var(--bwc-fg-faint); user-select: none; flex-shrink: 0; }

/* Mobile: padding ridotto, font più piccolo */
@media (max-width: 600px) {
	.bwc-breadcrumb { padding: 10px 0; font-size: 11px; top: 54px; }
	.bwc-breadcrumb__link { max-width: 120px; }
	.bwc-breadcrumb__current { max-width: 180px; }
}

/* Su pagine con hero a tutto schermo (web design, grafica), la breadcrumb non occupa lo spazio */
.gx .bwc-breadcrumb,
.wd .bwc-breadcrumb {
	background: rgba(0,0,0,.6);
	backdrop-filter: blur(20px);
	color: #fff;
}
.gx .bwc-breadcrumb__link,
.wd .bwc-breadcrumb__link {
	color: rgba(255,255,255,.7);
}
.gx .bwc-breadcrumb__sep,
.wd .bwc-breadcrumb__sep {
	color: rgba(255,255,255,.4);
}

/* ============================================================
 * FORM FEEDBACK MESSAGES
 * ============================================================ */
.bwc-form__msg {
	padding: 16px 20px;
	border-radius: 12px;
	font-size: 15px;
	line-height: 1.55;
	border-left: 4px solid currentColor;
}
.bwc-form__msg strong { font-weight: 700; display: block; margin-bottom: 4px; font-size: 16px; }
.bwc-form__msg--success {
	background: rgba(26,166,106,.08);
	color: #1AA66A;
	border-left-color: #1AA66A;
}
.bwc-form__msg--error {
	background: rgba(208,68,68,.08);
	color: #d04444;
	border-left-color: #d04444;
}
html[data-bwc-theme="dark"] .bwc-form__msg--success {
	background: rgba(26,166,106,.12);
	color: #4ed99c;
}
html[data-bwc-theme="dark"] .bwc-form__msg--error {
	background: rgba(208,68,68,.12);
	color: #ff7575;
}

/* ============================================================
 * TRANSLATION-RESILIENT LAYOUT (Weglot-friendly)
 * Regole che assorbono variazioni di lunghezza testo (IT vs EN vs DE)
 * senza far saltare il layout.
 * ============================================================ */

/* 1. TITOLI: bilanciati su più righe + hyphens automatici */
.bwc-h1, .bwc-h2, .bwc-h3,
h1.bwc-h1, h2.bwc-h2, h3.bwc-h3,
.bwc-hero h1, .bwc-section__head h2,
.gx-hero h1, .gx-stack__quote, .gx-cube-grid h2, .gx-anatomy h2, .gx-cta h2, .gx-morph__step h3,
.wd-hero h1, .wd-case-title, .wd-battle__h2, .wd-process__head h2, .wd-cta h2, .wd-stack__head h2 {
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: auto;
	-webkit-hyphens: auto;
}

/* 2. PARAGRAFI lunghi: hyphens per evitare overflow */
.bwc-lead, .bwc-card__text,
.gx-hero__sub, .gx-stack__caption, .gx-morph__step p, .gx-cube-grid__lead, .gx-anatomy__lead, .gx-cta p, .gx-flip-card__desc,
.wd-hero__lead, .wd-case-desc, .wd-process__step-desc, .wd-stack__cell-desc, .wd-cta p {
	overflow-wrap: break-word;
	hyphens: auto;
	-webkit-hyphens: auto;
}

/* 3. CARDS uniformi: stretch all to same height nella stessa riga grid */
.bwc-card, .bwc-bento__cell, .bwc-stat,
.gx-flip-card, .gx-morph-block,
.wd-stack__cell, .wd-process__step {
	height: 100%;
	display: flex;
	flex-direction: column;
}

/* 4. CARDS interno: il body cresce, il footer/CTA resta in fondo */
.bwc-card > p:last-child, .bwc-bento__cell > p:last-child,
.gx-flip-card__desc, .wd-stack__cell-desc {
	margin-top: auto;
}

/* 5. BUTTONS: min-width + nowrap per evitare wrap brutti su mobile */
.bwc-btn,
.btn-large, .gx-btn-large,
.calc__cta {
	min-width: 160px;
	white-space: nowrap;
	text-align: center;
	justify-content: center;
}
@media (max-width: 480px) {
	.bwc-btn, .btn-large, .gx-btn-large, .calc__cta {
		min-width: 0;
		width: 100%;
	}
}

/* 6. PILL / BADGE / EYEBROW: nowrap rigido */
.bwc-eyebrow, .bwc-pill,
.gx-stack__num, .gx-morph__num, .gx-cube-grid__num, .gx-anatomy__num, .gx-cta__num,
.wd-case-num, .wd-case-cat, .wd-process__step-num,
.bwc-breadcrumb__current {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* 7. STAT NUMBERS / NUMERI BIG: non wrappano */
.bwc-stat__num,
.gx-demo-flash, .gx-demo-sales,
.wd-case-stat__num, .wd-battle__metric-value,
.calc__output-value {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* 8. NAVIGATION ITEMS: dimensioni stabili */
.bwc-nav a, .h nav a {
	white-space: nowrap;
}

/* 9. FORM LABELS: width fissa per non spostare campi */
.bwc-form label {
	display: block;
}
.bwc-form input, .bwc-form select, .bwc-form textarea {
	width: 100%;
}

/* 10. MIN-HEIGHT su sezioni hero giant (così il titolo può espandersi senza schiacciare il sotto) */
.bwc-hero, .wd-hero, .gx-hero__sticky {
	min-height: clamp(420px, 60vh, 720px);
}

/* 11. BENTO/GRID: usa minmax invece di valori fissi (più resilient) */
.bwc-bento { align-items: stretch; }
.bwc-bento__cell { min-height: 200px; }

/* 12. FAQ items: la domanda può essere più lunga in EN/DE */
.bwc-faq__q { padding-right: 50px; /* spazio per icona toggle */ }

/* 13. TABLE cells: word-break per parole tecniche lunghe (es. nomi tedeschi composti) */
table td, table th {
	overflow-wrap: anywhere;
	word-break: normal;
}

/* 14. WEGLOT widget: posizionamento fisso che non interferisce */
.weglot-container, .country-selector,
[data-w-id], .wg-default {
	z-index: 99 !important;
}

/* 15. IT ABBREVIAZIONI / TERMINI TECNICI: marcati come notranslate (vedi attributo data-wg-notranslate negli HTML) */
.notranslate, [data-wg-notranslate], [translate="no"] {
	white-space: nowrap;
}

/* ============================================================
 * BUGFIX 1.9.3 — Translation overflow + mobile menu
 * ============================================================ */

/* Stats grid: niente overflow su Weglot translations */
.bwc-stats > .bwc-stat {
	min-width: 0;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: auto;
}
.bwc-stat__label {
	overflow-wrap: break-word;
	hyphens: auto;
}

/* Hero V2: font-size più contenuto + max-width per evitare bleed in EN/DE */
.bwc-hero-v2__h1 {
	font-size: clamp(36px, 7.5vw, 110px) !important;
	max-width: 18ch;
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: auto;
}
.bwc-hero-v2__inner {
	max-width: 100%;
	overflow: hidden;
}
@media (max-width: 700px) {
	.bwc-hero-v2__h1 {
		font-size: clamp(32px, 9vw, 56px) !important;
	}
}

/* CTA giant: titolo che gestisce traduzioni più lunghe */
.bwc-cta-giant__title {
	font-size: clamp(36px, 6vw, 84px) !important;
	max-width: 14ch;
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: auto;
}
.bwc-cta-giant__left {
	min-width: 0;
	flex: 1;
}
.bwc-cta-giant__circle {
	flex-shrink: 0;
}

/* === MENU MOBILE: regole spostate in alto al CSS (riga ~228) === */
/* Mantengo qui solo: nascondere la breadcrumb quando il menu è aperto */
@media (max-width: 1024px) {
	body.menu-open .bwc-breadcrumb {
		display: none;
	}
}

/* CTA giant inner: wrap meglio su mobile */
@media (max-width: 700px) {
	.bwc-cta-giant__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 24px;
	}
	.bwc-cta-giant__circle {
		align-self: center;
	}
}

/* ============================================================
 * BUGFIX 1.9.4 — Audit completo Weglot
 * ============================================================ */

/* In lingue diverse dall'italiano, nascondo i <br> nei titoli giant.
 * I <br> sono pensati per la composizione tipografica italiana e si
 * rompono in EN/DE/FR. Senza <br>, text-wrap:balance + max-width
 * fanno il loro lavoro naturalmente. */
html:not([lang^="it"]) h1 br,
html:not([lang^="it"]) h2 br,
html:not([lang^="it"]) .bwc-h1 br,
html:not([lang^="it"]) .bwc-h2 br,
html:not([lang^="it"]) .bwc-h3 br,
html:not([lang^="it"]) .bwc-hero h1 br,
html:not([lang^="it"]) .bwc-hero-v2__h1 br,
html:not([lang^="it"]) .bwc-hero__lead br,
html:not([lang^="it"]) .bwc-cta-giant__title br,
html:not([lang^="it"]) .bwc-section__head h2 br,
html:not([lang^="it"]) .gx-hero h1 br,
html:not([lang^="it"]) .gx-stack__quote br,
html:not([lang^="it"]) .gx-cube-grid h2 br,
html:not([lang^="it"]) .gx-anatomy h2 br,
html:not([lang^="it"]) .gx-cta h2 br,
html:not([lang^="it"]) .gx-morph__step h3 br,
html:not([lang^="it"]) .wd-hero h1 br,
html:not([lang^="it"]) .wd-case-title br,
html:not([lang^="it"]) .wd-battle__h2 br,
html:not([lang^="it"]) .wd-process__head h2 br,
html:not([lang^="it"]) .wd-cta h2 br,
html:not([lang^="it"]) .wd-stack__head h2 br {
	display: none;
}

/* In lingue diverse dall'italiano, sostituisco <br> nei counter labels con spazio
 * (i counter sono testi corti, restano OK su una riga) */
html:not([lang^="it"]) .bwc-hero-v2__counter-label br {
	display: inline;
	white-space: pre;
	content: ' ';
}

/* ============================================================
 * OVERFLOW PROTECTION 1.9.5 — "Riquadro inviolabile"
 * Garanzia: nessun elemento esce dal proprio container.
 * Padding laterale sempre presente, font fluida, fallback aggressive.
 * ============================================================ */

/* 1. Box-sizing universale (safety even if reset esiste già) */
*, *::before, *::after {
	box-sizing: border-box;
}

/* 2. HTML/BODY: zero overflow orizzontale possibile
 * NOTA: overflow-x su html ROMPE position:sticky.
 * Mettiamo overflow-x SOLO sul body, lasciando html libero.
 * E NON su section/main/footer (sticky panels Grafica) */
html {
	max-width: 100%;
}
body {
	overflow-x: hidden;
	max-width: 100vw;
	min-width: 0;
}

/* 3. TUTTI i blocchi di testo: rispetto del parent + spezzo se serve */
h1, h2, h3, h4, h5, h6,
p, blockquote, li, dt, dd,
span, em, strong, a, label, time {
	max-width: 100%;
	min-width: 0;
	overflow-wrap: anywhere; /* "nuclear": può spezzare in qualsiasi punto se non c'è altro modo */
	word-break: normal;
	hyphens: auto;
	-webkit-hyphens: auto;
}

/* 4. CONTAINER: width fluida con padding garantito (mobile-safe) */
.bwc-container,
.bwc-container--wide {
	width: 100%;
	max-width: min(100%, var(--container));
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 32px);
}
.bwc-container--wide {
	max-width: min(100%, var(--container-wide));
}

/* 5. SEZIONI: niente overflow-clip globale (romperebbe sticky panels)
 * Invece, regole specifiche dove serve davvero (marquee, hero v2 con orbs, ecc.) */
section, .bwc-section, footer, header, main {
	max-width: 100vw;
}

/* 5.b Solo elementi con contenuto che SBORDA volontariamente (animazioni, marquee, glow, orbs) */
.bwc-marquee,
.bwc-hero-v2,
.bwc-hero-v2__orbs,
.bwc-cta-giant {
	overflow-x: clip;
}

/* 6. TITOLI GIANT — clamp conservativo, mai sopra 110px */
h1, .bwc-h1,
.bwc-hero h1,
.bwc-hero-v2__h1,
.gx-hero h1,
.wd-hero h1 {
	font-size: clamp(28px, calc(2.5vw + 1.5rem), 96px);
	max-width: 100%;
	line-height: 1.05;
	overflow-wrap: anywhere;
	hyphens: auto;
}

h2, .bwc-h2,
.bwc-section__head h2,
.gx-cta h2, .wd-cta h2,
.bwc-cta-giant__title {
	font-size: clamp(24px, calc(1.5vw + 1.2rem), 64px);
	max-width: 100%;
	line-height: 1.1;
	overflow-wrap: anywhere;
	hyphens: auto;
}

/* 7. CTA giant title — più contenuto */
.bwc-cta-giant__title {
	font-size: clamp(32px, calc(2vw + 1.5rem), 72px);
}

/* 8. Hero V2 — fluida ma capped */
.bwc-hero-v2__h1 {
	font-size: clamp(32px, calc(3vw + 1.8rem), 96px) !important;
	line-height: 1.05;
}

/* 9. Numeri statistici — clamped per non explodere */
.bwc-stat__value,
.bwc-hero-v2__counter-num {
	font-size: clamp(28px, calc(1.5vw + 1rem), 56px) !important;
	max-width: 100%;
}

/* 10. Cards/bento — niente overflow tra colonne grid */
.bwc-cards, .bwc-bento, .bwc-stats {
	max-width: 100%;
}
.bwc-card, .bwc-bento__cell, .bwc-stat {
	min-width: 0;
	max-width: 100%;
	overflow: hidden; /* contenuto interno mai uscente */
}

/* 11. Marquee: già ha overflow:hidden, ma assicuro */
.bwc-marquee {
	overflow: hidden;
	max-width: 100vw;
}

/* 12. Form fields — non escono dal container */
input, textarea, select, button {
	max-width: 100%;
}

/* 13. Images — responsive automatico */
img, video, iframe, svg {
	max-width: 100%;
	height: auto;
}

/* 14. Pre/code — wrap forzato */
pre, code {
	max-width: 100%;
	overflow-wrap: anywhere;
	white-space: pre-wrap;
}

/* 15. Tables — scroll orizzontale interno */
table {
	max-width: 100%;
	display: block;
	overflow-x: auto;
}

/* 16. Mobile padding incrementato per safety zone */
@media (max-width: 600px) {
	.bwc-container, .bwc-container--wide {
		padding-inline: 18px;
	}
}

/* 17. CTA giant inner: column su mobile, row su desktop con wrap */
.bwc-cta-giant__inner {
	max-width: 100%;
	min-width: 0;
}
.bwc-cta-giant__left {
	max-width: 100%;
	min-width: 0;
}

/* ============================================================
 * HERO V2 — Nuova struttura pulita Weglot-safe
 * ============================================================ */
.bwc-hero-v2__line {
	display: block;
	max-width: 100%;
	overflow-wrap: anywhere;
	hyphens: auto;
	text-wrap: balance;
}
.bwc-hero-v2__line--accent {
	color: var(--bwc-accent2);
	font-family: var(--font-italic);
	font-style: italic;
	font-weight: 600;
}
.bwc-hero-v2__line--rotator {
	font-size: 0.7em; /* leggermente ridimensionato per equilibrio */
}

/* ============================================================
 * LOGO 2.3.0 — supporto dark/light + dimensione configurabile
 * Si usa la CSS variable --bwc-logo-h impostata da PHP.
 * ============================================================ */
:root {
	--bwc-logo-h: 40px;
	--bwc-logo-h-footer: 48px;
}

/* Dimensioni logo header */
.bwc-logo {
	min-width: 0; /* non forzare larghezza */
	max-width: 100%;
	overflow: visible;
}
.bwc-logo__img {
	height: var(--bwc-logo-h);
	width: auto;          /* preserva proporzioni native dell'SVG */
	max-width: 280px;     /* safety: max width nell'header */
	display: block;
	object-fit: contain;
}

/* Anche il custom-logo standard di WordPress usa queste regole (fallback) */
.custom-logo,
.custom-logo-link img,
.bwc-logo img.custom-logo {
	height: var(--bwc-logo-h) !important;
	width: auto !important;
	max-width: 280px;
	object-fit: contain;
}

/* Switch light/dark via attributo data-bwc-theme su <html> */
html[data-bwc-theme="dark"] .bwc-logo__img--light {
	display: none;
}
html[data-bwc-theme="light"] .bwc-logo__img--dark {
	display: none;
}
/* Default (no data-bwc-theme set): mostra solo light */
html:not([data-bwc-theme]) .bwc-logo__img--dark {
	display: none;
}

/* Fallback prefers-color-scheme se l'utente non ha mai cliccato il toggle */
@media (prefers-color-scheme: dark) {
	html:not([data-bwc-theme]) .bwc-logo__img--light {
		display: none;
	}
	html:not([data-bwc-theme]) .bwc-logo__img--dark {
		display: block;
	}
}

/* Su mobile: logo leggermente più piccolo */
@media (max-width: 600px) {
	.bwc-logo__img,
	.custom-logo {
		height: calc(var(--bwc-logo-h) * 0.85) !important;
		max-width: 200px !important;
	}
}

/* Logo nel footer */
.bwc-footer .bwc-logo__img,
.bwc-footer .custom-logo {
	height: var(--bwc-logo-h-footer) !important;
	max-width: 320px !important;
}

/* ============================================================
 * CONTACT FORM 7 — integrazione con tema BW-C
 * Stilizza output CF7 con classi BW-C
 * ============================================================ */

/* Submit button: CF7 produce <input type="submit"> */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"],
input[type="submit"].bwc-btn,
.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 32px !important;
	border-radius: 999px !important;
	font-family: var(--font-display);
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: .01em;
	border: 1px solid transparent !important;
	cursor: pointer;
	background: var(--bwc-accent2) !important;
	color: #fff !important;
	transition: transform .25s var(--ease), background .2s;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	min-width: 200px;
	justify-content: center;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover,
.wpcf7-submit:hover {
	background: #cf3a14 !important;
	transform: translateY(-2px);
}
.wpcf7-submit:disabled,
.wpcf7 input[type="submit"]:disabled {
	opacity: .6;
	cursor: not-allowed;
	transform: none !important;
}

/* Form fields generic */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="file"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--bwc-border);
	border-radius: 12px;
	font-family: inherit;
	font-size: 15px;
	background: var(--bwc-bg);
	color: var(--bwc-fg);
	transition: border-color .2s, box-shadow .2s;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--bwc-accent2);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--bwc-accent2) 20%, transparent);
}
.wpcf7 textarea {
	min-height: 120px;
	resize: vertical;
	font-family: inherit;
}
.wpcf7 select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237A7A7A' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 40px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

/* Labels */
.wpcf7 label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--bwc-fg);
	margin-bottom: 16px;
}

/* Form rows: 2 colonne */
.wpcf7 .bwc-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}
@media (max-width: 600px) {
	.wpcf7 .bwc-form__row {
		grid-template-columns: 1fr;
	}
}

/* Acceptance (privacy checkbox) — CF7 produce span.wpcf7-list-item */
.wpcf7 .wpcf7-acceptance {
	display: block;
	margin: 8px 0;
}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item label {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 400;
	margin: 0;
	line-height: 1.5;
	color: var(--bwc-fg-muted);
}
.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 2px 0 0 0;
	cursor: pointer;
	accent-color: var(--bwc-accent2);
	flex-shrink: 0;
}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item-label {
	flex: 1;
}
.wpcf7 .wpcf7-acceptance a {
	color: var(--bwc-accent2);
	text-decoration: underline;
	font-weight: 600;
}

/* File input */
.wpcf7 input[type="file"] {
	padding: 10px;
	background: var(--bwc-bg-card);
	font-size: 13px;
	cursor: pointer;
}
.wpcf7 input[type="file"]::file-selector-button {
	padding: 8px 14px;
	margin-right: 12px;
	border: 1px solid var(--bwc-border);
	border-radius: 8px;
	background: var(--bwc-bg);
	color: var(--bwc-fg);
	cursor: pointer;
	font-weight: 600;
	font-size: 13px;
	transition: all .2s;
}
.wpcf7 input[type="file"]::file-selector-button:hover {
	background: var(--bwc-accent2);
	color: #fff;
	border-color: var(--bwc-accent2);
}

/* Validation messages */
.wpcf7-not-valid-tip {
	color: #d04444 !important;
	font-size: 12px !important;
	margin-top: 6px !important;
	font-weight: 500;
}
.wpcf7-not-valid {
	border-color: #d04444 !important;
}
.wpcf7-response-output {
	border: 1px solid var(--bwc-border) !important;
	border-radius: 12px !important;
	padding: 14px 18px !important;
	margin: 16px 0 0 !important;
	font-size: 14px;
}
.wpcf7-mail-sent-ok {
	background: rgba(26,166,106,.08) !important;
	border-color: #1AA66A !important;
	color: #1AA66A !important;
}
.wpcf7-mail-sent-ng,
.wpcf7-validation-errors,
.wpcf7-acceptance-missing {
	background: rgba(208,68,68,.08) !important;
	border-color: #d04444 !important;
	color: #d04444 !important;
}

/* Spacing tra <p> del form CF7 */
.wpcf7 form > p,
.wpcf7 .bwc-form > p {
	margin: 0 0 18px;
}
.wpcf7 form > p:last-child,
.wpcf7 .bwc-form > p:last-child {
	margin: 24px 0 0;
}

/* Loading spinner CF7 */
.wpcf7-spinner {
	margin-left: 12px;
}
