/* ==========================================================================
   SayPaper — "Sotto il portico"
   Plaster walls of Bologna, paper sheets in the agency window.
   ========================================================================== */

@font-face {
	font-family: "Bodoni Moda";
	src: url("../fonts/bodoni-moda.woff2") format("woff2");
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Bodoni Moda";
	src: url("../fonts/bodoni-moda-italic.woff2") format("woff2");
	font-weight: 400 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Figtree";
	src: url("../fonts/figtree.woff2") format("woff2");
	font-weight: 300 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Figtree";
	src: url("../fonts/figtree-italic.woff2") format("woff2");
	font-weight: 300 900;
	font-style: italic;
	font-display: swap;
}

:root {
	--sp-rosso: #a63a24;
	--sp-rosso-d: #7a2a1a;
	--sp-rosso-dd: #5c1f13;
	--sp-ocra: #d9a13b;
	--sp-ocra-l: #e9c27a;
	--sp-intonaco: #ebd5a6;
	--sp-intonaco-d: #dfc28a;
	--sp-carta: #fbf7ee;
	--sp-carta-2: #f4ecdc;
	--sp-ombra: #241a14;
	--sp-ombra-2: #35271e;
	--sp-ink: #241a14;
	--sp-ink-2: #5b4330;
	--sp-on-rosso: #fbf7ee;
	--sp-on-rosso-2: #f6dcc3;
	--sp-verde: #2e4636;
	--sp-verde-l: #6f9a7c;
	--sp-ottone: #c9a24e;
	--sp-line: rgba(36, 26, 20, 0.16);
	--sp-line-strong: rgba(36, 26, 20, 0.32);

	--sp-display: "Bodoni Moda", "Bodoni 72", Didot, "Times New Roman", serif;
	--sp-body: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--sp-gutter: clamp(16px, 4vw, 56px);
	--sp-max: 1320px;
	--sp-section: clamp(64px, 9vw, 128px);

	--sp-fs-display: clamp(2.6rem, 1.3rem + 4.4vw, 5.5rem);
	--sp-fs-h1: clamp(2.3rem, 1.4rem + 3.1vw, 4.5rem);
	--sp-fs-h2: clamp(2rem, 1.35rem + 2.2vw, 3.5rem);
	--sp-fs-h3: clamp(1.35rem, 1.15rem + 0.7vw, 1.75rem);
	--sp-fs-body: clamp(1.0625rem, 1rem + 0.18vw, 1.125rem);
	--sp-fs-small: 0.9375rem;
	--sp-fs-label: 0.8125rem;

	--sp-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--sp-ease-settle: cubic-bezier(0.22, 1, 0.36, 1);
	--sp-sheet-shadow: 0 1px 1px rgba(36, 26, 20, 0.14), 0 14px 22px -14px rgba(36, 26, 20, 0.45);
	--sp-plaster: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	--sp-terrazzo: radial-gradient(circle at 20% 30%, rgba(233, 194, 122, 0.22) 0 1.2px, transparent 1.6px), radial-gradient(circle at 70% 60%, rgba(166, 58, 36, 0.35) 0 1.4px, transparent 1.8px), radial-gradient(circle at 40% 80%, rgba(251, 247, 238, 0.12) 0 1px, transparent 1.4px), radial-gradient(circle at 85% 15%, rgba(111, 154, 124, 0.25) 0 1px, transparent 1.4px);
}

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: 96px;
	scrollbar-color: var(--sp-rosso-d) var(--sp-intonaco);
}

body.sp-site {
	margin: 0;
	background: var(--sp-intonaco);
	color: var(--sp-ink);
	font-family: var(--sp-body);
	font-size: var(--sp-fs-body);
	line-height: 1.6;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-variant-numeric: lining-nums;
}

.sp-site *,
.sp-site *::before,
.sp-site *::after {
	box-sizing: border-box;
}

.sp-site ::selection {
	background: var(--sp-ocra);
	color: var(--sp-ink);
}

:where(.sp-site) h1,
:where(.sp-site) h2,
:where(.sp-site) h3,
:where(.sp-site) h4 {
	font-family: var(--sp-display);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: inherit;
	margin: 0 0 0.5em;
	text-wrap: balance;
	font-optical-sizing: auto;
}

:where(.sp-site) p {
	margin: 0 0 1em;
	text-wrap: pretty;
}

:where(.sp-site) a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color 0.2s var(--sp-ease), text-decoration-color 0.2s var(--sp-ease);
}

:where(.sp-site) img {
	max-width: 100%;
	height: auto;
	display: block;
}

.sp-site :focus-visible {
	outline: 3px solid var(--sp-verde);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--sp-carta);
	border-radius: 1px;
}

:where(.sp-site) input,
:where(.sp-site) select,
:where(.sp-site) textarea,
:where(.sp-site) button {
	font: inherit;
	color: inherit;
}

.sp-site input::placeholder,
.sp-site textarea::placeholder {
	color: #7b6450;
	opacity: 1;
}

.sp-wrap {
	width: min(var(--sp-max), 100% - 2 * var(--sp-gutter));
	margin-inline: auto;
}

.sp-icon {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	vertical-align: -0.22em;
}

.sp-muted {
	color: var(--sp-ink-2);
	font-size: var(--sp-fs-small);
}

#page.site {
	overflow-x: clip;
}

.site-content {
	padding: 0 !important;
	margin: 0 !important;
}

/* --------------------------------------------------------------------------
   Walls (plaster grounds)
   -------------------------------------------------------------------------- */

.sp-wall {
	position: relative;
	isolation: isolate;
}

.sp-wall::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--sp-plaster);
	background-size: 240px;
	opacity: 0.07;
	mix-blend-mode: multiply;
	pointer-events: none;
	z-index: -1;
}

.sp-wall--rosso {
	background-color: var(--sp-rosso);
	color: var(--sp-on-rosso);
}

.sp-wall--rossod {
	background-color: var(--sp-rosso-d);
	color: var(--sp-on-rosso);
}

.sp-wall--ocra {
	background-color: var(--sp-ocra);
	color: var(--sp-ink);
}

.sp-wall--intonaco {
	background-color: var(--sp-intonaco);
	color: var(--sp-ink);
}

.sp-wall--ombra {
	background-color: var(--sp-ombra);
	color: var(--sp-carta);
}

.sp-wall--verde {
	background-color: var(--sp-verde);
	color: var(--sp-carta);
}

.sp-section {
	padding-block: var(--sp-section);
}

.sp-h2,
.sp-site .sp-h2 .elementor-heading-title {
	font-family: var(--sp-display);
	font-size: var(--sp-fs-h2);
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -0.02em;
	margin: 0 0 0.45em;
}

.sp-h2 em,
.sp-site .sp-h2 .elementor-heading-title em {
	font-style: italic;
	font-weight: 500;
}

.sp-lede,
.sp-site .sp-lede .elementor-widget-container,
.sp-site .sp-lede p {
	font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
	line-height: 1.55;
	max-width: 40em;
}

.sp-wall--rosso .sp-lede,
.sp-wall--rosso .sp-lede p,
.sp-wall--rossod .sp-lede p {
	color: var(--sp-on-rosso-2);
}

/* Pen underline: a word inside <em class="sp-pen"> gets a hand-drawn stroke. */
.sp-pen {
	position: relative;
	white-space: nowrap;
	font-style: inherit;
}

.sp-pen::after {
	content: "";
	position: absolute;
	left: -0.04em;
	right: -0.04em;
	bottom: -0.08em;
	height: 0.3em;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 13c40-7 92-9 140-6 18 1 36 3 54 6' fill='none' stroke='%232e4636' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transform-origin: left center;
}

.sp-wall--rosso .sp-pen::after,
.sp-wall--ombra .sp-pen::after,
.sp-wall--rossod .sp-pen::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 13c40-7 92-9 140-6 18 1 36 3 54 6' fill='none' stroke='%23e9c27a' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
}

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

.sp-btn,
.sp-site .button,
.sp-site button.button,
.sp-site input[type="submit"],
.sp-site .wpcf7-submit,
.sp-site .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55em;
	min-height: 48px;
	padding: 0.8em 1.35em;
	border: 0;
	border-radius: 2px;
	background: var(--sp-ombra);
	color: var(--sp-carta);
	font-family: var(--sp-body);
	font-size: 1rem;
	font-weight: 650;
	line-height: 1.15;
	letter-spacing: 0.01em;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s var(--sp-ease), color 0.25s var(--sp-ease), transform 0.25s var(--sp-ease), box-shadow 0.25s var(--sp-ease);
	box-shadow: 0 1px 0 rgba(36, 26, 20, 0.25);
	text-align: center;
}

.sp-btn .sp-icon,
.sp-site .elementor-button .sp-icon {
	transition: transform 0.35s var(--sp-ease);
}

.sp-btn:hover,
.sp-site .button:hover,
.sp-site input[type="submit"]:hover,
.sp-site .wpcf7-submit:hover,
.sp-site .elementor-button:hover {
	background: var(--sp-verde);
	color: var(--sp-carta);
	transform: translateY(-1px);
	box-shadow: 0 8px 16px -10px rgba(36, 26, 20, 0.6);
}

.sp-btn:hover .sp-icon--arrow {
	transform: translateX(4px);
}

.sp-btn:active,
.sp-site .button:active {
	transform: translateY(1px);
	box-shadow: none;
}

.sp-btn--ocra,
.sp-site .sp-btn-ocra .elementor-button {
	background: var(--sp-ocra);
	color: var(--sp-ink);
}

.sp-btn--ocra:hover,
.sp-site .sp-btn-ocra .elementor-button:hover {
	background: var(--sp-carta);
	color: var(--sp-ink);
}

.sp-btn--verde {
	background: var(--sp-verde);
}

.sp-btn--verde:hover {
	background: var(--sp-ombra);
}

.sp-btn--ghost,
.sp-site .sp-btn-ghost .elementor-button {
	background: transparent;
	color: inherit;
	box-shadow: inset 0 0 0 1.5px currentColor;
}

.sp-btn--ghost:hover,
.sp-site .sp-btn-ghost .elementor-button:hover {
	background: var(--sp-ombra);
	color: var(--sp-carta);
	box-shadow: inset 0 0 0 1.5px var(--sp-ombra);
}

.sp-wall--rosso .sp-btn--ghost:hover,
.sp-wall--ombra .sp-btn--ghost:hover {
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: inset 0 0 0 1.5px var(--sp-carta);
}

.sp-btn--small {
	min-height: 40px;
	padding: 0.55em 1em;
	font-size: 0.9375rem;
}

.sp-btn[disabled],
.sp-site .button.disabled,
.sp-site .button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
}

.sp-linkbtn {
	background: none;
	border: 0;
	padding: 0;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
	cursor: pointer;
	font: inherit;
}

/* --------------------------------------------------------------------------
   Header: promo strip + insegna
   -------------------------------------------------------------------------- */

.site-header {
	position: relative;
	z-index: 50;
}

.sp-topbar {
	background: var(--sp-ombra);
	color: var(--sp-ocra-l);
	font-size: 0.875rem;
	line-height: 1.3;
}

.sp-topbar__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	min-height: 40px;
	padding-block: 0.45rem;
}

.sp-topbar p {
	margin: 0;
}

.sp-topbar__promo {
	font-weight: 600;
}

.sp-topbar__contact {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	color: var(--sp-carta);
}

.sp-topbar__contact a {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	text-decoration: none;
}

.sp-topbar__contact a:hover {
	color: var(--sp-ocra-l);
}

.sp-topbar__hours {
	color: #cdb89a;
}

.sp-insegna {
	position: sticky;
	top: 0;
	background: var(--sp-rosso-d);
	color: var(--sp-on-rosso);
	border-bottom: 1px solid rgba(36, 26, 20, 0.5);
	transition: box-shadow 0.3s var(--sp-ease);
}

.admin-bar .sp-insegna {
	top: 32px;
}

.sp-insegna.is-stuck {
	box-shadow: 0 10px 24px -18px rgba(0, 0, 0, 0.8);
}

.sp-insegna__in {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.5vw, 2.75rem);
	min-height: 84px;
}

.sp-logo {
	flex: none;
}

.sp-logo img,
.sp-logo .custom-logo {
	width: auto;
	height: clamp(34px, 3vw, 42px);
}

.sp-logo a {
	display: block;
	text-decoration: none;
}

.sp-logo__text {
	font-family: var(--sp-display);
	font-size: 2rem;
	font-weight: 700;
}

.sp-nav {
	flex: 1;
	min-width: 0;
}

.sp-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(0.75rem, 1.6vw, 1.9rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-nav__list > li {
	position: relative;
}

.sp-nav__list a {
	display: inline-block;
	padding-block: 0.5rem;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	background: linear-gradient(var(--sp-ocra-l), var(--sp-ocra-l)) left calc(100% - 2px) / 0 2px no-repeat;
	transition: background-size 0.35s var(--sp-ease), color 0.2s;
}

.sp-nav__list > li > a:hover,
.sp-nav__list > .current-menu-item > a,
.sp-nav__list > .current-menu-ancestor > a,
.sp-nav__list > .current_page_parent > a {
	background-size: 100% 2px;
}

.sp-nav__list .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 0.42em;
	height: 0.42em;
	margin-left: 0.45em;
	border-right: 1.6px solid currentColor;
	border-bottom: 1.6px solid currentColor;
	transform: translateY(-0.25em) rotate(45deg);
}

.sp-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: -1rem;
	min-width: 250px;
	margin: 0;
	padding: 0.6rem 0;
	list-style: none;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px) rotate(-0.6deg);
	transform-origin: top left;
	transition: opacity 0.25s var(--sp-ease), transform 0.35s var(--sp-ease), visibility 0.25s;
}

.sp-nav__list .sub-menu::before {
	content: "";
	position: absolute;
	top: -9px;
	left: 1.6rem;
	width: 56px;
	height: 18px;
	background: rgba(217, 161, 59, 0.75);
	transform: rotate(-3deg);
}

.sp-nav__list li:hover > .sub-menu,
.sp-nav__list li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) rotate(-0.6deg);
}

.sp-nav__list .sub-menu a {
	display: block;
	padding: 0.5rem 1.2rem;
	background: none;
	font-weight: 500;
}

.sp-nav__list .sub-menu a:hover {
	background: var(--sp-intonaco);
	color: var(--sp-ink);
}

.sp-insegna__tools {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin-left: auto;
}

.sp-tool {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.2s var(--sp-ease);
}

.sp-tool:hover {
	background: rgba(251, 247, 238, 0.12);
}

.sp-tool .sp-icon {
	width: 24px;
	height: 24px;
}

.sp-cart-count {
	position: absolute;
	top: 3px;
	right: 1px;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--sp-ocra);
	color: var(--sp-ink);
	font-size: 0.72rem;
	font-weight: 750;
	line-height: 19px;
	text-align: center;
}

.sp-cart-count.is-bump {
	animation: sp-bump 0.6s var(--sp-ease-settle);
}

@keyframes sp-bump {
	0% { transform: scale(1); }
	35% { transform: scale(1.45) rotate(-8deg); }
	100% { transform: scale(1); }
}

.sp-insegna__cta {
	margin-left: 0.6rem;
	min-height: 44px;
	padding-inline: 1.1em;
	font-size: 0.9375rem;
}

.sp-tool--burger {
	display: none;
}

.sp-search {
	background: var(--sp-carta);
	color: var(--sp-ink);
	border-top: 1px solid rgba(36, 26, 20, 0.2);
}

.sp-search__form {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	padding-block: 1rem;
}

.sp-search__form input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 52px;
	padding: 0 0.25rem;
	border: 0;
	border-bottom: 2px solid var(--sp-ink);
	background: transparent;
	font-family: var(--sp-display);
	font-size: clamp(1.15rem, 1rem + 0.7vw, 1.6rem);
}

.sp-search__form input[type="search"]:focus {
	outline: none;
	border-bottom-color: var(--sp-verde);
	box-shadow: none;
}

.sp-drawer {
	position: fixed;
	inset: 0;
	z-index: 100;
	background: rgba(36, 26, 20, 0.55);
}

.sp-drawer__panel {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(420px, 92vw);
	overflow-y: auto;
	padding: 4.5rem 1.75rem 2rem;
	background: var(--sp-rosso-d);
	color: var(--sp-on-rosso);
	transform: translateX(100%);
	transition: transform 0.45s var(--sp-ease);
}

.sp-drawer.is-open .sp-drawer__panel {
	transform: none;
}

.sp-drawer__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
}

.sp-drawer__list {
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

.sp-drawer__list a {
	display: block;
	padding: 0.55rem 0;
	font-family: var(--sp-display);
	font-size: 1.75rem;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(251, 247, 238, 0.14);
}

.sp-drawer__list .sub-menu {
	margin: 0;
	padding: 0 0 0.5rem 1rem;
	list-style: none;
}

.sp-drawer__list .sub-menu a {
	font-family: var(--sp-body);
	font-size: 1.0625rem;
	font-weight: 500;
	border: 0;
	padding: 0.35rem 0;
}

.sp-drawer__contacts {
	display: grid;
	gap: 0.9rem;
}

.sp-drawer__contacts a:not(.sp-btn),
.sp-drawer__contacts p {
	display: flex;
	gap: 0.6rem;
	align-items: center;
	margin: 0;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Page head band + breadcrumbs
   -------------------------------------------------------------------------- */

.sp-pagehead {
	padding-block: clamp(40px, 6vw, 84px) clamp(44px, 6vw, 88px);
}

.sp-pagehead__title {
	font-size: var(--sp-fs-h1) !important;
	font-weight: 600;
	max-width: 18ch;
	margin: 0.35em 0 0.3em !important;
}

.sp-pagehead__lede {
	max-width: 46em;
	color: var(--sp-on-rosso-2);
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
}

.sp-pagehead__lede p:last-child {
	margin-bottom: 0;
}

.sp-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.9375rem;
	color: var(--sp-on-rosso-2);
}

.sp-crumbs a {
	text-decoration: none;
}

.sp-crumbs a:hover {
	text-decoration: underline;
}

.sp-crumbs__sep {
	opacity: 0.6;
}

/* --------------------------------------------------------------------------
   Paper sheets, stamps, seats, arches
   -------------------------------------------------------------------------- */

.sp-sheets {
	position: relative;
	display: grid;
	gap: 1.25rem;
}

.sp-sheet {
	--tilt: 0deg;
	position: relative;
	display: grid;
	gap: 0.15rem;
	padding: 1.15rem 1.2rem 1.05rem;
	background: var(--sp-carta);
	color: var(--sp-ink);
	text-decoration: none;
	box-shadow: var(--sp-sheet-shadow);
	transform: rotate(var(--tilt));
	transition: transform 0.45s var(--sp-ease), box-shadow 0.45s var(--sp-ease);
}

.sp-sheet::before {
	content: "";
	position: absolute;
	top: -10px;
	left: 50%;
	width: 74px;
	height: 20px;
	margin-left: -37px;
	background: rgba(233, 194, 122, 0.78);
	transform: rotate(-2deg);
	box-shadow: 0 1px 0 rgba(36, 26, 20, 0.08);
}

a.sp-sheet:hover {
	transform: rotate(0deg) translateY(-4px);
	box-shadow: 0 2px 2px rgba(36, 26, 20, 0.12), 0 22px 30px -18px rgba(36, 26, 20, 0.55);
}

.sp-sheet__date {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
	font-size: var(--sp-fs-label);
	font-weight: 650;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-sheet__date b {
	font-family: var(--sp-display);
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 0.9;
	letter-spacing: -0.02em;
	color: var(--sp-ink);
}

.sp-sheet__name {
	font-family: var(--sp-display);
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.1;
	margin-top: 0.15rem;
}

.sp-sheet__places,
.sp-sheet__meta {
	font-size: 0.9375rem;
	color: var(--sp-ink-2);
	line-height: 1.35;
}

.sp-sheet__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 0.6rem;
	padding-top: 0.6rem;
	border-top: 1px dashed var(--sp-line-strong);
}

.sp-sheet__price {
	font-family: var(--sp-display);
	font-size: 1.65rem;
	font-weight: 600;
	line-height: 1;
}

.sp-sheet__price small,
.sp-from {
	font-family: var(--sp-body);
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--sp-ink-2);
}

.sp-seats {
	display: inline-flex;
	flex-wrap: nowrap;
	gap: 2.5px;
	vertical-align: middle;
}

.sp-seats i {
	flex: none;
	width: 8px;
	height: 8px;
	border: 1.5px solid var(--sp-verde);
	background: transparent;
}

.sp-seats i.is-free {
	background: var(--sp-verde);
}

.sp-stamp {
	position: absolute;
	top: -18px;
	right: -14px;
	display: grid;
	place-items: center;
	width: 84px;
	height: 84px;
	padding: 10px;
	border: 2px solid currentColor;
	border-radius: 50%;
	outline: 1.5px solid currentColor;
	outline-offset: -8px;
	color: var(--sp-rosso);
	background: rgba(251, 247, 238, 0.86);
	font-size: 0.7rem;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.1em;
	text-align: center;
	text-transform: uppercase;
	transform: rotate(-12deg);
	pointer-events: none;
}

.sp-stamp--confirmed {
	color: var(--sp-verde);
}

.sp-arch {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: 9999px 9999px 0 0;
	background: var(--sp-rosso-dd);
}

.sp-arch img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Shop shutter (saracinesca) used by the opening reveal. */
.sp-arch::after {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(180deg, #5c1f13 0 10px, #6c2617 10px 12px, #4f1a10 12px 14px);
	transform: translateY(-101%);
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   HOME: hero
   -------------------------------------------------------------------------- */

.sp-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(36px, 5vw, 72px) 0 !important;
}

.sp-hero__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.98fr);
	gap: clamp(28px, 4vw, 72px);
	align-items: start;
}

.sp-hero__copy {
	padding-block: clamp(8px, 2vw, 40px) clamp(48px, 7vw, 120px);
	position: relative;
	z-index: 2;
}

.sp-site .sp-hero__title .elementor-heading-title,
.sp-hero__title {
	font-family: var(--sp-display);
	font-size: var(--sp-fs-display);
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.025em;
	margin: 0 0 0.4em;
	color: var(--sp-on-rosso);
}

.sp-hero__title em {
	font-style: italic;
	font-weight: 500;
	color: var(--sp-ocra-l);
}

.sp-hero__lede p {
	color: var(--sp-on-rosso-2);
	font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
	max-width: 32em;
}

.sp-hero__contact p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.4rem;
	margin: 1.25rem 0 0;
	font-size: 0.9875rem;
	color: var(--sp-on-rosso-2);
}

.sp-hero__contact a {
	color: var(--sp-on-rosso);
	font-weight: 650;
	text-decoration: none;
	border-bottom: 1.5px solid rgba(233, 194, 122, 0.6);
}

.sp-hero__window {
	position: relative;
	align-self: stretch;
	min-height: 640px;
}

.sp-hero__window .sp-arch {
	position: absolute;
	inset: 0 0 0 8%;
	box-shadow: inset 0 0 0 14px var(--sp-rosso-d);
}

.sp-hero__window .sp-arch::before {
	content: "";
	position: absolute;
	inset: 0;
	box-shadow: inset 0 0 0 14px var(--sp-rosso-d), inset 0 0 60px rgba(36, 26, 20, 0.35);
	border-radius: inherit;
	z-index: 2;
	pointer-events: none;
}

.sp-hero__window .elementor-widget-image,
.sp-hero__window .elementor-widget-container {
	height: 100%;
}

.sp-hero__window .sp-sheets {
	position: absolute;
	left: 0;
	right: -2%;
	bottom: clamp(24px, 4vw, 56px);
	z-index: 3;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem;
}

.sp-hero__window .sp-sheet {
	padding: 1rem 1rem 0.9rem;
}

.sp-hero__window .sp-sheet__name {
	font-size: 1.35rem;
}

.sp-hero__window .sp-sheet__date b {
	font-size: 2.2rem;
}

.sp-hero__window .sp-sheet__places {
	display: none;
}

.sp-hero__window .sp-stamp {
	width: 70px;
	height: 70px;
	font-size: 0.62rem;
	top: -26px;
	right: -10px;
}

.sp-columns {
	position: relative;
	height: 54px;
	margin-top: -1px;
	background:
		repeating-linear-gradient(90deg, rgba(36, 26, 20, 0.34) 0 46px, transparent 46px 230px),
		var(--sp-rosso-d);
	background-size: 230px 100%;
	will-change: background-position;
}

.sp-light {
	position: absolute;
	inset: -20% -40%;
	pointer-events: none;
	z-index: 1;
	background: repeating-linear-gradient(115deg, rgba(255, 236, 196, 0) 0 160px, rgba(255, 236, 196, 0.07) 160px 260px, rgba(255, 236, 196, 0) 260px 420px);
	mix-blend-mode: soft-light;
	will-change: transform;
}

/* Finder (hero search) */
.sp-finder {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	max-width: 640px;
	margin-top: 2rem;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
	transform: rotate(-0.6deg);
}

.sp-finder__field {
	display: grid;
	flex: 1 1 180px;
	gap: 0.15rem;
	padding: 0.75rem 1rem 0.6rem;
	border-right: 1px solid var(--sp-line);
	cursor: pointer;
}

.sp-finder__field span,
.sp-filters__field span {
	font-size: var(--sp-fs-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-finder select,
.sp-filters select {
	width: 100%;
	min-height: 32px;
	padding: 0 1.6rem 0 0;
	border: 0;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23241a14' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center / 18px;
	font-size: 1.0625rem;
	font-weight: 550;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.sp-finder__go {
	flex: 0 0 auto;
	min-height: 64px;
	border-radius: 0;
	padding-inline: 1.5rem;
}

/* --------------------------------------------------------------------------
   HOME: trust ribbon
   -------------------------------------------------------------------------- */

.sp-trust {
	padding-block: 1.4rem;
	background: var(--sp-ombra);
	color: var(--sp-carta);
	overflow: hidden;
}

.sp-trust__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.8rem 2.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.98rem;
}

.sp-trust__list li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.sp-trust__list .sp-icon {
	color: var(--sp-ocra);
}

.sp-trust__list b {
	font-weight: 650;
}

/* --------------------------------------------------------------------------
   Section heads (Elementor)
   -------------------------------------------------------------------------- */

.sp-head {
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 3rem;
	margin-bottom: clamp(28px, 4vw, 56px);
}

.sp-head > .elementor-element:first-child {
	flex: 1 1 520px;
}

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

/* --------------------------------------------------------------------------
   Product grid (loop) — paper sheets with a fixed spec block
   -------------------------------------------------------------------------- */

.sp-site ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 44px) clamp(18px, 2.2vw, 32px);
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.sp-site ul.products::before,
.sp-site ul.products::after {
	display: none !important;
}

.sp-site ul.products li.product.sp-card {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

.sp-card {
	--tilt: 0deg;
	position: relative;
	display: flex !important;
	flex-direction: column;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
	transform: rotate(var(--tilt));
	transition: transform 0.5s var(--sp-ease), box-shadow 0.5s var(--sp-ease);
}

.sp-card:nth-child(3n + 1) { --tilt: -0.7deg; }
.sp-card:nth-child(3n + 2) { --tilt: 0.5deg; }
.sp-card:nth-child(3n) { --tilt: -0.25deg; }

.sp-card::before {
	content: "";
	position: absolute;
	top: -11px;
	left: calc(50% - 38px);
	width: 76px;
	height: 21px;
	background: rgba(233, 194, 122, 0.8);
	transform: rotate(2deg);
	z-index: 3;
}

.sp-card:hover {
	transform: rotate(0deg) translateY(-5px);
	box-shadow: 0 2px 2px rgba(36, 26, 20, 0.12), 0 26px 34px -20px rgba(36, 26, 20, 0.6);
}

.sp-card__media {
	position: relative;
	display: block;
	margin: 12px 12px 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--sp-intonaco-d);
}

.sp-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--sp-ease);
}

.sp-card:hover .sp-card__media img {
	transform: scale(1.045);
}

.sp-card__sale {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 0.35rem 0.6rem;
	background: var(--sp-rosso);
	color: var(--sp-carta);
	font-weight: 750;
	font-size: 0.95rem;
}

.sp-card .sp-stamp {
	top: 10px;
	right: 10px;
}

.sp-card:hover .sp-stamp {
	animation: sp-thump 0.55s var(--sp-ease-settle);
}

@keyframes sp-thump {
	0% { transform: rotate(-12deg) scale(1); }
	40% { transform: rotate(-4deg) scale(1.12); }
	100% { transform: rotate(-12deg) scale(1); }
}

.sp-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.1rem 1.3rem 1.3rem;
}

.sp-card__title {
	font-size: 1.7rem !important;
	font-weight: 600;
	line-height: 1.08;
	margin: 0 0 0.2rem !important;
}

.sp-card__title a {
	text-decoration: none;
}

.sp-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.sp-card__places {
	margin: 0 0 0.9rem !important;
	color: var(--sp-ink-2);
	font-size: 0.98rem;
	line-height: 1.4;
}

.sp-spec {
	display: grid;
	grid-template-columns: repeat(3, auto);
	justify-content: start;
	gap: 0 1.4rem;
	margin: 0 0 0.9rem;
	padding: 0.7rem 0;
	border-block: 1px solid var(--sp-line);
}

.sp-spec dt {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-ink-2);
}

.sp-spec dd {
	margin: 0;
	font-weight: 600;
	font-size: 0.98rem;
}

.sp-card__next {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.7rem;
	margin: 0 0 1rem !important;
	font-size: 0.95rem;
}

.sp-card__next > span:first-child {
	flex-basis: 100%;
}

.sp-card__next small {
	color: var(--sp-verde);
	font-weight: 650;
	font-size: 0.875rem;
}

.sp-card__foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: auto;
}

.sp-card__price .price,
.sp-card__price > .woocommerce-Price-amount,
.sp-card__price {
	font-family: var(--sp-display);
	font-size: 1.85rem;
	font-weight: 600;
	line-height: 1;
	color: var(--sp-ink);
}

.sp-card__price ins,
.sp-booking__price ins {
	text-decoration: none;
	background: none;
}

.sp-card__price del,
.sp-booking__price del,
.sp-board del {
	color: var(--sp-ink-2);
	font-size: 0.62em;
	font-weight: 500;
	text-decoration-thickness: 1.5px;
	opacity: 1;
}

.sp-card__price small {
	display: block;
	margin-top: 0.3rem;
	font-family: var(--sp-body);
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--sp-ink-2);
}

.sp-card__rating {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	margin: 0 !important;
	font-size: 0.95rem;
}

.sp-card__rating .sp-icon,
.sp-postcard__stars .sp-icon,
.sp-trip__rating .sp-icon {
	width: 1rem;
	height: 1rem;
	fill: var(--sp-ocra);
	stroke: #a57520;
}

.sp-card__rating span {
	color: var(--sp-ink-2);
}

.sp-omnibus {
	margin: 0.45rem 0 0 !important;
	font-size: 0.8125rem;
	color: var(--sp-ink-2);
}

.sp-card__actions {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 1rem;
	margin: 1.1rem 0 0 !important;
}

.sp-card__dates {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--sp-verde);
}

/* --------------------------------------------------------------------------
   HOME: arcade of destinations (horizontal, sticky on desktop)
   -------------------------------------------------------------------------- */

.sp-arcade {
	position: relative;
}

.sp-arcade__track {
	display: flex;
	gap: clamp(18px, 2.4vw, 36px);
	padding-bottom: 0.5rem;
}

.sp-bay {
	flex: 0 0 clamp(240px, 24vw, 340px);
	display: grid;
	gap: 0.2rem;
	text-decoration: none;
	color: var(--sp-on-rosso);
}

.sp-bay__arch {
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border-radius: 9999px 9999px 0 0;
	box-shadow: inset 0 0 0 10px var(--sp-rosso-dd);
	background: var(--sp-rosso-dd);
	margin-bottom: 0.8rem;
	position: relative;
}

.sp-bay__arch::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 10px var(--sp-rosso-dd);
}

.sp-bay__arch img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s var(--sp-ease);
}

.sp-bay:hover .sp-bay__arch img {
	transform: scale(1.06);
}

.sp-bay__name {
	font-family: var(--sp-display);
	font-size: clamp(1.6rem, 1.3rem + 0.9vw, 2.2rem);
	font-weight: 600;
	line-height: 1;
}

.sp-bay__meta {
	color: var(--sp-on-rosso-2);
	font-size: 0.98rem;
}

.sp-bay__meta .woocommerce-Price-amount {
	color: var(--sp-on-rosso);
	font-weight: 650;
}

/* Desktop: the section pins and the bays walk past. */
@media (min-width: 1025px) {
	.sp-motion .sp-arcade.is-pinned {
		height: var(--sp-arcade-h, 220vh);
	}

	.sp-motion .sp-arcade.is-pinned .sp-arcade__track {
		position: sticky;
		top: calc(84px + 8vh);
		will-change: transform;
	}
}

@media (max-width: 1024px) {
	.sp-arcade__track {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: thin;
		margin-inline: calc(-1 * var(--sp-gutter));
		padding-inline: var(--sp-gutter);
	}

	.sp-bay {
		scroll-snap-align: start;
		flex-basis: min(72vw, 300px);
	}
}

/* --------------------------------------------------------------------------
   HOME: tailor-made steps with a route that draws itself
   -------------------------------------------------------------------------- */

.sp-steps {
	display: grid !important;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(32px, 6vw, 96px);
	align-items: start;
}

.sp-steps__intro {
	position: sticky !important;
	top: 140px;
}

.sp-route {
	position: relative;
	margin: 0;
	padding: 0 0 0 4.25rem;
	list-style: none;
	counter-reset: none;
}

.sp-route__line {
	position: absolute;
	left: calc(0.65rem - 1px);
	top: 0.8rem;
	width: 24px;
	overflow: visible;
}

.sp-route__line path {
	fill: none;
	stroke: var(--sp-verde);
	stroke-width: 2.5;
	stroke-dasharray: 6 7;
}

.sp-route__line .sp-route__ink {
	stroke-dasharray: none;
	stroke-width: 3;
}

.sp-route li {
	position: relative;
	padding-bottom: clamp(36px, 5vw, 64px);
	transition: opacity 0.5s var(--sp-ease);
}

.sp-route li:last-child {
	padding-bottom: 0;
}

.sp-route li::before {
	content: "";
	position: absolute;
	left: -3.6rem;
	top: 0.35rem;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--sp-intonaco);
	border: 3px solid var(--sp-verde);
	z-index: 1;
	transition: background-color 0.4s var(--sp-ease), transform 0.4s var(--sp-ease-settle);
}

.sp-route li.is-reached::before {
	background: var(--sp-verde);
	transform: scale(1.15);
}

.sp-motion .sp-route li {
	opacity: 0.45;
}

.sp-motion .sp-route li.is-reached {
	opacity: 1;
}

.sp-route h3 {
	font-size: var(--sp-fs-h3) !important;
	margin-bottom: 0.35rem !important;
}

.sp-route p {
	margin: 0;
	color: var(--sp-ink-2);
	max-width: 34em;
}

.sp-route small {
	display: inline-block;
	margin-top: 0.6rem;
	font-weight: 650;
	color: var(--sp-verde);
}

/* --------------------------------------------------------------------------
   HOME: departures board numbers + agency
   -------------------------------------------------------------------------- */

.sp-boards {
	display: flex !important;
	flex-wrap: wrap;
	gap: clamp(20px, 3vw, 40px);
	margin-top: 2rem;
}

.sp-board-num {
	display: grid;
	gap: 0.55rem;
}

.sp-board-num__digits {
	display: inline-flex;
	gap: 4px;
}

.sp-flap {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 0.82em;
	height: 1.18em;
	border-radius: 3px;
	background: #1a120d;
	color: #f3e6c8;
	font-family: var(--sp-body);
	font-size: clamp(2.4rem, 1.8rem + 2vw, 3.6rem);
	font-weight: 650;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	overflow: hidden;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.4), 0 2px 0 rgba(0, 0, 0, 0.2);
	perspective: 300px;
}

.sp-flap::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	height: 1.5px;
	background: rgba(0, 0, 0, 0.6);
}

.sp-flap.is-flipping {
	animation: sp-flap 0.09s linear;
}

@keyframes sp-flap {
	0% { transform: rotateX(0); }
	50% { transform: rotateX(-80deg); }
	100% { transform: rotateX(0); }
}

.sp-board-num__label {
	max-width: 14em;
	font-size: 0.98rem;
	line-height: 1.35;
	color: var(--sp-on-rosso-2);
}

.sp-wall--intonaco .sp-board-num__label,
.sp-wall--ocra .sp-board-num__label {
	color: var(--sp-ink-2);
}

/* Photo with an arched top used in content sections. */
.sp-site .sp-photo-arch img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 9999px 9999px 0 0;
}

.sp-site .sp-photo-tilt img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	padding: 12px;
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
	transform: rotate(1.4deg);
}

/* --------------------------------------------------------------------------
   HOME: postcards (reviews)
   -------------------------------------------------------------------------- */

.sp-postcards {
	position: relative;
	max-width: 760px;
	margin-inline: auto;
}

.sp-postcards__stack {
	position: relative;
	display: grid;
	min-height: 330px;
}

.sp-postcard {
	--tilt: 0deg;
	grid-area: 1 / 1;
	position: relative;
	display: grid;
	align-content: start;
	gap: 0.8rem;
	margin: 0;
	padding: clamp(24px, 3vw, 40px) clamp(24px, 4vw, 56px) clamp(24px, 3vw, 36px);
	background:
		linear-gradient(90deg, transparent calc(68% - 1px), var(--sp-line) calc(68% - 1px) 68%, transparent 68%),
		var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
	transform: rotate(var(--tilt));
	transition: transform 0.7s var(--sp-ease), opacity 0.5s var(--sp-ease);
}

.sp-postcard__text {
	margin: 0;
	max-width: 30em;
	padding-right: 32%;
	font-family: var(--sp-display);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.55rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.35;
	border: 0;
	quotes: none;
}

.sp-postcard__by {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 0.8rem;
	padding-right: 32%;
	font-size: 0.95rem;
}

.sp-postcard__by a {
	color: var(--sp-verde);
	font-weight: 650;
}

.sp-postcard__by span {
	color: var(--sp-ink-2);
}

.sp-postcard__stamp {
	position: absolute;
	top: 26px;
	right: 26px;
	width: 70px;
	height: 86px;
	background: var(--sp-ocra);
	outline: 3px dotted var(--sp-carta);
	outline-offset: -2px;
	box-shadow: 0 0 0 1px rgba(36, 26, 20, 0.12);
	transform: rotate(3deg);
}

.sp-postcard__stamp::after {
	content: "";
	position: absolute;
	inset: 12px 12px 10px;
	background: var(--sp-rosso);
	border-radius: 999px 999px 0 0;
}

.sp-postcard__text::before,
.sp-postcard__text::after {
	display: none !important;
	content: none !important;
}

.sp-postcards__nav {
	display: flex;
	justify-content: center;
	margin-top: 2rem;
}

/* --------------------------------------------------------------------------
   HOME / pages: diary cards
   -------------------------------------------------------------------------- */

.sp-diary {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: clamp(20px, 2.6vw, 36px);
}

.sp-diary--index {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sp-entry {
	display: flex;
	flex-direction: column;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
}

.sp-entry__img {
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.sp-entry--lead .sp-entry__img {
	aspect-ratio: 4 / 3;
}

.sp-entry__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--sp-ease);
}

.sp-entry:hover .sp-entry__img img {
	transform: scale(1.04);
}

.sp-entry__body {
	padding: 1.1rem 1.3rem 1.4rem;
}

.sp-entry__meta {
	margin: 0 0 0.4rem !important;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--sp-rosso);
}

.sp-entry__title {
	font-size: 1.5rem !important;
	line-height: 1.12 !important;
	margin: 0 0 0.5rem !important;
}

.sp-entry--lead .sp-entry__title {
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem) !important;
}

.sp-entry__title a {
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) left 100% / 0 1.5px no-repeat;
	transition: background-size 0.4s var(--sp-ease);
}

.sp-entry__title a:hover {
	background-size: 100% 1.5px;
}

.sp-entry__excerpt {
	margin: 0 !important;
	color: var(--sp-ink-2);
	font-size: 0.98rem;
}

/* --------------------------------------------------------------------------
   Lead form (Contact Form 7) on a sheet
   -------------------------------------------------------------------------- */

.sp-formsheet {
	position: relative;
	padding: clamp(24px, 3.4vw, 48px) !important;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
	transform: rotate(-0.4deg);
}

.sp-formsheet::before {
	content: "";
	position: absolute;
	top: -12px;
	left: 2.5rem;
	width: 90px;
	height: 22px;
	background: rgba(233, 194, 122, 0.8);
	transform: rotate(-3deg);
}

.sp-site .wpcf7-form {
	display: grid;
	gap: 1rem;
}

.sp-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.sp-site .wpcf7-form label,
.sp-field > span {
	display: grid;
	gap: 0.3rem;
	font-size: 0.9375rem;
	font-weight: 650;
}

.sp-site .wpcf7-form-control-wrap {
	display: block;
}

.sp-site input[type="text"],
.sp-site input[type="email"],
.sp-site input[type="tel"],
.sp-site input[type="number"],
.sp-site input[type="password"],
.sp-site input[type="search"]:not(#sp-search-field),
.sp-site textarea,
.sp-site select:not(.sp-finder select):not(.sp-filters select) {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.85rem;
	border: 1.5px solid var(--sp-line-strong);
	border-radius: 2px;
	background: #fffdf8;
	color: var(--sp-ink);
	font-size: 1rem;
	transition: border-color 0.2s var(--sp-ease), box-shadow 0.2s var(--sp-ease);
}

.sp-site textarea {
	min-height: 120px;
	resize: vertical;
}

.sp-site input:focus,
.sp-site textarea:focus,
.sp-site select:focus {
	outline: none;
	border-color: var(--sp-verde);
	box-shadow: 0 0 0 3px rgba(46, 70, 54, 0.22);
}

.sp-site .wpcf7-acceptance,
.sp-site .wpcf7-list-item {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 400;
}

.sp-site .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-weight: 400;
}

.sp-site input[type="checkbox"],
.sp-site input[type="radio"] {
	width: 20px;
	height: 20px;
	margin: 0.15em 0 0;
	flex: none;
	accent-color: var(--sp-verde);
}

.sp-site .wpcf7-not-valid-tip {
	margin-top: 0.3rem;
	color: var(--sp-rosso);
	font-size: 0.875rem;
	font-weight: 600;
}

.sp-site .wpcf7-not-valid {
	border-color: var(--sp-rosso) !important;
}

.sp-site .wpcf7 form .wpcf7-response-output {
	margin: 0.5rem 0 0;
	padding: 0.8rem 1rem;
	border: 0;
	border-left: 1px solid transparent;
	background: var(--sp-intonaco);
	font-size: 0.95rem;
}

.sp-site .wpcf7 form.sent .wpcf7-response-output {
	background: #dfe8e0;
	color: var(--sp-verde);
}

.sp-site .wpcf7 form.invalid .wpcf7-response-output,
.sp-site .wpcf7 form.failed .wpcf7-response-output {
	background: #f3dcd4;
	color: var(--sp-rosso-d);
}

.sp-site .wpcf7-spinner {
	margin: 0 0 0 0.75rem;
}

.sp-form__note {
	margin: 0;
	font-size: 0.875rem;
	color: var(--sp-ink-2);
}

/* --------------------------------------------------------------------------
   Newsletter band + footer
   -------------------------------------------------------------------------- */

.sp-newsletter {
	background: var(--sp-ocra);
	color: var(--sp-ink);
	padding-block: clamp(36px, 5vw, 64px);
	position: relative;
}

.sp-newsletter::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--sp-plaster);
	background-size: 240px;
	opacity: 0.08;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.sp-newsletter__in {
	position: relative;
}

.sp-newsletter .sp-widget__title {
	font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.6rem);
	margin: 0 0 0.3em;
}

.sp-newsletter .widget_text,
.sp-newsletter .sp-widget {
	display: grid;
}

.sp-newsletter__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 1.5rem clamp(24px, 5vw, 80px);
	align-items: center;
}

.sp-newsletter__grid p {
	margin: 0;
	max-width: 32em;
}

.sp-newsletter .wpcf7-form {
	grid-template-columns: 1fr auto;
	align-items: start;
	gap: 0.8rem;
}

.sp-newsletter .wpcf7-form > p {
	margin: 0;
}

.sp-newsletter .wpcf7-form .sp-nl__consent,
.sp-newsletter .wpcf7-response-output {
	grid-column: 1 / -1;
}

.sp-footer {
	position: relative;
	background: var(--sp-ombra);
	background-image: var(--sp-terrazzo);
	background-size: 37px 41px, 53px 47px, 29px 31px, 61px 59px;
	color: #e9dcc6;
	padding-top: clamp(56px, 7vw, 96px);
	overflow: hidden;
	font-size: 0.98rem;
}

.sp-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
	gap: 2.5rem clamp(24px, 4vw, 64px);
}

.sp-footer__logo {
	display: inline-block;
	margin-bottom: 1.2rem;
}

.sp-footer__logo img {
	height: 46px;
	width: auto;
}

.sp-footer__about p {
	max-width: 30em;
	color: #d8c7ab;
}

.sp-footer__title {
	font-family: var(--sp-body) !important;
	font-size: var(--sp-fs-label) !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase;
	color: var(--sp-ocra) !important;
	margin: 0 0 1rem !important;
}

.sp-footer__list {
	margin: 0 0 0.8rem;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.45rem;
}

.sp-footer a {
	color: #f3e8d4;
	text-decoration: none;
}

.sp-footer a:hover {
	color: var(--sp-ocra-l);
	text-decoration: underline;
}

.sp-footer .sp-linkbtn {
	color: #f3e8d4;
	text-decoration: none;
}

.sp-footer .sp-linkbtn:hover {
	color: var(--sp-ocra-l);
	text-decoration: underline;
}

.sp-plaque {
	display: grid;
	gap: 0.65rem;
	margin: 1.4rem 0 0;
	padding: 1.2rem 1.3rem;
	max-width: 420px;
	font-style: normal;
	background: linear-gradient(180deg, rgba(201, 162, 78, 0.16), rgba(201, 162, 78, 0.08));
	box-shadow: inset 0 0 0 1px rgba(201, 162, 78, 0.55), inset 0 0 0 5px rgba(36, 26, 20, 0.6), inset 0 0 0 6px rgba(201, 162, 78, 0.3);
}

.sp-plaque__row {
	display: flex;
	gap: 0.7rem;
	align-items: flex-start;
	line-height: 1.45;
}

.sp-plaque__row .sp-icon {
	margin-top: 0.12em;
	color: var(--sp-ottone);
}

.sp-plaque--page {
	max-width: none;
	padding: clamp(20px, 3vw, 36px);
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow), inset 0 0 0 1px var(--sp-line);
	font-size: 1.0625rem;
	gap: 1.1rem;
}

.sp-plaque--page a {
	color: var(--sp-ink);
	text-decoration: none;
}

.sp-plaque--page a:hover {
	color: var(--sp-verde);
}

.sp-plaque--page .sp-icon {
	color: var(--sp-rosso);
}

.sp-plaque--page b {
	font-weight: 700;
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-ink-2);
}

.sp-footer__base {
	margin-top: clamp(40px, 5vw, 72px);
	padding-top: 1.6rem;
	border-top: 1px solid rgba(233, 220, 198, 0.18);
	font-size: 0.875rem;
	color: #cbb99c;
}

.sp-footer__company {
	margin: 0 0 0.5rem;
	max-width: 110ch;
}

.sp-footer__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-top: 1.2rem;
}

.sp-footer__row p {
	margin: 0;
}

.sp-footer__pay span {
	margin-right: 0.5rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-ocra);
}

.sp-footer__social {
	display: flex;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-footer__social a {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(233, 220, 198, 0.3);
	transition: background-color 0.25s var(--sp-ease), transform 0.35s var(--sp-ease-settle);
}

.sp-footer__social a:hover {
	background: var(--sp-ocra);
	color: var(--sp-ink);
	transform: rotate(-8deg);
}

.sp-footer__word {
	margin: clamp(24px, 4vw, 48px) 0 0;
	padding: 0;
	font-family: var(--sp-display);
	font-size: clamp(5rem, 20.5vw, 22rem);
	font-weight: 700;
	line-height: 0.72;
	letter-spacing: -0.04em;
	text-align: center;
	color: var(--sp-rosso);
	opacity: 0.95;
	user-select: none;
	will-change: transform;
	transform: translateY(var(--sp-word-y, 0));
}

/* --------------------------------------------------------------------------
   Generic page (legal, FAQ, calendar) — text on a paper sheet
   -------------------------------------------------------------------------- */

.sp-page {
	padding-block: clamp(40px, 6vw, 88px) var(--sp-section);
}

.sp-page__sheet {
	position: relative;
	margin-top: calc(-1 * clamp(64px, 7vw, 110px)) !important;
	padding: clamp(28px, 5vw, 72px) clamp(20px, 6vw, 96px);
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
	z-index: 2;
}

.sp-prose {
	max-width: 72ch;
	font-size: var(--sp-fs-body);
	line-height: 1.7;
}

.sp-page__sheet .sp-prose {
	margin-inline: auto;
}

.sp-prose > * + * {
	margin-top: 1em;
}

.sp-prose h2 {
	font-size: clamp(1.6rem, 1.35rem + 1vw, 2.25rem) !important;
	margin: 1.9em 0 0.5em !important;
}

.sp-prose h3 {
	font-size: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem) !important;
	margin: 1.6em 0 0.45em !important;
}

.sp-prose h2:first-child,
.sp-prose h3:first-child {
	margin-top: 0 !important;
}

.sp-prose ul,
.sp-prose ol {
	padding-left: 1.3em;
}

.sp-prose li + li {
	margin-top: 0.4em;
}

.sp-prose li::marker {
	color: var(--sp-rosso);
}

.sp-prose a {
	color: var(--sp-verde);
	font-weight: 600;
}

.sp-prose blockquote {
	margin: 1.6em 0;
	padding: 1.2em 1.4em;
	background: var(--sp-carta-2);
	border: 0;
	font-style: normal;
}

.sp-prose blockquote p:last-child {
	margin-bottom: 0;
}

.sp-prose table,
.sp-board {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.98rem;
}

.sp-prose th,
.sp-prose td {
	padding: 0.7rem 0.8rem;
	border-bottom: 1px solid var(--sp-line);
	text-align: left;
	vertical-align: top;
}

.sp-prose thead th {
	background: var(--sp-carta-2);
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sp-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.legal-updated {
	display: inline-block;
	padding: 0.3rem 0.7rem;
	background: var(--sp-intonaco);
	font-size: 0.875rem;
	font-weight: 600;
}

.sp-prose button.sp-cookie-open {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0.7em 1.2em;
	border: 0;
	border-radius: 2px;
	background: var(--sp-ombra);
	color: var(--sp-carta);
	font-weight: 650;
	cursor: pointer;
}

/* FAQ accordions */
.sp-faq {
	display: grid;
	gap: 0.6rem;
}

.sp-faq details {
	background: #fffdf8;
	box-shadow: inset 0 0 0 1px var(--sp-line);
	transition: box-shadow 0.3s var(--sp-ease);
}

.sp-faq details[open] {
	box-shadow: inset 0 0 0 1.5px var(--sp-verde);
}

.sp-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.2rem;
	font-family: var(--sp-display);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.25;
	cursor: pointer;
	list-style: none;
}

.sp-faq summary::-webkit-details-marker {
	display: none;
}

.sp-faq summary::after {
	content: "";
	width: 12px;
	height: 12px;
	flex: none;
	border-right: 2px solid var(--sp-rosso);
	border-bottom: 2px solid var(--sp-rosso);
	transform: rotate(45deg) translateY(-3px);
	transition: transform 0.35s var(--sp-ease);
}

.sp-faq details[open] summary::after {
	transform: rotate(225deg) translateY(-3px);
}

.sp-faq__a {
	padding: 0 1.2rem 1.1rem;
}

.sp-faq__a p:last-child {
	margin-bottom: 0;
}

.sp-faq__group {
	margin: 2.2em 0 0.8em !important;
}

/* Calendar & departures board tables */
.sp-calendar__months {
	position: sticky;
	top: 84px;
	z-index: 3;
	display: flex;
	gap: 0.4rem;
	overflow-x: auto;
	margin: 0 0 2rem;
	padding: 0.7rem 0;
	background: var(--sp-carta);
	border-bottom: 1px solid var(--sp-line);
}

.admin-bar .sp-calendar__months {
	top: 116px;
}

.sp-calendar__months a {
	flex: none;
	padding: 0.35rem 0.8rem;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px var(--sp-line-strong);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--sp-ink);
}

.sp-calendar__months a:hover,
.sp-calendar__months a.is-active {
	background: var(--sp-verde);
	color: var(--sp-carta);
	box-shadow: none;
}

.sp-calendar__month + .sp-calendar__month {
	margin-top: 2.6rem;
}

.sp-calendar__title {
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem) !important;
	margin: 0 0 0.6rem !important;
}

.sp-board {
	min-width: 640px;
}

.sp-board th {
	padding: 0.6rem 0.75rem;
	border-bottom: 2px solid var(--sp-ink);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-align: left;
	text-transform: uppercase;
	color: var(--sp-ink-2);
}

.sp-board td {
	padding: 0.85rem 0.75rem;
	border-bottom: 1px solid var(--sp-line);
	vertical-align: middle;
}

.sp-board td small {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.85rem;
	color: var(--sp-ink-2);
}

.sp-board td b {
	font-family: var(--sp-display);
	font-size: 1.2rem;
	font-weight: 600;
}

.sp-board td a {
	text-decoration: none;
}

.sp-board__date {
	font-weight: 650;
	white-space: nowrap;
}

.sp-board__price {
	font-family: var(--sp-display);
	font-size: 1.3rem;
	font-weight: 600;
	white-space: nowrap;
}

.sp-board tr.is-full {
	color: var(--sp-ink-2);
}

.sp-board tbody tr {
	transition: background-color 0.2s var(--sp-ease);
}

.sp-board tbody tr:hover {
	background: rgba(233, 194, 122, 0.18);
}

.sp-status {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	font-size: 0.8125rem;
	font-weight: 700;
	white-space: nowrap;
	box-shadow: inset 0 0 0 1.5px currentColor;
}

.sp-status--last { color: var(--sp-rosso); }
.sp-status--confirmed { color: var(--sp-verde); }
.sp-status--open { color: var(--sp-ink-2); }
.sp-status--full { color: var(--sp-ink-2); opacity: 0.7; }

/* --------------------------------------------------------------------------
   Catalogue: filters
   -------------------------------------------------------------------------- */

.sp-catalog {
	padding-block: 0 var(--sp-section);
}

.sp-filters {
	position: relative;
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	margin: calc(-1 * clamp(36px, 4vw, 52px)) 0 clamp(28px, 4vw, 48px);
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
}

.sp-filters__field {
	display: grid;
	flex: 1 1 160px;
	gap: 0.15rem;
	padding: 0.75rem 1rem 0.6rem;
	border-right: 1px solid var(--sp-line);
	border-bottom: 1px solid var(--sp-line);
}

.sp-filters__field--sort {
	flex-basis: 170px;
	background: var(--sp-carta-2);
}

.sp-filters__actions {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.65rem 1rem;
}

.sp-filters__reset {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--sp-rosso);
}

.sp-motion .sp-filters__actions .sp-btn {
	display: none;
}

.sp-catalog__count {
	margin: 0 0 2rem !important;
	font-family: var(--sp-display);
	font-size: 1.35rem;
	font-weight: 600;
}

.sp-empty {
	padding: clamp(28px, 4vw, 48px);
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
	max-width: 720px;
}

.sp-empty__title {
	font-family: var(--sp-display);
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.1;
}

.sp-site .woocommerce-pagination,
.sp-pagination {
	margin-top: clamp(36px, 5vw, 64px);
	text-align: center;
}

.sp-site .woocommerce-pagination ul,
.sp-pagination .nav-links {
	display: inline-flex !important;
	gap: 0.4rem;
	border: 0 !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-site .woocommerce-pagination ul li {
	border: 0 !important;
	float: none !important;
}

.sp-site .woocommerce-pagination a,
.sp-site .woocommerce-pagination span,
.sp-pagination .page-numbers {
	display: grid !important;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 0.6rem !important;
	background: var(--sp-carta);
	color: var(--sp-ink);
	font-weight: 650;
	text-decoration: none;
	box-shadow: inset 0 0 0 1px var(--sp-line);
}

.sp-site .woocommerce-pagination .current,
.sp-pagination .current {
	background: var(--sp-ombra) !important;
	color: var(--sp-carta) !important;
}

/* --------------------------------------------------------------------------
   Single trip
   -------------------------------------------------------------------------- */

.sp-trip__head {
	padding-block: clamp(28px, 4vw, 52px) 0;
}

.sp-trip__headgrid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
	gap: clamp(28px, 5vw, 80px);
	align-items: end;
	margin-top: 1.4rem;
}

.sp-trip__intro {
	padding-bottom: clamp(32px, 5vw, 72px);
}

.sp-trip__title {
	font-size: var(--sp-fs-display) !important;
	line-height: 0.98 !important;
	margin: 0 0 0.25em !important;
}

.sp-trip__places {
	margin: 0 0 1.4rem !important;
	font-family: var(--sp-display);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.7rem);
	font-style: italic;
	color: var(--sp-ocra-l);
}

.sp-trip__fast {
	max-width: 34em;
	padding-left: 1.1rem;
	border-left: 1px solid rgba(251, 247, 238, 0.35);
	color: var(--sp-on-rosso-2);
	font-size: 1.0625rem;
}

.sp-trip__fast p {
	margin: 0;
}

.sp-trip__rating {
	display: inline-flex;
	align-items: center;
	gap: 0.15rem;
	margin-top: 1.2rem;
	color: var(--sp-on-rosso);
	text-decoration: none;
	font-size: 0.95rem;
}

.sp-trip__rating span {
	margin-left: 0.45rem;
}

.sp-trip__arch {
	aspect-ratio: 5 / 5.4;
	box-shadow: inset 0 0 0 12px var(--sp-rosso-d);
}

.sp-trip__arch::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 12px var(--sp-rosso-d);
	z-index: 2;
	pointer-events: none;
}

.sp-stub {
	position: relative;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
	transform: translateY(50%);
}

.sp-stub > div {
	flex: 1 1 140px;
	padding: 0.85rem 1.1rem;
	border-right: 1px dashed var(--sp-line-strong);
}

.sp-stub > div:last-child {
	border-right: 0;
}

.sp-stub dt {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-stub dd {
	margin: 0.15rem 0 0;
	font-weight: 650;
	line-height: 1.3;
}

.sp-stub__carnet {
	background: var(--sp-carta-2);
}

.sp-stub__carnet dd {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--sp-verde);
}

.sp-trip__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
	gap: clamp(28px, 4vw, 64px);
	align-items: start;
	padding-top: clamp(84px, 9vw, 130px);
	padding-bottom: clamp(48px, 6vw, 96px);
}

.sp-trip__aside {
	position: sticky;
	top: 110px;
}

.sp-booking {
	position: relative;
	padding: 1.6rem 1.5rem 1.4rem;
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
}

.sp-booking::before {
	content: "";
	position: absolute;
	top: -11px;
	right: 2rem;
	width: 74px;
	height: 21px;
	background: rgba(233, 194, 122, 0.8);
	transform: rotate(3deg);
}

.sp-booking__price,
.sp-booking__price .price {
	font-family: var(--sp-display);
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1;
	color: var(--sp-ink);
}

.sp-booking__price small {
	display: block;
	margin-top: 0.4rem;
	font-family: var(--sp-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--sp-ink-2);
}

.sp-booking form.cart {
	margin: 1.3rem 0 0 !important;
	padding-top: 1.2rem;
	border-top: 1px dashed var(--sp-line-strong);
}

.sp-site .sp-booking table.variations {
	width: 100%;
	margin: 0 0 0.8rem;
	border: 0;
}

.sp-site .sp-booking table.variations th,
.sp-site .sp-booking table.variations td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
}

.sp-site .sp-booking table.variations label {
	font-size: var(--sp-fs-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-site .sp-booking table.variations select {
	margin-top: 0.35rem;
	font-weight: 600;
}

.sp-site .sp-booking .reset_variations {
	display: inline-block;
	margin-top: 0.4rem;
	font-size: 0.875rem;
	color: var(--sp-rosso);
}

.sp-site .woocommerce-variation-price .price {
	font-family: var(--sp-display);
	font-size: 1.6rem;
	font-weight: 600;
}

.sp-site .woocommerce-variation-availability p.stock,
.sp-site .sp-booking p.stock {
	margin: 0.3rem 0 0.8rem;
	font-weight: 650;
	color: var(--sp-verde);
}

.sp-site .sp-booking p.stock.out-of-stock {
	color: var(--sp-rosso);
}

.sp-site .sp-booking .woocommerce-variation-add-to-cart,
.sp-site .sp-booking form.cart:not(.variations_form) {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: end;
	gap: 0.6rem 0.8rem;
}

.sp-qty-label {
	grid-column: 1 / -1;
	font-size: var(--sp-fs-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-site .quantity input.qty {
	width: 84px;
	min-height: 52px;
	text-align: center;
	font-weight: 650;
	font-size: 1.1rem;
}

.sp-site .single_add_to_cart_button {
	width: 100%;
	min-height: 52px;
	background: var(--sp-verde) !important;
	color: var(--sp-carta) !important;
}

.sp-site .single_add_to_cart_button:hover {
	background: var(--sp-ombra) !important;
}

.sp-booking__notes {
	display: grid;
	gap: 0.55rem;
	margin: 1.2rem 0 0;
	padding: 1rem 0 0;
	border-top: 1px solid var(--sp-line);
	list-style: none;
	font-size: 0.92rem;
	color: var(--sp-ink-2);
}

.sp-booking__notes li {
	display: flex;
	gap: 0.55rem;
	align-items: flex-start;
}

.sp-booking__notes .sp-icon {
	color: var(--sp-verde);
	margin-top: 0.1em;
}

.sp-booking__notes a {
	color: var(--sp-ink);
	font-weight: 650;
}

/* Tabs */
.sp-site .woocommerce-tabs {
	margin: 0 0 3rem;
}

.sp-site .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin: 0 0 1.6rem !important;
	padding: 0 !important;
	border-bottom: 2px solid var(--sp-ink);
	list-style: none;
}

.sp-site .woocommerce-tabs ul.tabs::before,
.sp-site .woocommerce-tabs ul.tabs::after {
	display: none !important;
}

.sp-site .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	border-radius: 0 !important;
}

.sp-site .woocommerce-tabs ul.tabs li::before,
.sp-site .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.sp-site .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.8rem 1.1rem !important;
	font-weight: 650;
	font-size: 1rem;
	text-decoration: none;
	color: var(--sp-ink-2) !important;
	background: transparent;
	transition: background-color 0.2s var(--sp-ease), color 0.2s;
}

.sp-site .woocommerce-tabs ul.tabs li.active a,
.sp-site .woocommerce-tabs ul.tabs li a:hover {
	background: var(--sp-ink);
	color: var(--sp-carta) !important;
}

.sp-site .woocommerce-Tabs-panel {
	padding: clamp(20px, 3vw, 40px);
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
	font-size: var(--sp-fs-body);
	line-height: 1.7;
}

.sp-site .woocommerce-Tabs-panel h3 {
	font-size: clamp(1.4rem, 1.2rem + 0.7vw, 1.9rem);
	margin: 1.6em 0 0.6em;
}

.sp-site .woocommerce-Tabs-panel h3:first-child {
	margin-top: 0;
}

.sp-site .woocommerce-Tabs-panel ol {
	margin: 0 0 1em;
	padding: 0;
	list-style: none;
	counter-reset: none;
	position: relative;
}

.sp-site .woocommerce-Tabs-panel ol::before {
	content: "";
	position: absolute;
	left: 9px;
	top: 0.8em;
	bottom: 0.8em;
	border-left: 2.5px dashed var(--sp-verde);
}

.sp-site .woocommerce-Tabs-panel ol li {
	position: relative;
	padding: 0 0 1.1em 2.4rem;
}

.sp-site .woocommerce-Tabs-panel ol li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--sp-carta);
	border: 3px solid var(--sp-verde);
}

.sp-site .woocommerce-Tabs-panel ol li strong {
	display: block;
	font-family: var(--sp-display);
	font-size: 1.2rem;
	font-weight: 600;
}

.sp-included {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

.sp-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
}

.sp-list li {
	display: flex;
	gap: 0.55rem;
	align-items: flex-start;
}

.sp-list--yes .sp-icon {
	color: var(--sp-verde);
	margin-top: 0.15em;
}

.sp-list--no li::before {
	content: "";
	width: 14px;
	height: 2px;
	margin-top: 0.75em;
	flex: none;
	background: var(--sp-rosso);
}

/* Reviews */
.sp-site #reviews .commentlist {
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 1rem;
}

.sp-site #reviews .commentlist li {
	margin: 0;
	padding: 1rem 1.2rem;
	background: var(--sp-carta-2);
}

.sp-site #reviews .comment_container {
	display: block;
}

.sp-site #reviews .avatar {
	display: none;
}

.sp-site #reviews .comment-text {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.sp-site .star-rating {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1.1em;
	overflow: hidden;
	font-size: 0.95rem;
	line-height: 1;
	font-family: inherit;
	letter-spacing: 0.1em;
}

.sp-site .star-rating::before {
	content: "★★★★★";
	position: absolute;
	inset: 0;
	color: rgba(36, 26, 20, 0.2);
}

.sp-site .star-rating span {
	position: absolute;
	inset: 0 auto 0 0;
	overflow: hidden;
	padding-top: 1.5em;
}

.sp-site .star-rating span::before {
	content: "★★★★★";
	position: absolute;
	top: 0;
	left: 0;
	color: #b88426;
}

.sp-site #reviews .meta {
	margin: 0.4rem 0;
	font-size: 0.9rem;
	color: var(--sp-ink-2);
}

.sp-site #review_form_wrapper {
	padding-top: 1rem;
	border-top: 1px solid var(--sp-line);
}

.sp-site p.stars a {
	color: #b88426;
}

/* Dates section + designer */
.sp-dates {
	margin: 0 0 3rem;
	scroll-margin-top: 110px;
}

.sp-dates__note {
	max-width: 52em;
	color: var(--sp-ink-2);
}

.sp-dates .sp-table-wrap {
	padding: 0.4rem 1rem 0.6rem;
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
}

.sp-designer {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: 1.4rem;
	align-items: center;
	padding: 1.2rem;
	background: var(--sp-ocra);
	color: var(--sp-ink);
}

.sp-designer__img {
	width: 150px;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 9999px 9999px 0 0;
}

.sp-designer__name {
	margin: 0 !important;
	font-family: var(--sp-display);
	font-size: 1.6rem;
	font-weight: 600;
}

.sp-designer__role {
	margin: 0 0 0.6rem !important;
	font-weight: 600;
	font-size: 0.95rem;
}

.sp-designer__text {
	margin: 0 0 0.6rem !important;
}

.sp-designer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.4rem;
	margin: 0 !important;
}

.sp-designer__links a {
	display: inline-flex;
	gap: 0.4rem;
	align-items: center;
	font-weight: 650;
	text-decoration: none;
	border-bottom: 1.5px solid currentColor;
}

/* Related + upsells */
.sp-site .related.products,
.sp-site .upsells.products {
	width: min(var(--sp-max), 100% - 2 * var(--sp-gutter));
	margin: 0 auto;
	padding: 0 0 var(--sp-section);
}

.sp-site .related.products > h2,
.sp-site .upsells.products > h2 {
	font-size: var(--sp-fs-h2);
	margin-bottom: 1.4em;
}

/* --------------------------------------------------------------------------
   Cart / checkout / account / notices
   -------------------------------------------------------------------------- */

.sp-site .woocommerce-message,
.sp-site .woocommerce-info,
.sp-site .woocommerce-error,
.sp-site .woocommerce-notice {
	position: relative;
	margin: 0 0 1.5rem !important;
	padding: 1rem 1.2rem 1rem 1.2rem !important;
	border: 0 !important;
	background: var(--sp-carta) !important;
	color: var(--sp-ink) !important;
	box-shadow: var(--sp-sheet-shadow), inset 0 3px 0 var(--sp-verde);
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
}

.sp-site .woocommerce-error {
	box-shadow: var(--sp-sheet-shadow), inset 0 3px 0 var(--sp-rosso);
}

.sp-site .woocommerce-message::before,
.sp-site .woocommerce-info::before,
.sp-site .woocommerce-error::before {
	display: none !important;
}

.sp-site .woocommerce-message .button,
.sp-site .woocommerce-info .button {
	order: 2;
	min-height: 40px;
}

.sp-site table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
	font-size: 1rem;
}

.sp-site table.shop_table th,
.sp-site table.shop_table td {
	padding: 0.9rem 1rem;
	border: 0;
	border-bottom: 1px solid var(--sp-line);
	text-align: left;
	vertical-align: middle;
}

.sp-site table.shop_table thead th {
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-ink-2);
	border-bottom: 2px solid var(--sp-ink);
}

.sp-site table.shop_table .product-thumbnail img {
	width: 96px;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.sp-site table.shop_table .product-name a {
	font-family: var(--sp-display);
	font-size: 1.2rem;
	font-weight: 600;
	text-decoration: none;
}

.sp-site table.shop_table .variation {
	margin: 0.3rem 0 0;
	font-size: 0.9rem;
	color: var(--sp-ink-2);
}

.sp-site table.shop_table .variation dt,
.sp-site table.shop_table .variation dd {
	display: inline;
	margin: 0;
}

.sp-site a.remove {
	display: grid !important;
	place-items: center;
	width: 32px !important;
	height: 32px !important;
	border-radius: 50%;
	color: var(--sp-rosso) !important;
	font-size: 1.4rem !important;
	text-decoration: none;
}

.sp-site a.remove:hover {
	background: var(--sp-rosso) !important;
	color: var(--sp-carta) !important;
}

.sp-site .cart-collaterals .cart_totals,
.sp-site .woocommerce-checkout-review-order {
	padding: 1.4rem;
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
}

.sp-site .cart_totals h2,
.sp-site #order_review_heading,
.sp-site .woocommerce-billing-fields h3,
.sp-site .woocommerce-additional-fields h3 {
	font-size: clamp(1.5rem, 1.25rem + 0.8vw, 2rem);
}

.sp-site .cart_totals table.shop_table {
	box-shadow: none;
}

.sp-site .woocommerce .col2-set,
.sp-site .woocommerce-page .col2-set {
	display: grid;
	gap: 2rem;
}

.sp-site .woocommerce form .form-row {
	margin: 0 0 1rem;
	padding: 0;
}

.sp-site .woocommerce form .form-row label {
	display: block;
	margin-bottom: 0.3rem;
	font-weight: 650;
	font-size: 0.9375rem;
}

.sp-site .woocommerce form .form-row .required {
	color: var(--sp-rosso);
	text-decoration: none;
}

.sp-site .woocommerce form .form-row .description {
	font-size: 0.85rem;
	color: var(--sp-ink-2);
	margin-top: 0.3rem;
}

.sp-site #payment {
	background: transparent !important;
	border-radius: 0 !important;
}

.sp-site #payment ul.payment_methods {
	padding: 0 0 1rem !important;
	border: 0 !important;
	list-style: none;
}

.sp-site #payment ul.payment_methods li {
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--sp-line);
}

.sp-site #payment div.payment_box {
	margin: 0.6rem 0 0 !important;
	padding: 0.8rem 1rem !important;
	background: var(--sp-intonaco) !important;
	color: var(--sp-ink) !important;
	border-radius: 0 !important;
	font-size: 0.92rem;
}

.sp-site #payment div.payment_box::before {
	display: none !important;
}

.sp-site #place_order {
	width: 100%;
	min-height: 56px;
	background: var(--sp-verde);
	font-size: 1.1rem;
}

.sp-site .woocommerce-terms-and-conditions-wrapper {
	font-size: 0.92rem;
}

.sp-site .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.3rem;
}

.sp-site .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.6rem 0.9rem;
	text-decoration: none;
	font-weight: 600;
	background: var(--sp-carta);
}

.sp-site .woocommerce-MyAccount-navigation .is-active a {
	background: var(--sp-ink);
	color: var(--sp-carta);
}

/* --------------------------------------------------------------------------
   Diary article
   -------------------------------------------------------------------------- */

.sp-article__title {
	max-width: 22ch !important;
}

.sp-article__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 1.4rem;
	margin: 0.8rem 0 0 !important;
	color: var(--sp-on-rosso-2);
	font-size: 0.98rem;
}

.sp-article__body {
	padding-bottom: var(--sp-section);
}

.sp-article__cover {
	position: relative;
	z-index: 2;
	margin: calc(-1 * clamp(30px, 4vw, 60px)) auto 0 !important;
}

.sp-article__cover img {
	width: 100%;
	aspect-ratio: 21 / 9;
	object-fit: cover;
	box-shadow: var(--sp-sheet-shadow);
}

.sp-article__sheet {
	max-width: 900px !important;
	margin-top: -2.5rem !important;
	padding: clamp(28px, 5vw, 64px) clamp(20px, 5vw, 72px);
	background: var(--sp-carta);
	box-shadow: var(--sp-sheet-shadow);
	position: relative;
	z-index: 3;
}

.sp-article__lede {
	font-family: var(--sp-display);
	font-size: clamp(1.3rem, 1.15rem + 0.6vw, 1.7rem);
	font-style: italic;
	line-height: 1.4;
	max-width: 34em;
	margin: 0 0 1.6rem !important;
}

.sp-article__trip {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 1.2rem;
	align-items: center;
	margin: 2.6rem 0 0;
	padding: 1rem;
	background: var(--sp-ocra);
	color: var(--sp-ink);
	text-decoration: none;
	transition: transform 0.4s var(--sp-ease);
}

.sp-article__trip:hover {
	transform: translateY(-3px) rotate(-0.4deg);
}

.sp-article__trip img {
	width: 200px;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.sp-article__trip > span {
	display: grid;
	gap: 0.15rem;
}

.sp-article__trip small {
	font-size: var(--sp-fs-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sp-article__trip b {
	font-family: var(--sp-display);
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.05;
}

.sp-article__tripprice {
	font-family: var(--sp-display);
	font-size: 1.3rem;
	font-weight: 600;
}

.sp-article__tripprice del {
	font-size: 0.7em;
}

.sp-article__foot {
	margin-top: 2.6rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--sp-line);
}

.sp-article__foot .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.sp-article__foot .nav-links a {
	display: grid;
	gap: 0.2rem;
	text-decoration: none;
}

.sp-article__foot .nav-next {
	text-align: right;
}

.sp-article__foot small {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-article__foot .nav-links span {
	font-family: var(--sp-display);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.2;
}

.sp-blog {
	padding-block: clamp(36px, 5vw, 64px) var(--sp-section);
}

.sp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 2.2rem;
}

.sp-chip {
	padding: 0.45rem 1rem;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1.5px var(--sp-ink);
	font-weight: 650;
	font-size: 0.95rem;
	text-decoration: none;
	transition: background-color 0.2s var(--sp-ease), color 0.2s;
}

.sp-chip:hover,
.sp-chip.is-active {
	background: var(--sp-ink);
	color: var(--sp-carta);
}

.sp-searchpage {
	display: flex;
	gap: 0.6rem;
	max-width: 640px;
	margin: 0 0 2.4rem;
}

.sp-searchpage input {
	flex: 1;
}

.sp-404 {
	padding-block: clamp(64px, 10vw, 140px);
}

.sp-404__code {
	margin: 0 !important;
	font-family: var(--sp-display);
	font-size: clamp(6rem, 18vw, 14rem);
	font-weight: 700;
	line-height: 0.8;
	color: var(--sp-rosso-dd);
}

.sp-404__text {
	max-width: 36em;
	color: var(--sp-on-rosso-2);
}

.sp-404__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 650;
}

/* --------------------------------------------------------------------------
   Map gate, cookie banner
   -------------------------------------------------------------------------- */

.sp-map {
	position: relative;
	aspect-ratio: 16 / 10;
	background: var(--sp-carta-2) var(--sp-plaster);
	box-shadow: var(--sp-sheet-shadow);
}

.sp-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.sp-map__gate {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	gap: 0.8rem;
	padding: 1.5rem;
	text-align: center;
	justify-items: center;
}

.sp-map__gate p {
	max-width: 30em;
	margin: 0;
}

.sp-cookie {
	position: fixed;
	left: var(--sp-gutter);
	bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	z-index: 120;
	width: min(460px, calc(100vw - 2 * var(--sp-gutter)));
}

.sp-cookie__sheet {
	position: relative;
	padding: 1.4rem 1.4rem 1.2rem;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: 0 2px 2px rgba(36, 26, 20, 0.14), 0 26px 40px -18px rgba(36, 26, 20, 0.6);
	transform: rotate(-0.6deg);
	font-size: 0.95rem;
	line-height: 1.5;
}

.sp-cookie__sheet::before {
	content: "";
	position: absolute;
	top: -10px;
	left: 1.6rem;
	width: 72px;
	height: 20px;
	background: rgba(233, 194, 122, 0.85);
	transform: rotate(-3deg);
}

.sp-cookie__title {
	margin: 0 0 0.3rem !important;
	font-family: var(--sp-display);
	font-size: 1.4rem;
	font-weight: 600;
}

.sp-cookie__text a {
	color: var(--sp-verde);
	font-weight: 650;
}

.sp-cookie__close {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.sp-cookie__close:hover {
	background: var(--sp-intonaco);
}

.sp-cookie__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 0.9rem;
}

.sp-cookie__actions .sp-btn {
	min-height: 44px;
	font-size: 0.9375rem;
}

.sp-cookie__prefs {
	display: grid;
	gap: 0.7rem;
	margin: 0 0 1rem;
	padding: 0.9rem 0;
	border-block: 1px solid var(--sp-line);
}

.sp-switch {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	font-size: 0.9rem;
}

.sp-switch b {
	display: block;
}

.sp-motion .sp-cookie.is-in .sp-cookie__sheet {
	animation: sp-tape-on 0.7s var(--sp-ease-settle) both;
}

/* --------------------------------------------------------------------------
   Motion states (only with .sp-motion on <html>)
   -------------------------------------------------------------------------- */

@keyframes sp-tape-on {
	from { opacity: 0; transform: translateY(-26px) rotate(5deg); }
	to { opacity: 1; transform: translateY(0) rotate(var(--tilt, -0.6deg)); }
}

/* Hero: masked lines rise. */
.sp-motion .sp-rise-line {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding-bottom: 0.08em;
	margin-bottom: -0.08em;
}

.sp-motion .sp-rise-line > span {
	display: inline-block;
	transform: translateY(105%);
	transition: transform 0.85s var(--sp-ease);
	transition-delay: calc(var(--i, 0) * 90ms + 120ms);
}

.sp-motion .is-awake .sp-rise-line > span {
	transform: none;
}

.sp-motion .sp-hero .sp-fade {
	opacity: 1;
	transform: none;
	transition: opacity 0.9s var(--sp-ease), transform 0.9s var(--sp-ease);
	transition-delay: var(--d, 900ms);
}

.sp-motion .sp-hero.is-awake .sp-fade {
	opacity: 1;
	transform: none;
}

/* Hero: the shop shutter lifts, then sheets get taped on. */
.sp-motion .sp-hero .sp-shutter::after,
.sp-motion .sp-trip .sp-shutter::after {
	transform: translateY(0);
	transition: transform 1.25s cubic-bezier(0.7, 0, 0.2, 1) 0.25s;
}

.sp-motion .sp-hero.is-awake .sp-shutter::after,
.sp-motion .sp-trip.is-awake .sp-shutter::after {
	transform: translateY(-101%);
}

.sp-motion .sp-hero .sp-shutter img,
.sp-motion .sp-trip .sp-shutter img {
	transform: scale(1.08);
	transition: transform 2.4s var(--sp-ease) 0.4s;
}

.sp-motion .sp-hero.is-awake .sp-shutter img,
.sp-motion .sp-trip.is-awake .sp-shutter img {
	transform: scale(1);
}

.sp-motion .sp-hero .sp-sheet {
	opacity: 0;
}

.sp-motion .sp-hero.is-awake .sp-sheet {
	animation: sp-tape-on 0.85s var(--sp-ease-settle) both;
	animation-delay: calc(1.35s + var(--i, 0) * 0.16s);
}

.sp-motion .sp-hero .sp-stamp {
	opacity: 0;
}

.sp-motion .sp-hero.is-awake .sp-stamp {
	animation: sp-stamp-in 0.55s cubic-bezier(0.16, 1, 0.3, 1) both;
	animation-delay: calc(2.1s + var(--i, 0) * 0.16s);
}

@keyframes sp-stamp-in {
	0% { opacity: 0; transform: rotate(-30deg) scale(1.9); filter: blur(3px); }
	60% { opacity: 1; transform: rotate(-9deg) scale(0.94); filter: blur(0); }
	100% { opacity: 1; transform: rotate(-12deg) scale(1); }
}

/* Departures grid: sheets pinned one by one from alternating sides. */
.sp-motion .sp-pin li.product {
	opacity: 0;
	transform: translate(var(--from-x, 0), -18px) rotate(calc(var(--tilt) + var(--from-r, 4deg)));
	transition: opacity 0.6s var(--sp-ease), transform 0.9s var(--sp-ease-settle);
	transition-delay: calc(var(--i, 0) * 90ms);
}

.sp-motion .sp-pin li.product:nth-child(odd) {
	--from-x: -14px;
	--from-r: -5deg;
}

.sp-motion .sp-pin li.product:nth-child(even) {
	--from-x: 14px;
	--from-r: 5deg;
}

.sp-motion .sp-pin.is-in li.product {
	opacity: 1;
	transform: rotate(var(--tilt));
}

.sp-motion .sp-pin.is-in li.product:hover {
	transform: rotate(0deg) translateY(-5px);
	transition-delay: 0s;
}

/* Diary cards: images wipe up from the bottom edge. */
.sp-motion .sp-clip img,
.sp-motion .sp-diary .sp-entry__img img {
	clip-path: inset(100% 0 0 0);
	transition: clip-path 1.2s var(--sp-ease), transform 0.9s var(--sp-ease);
}

.sp-motion .sp-clip.is-in img,
.sp-motion .sp-diary.is-in .sp-entry__img img {
	clip-path: inset(0 0 0 0);
}

.sp-motion .sp-diary .sp-entry:nth-child(2) img { transition-delay: 0.12s; }
.sp-motion .sp-diary .sp-entry:nth-child(3) img { transition-delay: 0.24s; }

/* Headings with a pen stroke. */
.sp-motion .sp-pen::after {
	transform: scaleX(0);
	transition: transform 0.9s var(--sp-ease) 0.3s;
}

.sp-motion .is-in .sp-pen::after,
.sp-motion .sp-pen.is-in::after {
	transform: scaleX(1);
}

/* Generic soft reveal for section copy (used sparingly). */
.sp-motion .sp-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.8s var(--sp-ease), transform 0.9s var(--sp-ease);
}

.sp-motion .sp-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* Photo slides in from behind the tape. */
.sp-motion .sp-photo-tilt img {
	transform: rotate(6deg) translateY(30px);
	opacity: 0;
	transition: transform 1.1s var(--sp-ease-settle), opacity 0.6s var(--sp-ease);
}

.sp-motion .sp-photo-tilt.is-in img {
	transform: rotate(1.4deg);
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* --------------------------------------------------------------------------
   Elementor containers: spacing and direction come from our classes
   -------------------------------------------------------------------------- */

:where(.sp-site) .e-con {
	--container-default-padding-top: 0px;
	--container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px;
	--container-default-padding-left: 0px;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--widgets-spacing: 0px;
	--widgets-spacing-row: 0px;
	--widgets-spacing-column: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
}

.sp-site .elementor-widget:not(:last-child) {
	margin-block-end: 0;
}

.sp-site .e-con.sp-wrap {
	--width: min(var(--sp-max), 100% - 2 * var(--sp-gutter));
	width: min(var(--sp-max), 100% - 2 * var(--sp-gutter)) !important;
	max-width: none;
	margin-inline: auto !important;
}

.e-con.sp-section {
	--padding-top: var(--sp-section);
	--padding-bottom: var(--sp-section);
}

.e-con.sp-hero {
	--padding-top: clamp(36px, 5vw, 72px);
	--padding-bottom: 0px;
	overflow: hidden;
}

.e-con.sp-hero--short {
	--padding-bottom: clamp(48px, 6vw, 88px);
}

.e-con.sp-trust {
	--padding-top: 1.15rem;
	--padding-bottom: 1.15rem;
}

.e-con.sp-companyline {
	--padding-top: 0px;
	--padding-bottom: 2.5rem;
}

.e-con.sp-columns {
	--height: 54px;
	--min-height: 54px;
	height: 54px;
}

.e-con.sp-formsheet {
	--padding-top: clamp(24px, 3.4vw, 48px);
	--padding-bottom: clamp(24px, 3.4vw, 48px);
	--padding-left: clamp(20px, 3.4vw, 48px);
	--padding-right: clamp(20px, 3.4vw, 48px);
}

.e-con.sp-hero__copy,
.e-con.sp-split__text,
.e-con.sp-steps__intro,
.e-con.sp-head__text,
.e-con.sp-member,
.e-con.sp-contact__media {
	--gap: 1.1rem;
	--row-gap: 1.1rem;
}

.e-con.sp-hero__copy {
	--padding-bottom: clamp(48px, 7vw, 110px);
}

.sp-site .e-con.sp-head {
	--flex-direction: row;
	--flex-wrap: wrap;
	--align-items: flex-end;
	--justify-content: space-between;
	--gap: 1rem 3rem;
	--row-gap: 1rem;
	--column-gap: 3rem;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: flex-end !important;
	justify-content: space-between !important;
	margin-bottom: clamp(28px, 4vw, 56px);
}

.sp-site .e-con.sp-head > .sp-head__text {
	flex: 1 1 520px;
	max-width: 760px;
}

.sp-site .e-con.sp-head > .elementor-widget-button {
	flex: 0 0 auto;
}

.sp-site .e-con.sp-split,
.sp-site .e-con.sp-steps,
.sp-site .e-con.sp-hero__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(28px, 5vw, 88px);
	align-items: center;
}

.sp-site .e-con.sp-steps {
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	align-items: start;
}

.sp-site .e-con.sp-hero__grid {
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.98fr);
	align-items: start;
}

.sp-site .e-con.sp-split--promo {
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}

.sp-site .e-con.sp-split--reviews {
	grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
	align-items: start;
}

.sp-site .e-con.sp-split--lead {
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: start;
}

.sp-site .e-con.sp-split--contact {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
}

.sp-site .e-con.sp-boards {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: clamp(20px, 3vw, 40px) !important;
	margin-block: 0.6rem 0.8rem;
}

.sp-site .e-con.sp-teamgrid {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 28px);
}

.sp-site .elementor-widget-button.sp-btn-ghost .elementor-button,
.sp-site .elementor-widget-button.sp-btn-ocra .elementor-button,
.sp-site .elementor-widget-button.sp-btn-ink .elementor-button {
	font-size: 1rem;
}

.sp-site .elementor-widget-button .elementor-button-content-wrapper {
	gap: 0.5em;
}

.sp-site .elementor-widget-button {
	align-self: flex-start;
}

/* Hero window: the arch fills the column, sheets sit on its lower half. */
.sp-site .sp-hero__window {
	position: relative;
	min-height: 640px;
}

.sp-site .sp-hero__window > .elementor-widget-shortcode,
.sp-site .sp-hero__window > .elementor-widget-shortcode > .elementor-widget-container,
.sp-site .sp-hero__window .elementor-shortcode {
	position: static;
}

.sp-site .sp-hero__window > .sp-arch {
	position: absolute !important;
	inset: 0 0 0 8%;
	width: auto !important;
	margin: 0 !important;
}

.sp-site .sp-arch > .elementor-widget-container,
.sp-site .sp-arch img {
	height: 100%;
}

.sp-site .sp-arch img {
	width: 100%;
	object-fit: cover;
}

.sp-hero__window--photo {
	min-height: 520px !important;
}

.sp-hero--page .sp-hero__copy {
	padding-top: 0.5rem;
}

.sp-hero--page .sp-hero__title,
.sp-hero--short .sp-hero__title .elementor-heading-title {
	font-size: var(--sp-fs-h1) !important;
	margin-top: 0.4em !important;
}

.sp-hero--short .sp-hero__lede p {
	max-width: 40em;
}

/* Photos */
.sp-site .sp-photo-arch img {
	width: 100%;
	aspect-ratio: 4 / 4.6;
	object-fit: cover;
	border-radius: 9999px 9999px 0 0;
	box-shadow: inset 0 0 0 12px var(--sp-rosso-d);
}

.sp-site .sp-photo-tilt {
	max-width: 560px;
}

.sp-steps__intro .sp-photo-tilt {
	margin-top: 1.4rem;
	max-width: 420px;
}

/* Trust ribbon */
.sp-trust__list {
	display: grid;
	grid-template-columns: repeat(5, auto);
	justify-content: space-between;
	gap: 0.6rem 1.6rem;
	font-size: 0.92rem;
	line-height: 1.3;
}

.sp-trust__list li {
	align-items: flex-start;
}

/* Early-booking departures board (Solari style) */
.sp-solari-wrap .sp-table-wrap {
	padding: clamp(14px, 2vw, 22px);
	background: #17100c;
	border-radius: 4px;
	box-shadow: inset 0 0 0 1px rgba(233, 194, 122, 0.12), 0 20px 40px -24px rgba(0, 0, 0, 0.8);
}

.sp-solari {
	width: 100%;
	min-width: 520px;
	border-collapse: separate;
	border-spacing: 0 6px;
	color: #f3e6c8;
	font-variant-numeric: tabular-nums;
}

.sp-solari th {
	padding: 0 0.7rem 0.3rem;
	color: var(--sp-ocra);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-align: left;
	text-transform: uppercase;
}

.sp-solari td {
	padding: 0.55rem 0.7rem;
	background: #2a1d16;
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	white-space: nowrap;
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.sp-solari td:first-child {
	border-radius: 3px 0 0 3px;
	text-transform: uppercase;
	color: var(--sp-ocra-l);
}

.sp-solari td:last-child {
	border-radius: 0 3px 3px 0;
	text-align: right;
}

.sp-solari a {
	color: #f3e6c8;
	text-decoration: none;
}

.sp-solari a:hover {
	color: var(--sp-ocra-l);
	text-decoration: underline;
}

.sp-solari del {
	color: #a9957c;
	font-weight: 500;
}

.sp-solari__new {
	color: #9fd0ac;
}

.sp-solari tbody tr {
	transition: transform 0.3s var(--sp-ease);
}

.sp-solari tbody tr:hover {
	transform: translateX(4px);
}

/* Spec sheet (carnet) and ledgers */
.sp-specsheet {
	display: grid;
	margin: 0.4rem 0 0;
	border-top: 2px solid var(--sp-ink);
}

.sp-specsheet > div {
	display: grid;
	grid-template-columns: 9.5rem minmax(0, 1fr);
	gap: 1rem;
	padding: 0.75rem 0;
	border-bottom: 1px solid rgba(36, 26, 20, 0.22);
}

.sp-specsheet dt {
	font-size: var(--sp-fs-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sp-specsheet dd {
	margin: 0;
}

.sp-ledger {
	margin: 0;
	padding: clamp(20px, 3vw, 36px);
	list-style: none;
	background: var(--sp-carta);
	color: var(--sp-ink);
	box-shadow: var(--sp-sheet-shadow);
	transform: rotate(0.5deg);
}

.sp-ledger li {
	display: grid;
	grid-template-columns: 11rem minmax(0, 1fr);
	gap: 1rem;
	padding: 0.8rem 0;
	border-bottom: 1px dashed var(--sp-line-strong);
}

.sp-ledger li:last-child {
	border-bottom: 0;
}

.sp-ledger b {
	font-size: var(--sp-fs-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-motion .sp-ledger li,
.sp-motion .sp-specsheet > div {
	opacity: 0;
	transform: translateX(-10px);
	transition: opacity 0.6s var(--sp-ease), transform 0.7s var(--sp-ease);
}

.sp-motion .sp-ledger.is-in li,
.sp-motion .sp-specsheet.is-in > div {
	opacity: 1;
	transform: none;
}

.sp-motion .sp-ledger.is-in li:nth-child(2),
.sp-motion .sp-specsheet.is-in > div:nth-child(2) { transition-delay: 0.08s; }
.sp-motion .sp-ledger.is-in li:nth-child(3),
.sp-motion .sp-specsheet.is-in > div:nth-child(3) { transition-delay: 0.16s; }
.sp-motion .sp-ledger.is-in li:nth-child(4),
.sp-motion .sp-specsheet.is-in > div:nth-child(4) { transition-delay: 0.24s; }
.sp-motion .sp-ledger.is-in li:nth-child(5),
.sp-motion .sp-specsheet.is-in > div:nth-child(5) { transition-delay: 0.32s; }
.sp-motion .sp-specsheet.is-in > div:nth-child(6) { transition-delay: 0.4s; }

/* Team */
.sp-member {
	position: relative;
}

.sp-site .sp-member__img img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 9999px 9999px 0 0;
	filter: saturate(0.92);
	transition: filter 0.5s var(--sp-ease), transform 0.8s var(--sp-ease);
}

.sp-member:hover .sp-member__img img {
	filter: saturate(1.05);
	transform: translateY(-4px);
}

.sp-site .sp-member__name .elementor-heading-title {
	font-size: 1.45rem;
	font-weight: 600;
	margin: 0.6rem 0 0;
}

.sp-member__role p {
	margin: 0;
	font-size: 0.95rem;
	color: var(--sp-ink-2);
}

/* Lead / contact */
.sp-lead__contacts {
	display: grid;
	gap: 0.7rem;
	margin: 0.6rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 1.0625rem;
}

.sp-lead__contacts li {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.sp-lead__contacts a {
	font-weight: 650;
	text-decoration: none;
	border-bottom: 1.5px solid rgba(233, 194, 122, 0.6);
}

.sp-lead__contacts .sp-icon {
	color: var(--sp-ocra-l);
}

.sp-anchor {
	display: block;
	position: relative;
	top: -120px;
}

.sp-h3,
.sp-site .sp-prose .sp-h3 {
	font-family: var(--sp-display);
	font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.8rem) !important;
	margin: 1.6em 0 0.4em !important;
}

.sp-company {
	margin: 0;
	font-size: 0.875rem;
	color: var(--sp-ink-2);
}

.sp-contact__media .sp-photo-tilt {
	max-width: none;
}

/* CF7 inside sheets */
.sp-site .wpcf7-form > p {
	margin: 0;
}

.sp-site .wpcf7-form label > .wpcf7-form-control-wrap {
	margin-top: 0.1rem;
}

.sp-site .wpcf7-form [aria-hidden="true"] {
	color: var(--sp-rosso);
	margin-left: 0.15em;
}

.sp-site .wpcf7-form .wpcf7-submit {
	justify-self: start;
	min-width: 220px;
	background: var(--sp-verde);
}

.sp-site .wpcf7-form .wpcf7-submit:hover {
	background: var(--sp-ombra);
}

.sp-newsletter .wpcf7-form {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.7rem;
}

.sp-newsletter .wpcf7-form > .wpcf7-form-control-wrap {
	flex: 1 1 260px;
}

.sp-newsletter .wpcf7-form .wpcf7-submit {
	min-width: 0;
	background: var(--sp-ombra);
}

.sp-newsletter .wpcf7-form .wpcf7-submit:hover {
	background: var(--sp-verde);
}

.sp-newsletter .sp-nl__consent,
.sp-newsletter .wpcf7-response-output,
.sp-newsletter .wpcf7-spinner {
	flex-basis: 100%;
}

.sp-newsletter .sp-nl__consent {
	font-size: 0.875rem;
}

.sp-newsletter .wpcf7-spinner {
	display: none;
}

.sp-newsletter input[type="email"] {
	border-color: rgba(36, 26, 20, 0.5) !important;
	background: var(--sp-carta) !important;
}

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

@media (max-width: 1240px) {
	.sp-topbar__hours {
		display: none;
	}

	.sp-nav__list {
		gap: 0.9rem;
	}

	.sp-nav__list a {
		font-size: 0.95rem;
	}
}

@media (max-width: 1100px) {
	.sp-nav,
	.sp-insegna__cta {
		display: none;
	}

	.sp-tool--burger {
		display: inline-grid;
	}

	.sp-insegna__in {
		min-height: 72px;
	}

	.sp-site ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sp-footer__grid {
		grid-template-columns: 1fr 1fr;
	}

	.sp-footer__agency {
		grid-column: 1 / -1;
	}

	.sp-trip__grid {
		grid-template-columns: 1fr;
	}

	.sp-trip__aside {
		position: relative;
		top: 0;
		order: -1;
	}
}

@media (max-width: 900px) {
	.sp-site .e-con.sp-split,
	.sp-site .e-con.sp-steps,
	.sp-site .e-con.sp-hero__grid,
	.sp-site .e-con.sp-split--promo,
	.sp-site .e-con.sp-split--reviews,
	.sp-site .e-con.sp-split--lead,
	.sp-site .e-con.sp-split--contact {
		grid-template-columns: 1fr;
	}

	.sp-site .e-con.sp-teamgrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sp-trust__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sp-site .sp-hero__window {
		min-height: 0;
	}

	.sp-site .sp-hero__window > .sp-arch {
		position: relative !important;
		inset: auto;
		aspect-ratio: 4 / 4.3;
	}

	.e-con.sp-hero__copy {
		--padding-bottom: 1.5rem;
	}

	.sp-hero__grid,
	.sp-steps,
	.sp-trip__headgrid,
	.sp-newsletter__grid {
		grid-template-columns: 1fr;
	}

	.sp-hero__copy {
		padding-bottom: 0;
	}

	.sp-hero__window {
		min-height: 0;
		display: grid;
		gap: 1.2rem;
		padding-bottom: 2rem;
	}

	.sp-hero__window .sp-arch {
		position: relative;
		inset: auto;
		aspect-ratio: 4 / 4.2;
		width: 100%;
	}

	.sp-hero__window .sp-sheets {
		position: relative;
		bottom: auto;
		right: auto;
		margin-top: -5.5rem;
		grid-template-columns: repeat(3, minmax(220px, 1fr));
		overflow-x: auto;
		padding: 1.6rem 0.4rem 0.6rem;
		scroll-snap-type: x mandatory;
	}

	.sp-hero__window .sp-sheet {
		scroll-snap-align: start;
	}

	.sp-steps__intro {
		position: relative !important;
		top: 0;
	}

	.sp-diary,
	.sp-diary--index {
		grid-template-columns: 1fr 1fr;
	}

	.sp-diary .sp-entry--lead {
		grid-column: 1 / -1;
	}

	.sp-trip__intro {
		padding-bottom: 0;
	}

	.sp-stub {
		transform: none;
		margin-top: 1.6rem;
	}

	.sp-trip__grid {
		padding-top: 2.4rem;
	}

	.sp-included {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	:root {
		--sp-section: 64px;
	}

	.sp-topbar__in {
		justify-content: center;
		text-align: center;
	}

	.sp-topbar__promo {
		font-size: 0.8125rem;
	}

	.sp-topbar__contact {
		display: none;
	}

	.sp-insegna__cta {
		display: none;
	}

	.sp-site ul.products,
	.sp-diary,
	.sp-diary--index {
		grid-template-columns: 1fr;
	}

	.sp-finder {
		transform: none;
	}

	.sp-finder__field {
		flex-basis: 100%;
		border-right: 0;
		border-bottom: 1px solid var(--sp-line);
	}

	.sp-finder__go {
		flex-basis: 100%;
		min-height: 56px;
	}

	.sp-filters__field {
		flex-basis: 50%;
	}

	.sp-form__row {
		grid-template-columns: 1fr;
	}

	.sp-newsletter .wpcf7-form {
		grid-template-columns: 1fr;
	}

	.sp-footer__grid {
		grid-template-columns: 1fr;
	}

	.sp-postcard {
		background: var(--sp-carta);
	}

	.sp-postcard__text,
	.sp-postcard__by {
		padding-right: 0;
	}

	.sp-postcard__stamp {
		display: none;
	}

	.sp-designer {
		grid-template-columns: 1fr;
	}

	.sp-article__trip {
		grid-template-columns: 1fr;
	}

	.sp-article__trip img {
		width: 100%;
	}

	.sp-article__foot .nav-links {
		grid-template-columns: 1fr;
	}

	.sp-article__foot .nav-next {
		text-align: left;
	}

	.sp-stub > div {
		flex-basis: 50%;
	}

	.sp-trust__list {
		display: grid;
		grid-template-columns: 1fr;
	}

	.sp-hero__window .sp-stamp {
		right: 4px;
	}
}

/* --------------------------------------------------------------------------
   Fix pass 1
   -------------------------------------------------------------------------- */

:where(.sp-site) h1,
:where(.sp-site) h2,
:where(.sp-site) h3,
:where(.sp-site) h4,
.sp-site .elementor-heading-title {
	hyphens: manual;
	-webkit-hyphens: manual;
	overflow-wrap: normal;
	word-break: normal;
}

:root {
	--sp-fs-display: clamp(2.6rem, 1.2rem + 4vw, 5rem);
}

/* CF7: labels are blocks, the required star stays on the label line. */
.sp-site .wpcf7-form label {
	display: block;
}

.sp-site .wpcf7-form label > .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0.35rem;
}

.sp-site .wpcf7-form .wpcf7-submit,
.sp-newsletter .wpcf7-form .wpcf7-submit {
	width: auto !important;
	flex: 0 0 auto;
}

.sp-site .wpcf7-form .wpcf7-list-item {
	display: block;
}

.sp-site .wpcf7-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-size: 0.9rem;
	font-weight: 400;
	line-height: 1.45;
}

/* Paper checkbox, drawn from the palette. */
.sp-site input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	display: inline-grid;
	place-content: center;
	width: 20px;
	height: 20px;
	margin: 0.1em 0 0;
	border: 1.5px solid var(--sp-ink);
	border-radius: 2px;
	background: #fffdf8;
	cursor: pointer;
	transition: background-color 0.2s var(--sp-ease), border-color 0.2s;
}

.sp-site input[type="checkbox"]::before {
	content: "";
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--sp-carta);
	border-bottom: 2px solid var(--sp-carta);
	transform: translateY(-2px) rotate(-45deg) scale(0);
	transition: transform 0.2s var(--sp-ease-settle);
}

.sp-site input[type="checkbox"]:checked {
	background: var(--sp-verde);
	border-color: var(--sp-verde);
}

.sp-site input[type="checkbox"]:checked::before {
	transform: translateY(-2px) rotate(-45deg) scale(1);
}

.sp-site input[type="checkbox"]:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Hero sheets: pinned at different heights across the arch. */
@media (min-width: 901px) {
	.sp-site .sp-hero__window .sp-sheets {
		position: absolute;
		inset: 0;
		display: block;
		pointer-events: none;
	}

	.sp-site .sp-hero__window .sp-sheet {
		position: absolute;
		width: min(252px, 44%);
		pointer-events: auto;
	}

	.sp-site .sp-hero__window .sp-sheet:nth-child(1) {
		left: -3%;
		bottom: 27%;
	}

	.sp-site .sp-hero__window .sp-sheet:nth-child(2) {
		left: 31%;
		bottom: 6%;
	}

	.sp-site .sp-hero__window .sp-sheet:nth-child(3) {
		right: -2%;
		bottom: 31%;
	}
}

.sp-hero__window .sp-sheet__meta {
	font-size: 0.875rem;
}

.sp-hero__window .sp-sheet__foot {
	flex-wrap: wrap;
	gap: 0.4rem 0.75rem;
}

.sp-site input[type="checkbox"] {
	position: static !important;
	opacity: 1 !important;
	flex: none;
}

.sp-site .wpcf7-list-item-label::before,
.sp-site .wpcf7-list-item-label::after {
	display: none !important;
}

.sp-bay__arch img,
.sp-trip__arch img,
.sp-hero__window .sp-arch img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}

.sp-bay__arch::after {
	z-index: 1;
}

.sp-site .price ins,
.sp-site ins {
	text-decoration: none !important;
	background: none;
}

.sp-site .sp-booking table.variations select,
.sp-site select {
	text-transform: none;
	letter-spacing: normal;
}

.sp-trip__headgrid {
	align-items: center;
}

.sp-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem 1.6rem;
	margin: 0 0 1.8rem;
	padding: 0 0 1.4rem;
	border-bottom: 1px solid var(--sp-line);
}

.sp-facts dt {
	font-size: var(--sp-fs-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sp-rosso);
}

.sp-facts dd {
	margin: 0.2rem 0 0;
	font-weight: 550;
}

/* Calendar page: the board uses the full sheet width. */
.sp-page__sheet .sp-prose:has(.sp-calendar) {
	max-width: 1100px;
}

.sp-page__sheet .sp-prose:has(.sp-calendar) > p {
	max-width: 72ch;
}

.sp-prose .sp-btn,
.sp-board .sp-btn {
	color: var(--sp-carta);
	white-space: nowrap;
	hyphens: none;
	text-decoration: none;
}

.sp-prose .sp-btn:hover {
	color: var(--sp-carta);
}

.sp-board th,
.sp-board td,
.sp-prose th {
	hyphens: none;
	-webkit-hyphens: none;
}

.sp-prose .sp-board thead th {
	background: transparent;
}

.sp-board td a b {
	color: var(--sp-ink);
}

.sp-calendar .sp-table-wrap {
	margin-inline: -0.75rem;
}

/* --------------------------------------------------------------------------
   WooCommerce pages (cart, checkout, account) on the paper sheet
   -------------------------------------------------------------------------- */

.woocommerce-cart .sp-prose,
.woocommerce-checkout .sp-prose,
.woocommerce-account .sp-prose,
.sp-prose:has(.woocommerce) {
	max-width: none;
}

.sp-site .woocommerce h2,
.sp-site .woocommerce h3,
.sp-site .cart_totals h2,
.sp-site #order_review_heading {
	font-family: var(--sp-display) !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em;
	color: var(--sp-ink);
}

.sp-site .woocommerce form .form-row label,
.sp-site .woocommerce-form-row label {
	color: var(--sp-ink) !important;
	font-weight: 650 !important;
}

.sp-site .woocommerce-info,
.sp-site .woocommerce-message {
	font-size: 1rem !important;
	font-weight: 500;
}

.sp-site .woocommerce-info a,
.sp-site .woocommerce-message a:not(.button) {
	color: var(--sp-verde);
	font-weight: 650;
}

/* Cart */
.sp-site .woocommerce-cart-form {
	margin-bottom: 2rem;
}

.sp-site .woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.8fr);
	gap: 2rem clamp(24px, 4vw, 56px);
	align-items: start;
}

.sp-site .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.sp-site .woocommerce-cart .cart-collaterals {
	width: auto !important;
	margin: 0 !important;
}

.sp-site .woocommerce-cart .cart-collaterals .cart_totals {
	width: auto !important;
	float: none !important;
}

.sp-site table.shop_table.cart td.product-name {
	min-width: 220px;
}

.sp-site table.shop_table.cart td.actions {
	padding-top: 1.2rem;
}

.sp-site table.shop_table.cart .coupon {
	display: flex;
	gap: 0.6rem;
	align-items: center;
}

.sp-site table.shop_table.cart .coupon input {
	width: 220px;
}

.sp-site .wc-proceed-to-checkout .checkout-button {
	width: 100%;
	min-height: 56px;
	background: var(--sp-verde) !important;
	color: var(--sp-carta) !important;
	font-size: 1.05rem;
}

.sp-site .cart_totals .shop_table th,
.sp-site .cart_totals .shop_table td {
	padding: 0.8rem 0;
}

.sp-site .cart_totals .order-total .amount {
	font-family: var(--sp-display);
	font-size: 1.6rem;
	font-weight: 600;
}

/* Checkout */
.sp-site form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.85fr);
	gap: 0 clamp(24px, 4vw, 64px);
	align-items: start;
}

.sp-site form.checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / span 3;
}

.sp-site form.checkout #order_review_heading,
.sp-site form.checkout #order_review {
	grid-column: 2;
}

.sp-site form.checkout #order_review_heading {
	margin-top: 0;
}

.sp-site form.checkout #order_review {
	position: sticky;
	top: 110px;
}

.sp-site form.checkout .col2-set {
	display: block;
}

.sp-site form.checkout .col2-set .col-1,
.sp-site form.checkout .col2-set .col-2 {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
}

.sp-site form.checkout .form-row-first,
.sp-site form.checkout .form-row-last {
	width: calc(50% - 0.6rem);
}

.sp-site form.checkout .woocommerce-billing-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.sp-site form.checkout .form-row-wide {
	width: 100%;
}

.sp-site .select2-container--default .select2-selection--single {
	height: 48px;
	border: 1.5px solid var(--sp-line-strong);
	border-radius: 2px;
	background: #fffdf8;
}

.sp-site .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 45px;
	padding-left: 0.85rem;
	color: var(--sp-ink);
}

.sp-site .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 45px;
	right: 8px;
}

.sp-site .select2-dropdown {
	border-color: var(--sp-line-strong);
	border-radius: 2px;
}

.sp-site .select2-results__option--highlighted[aria-selected],
.sp-site .select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--sp-verde) !important;
}

.sp-site .woocommerce-checkout-review-order-table .product-name {
	font-weight: 600;
}

.sp-site .woocommerce-checkout-review-order-table .order-total .amount {
	font-family: var(--sp-display);
	font-size: 1.5rem;
}

@media (max-width: 900px) {
	.sp-site .woocommerce-cart .woocommerce,
	.sp-site form.checkout.woocommerce-checkout {
		grid-template-columns: 1fr;
	}

	.sp-site form.checkout #customer_details,
	.sp-site form.checkout #order_review_heading,
	.sp-site form.checkout #order_review {
		grid-column: 1;
		grid-row: auto;
		position: static;
	}

	.sp-site form.checkout .form-row-first,
	.sp-site form.checkout .form-row-last {
		width: 100%;
	}

	.sp-site table.shop_table_responsive tr td::before {
		font-weight: 700;
		color: var(--sp-ink-2);
	}
}

.sp-site input[type="checkbox"] {
	display: inline-grid !important;
	visibility: visible !important;
}

.sp-site .woocommerce-form__label-for-checkbox,
.sp-site label.checkbox {
	display: inline-flex !important;
	align-items: flex-start;
	gap: 0.6rem;
}

.sp-site .woocommerce-form__label-for-checkbox::before,
.sp-site .woocommerce-form__label-for-checkbox span::before,
.sp-site label.checkbox::before {
	display: none !important;
}

.sp-site #payment ul.payment_methods li > label {
	color: var(--sp-ink);
	font-weight: 650;
	font-size: 1rem;
}

.sp-site input[type="radio"] {
	accent-color: var(--sp-verde);
	width: 18px;
	height: 18px;
	vertical-align: -3px;
	margin-right: 0.4rem;
}

.sp-site .button,
.sp-site .sp-btn,
.sp-site button,
.sp-site .checkout-button {
	hyphens: none;
	-webkit-hyphens: none;
	border-radius: 2px !important;
}

.sp-site .wc-proceed-to-checkout .checkout-button {
	white-space: nowrap;
}

.sp-site .cart_totals h2 {
	font-size: 1.8rem !important;
}

.sp-site ins {
	border-bottom: 0 !important;
}

@media (max-width: 900px) {
	.sp-site .sp-hero__window > .sp-arch {
		height: clamp(340px, 108vw, 560px) !important;
		aspect-ratio: auto;
	}

	.sp-site .sp-hero__window .sp-sheets {
		margin-top: -6.5rem;
		position: relative;
		z-index: 3;
	}

	.sp-hero__window--photo {
		min-height: 0 !important;
	}
}
.sp-solari th{hyphens:none;-webkit-hyphens:none;white-space:nowrap}

/* Webion clips .site with overflow:hidden, which disables every sticky element. */
#page.site,
.sp-site .site {
	overflow: visible !important;
	overflow-x: clip !important;
}

/* Account: login / register */
.sp-site .woocommerce-account .u-columns,
.sp-site .woocommerce .u-columns.col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.5rem clamp(24px, 4vw, 64px);
}

.sp-site .u-columns .col-1,
.sp-site .u-columns .col-2 {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	padding: 0 !important;
}

.sp-site .woocommerce-form-login,
.sp-site .woocommerce-form-register {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.sp-site .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.4rem;
}

.sp-site .woocommerce-form-login__rememberme {
	margin: 0 !important;
	font-weight: 500 !important;
}

.sp-site .password-input {
	position: relative;
	display: block;
}

.sp-site .show-password-input {
	position: absolute !important;
	top: 50%;
	right: 0.6rem;
	width: 32px !important;
	height: 32px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	transform: translateY(-50%);
	background: transparent !important;
	box-shadow: none !important;
	color: var(--sp-ink-2) !important;
}

.sp-site .lost_password a {
	color: var(--sp-verde);
	font-weight: 650;
}

@media (max-width: 900px) {
	.sp-site .woocommerce .u-columns.col2-set {
		grid-template-columns: 1fr;
	}
}

.sp-site input[type="checkbox"] {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px;
	min-height: 0 !important;
	padding: 0 !important;
}

.sp-site .woocommerce-form-login__rememberme span {
	white-space: nowrap;
}

.sp-site [hidden] {
	display: none !important;
}

/* Still mode (reduced motion / no JS): static route line, scrollable arcade. */
.sp-route::after {
	content: "";
	position: absolute;
	left: calc(0.65rem + 10px);
	top: 1rem;
	bottom: 1rem;
	border-left: 2.5px dashed var(--sp-verde);
	z-index: 0;
}

.sp-motion .sp-route:has(.sp-route__line)::after {
	display: none;
}

.sp-arcade__track {
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
	scrollbar-color: var(--sp-ocra) transparent;
	padding-bottom: 1rem;
}

.sp-bay {
	scroll-snap-align: start;
}

.sp-motion .sp-arcade.is-pinned .sp-arcade__track {
	overflow: visible;
	scroll-snap-type: none;
	padding-bottom: 0.5rem;
}

/* ==========================================================================
   Finish review round 1
   ========================================================================== */

/* Real plaster: a photographed lime surface, soft-light over every wall. */
.sp-wall::before,
.sp-newsletter::before {
	background-image: url("../img/plaster.jpg");
	background-size: 420px;
	mix-blend-mode: soft-light;
	opacity: 0.55;
}

/* Portico shadows cast across the hero wall (replaces the stripe bar). */
.sp-site .e-con.sp-columns {
	display: none !important;
}

.sp-hero::after,
.sp-agency::after {
	content: "";
	position: absolute;
	left: -6%;
	right: -6%;
	bottom: 0;
	height: 78%;
	background: url("../img/portico-shadow.jpg") no-repeat right bottom / cover;
	mix-blend-mode: multiply;
	opacity: 0.2;
	pointer-events: none;
	z-index: 0;
	transform: translate3d(var(--sp-shadow-x, 0), 0, 0);
	will-change: transform;
}

.sp-agency::after {
	top: 0;
	bottom: auto;
	height: 100%;
	opacity: 0.12;
	background-position: left center;
	transform: scaleX(-1) translate3d(var(--sp-shadow-x, 0), 0, 0);
}

.sp-hero > .e-con,
.sp-agency > .e-con {
	position: relative;
	z-index: 1;
}

.e-con.sp-hero {
	--padding-bottom: clamp(40px, 5vw, 72px);
}

/* Terrazzo underfoot: the real aggregate, darkened to umber. */
.sp-footer {
	background:
		linear-gradient(rgba(36, 26, 20, 0.86), rgba(36, 26, 20, 0.9)),
		url("../img/terrazzo.jpg") 0 0 / 420px;
}

/* Contacts set straight on the field, ruled like an engraved plaque. */
.sp-footer .sp-plaque {
	padding: 1rem 0 0;
	background: none;
	box-shadow: none;
	border-top: 1px solid rgba(201, 162, 78, 0.45);
}

/* Section grounds: saturated plaster fields only. */
.sp-misura.sp-wall--intonaco,
.sp-home .sp-misura {
	background-color: var(--sp-ocra);
}

.sp-misura .sp-route li::before {
	background: var(--sp-ocra);
}

.sp-misura .sp-route p,
.sp-misura .sp-lede p {
	color: #3d2b1f;
}

.sp-misura .sp-route small {
	color: var(--sp-ombra);
}

.sp-diary-sec.sp-wall--intonaco,
.sp-home .sp-diary-sec {
	background-color: var(--sp-ombra);
	color: var(--sp-carta);
}

.sp-diary-sec .sp-lede p {
	color: #e3d3b8;
}

/* Diary entries hang as taped sheets. */
.sp-entry {
	position: relative;
	transform: rotate(var(--tilt, 0deg));
	transition: transform 0.5s var(--sp-ease), box-shadow 0.5s var(--sp-ease);
}

.sp-entry::before {
	content: "";
	position: absolute;
	top: -10px;
	left: calc(50% - 36px);
	width: 72px;
	height: 20px;
	background: rgba(233, 194, 122, 0.82);
	transform: rotate(-2deg);
	z-index: 2;
}

.sp-entry:nth-child(3n + 1) { --tilt: -0.6deg; }
.sp-entry:nth-child(3n + 2) { --tilt: 0.7deg; }
.sp-entry:nth-child(3n) { --tilt: -0.3deg; }

.sp-entry:hover {
	transform: rotate(0deg) translateY(-4px);
}

.sp-entry__img {
	margin: 10px 10px 0;
}

.sp-diary {
	align-items: start;
}

/* People under the portico (home). */
.sp-site .e-con.sp-people {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.2rem;
	margin-block: 0.6rem 0.4rem;
}

.sp-site .sp-person__img img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 9999px 9999px 0 0;
	box-shadow: inset 0 0 0 6px var(--sp-rosso-d);
}

.sp-site .sp-person__name .elementor-heading-title {
	margin: 0.55rem 0 0.1rem;
	font-size: 1.2rem;
	font-weight: 600;
}

.sp-person__role p {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.35;
	color: var(--sp-on-rosso-2);
}

/* Early-booking board: Bodoni prices, split-flap characters. */
.sp-solari__new {
	font-family: var(--sp-display);
	font-size: 1.25rem !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
}

.sp-solari .sp-ch {
	display: inline-block;
	min-width: 0.55em;
	text-align: center;
}

.sp-solari .sp-ch.is-flipping {
	animation: sp-flap 0.08s linear;
}

/* Buttons never shout: Webion uppercases submit buttons. */
.sp-site button,
.sp-site input[type="submit"],
.sp-site .button,
.sp-site .elementor-button,
.sp-site .wpcf7-submit {
	text-transform: none !important;
	letter-spacing: 0.01em !important;
}

/* Still mode on desktop: the six bays stand as a 3 × 2 arcade. */
@media (min-width: 1025px) {
	.sp-arcade:not(.is-pinned) .sp-arcade__track {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2.4rem clamp(18px, 2.4vw, 36px);
		overflow: visible;
	}

	.sp-arcade:not(.is-pinned) .sp-bay__arch {
		aspect-ratio: 4 / 3.6;
	}
}

@media (max-width: 1024px) {
	.sp-arcade__track {
		scroll-padding-inline: var(--sp-gutter);
	}
}

@media (max-width: 900px) {
	.sp-site .sp-hero__window .sp-sheets {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 74vw;
		grid-template-columns: none;
		scroll-padding-inline: 0.4rem;
	}

	.sp-site .e-con.sp-people {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.sp-solari {
		min-width: 0;
		border-spacing: 0 8px;
	}

	.sp-solari thead {
		display: none;
	}

	.sp-solari tr {
		display: grid;
		grid-template-columns: auto 1fr auto;
		grid-template-areas: "date trip trip" "old new seats";
		gap: 0.35rem 0.8rem;
		padding: 0.6rem 0.75rem;
		margin-bottom: 6px;
		background: #2a1d16;
		border-radius: 3px;
	}

	.sp-solari td {
		display: block;
		padding: 0;
		background: none;
		box-shadow: none;
		white-space: normal;
	}

	.sp-solari__date { grid-area: date; }
	.sp-solari__trip { grid-area: trip; }
	.sp-solari__old { grid-area: old; }
	.sp-solari__new { grid-area: new; }
	.sp-solari__seats { grid-area: seats; }

	.sp-solari__seats::after {
		content: " posti";
		font-size: 0.8rem;
		color: #cdb89a;
	}

	.sp-solari-wrap .sp-table-wrap {
		overflow: visible;
	}

	.sp-site .e-con.sp-people {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.7rem;
	}

	.sp-person__role p {
		font-size: 0.78rem;
	}
}

/* Finish review round 2 */
.sp-hero::after {
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 45%);
	mask-image: linear-gradient(to bottom, transparent 0, #000 45%);
}

.sp-agency::after {
	-webkit-mask-image: linear-gradient(to right, #000 0, #000 35%, transparent 75%);
	mask-image: linear-gradient(to right, #000 0, #000 35%, transparent 75%);
}

@media (max-width: 700px) {
	.sp-site .e-con.sp-people {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.sp-site .e-con.sp-person {
		display: grid !important;
		grid-template-columns: 92px minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: 1rem;
		align-items: end;
	}

	.sp-site .sp-person__img {
		grid-row: 1 / span 2;
	}

	.sp-site .sp-person__name .elementor-heading-title {
		margin: 0;
		font-size: 1.3rem;
	}

	.sp-person__role p {
		font-size: 0.9375rem;
		align-self: start;
	}
}

@media (max-width: 700px) {
	.sp-site .sp-person > .sp-person__name {
		align-self: end;
		padding-bottom: 0.2rem;
	}

	.sp-site .sp-person > .sp-person__role {
		align-self: start;
	}
}

/* Grid items never grow past the viewport because of wide tables inside. */
.sp-trip__main,
.sp-trip__aside,
.sp-trip__intro,
.sp-page__sheet,
.sp-prose {
	min-width: 0;
}

@media (max-width: 1100px) {
	.sp-trip__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Screen-reader labels inside scrolling tables stay inside their scroller. */
.sp-table-wrap {
	position: relative;
}

.sp-site .sp-booking .quantity {
	display: grid;
	gap: 0.35rem;
	margin: 0 !important;
	float: none !important;
}

.sp-site .sp-booking .single_add_to_cart_button {
	align-self: end;
	margin: 0 !important;
	float: none !important;
	min-height: 52px;
}
