/*
 * Spinelli – design system (brandbook ottobre 2026)
 * Palette 70/20/10: bianco caldo e avorio, nero Ink e grigi caldi, taupe/noce.
 * Manrope per UI e testi, Cormorant Garamond in corsivo per l'accento editoriale (<em> nei titoli).
 * Breakpoint: mobile ≤767, tablet 768–1199, desktop ≥1200.
 */

:root {
	--sp-ink: #171717;
	--sp-ivory: #f4f1eb;
	--sp-paper: #fbf9f5;
	--sp-stone: #aca294;
	--sp-taupe: #88745f;
	--sp-walnut: #5b4938;
	--sp-sand: #c6b8a8;
	--sp-grey: #4a4540;
	--sp-line: rgba(23, 23, 23, .12);
	--sp-wide: 1280px;
	--sp-gutter: clamp(1rem, .4rem + 3vw, 4rem);
	--sp-gap: clamp(1rem, .6rem + 1.2vw, 2rem);
	--sp-ease: cubic-bezier(.2, .7, .2, 1);
	--sp-serif: "Cormorant Garamond", Georgia, serif;
	--sp-header-h: 84px;
	--sp-radius: 4px;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--sp-header-h) + 1rem); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--sp-taupe); outline-offset: 3px; }
::selection { background: var(--sp-sand); color: var(--sp-ink); }

h1 em, h2 em, h3 em, .sp-hero__title em {
	font-family: var(--sp-serif);
	font-style: italic;
	font-weight: 500;
	letter-spacing: -.005em;
	font-size: 1.08em;
}
h1, h2 { letter-spacing: -.02em; text-wrap: balance; }
p { text-wrap: pretty; }

.sp-skip { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.sp-skip:focus { position: fixed; left: 1rem; top: 1rem; z-index: 1000; width: auto; height: auto; clip-path: none; background: var(--sp-ink); color: #fff; padding: .75rem 1rem; text-decoration: none; }

/* ------------------------------------------------------------------ elementi comuni */

.sp-eyebrow {
	font-size: .75rem !important;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--sp-walnut);
	margin: 0 0 1rem;
}
.sp-eyebrow a { color: inherit; text-decoration: none; }
.sp-eyebrow a:hover { text-decoration: underline; }
.sp-eyebrow--light, .has-ink-background-color .sp-eyebrow { color: var(--sp-sand); }
.sp-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.6; color: var(--sp-grey); }
.has-ink-background-color .sp-lead { color: rgba(244, 241, 235, .8); }
.sp-small { font-size: .875rem; color: var(--sp-grey); }

.sp-link a, a.sp-link {
	display: inline-flex; align-items: center; gap: .5rem;
	font-size: .8125rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	text-decoration: none; color: var(--sp-ink);
	padding-block: .5rem; min-height: 44px;
	border-bottom: 1px solid currentColor;
	transition: gap .25s var(--sp-ease), color .2s;
}
.sp-link a:hover, a.sp-link:hover { gap: .85rem; color: var(--sp-walnut); }
.sp-link .sp-icon, a.sp-link .sp-icon { width: 18px; height: 18px; }
.has-ink-background-color .sp-link a { color: var(--sp-ivory); }

.sp-icon { flex: none; }

/* pulsanti */
.wp-element-button, .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
	min-height: 48px; text-decoration: none; box-sizing: border-box;
	transition: background-color .2s, color .2s, border-color .2s;
	border: 1px solid transparent;
}
.wp-element-button .sp-icon { width: 18px; height: 18px; }
.is-style-outline .wp-block-button__link, .wp-element-button.is-outline {
	background: transparent !important; color: var(--sp-ink) !important; border-color: var(--sp-ink);
}
.is-style-outline .wp-block-button__link:hover, .wp-element-button.is-outline:hover { background: var(--sp-ink) !important; color: #fff !important; }
.is-style-light .wp-block-button__link { background: var(--sp-paper); color: var(--sp-ink); }
.is-style-light .wp-block-button__link:hover { background: var(--sp-sand); color: var(--sp-ink); }
.sp-btn-on-dark .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, .7); }
.sp-btn-on-dark .wp-block-button__link:hover { background: #fff !important; color: var(--sp-ink) !important; }
.wp-block-buttons { gap: .75rem; }

/* chip dei filtri */
.sp-chip {
	display: inline-flex; align-items: center; min-height: 44px;
	padding: .5rem 1.1rem; border: 1px solid var(--sp-line); border-radius: 999px;
	background: transparent; color: var(--sp-ink); font: inherit; font-size: .875rem; font-weight: 500;
	text-decoration: none; cursor: pointer; white-space: nowrap;
	transition: background-color .2s, border-color .2s, color .2s;
}
.sp-chip:hover { border-color: var(--sp-ink); }
.sp-chip[aria-current="true"], .sp-chip[aria-pressed="true"] { background: var(--sp-ink); border-color: var(--sp-ink); color: #fff; }

/* ------------------------------------------------------------------ layout sezioni */

.sp-main { padding-bottom: 0; }
.sp-main > .wp-block-post-content > :first-child { margin-top: 0; }
.sp-section { padding-block: var(--wp--preset--spacing--sezione); margin-block: 0 !important; }
.sp-section--tight { padding-block: var(--wp--preset--spacing--xxl); }
.sp-section--flush { padding-top: 0; }
.sp-section .sp-wrap, .sp-wrap { max-width: var(--sp-wide) !important; margin-inline: auto !important; width: 100%; }
.wp-block-post-content > .sp-section + .sp-section:not(.has-background) { padding-top: 0; }
.wp-block-post-content > .sp-section.sp-hero + .sp-section:not(.has-background),
.wp-block-post-content > .sp-section.has-background + .sp-section:not(.has-background),
.wp-block-post-content > .sp-section:not(.has-background) + .sp-section.has-background { padding-top: var(--wp--preset--spacing--sezione); }

.sp-section-head { max-width: 760px; margin-bottom: var(--wp--preset--spacing--xl); }
.sp-section-head h2 { margin: 0; }
.sp-section-head .sp-lead { margin: 1rem 0 0; }
.sp-section-head--row {
	display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem;
	margin-bottom: var(--wp--preset--spacing--xl);
}
.sp-section-head--row .sp-section-head { margin-bottom: 0; }
.sp-section-head--row > .sp-link { margin: 0; }

.sp-split { gap: clamp(2rem, 1rem + 4vw, 6rem) !important; align-items: center !important; margin: 0 !important; }
.sp-split__text > :first-child { margin-top: 0; }
.sp-split__text h2 { margin-block: 0 1.5rem; }
@media (min-width: 782px) {
	.sp-split--reverse { flex-direction: row-reverse; }
	.sp-split > .wp-block-column { flex-basis: 50% !important; }
}
.sp-media-frame { margin: 0; overflow: hidden; border-radius: var(--sp-radius); }
.sp-media-frame img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; display: block; transition: transform .8s var(--sp-ease); }
.sp-media-frame a:hover img { transform: scale(1.03); }

.wp-block-columns { margin-block: 0; }

/* intro pagine (senza foto) */
.sp-intro { padding-block: clamp(2.5rem, 1.5rem + 4vw, 5.5rem) clamp(2rem, 1rem + 3vw, 4rem); }
.sp-intro__inner { max-width: var(--sp-wide) !important; margin-inline: auto !important; }
.sp-intro__inner > * { max-width: 820px; }
.sp-intro__title { margin: 0 0 1.25rem; font-size: var(--wp--preset--font-size--titolo-l); }

/* hero di pagina (testo + foto) */
.sp-page-hero { padding-block: clamp(1.5rem, 1rem + 2vw, 3rem) var(--wp--preset--spacing--sezione); }
.sp-page-hero__inner { max-width: var(--sp-wide) !important; margin-inline: auto !important; display: grid; gap: 2rem; }
.sp-page-hero__title { margin: 0 0 1.25rem; }
.sp-page-hero__media { margin: 0; overflow: hidden; border-radius: var(--sp-radius); }
.sp-page-hero__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
@media (min-width: 1000px) {
	.sp-page-hero__inner { grid-template-columns: 5fr 7fr; align-items: center; gap: clamp(2rem, 4vw, 5rem); }
	.sp-page-hero__media img { aspect-ratio: 4 / 3; max-height: 72vh; }
}

/* ------------------------------------------------------------------ header */

.sp-site-header { position: sticky; top: 0; z-index: 100; }
.admin-bar .sp-site-header { top: var(--wp-admin--admin-bar--height, 0); }
.sp-header {
	position: relative;
	border-bottom: 1px solid transparent;
	transition: border-color .3s, box-shadow .3s;
}
.sp-header::before {
	/* sfondo sfocato su uno pseudo-elemento: backdrop-filter sul contenitore
	   intrappolerebbe l'overlay fixed del menu mobile dentro l'header */
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: rgba(251, 249, 245, .94);
	backdrop-filter: saturate(1.4) blur(10px);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
}
.sp-scrolled .sp-header { border-bottom-color: var(--sp-line); box-shadow: 0 6px 24px -18px rgba(0, 0, 0, .35); }
.sp-header__inner {
	max-width: calc(var(--sp-wide) + 2 * var(--sp-gutter)) !important;
	margin-inline: auto;
	padding: 1.1rem var(--sp-gutter);
	gap: 2rem;
	transition: padding .3s var(--sp-ease);
}
.sp-scrolled .sp-header__inner { padding-block: .6rem; }
.sp-logo { margin: 0; flex: none; }
.sp-logo img { width: 150px !important; height: auto; transition: width .3s var(--sp-ease); }
.sp-scrolled .sp-logo img { width: 132px !important; }
.sp-header__right { gap: clamp(1rem, 2vw, 2rem); }
.sp-header__cta .wp-block-button__link { padding: .8rem 1.3rem; min-height: 44px; font-size: .75rem; }

.sp-nav { font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sp-nav .wp-block-navigation__container { gap: clamp(.9rem, 1.6vw, 1.75rem); }
.sp-nav .wp-block-navigation-item__content { text-decoration: none; padding-block: .6rem; }
.sp-nav .wp-block-navigation-item__content:hover { color: var(--sp-walnut); }
.sp-nav .current-menu-item > .wp-block-navigation-item__content,
.sp-nav .current-menu-ancestor > .wp-block-navigation-item__content { box-shadow: inset 0 -1px 0 currentColor; }

/* mega-menu (desktop) */
@media (min-width: 900px) {
	.sp-nav .has-child .wp-block-navigation__submenu-container {
		min-width: 280px !important;
		padding: 1rem !important;
		border: 1px solid var(--sp-line) !important;
		border-radius: var(--sp-radius);
		background: var(--sp-paper) !important;
		box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .25);
		text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .9375rem;
		transform: translateY(8px);
		transition: opacity .2s var(--sp-ease), transform .2s var(--sp-ease), visibility .2s !important;
		top: calc(100% + .25rem) !important;
	}
	.sp-nav .has-child:hover > .wp-block-navigation__submenu-container,
	.sp-nav .has-child:focus-within > .wp-block-navigation__submenu-container { transform: none; }
	.sp-nav .sp-mega--wide > .wp-block-navigation__submenu-container {
		display: grid !important; grid-template-columns: repeat(2, minmax(200px, 1fr)); width: 480px !important; column-gap: 1rem;
	}
	.sp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .65rem .75rem !important; border-radius: 3px; }
	.sp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--sp-ivory); color: var(--sp-ink); }
	.sp-nav .sp-nav__all { grid-column: 1 / -1; border-top: 1px solid var(--sp-line); margin-top: .5rem; padding-top: .5rem; }
	.sp-nav .sp-nav__all .wp-block-navigation-item__content { font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; }
}
/* il menu completo entra solo da 1200px: sotto, hamburger (brandbook: tablet "menu compatto") */
@media (min-width: 600px) and (max-width: 1199px) {
	.sp-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.sp-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
}
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
/* overlay mobile/tablet */
.sp-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem var(--sp-gutter) 2rem !important;
}
.sp-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem !important; align-items: stretch !important; }
.sp-nav .is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
.sp-nav .is-menu-open .wp-block-navigation-item { border-bottom: 1px solid var(--sp-line); width: 100%; align-items: flex-start !important; }
.sp-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; letter-spacing: .02em; text-transform: none; font-weight: 500; padding: 1rem 0 !important; }
.sp-nav .is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 1rem 0 !important; display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 1rem; width: 100% !important; }
.sp-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.sp-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: .9375rem; padding: .6rem 0 !important; color: var(--sp-grey); }
.sp-nav .is-menu-open .wp-block-navigation-submenu__toggle { display: none; }
@media (max-width: 1199px) { .sp-header__right .wp-block-buttons { display: none !important; } }

/* ------------------------------------------------------------------ hero home */

.sp-hero { padding: 0 !important; position: relative; background: var(--sp-ink); }
.sp-hero > .sp-hero__media, .sp-hero .sp-hero__media { margin: 0 !important; max-width: none !important; }
.sp-hero__media img { width: 100%; height: min(60vh, 520px); object-fit: cover; display: block; }
.sp-hero__content {
	position: relative; z-index: 1;
	max-width: none !important;
	padding: 2rem var(--sp-gutter) 2.75rem;
	background: var(--sp-paper);
}
.sp-hero__content .sp-eyebrow { color: var(--sp-walnut); }
.sp-hero__title { font-size: var(--wp--preset--font-size--display); margin: 0 0 1rem; max-width: 14ch; line-height: 1.04; }
.sp-hero__lead { max-width: 52ch; color: var(--sp-grey); margin-bottom: 1.75rem; }
.sp-hero .is-style-light .wp-block-button__link { background: var(--sp-ink); color: #fff; }
.sp-hero .sp-btn-on-dark .wp-block-button__link { color: var(--sp-ink) !important; border-color: var(--sp-ink); }
@media (max-width: 767px) {
	.sp-hero .wp-block-buttons, .sp-hero .wp-block-button, .sp-hero .wp-block-button__link { width: 100%; }
}
@media (min-width: 768px) {
	.sp-hero { min-height: min(80vh, 820px); display: grid; }
	.sp-hero > * { grid-area: 1 / 1; }
	.sp-hero__media img { height: 100%; min-height: min(80vh, 820px); }
	.sp-hero::after {
		content: ""; grid-area: 1 / 1; pointer-events: none;
		background: linear-gradient(90deg, rgba(10, 10, 10, .62) 0%, rgba(10, 10, 10, .35) 42%, rgba(10, 10, 10, 0) 70%);
	}
	.sp-hero__content {
		align-self: end; background: none; color: #fff;
		width: 100%; max-width: calc(var(--sp-wide) + 2 * var(--sp-gutter)) !important; margin-inline: auto !important;
		padding-block: 0 clamp(3rem, 8vh, 6rem);
	}
	.sp-hero__title { color: #fff; }
	.sp-hero__content { text-shadow: 0 1px 24px rgba(0, 0, 0, .25); }
	.sp-hero__content .sp-eyebrow { color: var(--sp-sand); }
	.sp-hero__lead { color: rgba(255, 255, 255, .86); }
	.sp-hero .is-style-light .wp-block-button__link { background: var(--sp-paper); color: var(--sp-ink); }
	.sp-hero .sp-btn-on-dark .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, .75); }
}
@media (min-width: 768px) and (max-width: 1199px) { .sp-hero, .sp-hero__media img { min-height: 62vh; } }

/* hero video: filmati in sequenza, crossfade morbido */
.sp-hero__media--video { position: relative; display: block; overflow: hidden; background: var(--sp-ink); }
.sp-hero__media--video .sp-hero__video {
	width: 100%; height: min(60vh, 520px); object-fit: cover; display: block;
	opacity: 0; transition: opacity .7s var(--sp-ease);
}
.sp-hero__media--video .sp-hero__video.is-on { opacity: 1; }

/* su telefono il contenuto sotto i video non deve lasciare una fascia scura */
@media (max-width: 767px) {
	.sp-hero > .sp-hero__content { margin-block-start: 0 !important; }
}
.sp-hero__media--video .sp-hero__video:not(:first-child) { position: absolute; inset: 0; height: 100%; }
@media (min-width: 768px) {
	.sp-hero__media--video .sp-hero__video { height: 100%; min-height: min(80vh, 820px); }
}
@media (min-width: 768px) and (max-width: 1199px) {
	.sp-hero__media--video .sp-hero__video { min-height: 62vh; }
}

/* ------------------------------------------------------------------ linee (home) */

.sp-lines { display: grid; gap: var(--sp-gap); }
@media (min-width: 768px) { .sp-lines { grid-template-columns: repeat(2, 1fr); } .sp-lines > :first-child { grid-column: 1 / -1; } }
@media (min-width: 1200px) { .sp-lines { grid-template-columns: repeat(3, 1fr); } .sp-lines > :first-child { grid-column: auto; } }
.sp-line { margin: 0 !important; }
.sp-line__media { margin: 0 0 1.25rem; overflow: hidden; border-radius: var(--sp-radius); }
.sp-line__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .8s var(--sp-ease); }
.sp-line:hover .sp-line__media img { transform: scale(1.035); }
.sp-line__num { font-family: var(--sp-serif); font-style: italic; font-size: 1.25rem; color: var(--sp-taupe); margin: 0 0 .25rem; }
.sp-line__title { margin: 0 0 .5rem; }
.sp-line__title a { text-decoration: none; }
.sp-line__text { color: var(--sp-grey); margin: 0 0 .75rem; }
@media (min-width: 768px) and (max-width: 1199px) {
	.sp-lines > :first-child { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--sp-gap); align-items: center; }
	.sp-lines > :first-child .sp-line__media { margin: 0; }
}

/* pillar */
.sp-pillars { gap: var(--sp-gap) !important; }
.sp-pillar .wp-block-image { margin: 0 0 1.25rem; overflow: hidden; border-radius: var(--sp-radius); }
.sp-pillar img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.sp-pillar__title { margin: 0 0 .5rem; }
.sp-pillar p:not(.sp-link) { color: var(--sp-grey); }
@media (min-width: 782px) and (max-width: 1199px) {
	.sp-pillars { flex-wrap: wrap !important; }
	.sp-pillars > .wp-block-column { flex-basis: calc(50% - var(--sp-gap)) !important; }
}

/* trasforma lo spazio */
.sp-transform { gap: clamp(2rem, 4vw, 5rem) !important; align-items: center !important; }
@media (min-width: 782px) { .sp-transform__text { flex-basis: 38% !important; } .sp-transform__media { flex-basis: 62% !important; } }
.sp-checks { list-style: none; padding: 0; margin: 1.5rem 0; }
.sp-checks li { position: relative; padding: .55rem 0 .55rem 2rem; border-top: 1px solid var(--sp-line); }
.sp-checks li:last-child { border-bottom: 1px solid var(--sp-line); }
.sp-checks li::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: 14px; height: 7px; border-left: 1.5px solid var(--sp-walnut); border-bottom: 1.5px solid var(--sp-walnut); transform: rotate(-45deg); }

/* componente trasforma (chiuso/aperto) */
.sp-trasforma { margin: 0; }
.sp-tr__stage { position: relative; overflow: hidden; border-radius: var(--sp-radius); background: var(--sp-ivory); aspect-ratio: 3 / 2; }
.sp-tr__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .6s var(--sp-ease), transform 1.2s var(--sp-ease); }
.sp-tr__img--aperto { opacity: 0; }
.sp-tr[data-stato="aperto"] .sp-tr__img--aperto { opacity: 1; }
.sp-tr[data-stato="aperto"] .sp-tr__img--chiuso { opacity: 0; }
.sp-tr__video { opacity: 0; background: var(--sp-ivory); }
.sp-tr[data-stato="video"] .sp-tr__video { opacity: 1; }
.sp-tr[data-stato="video"] .sp-tr__img--chiuso, .sp-tr[data-stato="video"] .sp-tr__img--aperto { opacity: 0; }
.sp-tr__switch {
	display: inline-flex; max-width: 100%; box-sizing: border-box; margin-top: 1rem; padding: 4px; gap: 4px;
	border: 1px solid var(--sp-line); border-radius: 999px; background: var(--sp-paper);
}
.sp-tr__switch button {
	display: inline-flex; align-items: center; gap: .55rem;
	min-height: 44px; padding: .5rem 1.1rem; border: 0; border-radius: 999px;
	background: transparent; color: var(--sp-grey); font: inherit; font-size: .8125rem; font-weight: 600; letter-spacing: .06em; cursor: pointer;
	transition: background-color .25s, color .25s;
}
.sp-tr__switch button[aria-pressed="true"] { background: var(--sp-ink); color: #fff; }
.sp-tr__dot { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid currentColor; }
.sp-tr__switch button[aria-pressed="true"] .sp-tr__dot { background: currentColor; }
.sp-trasforma__caption { margin-top: .75rem; font-size: .875rem; color: var(--sp-grey); display: inline-block; margin-left: 1rem; }
.sp-trasforma__caption a { color: inherit; display: inline-flex; gap: .4rem; align-items: center; }
.sp-trasforma__caption .sp-icon { width: 16px; }
@media (max-width: 520px) { .sp-trasforma__caption { display: block; margin-left: 0; } .sp-tr__switch { display: flex; } .sp-tr__switch button { flex: 1; justify-content: center; } }
@media (max-width: 560px) { .sp-tr--video .sp-tr__switch button { padding: .5rem .55rem; font-size: .6875rem; letter-spacing: .02em; gap: .35rem; white-space: nowrap; } .sp-tr--video .sp-tr__switch .sp-tr__dot { display: none; } }

/* proof (numeri) */
.sp-section--dark h2 { color: var(--sp-ivory); }
.sp-proof-cols { gap: clamp(2rem, 5vw, 6rem) !important; }
@media (min-width: 782px) { .sp-proof__intro { flex-basis: 40% !important; flex-grow: 0 !important; } .sp-proof__list { flex-basis: 60% !important; flex-grow: 1 !important; } }
.sp-proof { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.5rem var(--sp-gap); }
.sp-proof__item { border-top: 1px solid rgba(244, 241, 235, .2); padding-top: 1.25rem; }
.sp-proof__num { font-family: var(--sp-serif); font-size: clamp(3rem, 2rem + 4vw, 5rem); line-height: 1; margin: 0 0 .5rem; color: var(--sp-sand); font-weight: 400; }
.sp-proof__label { font-weight: 600; margin: 0 0 .25rem; letter-spacing: .02em; }
.sp-proof__text { margin: 0; font-size: .9375rem; color: rgba(244, 241, 235, .7); }
@media (min-width: 1000px) { .sp-proof--row { grid-template-columns: repeat(4, 1fr); } }

/* ------------------------------------------------------------------ categorie */

.sp-cats { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-gap); grid-template-columns: 1fr; }
@media (min-width: 560px) { .sp-cats { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .sp-cats--card { grid-template-columns: repeat(4, 1fr); } .sp-cats--tile { grid-template-columns: repeat(3, 1fr); } }
.sp-cat__link { display: block; text-decoration: none; color: inherit; height: 100%; }
.sp-cat__media { margin: 0; overflow: hidden; border-radius: var(--sp-radius); background: var(--sp-ivory); }
.sp-cat__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .8s var(--sp-ease); }
.sp-cats--tile .sp-cat__media img { aspect-ratio: 5 / 4; }
.sp-cat__link:hover .sp-cat__media img { transform: scale(1.04); }
.sp-cat__body { display: grid; grid-template-columns: auto 1fr; column-gap: .75rem; align-items: baseline; padding-top: 1rem; }
.sp-cat__num { font-family: var(--sp-serif); font-style: italic; color: var(--sp-taupe); font-size: 1.125rem; }
.sp-cat__title { margin: 0; font-size: 1.25rem; font-weight: 500; }
.sp-cat__sub { grid-column: 2; margin: .35rem 0 0; color: var(--sp-grey); font-size: .9375rem; }
.sp-cat__meta {
	grid-column: 2; display: inline-flex; align-items: center; gap: .4rem; margin-top: .35rem;
	font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sp-walnut);
}
.sp-cat__meta .sp-icon { width: 16px; transition: transform .25s var(--sp-ease); }
.sp-cat__link:hover .sp-cat__meta .sp-icon { transform: translateX(4px); }

/* ------------------------------------------------------------------ griglia prodotti */

.sp-grid { display: grid; gap: clamp(2rem, 1.5rem + 1.5vw, 3rem) var(--sp-gap); grid-template-columns: 1fr; }
@media (min-width: 640px) { .sp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .sp-grid { grid-template-columns: repeat(3, 1fr); } }
.sp-card[hidden] { display: none; }
.sp-card__link { display: block; text-decoration: none; color: inherit; }
.sp-card__media { position: relative; margin: 0; overflow: hidden; border-radius: var(--sp-radius); background: var(--sp-ivory); aspect-ratio: 4 / 3; }
.sp-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .5s var(--sp-ease), transform .8s var(--sp-ease); }
.sp-card__img--aperto { opacity: 0; }
@media (hover: hover) {
	.sp-card__link:hover .sp-card__img { transform: scale(1.03); }
	.sp-card__link:hover .has-aperto .sp-card__img--aperto { opacity: 1; }
}
.sp-card__media.has-aperto::after {
	content: "Passa sopra: aperto"; position: absolute; left: .75rem; bottom: .75rem;
	font-size: .6875rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
	background: rgba(251, 249, 245, .92); color: var(--sp-ink); padding: .35rem .6rem; border-radius: 999px;
	opacity: 0; transition: opacity .3s;
}
@media (hover: hover) { .sp-card__link:hover .has-aperto::after { content: "Aperto"; opacity: 1; } }
.sp-card__body { padding-top: 1rem; }
.sp-card__linea { margin: 0 0 .3rem; font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--sp-walnut); }
.sp-card__title { margin: 0; font-size: 1.25rem; font-weight: 500; line-height: 1.3; }
.sp-card__code, .sp-product__code, .sp-proof__num, .sp-catalog__year { font-variant-numeric: lining-nums; }
.sp-card__code { font-family: var(--sp-serif); font-style: italic; font-weight: 500; color: var(--sp-taupe); font-size: 1.15em; margin-left: .15rem; }
.sp-card__sub { margin: .3rem 0 0; color: var(--sp-grey); font-size: .9375rem; }

.sp-filters { display: grid; gap: 1rem; margin-bottom: var(--wp--preset--spacing--xl); padding-bottom: 1.5rem; border-bottom: 1px solid var(--sp-line); }
.sp-filters__group { display: grid; gap: .5rem; }
.sp-filters__label { font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--sp-walnut); }
.sp-filters__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.sp-filters__count { margin: 0; font-size: .875rem; color: var(--sp-grey); }
.sp-filters__count span { font-weight: 700; color: var(--sp-ink); }
@media (max-width: 767px) {
	/* filtri su una riga scorrevole: utilizzabili con una mano */
	.sp-filters__chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--sp-gutter)); padding-inline: var(--sp-gutter); scroll-snap-type: x proximity; }
	.sp-filters__chips::-webkit-scrollbar { display: none; }
	.sp-chip { scroll-snap-align: start; }
}
@media (min-width: 1200px) {
	.sp-prodotti.has-filters .sp-filters { grid-template-columns: 1fr auto; align-items: end; }
	.sp-prodotti.has-filters .sp-filters__count { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
}
.sp-grid__empty { padding: 2rem 0; color: var(--sp-grey); }

/* ------------------------------------------------------------------ breadcrumb e archivi */

.sp-breadcrumb { margin-block: 1.5rem 0 !important; font-size: .8125rem; color: var(--sp-grey); }
.sp-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.sp-breadcrumb li + li::before { content: "/"; margin-right: .5rem; color: var(--sp-stone); }
.sp-breadcrumb a { color: inherit; text-decoration: none; }
.sp-breadcrumb a:hover { color: var(--sp-ink); text-decoration: underline; }
.sp-breadcrumb [aria-current] { color: var(--sp-ink); }
@media (max-width: 767px) { .sp-breadcrumb ol { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; } }

.sp-archive > .sp-breadcrumb, .sp-single-product > .sp-breadcrumb, .sp-blog > .sp-breadcrumb, .sp-article > .sp-breadcrumb, .sp-page > .sp-breadcrumb { max-width: var(--sp-wide) !important; }
.sp-archive-head {
	max-width: none !important; margin: 0 0 var(--wp--preset--spacing--xxl) !important;
	display: grid; gap: 2rem; padding: clamp(1.5rem, 1rem + 2vw, 3rem) var(--sp-gutter) 0;
}
.sp-archive-head > * { max-width: var(--sp-wide); }
.sp-archive-head__title { margin: 0 0 .75rem; font-size: var(--wp--preset--font-size--titolo-l); }
.sp-archive-head__sub { font-family: var(--sp-serif); font-style: italic; font-size: var(--wp--preset--font-size--titolo-s); color: var(--sp-walnut); margin: 0 0 1.25rem; line-height: 1.3; }
.sp-archive-head__intro { color: var(--sp-grey); max-width: 62ch; }
.sp-archive-head__intro p { margin: 0 0 1rem; }
.sp-archive-head__count { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin: 1.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--sp-line); display: inline-block; }
.sp-archive-head__media { margin: 0; overflow: hidden; border-radius: var(--sp-radius); }
.sp-archive-head__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
@media (min-width: 1100px) {
	.sp-archive-head.has-media {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center;
		max-width: calc(var(--sp-wide) + 2 * var(--sp-gutter)) !important; margin-inline: auto !important; gap: clamp(2rem, 4vw, 5rem);
	}
	.sp-archive-head__media img { aspect-ratio: 4 / 3; }
}
@media (max-width: 1099px) { .sp-archive-head { margin-inline: calc(-1 * var(--sp-gutter)) !important; } }
.sp-archive > .sp-prodotti, .sp-archive > .sp-finiture { margin-bottom: var(--wp--preset--spacing--sezione); }
.sp-seo-text { max-width: 760px; margin: 0 auto var(--wp--preset--spacing--sezione) !important; padding-top: var(--wp--preset--spacing--xl); border-top: 1px solid var(--sp-line); color: var(--sp-grey); columns: 1; }
.sp-seo-text h2 { font-size: var(--wp--preset--font-size--titolo-s); color: var(--sp-ink); }

/* ------------------------------------------------------------------ scheda prodotto */

.sp-product { margin-top: 1.25rem !important; margin-bottom: var(--wp--preset--spacing--sezione) !important; }
.sp-product__top { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); }
.sp-product__details { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .sp-product__top { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 4vw, 5rem); align-items: start; } .sp-product__info { position: sticky; top: calc(var(--sp-header-h) + 1.5rem); } }
.sp-product__media .sp-tr__stage { aspect-ratio: 3 / 2; }
.sp-product__thumbs { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: thin; }
.sp-product__thumbs li { flex: 0 0 auto; }
.sp-product__thumbs a { display: block; width: 96px; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 3px; outline-offset: 2px; }
.sp-product__thumbs img { width: 100%; height: 100%; object-fit: cover; transition: opacity .2s; }
.sp-product__thumbs a:hover img { opacity: .8; }
.sp-product__thumbs button { display: block; width: 96px; aspect-ratio: 4 / 3; padding: 0; border: 0; overflow: hidden; border-radius: 3px; position: relative; cursor: pointer; background: var(--sp-ivory); outline-offset: 2px; }
.sp-product__thumbs button img { width: 100%; height: 100%; object-fit: cover; transition: opacity .2s; }
.sp-product__thumbs button:hover img { opacity: .8; }
.sp-product__thumb-play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: rgba(0, 0, 0, .22); }
.sp-product__title { margin: 0; font-size: var(--wp--preset--font-size--titolo-l); line-height: 1.02; }
.sp-product__code { font-family: var(--sp-serif); font-style: italic; font-weight: 500; color: var(--sp-taupe); }
.sp-product__sub { font-size: 1.0625rem; font-weight: 500; margin: .75rem 0 1.5rem; color: var(--sp-walnut); }
.sp-product__desc { color: var(--sp-grey); }
.sp-product__desc p { margin: 0 0 1rem; }
.sp-product__cta { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.75rem 0 1.5rem; }
@media (max-width: 767px) { .sp-product__cta .wp-element-button { width: 100%; } }
.sp-product__tags { list-style: none; padding: 1.25rem 0 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; border-top: 1px solid var(--sp-line); }
.sp-product__tags a { display: inline-flex; min-height: 36px; align-items: center; padding: .35rem .85rem; border-radius: 999px; background: var(--sp-ivory); color: var(--sp-ink); text-decoration: none; font-size: .8125rem; }
.sp-product__tags a:hover { background: var(--sp-sand); }

.sp-product__details { display: grid; gap: 2.5rem; margin-top: var(--wp--preset--spacing--xxl); padding-top: var(--wp--preset--spacing--xl); border-top: 1px solid var(--sp-line); }
@media (min-width: 1000px) { .sp-product__details { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 4vw, 5rem); } }
.sp-panel { border-bottom: 1px solid var(--sp-line); }
.sp-panel summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 0; cursor: pointer; list-style: none; min-height: 44px; }
.sp-panel summary::-webkit-details-marker { display: none; }
.sp-panel summary .sp-icon { transition: transform .25s var(--sp-ease); }
.sp-panel[open] summary .sp-icon { transform: rotate(45deg); }
.sp-panel__title { margin: 0; font-size: 1.125rem !important; font-weight: 600; letter-spacing: 0; }
.sp-panel__body { padding: 0 0 1.5rem; color: var(--sp-grey); }
.sp-panel__body h4 { color: var(--sp-ink); margin: 1.25rem 0 .5rem; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.sp-panel__body h4:first-child { margin-top: 0; }
@media (min-width: 1000px) {
	.sp-panel summary { pointer-events: none; }
	.sp-panel summary .sp-icon { display: none; }
	.sp-panel { padding-bottom: .5rem; }
}
.sp-list { margin: 0; padding: 0; list-style: none; }
.sp-list li { padding: .5rem 0 .5rem 1.25rem; position: relative; border-bottom: 1px dashed var(--sp-line); }
.sp-list li::before { content: ""; position: absolute; left: 0; top: 1.05rem; width: 6px; height: 6px; border-radius: 50%; background: var(--sp-taupe); }
.sp-dims { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; }
.sp-dims li { font-variant-numeric: tabular-nums; }
.sp-fin-note { font-size: .875rem; margin-top: 1rem; }

.sp-product__aside { display: grid; gap: 1.5rem; align-content: start; }
.sp-aside__title { font-size: .75rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--sp-walnut); margin: 0 0 .75rem; }
.sp-downloads ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.sp-downloads a {
	display: flex; gap: 1rem; align-items: center; padding: 1rem 1.1rem; min-height: 56px;
	background: var(--sp-ivory); border-radius: var(--sp-radius); text-decoration: none; color: var(--sp-ink);
	transition: background-color .2s;
}
.sp-downloads a:hover { background: var(--sp-sand); }
.sp-downloads span { display: grid; }
.sp-downloads small { color: var(--sp-grey); font-size: .8125rem; }
.sp-safety { padding: 1.25rem; border-left: 3px solid var(--sp-walnut); background: var(--sp-paper); box-shadow: inset 0 0 0 1px var(--sp-line); font-size: .9375rem; }
.sp-safety p { margin: 0; color: var(--sp-grey); }
.sp-aside-cta { display: grid; gap: .25rem; justify-items: start; }
.sp-aside-cta p { margin: 0 0 .5rem; color: var(--sp-grey); }

.sp-similar { margin-bottom: var(--wp--preset--spacing--sezione) !important; padding-top: var(--wp--preset--spacing--xl); border-top: 1px solid var(--sp-line); }
.sp-similar .sp-section-head--row h2 { flex: 1 1 20ch; margin: 0; font-size: var(--wp--preset--font-size--titolo-m); }

/* swatch */
.sp-swatches { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem .75rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 560px) { .sp-swatches { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .sp-swatches { grid-template-columns: repeat(5, 1fr); } }
@media (min-width: 1200px) { .sp-swatches { grid-template-columns: repeat(6, 1fr); } }
.sp-swatches--print { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .sp-swatches--print { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .sp-swatches--print { grid-template-columns: repeat(5, 1fr); } }
.sp-swatch[hidden] { display: none; }
.sp-swatch a, .sp-swatch__btn {
	display: grid; gap: .15rem; width: 100%; padding: 0; border: 0; background: none; text-align: left;
	font: inherit; color: inherit; text-decoration: none; cursor: pointer;
}
.sp-swatch__chip { display: block; aspect-ratio: 1; border-radius: var(--sp-radius); overflow: hidden; margin-bottom: .5rem; box-shadow: inset 0 0 0 1px var(--sp-line); }
.sp-swatch__chip img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--sp-ease); }
.sp-swatch a:hover img, .sp-swatch__btn:hover img { transform: scale(1.06); }
.sp-swatch__name { font-weight: 600; font-size: .875rem; line-height: 1.3; }
.sp-swatch__code, .sp-swatch__fam { font-size: .75rem; color: var(--sp-grey); }
.sp-swatches--mini { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)) !important; margin-bottom: 1rem; }
.sp-swatch-group { font-size: 1rem !important; font-weight: 600; margin: 2rem 0 1rem; padding-top: 1.25rem; border-top: 1px solid var(--sp-line); }
.sp-swatch-group:first-of-type { margin-top: 0; border-top: 0; padding-top: 0; }

/* finiture: schede */
.sp-tabs { display: flex; gap: .25rem; border-bottom: 1px solid var(--sp-line); margin-bottom: var(--wp--preset--spacing--xl); overflow-x: auto; scrollbar-width: none; }
.sp-tab {
	display: inline-flex; align-items: center; gap: .5rem; min-height: 52px; padding: .75rem 1.1rem; white-space: nowrap;
	text-decoration: none; color: var(--sp-grey); font-weight: 600; font-size: .9375rem;
	border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color .2s, border-color .2s;
}
.sp-tab span { font-size: .75rem; font-weight: 500; color: var(--sp-stone); }
.sp-tab:hover { color: var(--sp-ink); }
.sp-tab[aria-selected="true"] { color: var(--sp-ink); border-bottom-color: var(--sp-ink); }
.sp-fin-panel + .sp-fin-panel { margin-top: var(--wp--preset--spacing--xxl); }
.sp-js .sp-tabs ~ .sp-fin-panel + .sp-fin-panel { margin-top: 0; }
.sp-fin-panel__head { display: grid; gap: 1.25rem; margin-bottom: 2rem; }
@media (min-width: 1000px) { .sp-fin-panel__head { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 3rem; } }
.sp-fin-panel__title { margin: 0 0 .75rem; font-size: var(--wp--preset--font-size--titolo-m); }
.sp-fin-panel__intro { color: var(--sp-grey); max-width: 70ch; }
.sp-fin-panel__intro p { margin: 0; }
.sp-filters--tono { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; border: 0; }
.sp-print-note { margin-top: 2rem; padding: 1.25rem; background: var(--sp-ivory); border-radius: var(--sp-radius); max-width: 760px; color: var(--sp-grey); }
.sp-other-fam { margin-bottom: var(--wp--preset--spacing--sezione) !important; padding-top: var(--wp--preset--spacing--xl); border-top: 1px solid var(--sp-line); }

/* dialog (dettaglio finitura, zoom foto) */
.sp-dialog { border: 0; padding: 0; max-width: min(960px, calc(100vw - 2rem)); width: 100%; background: var(--sp-paper); border-radius: var(--sp-radius); box-shadow: 0 30px 80px rgba(0, 0, 0, .35); }
.sp-dialog::backdrop { background: rgba(23, 23, 23, .72); }
.sp-dialog__inner { display: grid; position: relative; }
@media (min-width: 768px) { .sp-dialog--swatch .sp-dialog__inner { grid-template-columns: 1.2fr 1fr; } }
.sp-dialog__media { margin: 0; background: var(--sp-ivory); }
.sp-dialog__media img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.sp-dialog__text { padding: clamp(1.25rem, 3vw, 2.5rem); align-self: center; }
.sp-dialog__text h2 { margin: 0 0 .25rem; font-size: var(--wp--preset--font-size--titolo-s); }
.sp-dialog__code { color: var(--sp-grey); margin: 0 0 1rem; }
.sp-dialog__prod { font-size: .9375rem; margin-bottom: 1rem; }
.sp-dialog__note { font-size: .8125rem; color: var(--sp-grey); }
.sp-dialog__close {
	position: absolute; top: .5rem; right: .5rem; z-index: 2; width: 44px; height: 44px; border-radius: 50%;
	border: 0; background: rgba(251, 249, 245, .92); color: var(--sp-ink); cursor: pointer; display: grid; place-items: center;
}
.sp-dialog--zoom { max-width: min(1400px, calc(100vw - 2rem)); background: #111; }
.sp-dialog--zoom img { display: block; width: 100%; max-height: 86vh; object-fit: contain; }
.sp-dialog--zoom .sp-zoom__nav { display: flex; justify-content: space-between; position: absolute; inset: auto 0 50% 0; pointer-events: none; padding: 0 .5rem; }
.sp-dialog--zoom .sp-zoom__nav button { pointer-events: auto; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(251, 249, 245, .9); cursor: pointer; display: grid; place-items: center; }
.sp-dialog--zoom .sp-zoom__nav button:first-child svg { transform: rotate(180deg); }

/* ------------------------------------------------------------------ cataloghi */

.sp-catalogs { display: grid; gap: var(--sp-gap); }
@media (min-width: 768px) { .sp-catalogs { grid-template-columns: repeat(3, 1fr); } .sp-catalog--featured { grid-column: 1 / -1; display: grid; grid-template-columns: 2fr 3fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; } }
.sp-catalog { background: var(--sp-ivory); border-radius: var(--sp-radius); padding: clamp(1.25rem, 2.5vw, 2rem); display: grid; gap: 1.25rem; align-content: start; }
.sp-catalog__cover { margin: 0; }
.sp-catalog__cover img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .45); }
.sp-catalog--featured .sp-catalog__cover img { aspect-ratio: auto; max-height: 520px; object-fit: contain; }
.sp-catalog__year { font-family: var(--sp-serif); font-style: italic; color: var(--sp-taupe); font-size: 1.5rem; margin: 0; }
.sp-catalog__title { margin: 0 0 .5rem; font-size: var(--wp--preset--font-size--titolo-s); }
.sp-catalog--featured .sp-catalog__title { font-size: var(--wp--preset--font-size--titolo-m); }
.sp-catalog__desc { color: var(--sp-grey); margin: 0 0 1rem; }
.sp-catalog__lines { display: flex; gap: .4rem; margin: 0 0 1.25rem; }
.sp-badge { display: inline-flex; padding: .25rem .7rem; border: 1px solid var(--sp-line); border-radius: 999px; font-size: .75rem; text-decoration: none; color: var(--sp-ink); }
.sp-catalog__size { font-weight: 500; opacity: .7; letter-spacing: .04em; text-transform: none; }
.sp-catalog__size:not(:empty)::before { content: "· "; }

/* ------------------------------------------------------------------ azienda / collezioni */

.sp-manifesto { flex-direction: column; gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
@media (min-width: 782px) { .sp-manifesto > .wp-block-column { flex-basis: 100% !important; } }
.sp-manifesto__head h2 { margin: 0; }
.sp-manifesto__text { max-width: 760px; }
.sp-values { display: grid; gap: var(--sp-gap); }
@media (min-width: 768px) { .sp-values { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .sp-values { grid-template-columns: repeat(4, 1fr); } }
.sp-value { margin: 0 !important; padding-top: 1.25rem; border-top: 1px solid var(--sp-ink); }
.sp-value__num { font-family: var(--sp-serif); font-style: italic; color: var(--sp-taupe); font-size: 1.25rem; margin: 0 0 1rem; }
.sp-value__title { margin: 0 0 .75rem; font-size: 1.25rem; }
.sp-value p:last-child { color: var(--sp-grey); font-size: .9375rem; }
.sp-projects { display: grid; gap: var(--sp-gap); margin-bottom: var(--wp--preset--spacing--xl); }
@media (min-width: 768px) { .sp-projects { grid-template-columns: repeat(3, 1fr); } }
.sp-project { margin: 0 !important; }
.sp-project__media { margin: 0 0 1rem; overflow: hidden; border-radius: var(--sp-radius); }
.sp-project__media img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; transition: transform .8s var(--sp-ease); }
.sp-project:hover img { transform: scale(1.03); }
.sp-project__where { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sp-walnut); margin: 0 0 .35rem; }
.sp-project__title { margin: 0; font-size: 1.25rem; }
.sp-project__title a { text-decoration: none; }
.sp-badges { list-style: none; padding: 0; margin: 1.5rem 0 2rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.sp-badges li { padding: .4rem .9rem; border: 1px solid var(--sp-line); border-radius: 999px; font-size: .8125rem; font-weight: 500; }

/* ------------------------------------------------------------------ contatti */

.sp-contact-cards { display: grid; gap: var(--sp-gap); }
@media (min-width: 768px) { .sp-contact-cards { grid-template-columns: repeat(3, 1fr); } }
.sp-contact-card { margin: 0 !important; padding: clamp(1.25rem, 2.5vw, 2rem); background: var(--sp-ivory); border-radius: var(--sp-radius); }
.sp-contact-card p { margin: 0 0 .25rem; }
.sp-contact-card__title { font-size: .75rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--sp-walnut); margin: 0 0 1rem; }
.sp-contact-card__big { font-size: 1.375rem; font-weight: 500; }
.sp-contact-card__note { font-size: .875rem; color: var(--sp-grey); margin-top: .5rem !important; }
.sp-contact-card a { color: inherit; }
.sp-contact { gap: clamp(2rem, 5vw, 6rem) !important; }
@media (min-width: 782px) { .sp-contact__aside { flex: 0 1 38% !important; } .sp-contact__form { flex: 1 1 56% !important; } }
.sp-contact__aside h2 { margin-top: 0; }

.sp-form-wrap { box-sizing: border-box; background: var(--sp-paper); padding: clamp(1.25rem, 3vw, 2.5rem); border-radius: var(--sp-radius); box-shadow: inset 0 0 0 1px var(--sp-line); }
.sp-form { display: grid; gap: 1.1rem; }
.sp-form p { margin: 0; }
.sp-field { display: grid; gap: .4rem; }
.sp-field label { font-size: .875rem; font-weight: 600; }
.sp-field__opt { font-weight: 400; color: var(--sp-grey); }
.sp-field input, .sp-field select, .sp-field textarea {
	width: 100%; min-height: 50px; padding: .75rem .9rem; border: 1px solid var(--sp-stone); border-radius: 3px;
	background: #fff; font: inherit; font-size: 1rem; color: var(--sp-ink); box-sizing: border-box;
}
.sp-field input:focus, .sp-field select:focus, .sp-field textarea:focus { outline: 2px solid var(--sp-taupe); outline-offset: 0; border-color: var(--sp-taupe); }
.sp-field [aria-invalid="true"] { border-color: #a1260d; }
.sp-field__error { color: #a1260d; font-size: .8125rem; }
.sp-form__row { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .sp-form__row { grid-template-columns: 1fr 1fr; } }
.sp-form__hint { font-size: .8125rem; color: var(--sp-grey); margin-top: -.5rem !important; }
.sp-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sp-check { display: flex; gap: .75rem; align-items: flex-start; font-size: .875rem; }
.sp-check input { width: 22px; height: 22px; flex: none; margin-top: .1rem; accent-color: var(--sp-ink); }
.sp-form__submit button { width: 100%; cursor: pointer; }
@media (min-width: 640px) { .sp-form__submit button { width: auto; } }
.sp-form-msg { padding: 1rem 1.25rem; border-radius: 3px; margin-bottom: 1.5rem; }
.sp-form-msg--ok { background: #e6efe3; }
.sp-form-msg--error { background: #f7e3dc; }

.sp-map { margin-top: 2rem; aspect-ratio: 16 / 10; background: var(--sp-sand) center / cover; border-radius: var(--sp-radius); overflow: hidden; position: relative; }
.sp-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.sp-map__placeholder { position: absolute; inset: 0; display: grid; align-content: center; justify-items: start; gap: .5rem; padding: 1.5rem; background: linear-gradient(135deg, var(--sp-ivory), var(--sp-sand)); }
.sp-map__address { font-size: 1.125rem; font-weight: 500; margin: 0; }
.sp-map__actions { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; margin: 0; }
.sp-map__load { min-height: 44px; padding: .6rem 1.1rem; border: 1px solid var(--sp-ink); border-radius: 999px; background: transparent; font: inherit; font-weight: 600; cursor: pointer; }
.sp-map__load:hover { background: var(--sp-ink); color: #fff; }
.sp-map__note { font-size: .75rem; color: var(--sp-grey); margin: 0; }

/* ------------------------------------------------------------------ blog */

.sp-blog__head { margin-block: 2.5rem var(--wp--preset--spacing--xl) !important; }
.sp-blog__head > * { max-width: 820px; }
.sp-blog__title { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--titolo-l); }
.sp-filters--blog { border: 0; padding: 0; margin: 1.5rem 0 0; max-width: none !important; }
.sp-posts { margin-bottom: var(--wp--preset--spacing--sezione); }
.sp-post-card { margin: 0 !important; }
.sp-post-card__media { margin: 0 0 1rem !important; overflow: hidden; border-radius: var(--sp-radius); display: block; background: var(--sp-ivory); }
.sp-post-card__media img { width: 100%; aspect-ratio: 4 / 3 !important; object-fit: cover; display: block; transition: transform .8s var(--sp-ease); }
.sp-post-card:hover .sp-post-card__media img { transform: scale(1.03); }
.sp-post-card__title { margin: .25rem 0 .5rem; font-size: 1.25rem !important; font-weight: 500; line-height: 1.3; }
.sp-post-card__title a { text-decoration: none; }
.sp-post-card__title a:hover { text-decoration: underline; }
.sp-post-card__excerpt { color: var(--sp-grey); font-size: .9375rem; }
.sp-post-card__excerpt p { margin: 0; }
.sp-post-meta { display: flex; flex-wrap: wrap; gap: .25rem .9rem; margin: 0; font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sp-grey); }
.sp-post-meta__cat { color: var(--sp-walnut); }
.wp-block-query-pagination { margin-top: 3rem; gap: .5rem; }

.sp-article__head { margin-top: 2rem; }
.sp-article__title { font-size: var(--wp--preset--font-size--titolo-l); margin: .75rem 0; }
.sp-article__date { color: var(--sp-grey); font-size: .875rem; }
.sp-article__image { margin-block: 2rem 3rem !important; }
.sp-article__image img { width: 100%; max-height: 72vh; object-fit: cover; border-radius: var(--sp-radius); }
.sp-article__content { font-size: 1.0625rem; }
.sp-article__content h2 { font-size: var(--wp--preset--font-size--titolo-s); font-weight: 500; margin-top: 2.5rem; }
.sp-article__content .wp-block-gallery { margin-block: 2rem; }
.sp-toc { max-width: 760px; margin: 0 auto 2rem !important; padding: 1.25rem 1.5rem; background: var(--sp-ivory); border-radius: var(--sp-radius); }
.sp-toc details summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.sp-toc ol { margin: .5rem 0 0; padding-left: 1.25rem; }
.sp-toc li { margin: .35rem 0; }
.sp-toc a { color: var(--sp-ink); }
.sp-related, .sp-more-posts { margin-block: var(--wp--preset--spacing--xxl) !important; padding-top: var(--wp--preset--spacing--xl); border-top: 1px solid var(--sp-line); }
.sp-related__title, .sp-more-posts__title { font-size: var(--wp--preset--font-size--titolo-m); margin: 0 0 2rem; }
.sp-video { margin: 2.5rem auto !important; max-width: 760px; }
.sp-video__poster { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--sp-radius); background: var(--sp-ink); }
.sp-video__poster img { width: 100%; height: 100%; object-fit: cover; opacity: .7; }
.sp-video__play { position: absolute; inset: 0; margin: auto; width: max-content; height: max-content; display: inline-flex; gap: .6rem; align-items: center; padding: .9rem 1.4rem; border: 0; border-radius: 999px; background: var(--sp-paper); font: inherit; font-weight: 600; cursor: pointer; }
.sp-video iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--sp-radius); }
.sp-video figcaption { font-size: .8125rem; color: var(--sp-grey); margin-top: .5rem; }

/* pagina semplice (privacy, cookie) */
.sp-page__title { margin-top: 2rem; font-size: var(--wp--preset--font-size--titolo-l); }
.sp-page .wp-block-post-content { margin-bottom: var(--wp--preset--spacing--sezione); }
.sp-404__inner { padding-block: var(--wp--preset--spacing--sezione); }

/* ------------------------------------------------------------------ CTA strip e footer */

.sp-cta-strip { padding-block: clamp(3.5rem, 2.5rem + 4vw, 6rem) !important; }
.sp-cta-strip__inner { max-width: var(--sp-wide) !important; margin-inline: auto !important; display: grid; gap: 2rem; align-items: end; }
@media (min-width: 1000px) { .sp-cta-strip__inner { grid-template-columns: 1.6fr 1fr; } }
.sp-cta-strip .sp-eyebrow { color: var(--sp-sand); }
.sp-cta-strip__title { color: #fff; margin: 0; font-size: var(--wp--preset--font-size--titolo-m); }
.sp-cta-strip__phone { margin: 1rem 0 0; color: rgba(255, 255, 255, .85); }
.sp-cta-strip__phone a { color: #fff; font-weight: 600; }
@media (max-width: 767px) { .sp-cta-strip .wp-block-button, .sp-cta-strip .wp-block-button__link { width: 100%; } }

.sp-site-footer { margin-top: 0 !important; }
.sp-footer { padding: clamp(3.5rem, 2.5rem + 4vw, 5.5rem) var(--sp-gutter) 2rem; }
.sp-footer__inner { max-width: var(--sp-wide); margin-inline: auto; }
.sp-footer a { color: var(--sp-ivory); text-decoration: none; }
.sp-footer a:hover { text-decoration: underline; color: #fff; }
.sp-footer__cols { gap: 2.5rem var(--sp-gap) !important; flex-wrap: wrap !important; }
@media (min-width: 782px) and (max-width: 1199px) { .sp-footer__cols > .wp-block-column { flex-basis: calc(50% - var(--sp-gap)) !important; flex-grow: 0 !important; } }
@media (min-width: 1200px) { .sp-footer__brand { flex-basis: 34% !important; } }
.sp-footer__logo { margin: 0 0 1.25rem !important; }
.sp-footer__claim { color: rgba(244, 241, 235, .7); max-width: 34ch; font-size: .9375rem; }
.sp-footer__title { font-size: .75rem !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--sp-sand) !important; margin: 0 0 1rem; }
.sp-footer__line { margin: 0 0 .35rem; font-size: .9375rem; color: rgba(244, 241, 235, .85); }
.sp-footer__phone { font-size: 1.125rem; margin-top: .75rem; }
.sp-footer__maps a { text-decoration: underline; }
.sp-footer__links { line-height: 2.1; font-size: .9375rem; margin: 0; }
.sp-footer__bottom { margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(244, 241, 235, .16); gap: .75rem 2rem; font-size: .8125rem; color: rgba(244, 241, 235, .65); }
.sp-footer__bottom p { margin: 0; }
.sp-footer__dgitaly { display: inline-flex; align-items: center; gap: .45em; color: inherit; text-decoration: none; opacity: .82; transition: opacity .2s ease; }
.sp-footer__dgitaly:hover { opacity: 1; color: var(--sp-ivory); text-decoration: none; }
.sp-footer__dgitaly img { height: 20px; width: 20px; display: block; border-radius: 5px; }
.sp-footer__dgitaly span { font-weight: 600; letter-spacing: .01em; }
.sp-social { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; gap: .5rem; }
.sp-social__link { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(244, 241, 235, .28); }
.sp-social__link:hover { background: var(--sp-ivory); color: var(--sp-ink) !important; }

/* CTA flottante mobile */
.sp-fab {
	position: fixed; right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom)); z-index: 90;
	display: none; align-items: center; min-height: 48px; padding: .8rem 1.3rem; border-radius: 999px;
	background: var(--sp-ink); color: #fff; text-decoration: none; font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .5);
	transform: translateY(140%); transition: transform .35s var(--sp-ease);
}
.sp-fab.is-visible { transform: none; }
@media (max-width: 767px) { .sp-fab { display: inline-flex; } }

.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* ------------------------------------------------------------------ motion (brandbook pag. 10) */

/* reveal: fade + 14px, 450ms, solo con JS e senza prefers-reduced-motion */
@media (prefers-reduced-motion: no-preference) {
	.sp-js [data-sp-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .45s var(--sp-ease), transform .45s var(--sp-ease); transition-delay: var(--sp-delay, 0ms); }
	.sp-js [data-sp-reveal].is-in { opacity: 1; transform: none; }
	.sp-hero__media img { animation: sp-hero-in 1.4s var(--sp-ease) both; }
	@keyframes sp-hero-in { from { transform: scale(1.05); } to { transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ------------------------------------------------------------------ allineamento griglie */

/* Il layout "flow" di WordPress aggiunge margin-top a ogni figlio tranne il primo:
   in una griglia sfalsa la seconda e la terza card. Nelle griglie i figli partono tutti da zero. */
.sp-grid > *, .sp-lines > *, .sp-values > *, .sp-projects > *, .sp-contact-cards > *,
.sp-catalogs > *, .sp-cats > *, .sp-grid--posts > li, .wp-block-post-template.sp-grid > * { margin-block: 0 !important; }

/* Card con invito all'azione: colonna flessibile, il link/pulsante finale va sempre in fondo,
   cosi nella stessa riga stanno alla stessa altezza anche con testi di lunghezza diversa. */
.sp-line, .sp-line__body, .sp-pillar, .sp-catalog__body, .sp-post-card, .sp-post-card__body, .sp-value, .sp-contact-card { display: flex; flex-direction: column; }
.sp-line__body, .sp-post-card__body, .sp-catalog__body { flex: 1 1 auto; }
.sp-line__body > *, .sp-pillar > *, .sp-catalog__body > *, .sp-post-card__body > * { margin-block: 0; }
.sp-line__num { margin-bottom: .25rem !important; }
.sp-line__title { margin-bottom: .5rem !important; }
.sp-line__text, .sp-pillar > p:not(.sp-link) { margin-bottom: 1.25rem !important; }
.sp-pillar__title { margin-bottom: .75rem !important; }
.sp-pillar .wp-block-image { margin-bottom: 1.25rem !important; }
.sp-line__body > .sp-link, .sp-pillar > .sp-link { margin-top: auto !important; align-self: flex-start; }
.sp-catalog__desc { margin-bottom: 1rem !important; }
.sp-catalog__lines { margin-bottom: 1.25rem !important; }
.sp-catalog__body > .wp-element-button { margin-top: auto; align-self: flex-start; }
.sp-catalog--featured .sp-catalog__body > .wp-element-button { margin-top: 0; }
.sp-catalog--featured .sp-catalog__body { justify-content: center; }
.sp-post-card__body .sp-post-meta { margin-bottom: .35rem; }
.sp-post-card__title { margin: 0 0 .5rem !important; }
/* immagini delle card tutte alla stessa proporzione, nessuna differenza di altezza */
.sp-line__media, .sp-pillar .wp-block-image, .sp-post-card__media { width: 100%; }
.sp-line__media a, .sp-post-card__media a { display: block; }
.sp-catalog:not(.sp-catalog--featured) { display: flex; flex-direction: column; }
