/* ============================================================
   Kalima School: CSS del child theme
   - header e footer (inc/header-footer.php), come nel prototipo
     pagine/prototipi/home.html;
   - home a tutta larghezza (classe kalima-home sul body) e pagine nel nuovo stile
     (classe kalima-pagina);
   - in fondo, i componenti ks- di home e pagine (prima nel <style> della home).
   Proprietà logiche (inline-start/end): con le lingue RTL si specchia da solo.
   Il CSS del Customizer (post 225) non si tocca: qui classi kh-* che lì non ci sono.
   ============================================================ */

:root {
	/* Il sito ha solo il tema chiaro: niente modalità scura automatica del browser (header nero,
	   logo invisibile su Chrome Android). Vedi anche il meta color-scheme in functions.php. */
	color-scheme: only light;
	--kh-blue: #1B4B8A;
	--kh-gold: #E8A020;
	--kh-bg: #F8F6F1;
	--kh-dark: #1A1A2E;
	--kh-white: #FFFFFF;
	--kh-serif: 'Playfair Display', Georgia, serif;
	--kh-sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

.kh-wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 16px; box-sizing: border-box; }
.kh-header *, .kh-footer * { box-sizing: border-box; }
.kh-header :focus-visible, .kh-footer :focus-visible {
	outline: 2px solid transparent;
	box-shadow: 0 0 0 3px var(--kh-white), 0 0 0 6px var(--kh-dark);
	border-radius: 12px;
}

/* ── Header ────────────────────────────────────────────────── */
.kh-header {
	position: relative; z-index: 60;
	background: var(--kh-white); border-bottom: 1px solid rgba(26,26,46,.08);
	font-family: var(--kh-sans); font-size: 16px; line-height: 1.5; color: var(--kh-dark);
}
.kh-header-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-height: 60px; }
.kh-header .kh-brand { display: block; flex: none; margin-inline-end: auto; padding: 6px 0; border-radius: 8px; }
.kh-header .kh-brand img { display: block; height: 42px; width: auto; }
.kh-header .kh-menu { list-style: none; margin: 0; padding: 0; }
.kh-header .kh-menu li { margin: 0; padding: 0; }
.kh-header .kh-menu a { display: block; color: var(--kh-dark); font-weight: 500; text-decoration: none; }
.kh-header .kh-menu a[aria-current="page"] { color: var(--kh-blue); font-weight: 700; }

.kh-header .kh-toggle,
.kh-header .kh-toggle:hover,
.kh-header .kh-toggle:focus {
	display: inline-grid; place-items: center; width: 44px; height: 44px; flex: none;
	margin: 0; padding: 0; border: 0; border-radius: 12px;
	background: var(--kh-bg); color: var(--kh-dark); cursor: pointer; box-shadow: none;
}
.kh-burger, .kh-burger::before, .kh-burger::after {
	display: block; width: 20px; height: 2px; border-radius: 2px; background: currentColor;
	transition: transform .2s ease, background-color .2s ease;
}
.kh-burger { position: relative; }
.kh-burger::before, .kh-burger::after { content: ''; position: absolute; inset-inline-start: 0; }
.kh-burger::before { top: -6px; }
.kh-burger::after { top: 6px; }
.kh-toggle[aria-expanded="true"] .kh-burger { background: transparent; }
.kh-toggle[aria-expanded="true"] .kh-burger::before { transform: translateY(6px) rotate(45deg); }
.kh-toggle[aria-expanded="true"] .kh-burger::after { transform: translateY(-6px) rotate(-45deg); }

/* Senza JavaScript: niente hamburger, il menu sta sotto il logo */
html:not(.kh-js) .kh-toggle { display: none; }
html:not(.kh-js) .kh-nav { order: 5; flex-basis: 100%; }
html:not(.kh-js) .kh-header .kh-menu { display: flex; flex-wrap: wrap; gap: 0 14px; padding-bottom: 8px; }

/* Con JavaScript, sotto i 900px: pannello sopra la pagina (non sposta il contenuto) */
.kh-js .kh-nav {
	display: none; position: absolute; top: 100%; left: 0; right: 0;
	background: var(--kh-white); padding: 4px 16px 12px;
	border-bottom: 1px solid rgba(26,26,46,.08); box-shadow: 0 18px 30px rgba(26,26,46,.12);
}
.kh-js .kh-nav.kh-aperto { display: block; }
.kh-js .kh-header .kh-menu a { padding: 12px 4px; font-size: 17px; border-bottom: 1px solid rgba(26,26,46,.07); }
.kh-js .kh-header .kh-menu li:last-child a { border-bottom: 0; }

/* Area dell'utente: «Inizia gratis» in evidenza, «Accedi» discreto, «Account» per chi ha l'accesso.
   Sotto i 900px sta nel pannello dell'hamburger, sotto il menu. */
.kh-header .kh-actions { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding-top: 12px; }
.kh-header .kh-actions a { text-decoration: none; font-weight: 700; text-align: center; white-space: nowrap; }
.kh-header .kh-actions .kh-cta,
.kh-header .kh-actions .kh-cta:hover,
.kh-header .kh-actions .kh-cta:focus {
	display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 22px;
	border-radius: 999px; background: var(--kh-gold); color: var(--kh-dark); font-size: 16px;
}
.kh-header .kh-actions .kh-cta:hover { background: #F2B23E; }
.kh-header .kh-actions .kh-login,
.kh-header .kh-actions .kh-account { display: block; padding: 10px 4px; color: var(--kh-blue); font-size: 16px; }
.kh-header .kh-actions .kh-account { border: 1px solid rgba(27,75,138,.35); border-radius: 999px; }
html:not(.kh-js) .kh-header .kh-actions { flex-direction: row; padding: 0 0 8px; }

/* ── Tendina della lingua (kalima_lingua_tendina( ..., true ) del plugin) ── */
.kh-header .kalima-lingua, .kh-footer .kalima-lingua { position: relative; font: 700 13px/1.2 var(--kh-sans); }
.kalima-lingua summary {
	display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 12px;
	list-style: none; cursor: pointer; white-space: nowrap;
	border: 1px solid rgba(27,75,138,.35); border-radius: 999px; background: var(--kh-white); color: var(--kh-blue);
}
.kalima-lingua summary::-webkit-details-marker { display: none; }
.kalima-lingua summary svg { display: block; flex: none; }
.kalima-lingua .kalima-lingua-freccia { font-size: 9px; }
.kh-header .kalima-lingua ul, .kh-footer .kalima-lingua ul {
	position: absolute; top: 100%; inset-inline-end: 0; z-index: 100; margin: 6px 0; padding: 4px; list-style: none;
	min-width: 170px; max-height: min(60vh, 420px); overflow-y: auto;
	background: var(--kh-white); border: 1px solid rgba(0,0,0,.12); border-radius: 10px; box-shadow: 0 4px 14px rgba(0,0,0,.15);
}
.kh-header .kalima-lingua li, .kh-footer .kalima-lingua li { margin: 0; padding: 0; }
.kh-header .kalima-lingua a, .kh-footer .kalima-lingua a {
	display: block; padding: 8px 12px; border-radius: 6px; color: var(--kh-dark);
	text-decoration: none; white-space: nowrap; font-weight: 500; text-align: start;
}
.kh-header .kalima-lingua a:hover, .kh-footer .kalima-lingua a:hover { background: var(--kh-bg); text-decoration: none; }
.kh-header .kalima-lingua a[aria-current="true"], .kh-footer .kalima-lingua a[aria-current="true"] { background: var(--kh-blue); color: var(--kh-white); }
/* Nel footer si apre verso l'alto */
.kh-footer .kalima-lingua--su ul { top: auto; bottom: 100%; inset-inline-start: 0; inset-inline-end: auto; }

/* ── Footer ────────────────────────────────────────────────── */
.kh-footer {
	background: var(--kh-dark); color: rgba(255,255,255,.85);
	padding: 36px 0 24px; font-family: var(--kh-sans); font-size: 15px; line-height: 1.6;
}
.kh-footer p { margin: 0; }
.kh-footer a { color: var(--kh-gold); text-decoration: none; text-underline-offset: 3px; }
.kh-footer a:hover, .kh-footer a:focus { color: var(--kh-gold); text-decoration: underline; }
.kh-foot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 16px; }
.kh-foot-brand, .kh-foot-contact, .kh-foot-lang { grid-column: 1 / -1; }
.kh-footer .kh-foot-name { font: 700 22px/1.2 var(--kh-serif); color: var(--kh-white); }
.kh-foot-brand p + p { margin-top: 6px; }
.kh-footer .kh-foot-title {
	font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: rgba(255,255,255,.7); margin-bottom: 8px;
}
.kh-footer .kh-foot-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.kh-footer .kh-foot-list li { margin: 0; padding: 0; }
.kh-footer .kh-foot-list a { display: inline-block; padding: 5px 0; overflow-wrap: anywhere; }
.kh-footer .kh-foot-list a[href^="mailto:"] { white-space: nowrap; overflow-wrap: normal; }
.kh-foot-bottom {
	display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; margin-top: 28px; padding-top: 18px;
	border-top: 1px solid rgba(255,255,255,.14); font-size: 14px; color: rgba(255,255,255,.75);
}
.kh-foot-bottom a { display: inline-block; padding: 2px 0; }

/* ── Desktop ───────────────────────────────────────────────── */
@media (min-width: 900px) {
	.kh-wrap { padding: 0 32px; }
	.kh-header-bar { flex-wrap: nowrap; gap: 16px; min-height: 76px; }
	.kh-header .kh-brand img { height: 52px; }
	.kh-header .kh-toggle { display: none; }
	.kh-js .kh-nav, html:not(.kh-js) .kh-nav {
		display: flex; align-items: center; gap: 4px; position: static; order: 0; flex-basis: auto;
		padding: 0; border: 0; box-shadow: none; background: none;
	}
	.kh-header .kh-actions, html:not(.kh-js) .kh-header .kh-actions { flex-direction: row; align-items: center; gap: 4px; padding: 0; margin-inline-start: 4px; }
	.kh-header .kh-actions .kh-cta, .kh-header .kh-actions .kh-cta:hover, .kh-header .kh-actions .kh-cta:focus { min-height: 40px; padding: 8px 16px; font-size: 14.5px; }
	.kh-header .kh-actions .kh-login, .kh-header .kh-actions .kh-account { padding: 8px 8px; font-size: 14.5px; font-weight: 500; color: var(--kh-dark); }
	.kh-header .kh-actions .kh-login:hover { text-decoration: underline; text-underline-offset: 4px; }
	.kh-header .kh-actions .kh-account { padding: 7px 14px; font-weight: 700; color: var(--kh-blue); }
	.kh-header .kh-menu, html:not(.kh-js) .kh-header .kh-menu { display: flex; gap: 0; padding: 0; }
	.kh-js .kh-header .kh-menu a, .kh-header .kh-menu a {
		padding: 10px 8px; font-size: 14.5px; border: 0; border-radius: 10px; white-space: nowrap;
	}
	.kh-header .kh-menu a:hover { background: var(--kh-bg); }
	.kh-header .kh-menu a[aria-current="page"] { border-radius: 0; box-shadow: inset 0 -3px 0 var(--kh-gold); }
	.kh-footer { padding: 64px 0 28px; }
	.kh-foot-grid { grid-template-columns: 1.2fr 1fr 1.3fr 1fr; gap: 32px; }
	.kh-foot-grid.kh-foot-3 { grid-template-columns: 1.5fr 1fr 1fr; } /* senza la colonna dei contatti */
	.kh-foot-brand, .kh-foot-contact, .kh-foot-lang { grid-column: auto; }
	/* Barra troppo piena in questa lingua (js/kalima-header.js): menu a hamburger come su mobile */
	.kh-js .kh-header.kh-stretto .kh-header-bar { gap: 10px; }
	.kh-js .kh-header.kh-stretto .kh-toggle { display: inline-grid; }
	.kh-js .kh-header.kh-stretto .kh-nav {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		background: var(--kh-white); padding: 4px 32px 16px;
		border-bottom: 1px solid rgba(26,26,46,.08); box-shadow: 0 18px 30px rgba(26,26,46,.12);
	}
	.kh-js .kh-header.kh-stretto .kh-nav.kh-aperto { display: block; }
	.kh-js .kh-header.kh-stretto .kh-menu { display: block; }
	.kh-js .kh-header.kh-stretto .kh-menu a {
		padding: 12px 4px; font-size: 17px; border-radius: 0; box-shadow: none;
		border-bottom: 1px solid rgba(26,26,46,.07);
	}
	.kh-js .kh-header.kh-stretto .kh-menu li:last-child a { border-bottom: 0; }
	.kh-js .kh-header.kh-stretto .kh-actions { flex-direction: column; align-items: stretch; gap: 8px; padding-top: 12px; margin: 0; }
	.kh-js .kh-header.kh-stretto .kh-actions .kh-cta { min-height: 48px; font-size: 16px; }
	.kh-js .kh-header.kh-stretto .kh-actions .kh-login { font-size: 16px; font-weight: 700; color: var(--kh-blue); }
}
@media (min-width: 1100px) {
	.kh-js .kh-header .kh-menu a, .kh-header .kh-menu a { padding: 10px 12px; font-size: 15px; }
	.kh-header-bar { gap: 24px; }
	.kh-header .kh-actions { gap: 8px; margin-inline-start: 8px; }
	.kh-header .kh-actions .kh-cta, .kh-header .kh-actions .kh-cta:hover, .kh-header .kh-actions .kh-cta:focus { padding: 8px 20px; font-size: 15px; }
	.kh-foot-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
	.kh-foot-grid.kh-foot-3 { grid-template-columns: 2fr 1fr 1fr; }
}

/* ── Home: sezioni a tutta larghezza, senza il contenitore di Astra ── */
body.kalima-home #content > .ast-container { display: block; max-width: none; width: 100%; margin: 0; padding: 0; }
body.kalima-home #primary,
body.kalima-home #primary .ast-article-single,
body.kalima-home #primary .ast-article-single > .entry-content { margin: 0; padding: 0; width: 100%; max-width: none; }
/* Astra (da 922px) limita i figli di .entry-content alla larghezza del contenuto */
body.kalima-home .entry-content > #kalima-home { max-width: none; width: 100%; margin: 0; }
body.kalima-home .entry-content > #kalima-home + p:empty { display: none; }
/* Pagine nel nuovo stile (classe kalima-pagina dal child theme): come la home, e senza il
   titolo di Astra (il titolo è nell'intestazione della pagina) */
body.kalima-pagina #content > .ast-container { display: block; max-width: none; width: 100%; margin: 0; padding: 0; }
body.kalima-pagina #primary,
body.kalima-pagina #primary .ast-article-single,
body.kalima-pagina #primary .ast-article-single > .entry-content { margin: 0; padding: 0; width: 100%; max-width: none; border: 0; }
body.kalima-pagina .entry-content > #kalima-pagina { max-width: none; width: 100%; margin: 0; }
body.kalima-pagina .entry-content > #kalima-pagina + p:empty,
body.kalima-pagina #primary .entry-header,
body.kalima-pagina #primary .post-thumb-img-content { display: none; }
/* Spazio per la barra «Inizia gratis» fissa in basso (solo mobile) */
@media (max-width: 899.98px) {
	body.kalima-home { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
}

/* ── Tutor: niente pagine più larghe dello schermo ─────────── */
/* Tooltip nascosti (visibility: hidden) che sporgono a destra nell'elenco delle lezioni */
.tooltip-wrap:not(:hover):not(:focus-within) .tooltip-txt { display: none; }
/* Tabelle delle lezioni più larghe della colonna: scorre il loro contenitore, non la pagina */
.tutor-lesson-wrapper :where(div, section, li):has(> table) { overflow-x: auto; }

@media (prefers-reduced-motion: reduce) {
	.kh-header *, .kh-footer * { transition: none !important; animation: none !important; }
}

/* ============================================================
   Componenti ks- (estratti dalla home, blocco 5 della notte 2026-10-05)
   Valgono dentro #kalima-home (home) e #kalima-pagina (pagine nel nuovo stile:
   <div id="kalima-pagina" class="ks-pagina" lang=".." dir="..">). :is() mantiene la
   specificità di un id, come quando questi stili erano nella pagina.
   Comuni: variabili, reset, ks-wrap, ks-btn*, ks-section, ks-kicker, ks-h2, ks-lead,
   ks-eyebrow, ks-chip, ks-badge, ks-tile, ks-plan, ks-price-*, ks-singles-*, ks-review*,
   ks-closing*, ks-reveal. Solo home: ks-phone, ks-scr-*, ks-hello, ks-bento, ks-plane*.
   ============================================================ */

:is(#kalima-home, #kalima-pagina) {
  --blue: #1B4B8A;
  --blue-dark: #0F2D54;
  --gold: #E8A020;
  --gold-ink: #8A5A00;   /* oro scuro per testo su fondo chiaro (contrasto AA) */
  --bg: #F8F6F1;
  --dark: #1A1A2E;
  --green: #1A5C38;
  --grey: #5C5C70;
  --white: #FFFFFF;
  --radius: 22px;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
:is(#kalima-home, #kalima-pagina) { font-family: var(--sans); font-size: 16px; line-height: 1.6; color: var(--dark); background: var(--bg); }
:is(#kalima-home, #kalima-pagina) *, :is(#kalima-home, #kalima-pagina) *::before, :is(#kalima-home, #kalima-pagina) *::after { box-sizing: border-box; }
:is(#kalima-home, #kalima-pagina) h1, :is(#kalima-home, #kalima-pagina) h2, :is(#kalima-home, #kalima-pagina) h3 { color: inherit; font-family: inherit; line-height: inherit; letter-spacing: normal; text-transform: none; }
:is(#kalima-home, #kalima-pagina) blockquote { color: inherit; background: none; border: 0; padding: 0; font-style: normal; quotes: none; }
:is(#kalima-home, #kalima-pagina) ul, :is(#kalima-home, #kalima-pagina) ol { padding: 0; }
:is(#kalima-home, #kalima-pagina) li { margin: 0; }
:is(#kalima-home, #kalima-pagina) a:hover, :is(#kalima-home, #kalima-pagina) a:focus { color: inherit; }
:is(#kalima-home, #kalima-pagina) h1, :is(#kalima-home, #kalima-pagina) h2, :is(#kalima-home, #kalima-pagina) h3, :is(#kalima-home, #kalima-pagina) p, :is(#kalima-home, #kalima-pagina) ul, :is(#kalima-home, #kalima-pagina) ol, :is(#kalima-home, #kalima-pagina) figure, :is(#kalima-home, #kalima-pagina) blockquote { margin: 0; }
:is(#kalima-home, #kalima-pagina) a { color: inherit; }
:is(#kalima-home, #kalima-pagina) img, :is(#kalima-home, #kalima-pagina) svg { display: block; }
/* Focus visibile su fondo chiaro e scuro: anello bianco + anello scuro */
:is(#kalima-home, #kalima-pagina) :focus { outline: none; }
:is(#kalima-home, #kalima-pagina) :focus-visible {
  outline: 2px solid transparent; /* per la modalità a contrasto elevato */
  box-shadow: 0 0 0 3px var(--white), 0 0 0 6px var(--dark);
  border-radius: 12px;
}
:is(#kalima-home, #kalima-pagina) .ks-wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 16px; }
/* ── Pulsanti ───────────────────────────────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; padding: 14px 28px;
  border-radius: 999px; border: 2px solid transparent;
  font: 700 16px/1.2 var(--sans); text-decoration: none; cursor: pointer;
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}
:is(#kalima-home, #kalima-pagina) .ks-btn:hover { transform: translateY(-2px); }
:is(#kalima-home, #kalima-pagina) .ks-btn-gold { background: var(--gold); color: var(--dark); }
:is(#kalima-home, #kalima-pagina) .ks-btn-gold:hover { background: #F2B23E; }
:is(#kalima-home, #kalima-pagina) .ks-btn-ghost { background: transparent; color: var(--white); border-color: rgba(255,255,255,.7); }
:is(#kalima-home, #kalima-pagina) .ks-btn-ghost:hover { background: rgba(255,255,255,.1); border-color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-btn-dark { background: var(--dark); color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-btn-dark:hover { background: #2B2B48; }
:is(#kalima-home, #kalima-pagina) .btn-line { background: transparent; color: var(--dark); border-color: var(--dark); }
:is(#kalima-home, #kalima-pagina) .btn-line:hover { background: var(--dark); color: var(--white); }
/* Pillola "4 live gratis" */
:is(#kalima-home, #kalima-pagina) .ks-free-pill {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.12); color: var(--white);
  border: 1px solid rgba(255,255,255,.35);
  padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 500;
}
:is(#kalima-home, #kalima-pagina) .ks-free-pill strong { color: var(--white); font-weight: 700; text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 4px; }
:is(#kalima-home, #kalima-pagina) .ks-dot { width: 8px; height: 8px; border-radius: 50%; background: #FF5A5A; flex: none; }
/* Senza JavaScript: niente hamburger, il menu sta sotto il logo */
/* Con JavaScript: pannello a comparsa */
/* nel footer si apre verso l'alto */
/* ── Hero ───────────────────────────────────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 85% 10%, rgba(232,160,32,.22) 0 220px, transparent 221px),
    radial-gradient(circle at 0% 100%, rgba(255,255,255,.06) 0 180px, transparent 181px),
    var(--blue);
  color: var(--white);
  padding: 32px 0 56px;
}
:is(#kalima-home, #kalima-pagina) .ks-hero .ks-wrap { display: grid; gap: 40px; }
:is(#kalima-home, #kalima-pagina) .ks-eyebrow {
  display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--dark); background: var(--gold);
  padding: 6px 14px; border-radius: 999px; margin-bottom: 20px;
}
:is(#kalima-home, #kalima-pagina) .ks-hero h1 {
  font: 700 clamp(40px, 11vw, 76px)/1.05 var(--serif);
  letter-spacing: -.01em; margin-bottom: 20px;
}
:is(#kalima-home, #kalima-pagina) .ks-hero h1 em { font-style: italic; color: var(--gold); }
:is(#kalima-home, #kalima-pagina) .ks-hero-lead { font-size: clamp(17px, 4.4vw, 20px); color: rgba(255,255,255,.88); max-width: 34em; margin-bottom: 28px; }
:is(#kalima-home, #kalima-pagina) .ks-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
:is(#kalima-home, #kalima-pagina) .ks-hero-ctas .ks-btn { flex: 1 1 220px; }
/* Telefono disegnato in CSS */
:is(#kalima-home, #kalima-pagina) .ks-hero-visual { position: relative; display: flex; justify-content: center; padding: 24px 0 8px; }
:is(#kalima-home, #kalima-pagina) .ks-phone {
  position: relative; z-index: 2;
  width: min(280px, 74vw); aspect-ratio: 9 / 18.5;
  background: #0E0E1A; border-radius: 42px; padding: 12px;
  box-shadow: 0 30px 60px rgba(0,0,0,.35), inset 0 0 0 2px #2E2E44;
  animation: ks-phone-in .9s cubic-bezier(.2,.8,.2,1) both;
}
:is(#kalima-home, #kalima-pagina) .ks-phone::before { /* isola della fotocamera */
  content: ''; position: absolute; top: 20px; left: 50%; transform: translateX(-50%);
  width: 84px; height: 22px; border-radius: 12px; background: #0E0E1A; z-index: 3;
}
:is(#kalima-home, #kalima-pagina) .ks-screen {
  height: 100%; border-radius: 31px; overflow: hidden;
  background: var(--bg); color: var(--dark);
  display: flex; flex-direction: column;
  font-size: 12px; line-height: 1.4;
}
:is(#kalima-home, #kalima-pagina) .ks-scr-top { background: var(--blue); color: var(--white); padding: 44px 16px 14px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-meta { display: flex; justify-content: space-between; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
:is(#kalima-home, #kalima-pagina) .ks-scr-title { font: 700 17px/1.2 var(--serif); margin-top: 6px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-bar { height: 6px; background: rgba(255,255,255,.2); border-radius: 6px; margin-top: 12px; overflow: hidden; }
:is(#kalima-home, #kalima-pagina) .ks-scr-bar i { display: block; height: 100%; width: 62%; background: var(--gold); border-radius: 6px; animation: ks-grow 1.6s .6s ease-out both; }
:is(#kalima-home, #kalima-pagina) .ks-scr-body { padding: 14px; display: grid; gap: 10px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-card { background: var(--white); border-radius: 14px; padding: 12px; box-shadow: 0 2px 8px rgba(26,26,46,.08); }
:is(#kalima-home, #kalima-pagina) .ks-scr-label { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green); margin-bottom: 4px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-q { font-weight: 700; font-size: 13px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-gap { display: inline-block; min-width: 54px; border-bottom: 2px solid var(--blue); text-align: center; color: var(--blue); }
:is(#kalima-home, #kalima-pagina) .ks-scr-opts { display: grid; gap: 6px; margin-top: 8px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-opt { border: 1.5px solid #D9D6CE; border-radius: 10px; padding: 7px 10px; display: flex; justify-content: space-between; }
:is(#kalima-home, #kalima-pagina) .ks-scr-opt.ks-ok { border-color: var(--green); background: #E5F1EA; color: var(--green); font-weight: 700; animation: ks-pick 4s 1.4s ease-in-out infinite; }
:is(#kalima-home, #kalima-pagina) .ks-scr-note { background: #FFF6E0; border-left: 3px solid var(--gold); border-radius: 8px; padding: 8px 10px; font-size: 11px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-play { display: flex; align-items: center; gap: 10px; }
:is(#kalima-home, #kalima-pagina) .ks-scr-play b { width: 30px; height: 30px; border-radius: 50%; background: var(--blue); display: grid; place-items: center; flex: none; }
/* Saluti fluttuanti */
:is(#kalima-home, #kalima-pagina) .ks-hello {
  position: absolute; z-index: 3;
  background: var(--white); color: var(--dark);
  font-weight: 700; font-size: 15px; line-height: 1;
  padding: 10px 14px; border-radius: 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  animation: ks-float 6s ease-in-out infinite;
  white-space: nowrap;
}
:is(#kalima-home, #kalima-pagina) .ks-hello::after { /* codina del fumetto */
  content: ''; position: absolute; bottom: -6px; left: 18px;
  width: 12px; height: 12px; background: inherit; transform: rotate(45deg); border-radius: 2px;
}
:is(#kalima-home, #kalima-pagina) .ks-hello.ks-g { background: var(--gold); }
:is(#kalima-home, #kalima-pagina) .ks-hello.ks-d { background: var(--dark); color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-s1 { top: 6%;  left: 2%;  animation-delay: 0s; }
:is(#kalima-home, #kalima-pagina) .ks-s2 { top: 14%; right: 0%; animation-delay: -1.5s; }
:is(#kalima-home, #kalima-pagina) .ks-s3 { top: 42%; left: -2%; animation-delay: -3s; }
:is(#kalima-home, #kalima-pagina) .ks-s4 { top: 52%; right: -2%; animation-delay: -4.5s; }
:is(#kalima-home, #kalima-pagina) .ks-s5 { bottom: 14%; left: 4%; animation-delay: -2.2s; }
:is(#kalima-home, #kalima-pagina) .ks-s6 { bottom: 4%; right: 6%; animation-delay: -.8s; }
:is(#kalima-home, #kalima-pagina) .ks-s7, :is(#kalima-home, #kalima-pagina) .ks-s8 { display: none; }
/* ── Barra di fiducia ───────────────────────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-trust { background: var(--dark); color: var(--white); padding: 32px 0; }
:is(#kalima-home, #kalima-pagina) .ks-trust-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
:is(#kalima-home, #kalima-pagina) .ks-stat-n { font: 700 clamp(26px, 7vw, 34px)/1.1 var(--serif); color: var(--gold); }
:is(#kalima-home, #kalima-pagina) .ks-stat-l { font-size: 13px; color: rgba(255,255,255,.78); text-transform: uppercase; letter-spacing: .06em; margin-top: 4px; }
:is(#kalima-home, #kalima-pagina) .ks-trust-grid > :last-child { grid-column: 1 / -1; }
:is(#kalima-home, #kalima-pagina) .ks-stars { color: var(--gold); letter-spacing: 2px; font-size: 18px; }
/* Recensioni a scorrimento orizzontale */
:is(#kalima-home, #kalima-pagina) .ks-reviews { margin-top: 36px; }
:is(#kalima-home, #kalima-pagina) .ks-reviews-title { font: 700 clamp(22px, 6vw, 30px)/1.2 var(--serif); margin-bottom: 4px; }
:is(#kalima-home, #kalima-pagina) .ks-review-scroller {
  margin: 0 -16px; padding: 16px 16px 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px;
  -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
  scrollbar-color: var(--gold) rgba(255,255,255,.1);
}
:is(#kalima-home, #kalima-pagina) .ks-review-track { list-style: none; margin: 0; padding: 0; display: flex; gap: 14px; width: max-content; }
:is(#kalima-home, #kalima-pagina) .ks-review {
  scroll-snap-align: start;
  width: min(80vw, 340px);
  display: flex; flex-direction: column; gap: 12px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--radius); padding: 22px;
}
:is(#kalima-home, #kalima-pagina) .ks-review blockquote { margin: 0; font: 600 18px/1.5 var(--serif); }
:is(#kalima-home, #kalima-pagina) .ks-review-who { margin-top: auto; font-weight: 700; color: rgba(255,255,255,.85); }
:is(#kalima-home, #kalima-pagina) .ks-review-who::before { content: '— '; }
/* ── Sezioni ────────────────────────────────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-section { padding: 64px 0; }
:is(#kalima-home, #kalima-pagina) .ks-kicker { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: 12px; }
:is(#kalima-home, #kalima-pagina) .ks-h2 { font: 700 clamp(30px, 8vw, 50px)/1.12 var(--serif); margin-bottom: 16px; letter-spacing: -.01em; }
:is(#kalima-home, #kalima-pagina) .ks-lead { font-size: 18px; color: var(--grey); max-width: 38em; }
/* Perché Kalima */
:is(#kalima-home, #kalima-pagina) .ks-why { display: grid; gap: 28px; }
:is(#kalima-home, #kalima-pagina) .ks-quote-box {
  background: linear-gradient(135deg, var(--blue), var(--blue-dark));
  color: var(--white); border-radius: var(--radius); padding: 32px 24px; position: relative; overflow: hidden;
}
:is(#kalima-home, #kalima-pagina) .ks-quote-box::before {
  content: '\201C'; position: absolute; top: -40px; left: 10px;
  font: 700 200px/1 var(--serif); color: rgba(255,255,255,.08);
}
:is(#kalima-home, #kalima-pagina) .ks-quote-box p { position: relative; font: 600 clamp(22px, 6vw, 28px)/1.35 var(--serif); }
:is(#kalima-home, #kalima-pagina) .ks-quote-box small { display: block; position: relative; margin-top: 18px; color: rgba(255,255,255,.9); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 12px; }
/* Bento "come funziona" */
:is(#kalima-home, #kalima-pagina) .ks-bento { display: grid; gap: 14px; margin-top: 36px; }
:is(#kalima-home, #kalima-pagina) .ks-tile {
  border-radius: var(--radius); padding: 24px; background: var(--white);
  border: 1px solid rgba(26,26,46,.08); position: relative; overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
:is(#kalima-home, #kalima-pagina) .ks-tile:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(27,75,138,.14); }
:is(#kalima-home, #kalima-pagina) .ks-tile h3 { font: 700 24px/1.2 var(--serif); margin: 14px 0 8px; }
:is(#kalima-home, #kalima-pagina) .ks-tile p { color: var(--grey); }
:is(#kalima-home, #kalima-pagina) .ks-tile-num { position: absolute; top: 14px; right: 20px; font: 700 54px/1 var(--serif); color: rgba(27,75,138,.1); }
:is(#kalima-home, #kalima-pagina) .ks-ico { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: rgba(27,75,138,.09); color: var(--blue); }
:is(#kalima-home, #kalima-pagina) .ks-tile-blue { background: var(--blue); color: var(--white); border-color: transparent; }
:is(#kalima-home, #kalima-pagina) .ks-tile-blue p { color: rgba(255,255,255,.85); }
:is(#kalima-home, #kalima-pagina) .ks-tile-blue .ks-ico { background: rgba(255,255,255,.14); color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-tile-blue .ks-tile-num { color: rgba(255,255,255,.12); }
:is(#kalima-home, #kalima-pagina) .ks-tile-gold { background: var(--gold); color: var(--dark); border-color: transparent; }
:is(#kalima-home, #kalima-pagina) .ks-tile-gold p { color: var(--dark); }
:is(#kalima-home, #kalima-pagina) .ks-tile-gold .ks-ico { background: rgba(26,26,46,.12); color: var(--dark); }
:is(#kalima-home, #kalima-pagina) .ks-tile-gold .ks-tile-num { color: rgba(26,26,46,.12); }
:is(#kalima-home, #kalima-pagina) .ks-tile-green { background: var(--green); color: var(--white); border-color: transparent; }
:is(#kalima-home, #kalima-pagina) .ks-tile-green p { color: rgba(255,255,255,.88); }
:is(#kalima-home, #kalima-pagina) .ks-tile-green .ks-ico { background: rgba(255,255,255,.14); color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-tile-green .ks-tile-num { color: rgba(255,255,255,.12); }
:is(#kalima-home, #kalima-pagina) .ks-live-when { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
:is(#kalima-home, #kalima-pagina) .ks-chip { display: inline-block; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 999px; background: rgba(26,26,46,.1); }
:is(#kalima-home, #kalima-pagina) .ks-tile-blue .ks-chip, :is(#kalima-home, #kalima-pagina) .ks-tile-green .ks-chip { background: rgba(255,255,255,.16); }
:is(#kalima-home, #kalima-pagina) .ks-chip-wait { background: var(--dark); color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-tile a.ks-more { display: inline-block; margin-top: 14px; font-weight: 700; text-underline-offset: 4px; }
:is(#kalima-home, #kalima-pagina) .ks-mini-progress { display: grid; gap: 8px; margin-top: 20px; }
:is(#kalima-home, #kalima-pagina) .ks-mini-progress div { display: flex; align-items: center; gap: 10px; font-size: 14px; }
:is(#kalima-home, #kalima-pagina) .ks-mini-progress span { flex: 1; height: 8px; border-radius: 8px; background: rgba(255,255,255,.18); overflow: hidden; }
:is(#kalima-home, #kalima-pagina) .ks-mini-progress span i { display: block; height: 100%; background: var(--gold); border-radius: 8px; }
:is(#kalima-home, #kalima-pagina) .ks-levels, :is(#kalima-home, #kalima-pagina) .ks-resume, :is(#kalima-home, #kalima-pagina) .ks-reviews-hint { display: none; }
/* solo da 900px in su */
/* ── Prezzi ─────────────────────────────────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-prices { background: var(--dark); color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-prices .ks-kicker { color: var(--gold); }
:is(#kalima-home, #kalima-pagina) .ks-prices .ks-lead { color: rgba(255,255,255,.78); }
:is(#kalima-home, #kalima-pagina) .ks-price-scroller {
  margin: 32px -16px 0; padding: 18px 16px 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px;
  -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
  scrollbar-color: var(--gold) rgba(255,255,255,.1);
}
:is(#kalima-home, #kalima-pagina) .ks-price-track { display: flex; gap: 20px; width: max-content; }
:is(#kalima-home, #kalima-pagina) .ks-price-group { display: flex; flex-direction: column; gap: 12px; }
:is(#kalima-home, #kalima-pagina) .ks-group-title { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); padding-left: 4px; }
:is(#kalima-home, #kalima-pagina) .ks-group-cards { display: flex; gap: 12px; }
:is(#kalima-home, #kalima-pagina) .ks-plan {
  scroll-snap-align: start;
  width: min(78vw, 300px);
  display: flex; flex-direction: column;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--radius); padding: 26px 22px; position: relative;
}
:is(#kalima-home, #kalima-pagina) .ks-plan-name { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.8); }
:is(#kalima-home, #kalima-pagina) .ks-plan-price { font: 700 46px/1 var(--serif); margin-top: 12px; }
:is(#kalima-home, #kalima-pagina) .ks-plan-price small { font: 500 15px var(--sans); color: rgba(255,255,255,.75); }
:is(#kalima-home, #kalima-pagina) .ks-plan-users { display: inline-block; align-self: flex-start; margin: 12px 0 14px; font-size: 13px; font-weight: 700; color: var(--gold); background: rgba(232,160,32,.16); padding: 5px 12px; border-radius: 999px; }
:is(#kalima-home, #kalima-pagina) .ks-plan ul { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; font-size: 15px; }
:is(#kalima-home, #kalima-pagina) .ks-plan li { display: flex; gap: 8px; }
:is(#kalima-home, #kalima-pagina) .ks-plan li::before { content: ''; flex: none; width: 18px; height: 18px; margin-top: 3px; border-radius: 50%; background: var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.5l2.5 2.5L13 6.5' fill='none' stroke='%231A1A2E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat; }
:is(#kalima-home, #kalima-pagina) .ks-plan .ks-btn { margin-top: auto; width: 100%; min-height: 48px; }
:is(#kalima-home, #kalima-pagina) .ks-plan .ks-btn-ghost { border-color: rgba(255,255,255,.55); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-featured { background: var(--gold); color: var(--dark); border-color: var(--gold); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-featured .ks-plan-name, :is(#kalima-home, #kalima-pagina) .ks-plan.ks-featured .ks-plan-price small { color: rgba(26,26,46,.8); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-featured .ks-plan-users { color: var(--dark); background: rgba(26,26,46,.12); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-featured li::before { background-color: var(--dark); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.5l2.5 2.5L13 6.5' fill='none' stroke='%23E8A020' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-custom { background: var(--white); color: var(--dark); border-color: var(--white); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-custom .ks-plan-name, :is(#kalima-home, #kalima-pagina) .ks-plan.ks-custom .ks-plan-price small { color: var(--grey); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-custom .ks-plan-users { color: var(--white); background: var(--green); }
:is(#kalima-home, #kalima-pagina) .ks-plan.ks-custom li::before { background-color: var(--green); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.5l2.5 2.5L13 6.5' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
:is(#kalima-home, #kalima-pagina) .ks-badge { position: absolute; top: -12px; left: 22px; background: var(--blue); color: var(--white); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; }
:is(#kalima-home, #kalima-pagina) .ks-badge-green { background: var(--green); }
:is(#kalima-home, #kalima-pagina) .ks-swipe-hint { display: flex; align-items: center; gap: 8px; font-size: 14px; color: rgba(255,255,255,.78); margin-top: 4px; }
:is(#kalima-home, #kalima-pagina) .ks-swipe-hint svg { animation: ks-nudge 1.8s ease-in-out infinite; }
/* Live singole e pacchetti: riquadro proprio (compatto su mobile) */
:is(#kalima-home, #kalima-pagina) .ks-singles-box {
  display: grid; gap: 16px; margin-top: 20px; padding: 20px 18px; border-radius: var(--radius);
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.18);
}
:is(#kalima-home, #kalima-pagina) .ks-singles-box h3 { font: 700 22px/1.2 var(--serif); margin-bottom: 6px; }
:is(#kalima-home, #kalima-pagina) .ks-singles-box > div > p { color: rgba(255,255,255,.8); font-size: 15px; }
:is(#kalima-home, #kalima-pagina) .ks-singles-box > div > p.ks-singles-free {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 12px;
  background: var(--gold); color: var(--dark); font-weight: 700; font-size: 15px; line-height: 1.3;
  padding: 8px 14px; border-radius: 999px;
}
:is(#kalima-home, #kalima-pagina) .ks-singles-opts { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; list-style: none; margin: 0; padding: 0; }
/* Pulsante di un piano «presto» nel listino (shortcode kalima_listino_pulsante) */
:is(#kalima-home, #kalima-pagina) .ks-presto, :is(#kalima-home, #kalima-pagina) .ks-presto:hover { cursor: default; transform: none; opacity: .8; }
:is(#kalima-home, #kalima-pagina) .ks-singles-opts li { text-align: center; padding: 12px 6px; border-radius: 14px; background: var(--white); color: var(--dark); }
:is(#kalima-home, #kalima-pagina) .ks-singles-opts .ks-qta { display: block; font-size: 12px; font-weight: 700; color: var(--grey); text-transform: uppercase; letter-spacing: .08em; }
:is(#kalima-home, #kalima-pagina) .ks-singles-opts .ks-prezzo { display: block; font: 700 28px/1.1 var(--serif); margin-top: 4px; }
:is(#kalima-home, #kalima-pagina) .prices-note { margin-top: 12px; font-size: 15px; color: rgba(255,255,255,.78); }
/* ── Stai per arrivare in Italia? ───────────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-arrive { background: var(--blue); color: var(--white); position: relative; overflow: hidden; }
:is(#kalima-home, #kalima-pagina) .ks-arrive .ks-wrap { display: grid; gap: 32px; align-items: center; }
:is(#kalima-home, #kalima-pagina) .ks-arrive .ks-kicker { color: var(--dark); background: var(--gold); padding: 6px 14px; border-radius: 999px; }
:is(#kalima-home, #kalima-pagina) .ks-arrive .ks-lead { color: rgba(255,255,255,.88); margin-bottom: 28px; }
:is(#kalima-home, #kalima-pagina) .ks-arrive-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
:is(#kalima-home, #kalima-pagina) .ks-arrive-ctas .ks-btn { flex: 1 1 200px; }
:is(#kalima-home, #kalima-pagina) .ks-plane-path { width: 100%; max-width: 420px; margin: 0 auto; color: var(--gold); }
:is(#kalima-home, #kalima-pagina) .ks-plane-path .ks-trail { stroke-dasharray: 6 10; animation: ks-dash 18s linear infinite; }
:is(#kalima-home, #kalima-pagina) .ks-plane-path .ks-plane { animation: ks-bob 4s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
/* ── Chiusura ───────────────────────────────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-closing { text-align: center; }
:is(#kalima-home, #kalima-pagina) .ks-closing .ks-lead { margin: 0 auto 28px; }
:is(#kalima-home, #kalima-pagina) .ks-closing-box {
  background: var(--white); border-radius: 28px; padding: 44px 20px;
  border: 1px solid rgba(26,26,46,.08);
  box-shadow: 0 24px 60px rgba(27,75,138,.12);
}
:is(#kalima-home, #kalima-pagina) .ks-closing .ks-btn { min-width: min(100%, 300px); font-size: 18px; min-height: 58px; }
:is(#kalima-home, #kalima-pagina) .ks-closing-free { list-style: none; padding: 0; margin-bottom: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 18px; margin-top: 18px; font-size: 15px; color: var(--grey); }
:is(#kalima-home, #kalima-pagina) .ks-closing-free b { color: var(--green); }
/* ── Barra fissa in basso (solo mobile) ─────────────────── */
:is(#kalima-home, #kalima-pagina) .ks-sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: rgba(26,26,46,.96); color: var(--white);
  box-shadow: 0 -8px 24px rgba(0,0,0,.2);
  animation: ks-rise .5s .8s ease-out both;
}
:is(#kalima-home, #kalima-pagina) .ks-sticky-cta p { flex: 1; font-size: 13px; line-height: 1.3; }
:is(#kalima-home, #kalima-pagina) .ks-sticky-cta p strong { display: block; color: var(--gold); font-size: 15px; }
:is(#kalima-home, #kalima-pagina) .ks-sticky-cta .ks-btn { min-height: 48px; padding: 12px 22px; }
/* ── Tablet e desktop ───────────────────────────────────── */
@media (min-width: 640px) {
  :is(#kalima-home, #kalima-pagina) .ks-wrap { padding: 0 32px; }
  :is(#kalima-home, #kalima-pagina) .ks-trust-grid { grid-template-columns: repeat(3, 1fr); }
  :is(#kalima-home, #kalima-pagina) .ks-trust-grid > :last-child { grid-column: span 2; }
  :is(#kalima-home, #kalima-pagina) .ks-review-scroller { margin: 0 -32px; padding: 16px 32px 20px; scroll-padding: 0 32px; }
  :is(#kalima-home, #kalima-pagina) .ks-bento { grid-template-columns: repeat(2, 1fr); }
  :is(#kalima-home, #kalima-pagina) .ks-b-lessons { grid-column: span 2; }
  :is(#kalima-home, #kalima-pagina) .ks-price-scroller { margin: 32px -32px 0; padding: 18px 32px 20px; scroll-padding: 0 32px; }
  :is(#kalima-home, #kalima-pagina) .ks-s7, :is(#kalima-home, #kalima-pagina) .ks-s8 { display: block; }
  :is(#kalima-home, #kalima-pagina) .ks-s7 { top: -2%; left: 34%; animation-delay: -3.7s; }
  :is(#kalima-home, #kalima-pagina) .ks-s8 { bottom: -2%; left: 32%; animation-delay: -5.2s; }
}
@media (min-width: 900px) {
  :is(#kalima-home, #kalima-pagina) .ks-sticky-cta { display: none; }
  :is(#kalima-home, #kalima-pagina) .ks-hero { padding: 48px 0 88px; }
  :is(#kalima-home, #kalima-pagina) .ks-hero .ks-wrap { grid-template-columns: 1.1fr .9fr; align-items: center; gap: 56px; }
  :is(#kalima-home, #kalima-pagina) .ks-hero-ctas .ks-btn { flex: 0 0 auto; }
  :is(#kalima-home, #kalima-pagina) .ks-section { padding: 96px 0; }
  :is(#kalima-home, #kalima-pagina) .ks-why { grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; }
  :is(#kalima-home, #kalima-pagina) .ks-quote-box { padding: 48px 40px; }
  :is(#kalima-home, #kalima-pagina) .ks-trust-grid { grid-template-columns: repeat(5, 1fr); }
  :is(#kalima-home, #kalima-pagina) .ks-trust-grid > :last-child { grid-column: auto; }
  /* Recensioni: la striscia resta nella larghezza della pagina e scorre al suo interno */
  :is(#kalima-home, #kalima-pagina) .ks-reviews-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
  :is(#kalima-home, #kalima-pagina) .ks-reviews-hint { display: flex; align-items: center; gap: 8px; font-size: 14px; color: rgba(255,255,255,.78); }
  :is(#kalima-home, #kalima-pagina) .ks-reviews-hint svg { animation: ks-nudge 1.8s ease-in-out infinite; }
  :is(#kalima-home, #kalima-pagina) .ks-review-scroller {
    margin: 0; padding: 16px 0 20px; scroll-padding: 0;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 72px), transparent);
            mask-image: linear-gradient(to right, #000 calc(100% - 72px), transparent);
  }
  :is(#kalima-home, #kalima-pagina) .ks-review-track { padding-right: 72px; }
  /* l'ultima scheda esce tutta dalla sfumatura */
  :is(#kalima-home, #kalima-pagina) .ks-review { width: 340px; }
  /* Header e footer */
  /* "Lezioni quando vuoi": percorso dei livelli al posto delle tre barre */
  :is(#kalima-home, #kalima-pagina) .ks-b-lessons { display: flex; flex-direction: column; }
  :is(#kalima-home, #kalima-pagina) .ks-b-lessons .ks-mini-progress { display: none; }
  :is(#kalima-home, #kalima-pagina) .ks-levels { display: grid; gap: 10px; align-content: space-evenly; flex: 1; list-style: none; margin: 24px 0; padding: 0; }
  :is(#kalima-home, #kalima-pagina) .ks-levels li { display: grid; grid-template-columns: 64px 1fr 150px; align-items: center; gap: 14px; font-size: 15px; }
  :is(#kalima-home, #kalima-pagina) .ks-levels b { font-weight: 700; }
  :is(#kalima-home, #kalima-pagina) .ks-levels .ks-lv-bar { height: 10px; border-radius: 10px; background: rgba(255,255,255,.18); overflow: hidden; }
  :is(#kalima-home, #kalima-pagina) .ks-levels .ks-lv-bar i { display: block; height: 100%; border-radius: 10px; background: var(--gold); }
  :is(#kalima-home, #kalima-pagina) .ks-levels .ks-lv-stato { font-size: 13px; font-weight: 700; color: rgba(255,255,255,.88); }
  :is(#kalima-home, #kalima-pagina) .ks-levels .ks-prossimo .ks-lv-bar { background: repeating-linear-gradient(90deg, rgba(255,255,255,.22) 0 8px, transparent 8px 14px); }
  :is(#kalima-home, #kalima-pagina) .ks-resume {
    display: flex; align-items: center; gap: 14px; margin-top: auto;
    background: var(--white); color: var(--dark); border-radius: 16px; padding: 14px 16px;
    text-decoration: none; transition: transform .2s ease;
  }
  :is(#kalima-home, #kalima-pagina) .ks-resume:hover { transform: translateY(-2px); }
  :is(#kalima-home, #kalima-pagina) .ks-resume .ks-play { width: 40px; height: 40px; flex: none; border-radius: 50%; background: var(--blue); display: grid; place-items: center; }
  :is(#kalima-home, #kalima-pagina) .ks-resume small { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--green); }
  :is(#kalima-home, #kalima-pagina) .ks-resume strong { font: 700 17px/1.3 var(--serif); }
  :is(#kalima-home, #kalima-pagina) .ks-resume .ks-vai { margin-left: auto; font-weight: 700; color: var(--blue); }
  /* Prezzi: lo scorrimento resta dentro la pagina */
  :is(#kalima-home, #kalima-pagina) .ks-price-scroller {
    margin: 32px 0 0; padding: 18px 0 20px; scroll-padding: 0;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 64px), transparent);
            mask-image: linear-gradient(to right, #000 calc(100% - 64px), transparent);
  }
  :is(#kalima-home, #kalima-pagina) .ks-price-track { padding-right: 64px; }
  /* Live singole e pacchetti: riquadro più grande */
  :is(#kalima-home, #kalima-pagina) .ks-singles-box { grid-template-columns: 1fr 1.3fr; gap: 32px; align-items: center; margin-top: 40px; padding: 32px; }
  :is(#kalima-home, #kalima-pagina) .ks-singles-box h3 { font-size: 30px; margin-bottom: 8px; }
  :is(#kalima-home, #kalima-pagina) .ks-singles-box > div > p { font-size: 16px; }
  :is(#kalima-home, #kalima-pagina) .ks-singles-box > div > p.ks-singles-free { gap: 10px; margin-top: 18px; font-size: 17px; padding: 10px 18px; }
  :is(#kalima-home, #kalima-pagina) .ks-singles-opts { gap: 14px; }
  :is(#kalima-home, #kalima-pagina) .ks-singles-opts li { padding: 22px 12px; border-radius: 18px; }
  :is(#kalima-home, #kalima-pagina) .ks-singles-opts .ks-qta { font-size: 15px; }
  :is(#kalima-home, #kalima-pagina) .ks-singles-opts .ks-prezzo { font-size: 44px; margin-top: 6px; }
  /* Chiusura: vantaggi grandi e leggibili */
  :is(#kalima-home, #kalima-pagina) .ks-closing-free { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-width: 760px; margin: 36px auto 0; text-align: left; }
  :is(#kalima-home, #kalima-pagina) .ks-closing-free li {
    display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: 16px;
    background: #EEF5F0; color: var(--dark); font-size: 20px; font-weight: 700; line-height: 1.3;
  }
  :is(#kalima-home, #kalima-pagina) .ks-closing-free b {
    width: 34px; height: 34px; flex: none; border-radius: 50%; display: grid; place-items: center;
    background: var(--green); color: var(--white); font-size: 18px;
  }
  :is(#kalima-home, #kalima-pagina) .ks-bento { grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(190px, auto); gap: 18px; }
  :is(#kalima-home, #kalima-pagina) .ks-b-lessons { grid-column: span 2; grid-row: span 2; padding: 36px; }
  :is(#kalima-home, #kalima-pagina) .ks-b-lessons h3 { font-size: 32px; }
  :is(#kalima-home, #kalima-pagina) .ks-b-live { grid-column: span 2; }
  :is(#kalima-home, #kalima-pagina) .ks-tile { padding: 28px; }
  :is(#kalima-home, #kalima-pagina) .ks-arrive .ks-wrap { grid-template-columns: 1.1fr .9fr; }
  :is(#kalima-home, #kalima-pagina) .ks-closing-box { padding: 72px 40px; }
}
@media (min-width: 1100px) {
  /* Su schermo largo i tre gruppi stanno tutti in pagina, niente scorrimento */
  :is(#kalima-home, #kalima-pagina) .ks-price-scroller { overflow: visible; margin: 40px 0 0; padding: 18px 0 0; -webkit-mask-image: none; mask-image: none; }
  /* Gruppi larghi un terzo anche se il listino ne nasconde qualcuno: niente colonne vuote, centrati */
  :is(#kalima-home, #kalima-pagina) .ks-price-track { padding-right: 0; width: auto; display: flex; justify-content: center; gap: 24px; }
  :is(#kalima-home, #kalima-pagina) .ks-price-track > .ks-price-group { flex: 0 1 calc((100% - 48px) / 3); min-width: 0; }
  :is(#kalima-home, #kalima-pagina) .ks-group-cards { flex-direction: column; gap: 22px; }
  :is(#kalima-home, #kalima-pagina) .ks-plan { width: auto; }
  :is(#kalima-home, #kalima-pagina) .ks-swipe-hint { display: none; }
}
/* ── Animazioni ─────────────────────────────────────────── */
@keyframes ks-float { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-12px) rotate(1deg); } }
@keyframes ks-phone-in { from { opacity: 0; transform: translateY(30px) rotate(-3deg); } to { opacity: 1; transform: none; } }
@keyframes ks-grow { from { width: 0; } }
@keyframes ks-pick { 0%, 70%, 100% { box-shadow: 0 0 0 0 rgba(26,92,56,0); } 80% { box-shadow: 0 0 0 4px rgba(26,92,56,.25); } }
@keyframes ks-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(6px); } }
@keyframes ks-dash { to { stroke-dashoffset: -400; } }
@keyframes ks-bob { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(4px, -6px); } }
@keyframes ks-rise { from { transform: translateY(100%); } to { transform: none; } }
:is(#kalima-home, #kalima-pagina) .ks-reveal { animation: ks-fade-up .8s ease-out both; }
:is(#kalima-home, #kalima-pagina) .ks-reveal-2 { animation-delay: .12s; }
:is(#kalima-home, #kalima-pagina) .ks-reveal-3 { animation-delay: .24s; }
@keyframes ks-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  :is(#kalima-home, #kalima-pagina) *, :is(#kalima-home, #kalima-pagina) *::before, :is(#kalima-home, #kalima-pagina) *::after { animation: none !important; transition: none !important; }
  :is(#kalima-home, #kalima-pagina) .ks-btn:hover, :is(#kalima-home, #kalima-pagina) .ks-tile:hover { transform: none; }
}
/* ── Lingue RTL (dir="rtl" su :is(#kalima-home, #kalima-pagina)): posizioni e frecce specchiate ── */
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-tile-num { right: auto; left: 20px; }
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-group-title { padding-left: 0; padding-right: 4px; }
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-badge { left: auto; right: 22px; }
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-swipe-hint svg, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-reviews-hint svg, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-resume .ks-vai { scale: -1 1; }
/* Il telefono mostra una lezione: resta LTR come le lezioni; le etichette tradotte hanno la loro direzione */
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-screen { direction: ltr; }
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-scr-meta span, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-scr-label, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-scr-play div, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-scr-note { unicode-bidi: plaintext; }
@media (min-width: 900px) {
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-review-scroller {
    -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 72px), transparent);
            mask-image: linear-gradient(to left, #000 calc(100% - 72px), transparent);
  }
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-review-track { padding-right: 0; padding-left: 72px; }
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-price-scroller {
    -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 64px), transparent);
            mask-image: linear-gradient(to left, #000 calc(100% - 64px), transparent);
  }
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-price-track { padding-right: 0; padding-left: 64px; }
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-resume .ks-vai { margin-left: 0; margin-right: auto; }
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-closing-free { text-align: right; }
}
@media (min-width: 1100px) {
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-price-scroller { -webkit-mask-image: none; mask-image: none; }
  :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-price-track { padding-left: 0; }
}
/* Saluti, cifre e prezzi in caratteri latini: direzione decisa dal loro contenuto (niente «!Ciao» o «+1000») */
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-hello, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-stat-n, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-singles-opts .ks-prezzo, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-singles-opts .ks-qta, :is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-tile-num { unicode-bidi: plaintext; }
:is(#kalima-home, #kalima-pagina)[dir="rtl"] .ks-stat-n { direction: ltr; text-align: right; }

/* ============================================================
   Componenti ks- delle pagine (Prezzi, Chi siamo, Live, Contatti, Scopri i corsi,
   Test, Privacy, Termini): si aggiungono a quelli della home, stessi colori e font.
   Proprietà logiche: con le lingue RTL si specchiano da soli.
   ============================================================ */
/* Intestazione della pagina: fondo blu della home, una colonna */
#kalima-pagina .ks-hero-pagina { padding: 40px 0 48px; }
#kalima-pagina .ks-hero-pagina .ks-wrap { display: block; }
#kalima-pagina .ks-hero-pagina h1 { font: 700 clamp(36px, 9vw, 60px)/1.08 var(--serif); letter-spacing: -.01em; margin-bottom: 16px; max-width: 16em; }
#kalima-pagina .ks-hero-pagina h1 em { font-style: italic; color: var(--gold); }
#kalima-pagina .ks-hero-pagina .ks-hero-lead { margin-bottom: 0; }
#kalima-pagina .ks-hero-pagina .ks-hero-ctas { margin: 24px 0 0; }
#kalima-pagina .ks-hero-pagina .ks-free-pill { margin-top: 18px; }
#kalima-pagina .ks-section-alt { background: var(--white); }
#kalima-pagina .ks-center { text-align: center; }
#kalima-pagina .ks-center .ks-lead { margin-inline: auto; }

/* Griglia di riquadri che si riadatta: flex con a capo, ogni riquadro largo almeno 250px e che
   cresce a riempire la riga. Un riquadro solo, o rimasto da solo in fondo (voci del listino
   nascoste), occupa la riga intera: mai schede sole a metà larghezza. */
#kalima-pagina .ks-grid { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 28px; }
#kalima-pagina .ks-grid > * { flex: 1 1 250px; min-width: 0; }
/* Testo del corpo delle pagine: 17-18px, grigio più scuro (contrasto AA anche su fondo #F8F6F1),
   righe di al massimo 65 caratteri. Solo le pagine: la home resta com'è. */
#kalima-pagina { --grey: #44445A; }
#kalima-pagina .ks-lead { font-size: 18px; max-width: 65ch; }
#kalima-pagina :is(.ks-card p, .ks-prosa p, .ks-faq details p, .ks-steps span, .ks-legale p, .ks-legale li, .ks-corso-blocco > p, .ks-list li) { font-size: 17px; }
#kalima-pagina :is(.ks-prosa p, .ks-faq details p, .ks-legale p, .ks-corso-blocco > p, .ks-hero-lead) { max-width: 65ch; }
#kalima-pagina .ks-card {
  position: relative; background: var(--white); border: 1px solid rgba(26,26,46,.1);
  border-radius: var(--radius); padding: 24px 22px; display: flex; flex-direction: column; gap: 8px;
}
#kalima-pagina .ks-card h3 { font: 700 22px/1.25 var(--serif); }
#kalima-pagina .ks-card p { color: var(--grey); }
#kalima-pagina .ks-card .ks-card-price { font: 700 34px/1.1 var(--serif); color: var(--blue); margin-top: auto; padding-top: 8px; }
#kalima-pagina .ks-card .ks-card-price small { font: 500 15px/1.2 var(--sans); color: var(--grey); }
#kalima-pagina .ks-card .ks-btn { margin-top: 8px; align-self: flex-start; }
#kalima-pagina .ks-card-ico { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: rgba(27,75,138,.1); color: var(--blue); font-size: 22px; }
#kalima-pagina .ks-card-gold { border-color: var(--gold); box-shadow: 0 12px 30px rgba(232,160,32,.16); }
#kalima-pagina .ks-card-dark { background: var(--dark); color: var(--white); border-color: transparent; }
#kalima-pagina .ks-card-dark p { color: rgba(255,255,255,.8); }
#kalima-pagina .ks-card-dark .ks-card-price { color: var(--gold); }
#kalima-pagina .ks-card-dark .ks-card-price small { color: rgba(255,255,255,.75); }
#kalima-pagina .ks-list { list-style: none; display: grid; gap: 8px; margin-top: 6px; }
#kalima-pagina .ks-list li { position: relative; padding-inline-start: 26px; color: var(--grey); }
#kalima-pagina .ks-list li::before { content: '\2713'; position: absolute; inset-inline-start: 0; top: 0; color: var(--green); font-weight: 700; }
#kalima-pagina .ks-card-dark .ks-list li { color: rgba(255,255,255,.85); }
#kalima-pagina .ks-card-dark .ks-list li::before { color: var(--gold); }
#kalima-pagina .ks-note { margin-top: 20px; font-size: 15px; color: var(--grey); }

/* Passi numerati (Live: come funziona) */
#kalima-pagina .ks-steps { list-style: none; display: grid; gap: 14px; margin-top: 28px; counter-reset: ks-passo; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
#kalima-pagina .ks-steps li { counter-increment: ks-passo; background: var(--white); border-radius: var(--radius); padding: 22px; border: 1px solid rgba(26,26,46,.1); }
#kalima-pagina .ks-steps li::before { content: counter(ks-passo, decimal-leading-zero); display: block; font: 700 34px/1 var(--serif); color: var(--gold-ink); margin-bottom: 10px; }
#kalima-pagina .ks-steps strong { display: block; font-size: 18px; margin-bottom: 4px; }
#kalima-pagina .ks-steps span { color: var(--grey); }

/* Domande frequenti: <details>, si aprono senza JavaScript */
#kalima-pagina .ks-faq { max-width: 820px; margin-top: 28px; display: grid; gap: 12px; }
#kalima-pagina .ks-center .ks-faq { margin-inline: auto; text-align: start; }
#kalima-pagina .ks-faq details { background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: 18px; padding: 0 20px; }
#kalima-pagina .ks-faq summary { cursor: pointer; list-style: none; padding: 18px 0; font-weight: 700; font-size: 17px; display: flex; justify-content: space-between; gap: 16px; }
#kalima-pagina .ks-faq summary::-webkit-details-marker { display: none; }
#kalima-pagina .ks-faq summary::after { content: '+'; flex: none; font-size: 22px; line-height: 1; color: var(--blue); }
#kalima-pagina .ks-faq details[open] summary::after { content: '\2212'; }
#kalima-pagina .ks-faq details p { padding: 0 0 18px; color: var(--grey); }

/* Chi siamo: storia, parola araba, badge */
#kalima-pagina .ks-storia { display: grid; gap: 28px; align-items: center; }
#kalima-pagina .ks-parola { font: 700 clamp(72px, 22vw, 140px)/1.2 'Amiri', 'Noto Naskh Arabic', 'Segoe UI', serif; color: var(--blue); text-align: center; }
#kalima-pagina .ks-parola-lat { text-align: center; font: 700 18px/1.2 var(--serif); color: var(--gold-ink); letter-spacing: .1em; text-transform: uppercase; margin-top: 8px; }
#kalima-pagina .ks-prosa p + p { margin-top: 14px; }
#kalima-pagina .ks-prosa p { color: var(--grey); font-size: 17px; }
#kalima-pagina .ks-badge-box { display: grid; gap: 24px; align-items: center; background: var(--white); border-radius: var(--radius); padding: 24px; border: 1px solid rgba(26,26,46,.1); margin-top: 28px; }
#kalima-pagina .ks-badge-box img { width: 100%; max-width: 220px; height: auto; margin-inline: auto; }
#kalima-pagina .ks-badge-box .ks-stat-n { font: 700 40px/1 var(--serif); color: var(--blue); }
#kalima-pagina .ks-badge-box .ks-stat-l { color: var(--grey); margin-top: 6px; }

/* Contatti: canali e modulo */
#kalima-pagina .ks-contatti { display: grid; gap: 24px; }
#kalima-pagina .ks-canale { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: 18px; padding: 16px 18px; margin-top: 16px; }
#kalima-pagina .ks-canale a.ks-whatsapp { display: inline-flex; align-items: center; min-height: 48px; padding: 12px 22px; border-radius: 999px; background: #1A7F4B; color: var(--white); font-weight: 700; text-decoration: none; }
#kalima-pagina .ks-lingue { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; list-style: none; }
#kalima-pagina .ks-lingue li { background: var(--white); border: 1px solid rgba(26,26,46,.12); border-radius: 999px; padding: 4px 12px; font-size: 14px; }
#kalima-pagina .ks-modulo { background: var(--white); border-radius: var(--radius); padding: 24px 20px; border: 1px solid rgba(26,26,46,.1); }
#kalima-pagina .ks-modulo h2 { font: 700 26px/1.2 var(--serif); margin-bottom: 14px; }
#kalima-pagina .ks-modulo label { display: block; font-weight: 700; font-size: 15px; margin-bottom: 4px; }
#kalima-pagina .ks-modulo input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
#kalima-pagina .ks-modulo textarea, #kalima-pagina .ks-modulo select {
  width: 100%; max-width: 100%; border: 1.5px solid #D9D6CE; border-radius: 12px; padding: 12px 14px; font: 400 16px/1.4 var(--sans); background: var(--bg); color: var(--dark);
}
#kalima-pagina .ks-modulo input[type="submit"] { min-height: 52px; padding: 14px 28px; border: 0; border-radius: 999px; background: var(--blue); color: var(--white); font: 700 16px/1.2 var(--sans); cursor: pointer; }
#kalima-pagina .ks-modulo p { margin-bottom: 14px; }

/* Testi lunghi (Privacy, Termini): una colonna leggibile, sezioni in riquadri */
#kalima-pagina .ks-legale { max-width: 820px; margin: 0 auto; display: grid; gap: 16px; }
#kalima-pagina .ks-legale .ks-legale-sez { background: var(--white); border-radius: 18px; padding: 24px 22px; border: 1px solid rgba(26,26,46,.08); }
#kalima-pagina .ks-legale h2 { font: 700 21px/1.3 var(--serif); margin-bottom: 12px; }
#kalima-pagina .ks-legale p, #kalima-pagina .ks-legale li { color: var(--grey); font-size: 16px; }
#kalima-pagina .ks-legale p + p { margin-top: 10px; }
#kalima-pagina .ks-legale ul { list-style: disc; padding-inline-start: 22px; margin: 10px 0; display: grid; gap: 6px; }
#kalima-pagina .ks-legale strong { color: var(--dark); }
#kalima-pagina .ks-legale a { color: var(--blue); }
#kalima-pagina .ks-legale .ks-aggiornato { text-align: center; font-size: 14px; color: var(--grey); }

@media (min-width: 900px) {
  #kalima-pagina .ks-hero-pagina { padding: 72px 0 80px; }
  #kalima-pagina .ks-storia { grid-template-columns: .8fr 1.2fr; gap: 56px; }
  #kalima-pagina .ks-badge-box { grid-template-columns: 220px 1fr; padding: 32px; }
  #kalima-pagina .ks-contatti { grid-template-columns: .9fr 1.1fr; gap: 40px; align-items: start; }
  #kalima-pagina .ks-modulo { padding: 32px; }
}

/* Scopri i corsi: livelli, schede dei corsi */
#kalima-pagina .ks-livelli { position: sticky; top: 0; z-index: 5; background: var(--bg); border-bottom: 1px solid rgba(26,26,46,.08); }
#kalima-pagina .ks-livelli .ks-wrap { display: flex; gap: 8px; overflow-x: auto; padding-block: 12px; scrollbar-width: none; }
#kalima-pagina .ks-livelli .ks-wrap::-webkit-scrollbar { display: none; }
#kalima-pagina .ks-livelli a { flex: none; text-decoration: none; white-space: nowrap; }
#kalima-pagina .ks-chip-gratis, #kalima-pagina .ks-chip-oro { background: var(--gold); color: var(--dark); }
#kalima-pagina .ks-chip-blu { background: rgba(27,75,138,.12); color: var(--blue); }
#kalima-pagina .ks-corso-testa .ks-chip { background: rgba(255,255,255,.18); color: var(--white); }
#kalima-pagina .ks-corso-testa .ks-chip-blu { background: var(--white); color: var(--blue); }
#kalima-pagina .ks-corso-testa .ks-chip-oro { background: var(--gold); color: var(--dark); }
#kalima-pagina .ks-corso-sez { padding: 24px 0; scroll-margin-top: 64px; }
#kalima-pagina .ks-corso { background: var(--white); border-radius: var(--radius); border: 1px solid rgba(26,26,46,.1); overflow: hidden; }
#kalima-pagina .ks-corso-testa { padding: 28px 22px; background: var(--blue); color: var(--white); }
#kalima-pagina .ks-corso-testa .ks-h2 { margin: 14px 0 10px; font-size: clamp(26px, 6.5vw, 40px); }
#kalima-pagina .ks-corso-testa .ks-lead { color: rgba(255,255,255,.88); }
#kalima-pagina .ks-corso-presto .ks-corso-testa { background: #5C5C70; }
#kalima-pagina .ks-corso-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
#kalima-pagina .ks-corso-meta li { background: rgba(255,255,255,.14); border-radius: 999px; padding: 5px 12px; font-size: 14px; }
#kalima-pagina .ks-corso-corpo { padding: 24px 22px 28px; display: grid; gap: 24px; justify-items: start; }
#kalima-pagina .ks-corso-blocco { width: 100%; }
#kalima-pagina .ks-corso-blocco h3 { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: 12px; }
#kalima-pagina .ks-corso-blocco > p { color: var(--grey); }
#kalima-pagina .ks-list-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 10px 24px; }
#kalima-pagina span.ks-presto { background: rgba(26,26,46,.08); color: var(--grey); }
#kalima-pagina .ks-schede .tutor-course-list { margin: 0; }
@media (min-width: 900px) {
  #kalima-pagina .ks-corso-testa, #kalima-pagina .ks-corso-corpo { padding-inline: 40px; }
  #kalima-pagina .ks-corso-testa { padding-block: 40px; }
  #kalima-pagina .ks-livelli .ks-wrap { justify-content: center; }
}

/* Test di livello (pagina 132). Logica in Code Snippets (29 «Kalima Test JS», 26 «Kalima
   Livello Test»): il JavaScript usa gli ID kt-* e le classi kt-screen/active, kt-option,
   kt-option-letter, correct, wrong, kt-q-livello a1…b2, kt-feedback ok/ko. Qui solo lo stile. */
#kalima-pagina .kt-progress-wrap { max-width: 700px; margin-top: 28px; }
#kalima-pagina .kt-progress-info { display: flex; justify-content: space-between; font-size: 14px; color: rgba(255,255,255,.8); margin-bottom: 8px; }
#kalima-pagina .kt-progress-bar { height: 8px; background: rgba(255,255,255,.2); border-radius: 8px; overflow: hidden; }
#kalima-pagina .kt-progress-fill { height: 100%; background: var(--gold); border-radius: 8px; transition: width .4s ease; }
#kalima-pagina .kt-quiz { max-width: 760px; margin: 0 auto; padding: 40px 16px 72px; }
#kalima-pagina .kt-screen { display: none; }
#kalima-pagina .kt-screen.active { display: block; }
#kalima-pagina .kt-card { background: var(--white); border-radius: var(--radius); padding: 32px 22px; border: 1px solid rgba(26,26,46,.08); box-shadow: 0 24px 60px rgba(27,75,138,.1); }
#kalima-pagina .kt-q-num { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: 10px; }
#kalima-pagina .kt-q-livello { display: inline-block; font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 999px; margin-bottom: 18px; }
#kalima-pagina .kt-q-livello.a1 { background: #E5F1EA; color: var(--green); }
#kalima-pagina .kt-q-livello.a2 { background: rgba(27,75,138,.1); color: var(--blue); }
#kalima-pagina .kt-q-livello.b1 { background: #FFF1D6; color: var(--gold-ink); }
#kalima-pagina .kt-q-livello.b2 { background: #FBE7E7; color: #A12A2A; }
#kalima-pagina .kt-question { font: 700 clamp(20px, 5vw, 26px)/1.35 var(--serif); margin-bottom: 26px; }
#kalima-pagina .kt-options { display: grid; gap: 12px; }
#kalima-pagina .kt-option {
  display: flex; align-items: center; gap: 14px; width: 100%; padding: 16px 18px; text-align: start;
  border-radius: 16px; border: 2px solid #D9D6CE; background: var(--bg); color: var(--dark);
  font: 500 16px/1.4 var(--sans); cursor: pointer; transition: border-color .2s ease, background-color .2s ease;
}
#kalima-pagina .kt-option:hover { border-color: var(--blue); background: rgba(27,75,138,.05); color: var(--dark); }
#kalima-pagina .kt-option.correct { border-color: var(--green); background: #E5F1EA; color: var(--green); }
#kalima-pagina .kt-option.wrong { border-color: #A12A2A; background: #FBE7E7; color: #A12A2A; }
#kalima-pagina .kt-option-letter { width: 32px; height: 32px; flex: none; border-radius: 50%; display: grid; place-items: center; background: rgba(26,26,46,.08); font-size: 13px; font-weight: 700; }
#kalima-pagina .kt-option.correct .kt-option-letter { background: var(--green); color: var(--white); }
#kalima-pagina .kt-option.wrong .kt-option-letter { background: #A12A2A; color: var(--white); }
#kalima-pagina .kt-feedback { display: none; margin-top: 18px; padding: 14px 18px; border-radius: 14px; font-size: 15px; }
#kalima-pagina .kt-feedback.ok { display: block; background: #E5F1EA; color: var(--green); border-inline-start: 4px solid var(--green); }
#kalima-pagina .kt-feedback.ko { display: block; background: #FBE7E7; color: #A12A2A; border-inline-start: 4px solid #A12A2A; }
#kalima-pagina .kt-next, #kalima-pagina .kt-start-btn, #kalima-pagina .kt-retry {
  min-height: 52px; padding: 14px 28px; border-radius: 999px; border: 2px solid transparent;
  font: 700 16px/1.2 var(--sans); cursor: pointer;
}
#kalima-pagina .kt-next { display: none; width: 100%; margin-top: 24px; background: var(--blue); color: var(--white); }
#kalima-pagina .kt-next:hover { background: var(--blue-dark); }
#kalima-pagina .kt-start-btn { background: var(--gold); color: var(--dark); font-size: 18px; padding-inline: 40px; }
#kalima-pagina .kt-start-btn:hover { background: #F2B23E; }
#kalima-pagina .kt-retry { display: block; width: 100%; margin-top: 14px; background: transparent; border-color: var(--dark); color: var(--dark); }
#kalima-pagina .kt-intro, #kalima-pagina .kt-result { text-align: center; }
#kalima-pagina .kt-intro h2, #kalima-pagina .kt-result h2 { font: 700 clamp(26px, 6vw, 34px)/1.2 var(--serif); margin-bottom: 14px; }
#kalima-pagina .kt-intro p, #kalima-pagina .kt-result-desc { color: var(--grey); max-width: 500px; margin: 0 auto 28px; }
#kalima-pagina .kt-intro-info { display: flex; justify-content: center; flex-wrap: wrap; gap: 28px; margin-bottom: 32px; }
#kalima-pagina .kt-info-n { font: 700 38px/1 var(--serif); color: var(--blue); }
#kalima-pagina .kt-info-l { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--grey); margin-top: 6px; }
#kalima-pagina .kt-score-circle { width: 140px; height: 140px; border-radius: 50%; background: var(--blue); color: var(--white); display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0 auto 24px; }
#kalima-pagina .kt-score-n { font: 700 48px/1 var(--serif); }
#kalima-pagina .kt-score-tot { font-size: 14px; color: rgba(255,255,255,.75); }
#kalima-pagina .kt-livello-result { display: inline-block; font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 8px 20px; border-radius: 999px; margin-bottom: 20px; }
#kalima-pagina .kt-result-corso { text-align: start; background: var(--bg); border: 2px solid var(--gold); border-radius: 20px; padding: 24px; margin-bottom: 8px; }
#kalima-pagina .kt-result-corso-tag { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: 6px; }
#kalima-pagina .kt-result-corso-t { font: 700 22px/1.3 var(--serif); margin-bottom: 6px; }
#kalima-pagina .kt-result-corso-d { color: var(--grey); margin-bottom: 18px; }
#kalima-pagina .kt-result-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 12px 26px; border-radius: 999px; background: var(--blue); color: var(--white); font-weight: 700; text-decoration: none; }
#kalima-pagina .kt-result-btn:hover, #kalima-pagina .kt-result-btn:focus { color: var(--white); }
@media (min-width: 900px) {
  #kalima-pagina .kt-card { padding: 48px 44px; }
}

/* Live: prossima data ([kalima_live_prossima], plugin includes/live.php) con un player YouTube
   disegnato in CSS, bollino LIVE e conto alla rovescia */
#kalima-pagina .ks-live-box { display: grid; gap: 24px; align-items: center; background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: var(--radius); padding: 18px; box-shadow: 0 24px 60px rgba(27,75,138,.12); }
#kalima-pagina .ks-player { position: relative; }
#kalima-pagina .ks-player-schermo { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: radial-gradient(circle at 70% 30%, rgba(232,160,32,.35) 0 22%, transparent 23%), linear-gradient(135deg, #0F2D54, #1B4B8A 60%, #1A1A2E); }
#kalima-pagina .ks-player-live { position: absolute; top: 12px; inset-inline-start: 12px; display: inline-flex; align-items: center; gap: 6px; background: #D32F2F; color: var(--white); font-size: 12px; font-weight: 700; letter-spacing: .1em; padding: 4px 10px; border-radius: 6px; }
#kalima-pagina .ks-player-live .ks-dot { background: var(--white); animation: ks-lampeggia 1.4s ease-in-out infinite; }
#kalima-pagina .ks-player-play { position: absolute; inset: 0; margin: auto; width: 68px; height: 48px; border-radius: 14px; background: #D32F2F; color: var(--white); display: grid; place-items: center; }
#kalima-pagina .ks-player-barra { position: absolute; inset-inline: 12px; bottom: 12px; height: 5px; border-radius: 5px; background: rgba(255,255,255,.25); overflow: hidden; }
#kalima-pagina .ks-player-barra i { display: block; width: 38%; height: 100%; background: #D32F2F; }
@keyframes ks-lampeggia { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { #kalima-pagina .ks-player-live .ks-dot { animation: none; } }
#kalima-pagina .ks-live-info { display: grid; gap: 8px; }
#kalima-pagina .ks-live-info .ks-kicker { margin: 0; }
#kalima-pagina .ks-live-quando { font: 700 clamp(22px, 5.5vw, 30px)/1.25 var(--serif); }
#kalima-pagina .ks-live-roma, #kalima-pagina .ks-live-locale { color: var(--grey); font-size: 16px; }
#kalima-pagina .ks-live-diretta { display: inline-flex; align-items: center; gap: 8px; color: #B71C1C; font-weight: 700; }
#kalima-pagina .ks-live-diretta[hidden], #kalima-pagina .ks-live-locale[hidden], #kalima-pagina .ks-countdown[hidden] { display: none; }
#kalima-pagina .ks-countdown { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 6px 0; max-width: 360px; }
#kalima-pagina .ks-countdown div { background: var(--bg); border-radius: 12px; padding: 8px 4px; text-align: center; }
#kalima-pagina .ks-countdown b { display: block; font: 700 26px/1.1 var(--serif); color: var(--blue); font-variant-numeric: tabular-nums; }
#kalima-pagina .ks-countdown span { font-size: 12px; color: var(--grey); text-transform: uppercase; letter-spacing: .06em; }
#kalima-pagina .ks-live-msg { font-weight: 700; font-size: 17px; }
#kalima-pagina .ks-live-azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
#kalima-pagina .ks-live-azioni button.ks-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
#kalima-pagina .ks-live-link, #kalima-pagina .ks-live-cal a { color: var(--blue); font-weight: 700; }
#kalima-pagina .ks-live-nota { color: var(--grey); font-size: 15px; min-height: 1em; }
#kalima-pagina .ks-live-nota.ks-errore { color: #B71C1C; }
#kalima-pagina .ks-live-cal { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 15px; color: var(--grey); }
#kalima-pagina .ks-live-in-onda .ks-player-barra i { width: 100%; }
@media (min-width: 900px) {
  #kalima-pagina .ks-live-box { grid-template-columns: 1.05fr .95fr; padding: 28px; gap: 36px; }
}

/* Chi siamo: foto con badge nell'intestazione, linea del tempo del percorso */
#kalima-pagina .ks-hero-foto .ks-wrap { display: grid; gap: 32px; align-items: center; }
#kalima-pagina .ks-foto { position: relative; margin: 0 auto; max-width: 320px; width: 100%; }
#kalima-pagina .ks-foto img { width: 100%; height: auto; border-radius: 28px; box-shadow: 0 30px 60px rgba(0,0,0,.3); transform: rotate(-2deg); }
#kalima-pagina .ks-foto-badge { position: absolute; inset-inline-start: -8px; bottom: -14px; display: grid; gap: 2px; max-width: 250px; background: var(--white); color: var(--dark); border-radius: 16px; padding: 10px 14px; box-shadow: 0 12px 30px rgba(0,0,0,.25); font-size: 13px; line-height: 1.35; }
#kalima-pagina .ks-foto-badge b { font: 700 20px/1.1 var(--serif); color: var(--gold-ink); }
#kalima-pagina .ks-badge-preply { width: 120px; height: 120px; border-radius: 50%; display: grid; place-items: center; margin-inline: auto; background: var(--gold); color: var(--dark); font-size: 56px; }
#kalima-pagina .ks-tempo { list-style: none; margin: 32px 0 0; padding: 0; position: relative; display: grid; gap: 22px; }
#kalima-pagina .ks-tempo::before { content: ''; position: absolute; inset-block: 8px; inset-inline-start: 11px; width: 3px; border-radius: 3px; background: linear-gradient(var(--blue), var(--gold)); }
#kalima-pagina .ks-tempo li { position: relative; padding-inline-start: 44px; }
#kalima-pagina .ks-tempo li::before { content: ''; position: absolute; inset-inline-start: 2px; top: 4px; width: 21px; height: 21px; border-radius: 50%; background: var(--white); border: 4px solid var(--blue); box-sizing: border-box; }
#kalima-pagina .ks-tempo li.ks-tempo-prossimo::before { border-color: var(--gold); border-style: dashed; }
#kalima-pagina .ks-tempo-tappa { display: block; font: 700 21px/1.3 var(--serif); }
#kalima-pagina .ks-tempo p { color: var(--grey); font-size: 17px; max-width: 65ch; margin-top: 4px; }
@media (min-width: 900px) {
  #kalima-pagina .ks-hero-foto .ks-wrap { grid-template-columns: 1.2fr .8fr; gap: 56px; }
  #kalima-pagina .ks-foto { max-width: 360px; }
  #kalima-pagina .ks-badge-box { grid-template-columns: 140px 1fr; }
  #kalima-pagina .ks-tempo { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
  #kalima-pagina .ks-tempo::before { inset-block: auto; top: 10px; inset-inline: 10px; width: auto; height: 3px; background: linear-gradient(90deg, var(--blue), var(--gold)); }
  #kalima-pagina [dir="rtl"] .ks-tempo::before, #kalima-pagina.ks-pagina[dir="rtl"] .ks-tempo::before { background: linear-gradient(270deg, var(--blue), var(--gold)); }
  #kalima-pagina .ks-tempo li { padding-inline-start: 0; padding-top: 40px; }
  #kalima-pagina .ks-tempo li::before { top: 0; inset-inline-start: 0; }
}

/* Prezzi: confronto gratis / con un piano */
#kalima-pagina .ks-confronto-box { margin-top: 28px; overflow-x: auto; border-radius: var(--radius); border: 1px solid rgba(26,26,46,.1); background: var(--white); }
#kalima-pagina .ks-confronto { width: 100%; border-collapse: collapse; font-size: 17px; margin: 0; border: 0; }
#kalima-pagina .ks-confronto th, #kalima-pagina .ks-confronto td { padding: 14px 16px; border: 0; border-bottom: 1px solid rgba(26,26,46,.08); text-align: center; vertical-align: middle; }
#kalima-pagina .ks-confronto tbody th { text-align: start; font-weight: 500; color: var(--dark); }
#kalima-pagina .ks-confronto thead th { font: 700 18px/1.25 var(--serif); background: var(--bg); }
#kalima-pagina .ks-confronto thead th:last-child { background: var(--blue); color: var(--white); }
#kalima-pagina .ks-confronto thead small { display: block; font: 700 12px/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin-top: 4px; }
#kalima-pagina .ks-confronto tbody tr:last-child > * { border-bottom: 0; }
#kalima-pagina .ks-confronto td:last-child { background: rgba(27,75,138,.05); }
#kalima-pagina .ks-si { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #E5F1EA; color: var(--green); }
#kalima-pagina .ks-no { color: #8A8A99; font-weight: 700; }
#kalima-pagina .ks-pro { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .06em; padding: 2px 8px; border-radius: 999px; background: var(--gold); color: var(--dark); vertical-align: middle; }
@media (max-width: 599.98px) {
  #kalima-pagina .ks-confronto th, #kalima-pagina .ks-confronto td { padding: 12px 8px; font-size: 15px; }
  #kalima-pagina .ks-confronto thead th { font-size: 15px; }
}

/* Live: passi con un'icona SVG oltre al numero */
#kalima-pagina .ks-steps li { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; }
#kalima-pagina .ks-steps li::before { grid-column: 1 / -1; }
#kalima-pagina .ks-steps .ks-step-ico { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: rgba(27,75,138,.1); color: var(--blue); grid-row: span 2; }
#kalima-pagina .ks-steps strong, #kalima-pagina .ks-steps span:not(.ks-step-ico) { grid-column: 2; }

/* Barra «Inizia gratis» fissa in basso su mobile, su tutte le pagine tranne la home (che ha la
   sua), l'account, il carrello e il checkout; solo per chi non ha fatto l'accesso (header-footer.php) */
.kh-barra { display: none; }
@media (max-width: 899.98px) {
	body.kalima-barra { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	.kh-barra {
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		position: fixed; inset-inline: 0; bottom: 0; z-index: 70;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background: var(--kh-white); border-top: 1px solid rgba(26,26,46,.12); box-shadow: 0 -8px 24px rgba(26,26,46,.12);
		font-family: var(--kh-sans); font-size: 16px; box-sizing: border-box;
	}
	.kh-barra .kh-barra-accedi { color: var(--kh-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
	.kh-barra .kh-cta {
		display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px;
		border-radius: 999px; background: var(--kh-gold); color: var(--kh-dark); font-weight: 700; text-decoration: none; flex: 1 1 auto; max-width: 260px;
	}
}

/* ── Accesso, registrazione, password (child theme woocommerce/myaccount/*.php, plugin
   includes/accesso.php) e benvenuto dopo la registrazione (includes/registrazione.php) ── */
/* La pagina account mette il contenuto in .woocommerce: a tutta larghezza come le altre pagine ks- */
body.kalima-accesso .entry-content > .woocommerce { max-width: none; width: 100%; margin: 0; padding: 0; }
body.kalima-accesso .entry-content > .woocommerce > #kalima-pagina { max-width: none; width: 100%; margin: 0; }
/* Astra mette rientri propri su .entry-content e .woocommerce con regole più forti: servono !important */
body.kalima-accesso #primary .entry-content,
body.kalima-accesso #primary .entry-content > .woocommerce { padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important; }
#kalima-pagina.ks-accesso .ks-accesso-sezione { padding: 28px 0 56px; }
#kalima-pagina .ks-accesso-griglia { display: grid; gap: 20px; max-width: 540px; margin: 0 auto; }
#kalima-pagina .ks-accesso-box {
	background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: var(--radius);
	box-shadow: 0 24px 60px rgba(27,75,138,.1); padding: 28px 20px;
}
#kalima-pagina .ks-accesso-titolo { font: 700 clamp(28px, 7.5vw, 38px)/1.15 var(--serif); margin-bottom: 8px; }
#kalima-pagina .ks-accesso-sotto { color: var(--grey); font-size: 17px; margin-bottom: 24px; }
#kalima-pagina .ks-accesso-box > .woocommerce-notices-wrapper:empty { display: none; }
/* Il modulo sta già nel riquadro: niente seconda cornice di WooCommerce/Astra */
#kalima-pagina .ks-accesso-box form.ks-accesso-form { margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; max-width: none !important; }
#kalima-pagina .ks-accesso-form label .required { display: none; }
/* Campi grandi, leggibili sul telefono (16px o più: iOS non ingrandisce la pagina) */
#kalima-pagina .ks-accesso-form .ks-campo,
#kalima-pagina .ks-accesso-form .form-row { margin: 0 0 18px; padding: 0; width: 100%; float: none; }
#kalima-pagina .ks-accesso-form label { display: block; font-weight: 700; font-size: 16px; line-height: 1.4; margin: 0 0 6px; color: var(--dark); }
#kalima-pagina .ks-accesso-form label .required { color: #A12A2A; text-decoration: none; }
#kalima-pagina .ks-accesso-form input.input-text,
#kalima-pagina .ks-accesso-form select {
	display: block; width: 100%; min-height: 54px; margin: 0; padding: 12px 16px; border: 1.5px solid #8C8A84 !important; border-radius: 12px !important;
	background: var(--white) !important; box-shadow: none; font: 400 17px/1.4 var(--sans); color: var(--dark);
}
#kalima-pagina .ks-accesso-form input.input-text:focus,
#kalima-pagina .ks-accesso-form select:focus { border-color: var(--blue) !important; outline: 0; box-shadow: 0 0 0 3px rgba(27,75,138,.25); border-radius: 12px; }
#kalima-pagina .ks-campo-nota,
#kalima-pagina .ks-accesso-form .kalima-nota { display: block; margin-top: 6px; font-size: 14px; line-height: 1.45; color: var(--grey); }
#kalima-pagina .ks-campo-riga { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 16px; margin: 0 0 18px; }
#kalima-pagina .ks-accesso-form label.ks-spunta { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; font-weight: 500; cursor: pointer; }
#kalima-pagina .ks-spunta input { width: 22px; height: 22px; margin: 0; flex: 0 0 auto; accent-color: var(--blue); }
#kalima-pagina .ks-spunta span { font: 500 16px/1.4 var(--sans) !important; text-transform: none !important; letter-spacing: normal !important; color: var(--dark) !important; }
#kalima-pagina .ks-accesso-dimenticata,
#kalima-pagina .ks-accesso-cambia a,
#kalima-pagina .woocommerce-privacy-policy-text a { color: var(--blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#kalima-pagina .ks-accesso-dimenticata { display: inline-flex; align-items: center; min-height: 44px; }
#kalima-pagina .woocommerce-privacy-policy-text p { margin: 0 0 18px; font-size: 14px; line-height: 1.5; color: var(--grey); }
#kalima-pagina .ks-accesso-form button.ks-accesso-invia {
	display: flex; width: 100%; min-height: 56px; margin: 4px 0 0; padding: 14px 24px !important; border: 0 !important; border-radius: 999px !important;
	background: var(--gold) !important; color: var(--dark) !important; font: 700 17px/1.2 var(--sans) !important; text-transform: none; letter-spacing: normal;
}
#kalima-pagina .ks-accesso-form button.ks-accesso-invia:hover,
#kalima-pagina .ks-accesso-form button.ks-accesso-invia:focus-visible { background: #F2B23E !important; color: var(--dark) !important; }
#kalima-pagina .ks-accesso-cambia { margin: 20px 0 0; text-align: center; font-size: 16px; }
/* Pulsante «mostra password» di WooCommerce: dal lato giusto anche in RTL */
#kalima-pagina .ks-accesso-form .password-input { display: block; position: relative !important; }
#kalima-pagina .ks-accesso-form .password-input input.input-text { padding-inline-end: 52px; }
#kalima-pagina .ks-accesso-form .show-password-input {
	position: absolute; top: 4px !important; bottom: auto; transform: none; translate: none; /* WooCommerce usa translate: 0 -50% */ width: 46px; height: 46px; min-height: 0; margin: 0; padding: 0;
	display: grid; place-items: center; background-color: transparent !important; border: 0; border-radius: 10px;
}
#kalima-pagina .ks-accesso-form .show-password-input::after { position: static; margin: 0; }
#kalima-pagina[dir="ltr"] .ks-accesso-form .show-password-input { right: 4px; left: auto; }
#kalima-pagina[dir="rtl"] .ks-accesso-form .show-password-input { left: 4px; right: auto; }
/* Forza della password (WooCommerce) */
#kalima-pagina .woocommerce-password-strength { margin-top: 8px; padding: 8px 12px; border-radius: 10px; font-size: 14px; font-weight: 700; text-align: start; border: 0; }
#kalima-pagina .woocommerce-password-strength.short,
#kalima-pagina .woocommerce-password-strength.bad { background: #FBE7E7; color: #7A1F1F; }
#kalima-pagina .woocommerce-password-strength.good { background: #FFF4DE; color: #6B4600; }
#kalima-pagina .woocommerce-password-strength.strong { background: #E5F1EA; color: #1A5C38; }
#kalima-pagina .woocommerce-password-hint { display: block; margin-top: 6px; font-size: 14px; color: var(--grey); }
/* Errori e conferme dentro il riquadro: chiari, senza le icone di WooCommerce */
#kalima-pagina .ks-accesso-box :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) {
	list-style: none; margin: 0 0 20px; padding: 14px 16px; border: 0; border-inline-start: 4px solid; border-radius: 12px;
	font-size: 16px; line-height: 1.5; text-align: start; box-shadow: none;
}
#kalima-pagina .ks-accesso-box :is(.woocommerce-error, .woocommerce-message, .woocommerce-info)::before { content: none; display: none; }
#kalima-pagina .ks-accesso-box .woocommerce-error { background: #FBE7E7; border-color: #A12A2A; color: #5E1515; }
#kalima-pagina .ks-accesso-box .woocommerce-error li { margin: 0; padding: 0; }
#kalima-pagina .ks-accesso-box :is(.woocommerce-message, .woocommerce-info) { background: #E5F1EA; border-color: var(--green); color: #12402A; }
/* Spazio per il login social (si vede solo con i pulsanti) */
#kalima-pagina .ks-accesso-social { margin-top: 20px; }
#kalima-pagina .ks-accesso-oppure { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; color: var(--grey); font-size: 15px; }
#kalima-pagina .ks-accesso-oppure::before,
#kalima-pagina .ks-accesso-oppure::after { content: ""; flex: 1; height: 1px; background: #D9D6CE; }
/* Vantaggi della registrazione */
#kalima-pagina .ks-accesso-vantaggi { background: var(--blue); color: var(--white); border-radius: var(--radius); padding: 26px 22px; }
#kalima-pagina .ks-accesso-vantaggi h2 { font: 700 clamp(22px, 6vw, 28px)/1.2 var(--serif); margin-bottom: 18px; }
#kalima-pagina .ks-accesso-vantaggi ul { list-style: none; display: grid; gap: 14px; }
#kalima-pagina .ks-accesso-vantaggi li { display: flex; align-items: center; gap: 14px; font-size: 17px; font-weight: 600; line-height: 1.4; }
#kalima-pagina .ks-accesso-icona { flex: 0 0 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,255,255,.12); color: var(--gold); }
#kalima-pagina .ks-accesso-icona-grande { color: var(--blue); margin: 0 0 8px; }
@media (max-width: 899.98px) {
	/* Sul telefono, nell'accesso i vantaggi non servono: si va dritti al modulo */
	#kalima-pagina.ks-accesso-accedi .ks-accesso-vantaggi { display: none; }
}
@media (min-width: 600px) {
	#kalima-pagina .ks-accesso-box { padding: 40px; }
}
@media (min-width: 900px) {
	#kalima-pagina.ks-accesso .ks-accesso-sezione { padding: 56px 0 88px; }
	#kalima-pagina .ks-accesso-griglia.ks-accesso-con-vantaggi { max-width: 1000px; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: 48px; }
	#kalima-pagina .ks-accesso-vantaggi { padding: 36px 32px; }
}
/* Bacheca dell'account: Astra la impagina in flex su una riga; il riquadro «Non hai ancora un piano
   attivo?» (snippet 21, un div senza classe prima del menu) diventava una colonna e schiacciava il
   contenuto a pochi pixel. Ora sta a tutta riga sopra menu e contenuto. */
body.woocommerce-account.logged-in .entry-content > .woocommerce { flex-wrap: wrap; }
body.woocommerce-account.logged-in .entry-content > .woocommerce > div:not([class]) { flex: 1 1 100%; margin: 0 0 24px !important; }
body.woocommerce-account.logged-in .entry-content > .woocommerce > #kalima-pagina.ks-benvenuto { flex: 1 1 100%; }
@media (max-width: 599.98px) {
	/* Sul telefono Astra somma tre rientri: ne togliamo uno, il contenuto respira */
	body.woocommerce-account.logged-in #primary .entry-content > .woocommerce { padding-left: 0 !important; padding-right: 0 !important; }
}
/* Subito dopo la registrazione il benvenuto basta: il riquadro dei piani torna dalla visita successiva */
body.kalima-benvenuto .entry-content > .woocommerce > div:not([class]) { display: none !important; } /* ha display:flex nello stile in linea */
/* Benvenuto in cima alla bacheca dopo la registrazione */
#kalima-pagina.ks-benvenuto { background: none; margin: 0 0 28px; }
#kalima-pagina .ks-benvenuto-box { background: var(--blue); color: var(--white); border-radius: var(--radius); padding: 28px 22px; box-shadow: 0 24px 60px rgba(27,75,138,.18); }
#kalima-pagina .ks-benvenuto-spunta { display: inline-grid; place-items: center; width: 52px; height: 52px; margin-bottom: 14px; border-radius: 50%; background: var(--gold); color: var(--dark); }
#kalima-pagina .ks-benvenuto-box h2 { font: 700 clamp(26px, 7vw, 36px)/1.15 var(--serif) !important; margin-bottom: 8px; color: var(--white) !important; }
#kalima-pagina .ks-benvenuto-box p { font-size: 17px; color: rgba(255,255,255,.92) !important; margin-bottom: 20px; }
#kalima-pagina .ks-benvenuto-link { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
#kalima-pagina .ks-benvenuto-link .ks-btn { min-height: 48px; padding: 12px 20px; font-size: 16px; }
@media (max-width: 599.98px) {
	#kalima-pagina .ks-benvenuto-link li { flex: 1 1 100%; }
	#kalima-pagina .ks-benvenuto-link .ks-btn { width: 100%; }
}
@media (min-width: 600px) {
	#kalima-pagina .ks-benvenuto-box { padding: 36px; }
}

/* Pagina non trovata (404.php): campo di ricerca */
#kalima-pagina .ks-cerca { max-width: 640px; }
#kalima-pagina .ks-cerca label { display: block; font: 700 22px/1.3 var(--serif); margin-bottom: 12px; }
#kalima-pagina .ks-cerca div { display: flex; flex-wrap: wrap; gap: 10px; }
#kalima-pagina .ks-cerca input[type="search"] { flex: 1 1 220px; min-height: 52px; border: 1.5px solid #D9D6CE; border-radius: 999px; padding: 12px 20px; font: 400 17px/1.4 var(--sans); background: var(--white); color: var(--dark); }

/* ============================================================
   Area account (plugin includes/area-account.php, modello woocommerce/myaccount/my-account.php)
   e carrello / checkout (includes/cassa.php, modelli woocommerce/cart/*.php e checkout/*.php).
   Prima il telefono; proprietà logiche, così con le lingue RTL si specchia da solo.
   ============================================================ */
/* A tutta larghezza come le altre pagine ks- (Astra mette rientri e un flex propri sulla pagina account) */
body:is(.kalima-area, .kalima-cassa) .entry-content > .woocommerce { display: block; max-width: none; width: 100%; margin: 0; padding: 0; }
body:is(.kalima-area, .kalima-cassa) #primary .entry-content,
body:is(.kalima-area, .kalima-cassa) #primary .entry-content > .woocommerce { padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important; }
body:is(.kalima-area, .kalima-cassa) .entry-content > .woocommerce > #kalima-pagina { max-width: none; width: 100%; margin: 0; }
body:is(.kalima-area, .kalima-cassa) .entry-content > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
/* Astra sulle pagine WooCommerce: margine su #primary (si vede lo sfondo azzurro del body) */
body:is(.kalima-area, .kalima-cassa) { background-color: var(--kh-bg); }
body:is(.kalima-area, .kalima-cassa) #primary { margin: 0 !important; }

/* ── Intestazione: saluto e sezioni ── */
#kalima-pagina .ks-area-testa { background: var(--blue); color: var(--white); padding: 28px 0 0; }
#kalima-pagina .ks-area-occhiello { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; }
#kalima-pagina .ks-area-ciao { font: 700 clamp(30px, 8vw, 48px)/1.1 var(--serif); color: var(--white); margin-bottom: 8px; overflow-wrap: anywhere; }
#kalima-pagina .ks-area-sotto { font-size: 17px; color: rgba(255,255,255,.88); max-width: 60ch; }
/* Sezioni: una riga che scorre di lato sul telefono (niente righe spezzate) */
#kalima-pagina .ks-area-nav { margin-top: 20px; }
#kalima-pagina .ks-area-nav ul { list-style: none; display: flex; gap: 8px; overflow-x: auto; padding: 0 0 18px; margin: 0; scrollbar-width: none; scroll-snap-type: x proximity; }
#kalima-pagina .ks-area-nav ul::-webkit-scrollbar { display: none; }
#kalima-pagina .ks-area-nav li { flex: none; scroll-snap-align: start; }
#kalima-pagina .ks-area-nav a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 16px; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.28); color: var(--white); font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; }
#kalima-pagina .ks-area-nav a:hover { background: rgba(255,255,255,.18); color: var(--white); }
#kalima-pagina .ks-area-nav .ks-aico { color: var(--gold); }
#kalima-pagina .ks-area-nav .ks-area-nav-esci { background: transparent; }

/* ── Corpo e riquadri ── */
#kalima-pagina .ks-area-corpo { padding-top: 24px; padding-bottom: 64px; display: grid; gap: 28px; }
#kalima-pagina .ks-area-sez { scroll-margin-top: 16px; min-width: 0; }
#kalima-pagina .ks-area-box { background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: var(--radius); padding: 22px 18px; min-width: 0; }
#kalima-pagina .ks-area-h2 { display: flex; align-items: center; gap: 12px; font: 700 clamp(24px, 6.4vw, 30px)/1.2 var(--serif); margin-bottom: 16px; }
#kalima-pagina .ks-area-h2-ico { flex: 0 0 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: rgba(27,75,138,.1); color: var(--blue); }
#kalima-pagina .ks-area-vuoto { font-size: 17px; color: var(--grey); margin-bottom: 14px; }
#kalima-pagina .ks-area-piccolo { font-size: 15px; color: var(--grey); }
#kalima-pagina .ks-area-etichetta { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--grey); margin-bottom: 4px; }
#kalima-pagina .ks-area-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#kalima-pagina .ks-area-altri { margin-top: 12px; }
#kalima-pagina .ks-area-azioni { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
#kalima-pagina .ks-area-azioni .ks-btn,
#kalima-pagina .ks-area-corso-btn { min-height: 48px; padding: 12px 20px; font-size: 16px; }
/* Icone: misura fissa (una regola esterna porta gli SVG a 48px) */
#kalima-pagina svg.ks-aico { flex: none; width: 18px; height: 18px; max-width: none; background: none; }
#kalima-pagina .ks-area-h2-ico svg.ks-aico { width: 22px; height: 22px; }
#kalima-pagina .ks-cassa-sicuro svg { width: 20px; height: 20px; }
#kalima-pagina[dir="rtl"] :is(.ks-aico-freccia, .ks-aico-indietro, .ks-aico-esci) { transform: scaleX(-1); }
@media (max-width: 599.98px) {
	#kalima-pagina .ks-area-azioni .ks-btn { flex: 1 1 100%; }
}

/* Benvenuto dopo la registrazione, dentro l'area */
#kalima-pagina .ks-area-benvenuto { margin: 0; }

/* ── I miei corsi: schede con copertina, avanzamento e «Continua» ── */
#kalima-pagina .ks-area-corsi { list-style: none; display: grid; gap: 16px; }
#kalima-pagina .ks-area-corso { display: flex; flex-direction: column; background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: var(--radius); overflow: hidden; }
#kalima-pagina .ks-area-corso-attivo { border-color: var(--gold); box-shadow: 0 12px 30px rgba(232,160,32,.16); }
#kalima-pagina .ks-area-corso-img { aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); }
#kalima-pagina .ks-area-corso-img img { width: 100%; height: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
#kalima-pagina .ks-area-corso-testo { display: flex; flex-direction: column; gap: 10px; padding: 18px; flex: 1; }
#kalima-pagina .ks-area-corso h3 { font: 700 21px/1.25 var(--serif); }
#kalima-pagina .ks-area-barra { height: 10px; border-radius: 999px; background: #E6E2D8; overflow: hidden; }
#kalima-pagina .ks-area-barra span { display: block; height: 100%; border-radius: inherit; background: var(--blue); }
#kalima-pagina .ks-area-corso-attivo .ks-area-barra span { background: var(--gold); }
#kalima-pagina .ks-area-percento { font-size: 15px; color: var(--grey); }
#kalima-pagina .ks-area-corso-btn { margin-top: auto; align-self: stretch; }

/* ── Live e pass ── */
#kalima-pagina .ks-area-due { display: grid; gap: 28px; }
#kalima-pagina .ks-area-live { background: var(--dark); color: var(--white); border-color: transparent; }
#kalima-pagina .ks-area-live .ks-area-h2-ico { background: rgba(255,255,255,.1); color: var(--gold); }
#kalima-pagina .ks-area-live :is(.ks-area-etichetta, .ks-area-piccolo) { color: rgba(255,255,255,.75); }
#kalima-pagina .ks-area-live-quando { font: 700 20px/1.35 var(--serif); }
#kalima-pagina .ks-area-crediti { display: flex; align-items: baseline; gap: 12px; margin: 18px 0 4px; }
#kalima-pagina .ks-area-numero { font: 700 56px/1 var(--serif); color: var(--gold); }
#kalima-pagina .ks-area-numero-testo { font-size: 17px; font-weight: 600; }
#kalima-pagina .ks-area-live .btn-line { color: var(--white); border-color: rgba(255,255,255,.7); }
#kalima-pagina .ks-area-live .btn-line:hover { background: var(--white); color: var(--dark); }
#kalima-pagina .ks-area-pass-attivo { border: 2px solid var(--gold); }
#kalima-pagina .ks-area-pass-nome { font: 700 24px/1.25 var(--serif); margin-bottom: 8px; }
#kalima-pagina .ks-area-dati { display: grid; gap: 14px; margin: 14px 0 0; }
#kalima-pagina .ks-area-dati dt { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--grey); }
#kalima-pagina .ks-area-dati dd { margin: 2px 0 0; font-size: 17px; overflow-wrap: anywhere; }

/* ── Ordini ── */
#kalima-pagina .ks-area-ordini { list-style: none; display: grid; }
#kalima-pagina .ks-area-ordine { padding: 14px 0; border-bottom: 1px solid rgba(26,26,46,.1); display: grid; gap: 6px; }
#kalima-pagina .ks-area-ordine:first-child { padding-top: 0; }
#kalima-pagina .ks-area-ordine:last-child { border-bottom: 0; padding-bottom: 0; }
#kalima-pagina .ks-area-ordine-testa { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
#kalima-pagina .ks-area-ordine-n { font-weight: 700; font-size: 17px; }
#kalima-pagina .ks-area-ordine-cosa { font-size: 16px; }
#kalima-pagina .ks-area-ordine-piede { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; color: var(--grey); font-size: 15px; }
#kalima-pagina .ks-area-ordine-piede strong { color: var(--dark); }
#kalima-pagina .ks-area-x { color: var(--grey); font-weight: 500; }
#kalima-pagina .ks-area-stato { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; background: #EDEBE5; color: #3D3D50; }
#kalima-pagina .ks-area-stato-completed { background: #E5F1EA; color: #12402A; }
#kalima-pagina .ks-area-stato-processing { background: #E4ECF6; color: #143A6B; }
#kalima-pagina :is(.ks-area-stato-pending, .ks-area-stato-on-hold) { background: #FFF4DE; color: #6B4600; }
#kalima-pagina :is(.ks-area-stato-failed, .ks-area-stato-cancelled) { background: #FBE7E7; color: #5E1515; }
#kalima-pagina .ks-area-ordine-link { display: inline-flex; flex-wrap: wrap; gap: 4px 16px; }
#kalima-pagina .ks-area-fattura { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 18px; }
#kalima-pagina .ks-area-live-piano { margin-top: 4px; color: var(--gold) !important; font-weight: 600; }
/* Checkout: casella «azienda», nota sotto il codice destinatario, dati della fattura nella ricevuta */
#kalima-pagina.ks-cassa .ks-campo-azienda label.checkbox { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; cursor: pointer; }
#kalima-pagina.ks-cassa .ks-campo-azienda input[type="checkbox"] { width: 22px; height: 22px; margin: 0; accent-color: var(--blue); }
#kalima-pagina.ks-cassa .form-row .description { display: block; margin-top: 6px; font-size: 14px; color: var(--grey); }
/* WooCommerce scrive «(facoltativo)» sui campi che diventano obbligatori solo in certi casi */
#kalima-pagina.ks-cassa .form-row .optional { display: none; }
#kalima-pagina .ks-asterisco { color: #A12A2A; text-decoration: none; border: 0; }
#kalima-pagina :is(#billing_codice_fiscale, #billing_partita_iva, #billing_codice_sdi) { text-transform: uppercase; }
#kalima-pagina[dir="rtl"] :is(#billing_codice_fiscale, #billing_partita_iva, #billing_codice_sdi, #billing_pec) { text-align: right; }
#kalima-pagina .ks-cassa-dati-fattura { margin: 0 0 16px; }
#kalima-pagina .ks-area-pagine { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 18px; }

/* ── Profilo ── */
#kalima-pagina .ks-area-esci { gap: 8px; }

/* ── Pagine interne (ordini, ricevuta, profilo) ── */
#kalima-pagina .ks-area-indietro a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--blue); font-weight: 700; text-decoration: none; }
#kalima-pagina .ks-area-box-interna .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; padding: 0; }
#kalima-pagina .ks-area-box-interna h2:not(.ks-area-h2) { font: 700 22px/1.25 var(--serif); margin: 24px 0 12px; }
#kalima-pagina .ks-area-box-interna p { margin: 0 0 12px; font-size: 16px; }
#kalima-pagina .ks-area-box-interna mark { background: none; color: inherit; font-weight: 700; }
#kalima-pagina .ks-area-box-interna table.shop_table { width: 100%; border-collapse: collapse; border: 0; margin: 0 0 16px; font-size: 16px; }
#kalima-pagina .ks-area-box-interna table.shop_table :is(th, td) { padding: 12px 8px; border: 0; border-bottom: 1px solid rgba(26,26,46,.1); text-align: start; vertical-align: top; background: none; }
#kalima-pagina .ks-area-box-interna table.shop_table tfoot tr:last-child :is(th, td) { font-size: 18px; border-bottom: 0; }
#kalima-pagina .ks-area-box-interna address { font-style: normal; padding: 14px 16px; border: 1px solid rgba(26,26,46,.1); border-radius: 14px; line-height: 1.6; }
#kalima-pagina .ks-area-box-interna .woocommerce-column__title { font: 700 20px/1.3 var(--serif); margin: 20px 0 10px; }
#kalima-pagina .ks-area-box-interna .order-again .button { border-radius: 999px; }
#kalima-pagina .ks-area-stampa { margin-bottom: 8px; }
#kalima-pagina .ks-area-form fieldset.ks-area-password { margin: 8px 0 18px; padding: 18px 0 0; border: 0; border-top: 1px solid rgba(26,26,46,.1); }
#kalima-pagina .ks-area-form legend { font: 700 20px/1.3 var(--serif); padding: 0; margin-bottom: 12px; }
#kalima-pagina .ks-area-form .form-row { margin: 0 0 18px; padding: 0; width: 100%; float: none; }
@media (min-width: 600px) {
	#kalima-pagina .ks-area-form-due { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
}
/* Avvisi di WooCommerce dentro l'area e nel carrello: come nell'accesso */
#kalima-pagina :is(.ks-area-avvisi, .ks-area-box-interna, .ks-cassa-sez) :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) {
	list-style: none; margin: 0 0 20px; padding: 14px 16px; border: 0; border-inline-start: 4px solid; border-radius: 12px;
	font-size: 16px; line-height: 1.5; text-align: start; box-shadow: none; background: #E5F1EA; border-color: var(--green); color: #12402A;
}
#kalima-pagina :is(.ks-area-avvisi, .ks-area-box-interna, .ks-cassa-sez) :is(.woocommerce-error, .woocommerce-message, .woocommerce-info)::before { content: none; display: none; }
#kalima-pagina :is(.ks-area-avvisi, .ks-area-box-interna, .ks-cassa-sez) .woocommerce-error { background: #FBE7E7; border-color: #A12A2A; color: #5E1515; }
#kalima-pagina :is(.ks-area-avvisi, .ks-area-box-interna, .ks-cassa-sez) .woocommerce-error li { margin: 0; padding: 0; }
#kalima-pagina :is(.ks-area-avvisi, .ks-cassa-sez) :is(.woocommerce-message, .woocommerce-info) a { color: inherit; font-weight: 700; }
#kalima-pagina .ks-area-avvisi:empty,
#kalima-pagina .ks-area-avvisi .woocommerce-notices-wrapper:empty { display: none; }
#kalima-pagina .ks-area-avvisi:not(:has(:not(.woocommerce-notices-wrapper:empty))) { display: none; }

@media (min-width: 640px) {
	#kalima-pagina .ks-area-corsi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	#kalima-pagina .ks-area-box { padding: 28px; }
	#kalima-pagina .ks-area-dati-riga { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	#kalima-pagina .ks-area-corso-btn { align-self: flex-start; }
}
@media (min-width: 900px) {
	#kalima-pagina .ks-area-testa { padding-top: 44px; }
	#kalima-pagina .ks-area-corpo { padding-top: 36px; gap: 36px; }
	#kalima-pagina .ks-area-due { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
	#kalima-pagina.ks-area-interna .ks-area-corpo { max-width: 860px; }
}
@media (min-width: 1100px) {
	#kalima-pagina .ks-area-corsi { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	#kalima-pagina .ks-area-dati-riga { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Ricevuta stampata: solo il riquadro */
@media print {
	body.kalima-area :is(.kh-header, .kh-footer, .ks-area-nav, .ks-area-indietro, .ks-area-stampa, .order-again) { display: none !important; }
	body.kalima-area #kalima-pagina .ks-area-testa { background: none; color: #000; padding: 0; }
	body.kalima-area #kalima-pagina .ks-area-ciao { color: #000; font-size: 24px; }
	body.kalima-area #kalima-pagina .ks-area-box { border: 0; padding: 0; }
}

/* ── Carrello e checkout ── */
#kalima-pagina .ks-cassa-sez { padding: 24px 0 64px; }
#kalima-pagina .ks-cassa-titolo { font: 700 clamp(30px, 8vw, 46px)/1.1 var(--serif); margin-bottom: 8px; }
#kalima-pagina .ks-cassa-sicuro { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--green); font-weight: 600; }
#kalima-pagina .ks-cassa-sicuro svg { flex: none; }
#kalima-pagina .ks-cassa-sicuro-testa { margin-bottom: 18px; }
#kalima-pagina .ks-cassa-box { background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: var(--radius); padding: 20px 18px; min-width: 0; }
#kalima-pagina .ks-cassa-h2 { display: flex; align-items: center; gap: 10px; font: 700 clamp(22px, 6vw, 26px)/1.2 var(--serif); margin-bottom: 12px; }
#kalima-pagina .ks-cassa-passo { flex: 0 0 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--blue); color: var(--white); font: 700 16px/1 var(--sans); }
#kalima-pagina .ks-cassa-nota { font-size: 15px; color: var(--grey); margin-bottom: 16px; }
#kalima-pagina .ks-cassa-griglia { display: flex; flex-direction: column; gap: 18px; margin-top: 18px; }
#kalima-pagina .ks-cassa-griglia-checkout { margin-top: 0; }
#kalima-pagina .ks-cassa-griglia-checkout > .ks-cassa-riepilogo { order: -1; }
#kalima-pagina .ks-cassa-griglia-checkout > .woocommerce-NoticeGroup { order: -2; }
#kalima-pagina .ks-cassa-accedi { margin: 0 0 12px; }
#kalima-pagina .ks-cassa-accedi a { display: inline-flex; align-items: center; min-height: 44px; color: var(--blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#kalima-pagina .ks-cassa-login, #kalima-pagina .ks-cassa-coupon-form { margin: 0 0 18px; }
#kalima-pagina .ks-cassa-coupon-form label { display: block; font-weight: 700; margin-bottom: 6px; }
#kalima-pagina .ks-cassa-coupon-riga { display: flex; flex-wrap: wrap; gap: 10px; }
#kalima-pagina .ks-cassa-coupon-riga input { flex: 1 1 180px; }

/* Prodotti: nome, prezzo, cosa include, durata */
#kalima-pagina .ks-cassa-prodotti { list-style: none; display: grid; }
#kalima-pagina .ks-cassa-prodotto { padding: 14px 0; border-bottom: 1px solid rgba(26,26,46,.1); display: grid; gap: 10px; }
#kalima-pagina .ks-cassa-prodotto:first-child { padding-top: 0; }
#kalima-pagina .ks-cassa-prodotto-testa { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
#kalima-pagina .ks-cassa-prodotto-nome { font: 700 21px/1.25 var(--serif); margin: 0; }
#kalima-pagina .ks-cassa-prezzo { font-weight: 700; font-size: 19px; color: var(--blue); white-space: nowrap; }
#kalima-pagina .ks-cassa-prezzo del { color: var(--grey); font-weight: 500; font-size: 15px; }
#kalima-pagina .ks-cassa-prezzo ins { text-decoration: none; }
#kalima-pagina .ks-cassa-dettagli { display: grid; gap: 8px; margin: 0; padding: 12px 14px; background: var(--bg); border-radius: 14px; }
#kalima-pagina .ks-cassa-dettagli dt { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--grey); }
#kalima-pagina .ks-cassa-dettagli dd { margin: 2px 0 0; font-size: 16px; line-height: 1.45; }
#kalima-pagina .ks-cassa-prodotto-piede { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
#kalima-pagina .ks-cassa-quantita { display: flex; align-items: center; gap: 10px; }
#kalima-pagina .ks-cassa-quantita label { font-weight: 600; font-size: 15px; }
#kalima-pagina .ks-cassa-quantita .quantity input.qty { width: 76px; min-height: 44px; border: 1.5px solid #8C8A84; border-radius: 12px; text-align: center; font: 600 17px var(--sans); }
#kalima-pagina .ks-cassa-quantita .quantity label.screen-reader-text { position: absolute !important; }
#kalima-pagina .product-remove .ks-cassa-rimuovi.remove { display: inline-flex; align-items: center; min-height: 44px; width: auto !important; height: auto !important; padding: 0 4px; border: 0 !important; font-size: 15px !important; font-weight: 700; color: #A12A2A !important; background: none !important; border-radius: 0; text-decoration: underline; text-underline-offset: 3px; line-height: 1.2; text-indent: 0; }
/* Il cerchio di Astra intorno alla «×» del link di rimozione */
#kalima-pagina .ks-cassa-rimuovi.remove::before, #kalima-pagina .ks-cassa-rimuovi.remove::after { content: none !important; display: none !important; }
#kalima-pagina .ks-cassa-azioni { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 16px; padding: 0; border: 0; }
#kalima-pagina .ks-cassa-coupon summary { min-height: 44px; display: inline-flex; align-items: center; color: var(--blue); font-weight: 700; cursor: pointer; }
#kalima-pagina .ks-cassa-coupon .coupon { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; margin-top: 8px; float: none; }
#kalima-pagina .ks-cassa-coupon .coupon label { flex: 1 1 100%; font-weight: 600; font-size: 15px; }
#kalima-pagina .ks-cassa-coupon .coupon input { flex: 1 1 160px; }
#kalima-pagina .ks-cassa-aggiorna[disabled] { opacity: .45; cursor: default; }

/* Totali */
#kalima-pagina .ks-cassa-totali { display: grid; gap: 8px; margin: 16px 0 0; }
#kalima-pagina .ks-cassa-totali > div { display: flex; justify-content: space-between; gap: 12px; font-size: 16px; }
#kalima-pagina .ks-cassa-totali dd { margin: 0; }
#kalima-pagina .ks-cassa-totali .order-total { padding-top: 12px; border-top: 2px solid var(--dark); font: 700 24px/1.2 var(--serif); }
#kalima-pagina .ks-cassa-totali .order-total small { display: block; font: 400 13px var(--sans); color: var(--grey); }
#kalima-pagina .wc-proceed-to-checkout { padding: 18px 0 0; }
#kalima-pagina .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; min-height: 56px; margin: 0 0 12px; padding: 14px 24px; border-radius: 999px; font-size: 17px; }
#kalima-pagina .ks-cassa-riepilogo .cart_totals { width: 100%; float: none; }
/* Astra dà al titolo del riepilogo fondo grigio, rientri e bordo */
#kalima-pagina .cart_totals h2.ks-cassa-h2 { background: none; padding: 0; border: 0; margin: 0 0 12px; }
/* Email e codici: sempre da sinistra a destra, allineati al lato della pagina */
#kalima-pagina :is(input[type="email"], #coupon_code) { direction: ltr; }
#kalima-pagina[dir="rtl"] :is(input[type="email"], #coupon_code) { text-align: right; }
#kalima-pagina .cart-collaterals.ks-cassa-riepilogo { padding: 0; background: none; border: 0; }
#kalima-pagina .ks-cassa-vuoto-titolo { font: 700 24px/1.25 var(--serif); margin-bottom: 6px; }

/* Campi del checkout: grandi, leggibili sul telefono (16px o più: iOS non ingrandisce la pagina) */
#kalima-pagina.ks-cassa .woocommerce-billing-fields__field-wrapper,
#kalima-pagina.ks-cassa .woocommerce-account-fields .create-account { display: grid; gap: 0 16px; }
#kalima-pagina.ks-cassa .form-row { float: none; width: auto; margin: 0 0 16px; padding: 0; }
#kalima-pagina.ks-cassa .form-row label:not(.checkbox) { display: block; font-weight: 700; font-size: 16px; line-height: 1.4; margin: 0 0 6px; color: var(--dark); }
#kalima-pagina.ks-cassa .form-row label .required { color: #A12A2A; text-decoration: none; }
#kalima-pagina.ks-cassa :is(.form-row input.input-text, .ks-campo input.input-text, .ks-cassa-coupon input.input-text, .ks-cassa-coupon-form input.input-text) {
	display: block; width: 100%; min-height: 54px; margin: 0; padding: 12px 16px; border: 1.5px solid #8C8A84 !important; border-radius: 12px !important;
	background: var(--white) !important; box-shadow: none; font: 400 17px/1.4 var(--sans); color: var(--dark);
}
#kalima-pagina.ks-cassa .form-row input.input-text:focus { border-color: var(--blue) !important; outline: 0; box-shadow: 0 0 0 3px rgba(27,75,138,.25); }
#kalima-pagina.ks-cassa .select2-container .select2-selection--single { height: 54px; border: 1.5px solid #8C8A84; border-radius: 12px; display: flex; align-items: center; }
#kalima-pagina.ks-cassa .select2-container .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding-inline: 16px 36px; font-size: 17px; color: var(--dark); }
#kalima-pagina.ks-cassa .select2-container .select2-selection--single .select2-selection__arrow { height: 52px; }
#kalima-pagina.ks-cassa .form-row.woocommerce-invalid input.input-text { border-color: #A12A2A !important; }
#kalima-pagina.ks-cassa .create-account label.checkbox { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; cursor: pointer; }
#kalima-pagina.ks-cassa .create-account input[type="checkbox"] { width: 22px; height: 22px; margin: 0; accent-color: var(--blue); }

/* Pagamento: metodi in evidenza, il pulsante grande */
#kalima-pagina.ks-cassa #payment { background: none; border-radius: 0; }
#kalima-pagina.ks-cassa #payment ul.payment_methods { list-style: none; display: grid; gap: 10px; margin: 0 0 18px; padding: 0; border: 0; }
#kalima-pagina.ks-cassa #payment ul.payment_methods li.wc_payment_method { margin: 0; padding: 14px 16px; border: 1.5px solid #D9D6CE; border-radius: 14px; background: var(--white); line-height: 1.4; }
#kalima-pagina.ks-cassa #payment ul.payment_methods li.wc_payment_method:has(> input:checked) { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); background: #F4F7FC; }
#kalima-pagina.ks-cassa #payment ul.payment_methods li > input[type="radio"] { width: 20px; height: 20px; margin: 0; margin-inline-end: 10px; vertical-align: middle; accent-color: var(--blue); }
#kalima-pagina.ks-cassa #payment ul.payment_methods li > label { display: inline; font-weight: 700; font-size: 17px; cursor: pointer; }
#kalima-pagina.ks-cassa #payment ul.payment_methods li img { display: inline-block; max-height: 24px; margin-inline-start: 6px; vertical-align: middle; }
#kalima-pagina.ks-cassa #payment div.payment_box { margin: 12px 0 0; padding: 14px; border-radius: 12px; background: var(--bg); color: var(--dark); font-size: 15px; }
#kalima-pagina.ks-cassa #payment div.payment_box::before { content: none; display: none; }
#kalima-pagina.ks-cassa #payment ul.payment_methods > li:not(.wc_payment_method) .woocommerce-info { margin: 0; }
#kalima-pagina.ks-cassa #payment .place-order { padding: 0; margin: 0; }
#kalima-pagina.ks-cassa .woocommerce-privacy-policy-text p { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: var(--grey); }
#kalima-pagina.ks-cassa .woocommerce-privacy-policy-text a { color: var(--blue); font-weight: 700; }
#kalima-pagina.ks-cassa #place_order {
	display: flex; align-items: center; justify-content: center; float: none; width: 100%; min-height: 58px; margin: 0; padding: 14px 24px !important; border: 0 !important; border-radius: 999px !important;
	background: var(--gold) !important; color: var(--dark) !important; font: 700 18px/1.2 var(--sans) !important; text-transform: none; letter-spacing: normal;
}
#kalima-pagina.ks-cassa #place_order:hover, #kalima-pagina.ks-cassa #place_order:focus-visible { background: #F2B23E !important; }
#kalima-pagina.ks-cassa .woocommerce-checkout-review-order-table { border: 0; margin: 0; }
/* Astra impagina riepilogo e titolo in una colonna mobile con bordo: qui stanno nel riquadro */
/* !important: la regola inline di Astra («form #order_review:not(…)») ha un selettore in più */
#kalima-pagina.ks-cassa :is(#order_review, #order_review_heading) { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
#kalima-pagina.ks-cassa #order_review_heading { margin-bottom: 12px !important; }
#kalima-pagina.ks-cassa #customer_details { float: none; width: auto; }
#kalima-pagina.ks-cassa .blockUI.blockOverlay { border-radius: var(--radius); }

@media (min-width: 600px) {
	#kalima-pagina.ks-cassa .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr 1fr; }
	#kalima-pagina.ks-cassa .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
	#kalima-pagina .ks-cassa-box { padding: 28px; }
}
@media (min-width: 900px) {
	#kalima-pagina .ks-cassa-sez { padding: 44px 0 88px; }
	#kalima-pagina .ks-cassa-griglia { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: start; gap: 24px; }
	#kalima-pagina .ks-cassa-griglia > * { grid-column: 1; }
	#kalima-pagina .ks-cassa-griglia > .ks-cassa-riepilogo { grid-column: 2; grid-row: 1 / span 20; position: sticky; top: 24px; }
}

/* ── Lezioni individuali nell'area (plugin includes/lezioni.php) ── */
#kalima-pagina .ks-area-lezioni-fatte { list-style: none; display: grid; gap: 6px; margin-top: 8px; font-size: 16px; }

/* ============================================================
   Test di livello (plugin includes/test-livello.php, js/kalima-test.js): pagina 132.
   Prima il telefono; domande e spiegazioni in italiano sempre da sinistra a destra (lang="it" dir="ltr").
   ============================================================ */
#kalima-pagina .ks-tl-sezione { padding: 24px 0 64px; }
#kalima-pagina .ks-tl { max-width: 720px; margin: 0 auto; scroll-margin-top: 16px; }
#kalima-pagina .ks-tl-box { background: var(--white); border: 1px solid rgba(26,26,46,.1); border-radius: var(--radius); padding: 24px 18px; box-shadow: 0 24px 60px rgba(27,75,138,.08); }
#kalima-pagina .ks-tl-h2 { font: 700 clamp(24px, 6.5vw, 32px)/1.2 var(--serif); margin-bottom: 8px; outline: none; }
#kalima-pagina .ks-tl-h3 { font: 700 20px/1.3 var(--serif); margin: 24px 0 10px; }
#kalima-pagina .ks-tl-nota { font-size: 17px; color: var(--grey); margin-bottom: 16px; }
#kalima-pagina .ks-tl-icona { margin-bottom: 12px; }
#kalima-pagina .ks-tl-inizio { text-align: center; }
#kalima-pagina .ks-tl-inizio .ks-tl-icona svg { margin: 0 auto; }
#kalima-pagina .ks-tl-scelta { display: grid; gap: 12px; margin-top: 20px; }
#kalima-pagina .ks-tl-grande {
	display: flex; align-items: center; justify-content: center; min-height: 64px; padding: 16px 24px; border-radius: 18px;
	font: 700 19px/1.25 var(--sans); text-decoration: none; cursor: pointer; border: 2px solid var(--blue);
}
#kalima-pagina .ks-tl-si { background: var(--blue); color: var(--white); }
#kalima-pagina .ks-tl-si:hover { background: var(--blue-dark); }
#kalima-pagina .ks-tl-si[disabled] { opacity: .5; cursor: default; }
#kalima-pagina .ks-tl-no { background: var(--white); color: var(--blue); }
#kalima-pagina .ks-tl-no:hover { background: #F4F7FC; color: var(--blue); }
#kalima-pagina .ks-tl-avanzamento { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; font-size: 15px; color: var(--grey); margin-bottom: 8px; }
#kalima-pagina .ks-tl-blocco { font-weight: 700; color: var(--blue); }
#kalima-pagina .ks-tl-barra { height: 8px; border-radius: 999px; background: #E6E2D8; overflow: hidden; margin-bottom: 18px; }
#kalima-pagina .ks-tl-barra span { display: block; height: 100%; background: var(--gold); border-radius: inherit; }
#kalima-pagina .ks-tl-istruzioni { font-size: 16px; color: var(--grey); background: var(--bg); border-radius: 14px; padding: 12px 14px; margin-bottom: 16px; }
#kalima-pagina .ks-tl-domanda { font: 600 20px/1.45 var(--sans); white-space: pre-line; margin-bottom: 16px; text-align: left; outline: none; }
#kalima-pagina .ks-tl-opzioni { display: grid; gap: 10px; }
#kalima-pagina .ks-tl-opzione { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 12px 16px; border: 1.5px solid #D9D6CE; border-radius: 14px; cursor: pointer; font-size: 18px; background: var(--white); }
#kalima-pagina .ks-tl-opzione:has(input:checked) { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); background: #F4F7FC; }
#kalima-pagina .ks-tl-opzione input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--blue); }
#kalima-pagina .ks-tl-opzione span { flex: 1; text-align: left; }
#kalima-pagina .ks-tl-avviso { min-height: 1.5em; margin: 8px 0 0; color: #A12A2A; font-weight: 600; }
#kalima-pagina .ks-tl-azioni { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
#kalima-pagina .ks-tl-azioni .ks-btn { min-height: 52px; flex: 1 1 100%; }
#kalima-pagina .ks-tl-azioni .ks-tl-nota { flex: 1 1 100%; margin: 0; }
#kalima-pagina .ks-tl-occhiello { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-ink); }
#kalima-pagina .ks-tl-livello { font: 700 clamp(40px, 12vw, 64px)/1.05 var(--serif); color: var(--blue); margin: 4px 0 4px; outline: none; }
#kalima-pagina .ks-tl-sai { font-size: 18px; text-align: left; }
#kalima-pagina .ks-tl-salvato { margin-top: 14px; font-weight: 600; color: var(--green); }
#kalima-pagina .ks-tl-salvato .ks-btn { width: 100%; min-height: 50px; }
#kalima-pagina .ks-tl-riepilogo { margin-top: 8px; }
#kalima-pagina .ks-tl-blocco-esito { border: 1px solid rgba(26,26,46,.12); border-radius: 14px; margin-bottom: 10px; overflow: hidden; }
#kalima-pagina .ks-tl-blocco-esito summary { cursor: pointer; padding: 14px 16px; font-size: 16px; min-height: 48px; }
#kalima-pagina .ks-tl-ok summary { background: #E5F1EA; color: #12402A; }
#kalima-pagina .ks-tl-ko summary { background: #FBE7E7; color: #5E1515; }
#kalima-pagina .ks-tl-lista { list-style: none; display: grid; gap: 0; }
#kalima-pagina .ks-tl-lista li { padding: 14px 16px; border-top: 1px solid rgba(26,26,46,.08); border-inline-start: 4px solid var(--green); }
#kalima-pagina .ks-tl-lista li.ks-tl-sbagliata { border-inline-start-color: #A12A2A; }
#kalima-pagina .ks-tl-q { font-weight: 600; white-space: pre-line; margin-bottom: 6px; text-align: left; }
#kalima-pagina .ks-tl-r { font-size: 15px; margin-bottom: 4px; }
#kalima-pagina .ks-tl-etichetta { color: var(--grey); }
#kalima-pagina .ks-tl-spiega { font-size: 15px; color: var(--grey); margin-top: 6px; text-align: left; }
#kalima-pagina .ks-tl-ricomincia { margin-top: 16px; text-align: center; }
#kalima-pagina .ks-tl-link { background: none; border: 0; color: var(--blue); font: 700 16px var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 44px; }
@media (min-width: 600px) {
	#kalima-pagina .ks-tl-box { padding: 36px; }
	#kalima-pagina .ks-tl-scelta { grid-template-columns: 1fr 1fr; }
	#kalima-pagina .ks-tl-azioni .ks-btn, #kalima-pagina .ks-tl-salvato .ks-btn { flex: 0 1 auto; width: auto; }
}
@media (min-width: 900px) {
	#kalima-pagina .ks-tl-sezione { padding: 44px 0 88px; }
}
