/* ============================================================================
   Taylix Solutions — design system
   Palette verificata WCAG 2.1 AA. I rapporti indicati nei commenti sono
   calcolati sul fondo reale di ciascun elemento.
   ========================================================================== */

:root {
  /* ---- Brand: invariati ---- */
  --taylix-navy: #0f2a44;
  --taylix-navy-deep: #071a2d;
  --taylix-navy-soft: #183b5c;
  --taylix-blue: #1f5fbf;          /* 6.09:1 su bianco */
  --taylix-orange: #ff7a00;        /* solo come FONDO, mai come testo su chiaro */
  --taylix-orange-pale: #fff1e5;
  --taylix-ink: #12243a;           /* 15.68:1 */
  --taylix-body: #405168;          /*  8.09:1 */
  --taylix-bg: #f4f7fa;
  --taylix-white: #fff;

  /* ---- Token accessibili ---- */
  --taylix-on-orange: #0f2a44;     /* testo sopra l'arancione → 5.60:1 */
  --taylix-orange-ink: #b45100;    /* arancione come TESTO su fondo chiaro → 5.10:1 */
  --taylix-orange-hover: #a04800;  /* 6.14:1 */
  --taylix-orange-light: #ffa14a;  /* arancione come testo su fondo scuro → 4.53:1 */
  --taylix-muted: #5c6b80;         /* 5.43:1 su bianco · 5.05:1 su --taylix-bg */
  --taylix-border: #dce3eb;        /* bordo decorativo */
  --taylix-border-strong: #7a8ca2; /* bordo dei CONTROLLI → 3.44:1 */
  --taylix-divider: #c3cedb;       /* separatore con funzione di raggruppamento */
  --focus-ring-light: #1f5fbf;
  --focus-ring-dark: #fff;

  /* ---- Tipografia: un solo root fluido, rapporti costanti a ogni viewport ---- */
  --font-heading: "Aptos Display", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --font-body: "Aptos", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

  --fs-root: clamp(1rem, .93rem + .31vw, 1.0625rem);
  --fs-display: clamp(2.5rem, 1.55rem + 4.2vw, 4.5rem);  /* 40→72px, solo .hero-title */
  --fs-h1: clamp(2.125rem, 1.6rem + 2.4vw, 3rem);        /* 34→48px, pagine interne */
  --fs-h2: calc(var(--fs-root) * 2.35);
  --fs-h3: calc(var(--fs-root) * 1.55);
  --fs-h4: calc(var(--fs-root) * 1.2);
  --fs-lead: calc(var(--fs-root) * 1.15);
  --fs-body: var(--fs-root);
  --fs-sm: calc(var(--fs-root) * .875);
  --fs-xs: calc(var(--fs-root) * .78);   /* ≈12.5px: sopra il minimo caption */
  --fs-overline: calc(var(--fs-root) * .75);

  --lh-display: 1.05;
  --lh-h2: 1.15;
  --lh-h3: 1.25;
  --lh-h4: 1.35;
  --lh-body: 1.6;
  --lh-tight: 1.4;

  --tracking-display: -.02em;
  --tracking-heading: -.015em;  /* era -.025em: troppo stretto sui fallback Arial */
  --tracking-over: .14em;

  --measure: 68ch;
  --measure-narrow: 58ch;

  /* ---- Spaziatura: base 8px ---- */
  --space-3xs: 4px;
  --space-2xs: 8px;
  --space-xs: 12px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 32px;
  --space-xl: 48px;
  --space-section: clamp(64px, 7vw, 104px);
  --gutter: clamp(16px, 3vw, 24px);

  --container: 1200px;
  --header-h: 84px;
  --control-h: 44px;      /* minimo touch */
  --control-h-lg: 52px;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 32px;
  --shadow-sm: 0 4px 18px rgba(15, 42, 68, .08);
  --shadow-md: 0 12px 36px rgba(15, 42, 68, .12);
  --shadow-lg: 0 24px 64px rgba(15, 42, 68, .16);
}

/* Legal pages */
.taylix-legal-page {
	max-width: 900px;
	margin-inline: auto;
}

.taylix-legal-page h2 {
	margin-top: 2rem;
}

.taylix-legal-page li + li {
	margin-top: .55rem;
}

.legal-updated {
	color: var(--taylix-muted, #52606d);
}

.technical-cookies-only {
	padding: 1.25rem 1.5rem;
	border-left: 4px solid var(--taylix-primary, #087dbd);
	border-radius: .5rem;
	background: #eef8fd;
	color: #123047;
}

@media (max-width: 720px) { :root { --header-h: 72px; } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body.taylix-site-v2 { margin: 0; color: var(--taylix-body); background: var(--taylix-white); font: 400 var(--fs-body)/var(--lh-body) var(--font-body); -webkit-font-smoothing: antialiased; }
body.admin-bar .site-header { top: 32px; }
body.admin-bar { --header-offset: 32px; }
body.mobile-menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: var(--taylix-blue); text-underline-offset: .18em; }
a:hover { color: var(--taylix-orange-hover); }
button, input, select, textarea { font: inherit; }

/* Focus ring contestuale: su fondo navy quello blu scendeva a 2.40:1 */
:focus-visible { outline: 3px solid var(--focus-ring, var(--focus-ring-light)); outline-offset: 3px; }
.hero-section, .about-mission, .stats-grid, .site-footer { --focus-ring: var(--focus-ring-dark); }
/* Contenitori messi a fuoco da script: nessun ring attorno all'intera sezione */
[tabindex="-1"]:focus { outline: none; }

.taylix-container { width: min(calc(100% - var(--gutter) * 2), var(--container)); margin-inline: auto; }
/* Regola base dichiarata qui e non ereditata da Astra: è una primitiva di
   accessibilità, e se il genitore cambia o viene sostituito i testi riservati
   agli screen reader comparirebbero in pagina. */
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); border: 0; word-wrap: normal !important; }
.screen-reader-text:focus, .skip-link:focus { position: absolute; z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; padding: 12px 18px; clip: auto; clip-path: none; background: #fff; color: var(--taylix-navy); }

h1, h2, h3, h4 { color: var(--taylix-ink); font-family: var(--font-heading); font-weight: 700; letter-spacing: var(--tracking-heading); text-wrap: balance; }
h1 { font-size: var(--fs-h1); line-height: var(--lh-h2); }
h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
h3 { font-size: var(--fs-h3); line-height: var(--lh-h3); }
h4 { font-size: var(--fs-h4); line-height: var(--lh-h4); }
p { margin: 0 0 1.2em; }
.lead { font-size: var(--fs-lead); max-width: var(--measure); }
.text-center { text-align: center; }
.mt-3 { margin-top: var(--space-md); }
.mt-4 { margin-top: var(--space-lg); }
.mt-5 { margin-top: var(--space-xl); }
.mb-4 { margin-bottom: var(--space-lg); }
.bg-light { background: var(--taylix-bg); }

/* ---------------------------------------------------------------- Header */

.site-header { position: sticky; z-index: 1000; top: 0; border-bottom: 1px solid rgba(15, 42, 68, .08); background: rgba(255, 255, 255, .94); backdrop-filter: blur(14px); transition: box-shadow .2s ease; }
.site-header.scrolled { box-shadow: var(--shadow-sm); }
.header-inner { min-height: var(--header-h); display: flex; align-items: center; gap: var(--space-md); }
.site-brand { display: flex; width: 218px; margin-right: auto; }
.brand-logo { display: block; width: 218px; max-height: 64px; object-fit: contain; object-position: left center; }

.primary-menu { display: flex; align-items: center; gap: var(--space-md); margin: 0; padding: 0; list-style: none; }
.primary-menu a { position: relative; display: block; padding: 10px 2px; color: var(--taylix-ink); font-size: var(--fs-sm); font-weight: 650; text-decoration: none; }
.primary-menu a:hover { color: var(--taylix-orange-hover); }
.primary-menu a.active { color: var(--taylix-orange-ink); }
/* Indicatore non cromatico: il colore da solo non distingue posizione da hover */
.primary-menu a.active::after { position: absolute; right: 2px; bottom: 2px; left: 2px; height: 3px; content: ""; border-radius: 2px; background: var(--taylix-orange-ink); }

.nav-toggle { display: none; align-items: center; justify-content: center; min-width: var(--control-h); min-height: var(--control-h); margin-right: -12px; padding: 10px 12px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--taylix-navy); cursor: pointer; }
.nav-toggle-label { font-weight: 700; }
.nav-toggle-icon { position: relative; display: inline-block; width: 24px; height: 2px; margin-left: var(--space-2xs); background: currentColor; vertical-align: middle; }
.nav-toggle-icon::before, .nav-toggle-icon::after { position: absolute; left: 0; width: 24px; height: 2px; content: ""; background: currentColor; }
.nav-toggle-icon::before { top: -7px; }
.nav-toggle-icon::after { top: 7px; }
.nav-backdrop { position: fixed; z-index: 900; inset: 0; background: rgba(7, 26, 45, .5); }

/* --------------------------------------------------------------- Bottoni */

.btn { display: inline-flex; min-height: var(--control-h); align-items: center; justify-content: center; padding: var(--space-xs) var(--space-md); border: 1px solid transparent; border-radius: 999px; font-weight: 750; line-height: 1.2; text-decoration: none; transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.btn:hover { transform: translateY(-2px); }
/* Testo navy sull'arancione: il bianco si fermava a 2.61:1 */
.btn-primary { color: var(--taylix-on-orange); background: var(--taylix-orange); box-shadow: 0 8px 24px rgba(255, 122, 0, .25); }
.btn-primary:hover { color: var(--taylix-on-orange); background: #ff9124; }
.btn-secondary { color: #fff; background: var(--taylix-blue); }
.btn-outline { color: var(--taylix-navy); border-color: var(--taylix-navy); background: transparent; }
.btn-outline:hover { color: #fff; background: var(--taylix-navy); }
.btn-ghost { color: #fff; border-color: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .06); }
.btn-ghost:hover { color: var(--taylix-navy); background: #fff; }
.btn-large { min-height: var(--control-h-lg); padding-inline: var(--space-lg); }

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

.taylix-section { position: relative; padding-block: var(--space-section); overflow: clip; }
.section-header { max-width: 62ch; margin: 0 auto var(--space-xl); text-align: center; }
.section-subtitle, .product-badge { margin: 0 0 var(--space-xs); color: var(--taylix-orange-ink); font-size: var(--fs-overline); font-weight: 800; letter-spacing: var(--tracking-over); text-transform: uppercase; }
.section-title { margin: 0 0 var(--space-sm); }
.section-description { max-width: var(--measure-narrow); margin: 0 auto; color: var(--taylix-muted); font-size: var(--fs-lead); }

/* ------------------------------------------------------------------ Hero */

.hero-section { min-height: min(820px, calc(100vh - var(--header-h))); display: grid; place-items: center; color: #fff; background: radial-gradient(circle at 85% 20%, rgba(31, 95, 191, .45), transparent 30%), radial-gradient(circle at 15% 85%, rgba(255, 122, 0, .18), transparent 26%), linear-gradient(145deg, var(--taylix-navy-deep), var(--taylix-navy-soft)); }
.hero-section::after { position: absolute; inset: 0; content: ""; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.3) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.3) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(to right, transparent, #000); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); align-items: center; gap: clamp(40px, 6vw, 80px); }
.hero-subtitle { display: inline-flex; margin-bottom: var(--space-md); padding: var(--space-2xs) var(--space-sm); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #fff; background: rgba(255,255,255,.06); font-size: var(--fs-xs); font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.hero-title { max-width: 18ch; margin: 0 0 var(--space-md); color: #fff; font-size: var(--fs-display); line-height: var(--lh-display); font-weight: 800; letter-spacing: var(--tracking-display); }
.hero-title em { color: var(--taylix-orange); font-style: normal; }
.hero-description { max-width: var(--measure); margin-bottom: var(--space-lg); color: rgba(255,255,255,.82); font-size: var(--fs-lead); }
.hero-buttons { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.hero-proof { display: flex; flex-wrap: wrap; gap: var(--space-md); margin: var(--space-lg) 0 0; padding: 0; list-style: none; color: rgba(255,255,255,.78); font-size: var(--fs-sm); }
.hero-proof li { margin: 0; }
.hero-proof strong { display: block; color: #fff; font-size: var(--fs-h4); }
.hero-panel { display: grid; gap: var(--space-sm); }
.hero-card { padding: var(--space-md); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-lg); background: rgba(255,255,255,.08); box-shadow: 0 18px 48px rgba(0,0,0,.18); backdrop-filter: blur(12px); }
.hero-card-label { color: var(--taylix-orange-light); font-size: var(--fs-overline); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hero-card h2 { margin: var(--space-2xs) 0; color: #fff; font-size: var(--fs-h3); }
.hero-card p { margin: 0; color: rgba(255,255,255,.78); font-size: var(--fs-sm); }
.hero-card-meta { display: flex; gap: var(--space-2xs); margin-top: var(--space-sm); }
.hero-card-meta span { padding: 6px 10px; border-radius: 999px; color: #fff; background: rgba(255,255,255,.12); font-size: var(--fs-overline); font-weight: 600; }

/* La suite sostituisce le due card generiche con una mappa leggibile dei prodotti. */
.hero-panel { position: relative; min-height: 520px; place-items: center; }
.hero-orbit, .hero-orbit span { position: absolute; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; }
.hero-orbit { width: min(520px, 42vw); aspect-ratio: 1; }
.hero-orbit span { inset: 12%; }
.hero-orbit span:nth-child(2) { inset: 24%; border-color: rgba(255,122,0,.22); }
.hero-orbit span:nth-child(3) { inset: 37%; border-color: rgba(255,255,255,.18); }
.hero-suite-card { position: relative; z-index: 1; width: min(100%, 470px); padding: clamp(22px, 4vw, 36px); border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-xl); background: rgba(8,28,48,.76); box-shadow: 0 30px 80px rgba(0,0,0,.28); backdrop-filter: blur(18px); }
.hero-suite-kicker { margin: 0 0 var(--space-sm); color: var(--taylix-orange-light); font-size: var(--fs-overline); font-weight: 800; letter-spacing: var(--tracking-over); text-transform: uppercase; }
ul.hero-suite-list { margin: 0 !important; padding: 0 !important; list-style: none !important; }
ul.hero-suite-list > li { display: grid !important; grid-template-columns: 34px minmax(150px, 1fr) minmax(92px, auto); align-items: center; column-gap: var(--space-sm); padding: var(--space-sm) 0; border-top: 1px solid rgba(255,255,255,.12); list-style: none !important; }
.hero-suite-index { color: var(--taylix-orange-light); font: 700 var(--fs-xs)/1 var(--font-heading); }
ul.hero-suite-list > li > strong { display: block; color: #fff; font: 700 var(--fs-h4)/1.2 var(--font-heading); }
ul.hero-suite-list > li > small { display: block; color: rgba(255,255,255,.68); font-size: var(--fs-xs); text-align: right; }

/* ---------------------------------------------------------- Suite overview */

.suite-section { background: linear-gradient(180deg, #fff, #f6f8fb); }
.suite-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: var(--space-sm); }
.suite-card { position: relative; min-height: 320px; display: flex; flex-direction: column; padding: var(--space-lg); border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); color: var(--taylix-body); background: #fff; box-shadow: 0 8px 28px rgba(15,42,68,.06); text-decoration: none; overflow: hidden; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.suite-card::before { position: absolute; top: 0; right: 0; left: 0; height: 5px; content: ""; background: linear-gradient(90deg, var(--taylix-orange), var(--taylix-blue)); transform: scaleX(.28); transform-origin: left; transition: transform .25s ease; }
.suite-card:hover { transform: translateY(-6px); border-color: #a9bfd8; color: var(--taylix-body); box-shadow: var(--shadow-md); }
.suite-card:hover::before { transform: scaleX(1); }
.suite-number { align-self: flex-end; color: #dce5ef; font: 800 3.25rem/1 var(--font-heading); }
.suite-area { margin-top: auto; color: var(--taylix-orange-ink); font-size: var(--fs-overline); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.suite-card h3 { margin: var(--space-xs) 0; font-size: var(--fs-h3); }
.suite-card p { margin: 0 0 var(--space-md); color: var(--taylix-muted); font-size: var(--fs-sm); }
.suite-link { margin-top: auto; color: var(--taylix-blue); font-size: var(--fs-sm); font-weight: 750; }

/* ----------------------------------------------------------------- Card */
/* Prossimità: distanza fra le card (32) = 2× distanza interna (16) */

.value-grid, .about-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-lg); }
.value-card, .about-card { position: relative; padding: var(--space-lg); border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.value-card::before { position: absolute; top: 0; left: var(--space-lg); width: 52px; height: 4px; content: ""; background: var(--taylix-orange); }
.value-icon, .about-card-icon, .feature-icon { width: 56px; height: 56px; display: grid; place-items: center; flex: 0 0 56px; border-radius: var(--radius-md); background: var(--taylix-orange-pale); }
.taylix-icon { width: 32px; height: 32px; }
.value-card h3, .about-card h3 { margin: var(--space-sm) 0 var(--space-2xs); font-size: var(--fs-h4); }
.value-card p, .about-card p { margin: 0; color: var(--taylix-muted); }

/* -------------------------------------------------------------- Prodotti */

.product-badge { width: max-content; margin: 0 auto var(--space-xs); padding: var(--space-2xs) var(--space-sm); border-radius: 999px; background: var(--taylix-orange-pale); }
.product-content { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); align-items: center; gap: clamp(40px, 5vw, 64px); }
.product-content.product-reverse .product-image { order: -1; }
.product-features { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); margin-top: var(--space-lg); }
.feature-item { display: flex; align-items: flex-start; gap: var(--space-sm); padding: var(--space-sm); border: 1px solid var(--taylix-border); border-radius: var(--radius-md); background: #fff; }
.feature-icon { width: 42px; height: 42px; flex-basis: 42px; border-radius: var(--radius-sm); }
.feature-icon .taylix-icon { width: 24px; height: 24px; }
.feature-content h3 { margin: 0 0 var(--space-3xs); font-size: var(--fs-h4); letter-spacing: 0; }
.feature-content p { margin: 0; color: var(--taylix-muted); font-size: var(--fs-sm); line-height: 1.5; }
.product-cta { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.product-image { padding: var(--space-sm); border: 1px solid rgba(15,42,68,.1); border-radius: var(--radius-xl); background: #fff; box-shadow: var(--shadow-lg); }
.product-screenshot { display: block; width: 100%; border-radius: calc(var(--radius-xl) - 10px); background: #f6f8fb; object-fit: contain; }
.product-image-caption { padding: var(--space-xs) var(--space-2xs) 0; color: var(--taylix-muted); font-size: var(--fs-sm); text-align: center; }
.promopilot-stats { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 900px; margin: 0 auto var(--space-xl); padding: 0; list-style: none; border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.promopilot-stat { padding: var(--space-md) var(--space-sm); text-align: center; }
.promopilot-stat + .promopilot-stat { border-left: 1px solid var(--taylix-divider); }
.pps-num { display: block; color: var(--taylix-navy); font: 800 var(--fs-h3)/1 var(--font-heading); font-variant-numeric: tabular-nums; }
/* Le caselle non numeriche non usano il trattamento da KPI: stesso aspetto
   significherebbe stessa categoria, e qui il dato quantitativo è uno solo. */
.pps-txt { display: block; color: var(--taylix-ink); font: 650 var(--fs-h4)/1.2 var(--font-heading); }
.pps-lbl { display: block; margin-top: var(--space-3xs); color: var(--taylix-muted); font-size: var(--fs-overline); font-weight: 700; text-transform: uppercase; }
.product-highlights { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); margin-top: var(--space-md); }
.highlight-box { padding: var(--space-md); border-radius: var(--radius-md); background: var(--taylix-bg); }
.highlight-box h4 { margin: 0 0 var(--space-2xs); font-size: var(--fs-sm); }
.highlight-stat { margin: 0; color: var(--taylix-orange-ink); font: 800 var(--fs-h2)/1 var(--font-heading); font-variant-numeric: tabular-nums; }
.highlight-stat--text { font: 700 var(--fs-h3)/1.2 var(--font-heading); }
.highlight-box p { margin: var(--space-2xs) 0 0; color: var(--taylix-muted); font-size: var(--fs-sm); }

/* Le anteprime sono visuali di prodotto costruite nel tema: nessun dato cliente. */
.product-ui { min-height: 470px; align-self: center; border: 1px solid rgba(15,42,68,.16); border-radius: var(--radius-xl); background: #fff; box-shadow: var(--shadow-lg); overflow: hidden; }
.ui-toolbar { min-height: 58px; display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: var(--space-xs); padding: 0 var(--space-md); border-bottom: 1px solid var(--taylix-border); color: var(--taylix-ink); }
.ui-toolbar > span { width: 12px; height: 12px; border-radius: 50%; background: var(--taylix-orange); box-shadow: 18px 0 #f2c94c, 36px 0 #3bb273; }
.ui-toolbar strong { margin-left: 28px; font-size: var(--fs-sm); }
.ui-toolbar small { color: var(--taylix-muted); }
.ui-shell { min-height: 410px; display: grid; grid-template-columns: 68px 1fr; }
.ui-sidebar { display: flex; align-items: center; flex-direction: column; gap: 24px; padding-top: 30px; background: var(--taylix-navy); }
.ui-sidebar i { width: 23px; height: 5px; border-radius: 5px; background: rgba(255,255,255,.34); }
.ui-sidebar i:first-child { background: var(--taylix-orange); }
.ui-main { padding: clamp(22px, 4vw, 38px); background: #f7f9fc; }
.ui-eyebrow { margin: 0; color: var(--taylix-blue); font-size: var(--fs-xs); font-weight: 800; text-transform: uppercase; }
.ui-main h3 { margin: 5px 0 24px; font-size: var(--fs-h3); }
.ui-metrics, .zenith-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ui-metrics span, .zenith-kpis span { min-height: 82px; padding: 14px; border: 1px solid var(--taylix-border); border-radius: 10px; background: #fff; }
.ui-metrics b, .ui-metrics em, .zenith-kpis b, .zenith-kpis em { display: block; }
.ui-metrics b, .zenith-kpis b { color: var(--taylix-ink); font-size: var(--fs-sm); }
.ui-metrics em, .zenith-kpis em { margin-top: 6px; color: var(--taylix-muted); font-size: var(--fs-xs); font-style: normal; }
.ui-chart { height: 160px; display: flex; align-items: end; gap: 7%; margin-top: 22px; padding: 22px; border-radius: 12px; background: #fff; }
.ui-chart span { width: 10%; height: 42%; border-radius: 5px 5px 0 0; background: #bdd0eb; }
.ui-chart span:nth-child(2) { height: 68%; }.ui-chart span:nth-child(3) { height: 54%; }.ui-chart span:nth-child(4) { height: 82%; background: var(--taylix-blue); }.ui-chart span:nth-child(5) { height: 63%; }.ui-chart span:nth-child(6) { height: 91%; background: var(--taylix-orange); }
.store-section { background: linear-gradient(180deg, #fffaf5, #f6f8fb); }
.product-ui--store { width: min(100%, 510px); min-height: 620px; justify-self: center; border-radius: 34px; background: #f4f6fa; }
.store-appbar { min-height: 92px; display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 12px; padding: 18px 28px; color: #fff; background: linear-gradient(110deg, var(--taylix-navy), #274575 70%, #6d5960); }
.store-appbar span { font-size: 38px; font-weight: 300; }
.store-appbar strong { font: 750 clamp(1.35rem, 3vw, 2rem)/1.15 var(--font-heading); }
.store-screen { padding: 22px; }
.store-scan { min-height: 88px; padding: 18px; border: 3px solid var(--taylix-orange); border-radius: 18px; color: var(--taylix-orange-ink); background: #f5f7fa; font-weight: 750; }
.store-product-card { margin-top: 18px; padding: 24px; border-radius: 24px; background: #fff; box-shadow: 0 8px 26px rgba(15,42,68,.07); }
.store-product-head { display: flex; justify-content: space-between; gap: 18px; }
.store-product-head strong, .store-product-head small { display: block; }
.store-product-head strong { color: var(--taylix-ink); font: 750 var(--fs-h4)/1.25 var(--font-heading); }
.store-product-head small { margin-top: 5px; color: var(--taylix-muted); }
.store-product-head > span { color: #95a1b3; font-size: 32px; line-height: 1; }
.store-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.store-tags span { padding: 7px 11px; border-radius: 999px; color: #526079; background: #f5f7fa; font-size: var(--fs-xs); font-weight: 750; }
.store-tags span:first-child { color: var(--taylix-orange-ink); background: #ffdfca; }
.store-department { margin: 14px 0; color: var(--taylix-muted); font-size: var(--fs-sm); }
.store-history { display: grid; gap: 7px; padding: 14px; border-radius: 12px; background: #f6f8fb; }
.store-history strong { color: #53617a; font-size: var(--fs-sm); }
.store-history span { display: flex; justify-content: space-between; gap: 12px; color: var(--taylix-ink); }
.store-history time { color: var(--taylix-muted); }
.store-quantity { display: grid; grid-template-columns: 34px 62px 34px 1fr; align-items: center; gap: 10px; margin-top: 20px; text-align: center; }
.store-quantity button { padding: 0; border: 0; color: var(--taylix-ink); background: transparent; font-size: 30px; }
.store-quantity strong { min-height: 58px; display: grid; place-items: center; border: 1px solid #cbd5e3; border-radius: 10px; font-size: var(--fs-h3); }
.store-quantity > span { min-height: 58px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: var(--taylix-orange); font-weight: 800; }
.store-actions { display: grid; grid-template-columns: .8fr 1.2fr; gap: 12px; margin-top: 18px; }
.store-actions span, .store-actions strong { min-height: 54px; display: grid; place-items: center; border-radius: 12px; text-align: center; }
.store-actions span { border: 2px solid #d93636; color: #c92d2d; }
.store-actions strong { color: #fff; background: var(--taylix-blue); }
.solution-store-preview { max-width: 620px; margin: 0 auto var(--space-xl); }
.promo-table { margin: 34px 26px; border: 1px solid var(--taylix-border); border-radius: 12px; overflow: hidden; }
.promo-row { min-height: 64px; display: grid; grid-template-columns: 1.4fr 1fr .65fr .65fr; align-items: center; gap: 12px; padding: 0 16px; border-top: 1px solid var(--taylix-border); }
.promo-row:first-child { border-top: 0; }
.promo-row > span { height: 10px; border-radius: 5px; background: #dfe7f0; }
.promo-head { min-height: 46px; color: #fff; background: var(--taylix-navy); font-size: var(--fs-xs); font-weight: 700; }
.promo-head > span { height: auto; background: transparent; }
.promo-row .ok, .promo-row .warn { width: 62px; height: 25px; justify-self: end; background: #dff5e8; }
.promo-row .warn { background: #fff0d8; }

.regulation-callout { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--space-md); margin: calc(var(--space-xl) * -0.35) auto var(--space-xl); padding: var(--space-md); border: 1px solid #b8cce4; border-left: 5px solid var(--taylix-blue); border-radius: var(--radius-md); background: #f1f6fc; }
.regulation-mark { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--taylix-navy); font: 800 var(--fs-sm)/1 var(--font-heading); letter-spacing: .06em; }
.regulation-callout strong { color: var(--taylix-ink); }
.regulation-callout p { margin: 4px 0 0; font-size: var(--fs-sm); }
.regulation-callout > a { font-size: var(--fs-sm); font-weight: 750; white-space: nowrap; }
.contract-flow, .zenith-pipeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: var(--space-md) 0; }
.contract-flow span, .zenith-pipeline span { position: relative; min-height: 68px; display: grid; align-content: center; padding: 10px; border-radius: 9px; color: var(--taylix-ink); background: #edf3fa; font-size: var(--fs-xs); font-weight: 700; text-align: center; }
.contract-flow span:not(:last-child)::after, .zenith-pipeline span:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -8px; content: "›"; color: var(--taylix-blue); font-size: 22px; transform: translateY(-52%); }
.contract-flow b { display: block; margin-bottom: 3px; color: var(--taylix-blue); }
.contract-board { padding: 24px; background: #f7f9fc; }
.contract-filters { display: flex; gap: 10px; margin-bottom: 22px; }
.contract-filters i { width: 78px; height: 28px; border: 1px solid var(--taylix-border); border-radius: 7px; background: #fff; }
.contract-item { min-height: 94px; display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 2px 18px; margin-bottom: 12px; padding: 18px; border: 1px solid var(--taylix-border); border-radius: 12px; background: #fff; }
.contract-item b { color: var(--taylix-ink); }.contract-item small { grid-column: 2; color: var(--taylix-muted); }
.status { grid-row: 1 / 3; padding: 6px 8px; border-radius: 999px; font-size: var(--fs-xs); font-weight: 700; text-align: center; }
.status--review { color: #744300; background: #fff0d2; }.status--sign { color: #174d93; background: #e5effc; }.status--done { color: #17633f; background: #def4e8; }
.product-ui--zenith { padding-bottom: 24px; }
.zenith-kpis { grid-template-columns: 1fr 1fr; margin: 24px; }
.shift-grid { display: grid; grid-template-columns: 1.1fr repeat(4, 1fr); gap: 5px; margin: 0 24px; }
.shift-grid > * { min-height: 38px; display: grid; place-items: center; border-radius: 6px; font-size: var(--fs-xs); }
.shift-grid b { color: var(--taylix-muted); }.shift-grid i { justify-items: start; color: var(--taylix-ink); font-style: normal; font-weight: 700; }.shift-grid span { background: linear-gradient(90deg, #b9cdf0 15%, #3370c2 15% 74%, #b9cdf0 74%); }
.product-ui--rag { padding-bottom: 24px; }
.rag-query { margin: 24px; padding: 16px 18px; border: 1px solid var(--taylix-border); border-radius: 10px; color: var(--taylix-ink); background: #f7f9fc; font-size: var(--fs-sm); font-weight: 700; }
.rag-sources { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 24px 18px; }
.rag-sources span { min-height: 64px; display: grid; place-items: center; padding: 10px; border: 1px solid #b8cce4; border-radius: 9px; color: var(--taylix-blue); background: #edf3fa; font-size: var(--fs-xs); font-weight: 750; text-align: center; }
.rag-model { width: 88px; height: 88px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 50%; color: #fff; background: linear-gradient(135deg, var(--taylix-blue), var(--taylix-navy)); font: 800 var(--fs-sm)/1.15 var(--font-heading); text-align: center; box-shadow: 0 12px 30px rgba(15,42,68,.2); }
.rag-answer { margin: 0 24px; padding: 18px; border-left: 4px solid var(--taylix-orange); border-radius: 8px; color: var(--taylix-muted); background: #fff7ed; font-size: var(--fs-sm); }

/* ------------------------------------------------------------ Chi siamo */

.about-grid { grid-template-columns: repeat(4, 1fr); margin-top: var(--space-lg); }
.about-card { padding: var(--space-md); }
.about-mission { display: grid; grid-template-columns: 1.35fr .65fr; align-items: stretch; gap: var(--space-lg); padding: clamp(28px, 5vw, 56px); border-radius: var(--radius-xl); color: rgba(255,255,255,.82); background: var(--taylix-navy); }
.about-mission h3 { margin-top: 0; color: #fff; }
.company-facts { display: grid; align-content: center; gap: var(--space-sm); margin: 0; padding: 0; list-style: none; }
.company-fact { padding: var(--space-sm); border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius-md); background: rgba(255,255,255,.06); }
.company-fact strong { display: block; color: var(--taylix-orange-light); font-size: var(--fs-h3); }

/* ------------------------------------------------------------ Portfolio */

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: var(--space-xl); border-radius: var(--radius-lg); color: #fff; background: var(--taylix-navy); overflow: hidden; }
.stat-item { padding: var(--space-lg) var(--space-md); text-align: center; }
.stat-item + .stat-item { border-left: 1px solid rgba(255,255,255,.16); }
.stat-number { color: var(--taylix-orange); font: 800 clamp(2rem, 4vw, 3rem)/1 var(--font-heading); font-variant-numeric: tabular-nums; }
.stat-label { margin-top: var(--space-2xs); color: rgba(255,255,255,.78); font-size: var(--fs-sm); }
.case-studies-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-lg); }
.case-study-card { padding: var(--space-lg); border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.case-badge { display: inline-block; padding: 6px 10px; border-radius: 999px; color: #fff; background: var(--taylix-blue); font-size: var(--fs-overline); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.case-badge-secondary { background: var(--taylix-orange-ink); }
.case-study-card h3 { margin: var(--space-sm) 0 var(--space-xs); font-size: var(--fs-h4); }
.case-description { color: var(--taylix-muted); }
.case-results { display: flex; flex-wrap: wrap; gap: var(--space-md); padding-top: var(--space-md); border-top: 1px solid var(--taylix-border); }
.case-result-item strong { display: block; color: var(--taylix-orange-ink); font-size: var(--fs-h4); font-variant-numeric: tabular-nums; }
.case-result-item span { color: var(--taylix-muted); font-size: var(--fs-xs); }
.clients-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-md); }
.client-logo { display: grid; width: 180px; height: 100px; place-items: center; padding: var(--space-sm); border: 1px solid var(--taylix-border); border-radius: var(--radius-md); background: #fff; }
.client-logo img { max-width: 145px; max-height: 70px; object-fit: contain; }
.clients-note { max-width: var(--measure); margin-inline: auto; color: var(--taylix-muted); font-size: var(--fs-sm); }

/* ------------------------------------------------------------------ FAQ */

.faq-list { max-width: var(--measure); margin: auto; }
.faq-item { border-bottom: 1px solid var(--taylix-border); }
.faq-item summary { padding: var(--space-md) 44px var(--space-md) 0; cursor: pointer; }
.faq-item summary::marker { color: var(--taylix-orange-ink); }
/* Il titolo resta un heading, così gli screen reader possono saltare fra le domande */
.faq-item summary { color: var(--taylix-ink); font: 750 var(--fs-h4)/var(--lh-tight) var(--font-heading); letter-spacing: 0; }
.faq-answer { max-width: var(--measure); padding: 0 0 var(--space-md); color: var(--taylix-muted); }

/* ------------------------------------------------------------- Contatti */

.contact-wrapper { display: grid; grid-template-columns: 1.2fr .8fr; gap: var(--space-lg); }
.contact-form-container, .contact-info { padding: clamp(24px, 4vw, 40px); border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.contact-form-container > h3, .contact-info > h3 { margin-top: 0; font-size: var(--fs-h3); }
.contact-item { display: flex; gap: var(--space-sm); padding: var(--space-sm) 0; border-bottom: 1px solid var(--taylix-border); }
.contact-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 42px; border-radius: var(--radius-sm); background: var(--taylix-orange-pale); }
.contact-icon .taylix-icon { width: 22px; height: 22px; }
.contact-details h4 { margin: 0 0 var(--space-3xs); font-size: var(--fs-sm); }
.contact-details p { margin: 0; }
.trust-badges { display: grid; gap: var(--space-2xs); }
.trust-badge { color: var(--taylix-muted); font-size: var(--fs-sm); }
.trust-icon { color: #16794b; font-weight: 900; }

/* Campi form: il bordo a 1.81:1 era l'unico confine visivo del campo */
.wpforms-container input, .wpforms-container select, .wpforms-container textarea {
  min-height: var(--control-h) !important;
  border: 1px solid var(--taylix-border-strong) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--taylix-ink) !important;
  background: #fff !important;
}
.wpforms-container textarea { min-height: 120px !important; }
.wpforms-container input:focus, .wpforms-container select:focus, .wpforms-container textarea:focus {
  border-color: var(--taylix-blue) !important;
  outline: 3px solid var(--taylix-blue) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}
.wpforms-container .wpforms-submit { min-height: var(--control-h-lg) !important; padding: var(--space-xs) var(--space-md) !important; border: 0 !important; border-radius: 999px !important; color: var(--taylix-on-orange) !important; background: var(--taylix-orange) !important; font-weight: 800 !important; }
.form-fallback { padding: var(--space-md); border: 1px solid var(--taylix-border); border-radius: var(--radius-md); background: var(--taylix-bg); }
.form-fallback .btn { margin-top: var(--space-sm); }

/* ------------------------------------------------------------- Carriere */

.careers-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-lg); }
.career-card { padding: var(--space-lg); border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); background: #fff; }
.career-meta { display: flex; flex-wrap: wrap; gap: var(--space-2xs); color: var(--taylix-muted); font-size: var(--fs-xs); }
.career-badge { padding: 4px 9px; border-radius: 999px; color: var(--taylix-blue); background: #eaf1fc; }
.career-card h3 { font-size: var(--fs-h4); }
.career-requirements { margin: var(--space-sm) 0 var(--space-md); padding-left: 20px; color: var(--taylix-muted); font-size: var(--fs-sm); }
.career-requirements li + li { margin-top: var(--space-2xs); }
/* Il form candidature non deve somigliare a quello commerciale */
.careers-form-section { max-width: 800px; margin: var(--space-xl) auto 0; padding: var(--space-lg); border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); background: var(--taylix-bg); }
.careers-form-section .wpforms-container .wpforms-submit { background: var(--taylix-navy) !important; color: #fff !important; }

/* ------------------------------------------------------- Pagine interne */

.content-shell { min-height: 60vh; padding-block: var(--space-section); }
.content-header { max-width: var(--measure); margin-bottom: var(--space-xl); }
.content-header h1 { margin: 0 0 var(--space-sm); }
.content-header p { max-width: var(--measure); }
.content-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-lg); }
.content-card { padding: var(--space-md); border: 1px solid var(--taylix-border); border-radius: var(--radius-lg); background: #fff; }
.content-card h3 { margin: 0 0 var(--space-xs); font-size: var(--fs-h4); }
.entry-content { max-width: var(--measure); }
.solution-page .solution-features, .solution-page .solution-faq { margin-top: var(--space-xl); }
.solution-page .product-features { grid-template-columns: repeat(3, 1fr); }
.solution-hero-image { margin: 0 0 var(--space-xl); }
.solution-footer-cta { justify-content: center; margin-top: var(--space-xl); }

/* --------------------------------------------------------------- Footer */

.site-footer { padding: var(--space-section) 0 var(--space-md); color: rgba(255,255,255,.78); background: var(--taylix-navy-deep); }
.footer-grid { display: grid; grid-template-columns: 1.5fr .7fr 1fr; gap: var(--space-xl); }
.footer-brand img { width: 240px; padding: var(--space-2xs) var(--space-xs); border-radius: 10px; background: #fff; }
.footer-brand p { max-width: 420px; margin-top: var(--space-sm); }
.footer-title { margin: 0 0 var(--space-sm); color: #fff; font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--tracking-over); text-transform: uppercase; }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin-bottom: var(--space-3xs); }
.site-footer a { color: rgba(255,255,255,.88); }
.site-footer a:hover { color: var(--taylix-orange-light); }
.site-footer address { font-style: normal; }
/* Target ≥44px: nel footer stanno gli unici link a Privacy e Cookie */
.footer-links a, .footer-bottom nav a, .social-links a { display: inline-flex; min-height: var(--control-h); align-items: center; }
.social-links { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-sm); }
.footer-bottom { display: flex; justify-content: space-between; gap: var(--space-md); margin-top: var(--space-xl); padding-top: var(--space-md); border-top: 1px solid rgba(255,255,255,.12); font-size: var(--fs-xs); }
.footer-bottom p { margin: 0; }
.footer-bottom nav { display: flex; flex-wrap: wrap; gap: var(--space-md); }
.footer-cookie-button { min-height: var(--control-h); padding: 0; border: 0; color: rgba(255,255,255,.88); background: transparent; text-decoration: underline; cursor: pointer; }
.footer-cookie-button:hover { color: var(--taylix-orange-light); }
.back-to-top { position: fixed; z-index: 800; right: var(--space-md); bottom: var(--space-md); width: 48px; height: 48px; border: 0; border-radius: 50%; color: var(--taylix-on-orange); background: var(--taylix-orange); box-shadow: var(--shadow-md); font-size: 1.25rem; line-height: 1; cursor: pointer; }

/* --------------------------------------------------- Consenso e cookie */

.cookie-banner { position: fixed; z-index: 1200; right: var(--gutter); bottom: var(--gutter); left: var(--gutter); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-md); max-width: 1120px; margin-inline: auto; padding: var(--space-lg) 64px var(--space-md) var(--space-md); border: 1px solid var(--taylix-border-strong); border-radius: var(--radius-lg); color: var(--taylix-ink); background: #fff; box-shadow: var(--shadow-lg); }
.cookie-banner[hidden], .cookie-dialog-backdrop[hidden] { display: none; }
.cookie-banner h2, .cookie-dialog h2, .cookie-category h3 { margin: 0 0 var(--space-2xs); }
.cookie-banner p, .cookie-dialog p, .cookie-category p { margin: 0; }
.cookie-banner-copy > a { display: inline-flex; min-height: var(--control-h); align-items: center; margin-top: var(--space-2xs); }
.cookie-banner-actions, .cookie-dialog-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-xs); }
.cookie-banner-close, .cookie-dialog-close { position: absolute; top: var(--space-xs); right: var(--space-xs); display: inline-flex; width: var(--control-h); height: var(--control-h); align-items: center; justify-content: center; border: 0; border-radius: 50%; color: var(--taylix-navy); background: transparent; font-size: 1.65rem; cursor: pointer; }
.cookie-button { min-height: var(--control-h); padding: var(--space-2xs) var(--space-md); border: 2px solid var(--taylix-navy); border-radius: 999px; font-weight: 750; cursor: pointer; }
.cookie-button-primary { color: #fff; background: var(--taylix-navy); }
.cookie-button-secondary { color: var(--taylix-navy); background: #fff; }
.cookie-button:hover { box-shadow: var(--shadow-sm); }
.cookie-dialog-backdrop { position: fixed; z-index: 1300; inset: 0; display: grid; place-items: center; padding: var(--gutter); background: rgba(7, 26, 45, .72); }
.cookie-dialog { position: relative; width: min(680px, 100%); max-height: calc(100vh - 2 * var(--gutter)); padding: var(--space-lg); overflow: auto; border-radius: var(--radius-lg); color: var(--taylix-ink); background: #fff; box-shadow: var(--shadow-lg); }
.cookie-dialog > p { padding-right: var(--space-xl); }
.cookie-category { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-md); margin-top: var(--space-md); padding: var(--space-md); border: 1px solid var(--taylix-border); border-radius: var(--radius-md); }
.cookie-category input[type="checkbox"] { width: 28px; height: 28px; accent-color: var(--taylix-blue); }
.cookie-dialog-actions { margin-top: var(--space-lg); }
.cookie-dialog-open { overflow: hidden; }
.cookie-policy-manage { min-height: var(--control-h); padding: var(--space-2xs) var(--space-sm); border: 2px solid var(--taylix-navy); border-radius: 999px; color: var(--taylix-navy); background: #fff; font-weight: 700; cursor: pointer; }
.legal-table-wrap { overflow-x: auto; }
.legal-table { width: 100%; border-collapse: collapse; }
.legal-table th, .legal-table td { padding: var(--space-xs); border: 1px solid var(--taylix-divider); text-align: left; vertical-align: top; }
.legal-table th { color: var(--taylix-navy); background: var(--taylix-bg); }

[data-reveal] { transition: opacity .55s ease, transform .55s ease; }
.js [data-reveal]:not(.is-visible) { opacity: 0; transform: translateY(24px); }

/* ----------------------------------------------------------- Responsive */

@media (max-width: 1024px) {
  .nav-toggle { display: inline-flex; }
  .header-cta { padding-inline: var(--space-sm); font-size: var(--fs-sm); }
  .primary-navigation { position: fixed; inset: calc(var(--header-h) + var(--header-offset, 0px)) 0 0; display: none; padding: var(--space-md) var(--gutter) var(--space-lg); overflow: auto; border-top: 1px solid var(--taylix-border); background: #fff; z-index: 950; }
  .primary-navigation.is-open { display: block; }
  .primary-menu { align-items: stretch; flex-direction: column; gap: var(--space-3xs); }
  .primary-menu a { min-height: 48px; padding: var(--space-xs) var(--space-2xs); border-bottom: 1px solid var(--taylix-border); font-size: var(--fs-lead); }
  .primary-menu a.active::after { display: none; }
  .hero-grid, .product-content { grid-template-columns: 1fr; }
  .hero-panel { min-height: 430px; }
  .hero-orbit { width: min(520px, 78vw); }
  .suite-grid { grid-template-columns: 1fr 1fr; }
  .value-grid { grid-template-columns: repeat(2, 1fr); }
  .about-grid, .case-studies-grid, .content-grid, .solution-page .product-features { grid-template-columns: 1fr 1fr; }
  .contact-wrapper, .about-mission { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--space-lg); }
}

/* Livello tablet: senza, .value-grid restava a 3 colonne fino a 720px
   (≈18 caratteri per riga su iPad verticale) */
@media (max-width: 860px) {
  .value-grid, .careers-grid, .case-studies-grid, .content-grid, .about-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 782px) { body.admin-bar { --header-offset: 46px; } }

@media (max-width: 720px) {
  .site-brand, .brand-logo { width: 170px; }
  .hero-section { min-height: auto; padding-top: var(--space-xl); }
  .hero-panel { min-height: auto; padding-top: var(--space-md); }
  .hero-orbit { display: none; }
  .hero-suite-card { width: 100%; }
  ul.hero-suite-list > li { grid-template-columns: 28px 1fr !important; }
  ul.hero-suite-list > li > small { grid-column: 2; text-align: left; }
  .suite-grid { grid-template-columns: 1fr; }
  .suite-card { min-height: 260px; }
  .value-grid, .about-grid, .product-features, .product-highlights, .case-studies-grid, .content-grid, .careers-grid, .contact-wrapper, .about-mission, .solution-page .product-features { grid-template-columns: 1fr; }
  .product-content.product-reverse .product-image { order: 0; }
  .promopilot-stats, .stats-grid { grid-template-columns: 1fr 1fr; }
  .promopilot-stat + .promopilot-stat, .stat-item + .stat-item { border-left: 0; }
  .promopilot-stat:nth-child(even), .stat-item:nth-child(even) { border-left: 1px solid var(--taylix-divider); }
  .promopilot-stat:nth-child(n+3), .stat-item:nth-child(n+3) { border-top: 1px solid var(--taylix-divider); }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
	.cookie-banner { grid-template-columns: 1fr; padding-top: var(--space-xl); }
	.cookie-banner-actions, .cookie-dialog-actions { display: grid; grid-template-columns: 1fr; }
	.cookie-button { width: 100%; }
	.cookie-dialog { padding: var(--space-md); padding-top: var(--space-xl); }
	.cookie-category { align-items: start; }
  .product-ui { min-height: 390px; }
  .ui-shell { min-height: 330px; grid-template-columns: 48px 1fr; }
  .ui-sidebar { gap: 18px; }
  .ui-main { padding: 20px 14px; }
  .ui-metrics { grid-template-columns: 1fr; }
  .ui-metrics span { min-height: 58px; }
  .ui-chart { height: 105px; padding: 14px; }
  .product-ui--store { min-height: 0; border-radius: 24px; }
  .store-appbar { min-height: 72px; padding: 14px 18px; }
  .store-screen { padding: 14px; }
  .store-product-card { padding: 18px; }
  .store-quantity { grid-template-columns: 28px 54px 28px 1fr; gap: 7px; }
  .promo-table { margin: 20px 12px; }
  .promo-row { grid-template-columns: 1.25fr .8fr .5fr; padding-inline: 10px; }
  .promo-row > :nth-child(3) { display: none; }
  .regulation-callout { grid-template-columns: auto 1fr; }
  .regulation-callout > a { grid-column: 1 / -1; white-space: normal; }
  .contract-flow, .zenith-pipeline { grid-template-columns: 1fr; }
  .contract-flow span, .zenith-pipeline span { min-height: 48px; }
  .contract-flow span:not(:last-child)::after, .zenith-pipeline span:not(:last-child)::after { top: auto; right: 50%; bottom: -17px; transform: translateX(50%) rotate(90deg); }
  .contract-board { padding: 14px; }
  .contract-item { grid-template-columns: 96px 1fr; padding: 12px; }
  .shift-grid { margin-inline: 12px; overflow: hidden; }
}

@media (max-width: 560px) { .header-cta { display: none; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js [data-reveal] { opacity: 1 !important; transform: none !important; }
}
