/* ==========================================================================
   Trix — design system
   Font e colori condivisi con TerPack (Poppins, rosso e verde del marchio).
   Struttura e ritmo ispirati a yucca.co.za: neutri caldi, titoli sottili,
   card in vetro smerigliato, linee sottili, molto spazio.
   ========================================================================== */

@font-face { font-family: "Poppins"; font-style: normal; font-weight: 200; font-display: swap; src: url("../fonts/poppins-latin-200-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 200; font-display: swap; src: url("../fonts/poppins-latin-200-italic.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/poppins-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 300; font-display: swap; src: url("../fonts/poppins-latin-300-italic.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-latin-600-normal.woff2") format("woff2"); }

:root {
	/* Marchio (come TerPack) */
	--tx-red: #EE2851;
	--tx-teal: #207167;
	--tx-teal-dark: #134A43;
	--tx-teal-light: #2F9283;
	--tx-teal-pale: color-mix(in srgb, var(--tx-teal-light) 45%, var(--tx-bg));

	/* Neutri */
	--tx-bg: #F3F4F1;
	--tx-cream: #FAFAF7;
	--tx-paper: #FFFFFF;
	--tx-sand: #DCE2DC;
	--tx-tile: #E8EBE7;
	--tx-ink: #151615;
	--tx-ink-2: #4A4F4C;
	--tx-muted: #666C69; /* testo secondario: 4.8:1 su carta (era #8C928F, 2.9:1) */
	--tx-red-text: #C81E42; /* rosso per testi piccoli: 5.1:1 (il rosso marchio resta per punti e icone) */
	--tx-line: #D3D8D3;
	--tx-line-dark: color-mix(in srgb, var(--tx-ink) 22%, transparent);

	/* Tipografia (scala fluida come il riferimento) */
	--tx-font: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
	--tx-fs-xs: clamp(13px, 0.2vw + 10px, 15px);
	--tx-fs-sm: clamp(14px, 0.28vw + 10px, 17px);
	--tx-fs-body: clamp(16px, 0.38vw + 10.5px, 21px);
	--tx-fs-lead: clamp(17px, 0.8vw + 8px, 30px);
	--tx-fs-h3: clamp(24px, 1.75vw + 8px, 56px);
	--tx-fs-h2: clamp(32px, 3.2vw + 6px, 96px);
	--tx-fs-display: clamp(38px, 5vw + 2px, 140px);

	/* Layout */
	--tx-side: clamp(16px, 7.2vw, 272px);
	--tx-gap: clamp(12px, 1.1vw, 28px);
	--tx-radius: clamp(14px, 0.95vw, 26px);
	--tx-header-h: clamp(64px, 4.6vw, 112px);
	--tx-section: clamp(80px, 9vw, 240px);
	--tx-ease: cubic-bezier(.22, .8, .2, 1);
	--tx-ease-io: cubic-bezier(.65, 0, .35, 1);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: clip; }

body.tx-site {
	margin: 0;
	background: var(--tx-bg);
	color: var(--tx-ink);
	font-family: var(--tx-font);
	font-size: var(--tx-fs-body);
	font-weight: 300;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}
.tx-site h1, .tx-site h2, .tx-site h3, .tx-site h4, .tx-site h5, .tx-site h6 {
	font-family: var(--tx-font); font-weight: 300; line-height: 1.12; letter-spacing: -0.02em; color: inherit; margin: 0;
}
.tx-site p { margin: 0; text-wrap: pretty; }
.tx-site h1, .tx-site h2, .tx-site h3 { text-wrap: balance; }
.tx-site a, .tx-site button, .tx-site summary, .tx-site label { touch-action: manipulation; }
.tx-site a { color: inherit; text-decoration: none; }
.tx-site img { max-width: 100%; height: auto; }
.tx-site ::selection { background: var(--tx-teal); color: var(--tx-bg); }
.tx-site :focus-visible { outline: 2px solid var(--tx-ink); outline-offset: 3px; border-radius: 2px; }
.tx-custom :focus-visible, .tx-mega__card:focus-visible, .tx-sol :focus-visible { outline-color: var(--tx-bg); }
.tx-sol__card:focus-visible { outline: 2px solid var(--tx-bg); outline-offset: 3px; }
/* Salta al contenuto */
.tx-site .skip-link:focus { position: fixed !important; z-index: 2000; top: 12px; left: 12px; width: auto; height: auto; clip: auto; white-space: normal; padding: 12px 18px; background: var(--tx-ink); color: var(--tx-bg); border-radius: 8px; font-size: 15px; }
.tx-content-anchor { display: block; height: 0; outline: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

.tx-site:not(.elementor-page) .site-main { padding: calc(var(--tx-header-h) + 60px) var(--tx-side) 100px; max-width: none; }

/* Contenitore Elementor che raccoglie le sezioni (classe tx-fullbleed) */
.elementor .tx-fullbleed { padding: 0 !important; margin: 0 !important; display: block !important; width: 100% !important; max-width: none !important; }
.tx-fullbleed > p:empty, .tx-fullbleed > .e-paragraph-base:empty { display: none !important; }
.tx-fullbleed > p { margin: 0 !important; }

.tx-wrap { padding-left: var(--tx-side); padding-right: var(--tx-side); }
.tx-h2 { font-size: var(--tx-fs-h2); font-weight: 200 !important; line-height: 1.1 !important; letter-spacing: -0.025em !important; }
.tx-h3 { font-size: var(--tx-fs-h3); font-weight: 300 !important; line-height: 1.15 !important; }
.tx-lead { font-size: var(--tx-fs-lead); }
.tx-dot { display: inline-block; width: .42em; height: .42em; border-radius: 50%; background: currentColor; margin-right: .8em; vertical-align: .14em; flex: none; }
.tx-dot { background: var(--tx-red); }
.tx-label { font-size: var(--tx-fs-sm); font-weight: 400; display: flex; align-items: center; }

/* Titoli divisi in righe/parole */
.tx-split { display: block; }
.tx-line { display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
.tx-w { display: inline-block; }
.tx-w__in { display: inline-block; will-change: transform; }
.tx-js .tx-split:not(.is-in) .tx-w__in { transform: translateY(110%); }

.tx-js .tx-reveal { opacity: 0; transform: translateY(24px); }

/* Testi piccoli: peso 400 per la leggibilità (Poppins 300 sotto i 17px è troppo sottile) */
.tx-gcard__text, .tx-sol__body p, .tx-cat__text, .tx-faq__a p, .tx-catrow__list li, .tx-footer__info, .tx-footer__bar,
.tx-std__text, .tx-mq__text, .tx-stat__label, .tx-sede__note, .tx-cform__consent, .tx-mega__card-text, .tx-mobile__cats a { font-weight: 400; }

/* Testo che "rotola" al passaggio (link e pulsanti) */
.tx-roll { position: relative; display: inline-block; overflow: hidden; vertical-align: top; }
.tx-roll > span { display: inline-block; transition: transform .5s var(--tx-ease); }
.tx-roll::after { content: attr(data-text); position: absolute; left: 0; top: 0; transform: translateY(105%); transition: transform .5s var(--tx-ease); white-space: nowrap; }
a:hover .tx-roll > span, a:focus-visible .tx-roll > span { transform: translateY(-105%); }
a:hover .tx-roll::after, a:focus-visible .tx-roll::after { transform: translateY(0); }

/* Pulsanti */
.tx-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .6em;
	font-size: var(--tx-fs-sm); font-weight: 400; line-height: 1;
	padding: 1.05em 1.6em; border-radius: calc(var(--tx-radius) * .45);
	border: 1px solid transparent; white-space: nowrap;
	transition: background-color .4s var(--tx-ease), color .4s var(--tx-ease), border-color .4s var(--tx-ease);
}
.tx-btn--sm { padding: .85em 1.25em; font-size: var(--tx-fs-xs); }
.tx-site .tx-btn--dark { background: var(--tx-ink); color: var(--tx-bg); }
.tx-site .tx-btn--dark:hover { background: var(--tx-teal); color: var(--tx-paper); }
.tx-site .tx-btn--line { border-color: var(--tx-ink); color: var(--tx-ink); }
.tx-site .tx-btn--line:hover { background: var(--tx-ink); color: var(--tx-bg); }
.tx-site .tx-btn--light { background: var(--tx-bg); color: var(--tx-teal-dark); }
.tx-site .tx-btn--light:hover { background: var(--tx-teal-pale); color: var(--tx-ink); }
.tx-arrow { width: 1.1em; height: 1.1em; flex: none; transition: transform .45s var(--tx-ease); }
a:hover > .tx-arrow, a:hover .tx-arrow { transform: translateX(.25em); }

/* Marchio */
.tx-mark { display: block; width: 100%; height: auto; overflow: visible; }

/* --------------------------------------------------------------------------
   Loader (solo Home, una volta per sessione)
   -------------------------------------------------------------------------- */
.tx-loader { display: none; }
.tx-js.tx-loading .tx-loader {
	display: grid; place-items: center;
	position: fixed; inset: 0; z-index: 1000; background: var(--tx-bg);
}
.tx-loader__inner { position: relative; width: min(70vw, 900px); aspect-ratio: 16 / 9; display: grid; place-items: center; }
.tx-loader__brand { position: relative; z-index: 2; display: flex; align-items: center; gap: clamp(10px, 1vw, 22px); }
.tx-loader__mark { width: clamp(46px, 4.4vw, 120px); }
.tx-loader__word { display: block; overflow: hidden; font-weight: 600; letter-spacing: .04em; font-size: clamp(40px, 4.2vw, 116px); line-height: 1; }
.tx-loader__word span { display: block; }
.tx-loader__stage { position: absolute; inset: 0; }
.tx-js.tx-loading .tx-loader { cursor: pointer; }
.tx-loader__img { position: absolute; width: 22%; filter: drop-shadow(0 20px 26px rgba(21, 22, 21, .14)); }
.tx-loader__img--0 { left: 0; top: 8%; }
.tx-loader__img--1 { right: 0; top: 2%; width: 26%; }
.tx-loader__img--2 { left: 10%; bottom: 0; width: 18%; }
.tx-loader__img--3 { right: 8%; bottom: 2%; width: 24%; }
.tx-loader__img--4 { left: 44%; top: -6%; width: 10%; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.tx-header { position: fixed; top: 0; left: 0; right: 0; z-index: 900; }
.admin-bar .tx-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .tx-header { top: 46px; } }
.tx-header__bar {
	position: relative; z-index: 3;
	height: var(--tx-header-h); display: flex; align-items: center; gap: clamp(20px, 3vw, 80px);
	padding: 0 var(--tx-side); background: var(--tx-bg);
	border-bottom: 1px solid transparent; transition: border-color .4s, background-color .4s;
}
.tx-header.is-scrolled .tx-header__bar, .tx-header.is-open .tx-header__bar { border-color: var(--tx-line); }
.tx-js .tx-header { transform: translateY(-100%); }
.tx-header.is-ready { transform: none; transition: transform .9s var(--tx-ease); }

.tx-logo { display: inline-flex; align-items: center; gap: .55em; color: var(--tx-ink); flex: none; }
.tx-logo img { display: block; height: calc(var(--tx-header-h) * .52); width: auto; }
.tx-logo__mark { width: calc(var(--tx-header-h) * .36); }
.tx-logo__type { display: flex; flex-direction: column; line-height: 1; }
.tx-logo__word { font-weight: 600; letter-spacing: .05em; font-size: calc(var(--tx-header-h) * .3); }
.tx-logo__since { font-size: calc(var(--tx-header-h) * .11); color: var(--tx-red); font-weight: 500; letter-spacing: .08em; margin-top: .35em; padding-left: .1em; }

.tx-nav { flex: 1; }
.tx-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(16px, 2vw, 56px); }
.tx-nav__link { position: relative; display: inline-flex; align-items: center; height: var(--tx-header-h); font-size: var(--tx-fs-sm); font-weight: 300; }
.tx-nav__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--tx-ink); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--tx-ease-io); }
.tx-nav__item.is-active .tx-nav__link::after, .tx-nav__item.is-current .tx-nav__link::after, .tx-nav__link:hover::after { transform: scaleX(1); }
.tx-nav__item.is-current .tx-nav__link { font-weight: 400; }

.tx-header__actions { display: flex; align-items: center; gap: clamp(12px, 1.4vw, 36px); margin-left: auto; }
.tx-header__phone { display: inline-flex; align-items: center; gap: .5em; font-size: var(--tx-fs-sm); }
.tx-header__phone svg { width: 1.1em; height: 1.1em; }
.tx-header__phone:hover { color: var(--tx-teal); }

.tx-burger { display: none; position: relative; width: 44px; height: 44px; border: 0; background: transparent; padding: 0; cursor: pointer; color: var(--tx-ink); }
.tx-burger span:not(.screen-reader-text) { position: absolute; left: 11px; right: 11px; height: 1.5px; background: currentColor; transition: transform .5s var(--tx-ease), top .5s var(--tx-ease); }
.tx-burger span:nth-child(1) { top: 17px; }
.tx-burger span:nth-child(2) { top: 26px; }
.tx-mobile-open .tx-burger span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.tx-mobile-open .tx-burger span:nth-child(2) { top: 21px; transform: rotate(-45deg); }

/* Mega menu */
.tx-mega {
	position: absolute; left: 0; right: 0; top: var(--tx-header-h); z-index: 2;
	background: var(--tx-bg); border-bottom: 1px solid var(--tx-line);
	clip-path: inset(0 0 100% 0); visibility: hidden;
	transition: clip-path .8s var(--tx-ease-io), visibility 0s .8s;
}
.tx-mega.is-open { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path .8s var(--tx-ease-io), visibility 0s; }
.tx-mega__inner { display: grid; grid-template-columns: 1fr minmax(260px, 24%); gap: var(--tx-gap); padding: clamp(24px, 2.2vw, 56px) var(--tx-side) clamp(32px, 3vw, 72px); }
.tx-mega__inner--cards { grid-template-columns: repeat(4, 1fr); }
.tx-mega__cats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 var(--tx-gap); align-content: start; }
.tx-mega__cats a { display: flex; align-items: center; gap: .9em; padding: .9em 0; border-bottom: 1px solid var(--tx-line); font-size: var(--tx-fs-body); }
.tx-mega__icon { display: grid; place-items: center; width: 2.4em; height: 2.4em; border-radius: calc(var(--tx-radius) * .5); background: var(--tx-tile); color: var(--tx-teal); flex: none; }
.tx-mega__icon svg { width: 62%; height: 62%; }
.tx-mega__cats a:hover .tx-mega__icon { background: var(--tx-teal); color: var(--tx-paper); }
.tx-mega__all a { font-weight: 400; justify-content: space-between; color: var(--tx-teal); }
.tx-mega__card {
	position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 6px;
	min-height: clamp(220px, 15vw, 420px); padding: clamp(16px, 1.3vw, 32px);
	border-radius: var(--tx-radius); overflow: hidden; color: var(--tx-paper); isolation: isolate;
}
.tx-mega__card-bg { position: absolute; inset: 0; z-index: -1; background: var(--tx-teal-dark); }
.tx-mega__card-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19, 74, 67, .72) 0%, rgba(19, 74, 67, .15) 45%, rgba(19, 74, 67, .55) 100%); }
.tx-mega__card-bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.4); transition: transform 1.6s var(--tx-ease); }
.tx-mega.is-open .tx-mega__card-bg img { transform: scale(1); }
.tx-mega__card:hover .tx-mega__card-bg img { transform: scale(1.06); }
.tx-mega__card-bg--paper { background: var(--tx-sand); }
.tx-mega__card-bg--paper::after { display: none; }
.tx-mega__card-bg .tx-mega__cutout { position: absolute; width: 62%; height: auto; right: -6%; bottom: 8%; object-fit: contain; filter: drop-shadow(0 18px 22px rgba(21, 22, 21, .18)); }
.tx-mega__promo { color: var(--tx-ink); }
.tx-mega__card-title { font-size: var(--tx-fs-lead); line-height: 1.15; max-width: 14ch; }
.tx-mega__card-text { font-size: var(--tx-fs-sm); max-width: 22ch; margin-top: auto; margin-bottom: .6em; }
.tx-mega__card-link { display: inline-flex; align-items: center; gap: .5em; font-size: var(--tx-fs-sm); }
.tx-mega__fx, .tx-mega__card { opacity: 1; }
.tx-mega__veil { position: fixed; inset: 0; z-index: 1; background: rgba(21, 22, 21, .25); opacity: 0; visibility: hidden; transition: opacity .6s, visibility 0s .6s; }
.tx-header.is-open .tx-mega__veil { opacity: 1; visibility: visible; transition: opacity .6s, visibility 0s; }

/* Menu mobile */
.tx-mobile {
	position: fixed; inset: 0; z-index: 890; background: var(--tx-bg);
	padding: calc(var(--tx-header-h) + 24px) var(--tx-side) 32px; overflow-y: auto;
	clip-path: inset(0 0 100% 0); visibility: hidden;
	transition: clip-path .8s var(--tx-ease-io), visibility 0s .8s;
}
.tx-mobile-open .tx-mobile { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path .8s var(--tx-ease-io), visibility 0s; }
.tx-mobile__list, .tx-mobile__cats { list-style: none; margin: 0; padding: 0; }
.tx-mobile__list a[aria-current] { color: var(--tx-teal); }
.tx-mobile__list a { display: block; font-size: clamp(28px, 7vw, 44px); font-weight: 200; line-height: 1.25; padding: .12em 0; }
.tx-mobile__label { margin-top: 32px !important; font-size: var(--tx-fs-xs); color: var(--tx-ink-2); text-transform: uppercase; letter-spacing: .1em; }
.tx-mobile__cats { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; margin-top: 8px; }
.tx-mobile__cats a { display: flex; align-items: center; min-height: 44px; padding: 6px 0; border-bottom: 1px solid var(--tx-line); font-size: 15px; }
.tx-mobile__foot { display: grid; gap: 10px; margin-top: 32px; }

@media (max-width: 1100px) {
	.tx-nav, .tx-header__phone { display: none; }
	.tx-burger { display: block; }
	.tx-header__actions .tx-btn { display: none; }
	.tx-mega { display: none; }
}
@media (min-width: 1101px) { .tx-mobile { display: none; } }

/* --------------------------------------------------------------------------
   HERO
   -------------------------------------------------------------------------- */
.tx-hero {
	position: relative; min-height: 100svh; overflow: hidden; isolation: isolate;
	display: flex; flex-direction: column;
	background: linear-gradient(180deg, var(--tx-bg) 0%, var(--tx-sand) 100%);
}
.tx-hero__bg { position: absolute; inset: 0; z-index: -1; }
.tx-hero__photo { position: absolute; inset: 0; margin: 0; overflow: hidden; }
.tx-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.tx-hero__scene { position: absolute; inset: 0; }
/* Piedistalli (come lo still life del riferimento) */
.tx-ped { position: absolute; bottom: 0; }
.tx-ped__front { position: absolute; inset: 0; background: linear-gradient(90deg, #F8F9F6 0%, #EEF0EC 55%, #E1E5E0 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8); }
.tx-ped__top { position: absolute; left: 0; right: 0; top: -2.2vw; height: 2.2vw; background: linear-gradient(180deg, #FFFFFF, #F4F5F2); transform: skewX(-30deg); transform-origin: bottom left; }
.tx-ped__obj { position: absolute; z-index: 2; left: 50%; bottom: calc(100% + .6vw); transform: translateX(-50%); filter: drop-shadow(0 2.4vw 2vw rgba(21, 22, 21, .2)); }
.tx-ped--a { right: 0; width: 34vw; height: 44%; }
.tx-ped--a .tx-ped__obj { width: 26vw; }
.tx-ped--b { right: 37vw; width: 17vw; height: 22%; }
.tx-ped--b .tx-ped__obj { width: 14vw; }
.tx-hero__float { position: absolute; filter: drop-shadow(0 2vw 2vw rgba(21, 22, 21, .16)); }
.tx-hero__float--1 { width: 7vw; right: 25vw; top: 18%; transform: rotate(-12deg); }

.tx-hero__inner {
	flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 6vh;
	padding: calc(var(--tx-header-h) + clamp(28px, 4vw, 110px)) var(--tx-side) clamp(28px, 6vh, 120px);
}
.tx-hero__title { font-size: var(--tx-fs-display); font-weight: 200 !important; line-height: 1.14 !important; letter-spacing: -0.03em !important; max-width: 12.5em; }
.tx-hero__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--tx-gap); max-width: 78%; }

/* Card in vetro */
.tx-gcard {
	position: relative; aspect-ratio: 1 / 1; border-radius: var(--tx-radius);
	background: rgba(255, 255, 255, .25); -webkit-backdrop-filter: blur(44px); backdrop-filter: blur(44px);
	padding: clamp(16px, 1.4vw, 36px); overflow: hidden; color: var(--tx-ink);
	display: flex; flex-direction: column; justify-content: center;
	transition: background-color .6s var(--tx-ease);
}
.tx-gcard__title { display: block; text-align: center; font-size: var(--tx-fs-lead); line-height: 1.15; transition: transform .7s var(--tx-ease), opacity .4s; }
.tx-gcard__body { position: absolute; inset: clamp(16px, 1.4vw, 36px); display: flex; flex-direction: column; justify-content: space-between; opacity: 0; transform: translateY(20px); transition: opacity .5s var(--tx-ease), transform .7s var(--tx-ease); }
.tx-gcard__text { font-size: var(--tx-fs-sm); line-height: 1.45; }
.tx-gcard__link { display: flex; justify-content: space-between; align-items: center; padding-top: .8em; border-top: 1px solid var(--tx-line-dark); font-size: var(--tx-fs-sm); }
@media (hover: hover) { .tx-gcard:hover { background: var(--tx-cream); } }
.tx-gcard:focus-visible { background: var(--tx-cream); }
.tx-gcard:focus-visible .tx-gcard__title { opacity: 0; transform: translateY(-20px); }
.tx-gcard:focus-visible .tx-gcard__body { opacity: 1; transform: none; transition-delay: .08s; }
@media (hover: hover) {
	.tx-gcard:hover .tx-gcard__title { opacity: 0; transform: translateY(-20px); }
	.tx-gcard:hover .tx-gcard__body { opacity: 1; transform: none; transition-delay: .08s; }
}
/* Touch: niente hover, la card mostra titolo + freccia e porta ai settori */
@media (hover: none) {
	.tx-gcard { justify-content: space-between; }
	.tx-gcard__title { text-align: left; }
	.tx-gcard::after { content: "→"; align-self: flex-end; font-size: var(--tx-fs-body); }
}

@media (max-width: 1100px) {
	.tx-hero__cards { max-width: none; }
	.tx-ped--a { width: 46vw; height: 36%; } .tx-ped--a .tx-ped__obj { width: 36vw; }
	.tx-ped--b { right: 49vw; width: 24vw; } .tx-ped--b .tx-ped__obj { width: 20vw; }
}
@media (max-width: 767px) {
	.tx-hero { min-height: 92svh; }
	.tx-hero__cards { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 58%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(var(--tx-side) * -1); padding: 0 var(--tx-side); scrollbar-width: none; }
	.tx-hero__cards::-webkit-scrollbar { display: none; }
	.tx-gcard { scroll-snap-align: start; aspect-ratio: 1.3 / 1; }
	.tx-ped--a { width: 64vw; height: 38%; } .tx-ped--a .tx-ped__obj { width: 46vw; }
	.tx-ped--b { display: none; }
	.tx-hero__float--1 { width: 16vw; right: 8vw; top: auto; bottom: 52%; }
	.tx-ped__top { top: -4vw; height: 4vw; }
}

/* --------------------------------------------------------------------------
   MARQUEE (due righe + prodotto flottante + invito)
   -------------------------------------------------------------------------- */
.tx-mq { position: relative; background: var(--tx-sand); padding: var(--tx-section) 0 calc(var(--tx-section) * 1.1); overflow: hidden; }
.tx-mq__rows { position: relative; padding: clamp(40px, 7vw, 200px) 0; }
.tx-mq__row { overflow: hidden; white-space: nowrap; }
.tx-mq__track { display: inline-flex; will-change: transform; }
.tx-mq__item { font-size: clamp(34px, 4.3vw, 124px); font-weight: 300; letter-spacing: -0.025em; line-height: 1.28; padding-right: .55em; }
.tx-mq__row:nth-child(2) .tx-mq__track { transform: translateX(-25%); }
.tx-mq__float { position: absolute; left: 50%; top: 50%; width: clamp(220px, 30vw, 820px); transform: translate(-50%, -50%); pointer-events: none; }
.tx-mq__img { display: block; width: 100%; filter: drop-shadow(0 3vw 2.6vw rgba(21, 22, 21, .22)); }
.tx-mq__cta { display: flex; flex-direction: column; align-items: center; gap: clamp(20px, 2vw, 48px); padding: clamp(40px, 6vw, 160px) var(--tx-side) 0; text-align: center; }
.tx-mq__text { max-width: 30em; font-size: var(--tx-fs-body); }

/* --------------------------------------------------------------------------
   SETTORI (a tutto schermo)
   -------------------------------------------------------------------------- */
.tx-sol { position: relative; min-height: 112svh; overflow: hidden; isolation: isolate; display: flex; align-items: flex-start; background: var(--tx-teal-dark); color: var(--tx-ink); }
.tx-sol__bgs { position: absolute; inset: 0; z-index: -1; }
.tx-sol__bg { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1s var(--tx-ease); overflow: hidden; }
.tx-sol__bg.is-active { opacity: 1; }
.tx-sol__bg img { width: 100%; height: 115%; object-fit: cover; transform: scale(1.08); transition: transform 2s var(--tx-ease); }
.tx-sol__bg.is-active img { transform: scale(1); }
.tx-sol__bgs::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21, 22, 21, .12), rgba(21, 22, 21, 0) 40%, rgba(21, 22, 21, .2)); pointer-events: none; }
.tx-sol__inner { width: 100%; padding: clamp(60px, 8vw, 220px) var(--tx-side); }
.tx-sol__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--tx-gap); align-items: start; }
.tx-sol__card {
	position: relative; border-radius: var(--tx-radius); min-height: clamp(200px, 15vw, 420px);
	background: rgba(250, 250, 247, .66); -webkit-backdrop-filter: blur(40px) saturate(.7); backdrop-filter: blur(40px) saturate(.7);
	border: 1px solid rgba(255, 255, 255, .35);
	padding: clamp(18px, 1.6vw, 40px); color: var(--tx-ink); cursor: pointer;
	display: flex; flex-direction: column; justify-content: center;
	transition: background-color .6s var(--tx-ease), color .6s var(--tx-ease), min-height .8s var(--tx-ease);
}
.tx-sol__title { font-size: var(--tx-fs-lead) !important; text-align: center; font-weight: 300 !important; transition: transform .7s var(--tx-ease); }
.tx-sol__body { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .8s var(--tx-ease), opacity .5s var(--tx-ease); }
.tx-sol__body-in { overflow: hidden; min-height: 0; }
.tx-sol__body p { font-size: var(--tx-fs-sm); line-height: 1.5; }
.tx-sol__link { display: flex; justify-content: space-between; align-items: center; margin-top: 1.4em; padding-top: .9em; border-top: 1px solid var(--tx-line-dark); font-size: var(--tx-fs-sm); }
.tx-sol__card.is-active { background: var(--tx-cream); color: var(--tx-ink); justify-content: flex-start; min-height: clamp(320px, 24vw, 640px); }
.tx-sol__card.is-active .tx-sol__title { text-align: left; margin-bottom: .8em !important; }
.tx-sol__card.is-active .tx-sol__body { grid-template-rows: 1fr; opacity: 1; }
@media (max-width: 1100px) { .tx-sol__cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) {
	.tx-sol { min-height: 0; }
	.tx-sol__cards { grid-template-columns: 1fr; }
	.tx-sol__card, .tx-sol__card.is-active { min-height: 0; }
	.tx-sol__card:not(.is-active) { padding-top: 22px; padding-bottom: 22px; }
}

/* --------------------------------------------------------------------------
   INFO (chi siamo, numeri, mission/vision)
   -------------------------------------------------------------------------- */
.tx-info { background: var(--tx-cream); padding: var(--tx-section) 0; }
.tx-info__head { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 4vw, 120px); align-items: start; }
.tx-info__intro { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(20px, 1.8vw, 44px); padding-top: .5em; max-width: 30em; }
.tx-info__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--tx-gap); margin-top: clamp(60px, 6vw, 160px); }
.tx-stat { padding-top: 1em; border-top: 1px solid var(--tx-ink); }
.tx-stat__num { font-size: var(--tx-fs-h2); font-weight: 200; line-height: 1; letter-spacing: -0.03em; color: var(--tx-teal); }
.tx-stat__num small { font-size: .45em; margin-left: .15em; }
.tx-stat__label { margin-top: .9em !important; font-size: var(--tx-fs-sm); color: var(--tx-ink-2); max-width: 16em; }
.tx-info__rows { margin-top: clamp(60px, 6vw, 160px); }
.tx-info__row { position: relative; display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 4vw, 120px); padding: clamp(32px, 3.4vw, 90px) 0; }
.tx-info__rule { position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--tx-line); transform-origin: left; }
.tx-js .tx-info__rule { transform: scaleX(0); }
.tx-info__label { font-size: var(--tx-fs-lead) !important; display: flex; align-items: center; }
.tx-info__text { max-width: 30em; color: var(--tx-ink-2); }
@media (max-width: 900px) {
	.tx-info__head, .tx-info__row { grid-template-columns: 1fr; gap: 16px; }
	.tx-info__stats { grid-template-columns: 1fr 1fr; row-gap: 32px; }
}

/* --------------------------------------------------------------------------
   CATEGORIE
   -------------------------------------------------------------------------- */
.tx-cats { background: var(--tx-cream); padding: 0 0 var(--tx-section); }
.tx-cats__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: clamp(28px, 2.6vw, 72px); }
.tx-cats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(28px, 2.4vw, 64px) var(--tx-gap); }
.tx-cat { display: flex; flex-direction: column; color: var(--tx-ink); }
.tx-cat__media { position: relative; display: grid; place-items: center; aspect-ratio: 1 / 1; border-radius: var(--tx-radius); background: var(--tx-tile); overflow: hidden; margin-bottom: 1em; }
.tx-cat__img { width: 76%; height: 76%; object-fit: contain; filter: drop-shadow(0 1.6vw 1.4vw rgba(21, 22, 21, .14)); transition: transform 1s var(--tx-ease); }
.tx-cat__icon { width: 34%; color: var(--tx-teal); transition: transform 1s var(--tx-ease), color .5s; }
.tx-cat__icon svg { width: 100%; height: auto; display: block; }
.tx-cat:hover .tx-cat__img, .tx-cat:hover .tx-cat__icon { transform: scale(1.08); }
.tx-cat:hover .tx-cat__icon { color: var(--tx-red); }
.tx-cat__title { font-size: var(--tx-fs-body); font-weight: 400; }
.tx-cat__text { font-size: var(--tx-fs-sm); color: var(--tx-ink-2); margin-top: .3em; line-height: 1.45; }
@media (max-width: 1000px) { .tx-cats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .tx-cats__head { flex-direction: column; align-items: flex-start; } }

/* --------------------------------------------------------------------------
   PACKAGING PERSONALIZZATO (verde scuro)
   -------------------------------------------------------------------------- */
.tx-custom { position: relative; background: var(--tx-teal-dark); color: var(--tx-bg); overflow: hidden; }
.tx-custom__inner { position: relative; padding-top: var(--tx-section); padding-bottom: clamp(60px, 6vw, 160px); display: flex; flex-direction: column; align-items: flex-start; gap: clamp(24px, 2.4vw, 60px); }
.tx-custom__label { font-size: var(--tx-fs-sm); color: var(--tx-teal-pale); }
.tx-custom__title { max-width: 13em; position: relative; z-index: 2; }
.tx-custom__float { position: absolute; right: calc(var(--tx-side) * .5); top: 10%; width: clamp(200px, 30vw, 820px); pointer-events: none; }
.tx-custom__img { display: block; width: 100%; filter: drop-shadow(0 3vw 3vw rgba(0, 0, 0, .35)); }
.tx-custom__mqwrap { position: relative; }
.tx-mq-toggle {
	position: absolute; right: var(--tx-side); top: 50%; transform: translateY(-50%); z-index: 2;
	width: 44px; height: 44px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--tx-bg) 40%, transparent);
	background: var(--tx-teal-dark); color: var(--tx-bg); cursor: pointer; display: grid; place-items: center; padding: 0;
	transition: background-color .3s var(--tx-ease);
}
.tx-mq-toggle:hover { background: var(--tx-teal); }
.tx-mq-toggle__pause { width: 12px; height: 14px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.tx-mq-toggle[aria-pressed="true"] .tx-mq-toggle__pause { width: 0; height: 0; border-style: solid; border-width: 7px 0 7px 12px; border-color: transparent transparent transparent currentColor; margin-left: 3px; }
.tx-custom__mq { display: block; border-top: 1px solid color-mix(in srgb, var(--tx-bg) 22%, transparent); padding: clamp(28px, 3vw, 80px) 0; overflow: hidden; white-space: nowrap; color: var(--tx-bg); }
.tx-custom__mq-track { display: inline-flex; will-change: transform; }
.tx-custom__mq-item { display: inline-flex; align-items: center; gap: .5em; padding-right: 1em; font-size: clamp(26px, 2.7vw, 80px); font-weight: 200; letter-spacing: -0.02em; }
.tx-custom__mq-arrow { width: .9em; height: .9em; color: var(--tx-red); }
.tx-custom__mq:hover .tx-custom__mq-item { color: var(--tx-teal-pale); }
@media (max-width: 767px) { .tx-custom__float { position: relative; right: auto; top: auto; width: 70%; align-self: flex-end; margin-top: -10px; } }

/* --------------------------------------------------------------------------
   STANDARD / RETE
   -------------------------------------------------------------------------- */
.tx-std { background: var(--tx-cream); padding: var(--tx-section) 0; }
.tx-std__head { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 4vw, 120px); margin-bottom: clamp(40px, 4vw, 110px); }
.tx-std__text { font-size: var(--tx-fs-sm); color: var(--tx-ink-2); max-width: 34em; }
.tx-std__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(32px, 4vw, 120px); }
.tx-std__item { display: flex; align-items: center; padding: clamp(18px, 1.7vw, 44px) 0; border-bottom: 1px solid var(--tx-line); font-size: var(--tx-fs-lead); font-weight: 300; }
@media (max-width: 900px) { .tx-std__head, .tx-std__list { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   FAQ
   -------------------------------------------------------------------------- */
.tx-faq { background: var(--tx-bg); padding: var(--tx-section) 0; }
.tx-faq__inner { display: grid; grid-template-columns: 1fr 1.6fr; gap: clamp(32px, 4vw, 120px); }
.tx-faq__head { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(20px, 2vw, 48px); }
.tx-faq__item { border-bottom: 1px solid var(--tx-line); }
.tx-faq__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: clamp(18px, 1.5vw, 40px) 0; cursor: pointer; font-size: var(--tx-fs-body); font-weight: 400; }
.tx-faq__item summary::-webkit-details-marker { display: none; }
.tx-faq__icon { position: relative; width: 1em; height: 1em; flex: none; }
.tx-faq__icon::before, .tx-faq__icon::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: var(--tx-ink); transition: transform .5s var(--tx-ease); }
.tx-faq__icon::after { transform: rotate(90deg); }
.tx-faq__item[open] .tx-faq__icon::after { transform: rotate(0); }
.tx-faq__a { overflow: hidden; }
.tx-faq__a p { padding: 0 3em clamp(18px, 1.5vw, 40px) 0; color: var(--tx-ink-2); font-size: var(--tx-fs-body); max-width: 40em; }
.tx-faq__item summary:hover { color: var(--tx-teal); }
@media (max-width: 900px) { .tx-faq__inner { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   FORM CONTATTI [tx_contact]
   -------------------------------------------------------------------------- */
.tx-cform { padding: var(--tx-section) var(--tx-side); background: var(--tx-cream); }
.tx-cform__inner { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(32px, 5vw, 140px); }
.tx-cform__intro { display: flex; flex-direction: column; gap: 22px; }
.tx-cform__title em { font-style: normal; color: var(--tx-teal); }
.tx-cform__text { color: var(--tx-ink-2); max-width: 26em; }
.tx-cform__directs { display: grid; gap: 10px; margin-top: 10px; }
.tx-cform__direct { display: flex; flex-direction: column; padding: 14px 0; border-top: 1px solid var(--tx-line); }
.tx-cform__direct span { font-size: var(--tx-fs-xs); color: var(--tx-muted); }
.tx-cform__direct strong { font-weight: 400; font-size: var(--tx-fs-lead); }
.tx-cform__form { display: flex; flex-direction: column; gap: 26px; }
.tx-cform__trap { position: absolute; left: -9999px; }
.tx-cform__topics { border: 0; margin: 0; padding: 0; }
.tx-cform__topics legend { font-size: var(--tx-fs-sm); margin-bottom: 12px; }
.tx-cform__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.tx-cform__chip input { position: absolute; opacity: 0; }
.tx-cform__chip span { display: inline-block; padding: .7em 1.2em; border: 1px solid var(--tx-line-dark); border-radius: 999px; font-size: var(--tx-fs-sm); cursor: pointer; transition: all .3s; }
.tx-cform__chip input:checked + span { background: var(--tx-ink); color: var(--tx-bg); border-color: var(--tx-ink); }
.tx-cform__chip input:focus-visible + span { outline: 2px solid var(--tx-red); outline-offset: 2px; }
.tx-cform__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 24px; }
.tx-cform__field { position: relative; display: block; }
.tx-cform__field--full { grid-column: 1 / -1; }
.tx-cform__field input, .tx-cform__field textarea { width: 100%; border: 0; border-bottom: 1px solid var(--tx-ink); background: transparent; padding: 24px 0 10px; font: inherit; color: inherit; border-radius: 0; outline: 0; }
.tx-cform__field span { position: absolute; left: 0; top: 22px; color: var(--tx-muted); transition: all .3s var(--tx-ease); pointer-events: none; }
.tx-cform__field input:focus + span, .tx-cform__field input:not(:placeholder-shown) + span,
.tx-cform__field textarea:focus + span, .tx-cform__field textarea:not(:placeholder-shown) + span { top: 0; font-size: var(--tx-fs-xs); color: var(--tx-teal); }
.tx-cform__foot { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.tx-cform__consent { display: flex; gap: 10px; font-size: var(--tx-fs-xs); color: var(--tx-ink-2); max-width: 30em; }
.tx-cform__consent a { text-decoration: underline; }
.tx-cform__submit { display: inline-flex; align-items: center; gap: .6em; padding: 1.05em 1.6em; border: 0; border-radius: calc(var(--tx-radius) * .45); background: var(--tx-ink); color: var(--tx-bg); font: inherit; font-size: var(--tx-fs-sm); cursor: pointer; transition: background .4s; }
.tx-cform__submit:hover { background: var(--tx-teal); }
.tx-cform__submit[aria-busy="true"] { opacity: .6; cursor: progress; }
.tx-cform__submit svg { width: 1.1em; height: 1.1em; }
.tx-cform__notice { padding: 14px 18px; border-radius: 10px; font-size: var(--tx-fs-sm); }
.tx-cform__notice.is-ok { background: var(--tx-teal-pale); }
.tx-cform__notice.is-error { background: color-mix(in srgb, var(--tx-red) 18%, var(--tx-bg)); }
@media (max-width: 900px) { .tx-cform__inner, .tx-cform__grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   FOOTER
   -------------------------------------------------------------------------- */
.tx-footer { background: var(--tx-sand); color: var(--tx-ink); }
.tx-footer__inner { padding: clamp(60px, 7vw, 200px) var(--tx-side) clamp(16px, 1.4vw, 36px); }
.tx-footer__claim { font-size: var(--tx-fs-h3); font-weight: 300; letter-spacing: -0.02em; margin-bottom: clamp(32px, 4vw, 110px) !important; }
.tx-footer__main { display: grid; grid-template-columns: 1fr 3fr; gap: var(--tx-gap); align-items: end; }
.tx-footer__mark { display: block; width: 72%; max-width: 360px; }
.tx-footer__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--tx-gap); }
.tx-footer__card {
	position: relative; display: grid; place-items: center; text-align: center; aspect-ratio: 1 / 1.05;
	border: 1px solid color-mix(in srgb, var(--tx-teal-dark) 45%, transparent); border-radius: var(--tx-radius);
	overflow: hidden; isolation: isolate; padding: 16px; font-size: var(--tx-fs-body); transition: color .6s var(--tx-ease);
}
.tx-footer__card-bg { position: absolute; inset: 0; z-index: -1; background: var(--tx-teal-dark); clip-path: inset(100% 0 0 0); transition: clip-path .8s var(--tx-ease-io); }
.tx-footer__card-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .45; transform: scale(1.3); transition: transform 1.4s var(--tx-ease); }
.tx-footer__card:hover { color: var(--tx-paper); }
.tx-footer__card:hover .tx-footer__card-bg { clip-path: inset(0 0 0 0); }
.tx-footer__card:hover .tx-footer__card-bg img { transform: scale(1); }
.tx-footer__info { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--tx-gap); margin-top: clamp(48px, 5vw, 140px); font-size: var(--tx-fs-sm); }
.tx-footer__label { color: var(--tx-teal-dark); font-weight: 500; margin-bottom: .5em !important; }
.tx-footer__info a:hover { color: var(--tx-teal); }
.tx-footer__bar {
	display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
	margin-top: clamp(40px, 4vw, 110px); padding: clamp(12px, .9vw, 22px) clamp(16px, 1.3vw, 32px);
	border: 1px solid color-mix(in srgb, var(--tx-teal-dark) 45%, transparent); border-radius: calc(var(--tx-radius) * .6);
	font-size: var(--tx-fs-xs);
}
.tx-footer__bar-left, .tx-footer__bar-right { display: flex; align-items: center; gap: clamp(12px, 1.4vw, 32px); flex-wrap: wrap; }
.tx-footer__social { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; margin: -10px 0; }
.tx-footer__social svg { width: 20px; height: 20px; display: block; }
.tx-footer__bar a:hover { color: var(--tx-teal); }
@media (max-width: 900px) {
	.tx-footer__main { grid-template-columns: 1fr; }
	.tx-footer__mark { width: 90px; }
	.tx-footer__cards { grid-template-columns: 1fr 1fr; }
	.tx-footer__info { grid-template-columns: 1fr 1fr; row-gap: 28px; }
}
@media (max-width: 520px) { .tx-footer__info { grid-template-columns: 1fr; } }


/* --------------------------------------------------------------------------
   PAGINE INTERNE
   -------------------------------------------------------------------------- */
.tx-ph { background: var(--tx-bg); padding: calc(var(--tx-header-h) + clamp(48px, 6vw, 170px)) 0 clamp(48px, 5vw, 140px); }
.tx-ph__head { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px clamp(32px, 4vw, 120px); align-items: end; }
.tx-ph__head > .tx-label { grid-column: 1 / -1; }
.tx-ph__title { font-size: var(--tx-fs-display); font-weight: 200 !important; line-height: 1.12 !important; letter-spacing: -0.03em !important; }
.tx-ph__side { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(20px, 1.8vw, 44px); padding-bottom: .6em; }
.tx-ph__text { color: var(--tx-ink-2); max-width: 30em; }
.tx-ph__media { margin: clamp(40px, 4.4vw, 120px) 0 0; border-radius: var(--tx-radius); overflow: hidden; }
.tx-ph__media--photo { aspect-ratio: 21 / 9; }
.tx-ph__media--photo img { width: 100%; height: 115%; object-fit: cover; }
.tx-ph__media--cutout { position: relative; aspect-ratio: 21 / 8; background: linear-gradient(180deg, var(--tx-bg), var(--tx-sand)); display: grid; place-items: center; }
.tx-ph__cutout { width: min(46%, 760px); }
.tx-ph__cutout img { width: 100%; filter: drop-shadow(0 3vw 2.4vw rgba(21, 22, 21, .2)); }
@media (max-width: 900px) {
	.tx-ph__head { grid-template-columns: 1fr; }
	.tx-ph__media--photo { aspect-ratio: 4 / 3; }
	.tx-ph__media--cutout { aspect-ratio: 4 / 3; }
	.tx-ph__cutout { width: 72%; }
}

/* Catalogo */
.tx-catalog { background: var(--tx-cream); padding-bottom: var(--tx-section); }
.tx-catalog__nav { position: sticky; top: var(--tx-header-h); z-index: 20; background: color-mix(in srgb, var(--tx-cream) 92%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--tx-line); }
.admin-bar .tx-catalog__nav { top: calc(var(--tx-header-h) + 32px); }
.tx-catalog__nav-in { display: flex; gap: clamp(6px, .6vw, 14px); overflow-x: auto; padding: clamp(10px, .8vw, 18px) var(--tx-side); scrollbar-width: none; }
.tx-catalog__nav-in::-webkit-scrollbar { display: none; }
.tx-catalog__nav a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: .5em 1.1em; border: 1px solid var(--tx-line-dark); border-radius: 999px; font-size: var(--tx-fs-xs); transition: all .35s var(--tx-ease); }
.tx-catalog__nav a:hover, .tx-catalog__nav a.is-active { background: var(--tx-ink); color: var(--tx-bg); border-color: var(--tx-ink); }
.tx-catrow { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 4vw, 120px); padding: clamp(48px, 5vw, 140px) 0; border-bottom: 1px solid var(--tx-line); scroll-margin-top: calc(var(--tx-header-h) + 80px); }
.tx-catrow__media { margin: 0; }
.tx-catrow__media .tx-cat__icon { width: 30%; }
.tx-catrow__num { font-size: var(--tx-fs-sm); color: var(--tx-red-text); font-weight: 500; }
.tx-catrow__title { margin: .3em 0 .5em !important; }
.tx-catrow__text { color: var(--tx-ink-2); max-width: 32em; }
.tx-catrow__list { list-style: none; margin: clamp(24px, 2.4vw, 60px) 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(20px, 2.4vw, 60px); }
.tx-catrow__list li { display: flex; align-items: center; padding: .9em 0; border-top: 1px solid var(--tx-line); font-size: var(--tx-fs-sm); }
.tx-catrow__ask { display: inline-flex; align-items: center; gap: .6em; margin-top: clamp(24px, 2vw, 52px); color: var(--tx-teal); font-weight: 400; }
.tx-catalog__more { margin-top: clamp(40px, 4vw, 110px) !important; max-width: 40em; color: var(--tx-ink-2); }
.tx-catalog__more a { color: var(--tx-teal); text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 900px) {
	.tx-catrow { grid-template-columns: 1fr; }
	.tx-catrow__media { max-width: 420px; }
	.tx-catrow__list { grid-template-columns: 1fr; }
}

@media (pointer: coarse) { .tx-catalog__nav a, .tx-btn { min-height: 44px; } }

/* Testo a due colonne */
.tx-text { background: var(--tx-cream); padding: var(--tx-section) 0; }
.tx-text__grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 4vw, 120px); }
.tx-text__grid .tx-label { margin-bottom: 1.4em !important; }
.tx-text__body { display: flex; flex-direction: column; gap: 1.1em; color: var(--tx-ink-2); max-width: 32em; padding-top: .6em; }
.tx-text__img { margin: clamp(48px, 5vw, 140px) 0 0; border-radius: var(--tx-radius); overflow: hidden; aspect-ratio: 21 / 9; }
.tx-text__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .tx-text__grid { grid-template-columns: 1fr; } .tx-text__img { aspect-ratio: 4 / 3; } }

/* Recapiti */
.tx-cinfo { background: var(--tx-bg); padding: 0 0 var(--tx-section); }
.tx-cinfo__direct { display: flex; flex-wrap: wrap; gap: 8px clamp(24px, 3vw, 80px); align-items: baseline; padding-bottom: clamp(32px, 3vw, 80px); border-bottom: 1px solid var(--tx-ink); }
.tx-cinfo__big { font-size: var(--tx-fs-h2); font-weight: 200; letter-spacing: -0.03em; line-height: 1.1; }
.tx-cinfo__big:hover { color: var(--tx-teal); }
.tx-cinfo__hours { font-size: var(--tx-fs-sm); color: var(--tx-ink-2); }
.tx-cinfo__sedi { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--tx-gap); margin-top: clamp(32px, 3vw, 80px); }
.tx-sede { display: flex; flex-direction: column; gap: .6em; padding: clamp(20px, 1.8vw, 44px); border-radius: var(--tx-radius); background: var(--tx-paper); min-height: clamp(220px, 14vw, 380px); }
.tx-sede__label { font-size: var(--tx-fs-sm); color: var(--tx-teal); font-weight: 500; }
.tx-sede__addr { font-size: var(--tx-fs-lead); line-height: 1.3; }
.tx-sede__note { font-size: var(--tx-fs-sm); color: var(--tx-ink-2); }
.tx-sede__map { margin-top: auto; display: inline-flex; align-items: center; gap: .5em; font-size: var(--tx-fs-sm); padding-top: .9em; border-top: 1px solid var(--tx-line); }
.tx-sede__map:hover { color: var(--tx-teal); }
@media (max-width: 900px) { .tx-cinfo__sedi { grid-template-columns: 1fr; } }

/* Riduzione movimento */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
html:not(.tx-js) .tx-mq-toggle { display: none; }
