/* ==========================================================================
   ILS Milan — «Quaderno a quadretti»
   Il foglio a quadretti è la griglia; la penna rossa è l'unica voce di enfasi;
   il colore pieno vive solo sulle due copertine (Ragazzi arancio, Senior verde).
   ========================================================================== */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-latin.woff2") format("woff2");
	font-weight: 400 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-latin-ext.woff2") format("woff2");
	font-weight: 400 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Atkinson Hyperlegible Next";
	src: url("../fonts/atkinson-latin.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Atkinson Hyperlegible Next";
	src: url("../fonts/atkinson-latin-ext.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Atkinson Hyperlegible Next";
	src: url("../fonts/atkinson-italic-latin.woff2") format("woff2");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

:root, body.ils {
	/* Variabili del tema padre riportate alla palette del quaderno. */
	--brcolor: #14213D;
	--brhovercolor: #D7262E;
	--bdcolor: #C9D3DF;
	--bdhcolor: #14213D;
	--brrgb: 20, 33, 61;
	--linkcolor: #14213D;
	--pracolor: #3B4865;
	--titlecolor: #14213D;
	--bshadow: rgba(20, 33, 61, .08);
}
:root {
	--container-default-padding-top: 0px;
	--container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px;
	--container-default-padding-left: 0px;
	--paper: #FCFCFA;
	--sheet: #FFFFFF;
	--grid-line: #DEE5ED;
	--rule: #C9D3DF;
	--ink: #14213D;
	--ink-2: #3B4865;
	--ink-3: #5B6782;
	--red: #D7262E;
	--red-dark: #B01E25;
	--orange: #F26A1B;
	--orange-soft: #FDE5D6;
	--green: #0F6B4A;
	--green-soft: #DCEFE6;
	--q: 24px;
	--gutter: clamp(16px, 4vw, 48px);
	--w-max: 1280px;
	--w-text: 760px;
	--rad: 6px;
	--f-display: "Archivo", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
	--f-text: "Atkinson Hyperlegible Next", "Verdana", "Segoe UI", sans-serif;
	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--lift: 0 1px 0 rgba(20, 33, 61, .06), 0 18px 34px -22px rgba(20, 33, 61, .45);
	--lift-hi: 0 2px 0 rgba(20, 33, 61, .06), 0 28px 48px -26px rgba(20, 33, 61, .55);
	--header-h: 84px;
}

/* ---------- Base ---------------------------------------------------------- */

html { scroll-padding-top: calc(var(--header-h) + 16px); -webkit-text-size-adjust: 100%; }
body.ils {
	margin: 0;
	background-color: var(--paper);
	background-image:
		linear-gradient(var(--grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
	background-size: var(--q) var(--q);
	color: var(--ink);
	font-family: var(--f-text);
	font-size: 18px;
	line-height: 1.6;
	font-variant-numeric: lining-nums;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	caret-color: var(--red);
	accent-color: var(--ink);
	scrollbar-color: var(--ink-3) var(--paper);
}
body.ils ::selection { background: rgba(215, 38, 46, .2); color: var(--ink); }
body.ils .wrapper { overflow: clip; }

body.ils h1, body.ils h2, body.ils h3, body.ils h4, body.ils h5, body.ils h6 {
	font-family: var(--f-display);
	color: var(--ink);
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 1.08;
	margin: 0 0 .5em;
	text-wrap: balance;
}
body.ils p, body.ils li { text-wrap: pretty; }
body.ils p { margin: 0 0 1em; }
:where(body.ils) p { color: inherit; font-size: inherit; line-height: inherit; }
body.ils a { color: var(--ink); text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: .18em; transition: color .2s, text-decoration-color .2s; }
body.ils a:hover { color: var(--red-dark); }
body.ils img { max-width: 100%; height: auto; }
body.ils :focus-visible { outline: 3px solid var(--red); outline-offset: 3px; border-radius: 2px; }
body.ils .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.ils-ico { width: 1.15em; height: 1.15em; flex: none; vertical-align: -0.2em; }
.ils-tnum, .price, .ils-slot__time, .ils-listino__price { font-variant-numeric: tabular-nums; }

.ils-skip { position: absolute; left: 16px; top: -100px; z-index: 1000; background: var(--ink); color: #fff !important; padding: 12px 18px; border-radius: var(--rad); }
.ils-skip:focus { top: 12px; }

.ils-wrap, .e-con.ils-wrap { width: min(var(--w-max), 100% - 2 * var(--gutter)); margin-inline: auto; }
.ils-wrap--text { width: min(var(--w-text), 100% - 2 * var(--gutter)); }
.e-con.ils-wrap { --padding-left: 0px; --padding-right: 0px; --padding-top: 0px; --padding-bottom: 0px; max-width: none; }

/* ---------- Buttons ------------------------------------------------------- */

.ils-btn,
body.ils .woocommerce a.button, body.ils .woocommerce button.button, body.ils .woocommerce input.button,
body.ils .woocommerce #respond input#submit, body.ils a.button, body.ils button.button,
body.ils .wpcf7-submit, body.ils .ils-elbtn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 26px;
	border: 2px solid transparent; border-radius: var(--rad);
	font-family: var(--f-display); font-weight: 700; font-size: 18px; line-height: 1.1; letter-spacing: 0;
	text-decoration: none; text-transform: none; cursor: pointer; white-space: nowrap;
	transition: transform .18s var(--ease-out), background-color .2s, color .2s, box-shadow .2s, border-color .2s;
}
.ils-btn--pen, body.ils .wpcf7-submit, body.ils .woocommerce .checkout-button, body.ils .woocommerce #place_order,
body.ils .woocommerce button.single_add_to_cart_button, body.ils .ils-elbtn--pen .elementor-button {
	background: var(--red); color: #fff !important; box-shadow: 0 1px 0 var(--red-dark), 0 12px 20px -14px rgba(176, 30, 37, .9);
}
.ils-btn--pen:hover, body.ils .wpcf7-submit:hover, body.ils .woocommerce .checkout-button:hover, body.ils .woocommerce #place_order:hover,
body.ils .woocommerce button.single_add_to_cart_button:hover, body.ils .ils-elbtn--pen .elementor-button:hover {
	background: var(--red-dark); color: #fff !important; transform: translateY(-2px); box-shadow: 0 1px 0 #7d1419, 0 18px 26px -16px rgba(176, 30, 37, .9);
}
.ils-btn--ink, body.ils .woocommerce a.button, body.ils .woocommerce button.button, body.ils .woocommerce input.button,
body.ils a.button, body.ils button.button, body.ils .woocommerce #respond input#submit, body.ils .ils-elbtn--ink .elementor-button {
	background: var(--ink); color: #fff !important;
}
.ils-btn--ink:hover, body.ils .woocommerce a.button:hover, body.ils .woocommerce button.button:hover, body.ils a.button:hover,
body.ils button.button:hover, body.ils .ils-elbtn--ink .elementor-button:hover { background: #24345A; color: #fff !important; transform: translateY(-2px); }
.ils-btn--line, body.ils .ils-elbtn--line .elementor-button { background: transparent; color: var(--ink) !important; border-color: var(--ink); }
.ils-btn--line:hover, body.ils .ils-elbtn--line .elementor-button:hover { background: var(--ink); color: #fff !important; }
.ils-btn--paper, body.ils .ils-elbtn--paper .elementor-button { background: var(--sheet); color: var(--ink) !important; }
.ils-btn--paper:hover, body.ils .ils-elbtn--paper .elementor-button:hover { background: var(--ink); color: #fff !important; transform: translateY(-2px); }
.ils-btn:active, body.ils .ils-elbtn .elementor-button:active { transform: translateY(1px); }
body.ils .ils-elbtn .elementor-button-text { flex-grow: 0; }
.ils-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .2em; cursor: pointer; }

.ils-iconbtn { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: var(--rad); border: 2px solid transparent; background: transparent; color: var(--ink); cursor: pointer; position: relative; text-decoration: none; transition: background-color .2s, border-color .2s; }
.ils-iconbtn:hover { background: var(--paper); border-color: var(--rule); color: var(--ink); }
.ils-iconbtn .ils-ico { width: 24px; height: 24px; }

/* ---------- Top bar + header --------------------------------------------- */

.ils-topbar { background: var(--ink); color: #E8ECF4; font-size: 15px; }
.ils-topbar__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 40px; }
.ils-topbar__promo { margin: 0 !important; font-weight: 700; color: #fff; }
.ils-topbar__info { display: flex; gap: 22px; list-style: none; margin: 0; padding: 0; }
.ils-topbar__info li, .ils-topbar__info a { display: inline-flex; align-items: center; gap: 8px; color: #E8ECF4 !important; text-decoration: none; }
.ils-topbar__info a:hover { color: #fff !important; text-decoration: underline; text-decoration-color: #fff; }

.ils-header { position: sticky; top: 0; z-index: 90; background: var(--sheet); border-bottom: 2px solid var(--ink); transition: box-shadow .25s; }
.admin-bar .ils-header { top: 32px; }
.ils-header.is-scrolled { box-shadow: 0 14px 30px -24px rgba(20, 33, 61, .6); }
.ils-header__in { display: flex; align-items: center; gap: 28px; min-height: var(--header-h); transition: min-height .25s var(--ease-out); }
.ils-header.is-scrolled .ils-header__in { min-height: 68px; }
.ils-logo { flex: none; }
.ils-logo img, .ils-logo .custom-logo { display: block; width: auto; height: 46px; transition: height .25s var(--ease-out); }
.ils-header.is-scrolled .ils-logo img { height: 38px; }
.ils-logo__text { font-family: var(--f-display); font-weight: 900; font-size: 28px; text-decoration: none; }

.ils-nav { flex: 1; min-width: 0; }
.ils-menu { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.ils-menu > li { position: relative; }
.ils-menu > li > a { display: inline-flex; align-items: center; gap: 6px; padding: 12px 10px; white-space: nowrap; font-family: var(--f-display); font-weight: 650; font-size: 17px; color: var(--ink) !important; text-decoration: none; position: relative; }
.ils-menu > li > a::after {
	content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px; height: 6px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M1 4.2C20 1.6 46 1.2 99 3' fill='none' stroke='%23D7262E' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease-out);
}
.ils-menu > li > a:hover::after, .ils-menu > li.current-menu-item > a::after, .ils-menu > li.current-menu-ancestor > a::after, .ils-menu > li > a:focus-visible::after { transform: scaleX(1); }
.ils-menu > li.menu-item-has-children > a::before { content: ""; order: 2; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.ils-menu .sub-menu {
	position: absolute; top: calc(100% + 4px); left: 0; z-index: 5; min-width: 270px; list-style: none; margin: 0; padding: 10px;
	background: var(--sheet); border: 2px solid var(--ink); border-radius: var(--rad); box-shadow: var(--lift-hi);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .25s var(--ease-out), visibility .2s;
}
.ils-menu li:hover > .sub-menu, .ils-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ils-menu .sub-menu a { display: block; padding: 10px 12px; border-radius: 4px; color: var(--ink) !important; text-decoration: none; font-size: 17px; }
.ils-menu .sub-menu a:hover { background: var(--paper); text-decoration: underline; text-decoration-color: var(--red); }

.ils-header__tools { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.ils-header__phone { display: inline-flex; align-items: center; gap: 8px; margin-right: 8px; font-family: var(--f-display); font-weight: 700; font-size: 17px; text-decoration: none; white-space: nowrap; }
.ils-header__cta { margin-left: 8px; min-height: 48px; padding: 0 20px; }
.ils-cart__count { position: absolute; top: 4px; right: 2px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--red); color: #fff; font: 700 12px/20px var(--f-display); text-align: center; }
.ils-cart__count[data-count="0"] { display: none; }
.ils-burger { display: none; }

.ils-search { border-top: 1px solid var(--rule); background: var(--sheet); padding: 16px 0; }
.ils-search__form { display: flex; align-items: center; gap: 12px; }
.ils-search__form input[type="search"] { flex: 1; min-height: 52px; padding: 0 16px; border: 2px solid var(--ink); border-radius: var(--rad); font: inherit; background: var(--paper); }

.ils-drawer { position: fixed; inset: 0; z-index: 200; background: rgba(20, 33, 61, .45); }
.ils-drawer__panel { position: absolute; inset: 0 0 0 auto; width: min(420px, 100%); background: var(--paper); padding: 24px var(--gutter) 40px; overflow-y: auto; display: flex; flex-direction: column; gap: 24px; animation: ils-drawer-in .35s var(--ease-out); }
@keyframes ils-drawer-in { from { transform: translateX(40px); opacity: 0; } }
.ils-drawer__close { align-self: flex-end; border-color: var(--ink); }
.ils-drawer__menu { list-style: none; margin: 0; padding: 0; }
.ils-drawer__menu a { display: block; padding: 14px 0; border-bottom: 1px solid var(--rule); font-family: var(--f-display); font-weight: 700; font-size: 22px; text-decoration: none; }
.ils-drawer__menu .sub-menu { list-style: none; padding: 0 0 8px 16px; margin: 0; }
.ils-drawer__menu .sub-menu a { font-size: 18px; font-weight: 600; padding: 10px 0; }
.ils-drawer__contact { display: grid; gap: 12px; }
.ils-drawer__line { display: flex; align-items: center; gap: 10px; margin: 0 !important; text-decoration: none; }

/* ---------- Page header + crumbs ----------------------------------------- */

.ils-pagehead { position: relative; padding: calc(var(--q) * 3) 0 calc(var(--q) * 2.5); border-bottom: 2px solid var(--ink); }
.ils-main { position: relative; isolation: isolate; display: block; }
.ils-main::before { content: ""; position: absolute; top: 0; bottom: 0; left: max(10px, calc((100% - var(--w-max)) / 2 - 22px)); width: 2px; background: var(--red); opacity: .5; z-index: -1; pointer-events: none; }
.ils-pagehead--crumbs { padding: calc(var(--q) * 1.25) 0; border-bottom: 0; }
.ils-pagehead__title { font-size: clamp(2.6rem, 5.6vw, 4.75rem) !important; font-weight: 900 !important; font-stretch: 86%; letter-spacing: -0.025em !important; line-height: .98 !important; max-width: 18ch; margin: .25em 0 0 !important; }
.ils-pagehead__lead { max-width: 62ch; margin-top: 18px; font-size: 20px; color: var(--ink-2); }
.ils-pagehead__lead p:last-child { margin-bottom: 0; }
.ils-crumbs p { margin: 0 !important; font-size: 15px; color: var(--ink-3); display: flex; flex-wrap: wrap; gap: 4px 0; }
.ils-crumbs a { color: var(--ink-2) !important; text-decoration-color: var(--rule); }
.ils-crumbs__sep { margin: 0 10px; color: var(--red); }

/* ---------- Pen marks (drawn by JS) -------------------------------------- */

.ils-pen, .ils-circle { position: relative; display: inline-block; white-space: nowrap; }
.ils-pen > svg, .ils-circle > svg, .ils-mark { position: absolute; pointer-events: none; overflow: visible; }
.ils-pen > svg { left: -2%; width: 104%; bottom: -0.16em; height: .32em; }
.ils-circle > svg { left: -14%; top: -18%; width: 128%; height: 136%; }
.ils-pen path, .ils-circle path, .ils-mark path { fill: none; stroke: var(--red); stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.js .ils-pen:not(.is-drawn) path, .js .ils-circle:not(.is-drawn) path, .js .ils-mark:not(.is-drawn) path { stroke-dashoffset: 1; opacity: 0; }
.js .is-drawn > svg path, .js .ils-mark.is-drawn path { opacity: 1; }
.ils-pen path { stroke-width: 5; }
.ils-circle path { stroke-width: 4; }
.js .is-drawn > svg path, .js .ils-mark.is-drawn path { stroke-dashoffset: 1; animation: ils-draw var(--draw, .8s) var(--ease-out) forwards; animation-delay: var(--draw-delay, 0s); }
@keyframes ils-draw { to { stroke-dashoffset: 0; } }

/* ---------- Sections ------------------------------------------------------ */

.e-con.ils-sec { --padding-top: calc(var(--q) * 4); --padding-bottom: calc(var(--q) * 4); --padding-left: 0px; --padding-right: 0px; --gap: calc(var(--q) * 1.5); position: relative; }
@media (min-width: 1024px) { .e-con.ils-sec { --padding-top: calc(var(--q) * 5.5); --padding-bottom: calc(var(--q) * 5.5); } }
.e-con.ils-sec--plain { background: transparent; }
.e-con.ils-sec--sheet { background: transparent; border-top: 2px solid var(--ink); }
.e-con.ils-sec--ink { background: var(--ink); color: #E8ECF4; }
.e-con.ils-sec--tight { --padding-top: calc(var(--q) * 2); --padding-bottom: calc(var(--q) * 2); }
body.ils .ils-h2 .elementor-heading-title, body.ils h2.ils-h2 { font-size: clamp(2.1rem, 4.3vw, 3.5rem); font-weight: 850; font-stretch: 88%; line-height: 1.02; letter-spacing: -0.022em; margin: 0; max-width: 20ch; }
body.ils .ils-h3 .elementor-heading-title { font-size: clamp(1.4rem, 2vw, 1.75rem); font-weight: 750; line-height: 1.15; margin: 0; }
body.ils .ils-lead, body.ils .ils-lead p { font-size: clamp(19px, 1.6vw, 21px); line-height: 1.55; color: var(--ink-2); max-width: 60ch; }
.ils-sec--ink .ils-h2 .elementor-heading-title, .ils-sec--ink h2, .ils-sec--ink h3 { color: #fff !important; }
.ils-sec--ink .ils-lead, .ils-sec--ink .ils-lead p { color: #C9D2E3; }
.ils-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 48px; }
.e-con.ils-head { --flex-direction: row; --align-items: flex-end; --justify-content: space-between; --gap: 16px 48px; flex-wrap: wrap; }

body.ils .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- HERO ---------------------------------------------------------- */

.e-con.ils-hero { --padding-top: calc(var(--q) * 2.5); --padding-bottom: calc(var(--q) * 2); position: relative; overflow: clip; }
.e-con.ils-hero__grid { --display: grid; display: grid !important; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); grid-template-areas: "copy books" "quick quick"; column-gap: calc(var(--q) * 2); row-gap: calc(var(--q) * 2); align-items: center; }
.ils-hero__copy { grid-area: copy; }
.e-con.ils-hero__copy { --gap: 20px; }
.ils-hero__books { grid-area: books; }
.ils-hero__quickwrap { grid-area: quick; }
body.ils .ils-hero__title .elementor-heading-title, body.ils h1.ils-hero__title {
	font-size: clamp(3.1rem, 7.2vw, 6rem); font-weight: 900; font-stretch: 84%; line-height: .94; letter-spacing: -0.035em; margin: 0;
}
.ils-hero__title .ils-l2 { display: block; font-weight: 500; font-stretch: 100%; letter-spacing: -0.03em; color: var(--ink-2); }
.ils-hero__title .ils-l1 { display: block; }
body.ils .ils-hero__lead p { font-size: clamp(19px, 1.7vw, 22px); line-height: 1.5; max-width: 36ch; color: var(--ink-2); }

.ils-books { position: relative; height: clamp(380px, 38vw, 520px); }
.ils-book {
	position: absolute; width: 56%; aspect-ratio: 3 / 4; border-radius: 4px 14px 14px 4px; padding: 7% 8% 7% 12%;
	box-shadow: 0 2px 0 rgba(0, 0, 0, .08), 0 30px 50px -28px rgba(20, 33, 61, .7);
	display: flex; flex-direction: column; gap: 6%;
	transition: transform .6s var(--ease-out);
}
.ils-book::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7%; border-radius: 4px 0 0 4px; background: rgba(0, 0, 0, .14); }
.ils-book::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(120deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 38%); pointer-events: none; }
.ils-book--ragazzi { left: 0; top: 4%; background: var(--orange); color: var(--ink); transform: rotate(-5deg); z-index: 1; }
.ils-book--senior { right: 0; top: 14%; background: var(--green); color: #fff; transform: rotate(4deg); z-index: 2; }
.ils-book:hover { transform: rotate(0deg) translateY(-6px); z-index: 3; }
.ils-book__name { font: 900 clamp(1.6rem, 2.6vw, 2.3rem)/1 var(--f-display); font-stretch: 90%; margin: 0 !important; color: inherit !important; letter-spacing: -0.02em; }
.ils-book__print { margin: 0; background: #fff; padding: 6px; transform: rotate(1.5deg); box-shadow: 0 10px 18px -12px rgba(0, 0, 0, .6); }
.ils-book--senior .ils-book__print { transform: rotate(-1.5deg); }
.ils-book__print img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ils-book__label { margin-top: auto; background: #fff; color: var(--ink); border: 2px solid var(--ink); border-radius: 3px; padding: 8px 12px; font-size: 15px; line-height: 1.35; }
.ils-book__label dl { margin: 0; display: grid; gap: 2px; }
.ils-book__label dt { font-size: 12px; font-weight: 400; color: var(--ink-3); letter-spacing: .02em; }
.ils-book__label dd { margin: 0 0 4px; font-family: var(--f-display); font-weight: 750; font-size: 17px; border-bottom: 1px solid var(--rule); display: flex; justify-content: space-between; gap: 8px; }
.ils-book__label dd:last-child { margin-bottom: 0; }
.ils-book__label .ils-mark { position: relative; width: 22px; height: 18px; flex: none; }
.ils-book__label .ils-mark path { stroke-width: 3; }

.ils-quick-panel { background: var(--sheet); border: 2px solid var(--ink); border-radius: 8px; box-shadow: var(--lift-hi); padding: 20px 24px; }
.ils-quick { display: grid; grid-template-columns: auto minmax(200px, 1fr) auto; grid-template-areas: "who field send" "ok ok ok"; gap: 14px 20px; align-items: end; }
.ils-quick__who { grid-area: who; border: 0; margin: 0; padding: 0; min-width: 0; }
.ils-quick__who legend { font-family: var(--f-display); font-weight: 800; font-size: 20px; margin-bottom: 8px; float: none; width: auto; padding: 0; line-height: 1.2; }
.ils-quick__field { grid-area: field; margin: 0 !important; }
.ils-quick__send { grid-area: send; margin: 0 !important; }
.ils-quick__ok { grid-area: ok; margin: 0 !important; font-size: 15px; color: var(--ink-2); }
.ils-quick .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.ils-quick .wpcf7-list-item { margin: 0; }
.ils-quick__who .wpcf7-list-item label { display: inline-flex; align-items: center; min-height: 48px; padding: 0 16px; border: 2px solid var(--ink); border-radius: 999px; cursor: pointer; font-weight: 700; font-size: 16px; transition: background .2s, color .2s; }
.ils-quick__who .wpcf7-list-item input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ils-quick__who .wpcf7-list-item label:has(input:checked) { background: var(--ink); color: #fff; }
.ils-quick__who .wpcf7-list-item label:has(input:focus-visible) { outline: 3px solid var(--red); outline-offset: 3px; }
.ils-hero__micro { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 16px 0 0 !important; padding: 0; list-style: none; font-size: 16px; color: var(--ink-2); }
.ils-hero__micro li { display: inline-flex; align-items: center; gap: 8px; }
.ils-hero__micro .ils-ico { color: var(--red); stroke-width: 2.5; }

/* ---------- Forms (CF7 + Woo) -------------------------------------------- */

body.ils label { font-weight: 700; font-size: 16px; margin-bottom: 6px; display: inline-block; color: var(--ink); }
body.ils input[type="text"], body.ils input[type="email"], body.ils input[type="tel"], body.ils input[type="search"], body.ils input[type="number"],
body.ils input[type="password"], body.ils textarea, body.ils select, body.ils .select2-container .select2-selection--single {
	width: 100%; min-height: 52px; padding: 12px 14px; border: 2px solid var(--ink); border-radius: var(--rad);
	background: var(--sheet); color: var(--ink); font: 18px/1.4 var(--f-text); box-shadow: none; transition: border-color .2s, box-shadow .2s;
}
body.ils textarea { min-height: 140px; }
body.ils input::placeholder, body.ils textarea::placeholder { color: #6B7690; opacity: 1; }
body.ils input:focus, body.ils textarea:focus, body.ils select:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 4px rgba(215, 38, 46, .25); }
body.ils .wpcf7-form-control-wrap { display: block; }
body.ils .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
body.ils .wpcf7-acceptance label, body.ils .woocommerce-form__label-for-checkbox { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 15px; line-height: 1.45; }
body.ils input[type="checkbox"], body.ils input[type="radio"] { width: 22px; height: 22px; flex: none; margin-top: 1px; }
body.ils .wpcf7-not-valid-tip { color: var(--red-dark); font-size: 15px; font-weight: 700; margin-top: 6px; }
body.ils .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border: 2px solid var(--ink); border-radius: var(--rad); background: var(--sheet); font-size: 16px; }
body.ils .wpcf7 form.sent .wpcf7-response-output { border-color: var(--green); background: var(--green-soft); }
body.ils .wpcf7 form.invalid .wpcf7-response-output, body.ils .wpcf7 form.failed .wpcf7-response-output { border-color: var(--red); background: #FDECEC; }
body.ils .wpcf7-spinner { margin: 0 0 0 12px; }

.ils-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.ils-form p { margin: 0 !important; }
.ils-form__full { grid-column: 1 / -1; }
.ils-form__send { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.ils-form__hint { font-size: 15px; color: var(--ink-3); }

.ils-news__row { display: flex; gap: 8px; margin: 0 0 10px !important; }
.ils-news__row .wpcf7-form-control-wrap { flex: 1; }
.ils-news__row input[type="email"] { background: #1D2C4F; border-color: #4A5B80; color: #fff; }
.ils-news__row input::placeholder { color: #A9B4CB !important; }
.ils-news .ils-btn--ink, .ils-news .wpcf7-submit { background: var(--sheet) !important; color: var(--ink) !important; box-shadow: none; padding: 0 18px; }
.ils-news__ok { font-size: 14px; color: #C9D2E3; margin: 0 !important; }
.ils-news__ok a { color: #fff !important; }

/* ---------- Trust line ---------------------------------------------------- */

body.ils .ils-line p { font-family: var(--f-display); font-weight: 600; font-size: clamp(1.55rem, 3vw, 2.6rem); line-height: 1.32; letter-spacing: -0.015em; max-width: 34ch; color: var(--ink); }
.ils-line .ils-num { font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---------- Two paths ----------------------------------------------------- */

.e-con.ils-paths { --display: grid; display: grid !important; grid-template-columns: 1fr 1fr; --padding-top: 0px; --padding-bottom: 0px; --gap: 0px; }
.e-con.ils-path { --padding-top: calc(var(--q) * 4); --padding-bottom: calc(var(--q) * 4); --padding-left: max(var(--gutter), calc((100vw - var(--w-max)) / 2)); --padding-right: calc(var(--q) * 2.5); --gap: 22px; position: relative; }
.e-con.ils-path--senior { --padding-left: calc(var(--q) * 2.5); --padding-right: max(var(--gutter), calc((100vw - var(--w-max)) / 2)); }
.ils-path--ragazzi { background: var(--orange); color: var(--ink); }
.ils-path--senior { background: var(--green); color: #fff; }
.ils-path--senior h2, .ils-path--senior h3, .ils-path--senior .elementor-heading-title { color: #fff !important; }
.ils-path--ragazzi .elementor-heading-title { color: var(--ink) !important; }
.ils-path__print { margin: 0; background: #fff; padding: 8px; box-shadow: 0 22px 36px -24px rgba(0, 0, 0, .65); transform: rotate(-1.6deg); transition: transform .5s var(--ease-out); max-width: 520px; }
.ils-path--senior .ils-path__print { transform: rotate(1.4deg); }
.ils-path:hover .ils-path__print { transform: rotate(0); }
.ils-path__print img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ils-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 19px; }
.ils-ticks li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start; }
.ils-ticks li::before { content: ""; width: 24px; height: 24px; margin-top: 2px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.ils-path--senior .ils-btn--line, body.ils .ils-path--senior .ils-elbtn--line .elementor-button { color: #fff !important; border-color: #fff; }
.ils-path--senior .ils-btn--line:hover, body.ils .ils-path--senior .ils-elbtn--line .elementor-button:hover { background: #fff; color: var(--green) !important; }
.e-con.ils-btnrow { --flex-direction: row; --gap: 12px; flex-wrap: wrap; --align-items: center; }
.e-con.ils-btnrow > .elementor-widget { width: auto; }

/* ---------- Course cards -------------------------------------------------- */

.ils-filter { display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 6px; border: 2px solid var(--ink); border-radius: 999px; background: var(--sheet); margin-bottom: calc(var(--q) * 1.5); }
.ils-filter__btn { min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; font: 700 16px var(--f-display); color: var(--ink); cursor: pointer; transition: background .2s, color .2s; }
.ils-filter__btn[aria-pressed="true"] { background: var(--ink); color: #fff; }
.ils-filter__btn:hover:not([aria-pressed="true"]) { background: var(--paper); }

body.ils ul.products.ils-cards, body.ils .woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; margin: 0 !important; padding: 0; list-style: none; }
body.ils ul.products::before, body.ils ul.products::after { display: none !important; }
body.ils ul.products li.ils-cardcol { float: none !important; width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; padding: 0 !important; display: flex; }
body.ils ul.products li.ils-cardcol.is-hidden { display: none; }
.ils-card { position: relative; display: flex; flex-direction: column; width: 100%; background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--rad); box-shadow: 0 1px 0 rgba(20, 33, 61, .04); transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out); }
.ils-card:hover { transform: translateY(-4px); box-shadow: var(--lift-hi); }
.ils-card__media { position: relative; display: block; margin: 14px 14px 0; padding: 7px; background: #fff; box-shadow: 0 10px 20px -14px rgba(20, 33, 61, .55); transform: rotate(-1deg); transition: transform .45s var(--ease-out); }
.ils-cardcol:nth-child(even) .ils-card__media { transform: rotate(.9deg); }
.ils-card:hover .ils-card__media { transform: rotate(0); }
.ils-card__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ils-card__media .onsale, body.ils .woocommerce span.onsale {
	position: absolute; top: auto; bottom: -10px; left: 14px; right: auto; min-width: 0; min-height: 0; margin: 0; padding: 4px 10px;
	display: none;
}
.ils-card__body { display: flex; flex-direction: column; gap: 12px; flex: 1; padding: 22px 20px 20px; }
.ils-card__title { font-size: 1.32rem !important; font-weight: 800 !important; line-height: 1.15 !important; margin: 0 !important; }
.ils-card__title a { text-decoration: none; color: var(--ink) !important; }
.ils-card__title a:hover { text-decoration: underline; text-decoration-color: var(--red); }
.ils-card__age { order: 2; margin: 0 !important; font-size: 16px; color: var(--ink-2); }
.ils-card__title { order: 1; }
.ils-card__facts { order: 3; list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 16px; color: var(--ink-2); }
.ils-card__facts li { display: flex; align-items: center; gap: 8px; }
.ils-card .ils-seats { order: 4; }
.ils-card__foot { order: 5; margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--rule); display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ils-card__price .price { display: block; font: 800 1.45rem/1.1 var(--f-display) !important; color: var(--ink) !important; margin: 0 !important; }
.ils-card__price .price del { font-size: 1rem; font-weight: 600; color: var(--ink-3); opacity: 1; margin-right: 6px; }
.ils-card__price .price ins { text-decoration: none; background: none; }
.ils-card__price .woocommerce-price-suffix { display: block; font: 400 13px var(--f-text); color: var(--ink-3); margin-top: 3px; }
.ils-card__price .star-rating { margin: 6px 0 0 !important; font-size: 14px; }
.ils-card__foot .button { min-height: 48px !important; padding: 0 20px !important; font-size: 17px !important; }
.ils-card__foot .added_to_cart { display: inline-block; margin-left: 8px; font-size: 15px; font-weight: 700; }

.ils-seats { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ils-seats__cells { display: inline-grid; grid-auto-flow: column; gap: 3px; }
.ils-seats__cells i { display: block; width: 14px; height: 14px; border: 1.5px solid var(--ink); border-radius: 2px; background: var(--sheet); }
.ils-seats__cells i.is-taken { background: var(--ink); }
.js .ils-seats[data-ils-reveal] .ils-seats__cells i.is-taken { transform: scale(.4); background: var(--sheet); transition: transform .45s var(--ease-out), background-color .2s; transition-delay: calc(var(--n) * 45ms); }
.js .ils-seats.is-in .ils-seats__cells i.is-taken { transform: none; background: var(--ink); }
.ils-seats__label { position: relative; font-size: 15px; font-weight: 700; color: var(--ink); }
.ils-seats--last .ils-seats__label { color: var(--ink); }
.ils-seats--full .ils-seats__label { color: var(--ink-3); }
.ils-seats .ils-mark { left: -8px; top: -8px; width: calc(100% + 16px); height: calc(100% + 16px); }
.ils-seats--open .ils-mark { left: auto; right: -30px; top: -4px; width: 22px; height: 22px; }
.ils-seats .ils-mark path { stroke-width: 2.5; }

body.ils .star-rating { position: relative; display: inline-block; width: 5.5em; height: 1.1em; font-size: 15px; overflow: hidden; color: transparent !important; line-height: 1; float: none; letter-spacing: 0; }
body.ils .star-rating::before, body.ils .star-rating span::before {
	content: ""; position: absolute; inset: 0 auto 0 0; width: 5.5em; height: 1.1em;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 20'%3E%3Cpath d='m10 1.5 2.6 5.3 5.9.9-4.3 4.1 1 5.8L10 14.9l-5.2 2.7 1-5.8L1.5 7.7l5.9-.9z'/%3E%3C/svg%3E") 0 0 / 1.1em 1.1em repeat-x;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 20'%3E%3Cpath d='m10 1.5 2.6 5.3 5.9.9-4.3 4.1 1 5.8L10 14.9l-5.2 2.7 1-5.8L1.5 7.7l5.9-.9z'/%3E%3C/svg%3E") 0 0 / 1.1em 1.1em repeat-x;
	background: var(--rule);
}
body.ils .star-rating span { position: absolute; inset: 0 auto 0 0; overflow: hidden; padding: 0 !important; color: transparent !important; text-indent: -999em; }
body.ils .star-rating span::before { background: var(--orange); }
body.ils .star-rating strong { font-size: 0; }

/* ---------- Come funziona (sticky) --------------------------------------- */

.e-con.ils-how { --display: grid; display: grid !important; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); column-gap: calc(var(--q) * 3); align-items: start; }
.e-con.ils-how__side { position: sticky; top: calc(var(--header-h) + 32px); --gap: 22px; }
.ils-how__print { margin: 0; background: #fff; padding: 8px; transform: rotate(-1.2deg); box-shadow: var(--lift); max-width: 420px; }
.ils-how__print img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ils-steps { list-style: none; margin: 0; padding: 0 0 0 0; position: relative; counter-reset: step; }
.ils-steps::before { content: ""; position: absolute; left: 27px; top: 28px; bottom: 28px; width: 2px; background: var(--rule); }
.ils-steps__rail { position: absolute; left: 27px; top: 28px; bottom: 28px; width: 2px; background: var(--red); transform-origin: top; transform: scaleY(var(--p, 0)); }
.ils-step { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 24px; padding: calc(var(--q) * 1.5) 0; min-height: 34vh; align-content: center; }
.ils-step__num { position: relative; z-index: 1; display: grid; place-items: center; width: 56px; height: 56px; background: var(--sheet); border: 2px solid var(--ink); border-radius: 4px; font: 900 22px var(--f-display); transition: background .3s, color .3s; }
.ils-step.is-active .ils-step__num { background: var(--ink); color: #fff; }
.ils-step .ils-mark { left: 34px; top: -14px; width: 40px; height: 34px; }
.ils-step .ils-mark path { stroke-width: 4; }
.ils-step h3 { font-size: clamp(1.45rem, 2.2vw, 1.9rem) !important; margin: 6px 0 8px !important; }
.ils-step p { color: var(--ink-2); max-width: 46ch; margin: 0 !important; }

/* ---------- Orario -------------------------------------------------------- */

.ils-orario__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 16px; color: var(--ink-2); margin: 0 0 18px !important; }
.ils-key { display: inline-block; width: 14px; height: 14px; border-radius: 2px; margin-left: 12px; }
.ils-key:first-child { margin-left: 0; }
.ils-key--ragazzi, .ils-slot--ragazzi::before { background: var(--orange); }
.ils-key--senior, .ils-slot--senior::before { background: var(--green); }
.ils-key--tutti, .ils-slot--tutti::before { background: var(--ink); }
.ils-orario__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 2px solid var(--ink); border-radius: var(--rad); background: var(--sheet); overflow: hidden; }
.ils-orario__day { border-right: 1px solid var(--rule); min-width: 0; }
.ils-orario__day:last-child { border-right: 0; }
.ils-orario__dayname { margin: 0 !important; padding: 14px 14px 12px; border-bottom: 2px solid var(--ink); font-size: 1.15rem !important; font-weight: 800 !important; background: var(--paper); }
.ils-orario__short { display: none; }
.ils-orario__day ul { list-style: none; margin: 0; padding: 8px; display: grid; gap: 8px; }
.ils-orario__none { margin: 0 !important; padding: 14px; font-size: 15px; color: var(--ink-3); }
.ils-slot { position: relative; display: grid; gap: 2px; padding: 10px 10px 10px 26px; border: 1px solid var(--rule); border-radius: 4px; background: #fff; transition: transform .3s var(--ease-out), box-shadow .3s; }
.ils-slot::before { content: ""; position: absolute; left: 9px; top: 15px; width: 10px; height: 10px; border-radius: 2px; }
.ils-slot:hover { transform: translateY(-2px); box-shadow: var(--lift); }
.ils-slot__time { font: 800 15px var(--f-display); color: var(--ink); }
.ils-slot__title { font-weight: 700; font-size: 16px; line-height: 1.25; text-decoration: none; color: var(--ink) !important; }
.ils-slot__title:hover { text-decoration: underline; }
.ils-slot__meta { font-size: 14px; color: var(--ink-3); }
.js .ils-orario[data-ils-reveal] .ils-orario__day { opacity: .001; transform: translateY(14px); transition: opacity .5s var(--ease-out), transform .6s var(--ease-out); transition-delay: calc(var(--i) * 70ms); }
.js .ils-orario.is-in .ils-orario__day { opacity: 1; transform: none; }

/* ---------- Listino ------------------------------------------------------- */

.ils-listino { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.ils-listino__row { border-bottom: 1px solid var(--rule); padding: 16px 0; }
.ils-listino__row a { display: flex; align-items: baseline; gap: 12px; text-decoration: none; color: var(--ink) !important; }
.ils-listino__name { font: 800 clamp(1.25rem, 2vw, 1.6rem) var(--f-display); }
.ils-listino__dots { flex: 1; border-bottom: 2px dotted var(--ink-3); transform: translateY(-6px); min-width: 24px; }
.ils-listino__price { font: 800 clamp(1.2rem, 1.8vw, 1.5rem) var(--f-display); white-space: nowrap; }
.ils-listino__price .woocommerce-Price-amount { color: var(--ink); }
.ils-listino__row a:hover .ils-listino__name { text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: .2em; }
.ils-listino__note { margin: 4px 0 0 !important; font-size: 16px; color: var(--ink-3); }
.ils-redline p, .ils-redline li { color: var(--ink); font-weight: 700; }
.ils-redline ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ils-redline li { padding-left: 26px; position: relative; }
.ils-redline li::before { content: "—"; position: absolute; left: 0; }

/* ---------- Docenti ------------------------------------------------------- */

.e-con.ils-team { --display: grid; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--q) * 1.5) calc(var(--q) * 1.25); }
.e-con.ils-teacher { --gap: 10px; }
.ils-polaroid { margin: 0; background: #fff; padding: 10px 10px 0; box-shadow: var(--lift); transform: rotate(var(--r, -1.2deg)); transition: transform .45s var(--ease-out), box-shadow .45s; }
.ils-teacher:nth-child(3n+2) .ils-polaroid { --r: 1.3deg; }
.ils-teacher:nth-child(3n) .ils-polaroid { --r: -.6deg; }
.ils-teacher:hover .ils-polaroid { transform: rotate(0) translateY(-4px); box-shadow: var(--lift-hi); }
.ils-polaroid img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ils-polaroid figcaption { padding: 12px 4px 14px; font: 800 1.2rem/1.2 var(--f-display); }
.ils-polaroid figcaption small { display: block; font: 400 15px/1.4 var(--f-text); color: var(--ink-3); margin-top: 2px; }
.ils-teacher__bio p { font-size: 17px; color: var(--ink-2); }
.ils-teacher__bio em { color: var(--ink); }

/* ---------- Testimonials marquee ----------------------------------------- */

.ils-quotes { position: relative; overflow: hidden; padding-block: 12px 28px; -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ils-quotes__track { display: flex; gap: 28px; width: max-content; animation: ils-marquee var(--dur, 70s) linear infinite; }
.ils-quotes:hover .ils-quotes__track, .ils-quotes:focus-within .ils-quotes__track { animation-play-state: paused; }
@keyframes ils-marquee { to { transform: translateX(calc(-50% - 14px)); } }
.ils-quote { position: relative; width: 380px; flex: none; margin: 0; padding: 30px 26px 22px; background-color: #fff; background-image: repeating-linear-gradient(to bottom, transparent 0 29px, #D3E2F1 29px 30px); background-position: 0 25px; background-repeat: no-repeat; background-size: 100% calc(100% - 50px); border-radius: 3px; box-shadow: var(--lift); transform: rotate(var(--r, -1deg)); }
.ils-quote:nth-child(even) { --r: 1deg; }
.ils-quote::before { content: ""; position: absolute; top: -12px; left: 50%; width: 96px; height: 26px; transform: translateX(-50%) rotate(-3deg); background: rgba(242, 106, 27, .55); }
.ils-quote--senior::before { background: rgba(15, 107, 74, .5); }
.ils-quote blockquote { margin: 0; padding: 0; border: 0; background: none; font-size: 18px; line-height: 30px; color: var(--ink); text-align: left; quotes: "«" "»"; font-style: normal; }
.ils-quote blockquote::before, .ils-quote blockquote::after { display: none; }
.ils-quote blockquote p { margin: 0 !important; }
.ils-quote blockquote p::before { content: open-quote; }
.ils-quote blockquote p::after { content: close-quote; }
.ils-quote figcaption { margin-top: 12px; line-height: 30px; text-align: left; font: 800 17px var(--f-display); }
.ils-quote figcaption span { display: block; font: 400 15px/1.4 var(--f-text); color: var(--ink-3); }

/* ---------- FAQ + details ------------------------------------------------- */

.ils-faq details { border-top: 1px solid var(--rule); }
.ils-faq details:last-of-type { border-bottom: 1px solid var(--rule); }
.ils-faq summary { list-style: none; display: grid; grid-template-columns: 1fr 32px; gap: 16px; align-items: center; padding: 20px 0; cursor: pointer; font: 750 clamp(1.1rem, 1.6vw, 1.3rem)/1.3 var(--f-display); color: var(--ink); }
.ils-faq summary::-webkit-details-marker { display: none; }
.ils-faq summary::after { content: ""; width: 28px; height: 28px; border: 2px solid var(--ink); border-radius: 4px; background: linear-gradient(var(--ink), var(--ink)) center / 12px 2px no-repeat, linear-gradient(var(--ink), var(--ink)) center / 2px 12px no-repeat; transition: transform .3s var(--ease-out), background-size .3s; }
.ils-faq details[open] summary::after { transform: rotate(180deg); background-size: 12px 2px, 2px 0; }
.ils-faq details > div { padding: 0 48px 22px 0; color: var(--ink-2); }
.ils-faq details > div p:last-child { margin-bottom: 0 !important; }
@supports (interpolate-size: allow-keywords) {
	.ils-faq { interpolate-size: allow-keywords; }
	.ils-faq details::details-content { height: 0; overflow: clip; transition: height .35s var(--ease-out), content-visibility .35s allow-discrete; }
	.ils-faq details[open]::details-content { height: auto; }
}
.ils-faqcat { font-size: 1.5rem !important; margin: calc(var(--q) * 2) 0 8px !important; }
.ils-faqcat:first-child { margin-top: 0 !important; }

/* ---------- Blog cards ---------------------------------------------------- */

.ils-posts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--q) * 1.5); }
.ils-posts--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ils-split .ils-posts--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ils-post__meta time { text-transform: none; }
.ils-post { display: flex; flex-direction: column; gap: 14px; }
.ils-post__media { display: block; background: #fff; padding: 7px; box-shadow: var(--lift); transform: rotate(-.6deg); transition: transform .45s var(--ease-out); }
.ils-post:nth-child(even) .ils-post__media { transform: rotate(.6deg); }
.ils-post:hover .ils-post__media { transform: rotate(0) translateY(-3px); }
.ils-post__media img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ils-post__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 !important; font-size: 15px; color: var(--ink-3); }
.ils-post__cat { font-weight: 700; color: var(--ink) !important; text-decoration: underline; text-decoration-color: var(--rule); }
.ils-post__title { font-size: 1.4rem !important; font-weight: 800 !important; line-height: 1.18 !important; margin: 0 !important; }
.ils-post__title a { text-decoration: none; color: var(--ink) !important; }
.ils-post__title a:hover { text-decoration: underline; text-decoration-color: var(--red); }
.ils-post__excerpt { margin: 0 !important; color: var(--ink-2); font-size: 17px; }

.ils-blog { padding: calc(var(--q) * 3) 0 calc(var(--q) * 5); }
.ils-blog__grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: calc(var(--q) * 3); }
.ils-blog__side .widget { margin-bottom: 36px; }
.ils-blog__side .widget-title, .ils-blog__side h2 { font-size: 1.3rem !important; padding-bottom: 8px; border-bottom: 2px solid var(--ink); margin-bottom: 12px !important; }
.ils-blog__side ul { list-style: none; padding: 0; margin: 0; }
.ils-blog__side li { padding: 8px 0; border-bottom: 1px solid var(--rule); font-size: 16px; }
.ils-blog__side li a { text-decoration: none; }
body.ils .nav-links { display: flex; gap: 8px; margin-top: calc(var(--q) * 2); }
body.ils .nav-links .page-numbers { display: inline-grid; place-items: center; min-width: 48px; height: 48px; padding: 0 12px; border: 2px solid var(--ink); border-radius: 4px; text-decoration: none; font-weight: 700; background: var(--sheet); }
body.ils .nav-links .page-numbers.current { background: var(--ink); color: #fff; }

/* ---------- Article + prose ---------------------------------------------- */

.ils-article { padding-bottom: calc(var(--q) * 4); }
.ils-article__head { padding-top: calc(var(--q) * 2); }
.ils-article__title { font-size: clamp(2.3rem, 5vw, 4rem) !important; font-weight: 900 !important; font-stretch: 88%; letter-spacing: -0.025em !important; line-height: 1 !important; margin: 14px 0 18px !important; }
.ils-article__lead { font-size: 21px; color: var(--ink-2); }
.ils-article__author { font-weight: 700; font-size: 16px; }
.ils-article__media { margin: calc(var(--q) * 1.5) auto calc(var(--q) * 2); max-width: 1100px; background: #fff; padding: 8px; box-shadow: var(--lift); }
.ils-article__media img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.ils-article__foot { margin-top: calc(var(--q) * 2); }
.ils-article__tags a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 10px; border: 1px solid var(--rule); border-radius: 999px; font-size: 15px; text-decoration: none; background: var(--sheet); }
.ils-article__cta { margin: calc(var(--q) * 1.5) 0; padding: 24px; background: var(--sheet); border: 2px solid var(--ink); border-radius: 8px; display: grid; gap: 14px; justify-items: start; }
.ils-article__cta p { margin: 0 !important; font-size: 19px; }
body.ils .post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
body.ils .post-navigation a { display: block; padding: 16px; border: 1px solid var(--rule); border-radius: var(--rad); background: var(--sheet); text-decoration: none; font-family: var(--f-display); font-weight: 700; }
body.ils .post-navigation a span { display: block; font: 400 14px var(--f-text); color: var(--ink-3); margin-bottom: 4px; }

.ils-page { padding: calc(var(--q) * 2.5) 0 calc(var(--q) * 5); }
.ils-prose { background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--rad); padding: clamp(24px, 4vw, 56px); box-shadow: var(--lift); }
.ils-article__body.ils-prose { background: transparent; border: 0; box-shadow: none; padding: 0; }
.ils-prose h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem) !important; margin: 1.8em 0 .6em !important; }
.ils-prose h3 { font-size: clamp(1.25rem, 2vw, 1.5rem) !important; margin: 1.6em 0 .5em !important; }
.ils-prose > :first-child { margin-top: 0 !important; }
.ils-prose ul, .ils-prose ol { padding-left: 1.4em; margin: 0 0 1.2em; }
.ils-prose ul li { list-style: none; position: relative; }
.ils-prose ul li::before { content: ""; position: absolute; left: -1.1em; top: .62em; width: 8px; height: 8px; background: var(--ink); border-radius: 1px; }
.ils-prose li { margin-bottom: .4em; }
.ils-prose blockquote { margin: 1.5em 0; padding: 18px 22px; background: var(--paper); border: 1px solid var(--rule); border-radius: var(--rad); font-size: 20px; }
.ils-prose blockquote p:last-child { margin: 0 !important; }
.ils-prose table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: 16px; display: block; overflow-x: auto; }
.ils-prose th, .ils-prose td { border: 1px solid var(--rule); padding: 10px 12px; text-align: left; vertical-align: top; }
.ils-prose th { background: var(--paper); font-family: var(--f-display); }
.ils-prose a { font-weight: 700; }

/* ---------- Contacts + map ------------------------------------------------ */

.ils-contacts { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ils-contacts li { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: center; }
.ils-contacts .ils-ico { width: 44px; height: 44px; padding: 10px; border: 2px solid currentColor; border-radius: 4px; }
.ils-contacts small { display: block; font-size: 14px; color: var(--ink-3); }
.ils-contacts a, .ils-contacts span { font-weight: 700; font-size: 18px; text-decoration: none; }
.ils-sec--ink .ils-contacts small { color: #A9B4CB; }
.ils-sec--ink .ils-contacts a, .ils-sec--ink .ils-contacts span { color: #fff !important; }
.ils-map { margin: 0; background: #fff; padding: 8px; box-shadow: var(--lift); }
.ils-map iframe { display: block; width: 100%; height: 380px; border: 0; filter: grayscale(.25) contrast(1.05); }
.ils-map figcaption { padding: 10px 4px 2px; font-size: 16px; }

.ils-sheet { background: var(--sheet); border: 2px solid var(--ink); border-radius: 8px; padding: clamp(22px, 3vw, 40px); box-shadow: var(--lift-hi); }
.e-con.ils-sheet { --padding-top: clamp(22px, 3vw, 40px); --padding-bottom: clamp(22px, 3vw, 40px); --padding-left: clamp(22px, 3vw, 40px); --padding-right: clamp(22px, 3vw, 40px); }
.ils-print { margin: 0; background: #fff; padding: 8px; box-shadow: var(--lift); transform: rotate(var(--r, -1deg)); }
.ils-print img { display: block; width: 100%; height: auto; }
.ils-print--parallax img { will-change: transform; }
.e-con.ils-split { --display: grid; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: calc(var(--q) * 3); row-gap: calc(var(--q) * 2); align-items: center; }
.e-con.ils-split--wide { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.e-con.ils-split--top { align-items: start; }
.e-con.ils-grid3 { --display: grid; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--q) * 1.25); }
.e-con.ils-grid2 { --display: grid; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--q) * 1.25); }
.e-con.ils-stack { --gap: 18px; }

/* Righe del quaderno: punti con numerazione reale (non card). */
.ils-notes { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.ils-notes li { display: grid; grid-template-columns: minmax(180px, .38fr) 1fr; gap: 8px 32px; padding: 18px 0; border-bottom: 1px solid var(--rule); }
.ils-notes strong { font: 800 1.2rem/1.25 var(--f-display); }
.ils-notes span { color: var(--ink-2); }

.ils-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; border-top: 2px solid var(--ink); }
.ils-timeline li { padding-top: 16px; position: relative; }
.ils-timeline li::before { content: ""; position: absolute; top: -8px; left: 0; width: 14px; height: 14px; background: var(--sheet); border: 2px solid var(--ink); border-radius: 2px; }
.ils-timeline b { display: block; font: 900 1.6rem var(--f-display); }
.ils-timeline span { font-size: 16px; color: var(--ink-2); }

.ils-tasks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.ils-tasks li { border-bottom: 1px solid var(--rule); }
.ils-tasks a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; text-decoration: none; color: var(--ink) !important; }
.ils-tasks a strong { font: 800 clamp(1.15rem, 1.7vw, 1.4rem)/1.25 var(--f-display); }
.ils-tasks a span { font-size: 15px; color: var(--ink-3); text-align: right; }
.ils-tasks a:hover strong { text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: .2em; }

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

.ils-footer { background: var(--ink); color: #C9D2E3; padding: calc(var(--q) * 3.5) 0 calc(var(--q) * 1.5); font-size: 16px; }
.ils-footer a { color: #fff !important; text-decoration-color: rgba(255, 255, 255, .35); }
.ils-footer a:hover { text-decoration-color: #fff; }
.ils-footer :focus-visible { outline-color: #fff; }
.ils-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.25fr; gap: calc(var(--q) * 1.5); }
.ils-footer .widget { margin-bottom: 24px; }
.ils-footer .widget-title, .ils-footer h2, .ils-footer h3 { color: #fff !important; font-size: 1.15rem !important; font-weight: 800 !important; margin: 0 0 14px !important; }
.ils-footer ul { list-style: none; margin: 0; padding: 0; }
.ils-footer li { padding: 5px 0; }
.ils-footer li a { text-decoration: none; }
.ils-footer li a:hover { text-decoration: underline; }
.ils-footer .ils-contacts { gap: 10px; }
.ils-footer .ils-contacts li { grid-template-columns: 22px 1fr; gap: 10px; }
.ils-footer .ils-contacts .ils-ico { width: 22px; height: 22px; padding: 0; border: 0; color: #C9D2E3; }
.ils-footer .ils-contacts small { display: none; }
.ils-footer .ils-contacts a, .ils-footer .ils-contacts span { font-size: 16px; font-weight: 400; color: #E8ECF4 !important; }
.ils-footer__logo { display: inline-block; margin-bottom: 14px; }
.ils-footer__logo img { display: block; height: 42px; width: auto; }
.ils-social { display: flex; gap: 8px; list-style: none; margin: 14px 0 0; padding: 0; }
.ils-social a { display: grid; place-items: center; width: 44px; height: 44px; border: 1.5px solid #4A5B80; border-radius: 4px; }
.ils-social a:hover { border-color: #fff; }
.ils-footer__bottom { margin-top: calc(var(--q) * 1.5); padding-top: calc(var(--q) * 1); border-top: 1px solid #33456B; display: grid; gap: 10px; }
.ils-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; }
.ils-legal-menu { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.ils-legal-menu li { padding: 0; }
.ils-footer__legal .ils-linkbtn { color: #fff; font-size: 16px; text-decoration-color: rgba(255, 255, 255, .35); }
.ils-footer__company, .ils-footer__copy { margin: 0 !important; font-size: 14px; color: #A9B4CB; }

/* ---------- Cookie banner ------------------------------------------------- */

.ils-cookie { position: fixed; left: 16px; bottom: 16px; z-index: 300; width: min(560px, calc(100% - 32px)); }
.ils-cookie__box { position: relative; background: var(--sheet); border: 2px solid var(--ink); border-radius: 8px; padding: 22px 22px 20px; box-shadow: var(--lift-hi); animation: ils-cookie-in .45s var(--ease-out); }
@keyframes ils-cookie-in { from { transform: translateY(20px); opacity: 0; } }
.ils-cookie__x { position: absolute; top: 8px; right: 8px; }
.ils-cookie__title { font: 800 1.25rem var(--f-display); margin: 0 0 6px !important; padding-right: 48px; }
.ils-cookie__text { font-size: 16px; color: var(--ink-2); margin: 0 0 14px !important; }
.ils-cookie__prefs { display: grid; gap: 10px; margin-bottom: 14px; padding: 12px; background: var(--paper); border-radius: 4px; }
.ils-switch { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; font-size: 15px !important; }
.ils-cookie__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ils-cookie__actions .ils-btn { min-height: 48px; padding: 0 18px; font-size: 16px; flex: 1 1 auto; }

/* ---------- WooCommerce --------------------------------------------------- */

body.ils.woocommerce-page .ils-main > .container, body.ils .woocommerce-products-header { display: none; }
body.ils.post-type-archive-product .ils-main, body.ils.tax-product_cat .ils-main { padding-bottom: calc(var(--q) * 5); }
body.ils .woo_area, body.ils .themex-shop-area { padding: 0; }
body.ils .woocommerce-result-count { margin: 0 !important; color: var(--ink-3); font-size: 16px; line-height: 52px; }
body.ils .woocommerce-ordering select { min-width: 260px; }
body.ils .tx_product_tab, body.ils .order_tx .nav, body.ils .order_tx ul.nav { display: none !important; }
body.ils .sidebar-shop .widget, body.ils .shop_sidebar .widget, body.ils .woo_sidebar .widget, body.ils [class*="sidebar"] .widget_layered_nav, body.ils .ils-shopside .widget {
	background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--rad); padding: 18px 18px 14px; margin-bottom: 18px; box-shadow: none;
}
body.ils .widget .widget-title, body.ils .widget h2 { font-size: 1.15rem !important; font-weight: 800 !important; margin: 0 0 10px !important; padding: 0 0 8px; border-bottom: 2px solid var(--ink); }
body.ils .widget_layered_nav ul, body.ils .widget_product_categories ul { list-style: none; margin: 0; padding: 0; }
body.ils .widget_layered_nav li, body.ils .widget_product_categories li { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; font-size: 16px; border-bottom: 1px dashed var(--rule); }
body.ils .widget_layered_nav li:last-child, body.ils .widget_product_categories li:last-child { border-bottom: 0; }
body.ils .widget_layered_nav li a, body.ils .widget_product_categories li a { text-decoration: none; }
body.ils .widget_layered_nav li.chosen a::before { content: ""; display: inline-block; width: 14px; height: 14px; margin-right: 6px; vertical-align: -1px; background: var(--red); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat; }
body.ils .widget_price_filter .ui-slider .ui-slider-range, body.ils .widget_price_filter .ui-slider .ui-slider-handle { background: var(--ink); }
body.ils .widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--rule); }
body.ils .widget_price_filter .button { min-height: 40px !important; padding: 0 14px !important; font-size: 15px !important; }

body.ils.single-product div.product { padding: calc(var(--q) * 1) 0 calc(var(--q) * 4); }
body.ils.single-product .woocommerce-product-gallery { background: #fff; padding: 10px; box-shadow: var(--lift-hi); transform: rotate(-.8deg); }
body.ils.single-product .woocommerce-product-gallery img { aspect-ratio: 1; object-fit: cover; }
body.ils.single-product .product_title { font-size: clamp(2.2rem, 4.2vw, 3.4rem) !important; font-weight: 900 !important; font-stretch: 88%; letter-spacing: -0.02em !important; line-height: 1.02 !important; margin: 0 0 14px !important; }
body.ils.single-product .summary .price { font: 800 2rem/1.1 var(--f-display) !important; color: var(--ink) !important; margin: 0 0 14px !important; }
body.ils.single-product .summary .price del { font-size: 1.2rem; color: var(--ink-3); }
body.ils.single-product .summary .price ins { text-decoration: none; }
body.ils.single-product .woocommerce-price-suffix { font: 400 15px var(--f-text); color: var(--ink-3); }
body.ils.single-product .woocommerce-product-details__short-description { font-size: 19px; color: var(--ink-2); }
body.ils.single-product .stock { font-weight: 700; color: var(--green) !important; }
body.ils.single-product .stock.out-of-stock { color: var(--red-dark) !important; }
body.ils.single-product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 18px 0 !important; }
body.ils.single-product form.cart .quantity input { width: 88px; min-height: 52px; text-align: center; }
body.ils.single-product .product_meta { font-size: 15px; color: var(--ink-3); margin-top: 18px; display: grid; gap: 4px; }
.ils-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 18px 0; border-top: 2px solid var(--ink); }
.ils-facts div { display: grid; gap: 2px; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--rule); }
.ils-facts dt { font-size: 14px; font-weight: 400; color: var(--ink-3); }
.ils-facts dd { margin: 0; font-weight: 700; font-size: 17px; }
.ils-trial-note { margin: 12px 0 0 !important; padding: 14px 16px; background: var(--paper); border: 1px solid var(--rule); border-radius: var(--rad); font-size: 16px; }
body.ils .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 !important; margin: calc(var(--q) * 2) 0 0 !important; border: 0 !important; }
body.ils .woocommerce-tabs ul.tabs::before, body.ils .woocommerce-tabs ul.tabs li::before, body.ils .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.ils .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 2px solid var(--ink) !important; border-bottom: 0 !important; border-radius: 6px 6px 0 0 !important; background: var(--paper) !important; }
body.ils .woocommerce-tabs ul.tabs li a { display: block; padding: 12px 20px !important; font: 700 17px var(--f-display) !important; color: var(--ink) !important; text-decoration: none; }
body.ils .woocommerce-tabs ul.tabs li.active { background: var(--ink) !important; }
body.ils .woocommerce-tabs ul.tabs li.active a { color: #fff !important; }
body.ils .woocommerce-tabs .panel { background: var(--sheet); border: 2px solid var(--ink); border-radius: 0 8px 8px 8px; padding: clamp(20px, 3vw, 40px) !important; margin: 0 !important; }
body.ils .woocommerce-tabs .panel h2:first-child { font-size: 1.6rem !important; }
body.ils .woocommerce-tabs .panel h3 { font-size: 1.3rem !important; margin-top: 1.4em !important; }
body.ils .woocommerce-Reviews .commentlist { padding: 0; }
body.ils .woocommerce-Reviews .comment_container { display: block; }
body.ils .woocommerce-Reviews .comment-text { margin: 0 !important; border: 1px solid var(--rule) !important; border-radius: var(--rad) !important; padding: 16px !important; background: var(--paper); }
body.ils .woocommerce-Reviews img.avatar { display: none; }
body.ils .related.products > h2, body.ils .upsells.products > h2 { font-size: clamp(1.8rem, 3vw, 2.4rem) !important; margin: calc(var(--q) * 2.5) 0 calc(var(--q) * 1) !important; }
body.ils table.shop_table { border: 2px solid var(--ink) !important; border-radius: 8px !important; background: var(--sheet); border-collapse: separate !important; }
body.ils table.shop_table th { font-family: var(--f-display); }
body.ils .woocommerce-checkout #payment { background: var(--paper) !important; border: 1px solid var(--rule); border-radius: 8px !important; }
body.ils .woocommerce-checkout #payment div.payment_box { background: var(--sheet) !important; }
body.ils .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--sheet) !important; }
body.ils .ils-early-start { margin: 0 0 16px !important; padding: 12px 14px; background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--rad); }
body.ils .woocommerce-message, body.ils .woocommerce-info, body.ils .woocommerce-error { border: 2px solid var(--ink) !important; border-radius: var(--rad); background: var(--sheet) !important; color: var(--ink) !important; }
body.ils .woocommerce-message::before, body.ils .woocommerce-info::before { color: var(--green) !important; }
body.ils .woocommerce-error::before { color: var(--red) !important; }
body.ils .woocommerce-store-notice, body.ils p.demo_store { display: none !important; }
body.ils .woocommerce-pagination ul { border: 0 !important; display: flex; gap: 8px; justify-content: center; }
body.ils .woocommerce-pagination ul li { border: 0 !important; }
body.ils .woocommerce-pagination ul li .page-numbers { min-width: 48px; height: 48px; display: grid !important; place-items: center; border: 2px solid var(--ink) !important; border-radius: 4px; }
body.ils .woocommerce-pagination ul li span.current { background: var(--ink) !important; color: #fff !important; }

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

@media (max-width: 1440px) {
	.ils-header__phone span { display: none; }
	.ils-header__phone { margin-right: 0; }
}
@media (max-width: 1200px) {
	body.ils ul.products.ils-cards, body.ils .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ils-header__phone span { display: none; }
	.ils-header__phone { margin-right: 0; }
	.ils-menu > li > a { padding: 12px 9px; font-size: 16px; }
	.ils-footer__grid { grid-template-columns: 1fr 1fr; }
	.ils-orario__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ils-orario__day:nth-child(3n) { border-right: 0; }
	.ils-orario__day:nth-child(-n+3) { border-bottom: 2px solid var(--ink); }
}
@media (max-width: 1023px) {
	:root { --header-h: 68px; }
	.ils-nav, .ils-header__phone, .ils-topbar__info { display: none; }
	.ils-burger { display: inline-grid; border-color: var(--ink); }
	.ils-header__in { gap: 12px; }
	.ils-logo img, .ils-logo .custom-logo { height: 38px; }
	.e-con.ils-hero__grid { grid-template-columns: 1fr; grid-template-areas: "copy" "books" "quick"; }
	.ils-books { height: clamp(320px, 70vw, 460px); max-width: 560px; }
	.ils-quick { grid-template-columns: 1fr auto; grid-template-areas: "who who" "field send" "ok ok"; }
	.e-con.ils-paths { grid-template-columns: 1fr; }
	.e-con.ils-path, .e-con.ils-path--senior { --padding-left: var(--gutter); --padding-right: var(--gutter); --padding-top: calc(var(--q) * 3); --padding-bottom: calc(var(--q) * 3); }
	.e-con.ils-how { grid-template-columns: 1fr; row-gap: calc(var(--q) * 2); }
	.e-con.ils-how__side { position: relative; top: 0; }
	.ils-how__print { max-width: 360px; }
	.ils-step { min-height: 0; }
	.e-con.ils-team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.ils-split, .e-con.ils-split--wide { grid-template-columns: 1fr; }
	.e-con.ils-grid3 { grid-template-columns: 1fr 1fr; }
	.ils-posts--compact { grid-template-columns: 1fr 1fr; }
	.ils-blog__grid { grid-template-columns: 1fr; }
	.ils-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
}
@media (max-width: 767px) {
	body.ils { font-size: 18px; --q: 20px; }
	.ils-topbar__promo { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.ils-header__cta { display: none; }
	.ils-books { height: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
	.ils-book { position: relative; width: auto; inset: auto; padding: 10% 8% 8% 13%; }
	.ils-book--ragazzi { transform: rotate(-2deg); }
	.ils-book--senior { transform: rotate(2deg); top: 18px; }
	.ils-book__label { font-size: 13px; padding: 6px 8px; }
	.ils-book__label dd { font-size: 14px; }
	.ils-book__label dt { font-size: 11px; }
	.ils-quick { grid-template-columns: 1fr; grid-template-areas: "who" "field" "send" "ok"; }
	.ils-quick__send .wpcf7-submit { width: 100%; }
	.ils-quick-panel { padding: 18px 16px; }
	.ils-form { grid-template-columns: 1fr; }
	.ils-orario__grid { grid-template-columns: 1fr; }
	.ils-orario__day { border-right: 0; border-bottom: 2px solid var(--ink); }
	.ils-orario__day:last-child { border-bottom: 0; }
	.e-con.ils-team { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
	.ils-polaroid figcaption { font-size: 1rem; }
	.e-con.ils-grid3, .e-con.ils-grid2 { grid-template-columns: 1fr; }
	.ils-posts, .ils-posts--compact { grid-template-columns: 1fr; }
	.ils-quote { width: 300px; }
	.ils-notes li { grid-template-columns: 1fr; }
	.ils-tasks { grid-template-columns: 1fr; }
	.ils-timeline { grid-template-columns: 1fr; }
	.ils-footer__grid { grid-template-columns: 1fr; }
	.ils-facts { grid-template-columns: 1fr; }
	body.ils ul.products.ils-cards, body.ils .woocommerce ul.products { grid-template-columns: 1fr; }
	.ils-listino__row a { flex-wrap: wrap; }
	.ils-listino__dots { display: none; }
	.ils-listino__price { width: 100%; }
	.ils-cookie { left: 8px; right: 8px; bottom: 8px; width: auto; }
	.ils-step { grid-template-columns: 48px 1fr; gap: 16px; }
	.ils-step__num { width: 48px; height: 48px; }
	.ils-steps::before, .ils-steps__rail { left: 23px; }
	body.ils .woocommerce-ordering select { min-width: 0; }
}
@media (max-width: 782px) { .admin-bar .ils-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ils-header { top: 0; } }

/* ---------- Motion off ---------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
	.ils-pen path, .ils-circle path, .ils-mark path { stroke-dashoffset: 0 !important; animation: none !important; }
	.ils-quotes { -webkit-mask: none; mask: none; }
	.ils-quotes__track { animation: none !important; flex-wrap: wrap; width: auto; justify-content: center; }
	.ils-quotes__track [aria-hidden="true"] { display: none; }
	.js .ils-orario[data-ils-reveal] .ils-orario__day, .js .ils-seats[data-ils-reveal] .ils-seats__cells i.is-taken { opacity: 1 !important; transform: none !important; background: var(--ink); }
	.js .ils-seats[data-ils-reveal] .ils-seats__cells i.is-taken { background: var(--ink) !important; }
	.ils-steps__rail { transform: none; }
}

/* ---------- Adattamenti per i container Elementor ------------------------ */

.e-con.ils-book { --width: 56%; --padding-top: 7%; --padding-bottom: 7%; --padding-left: 12%; --padding-right: 8%; --gap: 6%; position: absolute; flex-wrap: nowrap; }
.ils-book .elementor-widget { width: 100%; }
.ils-book__print.elementor-widget-image { background: #fff; padding: 6px; transform: rotate(1.5deg); box-shadow: 0 10px 18px -12px rgba(0, 0, 0, .6); }
.ils-book--senior .ils-book__print.elementor-widget-image { transform: rotate(-1.5deg); }
.ils-book__print.elementor-widget-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ils-book__name .elementor-heading-title { font: 900 clamp(1.6rem, 2.6vw, 2.3rem)/1 var(--f-display) !important; font-stretch: 90% !important; letter-spacing: -0.02em; color: inherit !important; }
.ils-book--senior .ils-book__name .elementor-heading-title { color: #fff !important; }
.ils-book__label.elementor-widget-text-editor { margin-top: auto; background: #fff; color: var(--ink); border: 2px solid var(--ink); border-radius: 3px; padding: 8px 12px; font-size: 15px; line-height: 1.35; }
.ils-book__label [data-ils-mark] { position: relative; display: inline-block; width: 22px; height: 18px; flex: none; }
.ils-book__label [data-ils-mark] .ils-mark { inset: 0; width: 100%; height: 100%; }

.ils-path__print.elementor-widget-image, .ils-how__print.elementor-widget-image, .elementor-widget-image.ils-print { background: #fff; padding: 8px; box-shadow: 0 22px 36px -24px rgba(0, 0, 0, .55); }
.ils-path__print.elementor-widget-image img, .ils-how__print.elementor-widget-image img, .elementor-widget-image.ils-print img { display: block; width: 100%; object-fit: cover; }
.ils-path__print.elementor-widget-image { transform: rotate(-1.6deg); max-width: 560px; }
.ils-path--senior .ils-path__print.elementor-widget-image { transform: rotate(1.4deg); }
.ils-path__print.elementor-widget-image img { aspect-ratio: 3 / 2; }
.ils-how__print.elementor-widget-image { transform: rotate(-1.2deg); max-width: 420px; }
.ils-how__print.elementor-widget-image img { aspect-ratio: 4 / 5; }
.elementor-widget-image.ils-print { transform: rotate(-.8deg); }
.ils-split > .elementor-widget-image.ils-print:nth-child(2), .ils-stack > .elementor-widget-image.ils-print:nth-child(2) { transform: rotate(.9deg); }
.elementor-widget-image.ils-print--parallax { overflow: hidden; }

.e-con.ils-teacher { background: #fff; --padding-top: 10px; --padding-right: 10px; --padding-bottom: 16px; --padding-left: 10px; --gap: 4px; box-shadow: var(--lift); transform: rotate(var(--r, -1.2deg)); transition: transform .45s var(--ease-out), box-shadow .45s; }
.ils-team > .e-con.ils-teacher:nth-child(3n+2) { --r: 1.3deg; }
.ils-team > .e-con.ils-teacher:nth-child(3n) { --r: -.6deg; }
.e-con.ils-teacher:hover { transform: rotate(0) translateY(-4px); box-shadow: var(--lift-hi); }
.ils-teacher__img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ils-teacher__name { margin-top: 10px; }
.ils-teacher__name .elementor-heading-title { font-size: 1.25rem !important; font-weight: 800 !important; }
.ils-teacher__role p { font-size: 15px; color: var(--ink-3); margin: 0 !important; }

.ils-step__num[data-ils-mark] .ils-mark { left: 26px; top: -16px; width: 40px; height: 34px; }
.ils-step .ils-step__num + div { padding-top: 6px; }
.ils-quote-line { font-family: var(--f-display); font-size: 1.35rem; font-weight: 600; line-height: 1.35; color: var(--ink); }
.e-con.ils-head > .elementor-widget { width: auto; max-width: 100%; }
.e-con.ils-head > .elementor-widget-text-editor { width: auto; }
.ils-sec--ink .ils-sheet { color: var(--ink); }
.e-con.ils-stack > .elementor-widget, .e-con.ils-wrap > .elementor-widget { width: 100%; }
.e-con.ils-btnrow > .elementor-widget { width: auto; }
.ils-doc .ils-print img { aspect-ratio: 4 / 5; }
@media (max-width: 767px) {
	.e-con.ils-book { --width: auto; position: relative; --padding-top: 10%; --padding-left: 13%; --padding-right: 8%; --padding-bottom: 8%; }
	.ils-book__label.elementor-widget-text-editor { font-size: 13px; padding: 6px 8px; }
}

/* ---------- Correzioni WooCommerce del tema padre ------------------------- */

body.ils .woocommerce ul.products li.product .onsale, body.ils ul.products li.product .ils-card__media .onsale, body.ils .woocommerce span.onsale {
	width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; line-height: 1.3 !important; border-radius: 3px !important;
	top: auto !important; bottom: -10px !important; left: 14px !important; right: auto !important; margin: 0 !important; padding: 4px 10px !important;
	display: none !important;
}
body.ils.single-product .woocommerce-product-gallery .onsale, body.ils.single-product div.product > .onsale { top: 16px !important; bottom: auto !important; left: 16px !important; z-index: 3; }
body.ils ul.products li.product::before, body.ils ul.products li.product::after, body.ils ul.products li.product::marker { content: none !important; display: none !important; }
body.ils ul.products li.ils-cardcol { list-style: none !important; }
body.ils .widget ul li, body.ils .widget ul li a { text-align: left !important; }
body.ils .widget_layered_nav li .count, body.ils .widget_product_categories li .count { color: var(--ink-3); font-size: 14px; background: none !important; }
body.ils .woocommerce-product-search { display: flex; gap: 6px; }
body.ils .woocommerce-product-search .search-field { min-height: 46px; padding: 8px 12px; font-size: 16px; }
body.ils .woocommerce-product-search button { min-height: 46px !important; padding: 0 14px !important; background: var(--ink) !important; color: #fff !important; border: 0; border-radius: var(--rad); font: 700 15px var(--f-display); }
body.ils.single-product div.product form.cart .single_add_to_cart_button, body.ils .woocommerce div.product form.cart .button {
	background: var(--red) !important; color: #fff !important; text-transform: none !important; font: 700 18px/1.1 var(--f-display) !important; min-height: 52px; padding: 0 28px !important; border-radius: var(--rad) !important; letter-spacing: 0 !important;
}
body.ils.single-product div.product form.cart .single_add_to_cart_button:hover { background: var(--red-dark) !important; }
body.ils.single-product div.product form.cart .single_add_to_cart_button::before { display: none !important; }
body.ils .woocommerce .quantity .qty { border: 2px solid var(--ink); border-radius: var(--rad); min-height: 52px; }
body.ils .woocommerce-review-link { color: var(--ink-3) !important; font-size: 15px; }
body.ils .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 10px !important; }

/* Testo lungo su foglio liscio: la quadrettatura resta ai margini. */
.ils-article__head, .ils-article__body, .ils-article__foot { background: var(--paper); box-shadow: 0 0 0 clamp(16px, 3vw, 40px) var(--paper); }
.ils-article__body { position: relative; z-index: 0; }
@media (max-width: 767px) {
	body.ils .ils-topbar__promo { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.ils-filter { display: flex; width: 100%; flex-wrap: nowrap; }
	.ils-filter__btn { flex: 1 1 auto; padding: 0 10px; font-size: 15px; }
}

/* ---------- Catalogo e scheda corso -------------------------------------- */

.ils-woo { padding: calc(var(--q) * 2) 0 calc(var(--q) * 4); }
.ils-shop { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: calc(var(--q) * 2); align-items: start; }
.ils-shop__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: calc(var(--q) * 1.25); }
.ils-shop__bar .woocommerce-notices-wrapper { flex-basis: 100%; }
.ils-shop__bar .woocommerce-ordering { margin: 0 !important; }
.ils-shop__side { position: sticky; top: calc(var(--header-h) + 20px); }
.ils-shop__main ul.products.ils-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.ils.single-product div.product .woocommerce-product-gallery { width: 44% !important; float: left; }
body.ils.single-product div.product .summary { width: 50% !important; float: right; }
body.ils.single-product .related ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1200px) { .ils-shop__main ul.products.ils-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1023px) {
	.ils-shop { grid-template-columns: 1fr; }
	.ils-shop__side { position: static; order: -1; }
	body.ils.single-product div.product .woocommerce-product-gallery, body.ils.single-product div.product .summary { width: 100% !important; float: none; }
	body.ils.single-product .related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.ils-shop__main ul.products.ils-cards, body.ils.single-product .related ul.products { grid-template-columns: 1fr; }
}

.ils-filters > summary { display: none; }
@media (max-width: 1023px) {
	.ils-filters > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 16px; border: 2px solid var(--ink); border-radius: var(--rad); background: var(--sheet); font: 700 17px var(--f-display); cursor: pointer; list-style: none; }
	.ils-filters > summary::-webkit-details-marker { display: none; }
	.ils-filters > summary::after { content: ""; width: 18px; height: 18px; background: linear-gradient(var(--ink), var(--ink)) center / 14px 2px no-repeat, linear-gradient(var(--ink), var(--ink)) center / 2px 14px no-repeat; transition: background-size .2s; }
	.ils-filters[open] > summary::after { background-size: 14px 2px, 2px 0; }
	.ils-filters[open] > summary { margin-bottom: 12px; }
}

/* Titoli delle sezioni ordine/cliente: il padre li mette su una fascia colorata. */
body.ils .woocommerce .woocommerce-order-details__title, body.ils .woocommerce .woocommerce-column__title, body.ils .woocommerce-customer-details h2,
body.ils .woocommerce-order-details h2, body.ils .woocommerce-checkout h3, body.ils .cart_totals h2, body.ils .woocommerce-billing-fields h3, body.ils #order_review_heading {
	background: none !important; color: var(--ink) !important; padding: 0 !important; margin: 0 0 14px !important; font-size: 1.5rem !important; border: 0 !important;
}
body.ils .woocommerce-order-overview { padding-left: 0 !important; }
body.ils .woocommerce-order-overview li::before { display: none; }
body.ils .woocommerce-thankyou-order-received { font: 800 1.6rem/1.2 var(--f-display); color: var(--green); }

/* Newsletter nel footer. */
body.ils .ils-footer label, body.ils .ils-footer .wpcf7-acceptance label { color: #C9D2E3; text-align: left; justify-content: flex-start; }
body.ils .ils-news .wpcf7-submit { background: var(--sheet) !important; color: var(--ink) !important; box-shadow: none; min-height: 52px; padding: 0 18px; }
body.ils .ils-news .wpcf7-submit:hover { background: #E3E8F1 !important; color: var(--ink) !important; }

body.ils .ils-sec--ink .ils-lead, body.ils .ils-sec--ink .ils-lead p, body.ils .ils-sec--ink .elementor-widget-text-editor p { color: #D3DAE8; }
body.ils .ils-sec--ink .ils-sheet p, body.ils .ils-sec--ink .ils-sheet label { color: var(--ink); }
body.ils .ils-sec--ink .ils-sheet .ils-form__hint { color: var(--ink-3); }
@media (max-width: 767px) {
	.ils-split .ils-posts--compact { grid-template-columns: 1fr; }
}

/* ---------- Revisione: prezzo anticipato a penna, schede come etichette ---- */

body.ils .price del { position: relative; text-decoration: none; color: var(--ink-3); }
body.ils .price del::after { content: ""; position: absolute; left: -3px; right: -3px; top: 52%; height: 2px; background: var(--red); border-radius: 2px; transform: rotate(-9deg); }
.ils-early { margin: 2px 0 0 !important; font-size: 14px; color: var(--ink-2); }
.ils-card__facts { order: 2; display: block; margin: 0; padding: 4px 12px; border: 2px solid var(--ink); border-radius: 3px; background: #fff; }
.ils-card__facts li { display: grid; grid-template-columns: 74px 1fr; gap: 8px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--rule); font-size: 15px; color: var(--ink); }
.ils-card__facts li:last-child { border-bottom: 0; }
.ils-card__facts li span { font-size: 13px; color: var(--ink-3); }
.ils-card__facts li b { font-family: var(--f-display); font-weight: 700; font-size: 16px; }
.ils-card .ils-seats { order: 3; }
.ils-card__foot { order: 4; }
body.ils .star-rating span::before { background: var(--ink); }
body.ils .ils-card .star-rating { display: none; }

.ils-hero__title .ils-circle { margin-left: .14em; margin-right: .06em; }
.ils-circle > svg { left: -12%; width: 124%; }
.ils-hero__micro .ils-ico { color: var(--red); }

@media (max-width: 767px) {
	.ils-quotes { -webkit-mask: none; mask: none; }
	.ils-quotes__track { animation: none !important; width: auto; overflow-x: auto; scroll-snap-type: x mandatory; padding: 18px var(--gutter) 24px; scrollbar-width: none; }
	.ils-quotes__track::-webkit-scrollbar { display: none; }
	.ils-quotes__track [aria-hidden="true"] { display: none; }
	.ils-quote { width: 84vw; scroll-snap-align: start; scroll-margin-left: var(--gutter); }
	.e-con.ils-book { --padding-left: 11%; --padding-right: 6%; }
	.ils-book__label.elementor-widget-text-editor { padding: 6px 7px; }
	.ils-book__label dd { font-size: 13px !important; gap: 4px; }
	.ils-book__label [data-ils-mark] { width: 16px; height: 14px; }
}
.ils-hero__micro li::before { content: ""; width: 18px; height: 18px; flex: none; background: var(--red); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat; }

/* Barra dei filtri del catalogo */
body.ils .ils-shop__side .widget { margin: 0 0 28px; padding: 0; background: transparent; border: 0; }
body.ils .ils-shop__side ul { text-align: left !important; }
body.ils .ils-shop__side li { display: flex !important; justify-content: space-between !important; align-items: baseline; width: 100%; text-align: left !important; float: none !important; }
body.ils .ils-shop__side li a { flex: 1; text-align: left !important; }
.ils-card__facts li { grid-template-columns: 60px 1fr; }
.ils-card__foot .button { gap: 8px; }
.ils-card__foot .button.product_type_simple:not(.add_to_cart_button), .ils-card__foot a.button[href*="/corso/"]:not(.add_to_cart_button) { background: transparent !important; color: var(--ink) !important; border-color: var(--ink) !important; }

/* Revisione 2: etichetta, pulsante e segno «completo» */
body.ils .ils-card ul.ils-card__facts { padding: 4px 12px !important; margin: 0 !important; list-style: none; }
body.ils .ils-card ul.ils-card__facts li { padding: 6px 0 !important; margin: 0 !important; }
.ils-card__facts li b { min-width: 0; overflow-wrap: anywhere; }
.ils-card__foot { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; }
body.ils .ils-card__foot .button, body.ils .ils-card__foot a.button {
	display: inline-flex !important; align-items: center !important; justify-content: center !important; align-self: end; justify-self: end;
	height: 48px; min-height: 48px !important; padding: 0 20px !important; line-height: 1 !important; vertical-align: middle; margin: 0 !important;
}
.ils-card__foot .added_to_cart { grid-column: 1 / -1; justify-self: end; }
.ils-seats__cells { position: relative; }
.ils-seats__cells .ils-mark { left: -8px; top: 50%; width: calc(100% + 16px); height: 16px; transform: translateY(-50%); }
.ils-seats--full .ils-seats__label { color: var(--ink); }
.ils-nowrap { white-space: nowrap; }
