/* ==========================================================================
   DC Ricambi – foglio di stile
   Rosso e nero del marchio, grigi "officina", Archivo a larghezza variabile:
   largo e pesante per i titoli (come la scritta RICAMBI AUTO del logo),
   normale per i testi, stretto per i codici articolo.
   ========================================================================== */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
}

:root {
	--dc-red: #E92028;      /* logo, dettagli grafici */
	--dc-red-btn: #D41C24;  /* pulsanti: contrasto AA con il bianco */
	--dc-red-ink: #C4161D;  /* testo e link rossi su chiaro */
	--dc-red-dark: #FF6B70; /* link rossi su scuro */
	--ink: #1C1F22;
	--ink-2: #545B62;
	--line: #D6DADE;
	--line-2: #E7EAED;
	--paper: #FFFFFF;
	--steel: #EEF0F2;
	--asphalt: #24282C;
	--asphalt-2: #2F3439;
	--on-dark: #C9CED3;
	--font: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--wrap: 1240px;
	--gut: clamp(16px, 4vw, 40px);
	--r: 4px;
	--head-h: 84px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--head-h) + 16px); }
body {
	margin: 0;
	font-family: var(--font);
	font-size: 1.0625rem;
	line-height: 1.55;
	font-stretch: 100%;
	color: var(--ink);
	background: var(--paper);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--dc-red-ink); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.1; color: var(--ink); }
h1, h2 { font-stretch: 125%; font-weight: 800; letter-spacing: -.012em; }
h2 { font-size: clamp(1.6rem, 1.15rem + 1.6vw, 2.35rem); }
h3 { font-size: 1.2rem; font-weight: 700; font-stretch: 105%; }
ul, ol { padding-left: 1.2em; }
dl, dd { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.site-foot :focus-visible, .cta :focus-visible, .topbar :focus-visible { outline-color: #fff; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--ink); color: #fff; padding: 10px 16px; }
.skip:focus { top: 8px; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding-inline: var(--gut); }
.wrap--text { max-width: calc(760px + 2 * var(--gut)); padding-block: 40px 80px; }
.muted { color: var(--ink-2); }
.ico { flex: none; }

/* --------------------------------------------------------------- pulsanti */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	padding: .68em 1.15em; border: 2px solid transparent; border-radius: var(--r);
	font-weight: 650; font-size: 1rem; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.btn--primary { background: var(--dc-red-btn); color: #fff; }
.btn--primary:hover { background: #B5141B; }
.btn--ghost { border-color: var(--ink); color: var(--ink); background: transparent; }
.btn--ghost:hover { background: var(--ink); color: #fff; }
.btn--light { background: #fff; color: var(--ink); }
.btn--light:hover { background: var(--steel); }
.btn--lg { font-size: 1.0625rem; padding: .85em 1.35em; }
.btn--block { width: 100%; }
.icon-btn {
	display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0;
	border: 0; border-radius: var(--r); background: transparent; color: var(--ink); cursor: pointer;
}
.icon-btn:hover { background: var(--steel); }
.link-more { font-weight: 650; white-space: nowrap; }

/* ------------------------------------------------------------- intestazione */
.topbar { background: var(--asphalt); color: var(--on-dark); font-size: .875rem; }
.topbar__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.topbar__txt { margin: 0; }
.topbar__links { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0; }
.topbar a { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.topbar a:hover { text-decoration: underline; }
.topbar .ico { width: 16px; height: 16px; }

.site-head { position: sticky; top: 0; z-index: 40; background: #fff; border-bottom: 1px solid var(--line); }
.admin-bar .site-head { top: 32px; }
.site-head__in { display: flex; align-items: center; gap: 24px; height: var(--head-h); }
.logo img, .custom-logo { height: 60px; width: auto; }
.nav { margin-left: auto; }
.nav__list { display: flex; list-style: none; margin: 0; padding: 0; gap: 4px; }
.nav__list a {
	display: block; padding: 10px 14px; color: var(--ink); text-decoration: none;
	font-weight: 600; font-size: 1rem; position: relative;
}
.nav__list a::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 3px;
	background: var(--dc-red); transform: scaleX(0); transition: transform .15s;
}
.nav__list a:hover::after, .nav__list .current-menu-item > a::after { transform: scaleX(1); }
.nav__extra { display: none; }
.site-head__act { display: flex; align-items: center; gap: 8px; }
.nav-toggle { display: none; }
.nav-toggle .i-close { display: none; }

.search-pop { border-top: 1px solid var(--line); background: #fff; padding-block: 16px; box-shadow: 0 12px 24px -16px rgba(28,31,34,.35); }
.search-pop .wrap { display: flex; gap: 8px; align-items: flex-start; }
.search-pop .qs { flex: 1; }

/* ------------------------------------------------------- ricerca istantanea */
.qs { position: relative; max-width: 640px; }
.qs__box {
	display: flex; align-items: center; background: #fff; border: 2px solid var(--ink);
	border-radius: 6px; padding-left: 12px;
}
.qs__box:focus-within { box-shadow: 0 0 0 3px rgba(233,32,40,.25); }
.qs__ico { color: var(--ink-2); }
.qs input {
	flex: 1; min-width: 0; border: 0; background: transparent; padding: 12px 10px; font-size: 1.05rem;
	outline: none; -webkit-appearance: none; appearance: none;
}
.qs input::-webkit-search-cancel-button { display: none; }
.qs__go { border: 0; background: var(--ink); color: #fff; font-weight: 650; padding: 0 18px; align-self: stretch; cursor: pointer; border-radius: 0 3px 3px 0; }
.qs__go:hover { background: var(--dc-red-btn); }
.qs--big input { font-size: 1.15rem; padding-block: 15px; }
.qs__list {
	position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px); margin: 0; padding: 6px 0;
	list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 6px;
	box-shadow: 0 18px 40px -20px rgba(28,31,34,.45); max-height: 60vh; overflow: auto;
}
.qs__group { padding: 10px 14px 4px; font-size: .8rem; font-weight: 700; color: var(--ink-2); }
.qs__opt a { display: flex; gap: 10px; align-items: baseline; padding: 8px 14px; color: var(--ink); text-decoration: none; }
.qs__opt a:hover, .qs__opt[aria-selected="true"] a { background: var(--steel); }
.qs__opt b { font-weight: 700; }
.qs__opt small { color: var(--ink-2); font-size: .85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qs__opt .code { font-stretch: 78%; font-weight: 700; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.qs__empty { padding: 10px 14px; color: var(--ink-2); }

/* -------------------------------------------------------------------- hero */
.hero { padding-block: clamp(32px, 6vw, 72px) 0; overflow: hidden; }
.hero__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.hero__title {
	font-size: clamp(2.2rem, 1.2rem + 3.2vw, 3.75rem); line-height: 1; letter-spacing: -.02em;
	margin-bottom: .45em; text-wrap: balance;
}
.hero__lead { font-size: 1.15rem; color: var(--ink-2); max-width: 46ch; margin-bottom: 1.5em; }
.hero__hint { font-size: .9rem; color: var(--ink-2); margin: .7em 0 1.6em; }
.hero__act { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__map { position: relative; margin-right: calc(-1 * var(--gut)); }

.map { display: block; width: 100%; overflow: hidden; }
.map__sic { fill: #E2E5E8; stroke: #B9C0C7; stroke-width: 1.2; stroke-linejoin: round; }
.map__cal { fill: #F2F4F5; stroke: #D3D8DC; stroke-width: 1.2; stroke-dasharray: 4 4; }
.map__note { font-size: 21px; fill: #8A9198; font-weight: 600; font-stretch: 110%; }
.map__line { fill: none; stroke: var(--ink-2); stroke-width: 1.3; }
.map__pin { fill: var(--dc-red); stroke: #fff; stroke-width: 3; transform-box: fill-box; transform-origin: center; }
.map__label { font-size: 30px; font-weight: 750; font-stretch: 115%; fill: var(--ink); }
.map__tel { font-size: 20px; fill: var(--ink-2); font-variant-numeric: tabular-nums; }
.map__sede { cursor: pointer; }
.map__sede:hover .map__label, .map__sede:focus .map__label { fill: var(--dc-red-ink); }
.map__sede:hover .map__pin, .map__sede:focus .map__pin { fill: var(--ink); }
.map__sede:focus { outline: none; }
.map__sede:focus-visible .map__label { text-decoration: underline; }
@media (prefers-reduced-motion: no-preference) {
	.map--hero .map__pin { animation: pin-in .45s cubic-bezier(.3,1.6,.5,1) both; animation-delay: calc(250ms + var(--i) * 140ms); }
	.map--hero .map__label, .map--hero .map__tel, .map--hero .map__line { animation: fade-in .4s ease both; animation-delay: calc(400ms + var(--i) * 140ms); }
}
@keyframes pin-in { from { transform: scale(0); } to { transform: scale(1); } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }

.facts {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(24px, 4vw, 48px);
	border-top: 1px solid var(--line);
}
.facts > div { padding: 18px 20px 22px 0; }
.facts > div + div { padding-left: 20px; border-left: 1px solid var(--line); }
.facts dt { font-size: .875rem; color: var(--ink-2); }
.facts dd { font-size: 1.5rem; font-weight: 750; font-stretch: 112%; line-height: 1.15; }

/* ---------------------------------------------------------------- sezioni */
.sec { padding-block: clamp(48px, 7vw, 96px); }
.sec--tight { padding-block: clamp(32px, 5vw, 64px); }
.sec--steel { background: var(--steel); }
.sec__head { max-width: 62ch; margin-bottom: clamp(24px, 3vw, 40px); }
.sec__head p { color: var(--ink-2); margin: 0; }
.sec__head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; max-width: none; flex-wrap: wrap; }
.sec__head--row > div { max-width: 62ch; }
.h-sec { font-size: 1.35rem; font-stretch: 112%; font-weight: 750; margin: 2em 0 .8em; }
.h-sec:first-child { margin-top: 0; }

/* categorie in home */
.catlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 64px); }
.catlist__item { border-top: 1px solid var(--line); padding: 18px 0 20px; }
.catlist__link { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; text-decoration: none; color: var(--ink); }
.catlist__name { font-size: 1.3rem; font-weight: 750; font-stretch: 112%; line-height: 1.2; }
.catlist__link:hover .catlist__name { color: var(--dc-red-ink); text-decoration: underline; text-decoration-thickness: 2px; }
.catlist__count { font-size: .875rem; color: var(--ink-2); white-space: nowrap; }
.catlist__desc { color: var(--ink-2); font-size: .95rem; margin: .35em 0 .4em; }
.catlist__brands { font-size: .9rem; font-weight: 600; margin: 0; }

/* griglia marchi: bordi condivisi */
.tiles {
	list-style: none; margin: 0; padding: 0; display: grid; gap: 0;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	padding: 1px 0 0 1px;
}
.tiles--uff { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.tiles--uff .tile__uff { display: none; }
.tile { background: #fff; border: 1px solid var(--line); margin: -1px 0 0 -1px; }
.tile[hidden] { display: none; }
.tile a { display: flex; flex-direction: column; height: 100%; padding: 16px 18px 18px; color: var(--ink); text-decoration: none; }
.tile__logo { display: grid; place-items: center; aspect-ratio: 16 / 8; margin-bottom: 10px; }
.tile__logo img { max-height: 84px; width: auto; max-width: 100%; object-fit: contain; }
.tile__name { font-weight: 700; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tile__uff { font-size: .72rem; font-weight: 650; color: var(--dc-red-ink); border: 1px solid currentColor; border-radius: 3px; padding: 0 5px; line-height: 1.5; }
.tile__lines { font-size: .85rem; color: var(--ink-2); margin-top: 4px; line-height: 1.4; }
.tile a:hover { background: #FAFAFB; }
.tile a:hover .tile__name { color: var(--dc-red-ink); }
.brand-name-fallback { font-size: 1.4rem; font-weight: 800; font-stretch: 125%; }

/* split foto + testo */
.split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.split--rev .split__media { order: 2; }
.split__media { margin: 0; }
.split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; margin-top: 24px; }
.services dt, .why dt { font-weight: 750; font-stretch: 110%; font-size: 1.1rem; margin-bottom: 6px; }
.services dt::before, .why dt::before { content: ""; display: block; width: 32px; height: 3px; background: var(--dc-red); margin-bottom: 12px; }
.services dd, .why dd { color: var(--ink-2); font-size: .975rem; }

/* invito e-commerce */
.cta { background: var(--asphalt); color: var(--on-dark); }
.cta__in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); max-width: 1600px; margin: 0 auto; }
.cta__text { padding: clamp(40px, 6vw, 88px) var(--gut); padding-left: max(var(--gut), calc((100vw - var(--wrap)) / 2 + var(--gut))); max-width: 760px; }
.cta h2 { color: #fff; }
.cta p { font-size: 1.1rem; max-width: 52ch; }
.cta__act { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.cta__media { background: center 30% / cover no-repeat; min-height: 360px; }

/* --------------------------------------------------------- pagine interne */
.phead { border-bottom: 1px solid var(--line); padding-block: 20px clamp(28px, 4vw, 48px); }
.phead__title { font-size: clamp(2.1rem, 1.3rem + 2.8vw, 3.6rem); line-height: 1; letter-spacing: -.02em; margin: .25em 0 .3em; }
.phead__lead { font-size: 1.15rem; color: var(--ink-2); max-width: 62ch; margin: 0; }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; font-size: .875rem; color: var(--ink-2); }
.crumbs li + li::before { content: "/"; margin: 0 .5em; color: #9AA0A6; }
.crumbs a { color: var(--ink-2); }

.prose { max-width: 68ch; }
.prose--lead { font-size: 1.1rem; }
.prose img { height: auto; }

/* filtri e catalogo */
.catalog { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); padding-block: 40px 88px; }
.catalog > * { min-width: 0; }
.catalog__side { position: sticky; top: calc(var(--head-h) + 20px); align-self: start; max-height: calc(100vh - var(--head-h) - 40px); overflow: auto; }
.catnav ul { list-style: none; margin: 16px 0 0; padding: 0; }
.catnav a {
	display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; color: var(--ink);
	text-decoration: none; border-left: 3px solid transparent; font-weight: 550; font-size: .95rem;
}
.catnav a span { color: var(--ink-2); font-weight: 400; }
.catnav a:hover { background: var(--steel); }
.catnav a[aria-current="page"], .catnav a.is-active { border-left-color: var(--dc-red); background: var(--steel); }
.filter-input { display: flex; align-items: center; gap: 6px; border: 1px solid #9AA0A6; border-radius: var(--r); padding-left: 10px; background: #fff; }
.filter-input .ico { color: var(--ink-2); width: 18px; }
.filter-input input { border: 0; padding: 10px 10px 10px 0; width: 100%; min-width: 0; background: transparent; outline: none; }
.filter-input:focus-within { outline: 3px solid var(--ink); outline-offset: 1px; }
.filter-select select { border: 1px solid #9AA0A6; border-radius: var(--r); padding: 10px; background: #fff; }
.filters { display: flex; gap: 10px; flex-wrap: wrap; }
.catsec { margin-bottom: 56px; }
.catsec[hidden] { display: none; }
.catsec__head h2 { font-size: 1.6rem; margin-bottom: .2em; }
.catsec__head h2 a { color: var(--ink); text-decoration: none; }
.catsec__head h2 a:hover { color: var(--dc-red-ink); }
.catsec__head p { color: var(--ink-2); margin-bottom: 16px; }
.empty-filter { padding: 24px 0; }

.az { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 16px; }
.az button { min-width: 38px; height: 38px; border: 1px solid var(--line); background: #fff; border-radius: var(--r); font-weight: 650; cursor: pointer; padding: 0 10px; }
.az button:hover { border-color: var(--ink); }
.az button.is-on { background: var(--ink); color: #fff; border-color: var(--ink); }

.partners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 56px); }
.partner { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 20px; padding: 24px 0; border-top: 1px solid var(--line); }
.partner__logo { display: grid; place-items: center; aspect-ratio: 16 / 9; border: 1px solid var(--line-2); padding: 8px; }
.partner__logo img { max-height: 70px; width: auto; object-fit: contain; }
.partner h3 { margin-bottom: .15em; font-size: 1.25rem; }
.partner h3 a { color: var(--ink); text-decoration: none; }
.partner h3 a:hover { color: var(--dc-red-ink); text-decoration: underline; }
.partner__cats { font-size: .875rem; color: var(--ink-2); margin-bottom: .5em; }
.partner p:last-child { margin: 0; font-size: .95rem; }

/* scheda marchio */
.bhead { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: center; margin-top: 16px; }
.bhead__logo { display: grid; place-items: center; aspect-ratio: 16 / 9; border: 1px solid var(--line); padding: 16px; background: #fff; }
.bhead__logo img { max-height: 120px; width: auto; object-fit: contain; }
.badge { display: inline-block; margin: 0 0 .4em; padding: 3px 10px 3px 8px; border-left: 4px solid var(--dc-red); background: var(--steel); font-size: .875rem; font-weight: 650; }
.bhead .phead__title { margin-top: 0; }
.bhead__cats { font-weight: 600; margin-bottom: .6em; }
.brand { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 5vw, 64px); padding-block: 40px 80px; align-items: start; }
.brand__side { position: sticky; top: calc(var(--head-h) + 20px); }
.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips li { border: 1px solid var(--line); border-radius: 999px; padding: .3em .85em; font-size: .9rem; background: #fff; }
.chips--links li { padding: 0; }
.chips--links a { display: block; padding: .35em .9em; color: var(--ink); text-decoration: none; font-weight: 600; }
.chips--links a:hover { color: var(--dc-red-ink); }
.parts {
	list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 0;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); padding: 1px 0 0 1px;
}
.part { background: #fff; display: flex; flex-direction: column; border: 1px solid var(--line); margin: -1px 0 0 -1px; }
.part:target { box-shadow: inset 0 0 0 3px var(--dc-red); }
.part__img { aspect-ratio: 300 / 161; display: grid; place-items: center; border-bottom: 1px solid var(--line-2); overflow: hidden; }
.part__img img { width: 100%; height: 100%; object-fit: contain; }
.part__noimg { font-weight: 800; font-stretch: 125%; color: #C4C9CE; font-size: 1.3rem; }
.part__body { padding: 14px 16px 16px; display: flex; flex-direction: column; flex: 1; }
.part__code { font-stretch: 78%; font-weight: 750; font-size: 1.3rem; letter-spacing: .02em; font-variant-numeric: tabular-nums; margin: 0 0 .2em; }
.part__desc { font-size: .9rem; color: var(--ink-2); margin-bottom: .8em; flex: 1; }
.part__ask { font-size: .9rem; font-weight: 650; align-self: flex-start; }
.box { border: 1px solid var(--line); border-top: 4px solid var(--dc-red); padding: 22px 22px 8px; background: #fff; }
.box__title { font-size: 1.2rem; font-stretch: 110%; }
.box__tel { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 1.15rem; }
.box__tel a { color: var(--ink); text-decoration: none; }
.side-link { margin-top: 16px; }
.side-link a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.side-link .ico { width: 16px; }

.note-box { border: 1px solid var(--line); border-left: 4px solid var(--dc-red); padding: 22px 24px 8px; margin-top: 40px; background: #fff; }
.note-box h2 { font-size: 1.3rem; font-stretch: 110%; }

/* contatti */
.sedi-wrap { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.sedi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.sede { border-top: 3px solid var(--ink); padding: 14px 0 24px; scroll-margin-top: calc(var(--head-h) + 24px); }
.sede:target { border-top-color: var(--dc-red); }
.sede__name { font-size: 1.3rem; font-stretch: 112%; margin-bottom: .2em; }
.sede__note { font-size: .875rem; color: var(--ink-2); margin-bottom: .6em; }
.sede p { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 .45em; }
.sede .ico { width: 18px; margin-top: 3px; color: var(--ink-2); }
.sede a[href^="tel"] { color: var(--ink); font-weight: 700; text-decoration: none; }
.sede a[href^="tel"]:hover { color: var(--dc-red-ink); text-decoration: underline; }
.sedi-map { position: sticky; top: calc(var(--head-h) + 20px); }
.map--small .map__tel { display: none; }

.form-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.reparti { list-style: none; margin: 0; padding: 0; }
.reparti li, .site-foot__rep li, .dcr-contacts li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.reparti span { color: var(--ink-2); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; padding: 14px 28px 14px 0; font-weight: 650; list-style: none; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 10px; font-size: 1.4rem; font-weight: 400; }
.faq details[open] summary::after { content: "–"; }
.faq details p { color: var(--ink-2); }

/* chi siamo */
.about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.about__title { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); }
.about__media { margin: 0; }
.about__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 60% center; }
.facts--stack { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 32px; }
.facts--stack > div:nth-child(3) { border-left: 0; padding-left: 0; }
.facts--stack > div:nth-child(n+3) { border-top: 1px solid var(--line); }
.why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 40px; margin-top: 32px; }

/* ricerca */
.search-res { padding-block: 32px 80px; }
.codelist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.codelist a { display: grid; grid-template-columns: 170px 130px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.codelist a:hover { background: var(--steel); }
.codelist__code { font-stretch: 78%; font-weight: 750; font-size: 1.1rem; }
.codelist__brand { font-weight: 650; }
.codelist__desc { color: var(--ink-2); font-size: .95rem; }
.postlist { list-style: none; padding: 0; }
.postlist li { padding: 12px 0; border-bottom: 1px solid var(--line); }

/* ------------------------------------------------------------ piè di pagina */
.site-foot { background: var(--asphalt); color: var(--on-dark); padding-block: 56px 28px; font-size: .95rem; }
.site-foot a { color: #fff; }
.site-foot__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, .8fr); gap: 40px; padding-bottom: 40px; border-bottom: 1px solid #3D4349; margin-bottom: 32px; }
.site-foot .logo img { height: 72px; margin-bottom: 16px; }
.site-foot__h { font-size: .95rem; font-stretch: 112%; font-weight: 750; color: #fff; margin: 0 0 14px; letter-spacing: 0; }
.site-foot__rep ul, .site-foot__links ul { list-style: none; margin: 0; padding: 0; }
.site-foot__rep li { border-bottom-color: #3D4349; padding: 7px 0; }
.site-foot__links li { padding: 4px 0; }
.site-foot__social { display: flex; gap: 6px; }
.site-foot__social a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #4A5157; border-radius: var(--r); }
.site-foot__social a:hover { background: var(--asphalt-2); }
.site-foot__sedi { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.fsede h3 { color: #fff; font-size: 1rem; margin-bottom: .4em; }
.fsede p { margin: 0 0 .5em; line-height: 1.5; }
.fsede a { text-decoration: none; font-weight: 600; font-variant-numeric: tabular-nums; }
.fsede a:hover { text-decoration: underline; }
.fsede__h { font-size: .875rem; }
.site-foot__legal { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 40px; padding-top: 20px; border-top: 1px solid #3D4349; font-size: .85rem; }
.site-foot__legal p { margin: 0; }
.legal-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 16px; }

/* ------------------------------------------------- moduli (anche plugin) */
.dcr-form .dcr-field, .dcr-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; }
.dcr-field label, .dcr-field > span { font-weight: 650; font-size: .925rem; }
.dcr-opt { font-weight: 400; color: var(--ink-2); }
.dcr-field input, .dcr-field select, .dcr-field textarea {
	width: 100%; padding: .7em .8em; border: 1px solid #8F969D; border-radius: var(--r); background: #fff; font-size: 1rem;
}
.dcr-field textarea { resize: vertical; min-height: 130px; }
.dcr-field input:focus, .dcr-field select:focus, .dcr-field textarea:focus { outline: 3px solid var(--ink); outline-offset: 1px; border-color: var(--ink); }
.dcr-field [aria-invalid="true"] { border-color: var(--dc-red-ink); border-width: 2px; }
.dcr-field small { color: var(--ink-2); font-size: .85rem; }
.dcr-err { color: var(--dc-red-ink); font-size: .875rem; font-weight: 600; }
.dcr-check { margin: 0 0 16px; font-size: .95rem; }
.dcr-check label { display: flex; gap: 10px; align-items: flex-start; }
.dcr-check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--dc-red-btn); flex: none; }
.dcr-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.dcr-contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.dcr-field--full { grid-column: 1 / -1; }
.dcr-msg { padding: 14px 16px; margin: 0 0 20px; border-left: 4px solid; background: #fff; }
.dcr-msg--ok { border-color: #2E7D32; background: #EEF7EF; }
.dcr-msg--error { border-color: var(--dc-red-ink); background: #FDEEEE; }
.dcr-btn {
	display: inline-flex; align-items: center; gap: .5em; padding: .65em 1.1em; border: 2px solid var(--ink); border-radius: var(--r);
	background: transparent; color: var(--ink); font-weight: 650; text-decoration: none; cursor: pointer; line-height: 1.2;
}
.dcr-btn:hover { background: var(--ink); color: #fff; }
.dcr-btn--primary { background: var(--dc-red-btn); border-color: var(--dc-red-btn); color: #fff; }
.dcr-btn--primary:hover { background: #B5141B; border-color: #B5141B; }
.dcr-btn--sm { padding: .45em .8em; font-size: .9rem; }
.dcr-btn--block { width: 100%; justify-content: center; padding-block: .85em; }
.dcr-btn .dcr-meta { font-weight: 400; opacity: .85; font-size: .85em; color: inherit; }

/* ------------------------------------------------------------- area agenti */
.area-page { padding-block: 40px 88px; background: var(--steel); min-height: 60vh; }
.area-page.is-in { background: #fff; }
.dcr-login { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 72px); max-width: 1000px; margin: 0 auto; align-items: start; }
.dcr-login__box { background: #fff; padding: clamp(24px, 4vw, 44px); border-top: 4px solid var(--dc-red); }
.dcr-login__title { font-size: clamp(1.7rem, 1.2rem + 1.5vw, 2.3rem); }
.dcr-login__lead { color: var(--ink-2); }
.dcr-login__links { text-align: center; margin: 4px 0 0; font-size: .95rem; }
.dcr-login__aside { padding-top: 12px; }
.dcr-login__aside h3 { font-size: 1.1rem; margin-top: 1.4em; }
.dcr-login__aside h3:first-child { margin-top: 0; }
.dcr-pw { display: flex; }
.dcr-pw input { border-radius: var(--r) 0 0 var(--r); }
.dcr-pw__toggle { border: 1px solid #8F969D; border-left: 0; background: var(--steel); padding: 0 14px; border-radius: 0 var(--r) var(--r) 0; cursor: pointer; font-weight: 600; font-size: .9rem; }

.dcr-area__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; padding-bottom: 20px; }
.dcr-area__hello { font-size: clamp(2rem, 1.3rem + 2.4vw, 3rem); margin: 0 0 .15em; }
.dcr-area__sub { color: var(--ink-2); margin: 0; }
.dcr-area__tools { display: flex; gap: 10px; flex-wrap: wrap; }
.dcr-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--line); margin-bottom: 28px; overflow-x: auto; scrollbar-width: thin; }
.dcr-tab { padding: 12px 16px; color: var(--ink); text-decoration: none; font-weight: 600; white-space: nowrap; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.dcr-tab:hover { background: var(--steel); }
.dcr-tab.is-current { border-bottom-color: var(--dc-red); }
.dcr-count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--dc-red-btn); color: #fff; font-size: .78rem; margin-left: 4px; }
.dcr-welcome { background: var(--steel); padding: 14px 18px; border-left: 4px solid var(--ink); }
.dcr-sec { margin-bottom: 44px; }
.dcr-sec__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 2px solid var(--ink); padding-bottom: 8px; margin-bottom: 18px; }
.dcr-sec__head h2 { font-size: 1.35rem; margin: 0; font-stretch: 112%; }
.dcr-sec__head a { font-weight: 600; font-size: .95rem; }
.dcr-sec--narrow { max-width: 760px; }
.dcr-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4vw, 56px); }
.dcr-promos { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 20px; }
.dcr-promo { border: 1px solid var(--line); display: flex; flex-direction: column; background: #fff; }
.dcr-promo__img { aspect-ratio: 16 / 9; overflow: hidden; border-bottom: 1px solid var(--line-2); display: grid; place-items: center; }
.dcr-promo__img img { width: 100%; height: 100%; object-fit: cover; }
.dcr-promo__img--logo img { object-fit: contain; width: 60%; height: auto; }
.dcr-promo__body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.dcr-promo__when { font-size: .875rem; color: var(--ink-2); margin-bottom: .4em; }
.dcr-promo__title { font-size: 1.15rem; margin-bottom: .25em; }
.dcr-promo__brand { font-weight: 650; font-size: .9rem; margin-bottom: .5em; }
.dcr-promo__text { font-size: .95rem; color: var(--ink-2); flex: 1; }
.dcr-promo__text p:last-child { margin-bottom: 0; }
.dcr-promo__actions { margin-top: 14px; display: flex; gap: 8px; flex-wrap: wrap; }
.dcr-promo--scaduta { opacity: .65; }
.dcr-promo--futura { border-style: dashed; }
.dcr-tag { display: inline-block; font-size: .75rem; font-weight: 700; padding: 1px 7px; border-radius: 3px; background: var(--steel); color: var(--ink); vertical-align: 1px; }
.dcr-tag--new { background: var(--dc-red-btn); color: #fff; }
.dcr-tag--warn { background: #FFF1C2; color: #5C4300; }
.dcr-empty { color: var(--ink-2); padding: 16px 0; }
.dcr-meta { color: var(--ink-2); font-size: .875rem; }
.dcr-list { list-style: none; margin: 0; padding: 0; }
.dcr-list li { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--line); }
.dcr-list a { font-weight: 650; color: var(--ink); }
.dcr-com { border-bottom: 1px solid var(--line); padding: 14px 0; }
.dcr-com--pin { border: 1px solid var(--line); border-left: 4px solid var(--dc-red); padding: 16px 20px; margin-bottom: 20px; background: #fff; }
.dcr-com__date { font-size: .85rem; color: var(--ink-2); margin-bottom: .3em; }
.dcr-com__title { font-size: 1.1rem; margin-bottom: .3em; }
.dcr-com__text { color: var(--ink); font-size: .975rem; }
.dcr-com__text p:last-child { margin-bottom: 0; }
.dcr-contacts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
.dcr-contacts span { color: var(--ink-2); }
.dcr-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; background: var(--steel); padding: 16px; margin-bottom: 12px; }
.dcr-filters .dcr-field { margin: 0; min-width: 180px; flex: 1; }
.dcr-filters .dcr-btn { height: 46px; }
.dcr-reset { align-self: center; font-weight: 600; }
.dcr-table-wrap { overflow-x: auto; }
.dcr-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.dcr-table th { text-align: left; font-size: .85rem; color: var(--ink-2); font-weight: 650; padding: 10px 12px 10px 0; border-bottom: 2px solid var(--ink); }
.dcr-table td { padding: 14px 12px 14px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.dcr-table__act { text-align: right; white-space: nowrap; }
.dcr-note { color: var(--ink-2); font-size: .875rem; margin-top: 4px; }
.dcr-dl { display: grid; grid-template-columns: 140px 1fr; gap: 8px 16px; margin-bottom: 16px; }
.dcr-dl dt { color: var(--ink-2); }
.dcr-dl dd { font-weight: 600; }

/* ----------------------------------------------------------------- tablet */
@media (max-width: 1100px) {
	.tiles--uff { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.site-foot__sedi { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.why { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
	:root { --head-h: 68px; }
	.logo img, .custom-logo { height: 48px; }
	.topbar__txt { display: none; }
	.topbar__in { justify-content: flex-end; }
	.nav-toggle { display: inline-grid; }
	.site-head__shop span { display: none; }
	.site-head__shop { padding: .6em .7em; }
	.site-head__act { margin-left: auto; }
	.nav {
		position: fixed; inset: calc(var(--head-h) + 38px) 0 0 0; background: #fff; padding: 16px var(--gut) 32px;
		overflow: auto; display: none; margin: 0; border-top: 1px solid var(--line);
	}
	.nav.is-open { display: block; }
	.admin-bar .nav { top: calc(var(--head-h) + 38px + 46px); }
	.nav__list { flex-direction: column; gap: 0; }
	.nav__list a { font-size: 1.35rem; font-weight: 750; font-stretch: 112%; padding: 14px 0; border-bottom: 1px solid var(--line); }
	.nav__list a::after { display: none; }
	.nav__list .current-menu-item > a { color: var(--dc-red-ink); }
	.nav__extra { display: block; margin-top: 24px; }
	.nav-open .nav-toggle .i-open { display: none; }
	.nav-open .nav-toggle .i-close { display: block; }
	.nav-open { overflow: hidden; }

	.hero__in { grid-template-columns: 1fr; }
	.hero__map { margin: 24px calc(-1 * var(--gut)) 0; max-width: 720px; }
	.facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.facts > div:nth-child(3) { border-left: 0; padding-left: 0; }
	.facts > div:nth-child(n+3) { border-top: 1px solid var(--line); }
	.catlist, .partners { grid-template-columns: 1fr; }
	.split, .about, .form-grid, .sedi-wrap { grid-template-columns: 1fr; }
	.split--rev .split__media { order: 0; }
	.sedi-map { position: static; max-width: 560px; }
	.cta__in { grid-template-columns: 1fr; }
	.cta__text { padding-left: var(--gut); }
	.cta__media { min-height: 260px; }
	.catalog { grid-template-columns: 1fr; padding-top: 20px; }
	.catalog__side { position: static; max-height: none; overflow: visible; }
	.catnav ul { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 8px; scrollbar-width: thin; }
	.catnav a { white-space: nowrap; border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; }
	.catnav a[aria-current="page"], .catnav a.is-active { border-color: var(--ink); }
	.brand { grid-template-columns: 1fr; }
	.brand__side { position: static; }
	.bhead { grid-template-columns: 1fr; }
	.bhead__logo { max-width: 300px; }
	.site-foot__top { grid-template-columns: 1fr 1fr; }
	.site-foot__brand { grid-column: 1 / -1; }
	.about__media img { aspect-ratio: 4 / 3; }
	.dcr-login, .dcr-cols { grid-template-columns: 1fr; }
}
/* --------------------------------------------------------------- telefono */
@media (max-width: 640px) {
	body { font-size: 1rem; }
	.services, .why, .sedi, .dcr-contact, .dcr-contacts { grid-template-columns: 1fr; }
	.site-foot__top { grid-template-columns: 1fr; }
	.site-foot__sedi { grid-template-columns: 1fr 1fr; }
	.facts dd { font-size: 1.25rem; }
	.partner { grid-template-columns: 100px minmax(0, 1fr); gap: 14px; }
	.tiles, .tiles--uff { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tile a { padding: 12px; }
	.tile__lines { display: none; }
	.parts { grid-template-columns: 1fr 1fr; }
	.part__code { font-size: 1.1rem; }
	.codelist a { grid-template-columns: 1fr; gap: 2px; }
	.qs__go { display: none; }
	.hero__act .btn { width: 100%; }
	.dcr-table thead { display: none; }
	.dcr-table tr { display: block; border-bottom: 1px solid var(--line); padding: 12px 0; }
	.dcr-table td { display: block; border: 0; padding: 2px 0; }
	.dcr-table td:empty { display: none; }
	.dcr-table td[data-label]:not([data-label="Documento"])::before { content: attr(data-label) ": "; color: var(--ink-2); }
	.dcr-table__act { text-align: left; padding-top: 10px !important; }
	.map__label { font-size: 32px; }
	.map--hero .map__tel { display: none; }
}
@media (max-width: 782px) { .admin-bar .site-head { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-head { top: 0; } }

@media print {
	.topbar, .site-head, .site-foot, .cta, .qs { display: none !important; }
}

/* ==========================================================================
   Icone di settore
   ========================================================================== */
.dci { width: 48px; height: 48px; flex: none; color: var(--ink); }
.dci .a { stroke: var(--dc-red); }
.dci .af, .dci .af * { fill: var(--dc-red); stroke: none; }
.btn--outline-light { border-color: rgba(255,255,255,.7); color: #fff; background: transparent; }
.btn--outline-light:hover { background: #fff; color: var(--ink); border-color: #fff; }

/* ==========================================================================
   Home – testata di forte impatto
   ========================================================================== */
.hx {
	position: relative; overflow: hidden; color: #fff; isolation: isolate;
	background: radial-gradient(120% 90% at 0% 0%, #2C3136 0%, #191C1F 55%, #121416 100%);
	min-height: clamp(560px, 78vh, 740px); display: flex; align-items: center;
	padding-block: clamp(48px, 7vw, 96px) clamp(96px, 10vw, 140px);
}
.hx::before { /* trama sottile tipo lamiera mandorlata */
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .05;
	background-image: repeating-linear-gradient(135deg, #fff 0 1px, transparent 1px 14px), repeating-linear-gradient(45deg, #fff 0 1px, transparent 1px 14px);
	-webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 55%); mask-image: linear-gradient(90deg, #000 0%, transparent 55%);
}
.hx__bg {
	position: absolute; z-index: -2; top: 0; right: 0; bottom: 0; width: 52%;
	background: #222 center / cover no-repeat; background-position: 18% center;
	clip-path: polygon(24% 0, 100% 0, 100% 100%, 0 100%);
}
.hx__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,20,22,.75) 0%, rgba(18,20,22,.1) 45%, rgba(18,20,22,.35) 100%); }
.hx__stripe { /* striscia rossa parallela al taglio della foto, come la curva del logo */
	position: absolute; z-index: -1; top: 0; bottom: 0; right: 0; width: calc(52% + 60px); pointer-events: none;
	background: var(--dc-red);
	clip-path: polygon(calc(24% + 22px) 0, calc(24% + 37px) 0, 51px 100%, 36px 100%);
}
.hx__in { width: 100%; }
.hx__text { max-width: 600px; }
.hx__kicker {
	display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; padding: 6px 14px 6px 10px;
	border: 1px solid rgba(255,255,255,.22); border-radius: 999px; font-size: .9rem; font-weight: 600; color: #E3E6E9; background: rgba(255,255,255,.04);
}
.hx__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--dc-red); box-shadow: 0 0 0 4px rgba(233,32,40,.25); }
.hx__title {
	color: #fff; font-size: clamp(2.4rem, 1.4rem + 3.6vw, 4.5rem); line-height: .96; letter-spacing: -.025em;
	margin: 0 0 22px; text-wrap: balance;
}
.hx__l1, .hx__l2 { display: inline; }
.hx__l2 { color: var(--dc-red); }
.hx__lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.25rem); color: #C9CED3; max-width: 52ch; margin: 0 0 28px; }
.hx .qs { max-width: 600px; }
.hx .qs__box { border-color: #fff; box-shadow: 0 18px 40px -18px rgba(0,0,0,.7); }
.hx .qs__go { background: var(--dc-red-btn); }
.hx .qs__go:hover { background: #B5141B; }
.hx .qs__list { color: var(--ink); }
.hx__quick { list-style: none; margin: 16px 0 30px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hx__quick a {
	display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 8px; border-radius: 999px;
	background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); color: #fff; text-decoration: none; font-weight: 600; font-size: .92rem;
	transition: background-color .15s, border-color .15s;
}
.hx__quick a:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.4); }
.hx__quick .dci { width: 26px; height: 26px; color: #fff; }
.hx__quick .dci .a { stroke: #FF5A61; }
.hx__quick .dci .af, .hx__quick .dci .af * { fill: #FF5A61; }
.hx__act { display: flex; flex-wrap: wrap; gap: 12px; }

@media (prefers-reduced-motion: no-preference) {
	.hx__kicker, .hx__title > span, .hx__lead, .hx .qs, .hx__quick, .hx__act { animation: hx-up .7s cubic-bezier(.2,.7,.2,1) both; }
	.hx__title > .hx__l1 { animation-delay: .08s; }
	.hx__title > .hx__l2 { animation-delay: .22s; display: inline-block; }
	.hx__lead { animation-delay: .32s; } .hx .qs { animation-delay: .42s; } .hx__quick { animation-delay: .5s; } .hx__act { animation-delay: .58s; }
	.hx__title > .hx__l1 { display: inline-block; }
	.hx__bg { animation: hx-reveal 1.1s cubic-bezier(.6,0,.2,1) both; }
	.hx__stripe { animation: hx-stripe 1s .25s cubic-bezier(.6,0,.2,1) both; }
}
@keyframes hx-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes hx-reveal { from { clip-path: polygon(100% 0, 100% 0, 100% 100%, 76% 100%); } to { clip-path: polygon(24% 0, 100% 0, 100% 100%, 0 100%); } }
@keyframes hx-stripe { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: none; } }

/* numeri sovrapposti alla testata */
.kpi-wrap { position: relative; z-index: 3; margin-top: clamp(-88px, -6vw, -64px); }
.kpi {
	list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	background: #fff; border-bottom: 4px solid var(--dc-red); box-shadow: 0 24px 50px -28px rgba(18,20,22,.55);
}
.kpi li { display: flex; align-items: center; gap: 16px; padding: 24px 24px 22px; }
.kpi li + li { border-left: 1px solid var(--line-2); }
.kpi .dci { width: 46px; height: 46px; }
.kpi strong { display: block; font-size: 1.45rem; font-weight: 800; font-stretch: 115%; line-height: 1.1; letter-spacing: -.01em; }
.kpi span { font-size: .9rem; color: var(--ink-2); }

/* griglia categorie con icone */
.sec--cats { padding-top: clamp(56px, 7vw, 96px); }
.cgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.cgrid__card {
	position: relative; display: flex; flex-direction: column; height: 100%; padding: 22px 22px 18px;
	background: #fff; border: 1px solid var(--line); color: var(--ink); text-decoration: none; overflow: hidden;
	transition: background-color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.cgrid__card::after { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 0; background: var(--dc-red); transition: width .25s; }
.cgrid__ico { display: grid; place-items: center; width: 68px; height: 68px; background: var(--steel); margin-bottom: 18px; transition: background-color .2s; }
.cgrid__ico .dci { width: 46px; height: 46px; }
.cgrid__name { font-size: 1.12rem; font-weight: 750; font-stretch: 110%; line-height: 1.2; margin-bottom: 6px; }
.cgrid__brands { font-size: .85rem; color: var(--ink-2); flex: 1; margin-bottom: 14px; }
.cgrid__count { display: flex; justify-content: space-between; align-items: center; font-size: .85rem; font-weight: 650; padding-top: 12px; border-top: 1px solid var(--line-2); }
.cgrid__arrow { font-size: 1.1rem; transition: transform .2s; color: var(--dc-red-ink); }
.cgrid__card:hover, .cgrid__card:focus-visible { background: var(--asphalt); border-color: var(--asphalt); color: #fff; transform: translateY(-3px); box-shadow: 0 20px 36px -22px rgba(18,20,22,.7); }
.cgrid__card:hover::after, .cgrid__card:focus-visible::after { width: 100%; }
.cgrid__card:hover .cgrid__brands, .cgrid__card:focus-visible .cgrid__brands { color: #B8BEC4; }
.cgrid__card:hover .cgrid__count, .cgrid__card:focus-visible .cgrid__count { border-color: #3D4349; }
.cgrid__card:hover .cgrid__ico, .cgrid__card:focus-visible .cgrid__ico { background: var(--dc-red-btn); }
.cgrid__card:hover .dci, .cgrid__card:focus-visible .dci { color: #fff; }
.cgrid__card:hover .dci .a, .cgrid__card:focus-visible .dci .a { stroke: #fff; }
.cgrid__card:hover .dci .af, .cgrid__card:hover .dci .af *, .cgrid__card:focus-visible .dci .af, .cgrid__card:focus-visible .dci .af * { fill: #fff; }
.cgrid__card:hover .cgrid__arrow, .cgrid__card:focus-visible .cgrid__arrow { transform: translateX(4px); color: #FF6B70; }

/* nastro dei distributori ufficiali */
.partners-band { background: var(--steel); padding-block: clamp(48px, 6vw, 80px); overflow: hidden; }
.partners-band__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 32px; }
.partners-band__head > div { max-width: 62ch; }
.partners-band__head p { color: var(--ink-2); margin: 0; }
.marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.marquee__track { list-style: none; margin: 0; padding: 4px 0 8px; display: flex; gap: 16px; width: max-content; animation: marquee 48s linear infinite; }
.marquee:hover .marquee__track, .marquee:focus-within .marquee__track { animation-play-state: paused; }
.marquee__track a {
	display: flex; flex-direction: column; align-items: center; gap: 8px; width: 210px; padding: 18px 16px 14px;
	background: #fff; border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s;
}
.marquee__track a:hover { border-color: var(--ink); box-shadow: 0 12px 26px -18px rgba(18,20,22,.6); }
.marquee__logo { display: grid; place-items: center; height: 78px; width: 100%; }
.marquee__logo img { max-height: 70px; max-width: 170px; width: auto; object-fit: contain; }
.marquee__name { font-size: .82rem; font-weight: 700; color: var(--ink-2); }
@keyframes marquee { to { transform: translateX(calc(-50% - 8px)); } }
@media (prefers-reduced-motion: reduce) {
	.marquee { -webkit-mask-image: none; mask-image: none; }
	.marquee__track { animation: none; width: auto; flex-wrap: wrap; justify-content: center; padding-inline: var(--gut); }
	.marquee__track li[aria-hidden="true"] { display: none; }
}

/* rete delle sedi su fondo scuro */
.net { background: var(--asphalt); color: var(--on-dark); padding-block: clamp(56px, 7vw, 100px); overflow: hidden; }
.net__in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
.net h2 { color: #fff; }
.net__lead { font-size: 1.08rem; max-width: 46ch; margin-bottom: 28px; }
.net__sedi { list-style: none; margin: 0; padding: 0; }
.net__sedi li { display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 4px 16px; align-items: baseline; padding: 12px 0; border-top: 1px solid #3D4349; }
.net__sedi li:last-child { border-bottom: 1px solid #3D4349; }
.net__name { color: #fff; font-weight: 750; font-stretch: 110%; text-decoration: none; }
.net__name:hover { color: #FF6B70; text-decoration: underline; }
.net__addr { font-size: .9rem; }
.net__tel { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 650; text-decoration: none; font-variant-numeric: tabular-nums; white-space: nowrap; }
.net__tel .ico { width: 16px; color: #FF6B70; }
.net__tel:hover { text-decoration: underline; }
.map--dark .map__sic { fill: #343A40; stroke: #50575E; }
.map--dark .map__cal { fill: #2B3035; stroke: #454C52; }
.map--dark .map__note { fill: #8A9198; }
.map--dark .map__label { fill: #fff; }
.map--dark .map__tel { fill: #AEB4BA; }
.map--dark .map__line { stroke: #8A9198; }
.map--dark .map__pin { stroke: var(--asphalt); filter: drop-shadow(0 0 7px rgba(233,32,40,.9)); }
.map--dark .map__sede:hover .map__label, .map--dark .map__sede:focus .map__label { fill: #FF6B70; }
.map--dark .map__sede:hover .map__pin { fill: #fff; }

/* servizi */
.srv { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); }
.srv li { padding: 28px 28px 8px 0; display: flex; flex-direction: column; }
.srv li + li { padding-left: 28px; border-left: 1px solid var(--line); }
.srv__ico { display: grid; place-items: center; width: 72px; height: 72px; background: #FDECEC; margin-bottom: 20px; }
.srv__ico .dci { width: 48px; height: 48px; }
.srv h3 { font-size: 1.2rem; font-stretch: 112%; }
.srv p { color: var(--ink-2); font-size: .975rem; flex: 1; }
.srv a { font-weight: 650; }

/* icone nelle pagine interne */
.catnav a { align-items: center; }
.catnav .dci { width: 24px; height: 24px; margin-right: 8px; }
.catnav a > span:first-child { display: flex; align-items: center; }
.catsec__head { display: flex; gap: 18px; align-items: flex-start; }
.catsec__ico { display: grid; place-items: center; width: 64px; height: 64px; background: var(--steel); flex: none; }
.catsec__ico .dci { width: 44px; height: 44px; }
.phead__ico { display: inline-grid; place-items: center; width: 84px; height: 84px; background: #fff; border: 1px solid var(--line); border-bottom: 4px solid var(--dc-red); margin-top: 12px; }
.phead__ico .dci { width: 58px; height: 58px; }
.phead--cat .wrap { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 28px; align-items: end; }
.phead--cat .crumbs { grid-column: 1 / -1; }
.bhead__cats a { display: inline-flex; align-items: center; gap: 6px; }
.bhead__cats .dci { width: 26px; height: 26px; }
.why > div { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 16px; }
.why .dci { grid-row: span 2; width: 52px; height: 52px; }
.why dt::before { display: none; }
.sede__name { display: flex; align-items: center; gap: 10px; }

@media (max-width: 1100px) {
	.cgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.srv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.srv li:nth-child(3) { padding-left: 0; border-left: 0; }
	.srv li:nth-child(n+3) { border-top: 1px solid var(--line); }
	.kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kpi li:nth-child(3) { border-left: 0; }
	.kpi li:nth-child(n+3) { border-top: 1px solid var(--line-2); }
}
@media (max-width: 980px) {
	.hx { flex-direction: column; align-items: stretch; padding-top: 0; min-height: 0; }
	.hx__bg { position: relative; width: 100%; height: 240px; clip-path: polygon(0 0, 100% 0, 100% 82%, 0 100%); z-index: 0; }
	.hx__stripe { display: none; }
	.hx__in { padding-top: 28px; }
	.net__in { grid-template-columns: 1fr; }
	.net__map { order: -1; max-width: 640px; }
	@media (prefers-reduced-motion: no-preference) { .hx__bg { animation: none; } }
}
@media (max-width: 640px) {
	.cgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.cgrid__card { padding: 16px 14px 12px; }
	.cgrid__ico { width: 54px; height: 54px; margin-bottom: 12px; }
	.cgrid__ico .dci { width: 38px; height: 38px; }
	.cgrid__name { font-size: 1rem; }
	.cgrid__brands { display: none; }
	.cgrid__name { flex: 1; margin-bottom: 12px; }
	.kpi li { padding: 16px 14px; gap: 10px; flex-direction: column; align-items: flex-start; }
	.kpi .dci { width: 36px; height: 36px; }
	.kpi strong { font-size: 1.15rem; }
	.srv { grid-template-columns: 1fr; }
	.srv li, .srv li + li { padding: 24px 0 8px; border-left: 0; border-top: 1px solid var(--line); }
	.net__sedi li { grid-template-columns: 1fr auto; }
	.net__addr { grid-column: 1 / -1; grid-row: 2; }
	.hx__quick .dci { width: 22px; height: 22px; }
	.marquee__track a { width: 160px; }
	.why > div { grid-template-columns: 44px minmax(0, 1fr); }
	.why .dci { width: 40px; height: 40px; }
}
.map--dark .map__tel { display: none; }

/* ==========================================================================
   Versione 2 – identità "taglio": l'angolo smussato e la diagonale del logo
   tornano in schede, testate e fasce; sezioni che compaiono allo scorrimento.
   ========================================================================== */
:root { --cut: 18px; }
.notch { clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%); }

/* comparsa allo scorrimento (solo con JavaScript attivo) */
html.js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .6s ease var(--rd, 0ms), transform .7s cubic-bezier(.2,.7,.2,1) var(--rd, 0ms); }
html.js [data-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.js [data-reveal] { opacity: 1; transform: none; transition: none; } }

/* segno rosso inclinato sopra i titoli di sezione */
.sec__head h2::before, .partners-band__head h2::before, .net h2::before, .cta h2::before, .about__title::before {
	content: ""; display: block; width: 46px; height: 8px; margin: 0 0 18px 3px; background: var(--dc-red); transform: skewX(-24deg);
}
.link-more { text-decoration: none; border-bottom: 2px solid var(--dc-red); padding-bottom: 2px; color: var(--ink); }
.link-more::after { content: "→"; display: inline-block; margin-left: .45em; transition: transform .2s; color: var(--dc-red-ink); }
.link-more:hover::after { transform: translateX(4px); }
.btn { transition: background-color .15s, border-color .15s, color .15s, transform .15s; }
.btn:active { transform: translateY(1px); }
.hx :focus-visible, .phead :focus-visible, .net :focus-visible { outline-color: #fff; }

/* ---------------------------------------------------------- intestazione */
.site-head { transition: box-shadow .2s; }
.site-head__in { transition: height .2s; }
.logo img, .custom-logo { transition: height .2s; }
.site-head.is-stuck { box-shadow: 0 14px 30px -20px rgba(18,20,22,.5); }
@media (min-width: 981px) {
	.site-head.is-stuck .site-head__in { height: 66px; }
	.site-head.is-stuck .logo img, .site-head.is-stuck .custom-logo { height: 48px; }
	.nav__list > li { position: static; }
	.nav__caret { margin-left: 6px; vertical-align: 1px; transition: transform .2s; }
	.has-mega:hover .nav__caret, .has-mega:focus-within .nav__caret { transform: rotate(180deg); }
	.mega {
		position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: #fff; border-top: 1px solid var(--line);
		box-shadow: 0 30px 50px -30px rgba(18,20,22,.55); opacity: 0; visibility: hidden; transform: translateY(8px);
		transition: opacity .18s ease .06s, transform .18s ease .06s, visibility 0s linear .24s;
	}
	.has-mega:hover .mega, .has-mega:focus-within .mega { opacity: 1; visibility: visible; transform: none; transition-delay: .06s, .06s, 0s; }
	.has-mega.mega-off .mega { opacity: 0; visibility: hidden; }
	.mega__in { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 32px; padding-block: 26px 30px; }
	.mega__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 12px; }
	.mega__list a { display: flex; align-items: center; gap: 12px; padding: 9px 10px; color: var(--ink); text-decoration: none; font-weight: 650; font-size: .95rem; line-height: 1.25; }
	.mega__list a::after { display: none; }
	.mega__list a:hover, .mega__list a:focus-visible { background: var(--steel); }
	.mega__list .dci { width: 34px; height: 34px; }
	.mega__list small { display: block; font-weight: 400; color: var(--ink-2); font-size: .8rem; }
	.mega__side { background: var(--asphalt); color: var(--on-dark); padding: 24px; font-size: .95rem; clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%); display: flex; flex-direction: column; align-items: flex-start; }
	.mega__t { color: #fff; font-weight: 800; font-stretch: 118%; font-size: 1.15rem; margin-bottom: .4em; }
	.mega__side .btn { margin-top: 4px; padding: .68em 1.15em; color: #fff; font-size: 1rem; }
	.mega__side .btn::after, .mega__all::after { display: none; }
	.mega__all { color: #fff !important; font-size: .9rem !important; padding: 14px 0 0 !important; text-decoration: underline !important; font-weight: 600 !important; }
}
@media (max-width: 980px) { .mega, .nav__caret { display: none; } }

/* ----------------------------------------------------------------- home */
.kpi-wrap { filter: drop-shadow(0 22px 26px rgba(18,20,22,.2)); }
.kpi { box-shadow: none; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); }
.kpi strong { font-variant-numeric: tabular-nums; }

.sec--cats { background: var(--steel); margin-top: clamp(-120px, -8vw, -80px); padding-top: clamp(150px, 15vw, 210px); }
.kpi-wrap { z-index: 4; }
.cgrid { gap: 12px; }
.cgrid__card { border: 0; clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%); padding: 24px 22px 18px; }
.cgrid__card:hover, .cgrid__card:focus-visible { box-shadow: none; }
.cgrid__ico { width: 74px; height: 74px; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%); }
.cgrid__ico .dci { width: 50px; height: 50px; }

.partners-band { background: #fff; padding-block: clamp(56px, 7vw, 96px); }
.marquee__track a { clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%); background: var(--steel); border: 0; }
.marquee__track a:hover { box-shadow: none; background: #E3E6E9; }
.partners-band__more { margin-block: 30px 14px; font-weight: 650; color: var(--ink-2); font-size: .95rem; }
.marquee--rev .marquee__track { animation-direction: reverse; animation-duration: 120s; }
.marquee__track--sm { gap: 10px; }
.marquee__track--sm a { width: 138px; padding: 8px 12px; background: #fff; border: 1px solid var(--line-2); clip-path: none; }
.marquee__track--sm .marquee__logo { height: 52px; }
.marquee__track--sm img { max-height: 44px; max-width: 110px; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.marquee__track--sm a:hover { background: #fff; border-color: var(--ink); }
.marquee__track--sm a:hover img { filter: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .marquee--rev, .partners-band__more { display: none; } }

.net { position: relative; isolation: isolate; background: radial-gradient(70% 90% at 78% 50%, #30363B 0%, #24282C 60%, #1B1E21 100%); }
.net::before {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .045;
	background-image: repeating-linear-gradient(135deg, #fff 0 1px, transparent 1px 14px), repeating-linear-gradient(45deg, #fff 0 1px, transparent 1px 14px);
	-webkit-mask-image: linear-gradient(90deg, #000, transparent 50%); mask-image: linear-gradient(90deg, #000, transparent 50%);
}
.map__pulse { fill: none; stroke: var(--dc-red); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
	.map--dark .map__pulse { animation: pin-pulse 2.8s ease-out infinite; animation-delay: calc(1.2s + var(--i) * .45s); }
}
@keyframes pin-pulse { 0% { transform: scale(1); opacity: .9; } 70%, 100% { transform: scale(3.6); opacity: 0; } }

.srv { border-top: 0; gap: 14px; }
.srv li, .srv li + li { padding: 26px 24px 20px; border: 0; background: var(--steel); clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%); transition: background-color .2s; }
.srv__ico { background: #fff; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%); transition: background-color .2s; }
.srv li:hover { background: #E3E6E9; }
.srv li:hover .srv__ico { background: var(--dc-red-btn); }
.srv li:hover .dci { color: #fff; }
.srv li:hover .dci .a { stroke: #fff; }
.srv li:hover .dci .af, .srv li:hover .dci .af * { fill: #fff; }
.srv a { text-decoration: none; border-bottom: 2px solid var(--dc-red); align-self: flex-start; color: var(--ink); padding-bottom: 1px; }
.srv a:hover { color: var(--dc-red-ink); }

.cta--red { background: var(--dc-red-btn); color: #fff; position: relative; overflow: hidden; }
.cta--red h2::before { background: #fff; }
.cta--red p { color: #FFE9EA; }
.cta--red .cta__media { clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
.cta--red .btn--light:hover { background: var(--ink); color: #fff; }

/* ------------------------------------------------- testate pagine interne */
.phead {
	position: relative; overflow: hidden; isolation: isolate; border-bottom: 0; color: #C9CED3;
	background: radial-gradient(120% 140% at 0% 0%, #2C3136 0%, #1B1E21 60%, #131517 100%);
	padding-block: 22px clamp(36px, 5vw, 60px);
}
.phead::before {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .05;
	background-image: repeating-linear-gradient(135deg, #fff 0 1px, transparent 1px 14px), repeating-linear-gradient(45deg, #fff 0 1px, transparent 1px 14px);
	-webkit-mask-image: linear-gradient(90deg, #000, transparent 60%); mask-image: linear-gradient(90deg, #000, transparent 60%);
}
.phead__deco {
	position: absolute; z-index: -1; top: 0; bottom: 0; right: 0; width: min(36%, 520px);
	background: linear-gradient(104deg, transparent 0 40%, var(--dc-red) 40% 42.4%, transparent 42.4% 46%, rgba(255,255,255,.06) 46% 100%);
}
.phead__title { color: #fff; }
.phead__lead, .phead .muted { color: #C9CED3; }
.phead .crumbs ol, .phead .crumbs a { color: #AEB4BA; }
.phead .crumbs a:hover { color: #fff; }
.phead .crumbs li + li::before { color: #6B7279; }
.phead .crumbs [aria-current] { color: #E3E6E9; }
.phead__ico { border: 0; clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%); margin-top: 14px; }
.bhead__logo { border: 0; clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%); }
.phead .badge { background: rgba(255,255,255,.1); color: #fff; }
.bhead__cats a { color: #fff; }
.bhead__cats { color: #8A9198; }
.bhead__cats .dci { color: #fff; }
.bhead__cats .dci .a { stroke: #FF5A61; }
.bhead__cats .dci .af, .bhead__cats .dci .af * { fill: #FF5A61; }
@media (max-width: 760px) { .phead__deco { display: none; } }

/* dettagli */
.tile a { transition: background-color .15s, box-shadow .15s; }
.tile a:hover { box-shadow: inset 0 -3px 0 var(--dc-red); }
.part { transition: box-shadow .15s; }
.part:hover { box-shadow: inset 0 -3px 0 var(--dc-red); }
.box { border-top-width: 0; clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%); background: var(--steel); border: 0; padding-top: 26px; }
.note-box { background: var(--steel); border: 0; border-left: 4px solid var(--dc-red); }
.catsec__ico { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%); }
.sede { border-top-width: 4px; }

/* area agenti */
.dcr-area__head { background: radial-gradient(120% 160% at 0% 0%, #2C3136, #1B1E21); padding: 26px 30px; margin-bottom: 6px; align-items: center; clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%); }
.dcr-area__hello { color: #fff; }
.dcr-area__sub { color: #C9CED3; }
.dcr-area__tools .dcr-btn:not(.dcr-btn--primary) { border-color: rgba(255,255,255,.6); color: #fff; }
.dcr-area__tools .dcr-btn:not(.dcr-btn--primary):hover { background: #fff; color: var(--ink); }
.dcr-area__head :focus-visible { outline-color: #fff; }
.dcr-login__box { box-shadow: 0 30px 50px -34px rgba(18,20,22,.5); }
.dcr-promo { transition: border-color .15s; }
.dcr-promo:hover { border-color: var(--ink); }

/* barra azioni rapide su telefono */
.mbar { display: none; }
@media (max-width: 640px) {
	.mbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
		background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -10px 24px -18px rgba(18,20,22,.5);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}
	.mbar a { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px 7px; font-size: .72rem; font-weight: 650; color: var(--ink); text-decoration: none; }
	.mbar .ico { width: 20px; height: 20px; }
	.mbar__main { background: var(--dc-red-btn); color: #fff !important; }
	body { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
	.nav-open .mbar { display: none; }
	.sec--cats { margin-top: -70px; padding-top: 120px; }
	.cta--red .cta__media { clip-path: none; }
	.dcr-area__head { padding: 20px 18px; }
}
@media (max-width: 980px) { .cta--red .cta__media { clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%); } }
@media print { .mbar { display: none !important; } }

/* senza la ricerca: le scorciatoie di categoria diventano l'elemento guida */
.hx__quickt { margin: 4px 0 10px; font-size: .82rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #8A9198; }
.hx__quick--lead { gap: 10px; margin-bottom: 32px; }
.hx__quick--lead a { padding: 11px 20px 11px 13px; font-size: 1rem; background: rgba(255,255,255,.1); }
.hx__quick--lead .dci { width: 30px; height: 30px; }
.hx__quick-all a { background: transparent; border-color: rgba(255,255,255,.45); }
.hx__quick-all a::after { content: "→"; margin-left: .2em; }
.hx__note { margin: 18px 0 0; font-size: .92rem; color: #8A9198; }
@media (max-width: 640px) {
	.hx__quick--lead a { padding: 9px 15px 9px 10px; font-size: .92rem; }
	.hx__quick--lead .dci { width: 24px; height: 24px; }
}
