/*
Theme Name: Gianna Atelier
Theme URI: https://villagianna.tasteroots.it
Author: OpenAI Codex
Author URI: https://openai.com
Description: An original editorial portfolio theme for Cantina Villa Gianna, inspired by modern light portfolio sites without copying proprietary theme code or assets.
Version: 1.0.378
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gianna-atelier
*/

:root {
	--paper: var(--e-global-color-gianna-paper, #FDFBF6);
	--bone: var(--e-global-color-gianna-bone, #ffffff);
	--ink: var(--e-global-color-gianna-ink, #322214);
	--muted: var(--e-global-color-gianna-muted, #4e453e);
	--line: var(--e-global-color-gianna-line, #d2c4bb);
	--olive: var(--e-global-color-gianna-olive, #467743);
	--olive-deep: var(--e-global-color-gianna-olive-deep, #002d02);
	--green-light: var(--e-global-color-1216755, #D8E9CD);
	--clay: var(--e-global-color-gianna-clay, #2b6485);
	--blue-light: var(--e-global-color-gianna-blue-light, #8ec7dd);
	--slate: var(--e-global-color-gianna-slate, #31302b);
	--mist: var(--e-global-color-gianna-mist, #f4f0e8);
	--gold: var(--e-global-color-gianna-gold, #c6a573);
	--surface-dim: var(--e-global-color-gianna-surface-dim, #F3F0E9);
	--surface-container: var(--e-global-color-gianna-surface-container, #FAF6ED);
	--shadow: 0 24px 60px color-mix(in srgb, var(--ink) 10%, transparent);
	--font-body: var(--e-global-typography-gianna-text-font-family, Inter), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-title: var(--e-global-typography-gianna-title-font-family, "Jost"), sans-serif;
	--font-accent: var(--e-global-typography-gianna-accent-font-family, "Caveat"), "Segoe Print", "Bradley Hand", cursive;
	--font-sign: var(--font-accent);
	--site-pad: 24px;
	--max: 1280px;
	--animate-duration: 2s;
	--loader-duration: 1s;
	--landing-motion-duration: 3s;
	--landing-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--page-transition-duration: 1.5s;
}

/* Re-resolve theme aliases where Elementor exposes the active global kit. */
.elementor-kit-7 {
	--paper: var(--e-global-color-gianna-paper, #FDFBF6);
	--bone: var(--e-global-color-gianna-bone, #ffffff);
	--ink: var(--e-global-color-gianna-ink, #322214);
	--muted: var(--e-global-color-gianna-muted, #4e453e);
	--line: var(--e-global-color-gianna-line, #d2c4bb);
	--olive: var(--e-global-color-gianna-olive, #467743);
	--olive-deep: var(--e-global-color-gianna-olive-deep, #002d02);
	--green-light: var(--e-global-color-1216755, #D8E9CD);
	--clay: var(--e-global-color-gianna-clay, #2b6485);
	--blue-light: var(--e-global-color-gianna-blue-light, #8ec7dd);
	--slate: var(--e-global-color-gianna-slate, #31302b);
	--mist: var(--e-global-color-gianna-mist, #f4f0e8);
	--gold: var(--e-global-color-gianna-gold, #c6a573);
	--surface-dim: var(--e-global-color-gianna-surface-dim, #F3F0E9);
	--surface-container: var(--e-global-color-gianna-surface-container, #FAF6ED);
	--font-body: var(--e-global-typography-gianna-text-font-family, Inter), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-title: var(--e-global-typography-gianna-title-font-family, "Jost"), sans-serif;
	--font-accent: var(--e-global-typography-gianna-accent-font-family, "Caveat"), "Segoe Print", "Bradley Hand", cursive;
	--font-sign: var(--font-accent);
}

* {
	box-sizing: border-box;
}

html {
	background-color: var(--e-global-color-gianna-paper, #FDFBF6);
	border: 0;
	scroll-behavior: smooth;
}

html,
body {
	max-width: 100%;
	overflow-x: hidden;
}

@supports (overflow: clip) {
	html,
	body {
		overflow-x: clip;
	}
}

body {
	border: 0;
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 17px;
	font-weight: var(--e-global-typography-gianna-text-font-weight, 400);
	line-height: var(--e-global-typography-gianna-text-line-height, 1.65);
	text-rendering: optimizeLegibility;
}

body.nav-open {
	overflow: hidden;
}

html.is-loading body {
	overflow: hidden;
}

/* The wine catalogue must remain scrollable while its decorative loader exits. */
html.is-loading body.page-template-page-vini {
	overflow-y: auto;
}

body.page-template-page-vini .site-loader {
	pointer-events: none;
}

img {
	display: block;
	height: auto;
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

p {
	margin: 0 0 1.1rem;
}

h1,
h2,
h3,
h4 {
	font-family: var(--font-title);
	font-weight: var(--e-global-typography-gianna-title-font-weight, 500);
	letter-spacing: var(--e-global-typography-gianna-title-letter-spacing, 0);
	line-height: var(--e-global-typography-gianna-title-line-height, 1);
	margin: 0;
}

h2 {
	font-size: 42px;
}

h3 {
	font-size: 34px;
}

.skip-link {
	background: var(--ink);
	color: var(--bone);
	left: 16px;
	padding: 10px 14px;
	position: absolute;
	top: -80px;
	z-index: 1000;
}

.skip-link:focus {
	top: 16px;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.site-loader,
.page-transition {
	display: none;
}

.has-js .site-loader,
.page-transition {
	align-items: center;
	color: var(--ink);
	display: grid;
	inset: 0;
	justify-items: center;
	position: fixed;
	text-align: center;
	z-index: 1000;
}

.site-loader__background,
.page-transition__background {
	background: var(--paper);
	inset: 0;
	position: absolute;
	transform-origin: top;
	z-index: -1;
}

.site-loader__inner {
	display: grid;
	gap: 26px;
	justify-items: center;
	padding: 24px;
	width: min(560px, calc(100vw - 48px));
}

.site-loader__logo {
	height: auto;
	max-width: 100%;
	width: min(440px, 78vw);
}

.site-loader__logos {
	align-items: center;
	display: flex;
	gap: clamp(10px, 1.4vw, 20px);
	justify-content: center;
}

.site-loader__logo--primary {
	width: min(220px, 26vw);
}

.site-loader__logo--secondary {
	width: min(440px, 52vw);
}

.site-loader__message {
	color: var(--ink);
	display: none;
	font-family: var(--font-title);
	font-size: clamp(24px, 3.2vw, 46px);
	font-weight: 500;
	line-height: 1;
	margin: 0;
	text-align: center;
}

body.is-real-home .site-loader__message {
	display: block;
}

body.is-real-home .site-loader__background {
	background: var(--clay);
}

body.is-real-home .site-loader {
	display: none;
}

.page-transition p {
	bottom: 42px;
	color: var(--muted);
	font-size: 12px;
	font-weight: 800;
	left: 0;
	margin: 0;
	opacity: 0;
	position: absolute;
	right: 0;
	text-transform: uppercase;
	transform: translateY(12px);
	transition: opacity 600ms ease, transform 600ms ease;
}

.is-loaded .site-loader {
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--loader-duration) ease, visibility 0s linear var(--loader-duration);
	visibility: hidden;
}

.page-transition {
	opacity: 0;
	pointer-events: none;
	transform: translateY(100%);
	transition: opacity 240ms ease, transform 1s cubic-bezier(0.76, 0, 0.24, 1);
}

.page-transition.is-active {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.page-transition.is-active p {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 240ms;
}

.page-transition--story p {
	bottom: auto;
	color: var(--ink);
	font-family: var(--font-title);
	font-size: clamp(30px, 4.2vw, 62px);
	font-weight: 500;
	left: 50%;
	line-height: 1;
	max-width: min(680px, calc(100vw - 48px));
	right: auto;
	text-transform: none;
	top: 50%;
	transform: translate(-50%, calc(-50% + 18px));
	width: 100%;
}

.page-transition--story.is-active p {
	transform: translate(-50%, -50%);
}

.page-transition-logo {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	visibility: hidden;
	z-index: 1;
}

.page-transition-logo img {
	height: auto;
	max-width: calc(100vw - 48px);
	width: min(440px, 78vw);
}

.page-transition.is-active .page-transition-logo {
	animation: page-transition-logo-enter var(--page-transition-duration) var(--landing-motion-ease) both;
	opacity: 1;
	visibility: visible;
}

@keyframes page-transition-logo-enter {
	from {
		opacity: 0.18;
		transform: translateY(24px) scale(0.94);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.site-header {
	align-items: center;
	display: flex;
	height: 116px;
	justify-content: space-between;
	left: 0;
	min-height: 116px;
	padding-block: 0;
	padding-inline: max(var(--site-pad), calc((100vw - var(--max)) / 2));
	position: fixed;
	right: 0;
	top: 0;
	transform: translateY(0);
	transition: background 440ms ease, box-shadow 440ms ease, transform 520ms ease;
	z-index: 200;
}

.site-header.is-at-top,
.site-header:not(.is-scrolled) {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none;
	backdrop-filter: none;
}

.site-header:not(.is-scrolled) {
	color: var(--bone);
}

.site-header:not(.is-scrolled) .header-cta,
.site-header:not(.is-scrolled) .menu-toggle {
	color: var(--bone);
}

body.admin-bar .site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.site-header.is-scrolled {
	background-color: var(--paper);
	background: color-mix(in srgb, var(--paper) 92%, transparent);
	box-shadow: 0 1px 0 color-mix(in srgb, var(--ink) 8%, transparent);
	backdrop-filter: blur(16px);
	color: var(--ink);
}

.site-header.is-scrolled .header-cta,
.site-header.is-scrolled .menu-toggle {
	color: var(--ink);
}

.nav-open .site-header {
	background: transparent;
	box-shadow: none;
}

body:not(.nav-open) .site-header.is-hidden {
	transform: translateY(-105%);
}

.site-brand {
	align-items: center;
	display: inline-flex;
	flex-direction: row;
	font-family: var(--font-title);
	font-size: 23px;
	font-weight: 600;
	gap: 12px;
	line-height: 0.9;
	position: relative;
	z-index: 110;
}

.site-brand img {
	max-height: 58px;
	width: auto;
}

.site-brand__name {
	display: inline-block;
	line-height: 1;
	white-space: nowrap;
}

.header-cta {
	align-items: center;
	border: 1px solid currentColor;
	border-radius: 4px;
	color: var(--ink);
	display: inline-flex;
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 700;
	justify-content: center;
	line-height: 1;
	margin-left: auto;
	margin-right: 28px;
	min-height: 40px;
	padding: 0 16px;
	text-align: center;
	text-transform: uppercase;
	transition: background 360ms ease, border-color 360ms ease, color 360ms ease, transform 360ms ease;
}

.header-cta:hover,
.header-cta:focus-visible {
	background: var(--ink);
	color: var(--bone);
	transform: translateY(-2px);
}

.site-header.is-scrolled .header-cta:hover,
.site-header.is-scrolled .header-cta:focus-visible {
	background-color: var(--vgw-solid-cta-hover-background-color, var(--ink)) !important;
	border-color: var(--vgw-solid-cta-hover-border-color, var(--ink)) !important;
	color: var(--vgw-solid-cta-hover-text-color, var(--bone)) !important;
}

.site-header:not(.is-scrolled) .menu-toggle:hover,
.site-header:not(.is-scrolled) .menu-toggle:focus-visible {
	color: var(--vgw-transparent-menu-hover-color, currentColor) !important;
}

.site-header.is-scrolled .menu-toggle:hover,
.site-header.is-scrolled .menu-toggle:focus-visible {
	color: var(--vgw-solid-menu-hover-color, var(--clay)) !important;
}

.primary-nav {
	background: var(--paper) !important;
	height: 100svh;
	inset: 0;
	opacity: 0;
	overflow-y: auto;
	padding: 126px var(--site-pad) 42px;
	pointer-events: none;
	position: fixed;
	transform: translateY(-102%);
	transition: opacity 520ms ease, transform 1240ms cubic-bezier(0.76, 0, 0.24, 1);
	z-index: 180;
}

.nav-open .primary-nav {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.nav-open .menu-toggle {
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}

.nav-close {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--ink);
	cursor: pointer;
	display: inline-flex;
	height: 52px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: max(var(--site-pad), calc((100vw - var(--max)) / 2));
	top: 32px;
	transition: color 360ms ease, transform 360ms ease;
	width: 52px;
	z-index: 2;
}

.nav-close:hover,
.nav-close:focus-visible {
	color: var(--clay);
	transform: rotate(90deg);
}

.nav-close__line {
	background: currentColor;
	display: block;
	height: 2px;
	position: absolute;
	width: 34px;
}

.nav-close__line:first-child {
	transform: rotate(45deg);
}

.nav-close__line:nth-child(2) {
	transform: rotate(-45deg);
}

.nav-stage {
	align-items: start;
	display: grid;
	gap: 42px;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
	margin: 0 auto;
	max-width: var(--max);
	min-height: auto;
	position: relative;
}

.nav-stage__graphic {
	left: clamp(-734px, -52vw, -360px);
	max-width: 1140px;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	user-select: none;
	width: min(80vw, 1140px);
}

.nav-list,
.footer-nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav-list {
	display: grid;
	gap: 0;
}

.nav-list > li {
	border-bottom: 1px solid var(--line);
	display: grid;
	gap: 8px;
	padding: 0 0 10px;
}

.nav-list > li > a {
	display: inline-flex;
	font-family: var(--font-title);
	font-size: clamp(44px, 5.5vw, 70px);
	font-weight: 500;
	line-height: 0.98;
	max-width: 100%;
	width: 100%;
}

.nav-list a {
	color: var(--ink);
	outline: 0;
	position: relative;
	transition: color 360ms ease, transform 360ms ease;
}

.nav-list a:hover,
.nav-list a:focus-visible {
	color: var(--clay);
	transform: translateX(8px);
}

.nav-list .sub-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	list-style: none;
	margin: 0 0 6px;
	padding: 0;
}

.nav-list .sub-menu a {
	color: var(--muted);
	font-family: var(--font-accent);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.05;
	text-transform: none;
}

.nav-aside {
	border-left: 1px solid var(--line);
	color: var(--muted);
	padding-left: 30px;
}

.nav-aside p:not(.section-kicker) {
	margin: 0 0 18px;
}

.nav-aside__language {
	margin-top: 28px;
	padding-top: 0;
}

.nav-aside__language .gtranslate_wrapper {
	align-items: center;
	display: flex;
	min-height: 40px;
}

.footer-nav {
	align-items: center;
	display: flex;
	gap: 28px;
}

.footer-nav a {
	color: var(--ink);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}

.menu-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--ink);
	cursor: pointer;
	display: inline-flex;
	flex-direction: column;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	gap: 7px;
	height: 42px;
	justify-content: center;
	padding: 0;
	position: relative;
	text-transform: uppercase;
	width: 52px;
	z-index: 210;
}

.menu-toggle__bar {
	background: currentColor;
	display: block;
	height: 2px;
	transition: transform 480ms ease, width 360ms ease;
	width: 32px;
}

.menu-toggle__label {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.nav-open .menu-toggle__bar:first-child {
	transform: translateY(4.5px) rotate(45deg);
}

.nav-open .menu-toggle__bar:nth-child(2) {
	transform: translateY(-4.5px) rotate(-45deg);
}

.hero {
	align-items: flex-end;
	display: grid;
	min-height: 86svh;
	overflow: hidden;
	padding: 116px var(--site-pad) 44px;
	position: relative;
}

.home .site-footer {
	display: none;
}

.home-cover {
	align-items: stretch;
	background: var(--ink);
	background-image: linear-gradient(color-mix(in srgb, var(--ink) 34%, transparent), color-mix(in srgb, var(--ink) 38%, transparent)), var(--home-cover-image);
	background-position: center;
	background-size: cover;
	color: var(--bone);
	display: grid;
	isolation: isolate;
	justify-items: stretch;
	min-height: 100svh;
	overflow: hidden;
	padding: 32px var(--site-pad);
	position: relative;
	text-align: left;
}

.home-cover::before {
	background: linear-gradient(color-mix(in srgb, var(--ink) 28%, transparent), color-mix(in srgb, var(--ink) 42%, transparent));
	content: "";
	inset: 0;
	position: absolute;
	z-index: 0;
}

.home-cover--site {
	min-height: 100svh;
	padding-top: max(28px, var(--site-pad));
}

.home-cover__video {
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: -1;
}

.is-real-home .site-footer {
	display: none;
}

.is-real-home .gianna-elementor-header-template {
	height: 0;
	position: relative;
	z-index: 200;
}

.is-real-home .site-header {
	background: transparent !important;
	backdrop-filter: none !important;
	box-shadow: none !important;
	color: var(--bone) !important;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-12px) !important;
	transition: opacity 640ms ease, transform 840ms cubic-bezier(.22, 1, .36, 1);
}

.is-real-home .site-header.is-scrolled {
	background-color: var(--paper) !important;
	background: color-mix(in srgb, var(--paper) 92%, transparent) !important;
	backdrop-filter: blur(16px) !important;
	box-shadow: 0 1px 0 color-mix(in srgb, var(--ink) 8%, transparent) !important;
	color: var(--ink) !important;
}

.is-real-home.immersive-menu-active .site-header {
	background: transparent !important;
	background-color: transparent !important;
	backdrop-filter: none !important;
	box-shadow: none !important;
	color: var(--bone) !important;
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0) !important;
}

body.is-real-home.immersive-menu-active .site-header .site-brand,
body.is-real-home.immersive-menu-active .site-header .header-cta,
body.is-real-home.immersive-menu-active .site-header .menu-toggle {
	color: var(--bone) !important;
}

.is-real-home .site-header:not(.is-scrolled) .site-brand,
.is-real-home .site-header:not(.is-scrolled) .header-cta,
.is-real-home .site-header:not(.is-scrolled) .menu-toggle {
	color: var(--bone) !important;
}

.is-real-home .site-header.is-scrolled .site-brand,
.is-real-home .site-header.is-scrolled .header-cta,
.is-real-home .site-header.is-scrolled .menu-toggle {
	color: var(--ink) !important;
}

.is-real-home .site-header .header-cta {
	border-color: currentColor !important;
}

.is-real-home .site-header .header-cta:hover,
.is-real-home .site-header .header-cta:focus-visible {
	background: var(--bone) !important;
	border-color: var(--bone) !important;
	color: var(--ink) !important;
}

.is-real-home:not(.nav-open) .site-header:not(.is-scrolled) .site-brand,
.is-real-home:not(.nav-open) .site-header:not(.is-scrolled) .header-cta,
.is-real-home:not(.nav-open) .site-header:not(.is-scrolled) .menu-toggle {
	color: var(--bone);
}

.is-real-home:not(.nav-open) .site-header:not(.is-scrolled) .header-cta:hover,
.is-real-home:not(.nav-open) .site-header:not(.is-scrolled) .header-cta:focus-visible {
	background: var(--bone);
	color: var(--ink);
}

.is-real-home .site-brand__name {
	display: none;
}

.landing-brand {
	align-items: flex-start;
	color: var(--surface-container);
	display: inline-flex;
	flex-direction: column;
	font-family: var(--font-title);
	font-weight: 500;
	gap: 6px;
	left: var(--site-pad);
	line-height: 1;
	position: absolute;
	right: auto;
	text-align: left;
	top: max(28px, var(--site-pad));
	width: calc(100vw - (var(--site-pad) * 2));
	z-index: 2;
}

.landing-brand__logo {
	height: auto;
	margin-bottom: 0;
	position: absolute;
	right: 0;
	top: 0;
	width: clamp(132px, 15vw, 220px);
}

.landing-brand__eyebrow {
	font-size: clamp(13px, 1vw, 17px);
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
}

.landing-brand__name,
.landing-brand strong {
	font-size: clamp(52px, 8.5vw, 126px);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 0.84;
	margin: 0;
}

.is-real-home .landing-brand,
.is-real-home .landing-brand *,
.is-real-home .home-cover__title,
.is-real-home .home-cover-menu,
.is-real-home .home-cover-menu * {
	color: var(--surface-container);
}

html:not(.is-loaded) body.is-real-home .landing-brand,
html:not(.is-loaded) body.is-real-home .home-cover__title,
html:not(.is-loaded) body.is-real-home .home-cover-menu {
	opacity: 0;
}

html:not(.is-loaded) body.is-real-home .landing-brand {
	transform: translateX(-48px);
}

html:not(.is-loaded) body.is-real-home .home-cover__title {
	transform: translateX(48px);
}

html.is-loaded body.is-real-home .landing-brand {
	animation: landing-copy-enter-left var(--landing-motion-duration) var(--landing-motion-ease) backwards;
}

html.is-loaded body.is-real-home .home-cover__title {
	animation: landing-copy-enter-right var(--landing-motion-duration) var(--landing-motion-ease) backwards;
}

.home-cover__content {
	align-items: end;
	display: grid;
	grid-template-columns: 1fr;
	max-width: none !important;
	min-height: calc(100svh - (max(28px, var(--site-pad)) * 2));
	pointer-events: none;
	position: relative;
	width: 100%;
	z-index: 1;
}

.home-cover__title {
	display: grid;
	gap: 2px;
	justify-self: end;
	margin: 0;
	max-width: min(520px, 44vw);
	text-align: right;
	font-family: var(--font-title);
	font-size: clamp(32px, 4.4vw, 64px);
	font-weight: 500;
	line-height: 0.96;
	text-shadow: 0 18px 64px color-mix(in srgb, var(--ink) 36%, transparent);
	transition: opacity var(--landing-motion-duration) ease, visibility 0s linear 0s;
	overflow-wrap: anywhere;
	visibility: visible;
}

.home-cover__title span {
	display: block;
}

.home-cover.is-menu-visible .home-cover__title {
	opacity: 0;
	transition: opacity var(--landing-motion-duration) ease, visibility 0s linear var(--landing-motion-duration);
	visibility: hidden;
}

.home-cover__button {
	align-items: center;
	background: var(--bone);
	border: 1px solid var(--bone);
	border-radius: 4px;
	color: var(--ink);
	display: inline-flex;
	font-family: var(--font-title);
	font-size: 14px;
	font-weight: 600;
	justify-content: center;
	max-width: 50vw;
	min-height: 48px;
	min-width: 152px;
	padding: 0 26px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	text-transform: uppercase;
	transition: background var(--landing-motion-duration) ease, border-color var(--landing-motion-duration) ease, color var(--landing-motion-duration) ease, transform var(--landing-motion-duration) ease;
	white-space: normal;
	right: 0;
}

.home-cover__button:hover,
.home-cover__button:focus-visible {
	background: transparent;
	color: var(--bone);
	transform: translateY(calc(-50% - 2px));
}

.is-real-home .home-cover__button:hover,
.is-real-home .home-cover__button:focus-visible {
	color: var(--blue-light);
}

.home-cover-menu {
	bottom: max(28px, calc(env(safe-area-inset-bottom, 0px) + 32px));
	left: 50%;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transform: translateX(-50%);
	transition: opacity var(--landing-motion-duration) ease;
	z-index: 3;
}

.home-cover.is-menu-visible .home-cover-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%);
}

.home-cover-menu__list {
	align-items: center;
	display: flex;
	gap: clamp(16px, 3vw, 42px);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.home-cover-menu__list > li {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity var(--landing-motion-duration) ease, transform var(--landing-motion-duration) var(--landing-motion-ease);
	transition-delay: 0s;
}

.home-cover.is-menu-visible .home-cover-menu__list > li {
	opacity: 1;
	transform: translateY(0);
	transition-delay: calc(var(--landing-menu-index, 0) * 240ms);
}

.home-cover-menu a {
	color: var(--surface-container);
	display: inline-flex;
	font-family: var(--font-title);
	font-size: 24px;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1;
	padding: 5px 0;
	position: relative;
	text-decoration: none;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
	transition: color var(--landing-motion-duration) ease;
	white-space: nowrap;
}

.home-cover-menu a::after {
	background: currentColor;
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--landing-motion-duration) var(--landing-motion-ease);
	width: 100%;
}

.home-cover-menu a:hover,
.home-cover-menu a:focus-visible {
	color: var(--blue-light);
}

.home-cover-menu a:hover::after,
.home-cover-menu a:focus-visible::after,
.home-cover-menu .current-menu-item > a::after {
	transform: scaleX(1);
}

.home-cover-menu__list > li.is-landing-highlighted > a {
	animation: landing-menu-auto-color var(--landing-motion-duration) ease both;
}

.home-cover-menu__list > li.is-landing-highlighted > a::after {
	animation: landing-menu-auto-underline var(--landing-motion-duration) var(--landing-motion-ease) both;
}

.is-real-home .site-loader__inner {
	animation: landing-loader-enter var(--loader-duration) var(--landing-motion-ease);
	transition: opacity var(--loader-duration) ease, transform var(--loader-duration) var(--landing-motion-ease);
}

html.is-loaded body.is-real-home .site-loader__inner {
	opacity: 0;
	transform: translateY(calc(-50vh + 72px));
}

html.is-loaded body.is-real-home .site-loader {
	transition: opacity var(--loader-duration) ease, visibility 0s linear var(--loader-duration);
}

.is-real-home .page-transition {
	transform: translateX(100%);
	transition: opacity var(--page-transition-duration) ease, transform var(--page-transition-duration) cubic-bezier(0.76, 0, 0.24, 1);
}

.is-real-home .page-transition.is-active {
	transform: translateX(0);
}

.is-real-home .page-transition p {
	transition: opacity var(--landing-motion-duration) ease, transform var(--landing-motion-duration) var(--landing-motion-ease);
}

@keyframes landing-loader-enter {
	from {
		opacity: 0;
		transform: translateX(56px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes landing-copy-enter-left {
	from {
		opacity: 0;
		transform: translateX(-48px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes landing-copy-enter-right {
	from {
		opacity: 0;
		transform: translateX(48px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes landing-copy-enter-right-button {
	from {
		opacity: 0;
		transform: translate(48px, -50%);
	}

	to {
		opacity: 1;
		transform: translateY(-50%);
	}
}

@keyframes landing-menu-auto-color {
	0%,
	100% {
		color: var(--surface-container);
	}

	42%,
	72% {
		color: var(--blue-light);
	}
}

@keyframes landing-menu-auto-underline {
	0% {
		transform: scaleX(0);
	}

	58%,
	72% {
		transform: scaleX(1);
	}

	100% {
		transform: scaleX(0);
	}
}

.hero::after {
	background: linear-gradient(90deg, color-mix(in srgb, var(--ink) 64%, transparent), color-mix(in srgb, var(--ink) 16%, transparent) 54%, color-mix(in srgb, var(--ink) 0%, transparent));
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.hero-media {
	inset: 0;
	position: absolute;
}

.hero-media img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.hero-content {
	color: var(--bone);
	max-width: 980px;
	position: relative;
	z-index: 2;
}

.hero-title {
	font-size: 66px;
	line-height: 0.86;
	margin: 16px 0 24px;
	text-shadow: 0 16px 54px rgba(0, 0, 0, 0.24);
}

.hero-title span {
	display: block;
}

.hero-summary {
	font-size: 18px;
	max-width: 620px;
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

.button {
	align-items: center;
	border: 1px solid currentColor;
	border-radius: 999px;
	display: inline-flex;
	font-size: 13px;
	font-weight: 800;
	min-height: 46px;
	padding: 0 22px;
	text-transform: uppercase;
	transition: background 360ms ease, color 360ms ease, transform 360ms ease;
}

.button:hover,
.button:focus-visible {
	transform: translateY(-2px);
}

.button--light {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--bone);
}

.button--ghost {
	background: color-mix(in srgb, var(--paper) 8%, transparent);
	color: var(--bone);
}

.section-kicker,
.project-meta {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 22px;
	font-weight: 600;
	line-height: 1;
	margin: 0 0 14px;
	text-transform: none;
}

.intro-band,
.project-section,
.page-shell,
.single-project {
	margin: 0 auto;
	max-width: var(--max);
	padding: 104px var(--site-pad);
}

.intro-grid {
	display: grid;
	gap: 28px;
	grid-template-columns: 0.62fr 1.38fr;
}

.intro-grid h2 {
	max-width: 920px;
}

.intro-grid p:last-child {
	color: var(--muted);
	font-size: 20px;
	margin-top: 26px;
	max-width: 720px;
}

.marquee-row {
	display: none !important;
}

.marquee-track {
	align-items: center;
	animation: gianna-marquee 56s linear infinite;
	display: flex;
	gap: 38px;
	white-space: nowrap;
	width: max-content;
}

.marquee-track span {
	font-family: var(--font-title);
	font-size: 54px;
	font-weight: 500;
	line-height: 1;
}

@keyframes gianna-marquee {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

.section-head {
	align-items: end;
	display: grid;
	gap: 24px;
	grid-template-columns: 0.45fr 1fr;
	margin-bottom: 56px;
}

.section-head h2 {
	max-width: 720px;
}

.project-list {
	display: grid;
	gap: 34px;
}

.project-row {
	align-items: center;
	border-top: 1px solid var(--line);
	display: grid;
	gap: 38px;
	grid-template-columns: 0.86fr 1.14fr;
	padding-top: 34px;
}

.project-row:nth-child(even) {
	grid-template-columns: 1.14fr 0.86fr;
}

.project-row:nth-child(even) .project-image {
	order: 2;
}

.project-image {
	background: var(--surface-container);
	border-radius: 6px;
	display: block;
	overflow: hidden;
}

.project-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 1000ms ease;
	width: 100%;
}

.project-image:hover img,
.project-image:focus-visible img {
	transform: scale(1.035);
}

.project-copy h2,
.project-copy h3 {
	font-size: 48px;
	margin-bottom: 18px;
	max-width: 640px;
}

.project-copy p:not(.project-meta) {
	color: var(--muted);
	max-width: 580px;
}

.text-link {
	color: var(--ink);
	display: inline-flex;
	font-family: var(--font-accent);
	font-size: 22px;
	font-weight: 600;
	line-height: 1;
	margin-top: 12px;
	position: relative;
	text-transform: none;
}

.text-link::after {
	background: var(--gold);
	bottom: -5px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	width: 100%;
}

.detail-story {
	background: var(--olive-deep);
	color: var(--bone);
	display: grid;
	gap: 54px;
	grid-template-columns: 1.08fr 0.92fr;
	padding: 110px var(--site-pad);
}

.detail-story .section-kicker {
	color: var(--mist);
}

.detail-image {
	border-radius: 6px;
	overflow: hidden;
}

.detail-image img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	width: 100%;
}

.detail-copy {
	align-self: center;
	max-width: 560px;
}

.detail-copy p:not(.section-kicker) {
	color: color-mix(in srgb, var(--mist) 80%, transparent);
	font-size: 19px;
	margin-top: 24px;
}

.metrics-band {
	background: var(--line);
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(4, 1fr);
	padding: 1px;
}

.metrics-band div {
	background: var(--paper);
	padding: 42px var(--site-pad);
}

.metrics-band strong {
	display: block;
	font-family: var(--font-title);
	font-size: 56px;
	font-weight: 500;
	line-height: 1;
}

.metrics-band span {
	color: var(--muted);
	display: block;
	font-family: var(--font-accent);
	font-size: 20px;
	font-weight: 600;
	line-height: 1;
	margin-top: 12px;
	text-transform: none;
}

.site-footer {
	background: var(--ink);
	color: var(--bone);
	padding: 76px var(--site-pad) 24px;
}

.footer-inner {
	align-items: stretch;
	display: flex;
	gap: 32px;
	justify-content: space-between;
	margin: 0 auto;
	max-width: var(--max);
}

.footer-intro {
	display: flex;
	flex: 1 1 620px;
	flex-direction: column;
}

.footer-cta {
	align-self: flex-start;
	display: inline-flex;
	margin-bottom: auto;
}

.footer-inner h2 {
	font-size: 56px;
	max-width: 720px;
}

.footer-inner p:not(.section-kicker) {
	color: color-mix(in srgb, var(--mist) 72%, transparent);
	margin: 14px 0 0;
	max-width: 600px;
}

.footer-contact {
	color: color-mix(in srgb, var(--mist) 78%, transparent);
	display: grid;
	gap: 8px;
	min-width: 220px;
}

.footer-contact p {
	margin: 0;
}

.footer-contact a {
	color: inherit;
	text-decoration: none;
}

.footer-contact a:hover,
.footer-contact a:focus-visible {
	color: var(--mist);
	text-decoration: underline;
}

.footer-contact span {
	color: var(--gold);
	display: block;
	font-family: var(--font-accent);
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 2px;
}

.footer-inner .section-kicker,
.footer-inner .text-link {
	color: var(--mist);
}

.footer-bar {
	align-items: center;
	border-top: 1px solid color-mix(in srgb, var(--mist) 16%, transparent);
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin: 58px auto 0;
	max-width: var(--max);
	padding-top: 22px;
}

.footer-bar p {
	color: color-mix(in srgb, var(--mist) 72%, transparent);
	font-size: 13px;
	margin: 0;
}

.footer-cookie-preferences a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.footer-cookie-preferences a:hover,
.footer-cookie-preferences a:focus-visible {
	color: var(--mist);
}

.footer-nav a {
	color: var(--bone);
}

.page-hero {
	padding: 70px 0 54px;
}

.page-hero h1,
.single-hero h1 {
	font-size: 64px;
	max-width: 980px;
}

.content-panel {
	background: var(--bone);
	border: 1px solid var(--line);
	border-radius: 6px;
	max-width: 850px;
	padding: 42px;
}

.content-panel > *:first-child {
	margin-top: 0;
}

.content-panel a {
	color: var(--clay);
	font-weight: 800;
}

.content-panel h2 {
	font-size: 36px;
	margin: 36px 0 14px;
}

.post-grid {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(3, 1fr);
}

.post-card {
	background: var(--bone);
	border: 1px solid var(--line);
	border-radius: 6px;
	overflow: hidden;
}

.post-card a {
	display: grid;
	gap: 12px;
	padding: 18px;
}

.post-card img {
	aspect-ratio: 4 / 3;
	border-radius: 4px;
	object-fit: cover;
	width: 100%;
}

.post-card h2 {
	font-size: 30px;
}

.post-card p:not(.project-meta) {
	color: var(--muted);
}

.single-hero {
	align-items: end;
	display: grid;
	gap: 32px;
	grid-template-columns: 1fr 320px;
	padding: 132px 0 54px;
}

.single-meta {
	border-top: 1px solid var(--line);
	display: grid;
	gap: 18px;
	padding-top: 18px;
}

.single-meta p {
	color: var(--muted);
	margin: 0;
}

.single-meta span {
	color: var(--ink);
	display: block;
	font-family: var(--font-accent);
	font-size: 19px;
	font-weight: 600;
	line-height: 1;
	text-transform: none;
}

.single-image {
	border-radius: 6px;
	margin: 0 0 58px;
	overflow: hidden;
}

.single-image img {
	max-height: 760px;
	object-fit: cover;
	width: 100%;
}

.single-content {
	margin: 0 auto;
}

.project-nav {
	align-items: center;
	border-top: 1px solid var(--line);
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr auto 1fr;
	margin-top: 64px;
	padding-top: 24px;
}

.project-nav div:last-child {
	text-align: right;
}

.gv-layout-kit {
	background: var(--paper);
	color: var(--ink);
	overflow: hidden;
}

.gv-container {
	margin: 0 auto;
	max-width: var(--max);
	padding: 0 var(--site-pad);
	width: 100%;
}

.gv-kicker {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 23px;
	font-weight: 600;
	line-height: 1;
	margin: 0 0 16px;
}

.gv-button,
.gv-text-link {
	align-items: center;
	display: inline-flex;
	font-family: var(--font-title);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}

.gv-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 28px;
}

.gv-story-row__copy .gv-actions,
.gv-landscape-card__panel .gv-actions {
	justify-content: flex-start;
}

.gv-button {
	background: var(--ink);
	border: 1px solid var(--ink);
	border-radius: 4px;
	color: var(--bone);
	min-height: 48px;
	padding: 0 24px;
	transition: background 360ms ease, color 360ms ease, transform 360ms ease;
}

.gv-button:hover,
.gv-button:focus-visible {
	background: transparent;
	color: var(--ink);
	transform: translateY(-2px);
}

.elementor-widget-gianna_final_cta .gv-final-cta .gv-button:hover,
.elementor-widget-gianna_final_cta .gv-final-cta .gv-button:focus-visible {
	background: var(--gv-final-cta-button-hover-background, transparent) !important;
	border-color: var(--gv-final-cta-button-hover-background, var(--ink)) !important;
	color: var(--gv-final-cta-button-hover-color, var(--ink)) !important;
}

.gv-button--ghost {
	background: transparent;
	color: var(--ink);
}

.gv-button--ghost:hover,
.gv-button--ghost:focus-visible {
	background: var(--ink);
	color: var(--bone);
}

.gv-text-link {
	color: var(--ink);
	margin-top: 18px;
	position: relative;
}

.gv-text-link::after {
	background: var(--gold);
	bottom: -5px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	width: 100%;
}

body.elementor-page .elementor-section.elementor-section-full_width > .elementor-container {
	max-width: none;
}

body.elementor-page .elementor-column-gap-no > .elementor-column > .elementor-element-populated {
	padding: 0;
}

body.elementor-page .elementor-widget[class*="elementor-widget-gianna_"] {
	margin-bottom: 0;
}

body.elementor-page .elementor-widget[class*="elementor-widget-gianna_"] > .elementor-widget-container {
	margin: 0;
	padding: 0;
}

.gv-kit-hero {
	align-items: center;
	background: linear-gradient(color-mix(in srgb, var(--ink) 42%, transparent), color-mix(in srgb, var(--ink) 50%, transparent)), var(--gv-bg);
	background-position: center;
	background-size: cover;
	color: var(--bone);
	display: grid;
	min-height: 82svh;
	padding: 150px var(--site-pad) 80px;
	text-align: center;
}

.gv-kit-hero__inner {
	margin: 0 auto;
	max-width: 1040px;
}

.gv-kit-hero h1 {
	color: var(--gold);
	font-size: 62px;
	line-height: 0.95;
	text-transform: uppercase;
}

.gv-kit-hero p:not(.gv-kicker) {
	font-size: 20px;
	margin: 24px auto 30px;
	max-width: 720px;
}

.gv-kit-hero .gv-button {
	background: var(--bone);
	border-color: var(--bone);
	color: var(--ink);
}

.gv-kit-hero .gv-button--ghost {
	background: color-mix(in srgb, var(--paper) 8%, transparent);
	color: var(--bone);
}

.gv-kit-hero .gv-button:hover,
.gv-kit-hero .gv-button:focus-visible,
.gv-kit-hero .gv-button--ghost:hover,
.gv-kit-hero .gv-button--ghost:focus-visible {
	background: transparent;
	color: var(--bone);
}

.gv-site-hero {
	isolation: isolate;
	min-height: 88svh;
	overflow: visible;
	position: relative;
	z-index: 1;
}

.gv-site-hero::before,
.place-detail__hero.has-image::before {
	background: color-mix(in srgb, var(--ink) 14%, transparent);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

.place-detail__hero.has-image {
	z-index: 1;
}

.gv-site-hero::after,
.place-detail__hero.has-image::after {
	aspect-ratio: 2048 / 291;
	background-color: var(--paper);
	border: 0;
	bottom: 0;
	box-shadow: none;
	content: "";
	height: auto;
	left: 0;
	margin-bottom: -4px;
	-webkit-mask: url("assets/images/dividers/circeo-silhouette-upscaled-paper-fixed.png") left bottom / contain no-repeat;
	mask: url("assets/images/dividers/circeo-silhouette-upscaled-paper-fixed.png") left bottom / contain no-repeat;
	outline: 0;
	pointer-events: none;
	position: absolute;
	width: 60vw;
	z-index: 1;
}

@media (max-width: 1024px) {
	.gv-site-hero::after,
	.place-detail__hero.has-image::after {
		bottom: 0;
		width: 70vw;
	}
}

@media (max-width: 760px) {
	.gv-site-hero::after,
	.place-detail__hero.has-image::after {
		width: 80vw;
	}
}

.gv-site-hero .gv-kit-hero__inner {
	position: relative;
	z-index: 2;
}

.gv-section {
	padding: 100px 0;
}

.gv-section--paper {
	background: var(--paper);
}

.gv-section--surface {
	background: var(--surface-container);
}

.gv-section,
.gv-story-row,
.gv-landscape-card,
.gv-dark-band,
.gv-final-cta,
.gv-ornament-divider {
	overflow: hidden;
	position: relative;
}

.gv-section > .gv-container,
.gv-story-row > *,
.gv-landscape-card__panel > *:not(.gv-panel-graphic),
.gv-dark-band__inner,
.gv-final-cta > div {
	position: relative;
	z-index: 1;
}

.gv-section-graphic,
.gv-text-graphic,
.gv-panel-graphic,
.gv-dark-graphic,
.gv-final-graphic {
	pointer-events: none;
	position: absolute;
	user-select: none;
	z-index: 0;
}

.gv-section-graphic {
	bottom: clamp(20px, 5vw, 82px);
	opacity: 0.15;
	right: max(var(--site-pad), calc((100vw - var(--max)) / 2));
	width: clamp(240px, 34vw, 540px);
}

.gv-section-graphic.gv-graphic--vigneto,
.gv-section-graphic.gv-graphic--circeo,
.gv-section-graphic.gv-graphic--mare,
.gv-section-graphic.gv-graphic--tempio {
	bottom: -18px;
	opacity: 0.19;
	width: clamp(520px, 66vw, 1060px);
}

.gv-section-graphic.gv-graphic--cactus,
.gv-section-graphic.gv-graphic--grappolo,
.gv-section-graphic.gv-graphic--circe {
	bottom: auto;
	top: clamp(34px, 7vw, 96px);
}

.gv-text-graphic {
	opacity: 0.18;
	right: clamp(-76px, -5vw, -22px);
	top: clamp(-70px, -6vw, -32px);
	width: clamp(180px, 25vw, 360px);
}

.gv-text-graphic.gv-graphic--circeo,
.gv-text-graphic.gv-graphic--mare,
.gv-text-graphic.gv-graphic--tempio,
.gv-text-graphic.gv-graphic--vigneto {
	right: clamp(-130px, -9vw, -54px);
	top: clamp(-60px, -4vw, -18px);
	width: clamp(320px, 40vw, 620px);
}

.gv-story-row--reverse .gv-text-graphic {
	left: clamp(-76px, -5vw, -22px);
	right: auto;
}

.gv-static-image-frame {
	border-radius: inherit;
	display: block;
	isolation: isolate;
	position: relative;
}

.gv-static-image-frame > img {
	border-radius: inherit;
	position: relative;
	z-index: 1;
}

.gv-has-static-image-mark {
	isolation: isolate;
	overflow: visible !important;
}

.gv-has-static-image-mark > img {
	position: relative;
	z-index: 1;
}

.gv-story-row__image.gv-has-static-image-mark > img {
	position: absolute;
}

.gv-static-image-mark {
	--gv-image-mark-color: var(--clay);
	background-color: var(--gv-image-mark-color);
	display: block;
	height: 160%;
	left: 20%;
	opacity: 0.1;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 132%;
	z-index: 0;
	-webkit-mask: url("assets/images/graphics/logo-profilo-blu-crop.png") center / contain no-repeat;
	mask: url("assets/images/graphics/logo-profilo-blu-crop.png") center / contain no-repeat;
}

.gv-static-image-mark--onda {
	height: 125%;
	left: 80%;
	opacity: 0.08;
	width: 150%;
	-webkit-mask-image: url("assets/images/graphics/logo-onda-destra-blu-crop.png");
	mask-image: url("assets/images/graphics/logo-onda-destra-blu-crop.png");
}

.gv-static-image-mark--olive {
	--gv-image-mark-color: var(--olive);
}

.gv-static-image-mark--gold {
	--gv-image-mark-color: var(--gold);
}

.gv-static-image-mark--clay {
	--gv-image-mark-color: var(--clay);
}

.gv-panel-graphic {
	bottom: -70px;
	opacity: 0.17;
	right: -84px;
	width: clamp(210px, 28vw, 390px);
}

.gv-dark-graphic {
	bottom: -82px;
	left: 50%;
	opacity: 0.1;
	transform: translateX(-50%);
	width: clamp(360px, 52vw, 820px);
}

.gv-final-graphic {
	left: 50%;
	opacity: 0.14;
	top: 50%;
	transform: translate(-50%, -50%);
	width: clamp(320px, 48vw, 760px);
}

.gv-ornament-divider {
	align-items: center;
	background: linear-gradient(90deg, var(--paper), var(--surface-container));
	border-bottom: 1px solid color-mix(in srgb, var(--ink) 6%, transparent);
	border-top: 1px solid color-mix(in srgb, var(--ink) 6%, transparent);
	display: flex;
	height: clamp(92px, 13vw, 166px);
	justify-content: center;
}

.gv-ornament-divider img {
	max-height: 190px;
	object-fit: contain;
	opacity: 0.3;
	width: min(1040px, 84vw);
}

.gv-ornament-divider--grappolo img,
.gv-ornament-divider--cactus img,
.gv-ornament-divider--circe img {
	max-height: 150px;
	width: min(260px, 46vw);
}

.gv-section-head {
	display: grid;
	gap: 24px;
	grid-template-columns: 0.4fr 1fr;
	margin-bottom: 52px;
}

.gv-section-head h2 {
	font-size: 46px;
	max-width: 860px;
}

.gv-section--timeline {
	margin-top: 0;
	overflow: visible;
	padding-top: 110px;
	position: relative;
	scroll-margin-top: 120px;
	z-index: 3;
}

.gv-section--timeline .gv-timeline__graphic-sticky {
	height: 1px;
	position: sticky;
	top: calc(50svh + 58px);
	z-index: 0;
}

.gv-section--timeline .gv-timeline__graphic-sticky .gv-section-graphic {
	bottom: auto;
	position: absolute;
	top: 0;
	transform: translateY(-50%);
}

@media (max-width: 900px) {
	.gv-section--timeline .gv-timeline__graphic-sticky {
		top: calc(50svh + 48px);
	}
}

.gv-section--timeline > .gv-container {
	position: relative;
	z-index: 1;
}

.gv-section-head--timeline {
	margin: 0 auto 76px;
	max-width: 760px;
	text-align: center;
}

.gv-section-head--timeline .gv-kicker {
	margin-bottom: 10px;
}

.gv-pattern-grid {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(4, 1fr);
}

.gv-pattern-grid article {
	background: var(--bone);
	min-height: 280px;
	padding: 30px;
}

.gv-pattern-grid span,
.gv-watermark {
	color: var(--gold);
	font-family: var(--font-title);
	font-weight: 600;
}

.gv-pattern-grid span {
	display: block;
	font-size: 42px;
	line-height: 1;
	margin-bottom: 34px;
}

.gv-pattern-grid h3 {
	font-size: 28px;
	margin-bottom: 16px;
}

.gv-pattern-grid p,
.gv-story-row p,
.gv-landscape-card p,
.gv-dark-band p,
.gv-collection-card p,
.gv-final-cta p {
	color: var(--muted);
}

.gv-story-row {
	align-items: center;
	display: grid;
	gap: 64px;
	grid-template-columns: 1fr 1fr;
	margin: 0 auto;
	max-width: var(--max);
	overflow: visible;
	padding: 95px var(--site-pad);
	position: relative;
}

.elementor-section:has(.elementor-widget-gianna_story_row),
.elementor-section:has(.elementor-widget-gianna_story_row) > .elementor-container,
.elementor-column:has(.elementor-widget-gianna_story_row),
.elementor-column:has(.elementor-widget-gianna_story_row) > .elementor-widget-wrap,
.elementor-widget-gianna_story_row,
.elementor-widget-gianna_story_row > .elementor-widget-container {
	overflow: visible !important;
}

.gv-story-row--reverse .gv-story-row__image {
	order: 2;
}

.gv-story-row__image {
	aspect-ratio: 4 / 3;
	border-radius: 4px;
	box-sizing: content-box;
	overflow: visible;
	padding-bottom: 100px;
	position: relative;
	transform: translateY(-40px) scale(1.08);
	transform-origin: center;
	z-index: 2;
}

.gv-story-row__image > img:not(.gv-story-row__web-mark) {
	border-radius: inherit;
	height: 100% !important;
	inset: 0;
	max-height: none;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: 2;
}

.gv-story-row__image .gv-story-row__web-mark {
	bottom: auto;
	height: 100% !important;
	inset: auto;
	max-height: none;
	max-width: none;
	object-fit: contain;
	opacity: 0.26;
	pointer-events: none;
	position: absolute;
	top: 50%;
	width: auto;
	z-index: 1;
}

.gv-story-row__image .gv-story-row__web-mark--left {
	height: 118.5% !important;
	left: 0;
	transform: translate(-70%, -50%);
}

.gv-story-row__image .gv-story-row__web-mark--right {
	height: 112.5% !important;
	right: 0;
	transform: translate(70%, -50%);
}

.gv-story-row__copy {
	isolation: isolate;
	position: relative;
}

.gv-watermark {
	color: var(--gold) !important;
	font-size: 140px;
	left: -22px;
	line-height: 1;
	opacity: 0.18 !important;
	position: absolute;
	top: -54px;
	z-index: 0;
}

.gv-story-row__copy > *:not(.gv-watermark):not(.gv-text-graphic) {
	position: relative;
	z-index: 1;
}

.gv-story-row h2 {
	font-size: 48px;
	margin-bottom: 22px;
}

.gv-story-row p:not(.gv-kicker) {
	font-size: 18px;
	max-width: 560px;
}

.gv-landscape-card {
	align-items: center;
	background: linear-gradient(color-mix(in srgb, var(--ink) 12%, transparent), color-mix(in srgb, var(--ink) 16%, transparent)), var(--gv-bg);
	background-position: center;
	background-size: cover;
	display: grid;
	min-height: 760px;
	padding: 100px var(--site-pad);
}

.gv-landscape-card__panel {
	background: color-mix(in srgb, var(--paper) 93%, transparent);
	backdrop-filter: blur(8px);
	isolation: isolate;
	margin-left: auto;
	max-width: 520px;
	overflow: hidden;
	padding: 42px;
	position: relative;
}

.gv-landscape-card h2 {
	font-size: 46px;
	margin-bottom: 22px;
}

.gv-dark-band {
	background: var(--olive-deep);
	color: var(--mist);
	overflow: hidden;
	padding: 120px 0;
	position: relative;
}

.gv-dark-band__watermark {
	color: color-mix(in srgb, var(--gold) 12%, transparent) !important;
	font-family: var(--font-title);
	font-size: 168px;
	font-weight: 700;
	left: 50%;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%) rotate(-4deg);
	white-space: nowrap;
}

.gv-dark-band__inner {
	position: relative;
	text-align: center;
	z-index: 1;
}

.gv-dark-band h2 {
	font-size: 52px;
	margin: 0 auto 24px;
	max-width: 880px;
}

.gv-dark-band p:not(.gv-kicker) {
	color: color-mix(in srgb, var(--mist) 78%, transparent);
	margin: 0 auto;
	max-width: 620px;
}

.gv-collection-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, 1fr);
}

/* La Cantina: mappa, luoghi, numeri, vinificazione e accoglienza. */
.gv-cellar-map {
	background: var(--surface-container);
	overflow: hidden;
	padding-top: clamp(82px, 9vw, 132px);
}

.gv-cellar-map__head {
	display: grid;
	gap: clamp(34px, 5vw, 76px);
	grid-template-columns: minmax(170px, .38fr) minmax(0, 1fr);
	margin-bottom: clamp(46px, 6vw, 82px);
}

.gv-cellar-map__head h2 {
	font-size: clamp(44px, 5.2vw, 76px);
	letter-spacing: -.045em;
	line-height: .98;
	max-width: 820px;
}

.gv-cellar-map__head > div > p {
	color: var(--muted);
	font-size: 18px;
	line-height: 1.65;
	margin-top: 24px;
	max-width: 680px;
}

.gv-cellar-map__image {
	aspect-ratio: 16 / 7;
	background: var(--surface-container);
	margin: 0;
	overflow: hidden;
	width: 100%;
}

.gv-cellar-map__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.gv-cellar-places,
.gv-vinification,
.gv-cellar-identity,
.gv-cellar-hospitality {
	overflow: hidden;
	position: relative;
}

.gv-cellar-places,
.gv-vinification {
	padding: clamp(86px, 9vw, 132px) 0;
}

body.page-id-762 .gv-kicker {
	color: var(--wp--preset--color--blu-pontino, #2b6485);
}

/* La Cantina usa esclusivamente la palette globale di WordPress. */
body.page-id-762 {
	--paper: var(--wp--preset--color--luce-paper, #FDFBF6);
	--bone: var(--wp--preset--color--bianco-caldo, #ffffff);
	--ink: var(--wp--preset--color--inchiostro, #322214);
	--muted: var(--wp--preset--color--testo-tenue, #4e453e);
	--line: var(--wp--preset--color--linea-sabbia, #d2c4bb);
	--olive: var(--wp--preset--color--verde-radici, #467743);
	--olive-deep: var(--wp--preset--color--verde-profondo, #002d02);
	--clay: var(--wp--preset--color--blu-pontino, #2b6485);
	--mist: var(--wp--preset--color--nebbia, #f4f0e8);
	--gold: var(--wp--preset--color--oro-luce, #c6a573);
	--surface-dim: var(--wp--preset--color--superficie-ombra, #F3F0E9);
	--surface-container: var(--wp--preset--color--superficie-crema, #FAF6ED);
}

body.page-id-762 .gv-cantina-origin-section,
body.page-id-762 .gv-cantina-origin-section .gv-story-row,
body.page-id-762 .gv-story-row--reverse {
	background: var(--surface-dim);
}

body.page-id-762 .gv-story-row--reverse {
	box-shadow: 0 0 0 100vmax var(--surface-dim);
	clip-path: inset(0 -100vmax);
}

.gv-cellar-places {
	background: var(--surface-container);
}

.gv-cellar-section-head {
	display: grid;
	gap: 36px;
	grid-template-columns: minmax(170px, 0.38fr) minmax(0, 1fr);
	margin-bottom: clamp(48px, 6vw, 82px);
}

.gv-cellar-section-head h2,
.gv-cellar-identity h2,
.gv-cellar-hospitality h2 {
	font-size: clamp(40px, 4.3vw, 64px);
	line-height: 1.04;
	margin-bottom: 22px;
}

.gv-cellar-section-head > div > p,
.gv-cellar-identity header > p:not(.gv-kicker),
.gv-cellar-hospitality__panel > p:not(.gv-kicker) {
	color: var(--muted);
	font-size: 18px;
	max-width: 680px;
}

.gv-cellar-places__grid {
	display: grid;
	gap: clamp(18px, 2.2vw, 32px);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gv-cellar-place {
	background: var(--bone);
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.gv-cellar-place figure {
	aspect-ratio: 4 / 3;
	margin: 0;
	overflow: hidden;
}

.gv-cellar-place figure img {
	height: 100%;
	object-fit: cover;
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
	width: 100%;
}

.gv-cellar-place:hover figure img {
	transform: scale(1.035);
}

.gv-cellar-place__copy {
	flex: 1;
	isolation: isolate;
	min-height: 340px;
	padding: clamp(28px, 3vw, 42px);
	position: relative;
}

.gv-cellar-place__number {
	color: color-mix(in srgb, var(--gold) 18%, transparent);
	font-family: var(--font-title);
	font-size: 96px;
	font-weight: 700;
	line-height: 1;
	position: absolute;
	right: 22px;
	top: 18px;
	z-index: -1;
}

.gv-cellar-place h3 {
	font-size: clamp(27px, 2.3vw, 36px);
	line-height: 1.08;
	margin: 16px 0 18px;
}

.gv-cellar-place__copy > p:not(.gv-kicker) {
	color: var(--muted);
}

.gv-cellar-place address {
	border-top: 1px solid var(--line);
	color: var(--ink);
	font-size: 14px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.02em;
	margin-top: 28px;
	padding-top: 18px;
}

.gv-cellar-identity {
	background: var(--olive-deep);
	color: var(--mist);
	padding: clamp(86px, 9vw, 132px) 0;
}

.gv-cellar-identity__top {
	align-items: stretch;
	display: grid;
	gap: clamp(44px, 6vw, 88px);
	grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
}

.gv-cellar-identity__media img {
	aspect-ratio: 4 / 3;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.gv-cellar-identity__content {
	margin: 0 auto;
	max-width: var(--max);
	padding: 0 var(--site-pad);
}

.gv-cellar-identity header {
	align-self: center;
	max-width: 760px;
}

.gv-cellar-identity header > p:not(.gv-kicker) {
	color: color-mix(in srgb, var(--mist) 72%, transparent);
}

.gv-cellar-facts {
	border-bottom: 1px solid color-mix(in srgb, var(--mist) 20%, transparent);
	border-top: 1px solid color-mix(in srgb, var(--mist) 20%, transparent);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: clamp(56px, 7vw, 92px) 0 52px;
}

.gv-cellar-facts > div {
	padding: 30px 18px 30px 0;
}

.gv-cellar-facts > div + div {
	border-left: 1px solid color-mix(in srgb, var(--mist) 20%, transparent);
	padding-left: 18px;
}

.gv-cellar-facts strong {
	color: var(--gold);
	display: block;
	font-family: var(--font-title);
	font-size: clamp(42px, 4vw, 64px);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1;
}

.gv-cellar-facts small {
	font-size: 0.32em;
	letter-spacing: 0;
	margin-left: 5px;
}

.gv-cellar-facts span {
	color: color-mix(in srgb, var(--mist) 68%, transparent);
	display: block;
	font-size: 13px;
	line-height: 1.35;
	margin-top: 12px;
}

.gv-cellar-varieties {
	display: grid;
	gap: 42px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gv-cellar-varieties h3 {
	color: var(--gold);
	font-size: 20px;
	margin-bottom: 20px;
}

.gv-cellar-varieties ul,
.gv-cellar-hospitality ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gv-cellar-varieties li {
	border-top: 1px solid color-mix(in srgb, var(--mist) 16%, transparent);
	color: color-mix(in srgb, var(--mist) 86%, transparent);
	padding: 10px 0;
}

.gv-vinification {
	background: var(--paper);
}

.gv-vinification__layout {
	align-items: start;
	display: grid;
	gap: clamp(44px, 6vw, 92px);
	grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
}

.gv-vinification__layout > figure {
	margin: 0;
	position: sticky;
	top: 130px;
}

.gv-vinification__layout > figure img {
	aspect-ratio: 4 / 5;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.gv-vinification__steps article {
	border-top: 1px solid var(--line);
	display: grid;
	gap: 24px;
	grid-template-columns: 58px minmax(0, 1fr);
	padding: 28px 0 34px;
}

.gv-vinification__steps article:last-child {
	border-bottom: 1px solid var(--line);
}

.gv-vinification__steps article > span {
	color: var(--gold);
	font-family: var(--font-title);
	font-size: 24px;
	font-weight: 600;
}

.gv-vinification__steps h3 {
	font-size: clamp(27px, 2.5vw, 38px);
	margin-bottom: 12px;
}

.gv-vinification__steps p {
	color: var(--muted);
	margin: 0;
}

.gv-cellar-hospitality {
	background: var(--olive);
	display: grid;
	grid-template-columns: 1fr;
	min-height: 760px;
}

.gv-cellar-hospitality__image {
	background-image: linear-gradient(color-mix(in srgb, var(--ink) 8%, transparent), color-mix(in srgb, var(--ink) 12%, transparent)), var(--gv-bg);
	background-position: center;
	background-size: cover;
	grid-area: 1 / 1;
	min-height: 760px;
	width: 100%;
}

.gv-cellar-hospitality__panel {
	align-self: center;
	background: var(--paper);
	grid-area: 1 / 1;
	justify-self: end;
	margin: clamp(30px, 5vw, 74px);
	max-width: 720px;
	padding: clamp(42px, 5vw, 76px);
	position: relative;
	width: calc(100% - (2 * var(--site-pad)));
}

.gv-cellar-hospitality__panel > p:not(.gv-kicker) {
	margin-bottom: 34px;
}

.gv-cellar-hospitality ul {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.gv-cellar-hospitality li {
	border: 1px solid var(--line);
	border-radius: 999px;
	color: var(--ink);
	font-size: 13px;
	padding: 8px 13px;
}

.gv-cellar-hospitality .gv-actions {
	margin-top: 38px;
}

body.page-id-762 .gv-cellar-varieties {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.page-id-762 .gv-techniques-section .gv-vinification {
	background: var(--surface-dim);
}

.gv-cellar-gallery {
	background: var(--surface-container);
	overflow: hidden;
	padding: clamp(86px, 9vw, 132px) 0;
}

.gv-cellar-gallery__head {
	display: grid;
	gap: 36px;
	grid-template-columns: minmax(170px, 0.38fr) minmax(0, 1fr);
	margin-bottom: clamp(48px, 6vw, 82px);
}

.gv-cellar-gallery__head h2 {
	font-size: clamp(40px, 4.3vw, 64px);
	line-height: 1.04;
	margin-bottom: 22px;
}

.gv-cellar-gallery__head > div > p {
	color: var(--muted);
	font-size: 18px;
	max-width: 680px;
}

.gv-cellar-gallery__grid {
	display: grid;
	gap: clamp(10px, 1.2vw, 18px);
	grid-template-columns: repeat(12, minmax(0, 1fr));
	padding: 0 max(var(--site-pad), calc((100vw - var(--max)) / 2));
}

.gv-cellar-gallery__grid > figure {
	grid-column: span 4;
	margin: 0;
	overflow: hidden;
	position: relative;
}

.gv-cellar-gallery__grid > figure:nth-child(1),
.gv-cellar-gallery__grid > figure:nth-child(6),
.gv-cellar-gallery__grid > figure:nth-child(10) {
	grid-column: span 8;
}

.gv-cellar-gallery__grid > figure img {
	aspect-ratio: 4 / 3;
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform 750ms cubic-bezier(0.22, 1, 0.36, 1);
	width: 100%;
}

.gv-cellar-gallery__grid > figure:nth-child(1) img,
.gv-cellar-gallery__grid > figure:nth-child(6) img,
.gv-cellar-gallery__grid > figure:nth-child(10) img {
	aspect-ratio: 16 / 9;
}

.gv-cellar-gallery__grid > figure:hover img {
	transform: scale(1.025);
}

.gv-cellar-gallery__grid > figure::after {
	background: linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--olive-deep) 72%, transparent));
	content: '';
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.gv-cellar-gallery__grid > figure figcaption {
	bottom: 0;
	color: var(--bone);
	font-size: 13px;
	font-weight: 600;
	left: 0;
	letter-spacing: 0.02em;
	padding: 24px;
	position: absolute;
	z-index: 1;
}

@media (max-width: 1080px) {
	.gv-cellar-identity__top {
		gap: 48px;
		grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
	}

	.gv-cellar-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gv-cellar-facts > div:nth-child(3) {
		border-left: 0;
	}

	.gv-cellar-facts > div:nth-child(n + 3) {
		border-top: 1px solid color-mix(in srgb, var(--mist) 20%, transparent);
	}
}

@media (max-width: 900px) {
	.gv-cellar-map__head,
	.gv-cellar-section-head,
	.gv-cellar-gallery__head,
	.gv-cellar-identity__top,
	.gv-vinification__layout,
	.gv-cellar-hospitality {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.gv-cellar-places__grid {
		grid-template-columns: 1fr;
	}

	.gv-cellar-place {
		display: grid;
		grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr);
	}

	.gv-cellar-place__copy {
		min-height: 0;
	}

	.gv-cellar-identity__media {
		max-height: none;
	}

	.gv-cellar-identity__media img {
		aspect-ratio: 16 / 10;
	}

	.gv-vinification__layout > figure {
		position: static;
	}

	.gv-vinification__layout > figure img {
		aspect-ratio: 16 / 9;
	}

	.gv-cellar-hospitality__panel {
		grid-area: auto;
		justify-self: stretch;
		margin: 0;
		max-width: none;
		width: 100%;
	}

	.gv-cellar-hospitality__image {
		grid-area: auto;
		min-height: 560px;
	}

	body.page-id-762 .gv-cellar-varieties {
		grid-template-columns: 1fr;
	}

	.gv-cellar-gallery__grid > figure,
	.gv-cellar-gallery__grid > figure:nth-child(1),
	.gv-cellar-gallery__grid > figure:nth-child(6),
	.gv-cellar-gallery__grid > figure:nth-child(10) {
		grid-column: span 6;
	}

	.gv-cellar-gallery__grid > figure img,
	.gv-cellar-gallery__grid > figure:nth-child(1) img,
	.gv-cellar-gallery__grid > figure:nth-child(6) img,
	.gv-cellar-gallery__grid > figure:nth-child(10) img {
		aspect-ratio: 4 / 3;
	}
}

@media (max-width: 640px) {
	.gv-cellar-map { padding-top: 72px; }
	.gv-cellar-map__head { gap: 20px; margin-bottom: 42px; }
	.gv-cellar-map__head h2 { font-size: 40px; }
	.gv-cellar-map__head > div > p { font-size: 16px; margin-top: 18px; }
	.gv-cellar-map__image { aspect-ratio: 4 / 3; }

	.gv-cellar-places,
	.gv-vinification,
	.gv-cellar-gallery {
		padding: 74px 0;
	}

	.gv-cellar-section-head {
		gap: 18px;
	}

	.gv-cellar-section-head h2,
	.gv-cellar-gallery__head h2,
	.gv-cellar-identity h2,
	.gv-cellar-hospitality h2 {
		font-size: 34px;
	}

	.gv-cellar-section-head > div > p,
	.gv-cellar-gallery__head > div > p,
	.gv-cellar-identity header > p:not(.gv-kicker),
	.gv-cellar-hospitality__panel > p:not(.gv-kicker) {
		font-size: 16px;
	}

	.gv-cellar-place {
		display: flex;
	}

	.gv-cellar-place__copy {
		padding: 28px 24px 34px;
	}

	.gv-cellar-identity__content {
		padding: 0 var(--site-pad);
	}

	.gv-cellar-facts {
		grid-template-columns: 1fr 1fr;
		margin: 38px 0;
	}

	.gv-cellar-facts strong {
		font-size: 42px;
	}

	.gv-cellar-varieties {
		grid-template-columns: 1fr;
	}

	.gv-vinification__steps article {
		gap: 12px;
		grid-template-columns: 42px minmax(0, 1fr);
	}

	.gv-cellar-hospitality__image {
		min-height: 420px;
	}

	.gv-cellar-hospitality__panel {
		margin: 0;
		padding: 34px 24px;
		width: 100%;
	}

	.gv-cellar-hospitality li {
		font-size: 12px;
	}

	.gv-cellar-gallery__head {
		gap: 18px;
	}

	.gv-cellar-gallery__grid > figure,
	.gv-cellar-gallery__grid > figure:nth-child(1),
	.gv-cellar-gallery__grid > figure:nth-child(6),
	.gv-cellar-gallery__grid > figure:nth-child(10) {
		grid-column: 1 / -1;
	}
}

.gv-territory-collection {
	overflow: hidden;
}

.gv-territory-collection__layout {
	position: relative;
}

.gv-territory-collection__side-mark {
	height: auto;
	max-height: 72%;
	object-fit: contain;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: max(0px, calc((100vw - 100%) / 2));
	z-index: 0;
}

.gv-territory-collection__side-mark--left {
	object-position: right center;
	right: 100%;
}

.gv-territory-collection__side-mark--right {
	left: 100%;
	object-position: left center;
}

.gv-collection-grid--territory-feature {
	position: relative;
	z-index: 1;
}

.gv-collection-card {
	background: var(--bone);
	display: grid;
	gap: 28px;
	min-height: 620px;
	padding: 24px;
}

.gv-collection-card--blue {
	background: rgba(163, 216, 254, 0.28);
}

.gv-collection-card--green {
	background: rgba(188, 240, 174, 0.24);
}

.gv-collection-card img {
	aspect-ratio: 3 / 4;
	object-fit: cover;
	width: 100%;
}

.gv-collection-card h3 {
	font-size: 34px;
	margin-bottom: 12px;
}

.gv-wine-showcase {
	--wine-card-height: min(58vw, 610px);
	--wine-card-width: min(56vw, 780px);
	background: var(--surface-container);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100svh;
	isolation: isolate;
	min-height: 0;
	overflow: hidden;
	padding: 104px 0 72px;
	position: relative;
}

.gv-wine-showcase__scroll-stage {
	--wine-scroll-distance: 3000px;
	height: calc(100svh + var(--wine-scroll-distance));
	position: relative;
}

.gv-wine-showcase__scroll-stage > .gv-wine-showcase {
	--wine-card-height: min(58vw, 54svh, 610px);
	height: 100svh;
	min-height: 0;
	position: sticky;
	top: 0;
}

.gv-wine-showcase__scroll-stage .gv-wine-showcase__track {
	transition-duration: 700ms;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

.gv-wine-showcase:focus-visible {
	outline: 2px solid var(--clay);
	outline-offset: -8px;
}

.gv-wine-showcase__masthead {
	align-items: end;
	display: grid;
	flex: 0 0 auto;
	gap: 48px;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 0.45fr);
	position: relative;
	z-index: 5;
}

.gv-wine-showcase__masthead h2 {
	font-size: clamp(48px, 5vw, 76px);
}

.gv-wine-showcase__masthead > p {
	color: var(--muted);
	font-size: 17px;
	margin: 0 0 8px;
	max-width: 440px;
}

.gv-wine-showcase__watermark {
	color: color-mix(in srgb, var(--ink) 3.5%, transparent);
	font-family: var(--font-title);
	font-size: clamp(140px, 18vw, 280px);
	font-weight: 700;
	left: -1vw;
	letter-spacing: -0.07em;
	line-height: 0.72;
	pointer-events: none;
	position: absolute;
	top: 22%;
	white-space: nowrap;
	z-index: 0;
}

.gv-wine-showcase__viewport {
	cursor: grab;
	flex: 1 1 auto;
	height: auto;
	margin-top: 36px;
	min-height: 0;
	overflow: visible;
	position: relative;
	touch-action: pan-y;
	user-select: none;
	z-index: 2;
}

.gv-wine-showcase__viewport.is-dragging {
	cursor: grabbing;
}

.gv-wine-showcase__track {
	align-items: center;
	display: flex;
	gap: clamp(110px, 17vw, 300px);
	height: 100%;
	transform: translate3d(0, 0, 0);
	transition: transform 1700ms cubic-bezier(0.22, 1, 0.36, 1);
	width: max-content;
	will-change: transform;
}

.gv-wine-showcase__viewport.is-dragging .gv-wine-showcase__track {
	transition: none;
}

.gv-wine-slide {
	--wine-panel: #e5d6bf;
	background: var(--wine-panel);
	box-shadow: 0 32px 70px color-mix(in srgb, var(--ink) 9%, transparent);
	flex: 0 0 var(--wine-card-width);
	height: var(--wine-card-height);
	overflow: visible;
	position: relative;
	transform: scale(0.84);
	transition: opacity 1200ms ease, transform 1700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.gv-wine-slide__open {
	inset: 0;
	position: absolute;
	z-index: 30;
}

.gv-wine-slide:not(.is-active) {
	opacity: 0.42;
}

.gv-wine-slide.is-active {
	opacity: 1;
	transform: scale(1);
}

.gv-wine-slide--sand {
	--wine-panel: #dfcfb5;
}

.gv-wine-slide--sky {
	--wine-panel: #abcddd;
}

.gv-wine-slide--sage {
	--wine-panel: #b7c2a6;
}

.gv-wine-slide--rose {
	--wine-panel: #cda9a1;
}

.gv-wine-slide--clay {
	--wine-panel: #c79273;
}

.gv-wine-slide--plum {
	--wine-panel: #9f7b7e;
}

.gv-wine-slide--mint {
	--wine-panel: #b8cec2;
}

.gv-wine-slide--umber {
	--wine-panel: #b39679;
}

.gv-wine-slide > img {
	bottom: -4%;
	height: 106% !important;
	left: 50%;
	max-width: none !important;
	object-fit: contain;
	pointer-events: none;
	position: absolute;
	transform: translateX(-50%);
	width: auto !important;
	z-index: 3;
}

.gv-wine-slide__number {
	color: color-mix(in srgb, var(--ink) 52%, transparent);
	font-family: var(--font-title);
	font-size: 13px;
	font-weight: 700;
	left: 24px;
	letter-spacing: 0.14em;
	position: absolute;
	top: 22px;
	z-index: 5;
}

.gv-wine-slide__title {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transform: translateY(36px);
	transition: opacity 840ms ease 160ms, transform 1400ms cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 4;
}

.gv-wine-slide.is-active .gv-wine-slide__title {
	opacity: 0.94;
	transform: translateY(0);
}

.gv-wine-slide__title span {
	color: var(--ink);
	font-family: var(--font-title);
	font-size: clamp(70px, 9vw, 145px);
	font-weight: 600;
	letter-spacing: -0.065em;
	line-height: 0.76;
	max-width: 138%;
	text-align: center;
}

.gv-wine-slide__meta {
	bottom: 22px;
	left: 24px;
	position: absolute;
	z-index: 5;
}

.gv-wine-slide__meta p,
.gv-wine-slide__meta span {
	color: color-mix(in srgb, var(--ink) 70%, transparent);
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin: 0;
	text-transform: uppercase;
}

.gv-wine-slide__meta h3 {
	font-size: 20px;
	margin: 3px 0 2px;
}

.gv-wine-showcase__controls {
	align-items: center;
	display: grid;
	flex: 0 0 auto;
	gap: 22px;
	grid-template-columns: auto minmax(120px, 1fr) auto auto;
	margin-top: 16px;
	position: relative;
	z-index: 5;
}

.gv-wine-showcase__nav {
	background: transparent;
	border: 0;
	color: var(--ink);
	cursor: pointer;
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 10px 0;
	text-transform: uppercase;
}

.gv-wine-showcase__nav:focus-visible {
	outline: 1px solid var(--ink);
	outline-offset: 5px;
}

.gv-wine-showcase__nav:disabled {
	cursor: default;
	opacity: 0.28;
}

.gv-wine-showcase__progress {
	background: color-mix(in srgb, var(--ink) 20%, transparent);
	height: 1px;
	overflow: hidden;
}

.gv-wine-showcase__progress span {
	background: var(--ink);
	display: block;
	height: 100%;
	transform: scaleX(0.125);
	transform-origin: left center;
	transition: transform 1400ms cubic-bezier(0.22, 1, 0.36, 1);
	width: 100%;
}

.gv-wine-showcase__status {
	display: flex;
	font-family: var(--font-title);
	font-size: 13px;
	font-weight: 600;
	gap: 5px;
	margin: 0;
}

.gv-wine-showcase__status span:nth-child(2),
.gv-wine-showcase__status span:nth-child(3) {
	opacity: 0.42;
}

.gv-wine-showcase__hint {
	bottom: 70px;
	color: color-mix(in srgb, var(--ink) 50%, transparent);
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	left: max(20px, calc((100vw - var(--max)) / 2));
	letter-spacing: 0.08em;
	margin: 0;
	position: absolute;
	text-transform: uppercase;
	writing-mode: vertical-rl;
	z-index: 5;
}

@media (max-width: 900px) {
	.gv-wine-showcase__scroll-stage > .gv-wine-showcase {
		--wine-card-height: min(72vw, 54svh, 590px);
	}

	.gv-wine-showcase {
		--wine-card-height: min(72vw, 590px);
		--wine-card-width: min(74vw, 650px);
		padding-top: 88px;
	}

	.gv-wine-showcase__masthead {
		align-items: start;
		gap: 18px;
		grid-template-columns: 1fr;
	}

	.gv-wine-showcase__masthead > p {
		max-width: 560px;
	}

	.gv-wine-showcase__track {
		gap: 72px;
	}

	.gv-wine-slide__title span {
		font-size: clamp(58px, 12vw, 104px);
	}

	.gv-wine-showcase__hint {
		display: none;
	}
}

@media (max-width: 640px) {
	.gv-wine-showcase__scroll-stage > .gv-wine-showcase {
		--wine-card-height: min(128vw, 46svh, 540px);
	}

	.gv-wine-showcase {
		--wine-card-height: min(128vw, 46svh, 540px);
		--wine-card-width: 78vw;
		padding: 72px 0 54px;
	}

	.gv-wine-showcase__masthead h2 {
		font-size: 38px;
	}

	.gv-wine-showcase__masthead > p {
		font-size: 15px;
	}

	.gv-wine-showcase__watermark {
		font-size: 110px;
		top: 27%;
	}

	.gv-wine-showcase__viewport {
		height: auto;
		margin-top: 24px;
	}

	.gv-wine-showcase__track {
		gap: 46px;
	}

	.gv-wine-slide__title span {
		font-size: clamp(45px, 13vw, 68px);
		line-height: 0.82;
		max-width: 132%;
	}

	.gv-wine-slide__meta {
		bottom: 18px;
		left: 18px;
	}

	.gv-wine-slide__meta h3 {
		font-size: 17px;
	}

	.gv-wine-showcase--wine .gv-wine-slide > img {
		left: 72%;
	}

	.gv-wine-showcase--wine .gv-wine-slide__title {
		justify-content: flex-start;
		padding: 0 18px;
	}

	.gv-wine-showcase--wine .gv-wine-slide__title span {
		font-size: clamp(38px, 11vw, 52px);
		line-height: 0.88;
		max-width: 58%;
		text-align: left;
	}

	.gv-wine-showcase--wine .gv-wine-slide__meta {
		max-width: 45%;
		width: 45%;
	}

	.gv-wine-showcase--wine .gv-wine-slide__meta p {
		line-height: 1.25;
		white-space: normal;
	}

	.gv-wine-showcase--wine .gv-wine-slide__meta h3 {
		display: none;
	}

	.gv-wine-showcase--wine .gv-wine-slide__meta span {
		display: block;
		line-height: 1.1;
		margin-top: 7px;
	}

	.gv-wine-slide__number {
		left: 18px;
		top: 17px;
	}

	.gv-wine-showcase__controls {
		gap: 14px;
		grid-template-columns: 1fr auto 1fr;
	}

	.gv-wine-showcase__progress {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.gv-wine-showcase__status {
		grid-column: 2;
		grid-row: 1;
	}

	.gv-wine-showcase__nav:first-child {
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
	}

	.gv-wine-showcase__nav:last-child {
		grid-column: 3;
		grid-row: 1;
		justify-self: end;
	}
}

/* Keep the complete carousel, including its controls, inside short mobile viewports. */
@media (max-width: 640px) and (max-height: 700px) {
	.gv-wine-showcase__scroll-stage > .gv-wine-showcase,
	.gv-wine-showcase {
		--wine-card-height: min(108vw, 38svh, 270px);
		--wine-card-width: 72vw;
		min-height: 0;
		padding: 42px 0 26px;
	}

	.gv-wine-showcase__masthead {
		gap: 10px;
	}

	.gv-wine-showcase__masthead h2 {
		font-size: 34px;
	}

	.gv-wine-showcase__masthead > p {
		font-size: 14px;
		line-height: 1.35;
	}

	.gv-wine-showcase__watermark {
		display: none;
	}

	.gv-wine-showcase__viewport {
		height: auto;
		margin-top: 16px;
	}

	.gv-wine-showcase__track {
		gap: 36px;
	}

	.gv-wine-showcase--wine .gv-wine-slide__title span {
		font-size: clamp(32px, 10vw, 45px);
	}

	.gv-wine-showcase--territory .gv-wine-slide__title {
		padding: 42px 16px 70px;
	}

	.gv-wine-showcase--territory .gv-wine-slide__title span {
		font-size: clamp(34px, 10vw, 48px);
	}

	.gv-wine-showcase__controls {
		gap: 10px;
	}
}

.gv-wine-showcase--territory .gv-wine-slide {
	background: var(--olive-deep);
	overflow: hidden;
}

@media (min-width: 641px) {
	.gv-wine-showcase--territory {
		padding-top: 64px;
	}
}

.gv-wine-showcase--territory .gv-wine-slide::after {
	background: linear-gradient(180deg, color-mix(in srgb, var(--olive-deep) 8%, transparent) 20%, color-mix(in srgb, var(--olive-deep) 84%, transparent) 100%);
	content: '';
	pointer-events: none;
	position: absolute;
	z-index: 4;
}

.gv-wine-showcase--territory .gv-wine-slide > img {
	bottom: auto;
	height: 100% !important;
	left: 0;
	object-fit: cover;
	position: absolute;
	top: 0;
	transform: none;
	transition: transform 2.2s cubic-bezier(0.22, 1, 0.36, 1);
	width: 100% !important;
}

.gv-wine-showcase--territory .gv-wine-slide.is-active > img {
	transform: scale(1.035);
}

.gv-wine-showcase--territory .gv-wine-showcase__title-layer {
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 8;
}

.gv-wine-showcase__territory-title-track {
	display: contents;
}

.gv-wine-showcase__territory-title {
	align-items: center;
	color: var(--bone);
	display: flex;
	justify-content: center;
	left: 50%;
	max-width: calc(100% - 64px);
	opacity: 0;
	pointer-events: none;
	position: absolute;
	text-shadow: 0 2px 30px color-mix(in srgb, var(--olive-deep) 30%, transparent);
	top: 50%;
	transform: translate(-50%, -50%);
	transition: opacity 880ms ease, visibility 0s linear 880ms;
	visibility: hidden;
	width: 100%;
}

.gv-wine-showcase__territory-title span {
	color: inherit;
	cursor: pointer;
	font-family: var(--font-title);
	font-size: clamp(64px, 8.5vw, 150px);
	font-weight: 600;
	letter-spacing: -0.065em;
	line-height: 0.84;
	max-width: min(16ch, calc(100vw - 64px));
	text-align: center;
}

.gv-wine-showcase__territory-title.is-active span {
	pointer-events: auto;
}

.gv-wine-showcase__territory-title.is-active {
	opacity: 0.96;
	pointer-events: none;
	transition: opacity 880ms ease;
	visibility: visible;
}

.gv-wine-showcase--territory .gv-wine-slide__number,
.gv-wine-showcase--territory .gv-wine-slide__meta,
.gv-wine-showcase--territory .gv-wine-slide__title {
	color: var(--bone);
	z-index: 6;
}

.gv-wine-showcase--territory .gv-wine-slide__number,
.gv-wine-showcase--territory .gv-wine-slide__meta p,
.gv-wine-showcase--territory .gv-wine-slide__meta span {
	color: color-mix(in srgb, var(--bone) 80%, transparent);
}

.gv-wine-showcase--territory .gv-wine-slide__meta {
	max-width: calc(100% - 48px);
}

.gv-wine-showcase--territory .gv-wine-slide__kicker {
	font-family: var(--font-accent);
	font-size: 23px;
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1;
	text-transform: none;
}

.gv-wine-showcase--territory .gv-wine-slide__meta h3 {
	color: var(--bone);
	font-size: clamp(22px, 2.2vw, 36px);
}

.gv-wine-showcase--territory .gv-wine-slide__title {
	align-items: flex-start;
	justify-content: flex-start;
	opacity: 0;
	padding: 74px 24px 120px;
	text-shadow: 0 2px 30px color-mix(in srgb, var(--olive-deep) 28%, transparent);
	transform: translateY(24px);
}

.gv-wine-showcase--territory .gv-wine-slide.is-active .gv-wine-slide__title {
	opacity: 0.95;
}

.gv-wine-showcase--territory .gv-wine-slide__title span {
	color: var(--bone);
	font-size: clamp(54px, 7vw, 112px);
	line-height: 0.84;
	max-width: 100%;
	text-align: left;
}

@media (max-width: 640px) {
	.gv-wine-showcase__territory-title span {
		font-size: clamp(48px, 14vw, 76px);
		max-width: calc(100vw - 36px);
	}

	.gv-wine-showcase--territory .gv-wine-slide__title {
		padding: 58px 18px 105px;
	}

	.gv-wine-showcase--territory .gv-wine-slide__title span {
		font-size: clamp(42px, 12vw, 62px);
	}
}

@media (max-width: 640px) and (max-height: 700px) {
	.gv-wine-showcase--territory .gv-wine-slide__title {
		padding: 42px 16px 70px;
	}

	.gv-wine-showcase--territory .gv-wine-slide__title span {
		font-size: clamp(34px, 10vw, 48px);
	}
}

.gv-ribbon {
	display: none !important;
}

.gv-ribbon div {
	animation: gianna-marquee 48s linear infinite;
	display: flex;
	gap: 34px;
	white-space: nowrap;
	width: max-content;
}

.gv-ribbon span {
	font-family: var(--font-title);
	font-size: 54px;
	font-weight: 600;
	line-height: 1;
	text-transform: uppercase;
}

.gv-final-cta {
	background: var(--olive);
	padding: 130px var(--site-pad);
	text-align: center;
}

.gv-final-cta > div {
	margin: 0 auto;
	max-width: 820px;
}

.gv-final-cta h2 {
	color: var(--bone);
	font-size: 54px;
	margin-bottom: 22px;
}

.gv-final-cta p {
	color: var(--bone);
}

.gv-final-cta .gv-kicker {
	color: var(--green-light);
}

/* Shared visual language for every closing CTA. */
.gv-final-cta,
.gv-dark-band {
	background: var(--olive) !important;
}

.gv-final-cta h2,
.gv-dark-band h2 {
	color: var(--paper) !important;
}

.gv-final-cta p:not(.gv-kicker),
.gv-dark-band p:not(.gv-kicker) {
	color: var(--paper) !important;
}

.gv-final-cta .gv-kicker,
.gv-dark-band .gv-kicker {
	color: var(--green-light) !important;
	font-size: 23px !important;
	line-height: 1 !important;
}

.gv-final-cta h2,
.gv-dark-band h2 {
	font-size: clamp(42px, 4.25vw, 54px) !important;
	line-height: 1 !important;
}

.gv-final-cta p:not(.gv-kicker),
.gv-dark-band p:not(.gv-kicker) {
	font-size: 17px !important;
	line-height: 1.65 !important;
}

.gv-final-cta .gv-actions .gv-button,
.gv-dark-band .gv-actions .gv-button {
	font-size: 13px !important;
	line-height: 1.15 !important;
}

.gv-final-cta .gv-actions .gv-button,
.gv-dark-band .gv-actions .gv-button {
	background: var(--green-light) !important;
	border-color: var(--green-light) !important;
	color: var(--ink) !important;
}

.gv-final-cta .gv-actions .gv-button:hover,
.gv-final-cta .gv-actions .gv-button:focus-visible,
.gv-dark-band .gv-actions .gv-button:hover,
.gv-dark-band .gv-actions .gv-button:focus-visible {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: var(--green-light) !important;
}

/* When a closing CTA has two actions, the second starts in the inverse state. */
.gv-final-cta .gv-actions .gv-button:nth-child(2),
.gv-dark-band .gv-actions .gv-button:nth-child(2) {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: var(--green-light) !important;
}

.gv-final-cta .gv-actions .gv-button:nth-child(2):hover,
.gv-final-cta .gv-actions .gv-button:nth-child(2):focus-visible,
.gv-dark-band .gv-actions .gv-button:nth-child(2):hover,
.gv-dark-band .gv-actions .gv-button:nth-child(2):focus-visible {
	background: var(--green-light) !important;
	border-color: var(--green-light) !important;
	color: var(--ink) !important;
}

.gv-section-intro {
	color: var(--muted);
	font-size: 18px;
	margin-top: 20px;
	max-width: 680px;
}

.gv-timeline article,
.gv-spec-grid article,
.gv-experience-grid article,
.gv-contact-card {
	background: var(--bone);
	border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
	box-shadow: var(--shadow);
}

.gv-timeline {
	margin: 0 auto;
	max-width: 1120px;
	padding: 32px 0 120px;
	position: relative;
}

.gv-timeline::before {
	background: linear-gradient(180deg, color-mix(in srgb, var(--gold) 0%, transparent), color-mix(in srgb, var(--gold) 88%, transparent) 12%, color-mix(in srgb, var(--gold) 88%, transparent) 88%, color-mix(in srgb, var(--gold) 0%, transparent));
	bottom: 0;
	content: "";
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 1px;
}

.gv-timeline__cursor {
	background: var(--gold);
	border: 10px solid color-mix(in srgb, var(--mist) 96%, transparent);
	border-radius: 999px;
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--gold) 34%, transparent), 0 18px 42px color-mix(in srgb, var(--ink) 14%, transparent);
	display: block;
	height: 28px;
	left: 50%;
	position: sticky;
	top: calc(50svh + 58px);
	transform: translate(-50%, -50%);
	width: 28px;
	z-index: 4;
}

.has-js .gv-timeline__cursor {
	left: var(--timeline-cursor-left, 50%);
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: calc(50svh + 58px);
	transform: translate(-50%, -50%);
	transition: opacity 360ms ease, visibility 360ms ease;
	visibility: hidden;
}

@media (max-width: 900px) {
	.gv-timeline__cursor,
	.has-js .gv-timeline__cursor {
		top: calc(50svh + 48px);
	}
}

.has-js .gv-timeline__cursor.is-active {
	opacity: 1;
	visibility: visible;
}

.gv-timeline-entry {
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 96px minmax(0, 1fr);
	margin-top: 0;
	min-height: 0;
	position: relative;
}

.gv-timeline-entry + .gv-timeline-entry {
	margin-top: -30px;
}

.gv-timeline-entry__card {
	background: linear-gradient(180deg, color-mix(in srgb, var(--bone) 96%, transparent), color-mix(in srgb, var(--mist) 92%, transparent));
	border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
	box-shadow: var(--shadow);
	display: grid;
	gap: 0;
	grid-template-columns: minmax(230px, 1fr) minmax(230px, 1fr);
	min-height: 300px;
	max-width: min(600px, 100%);
	position: relative;
	transition: opacity 640ms ease;
	width: min(600px, 100%);
}

.has-js .gv-timeline.is-tracking .gv-timeline-entry.is-visible:not(.is-current) .gv-timeline-entry__card {
	opacity: 0.58;
}

.gv-timeline-entry__card::before {
	content: none;
}

.gv-timeline-entry--left .gv-timeline-entry__card {
	grid-column: 1;
	justify-self: end;
	margin-right: 40px;
}

.gv-timeline-entry--right .gv-timeline-entry__card {
	grid-column: 3;
	justify-self: start;
	margin-left: 40px;
}

.gv-timeline-entry--right .gv-timeline-entry__media {
	grid-column: 2;
	grid-row: 1;
}

.gv-timeline-entry--right .gv-timeline-entry__copy {
	grid-column: 1;
	grid-row: 1;
}

.gv-timeline-entry__media {
	background: var(--surface-dim);
	margin: 0;
	min-height: 100%;
	overflow: hidden;
	width: 100%;
}

.gv-timeline-entry__media > img {
	display: block;
	height: 100%;
	min-height: 280px;
	object-fit: cover;
	object-position: center;
	width: 100%;
}

.gv-timeline-entry__copy {
	align-content: center;
	background: var(--surface-container);
	display: grid;
	isolation: isolate;
	min-height: 280px;
	padding: 34px 38px;
	position: relative;
	width: 100%;
}

.gv-timeline-entry__copy > p,
.gv-timeline-entry__copy > h3,
.gv-timeline-entry__copy > span:not(.gv-timeline-entry__watermark) {
	position: relative;
	z-index: 1;
}

.gv-timeline-entry__watermark {
	color: color-mix(in srgb, var(--gold) 18%, transparent) !important;
	font-family: var(--font-title);
	font-size: 92px;
	font-weight: 600;
	left: 18px;
	line-height: 0.78;
	pointer-events: none;
	position: absolute;
	top: 16px;
	white-space: nowrap;
	z-index: 0;
}

.gv-timeline-entry p {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 23px;
	font-weight: 600;
	line-height: 1;
	margin: 0 0 12px;
}

.gv-timeline h3 {
	font-size: 36px;
	line-height: 1.04;
	margin-bottom: 24px;
}

.gv-timeline-entry__copy > span:not(.gv-timeline-entry__watermark),
.gv-spec-grid li,
.gv-experience-grid li,
.gv-contact-card strong {
	color: var(--muted);
}

.gv-timeline-entry__copy > span:not(.gv-timeline-entry__watermark) {
	display: block;
	font-size: 18px;
	line-height: 1.7;
}

.gv-spec-grid,
.gv-experience-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(2, 1fr);
}

.gv-spec-grid article,
.gv-experience-grid article {
	padding: 30px;
}

.gv-spec-grid h3,
.gv-experience-grid h3 {
	font-size: 30px;
	margin-bottom: 20px;
}

.gv-spec-grid ul,
.gv-experience-grid ul,
.gv-chip-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gv-spec-grid li {
	border-top: 1px solid var(--line);
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 12px 0;
}

.gv-spec-grid strong {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 20px;
	font-weight: 700;
	text-align: right;
}

.gv-experience-grid article:first-child {
	grid-column: span 2;
}

.gv-experience-grid p {
	color: var(--muted);
	max-width: 700px;
}

.gv-experience-grid li {
	border-top: 1px solid var(--line);
	padding: 10px 0;
}

.gv-chip-list {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(4, 1fr);
}

.gv-chip-list li {
	background: var(--bone);
	border: 1px solid var(--line);
	color: var(--ink);
	font-family: var(--font-title);
	font-size: 15px;
	font-weight: 600;
	min-height: 74px;
	padding: 18px;
}

/* Gruppi e aziende: indice editoriale e informazioni organizzate. */
.gv-groups-audience {
	background: var(--blue-light);
	min-height: 640px;
	padding-bottom: 84px;
	padding-top: 84px;
}

.gv-groups-audience .gv-section-graphic {
	bottom: -2%;
	left: 50%;
	opacity: 0.12;
	right: auto;
	transform: translateX(-50%);
	width: clamp(500px, 54vw, 860px);
}

.gv-groups-audience__inner {
	position: relative;
}

.gv-groups-audience__head {
	display: block;
	margin-bottom: 28px;
	max-width: none;
	width: 100%;
}

.gv-groups-audience__head h2 {
	font-size: clamp(44px, 4.1vw, 62px);
	line-height: 0.98;
	max-width: 100%;
	width: 100%;
}

.gv-groups-audience__head h2::after,
.gv-groups-facts__head h2::after {
	background: var(--gold);
	content: "";
	display: block;
	height: 3px;
	margin-top: 24px;
	width: 48px;
}

.gv-groups-audience__list {
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(4, minmax(58px, auto));
	column-gap: clamp(250px, 29vw, 465px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.gv-groups-audience__list li {
	align-items: center;
	border-bottom: 1px solid color-mix(in srgb, var(--gold) 95%, transparent);
	display: grid;
	gap: 16px;
	grid-template-columns: 58px minmax(0, 1fr);
	min-height: 58px;
	position: relative;
}

.gv-groups-audience__list li::after {
	background: var(--gold);
	border-radius: 50%;
	bottom: -3px;
	content: "";
	height: 5px;
	position: absolute;
	right: -1px;
	width: 5px;
}

.gv-groups-audience__number {
	color: #9a6413;
	font-family: var(--font-accent);
	font-size: 43px;
	font-weight: 500;
	line-height: 0.9;
}

.gv-groups-audience__label {
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 19px;
	font-weight: 500;
	line-height: 1.3;
	overflow-wrap: break-word;
	word-break: normal;
}

.gv-groups-facts {
	padding-bottom: 92px;
	padding-top: 92px;
}

.gv-groups-facts .gv-section-graphic {
	bottom: -12%;
	left: -5%;
	opacity: 0.1;
	right: auto;
	width: clamp(420px, 45vw, 720px);
}

.gv-groups-facts__layout {
	display: grid;
	gap: 52px;
	grid-template-columns: 1fr;
}

.gv-groups-facts__head {
	display: block;
	margin: 0;
	max-width: 680px;
	padding-right: 0;
}

.gv-groups-facts__head h2 {
	font-size: clamp(40px, 3vw, 50px);
	line-height: 1.02;
	max-width: 100%;
}

.gv-groups-facts__head > p:last-child {
	color: var(--ink);
	font-size: 17px;
	line-height: 1.5;
	margin: 20px 0 0;
	max-width: 290px;
}

.gv-groups-facts__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gv-groups-fact {
	border-left: 1px solid color-mix(in srgb, var(--gold) 72%, transparent);
	margin: 0;
	min-width: 0;
	overflow-wrap: break-word;
	padding: 0 clamp(22px, 2vw, 34px);
	word-break: normal;
}

.gv-groups-fact:first-child {
	border-left: 0;
	padding-left: 0;
}

.gv-groups-fact h3 {
	align-items: center;
	color: #9a6413;
	display: flex;
	font-family: var(--font-title);
	font-size: 19px;
	font-weight: 700;
	gap: 12px;
	letter-spacing: 0.02em;
	line-height: 1.2;
	margin-bottom: 28px;
	text-transform: uppercase;
}

.gv-groups-fact h3 i {
	font-size: 25px;
	font-style: normal;
	width: 28px;
}

.gv-groups-fact__label,
.gv-groups-fact dl dt {
	font-size: 15px;
	line-height: 1.35;
	margin: 0;
}

.gv-groups-fact__value {
	align-items: baseline;
	display: flex;
	flex-wrap: nowrap;
	gap: 5px 8px;
	margin: 4px 0 0;
}

.gv-groups-fact__value strong,
.gv-groups-fact dl dd {
	color: var(--ink);
	font-family: var(--font-title);
	font-size: 50px;
	font-weight: 600;
	line-height: 0.95;
}

.gv-groups-fact__value span,
.gv-groups-fact dl dd span {
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 500;
}

.gv-groups-fact dl {
	display: grid;
	gap: 18px;
	margin: 0;
}

.gv-groups-fact dl > div {
	border-bottom: 1px solid color-mix(in srgb, var(--gold) 72%, transparent);
	padding-bottom: 14px;
}

.gv-groups-fact dl dd {
	align-items: baseline;
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	margin: 6px 0 0;
}

.gv-groups-fact ul {
	display: grid;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gv-groups-fact li,
.gv-groups-fact__note {
	align-items: flex-start;
	border-bottom: 1px solid color-mix(in srgb, var(--gold) 48%, transparent);
	display: grid;
	font-size: 15px;
	gap: 10px;
	grid-template-columns: 15px minmax(0, 1fr);
	line-height: 1.45;
	margin: 0;
	padding: 11px 0;
}

.gv-groups-fact li i,
.gv-groups-fact__note i {
	color: #9a6413;
	font-size: 12px;
	font-style: normal;
	line-height: 1.8;
}

.gv-groups-fact__note {
	margin-top: 16px;
}

@media (max-width: 1200px) {
	.gv-groups-facts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 42px;
	}

	.gv-groups-fact:nth-child(odd) {
		border-left: 0;
	}

	.gv-groups-fact:nth-child(n + 3) {
		border-top: 1px solid color-mix(in srgb, var(--gold) 52%, transparent);
		padding-top: 36px;
	}
}

@media (max-width: 1100px) {
	.gv-groups-audience__list {
		column-gap: clamp(120px, 21vw, 240px);
	}
}

@media (max-width: 760px) {
	.gv-groups-audience {
		min-height: 0;
		padding-bottom: 72px;
		padding-top: 72px;
	}

	.gv-groups-audience .gv-section-graphic {
		bottom: 10%;
		left: 60%;
		width: 720px;
	}

	.gv-groups-audience__head {
		margin-bottom: 34px;
	}

	.gv-groups-audience__head h2 {
		font-size: 42px;
	}

	.gv-groups-audience__list {
		grid-auto-flow: row;
		grid-template-columns: 1fr;
		grid-template-rows: none;
	}

	.gv-groups-audience__list li {
		grid-template-columns: 54px minmax(0, 1fr);
		min-height: 64px;
	}

	.gv-groups-audience__number {
		font-size: 40px;
	}

	.gv-groups-audience__label {
		font-size: 17px;
	}

	.gv-groups-facts {
		padding-bottom: 72px;
		padding-top: 72px;
	}

	.gv-groups-facts__layout {
		gap: 40px;
	}

	.gv-groups-facts__head h2 {
		font-size: 39px;
	}

	.gv-groups-facts__grid {
		grid-template-columns: 1fr;
		row-gap: 0;
	}

	.gv-groups-fact,
	.gv-groups-fact:nth-child(odd) {
		border-left: 0;
		border-top: 1px solid color-mix(in srgb, var(--gold) 72%, transparent);
		padding: 28px 0;
	}

	.gv-groups-fact h3 {
		margin-bottom: 22px;
	}
}

.gv-contact-layout {
	align-items: start;
	display: grid;
	gap: 42px;
	grid-template-columns: 0.82fr 1.18fr;
}

.gv-contact-layout h2 {
	font-size: 48px;
	margin-bottom: 22px;
}

.gv-contact-layout p:not(.gv-kicker) {
	color: var(--muted);
	font-size: 18px;
	max-width: 580px;
}

.gv-contact-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	padding: 10px;
}

.gv-contact-card div {
	border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
	padding: 22px;
}

.gv-contact-card span {
	color: var(--clay);
	display: block;
	font-family: var(--font-accent);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 10px;
}

.gv-contact-card strong {
	display: block;
	font-family: var(--font-title);
	font-size: 18px;
	font-weight: 600;
}

.gv-contact-card a {
	color: inherit;
	text-decoration: none;
}

.gv-contact-card a:hover,
.gv-contact-card a:focus-visible {
	color: var(--clay);
	text-decoration: underline;
}

.gv-contact-locations .gv-section-head {
	margin-bottom: 34px;
}

.gv-contact-locations__map {
	background: var(--bone);
	border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
	box-shadow: var(--shadow);
	margin-bottom: 28px;
	overflow: hidden;
}

.gv-contact-locations__map iframe {
	border: 0;
	display: block;
	height: min(430px, 52vw);
	width: 100%;
}

.gv-contact-locations__grid {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gv-contact-location {
	background: var(--bone);
	border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
	box-shadow: var(--shadow);
	display: flex;
	flex-direction: column;
	padding: clamp(28px, 4vw, 46px);
}

.gv-contact-location h3 {
	font-size: clamp(30px, 3vw, 42px);
	margin: 0 0 26px;
}

.gv-contact-location dl {
	border-top: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
	margin: 0;
}

.gv-contact-location dl > div {
	border-bottom: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
	padding: 16px 0;
}

.gv-contact-location dt {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 7px;
}

.gv-contact-location dd {
	color: var(--ink);
	font-family: var(--font-title);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.45;
	margin: 0;
}

.gv-contact-location a {
	color: inherit;
}

.gv-contact-location a:hover,
.gv-contact-location a:focus-visible {
	color: var(--clay);
}

.gv-contact-location__note,
.gv-contact-location__directions {
	color: var(--muted);
	font-size: 16px;
	line-height: 1.6;
}

.gv-contact-location__note {
	border-left: 2px solid var(--gold);
	margin: 24px 0;
	padding-left: 14px;
}

.gv-contact-location__directions {
	margin-bottom: 28px;
}

.gv-contact-location__directions strong {
	color: var(--ink);
	font-family: var(--font-title);
	font-size: 18px;
}

.gv-contact-location__directions ul {
	margin: 10px 0 0;
	padding-left: 18px;
}

.gv-contact-location .gv-button {
	margin-top: auto;
	width: fit-content;
}

body.page-id-56 .gv-contact-location:not(.gv-contact-location--production) .gv-button {
	color: var(--paper);
}

body.page-id-56 .gv-contact-location:not(.gv-contact-location--production) .gv-button:hover,
body.page-id-56 .gv-contact-location:not(.gv-contact-location--production) .gv-button:focus-visible {
	color: var(--ink);
}

body.page-id-56 .gv-contact-location--production .gv-button:hover,
body.page-id-56 .gv-contact-location--production .gv-button:focus-visible {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}

.gv-contact-form {
	background: var(--bone);
	border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
	box-shadow: var(--shadow);
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, 1fr);
	padding: 34px;
}

.gv-contact-form label {
	color: var(--clay);
	display: grid;
	font-family: var(--font-accent);
	font-size: 22px;
	font-weight: 700;
	gap: 8px;
	line-height: 1;
}

.gv-contact-form input,
.gv-contact-form select,
.gv-contact-form textarea {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 4px;
	color: var(--ink);
	font: inherit;
	min-height: 50px;
	padding: 12px 14px;
	width: 100%;
}

.gv-contact-form textarea {
	resize: vertical;
}

.gv-contact-form__full,
.gv-contact-form__privacy {
	grid-column: 1 / -1;
}

.gv-contact-form__privacy {
	align-items: center;
	display: flex;
	font-family: var(--font-title);
	font-size: 14px;
	gap: 10px;
	text-transform: uppercase;
}

.gv-contact-form__privacy input {
	min-height: 0;
	width: auto;
}

.has-js [data-reveal] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 1400ms ease, transform 1400ms ease;
}

.has-js .gv-timeline-entry--left[data-reveal] {
	transform: translate3d(-72px, 0, 0);
}

.has-js .gv-timeline-entry--right[data-reveal] {
	transform: translate3d(72px, 0, 0);
}

.has-js [data-reveal].is-visible {
	opacity: 1;
	transform: translateY(0);
}

body.elementor-editor-active [data-reveal],
body.elementor-editor-preview [data-reveal],
body.elementor-editor-page [data-reveal],
html.elementor-html [data-reveal],
.is-elementor-editing [data-reveal],
.elementor-editor-active [data-reveal],
.elementor-editor-preview [data-reveal] {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

.cursor-dot {
	background: var(--gold);
	border-radius: 999px;
	height: 10px;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: 0;
	transition: height 320ms ease, opacity 320ms ease, width 320ms ease;
	transform: translate3d(-100px, -100px, 0) translate(-50%, -50%);
	transform-origin: center;
	width: 10px;
	z-index: 999;
}

.has-js .cursor-dot {
	opacity: 0.75;
}

.cursor-dot.is-active {
	height: 34px;
	opacity: 0.16;
	width: 34px;
}

@media (hover: none), (any-hover: none), (pointer: coarse), (any-pointer: coarse) {
	.cursor-dot,
	.has-js .cursor-dot,
	.cursor-dot.is-active {
		display: none !important;
		opacity: 0 !important;
		visibility: hidden !important;
	}
}

@media (min-width: 760px) {
	:root {
		--site-pad: 42px;
	}

	.hero-title {
		font-size: 118px;
	}

	.home-cover__title {
		font-size: clamp(42px, 5.2vw, 58px);
	}

	.landing-brand__name,
	.landing-brand strong {
		font-size: clamp(72px, 9vw, 118px);
	}
}

@media (min-width: 1180px) {
	:root {
		--site-pad: 64px;
	}

	.hero-title {
		font-size: 168px;
	}

	.home-cover__title {
		font-size: 64px;
	}

	.landing-brand__name,
	.landing-brand strong {
		font-size: 126px;
	}

	h2 {
		font-size: 56px;
	}
}

@media (max-width: 1180px) {
	.gv-timeline {
		max-width: min(760px, 100%);
	}

	.gv-timeline::before {
		left: 26px;
		transform: none;
	}

	.gv-timeline-entry {
		grid-template-columns: 54px minmax(0, 1fr);
		margin-top: 28px;
		min-height: 0;
	}

	.gv-timeline-entry:first-of-type {
		margin-top: 0;
	}

	.gv-timeline-entry + .gv-timeline-entry {
		margin-top: 28px;
	}

	.gv-timeline-entry__card,
	.gv-timeline-entry--left .gv-timeline-entry__card,
	.gv-timeline-entry--right .gv-timeline-entry__card {
		grid-column: 2;
		justify-self: stretch;
		margin-left: 12px;
		margin-right: 0;
		max-width: 100%;
		width: 100%;
	}

	.gv-timeline-entry__media,
	.gv-timeline-entry__copy {
		width: 100%;
	}
}

@media (max-width: 900px) {
	.site-header {
		height: 96px;
		min-height: 96px;
		padding-bottom: 0;
		padding-top: 0;
	}

	.header-cta {
		display: none;
	}

	.primary-nav {
		padding-top: 102px;
	}

	.nav-stage {
		align-items: start;
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.nav-stage__graphic {
		display: none;
	}

	.nav-aside {
		border-left: 0;
		border-top: 1px solid var(--line);
		padding: 24px 0 0;
	}

	.nav-list > li > a {
		font-size: 42px;
		line-height: 1;
	}

	.gv-kit-hero {
		min-height: 72svh;
		padding-top: 132px;
	}

	.home-cover__content {
		min-height: calc(100svh - (max(28px, var(--site-pad)) * 2));
	}

	.landing-brand {
		top: max(28px, var(--site-pad));
	}

	.landing-brand__logo {
		position: static;
	}

	.home-cover__title {
		max-width: min(460px, 74vw);
	}

	.gv-kit-hero h1,
	.gv-dark-band h2,
	.gv-final-cta h2 {
		font-size: 42px;
	}

	.gv-section-head,
	.gv-story-row,
	.gv-story-row--reverse,
	.gv-collection-grid,
	.gv-spec-grid,
	.gv-experience-grid,
	.gv-contact-locations__grid,
	.gv-contact-layout {
		grid-template-columns: 1fr;
	}

	.gv-experience-grid article:first-child {
		grid-column: auto;
	}

	.gv-story-row--reverse .gv-story-row__image {
		order: 0;
	}

	.gv-story-row__image {
		transform: translateY(-24px) scale(1.04);
	}

	.gv-pattern-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.gv-landscape-card {
		min-height: 620px;
	}

	.gv-landscape-card__panel {
		margin-left: 0;
		max-width: 620px;
	}

	.gv-dark-band__watermark {
		font-size: 104px;
	}

	.gv-section--timeline {
		margin-top: 0;
		padding-top: 92px;
	}

	.gv-timeline {
		max-width: 760px;
	}

	.gv-timeline-entry {
		grid-template-columns: 54px minmax(0, 1fr);
		margin-top: 24px;
	}

	.gv-timeline::before {
		left: 26px;
		transform: none;
	}

	.gv-timeline__cursor {
		left: 50%;
		top: calc(50svh + 48px);
	}

	.gv-timeline-entry__card,
	.gv-timeline-entry--left .gv-timeline-entry__card,
	.gv-timeline-entry--right .gv-timeline-entry__card {
		grid-column: 2;
		margin: 0 0 0 12px;
		min-height: auto;
		max-width: 100%;
		width: 100%;
	}

	.gv-timeline-entry__media,
	.gv-timeline-entry__copy {
		width: 100%;
	}

	.gv-timeline-entry h3 {
		font-size: 32px;
	}

	.gv-section-graphic {
		opacity: 0.11;
		right: -40px;
		width: clamp(220px, 52vw, 430px);
	}

	.gv-section-graphic.gv-graphic--vigneto,
	.gv-section-graphic.gv-graphic--circeo,
	.gv-section-graphic.gv-graphic--mare,
	.gv-section-graphic.gv-graphic--tempio {
		width: clamp(430px, 82vw, 760px);
	}

	.gv-text-graphic {
		opacity: 0.14;
		right: -56px;
		width: clamp(160px, 42vw, 280px);
	}

	.gv-text-graphic.gv-graphic--circeo,
	.gv-text-graphic.gv-graphic--mare,
	.gv-text-graphic.gv-graphic--tempio,
	.gv-text-graphic.gv-graphic--vigneto {
		width: clamp(260px, 70vw, 480px);
	}

	.gv-chip-list,
	.gv-contact-card {
		grid-template-columns: repeat(2, 1fr);
	}

	.gv-contact-locations__map iframe {
		height: 330px;
	}

	.intro-grid,
	.section-head,
	.project-row,
	.project-row:nth-child(even),
	.detail-story,
	.single-hero {
		grid-template-columns: 1fr;
	}

	.project-row:nth-child(even) .project-image {
		order: 0;
	}

	.metrics-band,
	.post-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.footer-inner,
	.footer-bar {
		align-items: flex-start;
		flex-direction: column;
	}

	.footer-intro {
		flex-basis: auto;
		width: 100%;
	}

	.footer-cta {
		margin-bottom: 48px;
	}

	.footer-nav {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}
}

@media (max-width: 640px) {
	.home-cover {
		padding-bottom: 24px;
	}

	.landing-brand {
		top: max(22px, var(--site-pad));
	}

	.home-cover__content {
		min-height: calc(100svh - (max(22px, var(--site-pad)) * 2));
	}

	.home-cover__title {
		max-width: min(320px, 84vw);
	}

	.home-cover-menu {
		bottom: max(22px, calc(env(safe-area-inset-bottom, 0px) + 22px));
		width: calc(100% - 32px);
	}

	.home-cover-menu__list {
		flex-wrap: wrap;
		gap: 12px 18px;
		padding: 0;
	}

}

@media (max-width: 640px) {
	body {
		font-size: 16px;
	}

	.primary-nav {
		padding-bottom: 34px;
		padding-top: 92px;
	}

	.nav-list > li > a {
		font-size: 32px;
	}

	.gv-section,
	.gv-story-row,
	.gv-final-cta {
		padding-bottom: 74px;
		padding-top: 74px;
	}

	.gv-kit-hero h1 {
		font-size: 38px;
	}

	.gv-kit-hero p:not(.gv-kicker),
	.gv-story-row p:not(.gv-kicker) {
		font-size: 16px;
	}

	.gv-section-head h2,
	.gv-story-row h2,
	.gv-landscape-card h2 {
		font-size: 34px;
	}

	.gv-pattern-grid,
	.gv-collection-grid,
	.gv-chip-list,
	.gv-contact-card,
	.gv-contact-form {
		grid-template-columns: 1fr;
	}

	.gv-section--timeline {
		margin-top: 0;
		padding-top: 74px;
	}

	.gv-section-head--timeline {
		margin-bottom: 46px;
	}

	.gv-timeline {
		padding-top: 12px;
	}

	.gv-timeline-entry {
		grid-template-columns: 42px minmax(0, 1fr);
	}

	.gv-timeline::before {
		left: 20px;
	}

	.gv-timeline__cursor {
		border-width: 7px;
		height: 20px;
		width: 20px;
	}

	.gv-timeline-entry__card,
	.gv-timeline-entry--left .gv-timeline-entry__card,
	.gv-timeline-entry--right .gv-timeline-entry__card {
		grid-template-columns: 1fr;
		margin-left: 10px;
		overflow: hidden;
	}

	.gv-timeline-entry p {
		font-size: 18px;
		margin-bottom: 18px;
	}

	.gv-timeline-entry__media,
	.gv-timeline-entry--right .gv-timeline-entry__media {
		grid-column: 1;
		grid-row: 1;
	}

	.gv-timeline-entry__copy,
	.gv-timeline-entry--right .gv-timeline-entry__copy {
		grid-column: 1;
		grid-row: 2;
		min-height: auto;
		padding: 28px 24px;
	}

	.gv-timeline-entry__media > img {
		aspect-ratio: 4 / 3;
		height: 100%;
		min-height: 0;
	}

	.gv-timeline-entry__watermark {
		font-size: 70px;
		left: 14px;
		top: 14px;
	}

	.gv-timeline h3 {
		font-size: 28px;
		margin-bottom: 18px;
	}

	.gv-timeline-entry__copy > span:not(.gv-timeline-entry__watermark) {
		font-size: 16px;
	}

	.gv-pattern-grid article {
		min-height: auto;
	}

	.gv-watermark {
		font-size: 92px;
	}

	.gv-section-graphic {
		bottom: 18px;
		opacity: 0.09;
		right: -92px;
		top: auto;
	}

	.gv-section-graphic.gv-graphic--cactus,
	.gv-section-graphic.gv-graphic--grappolo,
	.gv-section-graphic.gv-graphic--circe {
		bottom: auto;
		top: 28px;
	}

	.gv-text-graphic {
		opacity: 0.11;
		top: -42px;
	}

	.gv-panel-graphic {
		bottom: -58px;
		opacity: 0.12;
		right: -92px;
	}

	.gv-dark-graphic,
	.gv-final-graphic {
		bottom: auto !important;
		left: 50% !important;
		opacity: 0.09;
		right: auto !important;
		top: 50% !important;
		transform: translate(-50%, -50%) !important;
	}

	.gv-dark-graphic {
		width: clamp(720px, 104vw, 1640px) !important;
	}

	.gv-final-graphic {
		width: clamp(640px, 96vw, 1520px) !important;
	}

	.gv-ornament-divider {
		height: 92px;
	}

	.gv-ornament-divider img {
		opacity: 0.2;
		width: 92vw;
	}

	.gv-landscape-card {
		min-height: auto;
		padding-bottom: 74px;
		padding-top: 220px;
	}

	.gv-landscape-card__panel {
		padding: 28px;
	}

	.gv-collection-card {
		min-height: auto;
	}

	.gv-ribbon span {
		font-size: 38px;
	}

	.gv-contact-form {
		padding: 24px;
	}

	.hero {
		min-height: 84svh;
		padding-bottom: 34px;
	}

	.hero::after {
		background: linear-gradient(0deg, color-mix(in srgb, var(--ink) 76%, transparent), color-mix(in srgb, var(--ink) 10%, transparent));
	}

	.hero-title {
		font-size: 58px;
	}

	.hero-summary {
		font-size: 16px;
	}

	.button {
		width: 100%;
		justify-content: center;
	}

	.intro-band,
	.project-section,
	.page-shell,
	.single-project {
		padding-bottom: 74px;
		padding-top: 74px;
	}

	h2,
	.project-copy h2,
	.project-copy h3,
	.footer-inner h2,
	.page-hero h1,
	.single-hero h1 {
		font-size: 38px;
	}

	.marquee-track span {
		font-size: 42px;
	}

	.detail-story {
		padding-bottom: 78px;
		padding-top: 78px;
	}

	.metrics-band {
		grid-template-columns: 1fr;
	}

	.content-panel {
		padding: 28px;
	}

	.project-nav {
		grid-template-columns: 1fr;
	}

	.project-nav div:last-child {
		text-align: left;
	}
}

.wine-detail {
	background: var(--paper);
}

.wine-detail__hero {
	align-items: center;
	background: #e5d6bf;
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
	height: 100svh;
	isolation: isolate;
	min-height: 760px;
	overflow: hidden;
	padding: 140px var(--site-pad) 70px;
	position: relative;
}

.wine-detail__hero--sand { background: #dfcfb5; }
.wine-detail__hero--sky { background: #abcddd; }
.wine-detail__hero--sage { background: #b7c2a6; }
.wine-detail__hero--rose { background: #cda9a1; }
.wine-detail__hero--clay { background: #c79273; }
.wine-detail__hero--plum { background: #9f7b7e; }
.wine-detail__hero--mint { background: #b8cec2; }
.wine-detail__hero--umber { background: #b39679; }

.wine-detail .elementor-widget,
.wine-detail .elementor-widget:not(:last-child) {
	margin-block-end: 0;
	margin-bottom: 0;
}

.wine-detail .elementor-widget-container,
.wine-detail__article {
	width: 100%;
}

.wine-detail__hero-copy {
	position: relative;
	z-index: 3;
}

.wine-detail__back {
	color: inherit;
	display: inline-block;
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.13em;
	margin-bottom: clamp(42px, 8vh, 90px);
	text-transform: uppercase;
}

.wine-detail__back::before {
	content: "←";
	margin-right: 10px;
}

.wine-detail__hero h1 {
	color: var(--wine-detail-title-color, var(--ink));
	font-family: var(--wine-detail-hero-title-font-family, var(--font-title));
	font-size: var(--wine-detail-hero-title-font-size, clamp(78px, 10.5vw, 176px));
	font-weight: var(--wine-detail-hero-title-font-weight, 500);
	letter-spacing: -0.065em;
	line-height: 0.78;
	margin: 18px 0 30px;
	max-width: 8ch;
}

.wine-detail__hero-copy .section-kicker {
	color: var(--wine-detail-hero-kicker-color, var(--wine-detail-kicker-color, var(--clay)));
	font-family: var(--wine-detail-hero-kicker-font-family, var(--font-title));
	font-size: var(--wine-detail-hero-kicker-font-size, 11px);
	font-weight: var(--wine-detail-hero-kicker-font-weight, 700);
}

.wine-detail__edition {
	color: var(--wine-detail-edition-color, var(--ink));
	font-family: var(--wine-detail-hero-edition-font-family, var(--font-title));
	font-size: var(--wine-detail-hero-edition-font-size, clamp(22px, 2.1vw, 34px));
	font-weight: var(--wine-detail-hero-edition-font-weight, 500);
	margin: 0;
}

.wine-detail__gdo {
	background: var(--olive-deep);
	border-radius: 999px;
	color: var(--bone);
	display: inline-block;
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin: 22px 0 0;
	padding: 8px 12px;
	text-transform: uppercase;
}

.wine-detail__bottle-wrap {
	align-items: center;
	display: flex;
	height: calc(100svh - 180px);
	justify-content: center;
	min-height: 580px;
	position: relative;
}

.wine-detail__bottle-wrap > span {
	color: color-mix(in srgb, var(--ink) 7%, transparent);
	font-family: var(--font-title);
	font-size: clamp(120px, 16vw, 270px);
	font-weight: 700;
	left: 50%;
	letter-spacing: -0.08em;
	line-height: 0.75;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	white-space: nowrap;
}

.wine-detail__bottle-wrap img {
	height: min(72svh, 780px) !important;
	max-height: 780px !important;
	max-width: min(42vw, 520px) !important;
	object-fit: contain;
	position: relative;
	width: auto !important;
	z-index: 2;
}

.experience-detail__image-wrap img {
	border-radius: 0;
	box-shadow: 0 30px 80px color-mix(in srgb, var(--ink) 20%, transparent);
	height: min(64svh, 680px) !important;
	max-width: min(48vw, 720px) !important;
	object-fit: cover;
	width: min(48vw, 720px) !important;
}

.experience-detail__image-wrap > span {
	font-size: clamp(90px, 12vw, 210px);
}

.experience-detail__specs {
	grid-template-columns: repeat(4, 1fr);
}

.experience-detail .section-kicker {
	font-family: var(--font-accent);
	font-size: clamp(22px, 2vw, 30px);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.experience-detail .gv-final-cta .gv-button:hover,
.experience-detail .gv-final-cta .gv-button:focus-visible {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--bone);
}

.experience-detail .wine-detail__next {
	min-height: clamp(210px, 24vw, 340px);
	padding-bottom: clamp(46px, 5vw, 78px);
	padding-top: clamp(46px, 5vw, 78px);
}

.experience-detail .wine-detail__next strong {
	font-size: clamp(44px, 6.5vw, 96px);
	line-height: 0.9;
}

.wine-detail__scroll {
	bottom: 36px;
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	left: var(--site-pad);
	letter-spacing: 0.12em;
	margin: 0;
	position: absolute;
	text-transform: uppercase;
	writing-mode: vertical-rl;
}

.wine-detail__intro {
	display: grid;
	gap: clamp(48px, 10vw, 160px);
	grid-template-columns: 0.34fr 0.66fr;
	padding-bottom: clamp(110px, 14vw, 220px);
	padding-top: clamp(110px, 14vw, 220px);
}

.wine-detail__lead {
	color: var(--wine-detail-intro-lead-color, inherit);
	font-family: var(--wine-detail-intro-lead-font-family, var(--font-title));
	font-size: var(--wine-detail-intro-lead-font-size, clamp(34px, 4vw, 64px));
	font-weight: var(--wine-detail-intro-lead-font-weight, 500);
	letter-spacing: -0.045em;
	line-height: 1.02;
	margin: 0 0 52px;
}

.wine-detail__content {
	color: var(--wine-detail-content-color, var(--muted));
	font-family: var(--wine-detail-content-font-family, inherit);
	font-size: var(--wine-detail-content-font-size, 18px);
	font-weight: var(--wine-detail-content-font-weight, 400);
	line-height: 1.75;
	max-width: 760px;
}

.wine-detail__specs {
	border-bottom: 1px solid var(--line);
	border-top: 1px solid var(--line);
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	padding-bottom: 48px;
	padding-top: 48px;
}

.wine-detail__specs div {
	border-left: 1px solid var(--line);
	min-height: 100px;
	padding: 12px 28px;
}

.wine-detail__specs div:first-child {
	border-left: 0;
	padding-left: 0;
}

.wine-detail__specs span,
.wine-detail__specs strong {
	display: block;
}

.wine-detail__specs span {
	color: var(--muted);
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin-bottom: 24px;
	text-transform: uppercase;
}

.wine-detail__specs strong {
	font-family: var(--font-title);
	font-size: 20px;
	font-weight: 500;
}

.wine-detail__facts {
	background: var(--paper);
	padding: 0 var(--site-pad);
	position: relative;
}

.wine-detail__facts-grid {
	display: block;
	max-width: 1500px;
	padding: 0;
}

.wine-detail__fact-section {
	background: transparent;
	display: grid;
	grid-auto-flow: row dense;
	grid-template-columns: minmax(170px, 0.85fr) minmax(250px, 1fr) minmax(250px, 1fr);
	isolation: isolate;
	padding: clamp(44px, 5vw, 82px) clamp(24px, 5vw, 90px);
	position: relative;
}

.wine-detail__fact-section::before {
	background: var(--wine-facts-tone);
	bottom: 0;
	content: '';
	left: calc((100vw - 100%) / -2);
	position: absolute;
	right: calc((100vw - 100%) / -2);
	top: 0;
	z-index: -1;
}

.wine-detail__fact-section:nth-child(1) { --wine-facts-tone: var(--wine-facts-tone-1, #abcddd); }
.wine-detail__fact-section:nth-child(2) { --wine-facts-tone: var(--wine-facts-tone-2, #b7c2a6); }
.wine-detail__fact-section:nth-child(3) { --wine-facts-tone: var(--wine-facts-tone-3, #dfcfb5); }
.wine-detail__fact-section:nth-child(4) { --wine-facts-tone: var(--wine-facts-tone-4, #cda9a1); }

.wine-detail__fact-section--single.wine-detail__fact-section--identity { --wine-facts-tone: var(--wine-facts-tone-current, #abcddd); }
.wine-detail__fact-section--single.wine-detail__fact-section--vineyard { --wine-facts-tone: var(--wine-facts-tone-current, #b7c2a6); }
.wine-detail__fact-section--single.wine-detail__fact-section--cellar { --wine-facts-tone: var(--wine-facts-tone-current, #dfcfb5); }
.wine-detail__fact-section--single.wine-detail__fact-section--service { --wine-facts-tone: var(--wine-facts-tone-current, #cda9a1); }

.wine-detail__fact-section h2 {
	align-self: start;
	color: var(--wine-detail-facts-title-color, var(--ink));
	font-family: var(--wine-detail-facts-title-font-family, var(--font-title));
	font-size: var(--wine-detail-facts-title-font-size, clamp(38px, 4.4vw, 76px));
	font-weight: var(--wine-detail-facts-title-font-weight, 500);
	letter-spacing: -0.055em;
	line-height: 0.92;
	margin: 0;
	padding-right: clamp(30px, 5vw, 80px);
}

.wine-detail__fact-section--left h2 {
	grid-column: 1;
}

.wine-detail__fact-section--right h2 {
	grid-column: 3;
	padding-left: clamp(30px, 5vw, 80px);
	padding-right: 0;
	text-align: right;
}

.wine-detail__fact-section dl,
.wine-detail__fact-section dd {
	margin: 0;
}

.wine-detail__fact-section dl,
.wine-detail__fact-row {
	display: contents;
}

.wine-detail__fact-row dt,
.wine-detail__fact-row dd {
	border-bottom: 1px solid var(--wine-detail-facts-rule-color, color-mix(in srgb, var(--ink) 22%, transparent));
	min-height: 68px;
	padding: 16px 0 20px;
}

.wine-detail__fact-row dt {
	color: var(--wine-detail-facts-property-color, color-mix(in srgb, var(--ink) 76%, transparent));
	font-family: var(--wine-detail-facts-property-font-family, inherit);
	font-size: var(--wine-detail-facts-property-font-size, 17px);
	font-weight: var(--wine-detail-facts-property-font-weight, 400);
	grid-column: 2;
	line-height: 1.35;
	padding-right: clamp(24px, 3vw, 54px);
}

.wine-detail__fact-row dd {
	color: var(--wine-detail-facts-value-color, var(--ink));
	font-family: var(--wine-detail-facts-value-font-family, var(--font-title));
	font-size: var(--wine-detail-facts-value-font-size, 17px);
	font-weight: var(--wine-detail-facts-value-font-weight, 500);
	grid-column: 3;
	line-height: 1.35;
	text-align: right;
}

.wine-detail__fact-section--right .wine-detail__fact-row dd {
	grid-column: 2;
	text-align: right;
}

.wine-detail__fact-section--right .wine-detail__fact-row dt {
	grid-column: 1;
}

.wine-detail__fact-row.is-missing dd {
	color: var(--wine-detail-facts-missing-color, var(--clay));
	font-family: var(--font-accent);
	font-size: 21px;
	font-weight: 700;
}

.wine-detail__notes {
	display: grid;
	gap: clamp(60px, 10vw, 170px);
	grid-template-columns: 1.35fr 0.65fr;
	padding-bottom: clamp(120px, 14vw, 220px);
	padding-top: clamp(120px, 14vw, 220px);
}

.wine-detail__notes h2 {
	font-size: clamp(38px, 5vw, 76px);
	line-height: 1.02;
}

.wine-detail__notes > div:last-child {
	align-self: end;
	color: var(--muted);
	font-size: 18px;
	line-height: 1.7;
}

.wine-detail__request {
	background: var(--wine-detail-cta-background, var(--olive));
	margin-bottom: clamp(90px, 10vw, 160px);
	padding: clamp(70px, 9vw, 140px);
	text-align: center;
}

.wine-detail__request h2 {
	color: var(--wine-detail-cta-title-color, var(--bone));
	font-family: var(--wine-detail-cta-title-font-family, var(--font-title));
	font-size: var(--wine-detail-cta-title-font-size, clamp(42px, 6vw, 92px));
	font-weight: var(--wine-detail-cta-title-font-weight, 500);
	margin: 20px auto 0;
	max-width: 12ch;
}

.wine-detail__request .section-kicker {
	color: var(--green-light);
}

.wine-detail__availability {
	color: color-mix(in srgb, var(--bone) 76%, transparent);
	font-size: 16px;
	margin: 22px auto 0;
	max-width: 620px;
}

.wine-detail__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 42px;
}

.wine-detail__request .wine-detail__actions .gv-button {
	margin-top: 0;
}

.wine-detail__request .wine-detail__actions .gv-button--ghost {
	border-color: var(--bone);
	color: var(--bone);
}

.wine-detail__request .wine-detail__actions .gv-button--ghost:hover,
.wine-detail__request .wine-detail__actions .gv-button--ghost:focus-visible {
	background: var(--bone);
	color: var(--ink);
}

.wine-detail__next {
	align-items: flex-end;
	background: var(--wine-detail-next-background, var(--ink));
	color: var(--wine-detail-next-title-color, var(--bone));
	display: flex;
	justify-content: space-between;
	min-height: 0;
	overflow: hidden;
	padding: clamp(70px, 9vw, 140px) var(--site-pad);
	position: relative;
}

.wine-detail__next span {
	color: var(--wine-detail-next-label-color, currentColor);
	font-family: var(--wine-detail-next-label-font-family, var(--font-title));
	font-size: var(--wine-detail-next-label-font-size, 11px);
	font-weight: var(--wine-detail-next-label-font-weight, 700);
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.wine-detail__next strong {
	color: var(--wine-detail-next-title-color, currentColor);
	font-family: var(--wine-detail-next-title-font-family, var(--font-title));
	font-size: var(--wine-detail-next-title-font-size, clamp(70px, 11vw, 180px));
	font-weight: var(--wine-detail-next-title-font-weight, 500);
	letter-spacing: -0.065em;
	line-height: 0.8;
	text-align: right;
}

@media (max-width: 760px) {
	.wine-detail__hero {
		align-content: start;
		grid-template-columns: 1fr;
		height: auto;
		min-height: 100svh;
		padding: 128px 24px 48px;
	}

	.wine-detail__back {
		margin-bottom: 36px;
	}

	.wine-detail__hero h1 {
		font-size: clamp(64px, 21vw, 96px);
	}

	.wine-detail__bottle-wrap {
		height: 52svh;
		min-height: 390px;
	}

	.wine-detail__bottle-wrap img {
		height: min(50svh, 480px) !important;
		max-width: 76vw !important;
	}

	.experience-detail__image-wrap {
		height: 48svh;
		min-height: 340px;
	}

	.experience-detail__image-wrap img {
		height: min(44svh, 430px) !important;
		max-width: 86vw !important;
		width: 86vw !important;
	}

	.experience-detail__specs {
		grid-template-columns: 1fr 1fr;
	}

	.experience-detail .wine-detail__next {
		min-height: 190px;
		padding: 34px 24px;
	}

	.experience-detail .wine-detail__next strong {
		font-size: clamp(38px, 12vw, 56px);
	}

	.wine-detail__bottle-wrap > span {
		font-size: 34vw;
	}

	.wine-detail__scroll {
		display: none;
	}

	.wine-detail__intro,
	.wine-detail__notes {
		gap: 34px;
		grid-template-columns: 1fr;
		padding-bottom: 96px;
		padding-top: 96px;
	}

	.wine-detail__specs {
		grid-template-columns: 1fr 1fr;
	}

	.wine-detail__specs div,
	.wine-detail__specs div:first-child {
		border: 0;
		border-bottom: 1px solid var(--line);
		padding: 24px 12px;
	}

	.wine-detail__facts {
		padding: 0;
	}

	.wine-detail__facts-grid {
		padding: 0;
	}

	.wine-detail__fact-section {
		display: block;
		padding: 42px 24px;
	}

	.wine-detail__fact-section h2,
	.wine-detail__fact-section--right h2 {
		font-size: clamp(42px, 14vw, 64px);
		margin-bottom: 32px;
		padding: 0;
	}

	.wine-detail__fact-section--right h2 {
		text-align: right;
	}

	.wine-detail__fact-section dl {
		display: block;
	}

	.wine-detail__fact-row {
		display: grid;
		gap: 16px;
		grid-template-columns: minmax(0, 0.9fr) minmax(120px, 1.1fr);
	}

	.wine-detail__fact-section--right .wine-detail__fact-row dt {
		grid-column: 1;
	}

	.wine-detail__fact-section--right .wine-detail__fact-row dd {
		grid-column: 2;
		padding-right: 0;
		text-align: right;
	}

	.wine-detail__fact-row dt {
		font-size: 15px;
		grid-column: 1;
		padding-right: 16px;
	}

	.wine-detail__fact-row dd {
		font-size: 14px;
		grid-column: 2;
	}

	.wine-detail__fact-row.is-missing dd {
		font-size: 19px;
	}

	.wine-detail__request {
		margin-left: 24px;
		margin-right: 24px;
		padding: 64px 24px;
	}

	.wine-detail__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.wine-detail__actions .gv-button {
		justify-content: center;
	}

	.wine-detail__next {
		align-items: flex-start;
		flex-direction: column;
		min-height: 34svh;
		padding: 42px 24px;
	}

	.wine-detail__next strong {
		font-size: var(--wine-detail-next-title-font-size, 18vw);
		text-align: left;
	}
}

.place-detail {
	background: var(--paper);
}

.single-gianna_place .gianna-elementor-header-template,
.single-gianna_place .gianna-elementor-header-template > header,
.single-gianna_place .gianna-elementor-header-template .elementor-section,
.single-gianna_place .site-header,
.single-gianna_wine .gianna-elementor-header-template,
.single-gianna_wine .gianna-elementor-header-template > header,
.single-gianna_wine .gianna-elementor-header-template .elementor-section,
.single-gianna_wine .site-header,
.single-gianna_project .gianna-elementor-header-template,
.single-gianna_project .gianna-elementor-header-template > header,
.single-gianna_project .gianna-elementor-header-template .elementor-section,
.single-gianna_project .site-header {
	border: 0 !important;
	outline: 0;
}

.place-detail__hero {
	background-color: #abcddd;
	background-image: linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--blu-pontino, var(--clay)) 90%, transparent) 0%, color-mix(in srgb, var(--wp--preset--color--blu-pontino, var(--clay)) 52%, transparent) 52%, color-mix(in srgb, var(--wp--preset--color--blu-pontino, var(--clay)) 12%, transparent) 100%), var(--place-hero-image, none);
	background-position: center;
	background-size: cover;
	color: var(--bone);
	display: flex;
	min-height: 88svh;
	position: relative;
}

.place-detail__hero--sand { background-color: #dfcfb5; }
.place-detail__hero--sky { background-color: #abcddd; }
.place-detail__hero--sage { background-color: #b7c2a6; }
.place-detail__hero--rose { background-color: #cda9a1; }
.place-detail__hero--clay { background-color: #c79273; }
.place-detail__hero--plum { background-color: #9f7b7e; }
.place-detail__hero--mint { background-color: #b8cec2; }
.place-detail__hero--umber { background-color: #b39679; }

.place-detail__hero-copy {
	align-self: flex-end;
	padding-bottom: clamp(70px, 10vw, 132px);
	position: relative;
	z-index: 2;
}

.place-detail__back {
	color: color-mix(in srgb, var(--bone) 82%, transparent);
	display: inline-flex;
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	gap: 8px;
	letter-spacing: 0.1em;
	margin-bottom: clamp(70px, 10vw, 150px);
	text-transform: uppercase;
}

.place-detail__back::before {
	content: '\2190';
}

.place-detail__hero .section-kicker {
	color: var(--blue-light);
}

.place-detail__hero h1 {
	color: var(--bone);
	font-size: clamp(64px, 9.5vw, 160px);
	letter-spacing: -0.065em;
	line-height: 0.82;
	margin: 14px 0 24px;
	max-width: 1020px;
	text-wrap: balance;
}

/* Global hero hierarchy: shared WordPress theme colors across every hero type. */
.hero h1,
.hero .hero-title,
.page-hero h1,
.single-hero h1,
.gv-kit-hero h1,
.gv-site-hero h1,
.place-detail__hero h1,
.wine-detail__hero h1 {
	color: var(--wp--preset--color--oro-luce, var(--gold)) !important;
}

.hero .section-kicker,
.hero .gv-kicker,
.page-hero .section-kicker,
.page-hero .gv-kicker,
.single-hero .section-kicker,
.single-hero .gv-kicker,
.gv-kit-hero .gv-kicker,
.gv-site-hero .gv-kicker,
.place-detail__hero .section-kicker,
.place-detail__hero .gv-kicker,
.wine-detail__hero .section-kicker,
.wine-detail__hero .gv-kicker {
	color: var(--wp--preset--color--blu-chiaro, var(--blue-light)) !important;
}

.place-detail__location {
	font-family: var(--font-title);
	font-size: clamp(18px, 2vw, 28px);
	margin: 0;
}

.place-detail__scroll {
	bottom: 34px;
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin: 0;
	position: absolute;
	right: max(24px, calc((100vw - var(--max)) / 2));
	text-transform: uppercase;
	writing-mode: vertical-rl;
}

.place-detail__intro {
	background: var(--paper);
	display: grid;
	gap: clamp(40px, 8vw, 130px);
	grid-template-columns: minmax(140px, 0.32fr) minmax(0, 1fr);
	padding-bottom: clamp(90px, 12vw, 180px);
	padding-top: clamp(90px, 12vw, 180px);
}

.place-detail__lead {
	font-family: var(--font-title);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 0.98;
	margin: 0 0 46px;
	max-width: 980px;
}

.place-detail__content {
	color: var(--muted);
	font-size: 18px;
	line-height: 1.75;
	max-width: 760px;
}

.place-detail__content h2 {
	color: var(--ink);
	font-size: clamp(30px, 3vw, 46px);
	margin: 50px 0 18px;
}

.place-detail__facts {
	background: var(--surface-dim);
	border-bottom: 1px solid var(--line);
	border-top: 1px solid var(--line);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-bottom: 0;
	padding-bottom: clamp(34px, 4vw, 58px);
	padding-top: clamp(34px, 4vw, 58px);
}

.place-detail__intro,
.place-detail__facts,
.place-detail__planning,
.place-detail__links {
	box-shadow: 0 0 0 100vmax var(--place-section-background, transparent);
	clip-path: inset(0 -100vmax);
}

.place-detail__intro {
	--place-section-background: var(--paper);
}

.place-detail__facts {
	--place-section-background: var(--surface-dim);
}

.place-detail__facts div {
	border-left: 1px solid var(--line);
	min-height: 230px;
	padding: 38px 32px;
}

.place-detail__facts div:first-child {
	border-left: 0;
}

.place-detail__facts span,
.place-detail__facts strong {
	display: block;
}

.place-detail__facts span {
	color: var(--muted);
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.11em;
	margin-bottom: 28px;
	text-transform: uppercase;
}

.place-detail__facts strong {
	font-family: var(--font-title);
	font-size: clamp(20px, 2vw, 30px);
	font-weight: 500;
	line-height: 1.25;
}

.place-detail__planning {
	--place-section-background: var(--olive-deep);
	background: var(--olive-deep);
	color: var(--bone);
	display: grid;
	gap: clamp(40px, 8vw, 120px);
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);
	margin-bottom: 0;
	padding-bottom: clamp(100px, 12vw, 170px);
	padding-top: clamp(100px, 12vw, 170px);
}

.place-detail__planning .section-kicker {
	color: var(--blue-light);
}

.place-detail__planning h2,
.place-detail__links h2,
.place-detail__cellar-cta h2 {
	font-size: clamp(42px, 5.8vw, 88px);
	letter-spacing: -0.055em;
	line-height: 0.96;
	margin: 14px 0 0;
}

.place-detail__planning > p {
	align-self: end;
	color: color-mix(in srgb, var(--bone) 78%, transparent);
	font-size: 18px;
	line-height: 1.7;
	margin: 0;
}

.place-detail__links {
	--place-section-background: var(--surface-container);
	align-items: end;
	background: var(--surface-container);
	display: grid;
	gap: clamp(50px, 8vw, 130px);
	grid-template-columns: minmax(0, 1fr) auto;
	padding-bottom: clamp(100px, 12vw, 170px);
	padding-top: clamp(100px, 12vw, 170px);
}

.place-detail__actions {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 26px;
	min-width: 230px;
}

.place-detail__cellar-cta {
	text-align: center;
}

.place-detail__cellar-cta h2 {
	margin: 0 auto 22px;
	max-width: 1040px;
}

.place-detail__next {
	padding: clamp(48px, 6vw, 82px) max(var(--site-pad), calc((100vw - var(--max)) / 2));
}

.place-detail__next strong {
	font-size: clamp(42px, 7vw, 96px);
	line-height: 0.88;
	max-width: 72%;
}

@media (max-width: 760px) {
	.place-detail__hero {
		background-image: linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--blu-pontino, var(--clay)) 34%, transparent) 0%, color-mix(in srgb, var(--wp--preset--color--blu-pontino, var(--clay)) 90%, transparent) 100%), var(--place-hero-image, none);
		min-height: 82svh;
	}

	.place-detail__back {
		margin-bottom: 90px;
	}

	.place-detail__scroll {
		display: none;
	}

	.place-detail__intro,
	.place-detail__planning,
	.place-detail__links {
		grid-template-columns: 1fr;
	}

	.place-detail__intro {
		gap: 32px;
	}

	.place-detail__facts {
		grid-template-columns: 1fr;
	}

	.place-detail__facts div,
	.place-detail__facts div:first-child {
		border-left: 0;
		border-top: 1px solid var(--line);
		min-height: 0;
		padding-bottom: 44px;
		padding-top: 44px;
	}

	.place-detail__facts div:first-child {
		border-top: 0;
	}

	.place-detail__next {
		gap: 28px;
		padding: 36px 24px 42px;
	}

	.place-detail__next strong {
		font-size: clamp(38px, 12vw, 54px);
		max-width: 100%;
	}

}

.gv-experience-carousel {
	background: var(--surface-container, var(--mist));
	overflow: hidden;
	padding: clamp(76px, 9vw, 142px) 0;
}

.gv-experience-carousel .gv-section-head {
	margin-bottom: clamp(34px, 5vw, 68px);
}

.gv-experience-carousel__viewport {
	margin-right: max(var(--site-pad), calc((100vw - var(--max)) / 2));
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.gv-experience-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.gv-experience-carousel__track {
	display: flex;
	gap: 18px;
	padding-right: max(var(--site-pad), calc((100vw - var(--max)) / 2));
}

.gv-experience-carousel__card {
	background: var(--bone);
	flex: 0 0 min(67vw, 620px);
	min-height: 490px;
	scroll-snap-align: start;
}

.gv-experience-carousel__card:nth-child(2n) {
	background: var(--paper);
}

.gv-experience-carousel__card:nth-child(3n) {
	background: var(--blue-light);
}

.gv-experience-carousel__card a {
	color: var(--ink);
	display: flex;
	flex-direction: column;
	min-height: inherit;
	padding: clamp(27px, 4vw, 52px);
	text-decoration: none;
}

.gv-experience-carousel__number {
	color: var(--gold);
	font-family: var(--font-title);
	font-size: 15px;
	letter-spacing: .12em;
	margin-bottom: clamp(42px, 7vw, 90px);
}

.gv-experience-carousel__card .gv-kicker {
	margin-bottom: 15px;
}

.gv-experience-carousel__card h3 {
	font-size: clamp(34px, 4.4vw, 64px);
	line-height: .98;
	margin: 0 0 20px;
}

.gv-experience-carousel__card > a > p:not(.gv-kicker) {
	color: var(--muted);
	font-size: 17px;
	line-height: 1.55;
	margin: 0;
	max-width: 34ch;
}

.gv-experience-carousel__card dl {
	border-top: 1px solid color-mix(in srgb, var(--ink) 18%, transparent);
	margin: auto 0 22px;
	padding-top: 14px;
}

.gv-experience-carousel__card dl div {
	display: flex;
	gap: 20px;
	justify-content: space-between;
	padding: 4px 0;
}

.gv-experience-carousel__card dt {
	color: var(--muted);
	font-size: 13px;
}

.gv-experience-carousel__card dd {
	font-size: 14px;
	margin: 0;
	text-align: right;
}

.gv-experience-carousel__controls {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: flex-end;
	margin-top: 25px;
}

.gv-experience-carousel__controls button {
	background: transparent;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	color: var(--ink);
	cursor: pointer;
	font-family: var(--font-body);
	font-size: 14px;
	padding: 0 0 5px;
}

.gv-experience-carousel__controls p {
	color: var(--muted);
	font-size: 13px;
	margin: 0 auto 0 0;
}

.gv-experience-carousel__empty {
	color: var(--muted);
	font-size: 18px;
}

.gv-experience-showcase .gv-wine-showcase__watermark {
	color: color-mix(in srgb, var(--ink) 4.5%, transparent);
}

.gv-experience-slide {
	isolation: isolate;
}

.gv-experience-slide::before {
	background: linear-gradient(180deg, transparent 42%, color-mix(in srgb, var(--ink) 13%, transparent));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.gv-experience-slide__title {
	align-items: flex-start;
	justify-content: flex-start;
	padding: clamp(72px, 8vw, 110px) clamp(26px, 4vw, 54px) 150px;
}

.gv-experience-slide__title span {
	font-size: clamp(54px, 7vw, 110px);
	line-height: 0.82;
	max-width: 100%;
	text-align: left;
}

.gv-experience-slide__copy {
	bottom: clamp(22px, 3vw, 38px);
	display: grid;
	gap: 8px;
	left: clamp(24px, 4vw, 52px);
	max-width: min(68%, 480px);
	pointer-events: none;
	position: absolute;
	z-index: 5;
}

.gv-experience-slide__kicker {
	color: var(--clay);
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	margin: 0;
	text-transform: uppercase;
}

.gv-experience-slide__excerpt {
	color: var(--ink);
	display: -webkit-box;
	font-size: clamp(13px, 1.2vw, 16px);
	line-height: 1.45;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.gv-experience-slide__facts {
	display: flex;
	gap: 14px;
}

.gv-experience-slide__facts span {
	border-top: 1px solid color-mix(in srgb, var(--ink) 35%, transparent);
	color: color-mix(in srgb, var(--ink) 74%, transparent);
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	padding-top: 6px;
	text-transform: uppercase;
}

@media (max-width: 640px) {
	.gv-experience-slide__title {
		padding: 62px 18px 148px;
	}

	.gv-experience-slide__title span {
		font-size: clamp(40px, 12vw, 62px);
		line-height: .86;
	}

	.gv-experience-slide__copy {
		bottom: 18px;
		left: 18px;
		max-width: calc(100% - 36px);
	}

	.gv-experience-slide__excerpt {
		font-size: 12px;
	}
}

.experience-purchase {
	background: var(--olive);
	color: var(--bone);
	margin: clamp(48px, 7vw, 100px) auto 0;
	max-width: 920px;
	padding: clamp(38px, 6vw, 76px);
	text-align: center;
}

.experience-purchase h2 {
	font-size: clamp(34px, 5vw, 62px);
	margin: 0 0 18px;
}

.experience-purchase p:not(.section-kicker) {
	color: var(--bone);
	margin: 0 auto 28px;
	max-width: 55ch;
}

.experience-purchase .section-kicker {
	color: var(--green-light);
}

@media (max-width: 700px) {
	.gv-experience-carousel__viewport {
		margin-right: var(--site-pad);
	}

	.gv-experience-carousel__track {
		padding-right: var(--site-pad);
	}

	.gv-experience-carousel__card {
		flex-basis: 84vw;
		min-height: 450px;
	}

	.gv-experience-carousel__controls p {
		display: none;
	}

	.gv-experience-carousel__controls {
		justify-content: space-between;
	}
}

/* Fullscreen experience slideshow, adapted to Cantina Villa Gianna's type and palette. */
.gv-experience-slideshow__stage {
	height: calc(100svh + var(--experience-scroll, 400svh));
	position: relative;
	width: 100vw;
}

.gv-experience-slideshow {
	--experience-background-one: var(--blue-light);
	--experience-background-two: var(--paper);
	background: linear-gradient(90deg, var(--experience-background-one) 0 50%, var(--experience-background-two) 50% 100%);
	color: var(--ink);
	height: 100svh;
	isolation: isolate;
	min-height: 680px;
	overflow: hidden;
	position: sticky;
	top: 0;
	width: 100vw;
}

.gv-experience-slideshow__watermarks {
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

.gv-experience-slideshow__watermark {
	color: color-mix(in srgb, var(--ink) 4.5%, transparent);
	font-family: var(--font-title);
	font-size: clamp(130px, 17vw, 280px);
	font-weight: 700;
	left: -2vw;
	letter-spacing: -.075em;
	line-height: .72;
	opacity: 0;
	position: absolute;
	top: 31%;
	transform: translate3d(0, 14%, 0) translateY(-50%);
	transition: opacity 840ms ease, transform 1800ms cubic-bezier(.22, 1, .36, 1);
	white-space: nowrap;
}

.gv-experience-slideshow__watermark.is-before {
	transform: translate3d(0, -14%, 0) translateY(-50%);
}

.gv-experience-slideshow__watermark.is-active {
	opacity: 1;
	transform: translate3d(0, 0, 0) translateY(-50%);
}

.gv-experience-slideshow:focus-visible {
	outline: 2px solid var(--clay);
	outline-offset: -7px;
}

.gv-experience-slideshow__images,
.gv-experience-slideshow__image {
	inset: 0;
	position: absolute;
}

.gv-experience-slideshow__images {
	z-index: 1;
}

.gv-experience-slideshow__image {
	height: 62%;
	left: 10%;
	margin: 0;
	opacity: 0;
	overflow: hidden;
	top: 50%;
	transform: translate3d(0, 10%, 0) translateY(-50%) rotate(3deg) scale(1.12);
	transition: opacity 960ms ease, transform 2100ms cubic-bezier(.22, 1, .36, 1);
	visibility: hidden;
	width: 54%;
}

.gv-experience-slideshow__image.is-before {
	transform: translate3d(0, -10%, 0) translateY(-50%) rotate(-3deg) scale(1.12);
}

.gv-experience-slideshow__image.is-active {
	opacity: 1;
	transform: translate3d(0, 0, 0) translateY(-50%) rotate(0) scale(1);
	visibility: visible;
}

.gv-experience-slideshow__image img {
	height: 100% !important;
	object-fit: cover;
	transform: scale(1.03);
	transition: transform 2400ms cubic-bezier(.22, 1, .36, 1);
	width: 100% !important;
}

.gv-experience-slideshow__image.is-active img {
	transform: scale(1);
}

.gv-experience-slideshow__details {
	height: 62%;
	position: absolute;
	right: 6%;
	top: 19%;
	transform: none;
	width: 28%;
	z-index: 3;
}

.gv-experience-slideshow__detail {
	left: 0;
	top: 50%;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transform: translate3d(0, 52px, 0) translateY(-50%);
	transition: opacity 760ms ease, transform 1560ms cubic-bezier(.22, 1, .36, 1), visibility 0s linear 1560ms;
	visibility: hidden;
	width: 100%;
}

.gv-experience-slideshow__detail.is-before {
	transform: translate3d(0, -52px, 0) translateY(-50%);
}

.gv-experience-slideshow__detail.is-active {
	opacity: 1;
	pointer-events: auto;
	transform: translate3d(0, 0, 0) translateY(-50%);
	transition-delay: 460ms;
	visibility: visible;
}

.gv-experience-slideshow__category {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: clamp(20px, 2vw, 30px);
	font-weight: 700;
	letter-spacing: -.035em;
	margin: 0 0 18px;
}

.gv-experience-slideshow__detail h2 {
	font-family: var(--font-title);
	font-size: clamp(46px, 4.5vw, 74px);
	font-weight: 600;
	letter-spacing: -.065em;
	line-height: .92;
	margin: 0;
	text-wrap: balance;
}

.gv-experience-slideshow__meta {
	margin-left: 0;
	margin-top: clamp(24px, 4vh, 38px);
	width: 100%;
}

.gv-experience-slideshow__meta > p {
	color: var(--muted);
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 18px;
}

.gv-experience-slideshow__meta > div {
	display: flex;
	gap: 16px;
	margin-bottom: 18px;
}

.gv-experience-slideshow__meta > div span {
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	padding-top: 7px;
	text-transform: uppercase;
}

.gv-experience-slideshow__dots {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 4vh, 40px);
	left: 6%;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
}

.gv-experience-slideshow__dots button {
	background: transparent;
	border: 0;
	color: color-mix(in srgb, var(--ink) 42%, transparent);
	cursor: pointer;
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	padding: 4px;
	transform: rotate(90deg);
	transition: color 480ms ease, transform 480ms ease;
}

.gv-experience-slideshow__dots button[aria-selected="true"] {
	color: var(--clay);
	transform: rotate(90deg) scale(1.18);
}

.gv-experience-slideshow__nav {
	bottom: 5%;
	display: flex;
	gap: 20px;
	left: 6%;
	position: absolute;
	z-index: 5;
}

.gv-experience-slideshow__nav button {
	background: transparent;
	border: 0;
	border-bottom: 1px solid currentColor;
	color: var(--ink);
	cursor: pointer;
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	padding: 0 0 5px;
	text-transform: uppercase;
}

.gv-experience-slideshow__nav button:disabled {
	opacity: .28;
}

.gv-experience-slideshow__fraction {
	align-items: center;
	bottom: 5%;
	display: flex;
	flex-direction: column;
	font-family: var(--font-title);
	font-size: 13px;
	font-weight: 600;
	margin: 0;
	position: absolute;
	right: 6%;
	z-index: 5;
}

.gv-experience-slideshow__fraction i {
	background: color-mix(in srgb, var(--ink) 30%, transparent);
	display: block;
	height: 30px;
	margin: 9px 0;
	width: 1px;
}

.gv-experience-slideshow__fraction span:last-child {
	opacity: .5;
}

@media (max-width: 900px) {
	.gv-experience-slideshow {
		background: linear-gradient(180deg, var(--experience-background-one) 0 40.2%, var(--experience-background-two) 40.2% 100%);
		color: var(--bone);
		min-height: 620px;
	}

	.gv-experience-slideshow__image,
	.gv-experience-slideshow__image.is-before {
		height: 100%;
		left: 0;
		top: 0;
		transform: translate3d(0, 8%, 0) scale(1.1);
		width: 100%;
	}

	.gv-experience-slideshow__image.is-before {
		transform: translate3d(0, -8%, 0) scale(1.1);
	}

	.gv-experience-slideshow__image.is-active {
		transform: translate3d(0, 0, 0) scale(1);
	}

	.gv-experience-slideshow__images::after {
		background: linear-gradient(180deg, color-mix(in srgb, var(--olive-deep) 18%, transparent), color-mix(in srgb, var(--olive-deep) 70%, transparent));
		content: "";
		inset: 0;
		position: absolute;
	}

	.gv-experience-slideshow__watermarks {
		z-index: 2;
	}

	.gv-experience-slideshow__watermark {
		color: color-mix(in srgb, var(--bone) 10%, transparent);
		font-size: clamp(96px, 24vw, 190px);
		left: -4vw;
		top: 24%;
	}

	.gv-experience-slideshow__details {
		height: 100%;
		left: 10%;
		right: auto;
		top: 50%;
		transform: translateY(-50%);
		width: 80%;
	}

	.gv-experience-slideshow__detail {
		text-align: center;
		top: 42%;
		transform: translate3d(0, 52px, 0) translateY(-50%);
	}

	.gv-experience-slideshow__detail.is-before {
		transform: translate3d(0, -52px, 0) translateY(-50%);
	}

	.gv-experience-slideshow__detail.is-active {
		transform: translate3d(0, 0, 0) translateY(-50%);
	}

	.gv-experience-slideshow__category {
		color: var(--gold);
		font-size: 20px;
		margin: 0 0 12px;
	}

	.gv-experience-slideshow__detail h2 {
		color: var(--bone);
		font-size: clamp(46px, 10vw, 76px);
		line-height: .95;
	}

	.gv-experience-slideshow__meta {
		margin: 24px auto 0;
		width: min(88%, 430px);
	}

	.gv-experience-slideshow__meta > p,
	.gv-experience-slideshow__meta > div span {
		color: color-mix(in srgb, var(--bone) 78%, transparent);
	}

	.gv-experience-slideshow__meta > div {
		justify-content: center;
	}

	.gv-experience-slideshow__meta .gv-text-link {
		color: var(--bone);
	}

	.gv-experience-slideshow__dots {
		bottom: 5%;
		flex-direction: row;
		left: 7%;
		top: auto;
		transform: none;
	}

	.gv-experience-slideshow__dots button,
	.gv-experience-slideshow__dots button[aria-selected="true"] {
		color: var(--bone);
		transform: none;
	}

	.gv-experience-slideshow__dots button:not([aria-selected="true"]) {
		opacity: .45;
	}

	.gv-experience-slideshow__nav {
		display: none;
	}

	.gv-experience-slideshow__fraction {
		color: var(--bone);
		right: 7%;
	}

	.gv-experience-slideshow__fraction i {
		background: color-mix(in srgb, var(--bone) 35%, transparent);
	}
}

@media (max-width: 520px) {
	.gv-experience-slideshow__details {
		left: 7%;
		width: 86%;
	}

	.gv-experience-slideshow__detail {
		top: 39%;
	}

	.gv-experience-slideshow__detail h2 {
		font-size: clamp(39px, 12vw, 58px);
	}

	.gv-experience-slideshow__meta > p {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}

	.gv-experience-slideshow__meta > div {
		display: none;
	}

	.gv-experience-slideshow__dots {
		gap: 12px;
	}
}

@media (max-width: 900px) {
	.gv-experience-slideshow {
		background: linear-gradient(180deg, var(--experience-background-one) 0 40.2%, var(--experience-background-two) 40.2% 100%);
		color: var(--ink);
	}

	.gv-experience-slideshow__image,
	.gv-experience-slideshow__image.is-before {
		height: 46%;
		left: 8%;
		top: 8%;
		transform: translate3d(0, 10%, 0) rotate(3deg) scale(1.1);
		width: 84%;
	}

	.gv-experience-slideshow__image.is-before {
		transform: translate3d(0, -10%, 0) rotate(-3deg) scale(1.1);
	}

	.gv-experience-slideshow__image.is-active {
		transform: translate3d(0, 0, 0) rotate(0) scale(1);
	}

	.gv-experience-slideshow__images::after {
		display: none;
	}

	.gv-experience-slideshow__watermarks {
		z-index: 0;
	}

	.gv-experience-slideshow__watermark {
		color: color-mix(in srgb, var(--ink) 5%, transparent);
		font-size: clamp(92px, 21vw, 180px);
		left: -3vw;
		top: 13%;
	}

	.gv-experience-slideshow__details {
		height: 34%;
		left: 8%;
		right: auto;
		top: 59%;
		transform: none;
		width: 84%;
	}

	.gv-experience-slideshow__detail {
		text-align: left;
		top: 0;
		transform: translate3d(0, 52px, 0);
	}

	.gv-experience-slideshow__detail.is-before {
		transform: translate3d(0, -52px, 0);
	}

	.gv-experience-slideshow__detail.is-active {
		transform: translate3d(0, 0, 0);
	}

	.gv-experience-slideshow__category {
		color: var(--clay);
		font-size: 19px;
		margin: 0 0 8px;
	}

	.gv-experience-slideshow__detail h2 {
		color: var(--ink);
		font-size: clamp(40px, 7.5vw, 66px);
		line-height: .92;
	}

	.gv-experience-slideshow__meta {
		margin: 16px 0 0;
		width: min(100%, 650px);
	}

	.gv-experience-slideshow__meta > p,
	.gv-experience-slideshow__meta > div span {
		color: var(--muted);
	}

	.gv-experience-slideshow__meta > div {
		justify-content: flex-start;
	}

	.gv-experience-slideshow__meta .gv-text-link {
		color: var(--ink);
	}

	.gv-experience-slideshow__dots button,
	.gv-experience-slideshow__dots button[aria-selected="true"],
	.gv-experience-slideshow__fraction {
		color: var(--ink);
	}

	.gv-experience-slideshow__fraction i {
		background: color-mix(in srgb, var(--ink) 30%, transparent);
	}
}

@media (max-width: 520px) {
	.gv-experience-slideshow {
		background: linear-gradient(180deg, var(--experience-background-one) 0 36%, var(--experience-background-two) 36% 100%);
		min-height: 650px;
	}

	.gv-experience-slideshow__image,
	.gv-experience-slideshow__image.is-before {
		height: 40%;
		left: 7%;
		top: 8%;
		width: 86%;
	}

	.gv-experience-slideshow__details {
		height: 42%;
		left: 7%;
		top: 52%;
		width: 86%;
	}

	.gv-experience-slideshow__detail {
		top: 0;
	}

	.gv-experience-slideshow__detail h2 {
		font-size: clamp(36px, 10.5vw, 52px);
	}

	.gv-experience-slideshow__meta > p {
		-webkit-line-clamp: 3;
	}

	.gv-experience-slideshow__dots {
		bottom: 3%;
	}

	.gv-experience-slideshow__fraction {
		bottom: 3%;
	}
}

/* Experience images crossfade without directional movement, rotation or zoom. */
.gv-experience-slideshow__image,
.gv-experience-slideshow__image.is-before,
.gv-experience-slideshow__image.is-active {
	transform: translateY(-50%);
	transition: opacity 1360ms ease, visibility 0s linear 1360ms;
}

.gv-experience-slideshow__image.is-active {
	transition: opacity 1360ms ease, visibility 0s linear 0s;
}

.gv-experience-slideshow__image img,
.gv-experience-slideshow__image.is-active img {
	transform: none;
	transition: none;
}

@media (max-width: 900px) {
	.gv-experience-slideshow__image,
	.gv-experience-slideshow__image.is-before,
	.gv-experience-slideshow__image.is-active {
		transform: none;
	}
}

/* Immersive homepage and cellar gateway. */
body.is-real-home {
	background: var(--paper);
}

body.is-real-home .elementor,
body.is-real-home .elementor-section,
body.is-real-home .elementor-container,
body.is-real-home .elementor-column,
body.is-real-home .elementor-widget-wrap,
body.is-real-home .elementor-widget-gianna_home_cover,
body.is-real-home .elementor-widget-container {
	max-width: none;
	padding: 0;
	width: 100%;
}

.gianna-immersive-home {
	background: var(--paper);
	color: var(--bone);
	isolation: isolate;
	position: relative;
	width: 100%;
}

.gianna-intro-stage {
	background: var(--paper);
	height: 300svh;
	isolation: isolate;
	position: relative;
}

.gianna-intro {
	align-items: center;
	background-color: var(--paper);
	background-image: var(--gianna-intro-poster);
	background-position: center;
	background-size: cover;
	display: grid;
	height: 100svh;
	justify-items: center;
	min-height: 100svh;
	overflow: hidden;
	position: sticky;
	top: 0;
	z-index: 2;
}

.gianna-intro--has-video {
	background-color: var(--paper);
	background-image: none;
}

.gianna-intro__video {
	bottom: auto;
	height: 100%;
	left: 50%;
	object-fit: cover;
	object-position: center;
	opacity: var(--intro-video-opacity, 1);
	position: absolute;
	right: auto;
	top: 50%;
	transform: translate(-50%, -50%) scale(var(--intro-video-scale, 1));
	transition: opacity 80ms linear, transform 180ms linear;
	width: 100%;
	z-index: 0;
}

.gianna-intro__video-loader {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity 320ms ease, visibility 0s linear 320ms;
	visibility: hidden;
	z-index: 1;
}

.gianna-intro__video-spinner {
	animation: gianna-intro-video-loading 850ms linear infinite;
	border: 2px solid color-mix(in srgb, var(--ink) 22%, transparent);
	border-radius: 50%;
	border-top-color: var(--ink);
	height: clamp(34px, 4vw, 48px);
	width: clamp(34px, 4vw, 48px);
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-video-waiting .gianna-intro__video-loader {
	opacity: 1;
	transition-delay: 0s;
	visibility: visible;
}

@keyframes gianna-intro-video-loading {
	to {
		transform: rotate(1turn);
	}
}

.gianna-intro__content {
	align-items: center;
	display: grid;
	grid-template-rows: auto 1fr auto;
	height: 100%;
	justify-items: center;
	opacity: var(--intro-layer-opacity, 1);
	padding: max(40px, env(safe-area-inset-top)) var(--site-pad) max(32px, env(safe-area-inset-bottom));
	position: relative;
	text-align: center;
	transition: opacity 180ms linear, transform 1800ms cubic-bezier(.22, 1, .36, 1);
	width: 100%;
	z-index: 2;
}

.gianna-intro__brand {
	align-items: center;
	align-self: start;
	display: flex;
	flex-direction: row;
	gap: 12px;
	grid-row: 1;
	margin-top: clamp(2vh, 5vh, 64px);
	text-shadow: 0 16px 56px rgba(0, 0, 0, .32);
	transition: opacity 440ms ease, transform 440ms ease;
}

.gianna-intro__brand--opening {
	display: none;
}

.gianna-intro__opening-logos {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: center;
	width: 100%;
}

.gianna-intro__opening-name {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	isolation: isolate;
	justify-content: center;
	position: relative;
	width: 440px;
}

.gianna-intro__opening-name .gianna-intro__logo {
	position: relative;
	z-index: 1;
}

.gianna-intro__opening-name .gianna-intro__logo--secondary {
	width: 100%;
}

.gianna-intro__opening-location {
	color: var(--ink);
	font-family: var(--e-global-typography-gianna-ui-font-family, var(--font-title));
	font-size: clamp(11px, 1vw, 15px);
	font-weight: var(--e-global-typography-gianna-ui-font-weight, 700);
	letter-spacing: .18em;
	line-height: 1.2;
	margin: 0;
	text-transform: var(--e-global-typography-gianna-ui-text-transform, uppercase);
}

.gianna-intro__logo {
	height: auto;
	object-fit: contain;
}

.gianna-intro__brand--final {
	align-items: center;
	flex-direction: column;
	justify-content: center;
}

.gianna-intro__final-mark {
	display: block;
	height: auto;
	max-width: 420px;
	object-fit: contain;
	width: 30vw;
}

.gianna-intro__logo--primary {
	width: 220px;
}

.gianna-intro__logo--secondary {
	width: 440px;
}

@media (max-width: 1024px) {
	.gianna-intro__brand--final {
		flex-wrap: nowrap;
		justify-content: center;
		max-width: calc(100vw - 44px);
		overflow: visible;
		width: 520px;
	}

	.gianna-intro__logo--primary {
		width: 165px;
	}

	.gianna-intro__logo--secondary {
		width: 330px;
	}

	.gianna-intro__opening-name {
		width: 330px;
	}

	.gianna-intro__final-mark {
		max-width: 300px;
		width: 76vw;
	}

}

.gianna-intro__story {
	align-self: center;
	font-family: var(--font-accent);
	font-size: clamp(24px, 3vw, 46px);
	font-weight: 600;
	margin: 0;
	text-shadow: 0 10px 38px rgba(0, 0, 0, .42);
}

.gianna-intro__enter {
	align-items: center;
	align-self: end;
	color: var(--bone);
	display: inline-flex;
	flex-direction: column;
	font-family: var(--font-title);
	font-size: clamp(18px, 1.7vw, 23px);
	font-weight: 600;
	gap: 8px;
	grid-row: 3;
	letter-spacing: .02em;
	line-height: 1.25;
	margin-bottom: clamp(12px, 3vh, 36px);
	padding: 10px 8px;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 440ms ease, transform 440ms ease;
}

.gianna-intro__enter svg {
	fill: none;
	height: 18px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
	width: 18px;
}

.gianna-intro__enter:hover,
.gianna-intro__enter:focus-visible {
	color: var(--blue-light);
	transform: translateY(2px);
}

html.landing-intro-locked,
html.landing-intro-locked body {
	overscroll-behavior: none;
	overflow: hidden;
}

html.is-loading body.is-real-home .gianna-intro,
html.has-js body.is-real-home.landing-intro-sequence:not(.landing-intro-ready) .gianna-intro {
	background: var(--paper);
}

html.is-loading body.is-real-home .gianna-intro__video,
html.has-js body.is-real-home.landing-intro-sequence:not(.landing-intro-ready) .gianna-intro__video {
	border-radius: 6px;
	bottom: auto;
	height: 60vh;
	left: 50%;
	opacity: 0;
	right: auto;
	top: 50%;
	transform: translate(-50%, -50%) scale(1);
	transition:
		border-radius 1600ms ease,
		height 1600ms var(--landing-motion-ease),
		opacity 1200ms ease,
		width 1600ms var(--landing-motion-ease);
	width: 80vw;
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-video-in:not(.landing-intro-ready) .gianna-intro__video {
	opacity: 1;
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-video-wide:not(.landing-intro-ready) .gianna-intro__video {
	width: 100vw;
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-video-full:not(.landing-intro-ready) .gianna-intro__video {
	border-radius: 0;
	height: 100vh;
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-direct-video .gianna-intro__video {
	border-radius: 0;
	height: 100vh;
	transition: opacity 320ms ease;
	width: 100vw;
}

html.has-js body.is-real-home.landing-intro-sequence .gianna-intro__brand {
	left: 50%;
	margin: 0;
	position: absolute;
	z-index: 3;
}

html.has-js body.is-real-home.landing-intro-sequence .gianna-intro__brand--opening {
	display: flex;
	flex-direction: column;
	gap: clamp(9px, 1.5vh, 16px);
	opacity: 1;
	top: 50%;
	transform: translate(-50%, -50%);
	transition:
		opacity 700ms ease,
		top 2000ms var(--landing-motion-ease),
		transform 2000ms var(--landing-motion-ease),
		visibility 0s linear;
	visibility: visible;
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-opening-up .gianna-intro__brand--opening {
	top: calc(clamp(18px, 5vh, 54px) + 1px);
	transform: translate(-50%, 0);
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-opening-faded .gianna-intro__brand--opening {
	opacity: 0;
	pointer-events: none;
	transition-delay: 0s, 0s, 0s, 700ms;
	visibility: hidden;
}

html.has-js body.is-real-home.landing-intro-sequence .gianna-intro__brand--final {
	clip-path: inset(100% 0 0 0);
	opacity: 0;
	top: clamp(18px, 5vh, 54px);
	transform: translate(-50%, 0);
	transition: opacity 700ms ease;
	z-index: 4;
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-logo-wipe .gianna-intro__brand--final {
	clip-path: inset(
		var(--landing-logo-clip-top, 100%)
		0
		var(--landing-logo-clip-bottom, 0)
		0
	);
	opacity: 1;
	transition: none;
}

html.has-js body.is-real-home.landing-intro-sequence.landing-intro-final-brand .gianna-intro__brand--final {
	clip-path: inset(0);
	opacity: 1;
}

html.is-loading body.is-real-home .gianna-intro__enter,
html.has-js body.is-real-home.landing-intro-sequence .gianna-intro__enter {
	opacity: 0;
	pointer-events: none;
	transform: translateY(18px);
	transition: color 440ms ease, opacity 900ms ease, transform 900ms var(--landing-motion-ease);
}

html.has-js body.is-real-home.landing-intro-ready .gianna-intro__enter {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.gianna-immersive-home.is-intro-revealed .gianna-intro {
	pointer-events: none;
}

.gianna-immersive-home.has-skipped-intro .gianna-intro {
	display: none;
}

.gianna-immersive-home.has-skipped-intro .gianna-intro-stage {
	height: 100svh;
}

.gianna-visual-menu {
	background: var(--paper);
	height: 100svh;
	margin-top: -100svh;
	min-height: 100svh;
	overflow: hidden;
	position: sticky;
	top: 0;
	width: 100%;
	z-index: 1;
}

.gianna-immersive-home.is-menu-interlude .gianna-visual-menu,
.gianna-immersive-home.is-menu-entering .gianna-visual-menu {
	z-index: 3;
}

.gianna-immersive-home.has-skipped-intro .gianna-visual-menu {
	margin-top: 0;
}

.gianna-menu-interlude {
	align-content: center;
	color: var(--ink);
	display: grid;
	gap: clamp(20px, 3vh, 34px);
	inset: 0;
	justify-items: center;
	opacity: 0;
	padding: 32px var(--site-pad);
	pointer-events: none;
	position: absolute;
	text-align: center;
	transition: opacity 320ms ease, visibility 0s linear 320ms;
	visibility: hidden;
	z-index: 2;
}

.gianna-immersive-home.is-menu-interlude .gianna-menu-interlude {
	opacity: 1;
	transition-delay: 0s;
	visibility: visible;
}

.gianna-menu-interlude__underlay {
	height: auto;
	left: 50%;
	max-height: 78vh;
	max-width: 680px;
	object-fit: contain;
	opacity: .24;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 62vw;
	z-index: 0;
}

.gianna-menu-interlude__logo {
	height: auto;
	max-width: 220px;
	min-width: 80px;
	position: relative;
	width: 14vw;
	z-index: 1;
}

.gianna-menu-interlude__wordmark {
	height: auto;
	max-width: 360px;
	position: relative;
	width: min(72vw, 360px);
	z-index: 1;
}

@media (max-width: 760px) {
	.gianna-menu-interlude__underlay {
		max-height: 70vh;
		width: min(92vw, 520px);
	}

	.gianna-menu-interlude__logo {
		max-width: 140px;
		min-width: 96px;
		width: 26vw;
	}
}

.gianna-visual-menu__viewport {
	height: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-inline: contain;
	position: relative;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	touch-action: pan-x pan-y;
	width: 100%;
	z-index: 3;
}

html.has-js .gianna-immersive-home:not(.has-skipped-intro) .gianna-visual-menu__viewport {
	pointer-events: none;
	transform: translate3d(100%, 0, 0);
	transition: transform 600ms cubic-bezier(.76, 0, .24, 1);
	will-change: transform;
}

html.has-js .gianna-immersive-home.is-menu-entering .gianna-visual-menu__viewport {
	transform: translate3d(0, 0, 0);
}

html.has-js .gianna-immersive-home.is-menu-ready .gianna-visual-menu__viewport {
	pointer-events: auto;
}

html.has-js .gianna-immersive-home.has-skipped-intro .gianna-visual-menu__viewport {
	pointer-events: auto;
	transform: none;
}

.gianna-visual-menu__viewport::-webkit-scrollbar {
	display: none;
}

.gianna-visual-menu__viewport.is-dragging,
.gianna-visual-menu__viewport.is-wheel-scrolling {
	cursor: grabbing;
	scroll-behavior: auto;
	scroll-snap-type: none;
}

.gianna-visual-menu__track {
	display: flex;
	height: 100%;
	position: relative;
	width: max-content;
}

.gianna-visual-menu__snap {
	height: 1px;
	pointer-events: none;
	position: absolute;
	scroll-snap-align: start;
	scroll-snap-stop: normal;
	top: 0;
	width: 1px;
}

.gianna-visual-card {
	background: var(--paper);
	flex: 0 0 100vw;
	height: 100%;
	isolation: isolate;
	left: 0;
	overflow: hidden;
	position: sticky;
	z-index: calc(var(--visual-card-index, 0) + 1);
}

.gianna-visual-card::before {
	background-image: var(--gianna-panel-image);
	background-position: center;
	background-size: cover;
	content: "";
	inset: 0;
	position: absolute;
	transform: scale(1.01);
	transition: filter 1400ms ease, transform 1800ms cubic-bezier(.22, 1, .36, 1);
	z-index: -2;
}

.gianna-visual-card__video {
	height: 100%;
	inset: 0;
	object-fit: cover;
	opacity: 0;
	position: absolute;
	transition: opacity 600ms ease, transform 1800ms cubic-bezier(.22, 1, .36, 1);
	width: 100%;
	z-index: -1;
}

.gianna-visual-card.is-video-ready .gianna-visual-card__video {
	opacity: 1;
}

.gianna-visual-card__video-placeholder {
	align-items: center;
	background: var(--paper);
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 1;
	pointer-events: none;
	position: absolute;
	transition: opacity 500ms ease, visibility 0s linear 500ms;
	visibility: visible;
	z-index: -1;
}

.gianna-visual-card__video-placeholder img {
	height: auto;
	max-width: 100%;
	width: min(440px, 78vw);
}

.gianna-visual-card.is-video-ready .gianna-visual-card__video-placeholder {
	opacity: 0;
	visibility: hidden;
}

.gianna-visual-card__shade {
	background: linear-gradient(180deg, color-mix(in srgb, var(--olive-deep) 32%, transparent), color-mix(in srgb, var(--ink) 12%, transparent) 42%, color-mix(in srgb, var(--ink) 78%, transparent));
	inset: 0;
	position: absolute;
	transition: opacity 500ms ease;
	z-index: 0;
}

.gianna-visual-card.has-video:not(.is-video-ready) .gianna-visual-card__shade,
.gianna-visual-card.has-video:not(.is-video-ready) .gianna-visual-card__link {
	opacity: 0;
}

.gianna-visual-card__link {
	color: var(--bone);
	display: block;
	height: 100%;
	padding: clamp(100px, 13vh, 150px) clamp(28px, 6vw, 92px) clamp(82px, 11vh, 122px);
	position: relative;
	transition: opacity 500ms ease;
	width: 100%;
	z-index: 2;
}

.gianna-visual-card__number {
	border-top: 1px solid color-mix(in srgb, var(--bone) 72%, transparent);
	bottom: clamp(82px, 11vh, 122px);
	font: 600 12px/1 var(--font-title);
	left: clamp(28px, 6vw, 92px);
	letter-spacing: .08em;
	padding-top: 8px;
	position: absolute;
}

.gianna-visual-card__copy {
	align-items: flex-start;
	bottom: calc(clamp(82px, 11vh, 122px) + 38px);
	display: flex;
	flex-direction: column;
	left: clamp(28px, 6vw, 92px);
	max-width: min(520px, 42vw);
	position: absolute;
	text-align: left;
	top: auto;
	transform: none;
	width: auto;
}

.gianna-visual-card__copy strong {
	font-family: var(--font-title);
	font-size: clamp(36px, 4.8vw, 74px);
	font-weight: 500;
	letter-spacing: -.045em;
	line-height: .94;
	text-wrap: balance;
}

.gianna-visual-card__actions {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	gap: 16px;
	position: absolute;
	right: clamp(28px, 6vw, 92px);
	top: 50%;
	transform: translateY(-50%);
}

.gianna-visual-card__cta {
	border-bottom: 1px solid currentColor;
	display: inline-block;
	font: 600 17px/1 var(--font-title);
	letter-spacing: .06em;
	padding: 7px 0 10px;
	text-transform: uppercase;
	transform-origin: right center;
	transition: color 440ms ease, transform 440ms var(--landing-motion-ease);
}

.gianna-visual-card__cta:hover,
.gianna-visual-card__cta:focus-visible {
	color: var(--blue-light);
	transform: scale(1.08);
}

.gianna-visual-card:hover::before,
.gianna-visual-card:focus-within::before,
.gianna-visual-card:hover .gianna-visual-card__video,
.gianna-visual-card:focus-within .gianna-visual-card__video {
	transform: scale(1.055);
}

.gianna-visual-card:hover::before,
.gianna-visual-card:focus-within::before {
	filter: saturate(1.08);
}

.gianna-visual-menu__controls {
	align-items: center;
	bottom: max(calc(7.5vh + 15px), env(safe-area-inset-bottom));
	display: block;
	position: absolute;
	right: 8.5vw;
	width: min(41.5vw, 598px);
	z-index: 6;
}

html.has-js .gianna-immersive-home:not(.has-skipped-intro) .gianna-visual-menu__controls {
	opacity: 0;
	pointer-events: none;
	transition: opacity 360ms ease;
}

html.has-js .gianna-immersive-home.is-menu-ready .gianna-visual-menu__controls {
	opacity: 1;
	pointer-events: auto;
}

html.has-js .gianna-immersive-home.has-skipped-intro .gianna-visual-menu__controls {
	opacity: 1;
	pointer-events: auto;
}

.gianna-visual-menu__count {
	font: 600 12px/1 var(--font-title);
	letter-spacing: .08em;
	margin: 0;
	min-width: 52px;
	text-align: center;
}

.gianna-visual-menu__arrow {
	align-items: center;
	background: transparent;
	border: 0;
	color: color-mix(in srgb, var(--bone) 62%, transparent);
	cursor: pointer;
	display: block;
	font: 700 14px/24px var(--font-title);
	height: 24px;
	margin-left: auto;
	padding: 0;
	text-align: right;
	transition: color 360ms ease;
	width: auto;
}

.gianna-visual-menu__arrow:hover,
.gianna-visual-menu__arrow:focus-visible {
	background: transparent;
	color: var(--bone);
}

.gianna-visual-menu__arrow:disabled {
	cursor: default;
	opacity: .38;
}

.gianna-visual-menu__pages {
	background: color-mix(in srgb, var(--bone) 20%, transparent);
	display: block;
	height: 4px;
	margin: 9px 15px 8px;
	min-width: 50px;
	position: relative;
	width: 100%;
}

.gianna-visual-menu__indicator {
	background: var(--bone);
	bottom: 0;
	left: 0;
	position: absolute;
	top: 0;
	transform: scaleX(var(--visual-page-progress));
	transform-origin: left center;
	transition: transform 2400ms cubic-bezier(.87, 0, .13, 1);
	width: 100%;
}

.gianna-intro :focus-visible,
.gianna-cellar-gateway :focus-visible {
	outline: 3px solid var(--blue-light);
	outline-offset: 4px;
}

.gianna-visual-menu :focus,
.gianna-visual-menu :focus-visible {
	outline: 0;
}

.gianna-visual-menu a:focus-visible {
	color: var(--green-light);
}

.gianna-cellar-gateway {
	background-color: var(--olive-deep);
	background-image: var(--gianna-cellar-poster);
	background-position: center;
	background-size: cover;
	color: var(--bone);
	display: grid;
	grid-template-rows: 1fr auto;
	isolation: isolate;
	min-height: 100svh;
	overflow: hidden;
	padding: clamp(110px, 15vh, 170px) var(--site-pad) max(28px, env(safe-area-inset-bottom));
	position: relative;
}

.gianna-cellar-gateway__video {
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: -2;
}

.gianna-cellar-gateway__shade {
	background: linear-gradient(180deg, color-mix(in srgb, var(--olive-deep) 50%, transparent), color-mix(in srgb, var(--ink) 18%, transparent) 43%, color-mix(in srgb, var(--ink) 88%, transparent));
	inset: 0;
	position: absolute;
	z-index: -1;
}

.gianna-cellar-gateway__intro {
	align-self: center;
	max-width: 850px;
}

.gianna-cellar-gateway__intro > p {
	color: var(--gold);
	font-family: var(--font-accent);
	font-size: clamp(24px, 3vw, 42px);
	font-weight: 600;
	margin-bottom: 8px;
}

.gianna-cellar-gateway__intro h1 {
	font-size: clamp(70px, 12vw, 172px);
	font-weight: 500;
	letter-spacing: -.07em;
	line-height: .82;
}

.gianna-cellar-gateway__intro > div {
	font: 500 clamp(16px, 1.5vw, 21px)/1.5 var(--font-title);
	margin-top: clamp(24px, 4vh, 42px);
	max-width: 580px;
}

.gianna-cellar-routes {
	border-top: 1px solid color-mix(in srgb, var(--bone) 38%, transparent);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.gianna-cellar-routes a {
	align-content: start;
	display: grid;
	min-height: 190px;
	padding: clamp(20px, 3vw, 38px);
	position: relative;
	transition: background-color 600ms ease, color 600ms ease;
}

.gianna-cellar-routes a + a {
	border-left: 1px solid color-mix(in srgb, var(--bone) 38%, transparent);
}

.gianna-cellar-routes a > span {
	color: var(--gold);
	font: 600 clamp(21px, 2.2vw, 34px)/1 var(--font-accent);
}

.gianna-cellar-routes a strong {
	font: 600 clamp(19px, 1.7vw, 27px)/1.1 var(--font-title);
	margin-top: 5px;
}

.gianna-cellar-routes a small {
	font: 400 13px/1.55 var(--font-body);
	margin-top: 17px;
	max-width: 270px;
	opacity: .82;
}

.gianna-cellar-routes a i {
	font-style: normal;
	position: absolute;
	right: 24px;
	top: 28px;
}

.gianna-cellar-routes a:hover,
.gianna-cellar-routes a:focus-visible {
	background: var(--paper);
	color: var(--ink);
}

.gv-site-hero--has-video {
	isolation: isolate;
}

.gv-site-hero__video {
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: -1;
}

@media (max-width: 760px) {
	.gianna-intro {
		min-height: 100svh;
	}

	.gianna-intro__content {
		padding-left: 22px;
		padding-right: 22px;
	}

	.gianna-intro__brand {
		gap: 10px;
		justify-content: center;
		margin-top: 2vh;
		margin-inline: auto;
		max-width: 100%;
		width: 100%;
	}

	.gianna-intro__opening-logos {
		gap: 10px;
	}

	.gianna-intro__opening-name {
		width: min(220px, 60%);
	}

	.gianna-intro__logo--primary {
		width: min(110px, 30%);
	}

	.gianna-intro__logo--secondary {
		width: min(220px, 60%);
	}

	.gianna-intro__story {
		font-size: clamp(23px, 7vw, 34px);
	}

	.gianna-intro__enter {
		font-size: 17px;
		gap: 8px;
		max-width: 88vw;
	}

	.gianna-visual-menu {
		min-height: 100svh;
	}

	.gianna-visual-menu__track {
		gap: 0;
		padding: 0;
	}

	.gianna-visual-card {
		flex-basis: 100vw;
		scroll-snap-align: start;
	}

	.gianna-visual-card__link {
		padding: 96px 24px 98px;
	}

	.gianna-visual-card__number {
		bottom: 98px;
		left: 20px;
	}

	.gianna-visual-card__copy {
		bottom: 136px;
		left: 20px;
		max-width: 48vw;
		top: auto;
	}

	.gianna-visual-card__copy strong {
		font-size: clamp(30px, 8vw, 46px);
	}

	.gianna-visual-card__actions {
		gap: 12px;
		right: 18px;
	}

	.gianna-visual-card__cta {
		font-size: 14px;
	}

	.gianna-visual-menu__controls {
		bottom: max(calc(7vh + 12px), env(safe-area-inset-bottom));
		display: block;
		right: 18px;
		width: min(44vw, 180px);
	}

	.gianna-visual-menu__pages {
		width: calc(100% - 15px);
	}

	.gianna-cellar-gateway {
		display: block;
		min-height: 100svh;
		overflow: visible;
		padding: 112px 20px 26px;
	}

	.gianna-cellar-gateway__intro {
		min-height: 46svh;
	}

	.gianna-cellar-gateway__intro h1 {
		font-size: clamp(62px, 19vw, 92px);
	}

	.gianna-cellar-routes {
		grid-template-columns: 1fr;
	}

	.gianna-cellar-routes a {
		min-height: 0;
		padding: 22px 16px 24px;
	}

	.gianna-cellar-routes a + a {
		border-left: 0;
		border-top: 1px solid color-mix(in srgb, var(--bone) 38%, transparent);
	}

	.gianna-cellar-routes a small {
		padding-right: 30px;
	}
}

/* Editorial wine catalogue. */
.wine-catalog {
	--wine-paper: var(--e-global-color-gianna-paper, #FDFBF6);
	background: var(--wine-paper);
	overflow: visible;
}

.wine-catalog-nav {
	background-color: var(--wine-paper);
	border-bottom: 0;
	box-shadow: none;
	position: sticky;
	top: 0;
	transition: top 360ms cubic-bezier(0.22, 1, 0.36, 1);
	/* Above catalogue content, but below the global header and its open menu. */
	z-index: 120;
}

body.admin-bar .wine-catalog-nav {
	top: var(--wp-admin--admin-bar--height, 32px);
}

body.wine-catalog-header-visible .wine-catalog-nav {
	top: 116px;
}

body.admin-bar.wine-catalog-header-visible .wine-catalog-nav {
	top: calc(116px + var(--wp-admin--admin-bar--height, 32px));
}

.wine-catalog-nav .gv-container {
	align-items: center;
	background-color: var(--wine-paper);
	display: flex;
	gap: 9px;
	justify-content: center;
	overflow-x: auto;
	padding-bottom: 14px;
	padding-top: 14px;
	scrollbar-width: none;
}

.wine-catalog-nav .gv-container::-webkit-scrollbar {
	display: none;
}

.wine-catalog-nav a {
	border: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
	border-radius: 999px;
	flex: 0 0 auto;
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.03em;
	padding: 9px 15px;
	transition: background-color 260ms ease, border-color 260ms ease, color 260ms ease;
	white-space: nowrap;
}

.wine-catalog-nav a:hover,
.wine-catalog-nav a:focus-visible,
.wine-catalog-nav a[aria-current="true"] {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--bone);
	outline: 0;
}

.wine-catalog-nav a[aria-disabled="true"] {
	background: transparent;
	border-color: color-mix(in srgb, var(--ink) 13%, transparent);
	color: var(--muted);
	cursor: not-allowed;
	opacity: 0.34;
	pointer-events: none;
}

.wine-catalog-nav__choice {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	gap: 9px;
	margin-left: 8px;
}

.wine-catalog-nav__choice > span {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 19px;
	font-weight: 600;
	white-space: nowrap;
}

.wine-catalog-nav__choice select {
	appearance: none;
	background-color: var(--surface-container);
	background-image:
		linear-gradient(45deg, transparent 50%, var(--ink) 50%),
		linear-gradient(135deg, var(--ink) 50%, transparent 50%);
	background-position:
		calc(100% - 15px) 50%,
		calc(100% - 10px) 50%;
	background-repeat: no-repeat;
	background-size: 5px 5px, 5px 5px;
	border: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
	border-radius: 999px;
	color: var(--ink);
	cursor: pointer;
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 600;
	max-width: min(300px, 72vw);
	padding: 10px 34px 10px 14px;
}

.wine-catalog-nav__choice select:focus-visible {
	border-color: var(--clay);
	outline: 2px solid var(--blue-light);
	outline-offset: 2px;
}

.wine-catalog-card[hidden],
.wine-catalog-collection[hidden],
.wine-catalog-bubbles[hidden],
.wine-catalog-landscape[hidden] {
	display: none;
}

.wine-catalog__anchor {
	display: block;
	height: 0;
	scroll-margin-top: 70px;
}

.wine-catalog__intro {
	align-items: end;
	display: grid;
	gap: clamp(38px, 8vw, 130px);
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.68fr);
	padding-bottom: clamp(90px, 10vw, 150px);
	padding-top: clamp(90px, 10vw, 150px);
	scroll-margin-top: 80px;
}

.wine-catalog__intro h2 {
	font-size: clamp(54px, 7vw, 108px);
	letter-spacing: -0.055em;
	line-height: 0.9;
	max-width: 850px;
}

.wine-catalog__intro > p {
	color: var(--muted);
	font-size: clamp(17px, 1.5vw, 21px);
	margin: 0 0 8px;
}

.wine-catalog-collection {
	background: var(--wine-paper);
	overflow: hidden;
	padding: clamp(90px, 11vw, 170px) 0;
	scroll-margin-top: 70px;
}

.wine-catalog-collection--circeo-doc {
	background: var(--wine-paper);
}

.wine-catalog-collection--moscato-di-terracina-doc {
	background: var(--surface-dim);
}

.wine-catalog-collection--orizzonti-pontini {
	background: var(--green-light);
}

.wine-catalog-collection--donna-circe {
	background: var(--wine-paper);
}

.wine-catalog-collection--donna-circe .wine-catalog-collection__subtitle {
	color: var(--blue-light);
}

.wine-catalog-collection__header {
	align-items: end;
	border-top: 0;
	display: grid;
	gap: clamp(26px, 5vw, 74px);
	grid-template-columns: auto minmax(0, 1fr) minmax(280px, 0.58fr);
	margin-bottom: clamp(58px, 7vw, 100px);
	padding-top: 0;
	position: relative;
}

.wine-catalog-collection__title-wrap {
	isolation: isolate;
	position: relative;
}

.wine-catalog-collection__title-wrap h2 {
	position: relative;
	z-index: 1;
}

.wine-catalog-collection__watermark {
	color: color-mix(in srgb, var(--ink) 7%, transparent);
	display: block;
	font-family: var(--font-title);
	font-size: clamp(82px, 14vw, 200px);
	font-weight: 700;
	left: 0;
	letter-spacing: -0.075em;
	line-height: 0.72;
	margin-left: -50px;
	pointer-events: none;
	position: absolute;
	top: 110%;
	transform: translateY(-50%);
	white-space: nowrap;
	z-index: 0;
}

.wine-catalog-collection__number {
	align-self: start;
	color: var(--clay);
	font-family: var(--font-title);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	padding-top: 9px;
}

.wine-catalog-collection__header h2,
.wine-catalog-bubbles__header h2 {
	font-size: clamp(55px, 7.2vw, 112px);
	letter-spacing: -0.06em;
	line-height: 0.86;
}

.wine-catalog-collection__subtitle {
	color: var(--olive);
	font-family: var(--font-title);
	font-size: clamp(27px, 2.8vw, 42px);
	font-weight: 500;
	line-height: 1;
	margin: 14px 0 0;
}

.wine-catalog-collection__lead {
	color: var(--muted);
	font-size: clamp(16px, 1.4vw, 20px);
	margin: 0 0 4px;
}

.wine-catalog-grid {
	cursor: grab;
	display: flex;
	gap: clamp(24px, 2.4vw, 38px);
	margin: -10px -10px 0;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-inline: contain;
	padding: 10px 10px 44px;
	scroll-behavior: smooth;
	scroll-padding-inline: 10px;
	scroll-snap-type: inline mandatory;
	scrollbar-width: none;
}

.wine-catalog-grid::-webkit-scrollbar {
	display: none;
}

.wine-catalog-grid:active {
	cursor: grabbing;
}

.wine-catalog-row {
	min-width: 0;
}

.wine-catalog-row__controls {
	align-items: center;
	display: grid;
	gap: 20px;
	grid-template-columns: auto minmax(120px, 1fr) auto;
	margin-top: 2px;
}

.wine-catalog-row__controls button {
	background: transparent;
	border: 0;
	color: var(--ink);
	cursor: pointer;
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.07em;
	padding: 10px 0;
	text-transform: uppercase;
}

.wine-catalog-row__controls button:disabled {
	cursor: default;
	opacity: 0.3;
}

.wine-catalog-row__controls button:focus-visible {
	outline: 2px solid var(--clay);
	outline-offset: 5px;
}

.wine-catalog-row__progress {
	background: color-mix(in srgb, var(--ink) 18%, transparent);
	height: 2px;
	overflow: hidden;
}

.wine-catalog-row__progress span {
	background: var(--ink);
	display: block;
	height: 100%;
	transform: scaleX(0.18);
	transform-origin: left center;
	transition: transform 280ms ease;
	width: 100%;
}

.wine-catalog-row__controls--light button {
	color: var(--bone);
}

.wine-catalog-row__controls--light .wine-catalog-row__progress {
	background: color-mix(in srgb, var(--bone) 22%, transparent);
}

.wine-catalog-row__controls--light .wine-catalog-row__progress span {
	background: var(--bone);
}

.wine-catalog-card {
	background: var(--wine-paper);
	border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
	display: flex;
	flex: 0 0 calc((100% - (2 * clamp(24px, 2.4vw, 38px))) / 3);
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	transition: box-shadow 400ms ease, transform 400ms ease;
}

.wine-catalog-card:hover {
	box-shadow: 0 30px 70px color-mix(in srgb, var(--ink) 12%, transparent);
	transform: translateY(-7px);
}

.wine-catalog-card__visual {
	--catalogue-wash: #dfcfb5;
	align-items: end;
	aspect-ratio: 4 / 5;
	background: var(--catalogue-wash);
	display: flex;
	justify-content: center;
	overflow: hidden;
	padding-bottom: clamp(22px, 2.2vw, 34px);
	position: relative;
}

.wine-catalog-card__visual::before {
	color: color-mix(in srgb, var(--ink) 13%, transparent);
	content: attr(data-wine-title);
	font-family: var(--font-title);
	font-size: clamp(24px, 2.5vw, 42px);
	font-weight: 600;
	inset: 7% auto 7% 7%;
	letter-spacing: -0.025em;
	line-height: 0.9;
	overflow: hidden;
	pointer-events: none;
	position: absolute;
	text-transform: uppercase;
	white-space: nowrap;
	writing-mode: vertical-rl;
	z-index: 1;
}

.wine-catalog-card--sky .wine-catalog-card__visual { --catalogue-wash: #abcddd; }
.wine-catalog-card--sage .wine-catalog-card__visual { --catalogue-wash: #b7c2a6; }
.wine-catalog-card--rose .wine-catalog-card__visual { --catalogue-wash: #d9b5ae; }
.wine-catalog-card--clay .wine-catalog-card__visual { --catalogue-wash: #d2a388; }
.wine-catalog-card--plum .wine-catalog-card__visual { --catalogue-wash: #ad8a8d; }
.wine-catalog-card--mint .wine-catalog-card__visual { --catalogue-wash: #c3d8cd; }
.wine-catalog-card--umber .wine-catalog-card__visual { --catalogue-wash: #bfa48a; }

.wine-catalog-card__wash {
	background:
		radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--bone) 50%, transparent), transparent 42%),
		linear-gradient(145deg, color-mix(in srgb, var(--bone) 18%, transparent), transparent 58%);
	inset: 0;
	position: absolute;
	z-index: 0;
}

.wine-catalog-card__visual::after {
	background: color-mix(in srgb, var(--ink) 14%, transparent);
	border-radius: 50%;
	bottom: 5.5%;
	content: "";
	filter: blur(9px);
	height: 2.5%;
	position: absolute;
	width: 29%;
}

.wine-catalog-card__visual img {
	height: 90%;
	max-width: 64%;
	object-fit: contain;
	position: relative;
	transform: translateY(0);
	transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
	width: auto;
	z-index: 2;
}

.wine-catalog-card:hover .wine-catalog-card__visual img {
	transform: translateY(-1%) scale(1.035);
}

.wine-catalog-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(23px, 2vw, 30px);
}

.wine-catalog-card__heading {
	align-items: start;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: space-between;
}

.wine-catalog-card__heading > p {
	color: var(--gold);
	font-family: var(--font-accent);
	font-size: 21px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.15;
	margin: 0;
	text-transform: none;
}

.wine-catalog-card__badge {
	background: var(--olive-deep);
	border-radius: 999px;
	color: var(--bone);
	display: inline-block;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.25;
	max-width: 156px;
	padding: 6px 9px;
	text-align: center;
	text-transform: uppercase;
}

.wine-catalog-card h3 {
	font-size: clamp(27px, 2.15vw, 36px);
	letter-spacing: -0.035em;
	line-height: 0.98;
	margin: 16px 0 15px;
}

.wine-catalog-card h3 a:focus-visible {
	outline: 2px solid var(--clay);
	outline-offset: 4px;
}

.wine-catalog-card__description {
	color: var(--muted);
	font-size: 15px;
	line-height: 1.55;
	margin-bottom: 22px;
}

.wine-catalog-card__choices {
	display: grid;
	gap: 14px;
	margin-bottom: 26px;
}

.wine-catalog-card__choice-group > p {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.1;
	margin: 0 0 10px;
}

.wine-catalog-card__choice-group ul {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.wine-catalog-card__choices li {
	background: var(--choice-background, var(--surface-container));
	border: 1px solid var(--choice-border, color-mix(in srgb, var(--ink) 24%, transparent));
	border-radius: 999px;
	color: var(--choice-color, var(--ink));
	font-family: var(--font-title);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.015em;
	line-height: 1.25;
	padding: 7px 10px;
}

.wine-choice--sparkling {
	--choice-background: var(--clay);
	--choice-border: var(--clay);
	--choice-color: var(--bone);
}

.wine-choice--sea {
	--choice-background: var(--blue-light);
	--choice-border: var(--clay);
	--choice-color: var(--ink);
}

.wine-choice--grain {
	--choice-background: var(--gold);
	--choice-border: var(--gold);
	--choice-color: var(--ink);
}

.wine-choice--meat {
	--choice-background: var(--olive);
	--choice-border: var(--olive);
	--choice-color: var(--bone);
}

.wine-choice--sweet {
	--choice-background: var(--surface-container);
	--choice-border: var(--gold);
	--choice-color: var(--ink);
}

.wine-choice--light {
	--choice-background: var(--green-light);
	--choice-border: var(--olive);
	--choice-color: var(--olive-deep);
}

.wine-choice--together {
	--choice-background: var(--surface-container);
	--choice-border: var(--olive);
	--choice-color: var(--olive-deep);
}

/* Contact page retailers. */
.gianna-retailers {
	background: var(--green-light);
	padding: clamp(90px, 11vw, 170px) 0;
}

.gianna-retailers__header {
	align-items: end;
	display: grid;
	gap: clamp(32px, 7vw, 110px);
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.55fr);
	margin-bottom: clamp(48px, 7vw, 90px);
}

.gianna-retailers__header h2 {
	font-size: clamp(52px, 6.7vw, 104px);
	letter-spacing: -0.055em;
	line-height: 0.88;
	max-width: 900px;
}

.gianna-retailers__header > p {
	color: var(--muted);
	font-size: clamp(17px, 1.4vw, 20px);
	margin: 0;
}

.gianna-retailers__direct {
	background: var(--clay);
	color: var(--bone);
	display: grid;
	gap: 8px;
	grid-template-columns: minmax(0, 1fr) auto;
	margin-bottom: clamp(28px, 4vw, 52px);
	padding: clamp(28px, 4vw, 52px);
}

.gianna-retailers__direct .gv-kicker {
	color: var(--blue-light);
	grid-column: 1 / -1;
}

.gianna-retailers__direct h3 {
	color: var(--bone);
	font-size: clamp(30px, 3.5vw, 52px);
	margin: 0;
}

.gianna-retailers__direct > p:not(.gv-kicker) {
	align-self: end;
	grid-column: 1;
	margin: 0;
}

.gianna-retailers__direct .gv-text-link {
	align-self: end;
	color: var(--bone);
	grid-column: 2;
	grid-row: 2 / 4;
}

.gianna-retailers__grid {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.gianna-retailers__grid li {
	background: var(--paper);
	min-height: 126px;
}

.gianna-retailers__grid a {
	align-items: center;
	display: flex;
	flex-direction: column;
	font-family: var(--font-title);
	font-size: clamp(15px, 1.25vw, 19px);
	font-weight: 600;
	justify-content: center;
	min-height: 100%;
	padding: 18px;
	text-align: center;
	transition: background-color 240ms ease, transform 240ms ease;
}

.gianna-retailers__grid a:hover,
.gianna-retailers__grid a:focus-visible {
	background: var(--surface-container);
	outline: 2px solid var(--clay);
	outline-offset: -2px;
	transform: translateY(-3px);
}

.gianna-retailers__grid img {
	display: block;
	height: 52px;
	margin-bottom: 12px;
	max-width: 150px;
	object-fit: contain;
	width: 100%;
}

.gianna-retailers__grid span {
	font-size: 12px;
	letter-spacing: 0.025em;
}

@media (max-width: 900px) {
	.gianna-retailers__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.gianna-retailers__header,
	.gianna-retailers__direct {
		grid-template-columns: 1fr;
	}

	.gianna-retailers__direct .gv-text-link,
	.gianna-retailers__direct > p:not(.gv-kicker) {
		grid-column: 1;
		grid-row: auto;
	}

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

.wine-catalog-card__link {
	align-items: center;
	border-top: 0;
	display: flex;
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 700;
	justify-content: space-between;
	letter-spacing: 0.05em;
	margin-top: auto;
	padding-top: 16px;
	text-transform: uppercase;
}

.wine-catalog-card__link span {
	font-size: 18px;
	transition: transform 260ms ease;
}

.wine-catalog-card__link:hover span,
.wine-catalog-card__link:focus-visible span {
	transform: translate(3px, -3px);
}

.wine-catalog-landscape {
	background: var(--olive-deep);
	color: var(--bone);
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.6fr);
	min-height: 72svh;
	overflow: hidden;
	position: relative;
}

.wine-catalog-landscape > img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.wine-catalog-landscape > div {
	align-content: end;
	background: var(--olive-deep);
	display: grid;
	padding: clamp(42px, 6vw, 90px);
}

.wine-catalog-landscape .gv-kicker {
	color: var(--gold);
}

.wine-catalog-landscape > div > p:last-child {
	font-family: var(--font-title);
	font-size: clamp(32px, 4vw, 60px);
	letter-spacing: -0.045em;
	line-height: 0.98;
	margin: 0;
}

.wine-catalog-bubbles {
	background: var(--blue-light);
	color: var(--ink);
	overflow: hidden;
	padding: clamp(100px, 12vw, 180px) 0;
	position: relative;
	scroll-margin-top: 70px;
}

.wine-catalog-bubbles .wine-catalog-collection__watermark {
	color: color-mix(in srgb, var(--ink) 9%, transparent);
}

.wine-catalog-bubbles .gv-container {
	position: relative;
}

.wine-catalog-bubbles__header {
	align-items: end;
	border-top: 0;
	display: grid;
	gap: clamp(36px, 8vw, 130px);
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.55fr);
	padding-top: 0;
}

.wine-catalog-bubbles__header .gv-kicker {
	color: var(--clay);
}

.wine-catalog-bubbles__header > p {
	color: var(--muted);
	font-size: clamp(17px, 1.4vw, 20px);
	margin: 0;
}

.wine-catalog-bubbles__note {
	color: var(--wp--preset--color--superficie-crema, var(--surface-container));
	font-family: var(--font-title);
	font-size: clamp(27px, 2.8vw, 42px);
	font-weight: 500;
	line-height: 1;
	margin: 34px 0 58px;
	max-width: 980px;
}

.wine-catalog-grid--bubbles {
	scroll-snap-type: inline mandatory;
}

.wine-catalog-card--bubbles {
	background: var(--wine-paper);
	color: var(--ink);
}

.wine-catalog-bubbles .wine-catalog-row__controls--light button {
	color: var(--clay);
}

.wine-catalog-bubbles .wine-catalog-row__controls--light .wine-catalog-row__progress {
	background: color-mix(in srgb, var(--clay) 24%, transparent);
}

.wine-catalog-bubbles .wine-catalog-row__controls--light .wine-catalog-row__progress span {
	background: var(--clay);
}

.wine-catalog__closing {
	background: var(--olive);
	color: var(--bone);
	overflow: hidden;
	padding: clamp(110px, 13vw, 190px) 0;
	position: relative;
	text-align: center;
}

.wine-catalog__closing > img {
	bottom: -1px;
	left: 0;
	opacity: 0.14;
	pointer-events: none;
	position: absolute;
	width: min(1100px, 86vw);
}

.wine-catalog__closing .gv-container {
	position: relative;
	z-index: 1;
}

.wine-catalog__closing h2 {
	color: var(--bone);
	font-size: clamp(52px, 7.4vw, 112px);
	letter-spacing: -0.055em;
	line-height: 0.88;
	margin: 0 auto;
	max-width: 1000px;
}

.wine-catalog__closing .gv-container > p:not(.gv-kicker) {
	color: var(--bone);
	font-size: clamp(17px, 1.5vw, 21px);
	margin: 28px auto 0;
	max-width: 650px;
}

.wine-catalog__closing .gv-kicker {
	color: var(--green-light);
}

.wine-catalog__closing .gv-button {
	background: var(--bone);
	border-color: var(--bone);
	color: var(--ink);
}

.wine-catalog__closing .gv-button:hover,
.wine-catalog__closing .gv-button:focus-visible {
	background: transparent;
	color: var(--bone);
}

.wine-catalog__closing .gv-button--ghost {
	background: transparent;
	color: var(--bone);
}

.wine-catalog__closing .gv-button--ghost:hover,
.wine-catalog__closing .gv-button--ghost:focus-visible {
	background: var(--bone);
	color: var(--ink);
}

/* Make the wine catalogue closing CTA match every other closing CTA. */
.wine-catalog__closing {
	background: var(--olive) !important;
	padding: 130px var(--site-pad);
}

.wine-catalog__closing > img {
	bottom: auto;
	left: 50%;
	opacity: 0.14;
	top: 50%;
	transform: translate(-50%, -50%);
	width: clamp(320px, 48vw, 760px);
}

.wine-catalog__closing h2 {
	color: var(--paper) !important;
	font-size: clamp(42px, 4.25vw, 54px) !important;
	letter-spacing: 0;
	line-height: 1 !important;
	margin: 0 auto 22px;
	max-width: 880px;
}

.wine-catalog__closing .gv-kicker {
	color: var(--green-light) !important;
	font-size: 23px !important;
	line-height: 1 !important;
}

.wine-catalog__closing .gv-container > p:not(.gv-kicker) {
	color: var(--paper) !important;
	font-size: 17px !important;
	line-height: 1.65 !important;
	margin: 0 auto;
	max-width: 620px;
}

.wine-catalog__closing .gv-actions .gv-button {
	background: var(--green-light) !important;
	border-color: var(--green-light) !important;
	color: var(--ink) !important;
	font-size: 13px !important;
	line-height: 1.15 !important;
}

.wine-catalog__closing .gv-actions .gv-button:hover,
.wine-catalog__closing .gv-actions .gv-button:focus-visible {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: var(--green-light) !important;
}

.wine-catalog__closing .gv-actions .gv-button:nth-child(2) {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: var(--green-light) !important;
}

.wine-catalog__closing .gv-actions .gv-button:nth-child(2):hover,
.wine-catalog__closing .gv-actions .gv-button:nth-child(2):focus-visible {
	background: var(--green-light) !important;
	border-color: var(--green-light) !important;
	color: var(--ink) !important;
}

@media (max-width: 1024px) {
	.wine-catalog-grid,
	.wine-catalog-grid--bubbles {
		display: flex;
	}

	.wine-catalog-card {
		flex-basis: calc((100% - clamp(24px, 2.4vw, 38px)) / 2);
	}

	.wine-catalog-collection__header {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.wine-catalog-collection__lead {
		grid-column: 2;
		max-width: 650px;
	}

	.wine-catalog-landscape {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 900px) {
	body.wine-catalog-header-visible .wine-catalog-nav {
		top: 96px;
	}

	body.admin-bar.wine-catalog-header-visible .wine-catalog-nav {
		top: calc(96px + var(--wp-admin--admin-bar--height, 32px));
	}
}

@media (max-width: 760px) {
	.wine-catalog-nav .gv-container {
		justify-content: flex-start;
		padding-left: 16px;
		padding-right: 16px;
	}

	.wine-catalog__intro {
		align-items: start;
		gap: 30px;
		grid-template-columns: 1fr;
	}

	.wine-catalog__intro h2 {
		font-size: clamp(48px, 15vw, 72px);
	}

	.wine-catalog-collection__header {
		align-items: start;
		gap: 20px 14px;
		grid-template-columns: auto minmax(0, 1fr);
	}

	.wine-catalog-collection__header h2,
	.wine-catalog-bubbles__header h2 {
		font-size: clamp(48px, 14.5vw, 74px);
	}

	.wine-catalog-collection__lead {
		grid-column: 1 / -1;
	}

	.wine-catalog-grid,
	.wine-catalog-grid--bubbles {
		display: flex;
		margin-right: calc(-1 * var(--site-pad));
		padding-right: var(--site-pad);
	}

	.wine-catalog-card {
		flex-basis: min(84vw, 370px);
	}

	.wine-catalog-row__controls {
		gap: 12px;
		grid-template-columns: 1fr 86px 1fr;
	}

	.wine-catalog-row__controls button:first-child {
		justify-self: start;
	}

	.wine-catalog-row__controls button:last-child {
		justify-self: end;
	}

	.wine-catalog-card__visual {
		aspect-ratio: 5 / 5.4;
	}

	.wine-catalog-card__visual img {
		height: 92%;
	}

	.wine-catalog-landscape {
		display: block;
		min-height: 0;
	}

	.wine-catalog-landscape > img {
		aspect-ratio: 4 / 3;
		height: auto;
	}

	.wine-catalog-landscape > div {
		min-height: 420px;
	}

	.wine-catalog-bubbles__header {
		align-items: start;
		gap: 28px;
		grid-template-columns: 1fr;
	}

	.wine-catalog-bubbles__mark {
		font-size: 130px;
		top: 5%;
	}

	.wine-catalog__closing .gv-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.wine-catalog__closing .gv-button {
		justify-content: center;
	}
}

/* Territory: editorial story, interactive guide and itineraries. */
.territory-circeo {
	background: var(--paper);
	padding: clamp(88px, 10vw, 150px) 0;
}

.territory-circeo__grid {
	align-items: center;
	display: grid;
	gap: clamp(50px, 8vw, 120px);
	grid-template-columns: minmax(0, .86fr) minmax(460px, 1.14fr);
}

.territory-circeo__copy h2,
.territory-guide__intro h2,
.territory-section-heading h2 {
	font-size: clamp(48px, 5.7vw, 86px);
	letter-spacing: -.045em;
	line-height: .96;
}

.territory-circeo__copy > div {
	font-size: clamp(17px, 1.25vw, 20px);
	margin-top: 28px;
}

.territory-circeo__profile {
	fill: none;
	margin-top: 28px;
	max-width: 500px;
	stroke: var(--gold);
	stroke-linecap: round;
	stroke-width: 2;
	width: 100%;
}

.territory-circeo__caption {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: 23px;
	line-height: 1.1;
	margin-top: 8px;
}

.territory-circeo__visual {
	margin: 0;
	min-height: 640px;
	position: relative;
}

.territory-circeo__visual img {
	object-fit: cover;
}

.territory-circeo__panorama {
	height: 520px;
	width: 84%;
}

.territory-circeo__detail {
	border: 10px solid var(--paper);
	bottom: 0;
	height: 290px;
	object-position: center;
	position: absolute;
	right: 0;
	width: 48%;
}

.territory-guide {
	background: var(--paper);
}

.territory-guide__intro {
	background: var(--paper);
	box-shadow: 0 0 0 100vmax var(--paper);
	clip-path: inset(0 -100vmax);
	display: grid;
	gap: 24px clamp(40px, 8vw, 130px);
	grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
	padding-bottom: clamp(80px, 10vw, 150px);
	padding-top: clamp(90px, 12vw, 170px);
}

.territory-guide__intro .gv-kicker,
.territory-guide__intro h2 {
	grid-column: 1;
}

.territory-guide__intro .gv-kicker {
	margin-bottom: 0;
}

.territory-guide__intro > div {
	align-self: end;
	font-size: clamp(18px, 1.45vw, 22px);
	grid-column: 2;
	grid-row: 1 / span 2;
}

.territory-map-section {
	background: var(--green-light);
	padding: clamp(80px, 9vw, 135px) 0;
}

.territory-section-heading {
	margin-bottom: clamp(42px, 5vw, 72px);
	max-width: 850px;
}

.territory-section-heading > p:not(.gv-kicker) {
	font-size: 19px;
	margin-top: 20px;
	max-width: 650px;
}

.territory-map-layout {
	display: block;
	left: 50%;
	margin-left: -50vw;
	position: relative;
	width: 100vw;
}

.territory-map {
	background: var(--paper);
	border: 1px solid color-mix(in srgb, var(--gold) 50%, transparent);
	border-left: 0;
	border-right: 0;
	min-height: 660px;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.territory-map > svg {
	height: 100%;
	inset: 0;
	position: absolute;
	width: 100%;
}

.territory-map__sea {
	fill: var(--blue-light);
}

.territory-map__coast,
.territory-map__road {
	fill: none;
	stroke: var(--gold);
	stroke-linecap: round;
}

.territory-map__coast { stroke-width: 5; }
.territory-map__road { opacity: .7; stroke-dasharray: 12 9; stroke-width: 3; }

.territory-map__winery {
	color: var(--olive-deep);
	line-height: 1.05;
	position: absolute;
	text-align: center;
	transform: translate(-50%, -50%);
	width: 180px;
	z-index: 3;
}

.territory-map__winery span {
	align-items: center;
	background: var(--olive-deep);
	border-radius: 50%;
	color: var(--bone);
	display: flex;
	font-family: var(--font-title);
	font-size: 15px;
	height: 54px;
	justify-content: center;
	margin: 0 auto 7px;
	width: 54px;
}

.territory-map__winery span img {
	border-radius: 50%;
	height: 46px;
	object-fit: cover;
	width: 46px;
}

.territory-map__winery strong,
.territory-map__winery small { display: block; }
.territory-map__winery small { font-size: 10px; margin-top: 5px; }

.territory-map__point {
	background: transparent;
	border: 0;
	color: var(--clay);
	cursor: pointer;
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 700;
	padding: 0;
	position: absolute;
	text-align: center;
	transform: translate(-50%, -50%);
	transition: transform 220ms ease, color 220ms ease;
	z-index: 4;
}

.territory-map__point span {
	background: var(--clay);
	border: 4px solid var(--paper);
	border-radius: 50%;
	box-shadow: 0 0 0 1px var(--clay);
	display: block;
	height: 18px;
	margin: 0 auto 5px;
	width: 18px;
}

.territory-map__point:hover,
.territory-map__point:focus-visible,
.territory-map__point.is-active {
	color: var(--olive-deep);
	transform: translate(-50%, -50%) scale(1.08);
}

.territory-map__point.is-active span { background: var(--olive-deep); box-shadow: 0 0 0 1px var(--olive-deep); }

.territory-map__secondary {
	color: #5e746f;
	font-size: 9px;
	line-height: 1;
	position: absolute;
	transform: translate(-50%, -50%);
	white-space: nowrap;
	z-index: 2;
}

.territory-map__secondary i {
	background: var(--gold);
	border-radius: 50%;
	display: inline-block;
	height: 6px;
	margin-right: 4px;
	width: 6px;
}

.territory-map-card {
	background: var(--bone);
	box-shadow: 0 18px 50px color-mix(in srgb, var(--ink) 8%, transparent);
}

.territory-map-card:focus { outline: 2px solid var(--clay); outline-offset: 4px; }
.territory-destination__image { margin: 0; position: relative; }
.territory-destination__image img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.territory-destination__image figcaption { background: color-mix(in srgb, var(--olive-deep) 88%, transparent); bottom: 0; color: var(--bone); font-size: 9px; left: 0; line-height: 1.3; padding: 5px 8px; position: absolute; }
.territory-map-card__body { padding: clamp(24px, 3vw, 40px); }
.territory-map-card h3 { font-size: clamp(36px, 3.4vw, 54px); }
.territory-destination__subtitle { color: var(--clay); font-family: var(--font-title); font-size: 17px; font-weight: 600; margin-top: 8px; }
.territory-destination__description { margin-top: 20px; }
.territory-destination__route { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 18px; }
.territory-destination__experience { background: var(--surface-dim); font-size: 14px; margin-top: 18px; padding: 15px; }
.territory-destination__experience span,
.territory-itinerary__experience span { display: block; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.territory-guide .gv-actions { justify-content: flex-start; }
.territory-guide .gv-button { background: var(--olive-deep); border-color: var(--olive-deep); }
.territory-guide .gv-button:hover,
.territory-guide .gv-button:focus-visible { background: transparent; color: var(--olive-deep); }
.territory-guide .gv-button--ghost { background: transparent; color: var(--olive-deep); }
.territory-guide .gv-button--ghost:hover,
.territory-guide .gv-button--ghost:focus-visible { background: var(--olive-deep); color: var(--bone); }
.territory-directions { border-bottom: 1px solid currentColor; color: var(--clay); font-family: var(--font-title); font-size: 13px; font-weight: 700; padding: 9px 0; }
.territory-official-link { border-bottom: 1px solid currentColor; color: var(--clay); font-size: 12px; font-weight: 700; }

.territory-destinations {
	background: var(--paper);
	height: calc(100svh + var(--territory-showcase-scroll, 500svh));
	padding: 0;
	position: relative;
	width: 100%;
}

.territory-showcase {
	background: var(--paper);
	color: var(--ink);
	height: 100svh;
	isolation: isolate;
	min-height: 720px;
	overflow: hidden;
	position: sticky;
	top: 0;
	width: 100%;
}

.territory-showcase__rail {
	background: var(--green-light);
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	width: 25%;
	z-index: 0;
}

.territory-showcase__label {
	left: max(var(--site-pad), calc((100vw - var(--max)) / 2));
	position: absolute;
	top: 7%;
	z-index: 5;
}

.territory-showcase__backdrop {
	color: color-mix(in srgb, var(--ink) 3.5%, transparent);
	font-family: var(--font-title);
	font-size: clamp(150px, 16vw, 250px);
	font-weight: 600;
	left: 50%;
	letter-spacing: -.07em;
	line-height: .8;
	pointer-events: none;
	position: absolute;
	top: 17%;
	transform: translate(-50%, -50%);
	white-space: nowrap;
	width: 100%;
	z-index: 0;
}

.territory-showcase__backdrop span {
	left: 50%;
	opacity: 0;
	position: absolute;
	top: 0;
	transform: translateX(-50%) translateY(24px);
	transition: opacity 700ms ease, transform 900ms cubic-bezier(.22, 1, .36, 1);
}

.territory-showcase__backdrop span.is-active {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

.territory-showcase__slides,
.territory-showcase__slide {
	height: 100%;
	inset: 0;
	position: absolute;
	width: 100%;
}

.territory-showcase__slide {
	pointer-events: none;
	visibility: hidden;
}

.territory-showcase__slide.is-active {
	pointer-events: auto;
	visibility: visible;
}

.territory-showcase__meta {
	left: max(8%, calc((100vw - var(--max)) / 2));
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translate(-34px, -50%);
	transition: opacity 500ms ease, transform 800ms cubic-bezier(.22, 1, .36, 1);
	width: min(39%, 590px);
	z-index: 3;
}

.territory-showcase__slide.is-active .territory-showcase__meta {
	opacity: 1;
	transform: translate(0, -50%);
}

.territory-showcase__distance {
	color: var(--clay);
	font-family: var(--font-accent);
	font-size: clamp(22px, 2vw, 30px);
	font-weight: 600;
	line-height: 1;
	margin-bottom: 20px;
}

.territory-showcase__meta h2 {
	font-size: clamp(76px, 8vw, 122px);
	font-weight: 600;
	letter-spacing: -.065em;
	line-height: .86;
	margin-left: -7px;
}

.territory-showcase__subtitle {
	color: var(--clay);
	font-family: var(--font-title);
	font-size: clamp(18px, 1.6vw, 24px);
	font-weight: 600;
	line-height: 1.15;
	margin-top: 26px;
}

.territory-showcase__excerpt {
	color: var(--muted);
	font-size: 15px;
	line-height: 1.65;
	margin-top: 18px;
	max-width: 410px;
}

.territory-showcase__experience {
	border-top: 1px solid color-mix(in srgb, var(--gold) 55%, transparent);
	font-size: 13px;
	line-height: 1.55;
	margin-top: 22px;
	max-width: 430px;
	padding-top: 16px;
}

.territory-showcase__experience span {
	color: var(--clay);
	display: inline-block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .09em;
	margin-right: 8px;
	text-transform: uppercase;
}

.territory-showcase__links {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 16px;
}

.territory-showcase__links a {
	border-bottom: 1px solid currentColor;
	color: var(--clay);
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
}

.territory-showcase__image {
	height: 70%;
	margin: 0;
	opacity: 0;
	overflow: hidden;
	position: absolute;
	right: 8.5%;
	top: 50%;
	transform: translate(36px, -50%) scale(.97);
	transition: opacity 600ms ease 80ms, transform 900ms cubic-bezier(.22, 1, .36, 1);
	width: 35%;
	z-index: 2;
}

.territory-showcase__slide.is-active .territory-showcase__image {
	opacity: 1;
	transform: translate(0, -50%) scale(1);
}

.territory-showcase__image img {
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	transition: transform 6.5s linear;
	width: 100%;
}

.territory-showcase__slide.is-active .territory-showcase__image img {
	transform: scale(1.045);
}

.territory-showcase__image figcaption {
	background: color-mix(in srgb, var(--olive-deep) 82%, transparent);
	bottom: 0;
	color: var(--bone);
	font-size: 9px;
	left: 0;
	line-height: 1.25;
	padding: 6px 8px;
	position: absolute;
}

.territory-showcase__cta {
	align-items: center;
	background: var(--blue-light);
	border-radius: 50%;
	bottom: 18%;
	color: var(--olive-deep);
	display: flex;
	flex-direction: column;
	font-family: var(--font-title);
	font-size: 13px;
	font-weight: 700;
	height: 150px;
	justify-content: center;
	left: 50%;
	line-height: 1.15;
	opacity: 0;
	position: absolute;
	text-align: center;
	text-transform: uppercase;
	transform: translate(-80%, 24px);
	transition: opacity 450ms ease 180ms, transform 800ms cubic-bezier(.22, 1, .36, 1), background 220ms ease, color 220ms ease;
	width: 150px;
	z-index: 4;
}

.territory-showcase__slide.is-active .territory-showcase__cta {
	opacity: 1;
	transform: translate(-80%, 0);
}

.territory-showcase__cta i {
	font-size: 21px;
	font-style: normal;
	margin-top: 10px;
}

.territory-showcase__cta:hover,
.territory-showcase__cta:focus-visible {
	background: var(--olive-deep);
	color: var(--bone);
}

.territory-showcase__dots {
	display: flex;
	flex-direction: column;
	left: 3.5%;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 6;
}

.territory-showcase__dots button {
	background: none;
	border: 0;
	color: var(--ink);
	cursor: pointer;
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	opacity: .28;
	padding: 15px 0;
	position: relative;
	transition: opacity 250ms ease, transform 350ms ease;
}

.territory-showcase__dots button::after {
	background: var(--ink);
	content: '';
	height: 1px;
	left: 28px;
	position: absolute;
	top: 50%;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 350ms ease;
	width: 22px;
}

.territory-showcase__dots button.is-active {
	opacity: 1;
	transform: translateX(-12px);
}

.territory-showcase__dots button.is-active::after {
	transform: scaleX(1);
}

.territory-showcase__nav {
	align-items: center;
	bottom: 7%;
	display: flex;
	gap: 15px;
	position: absolute;
	right: 24%;
	transform: translateX(-18%);
	z-index: 6;
}

.territory-showcase__nav button {
	background: none;
	border: 0;
	color: var(--olive-deep);
	cursor: pointer;
	font-size: 25px;
	padding: 8px;
}

.territory-showcase__nav button:hover,
.territory-showcase__nav button:focus-visible {
	color: var(--clay);
}

.territory-showcase__nav button:disabled {
	cursor: default;
	opacity: .28;
}

.territory-showcase__nav span {
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 600;
}

.territory-showcase--itineraries .territory-showcase__meta {
	width: min(44%, 650px);
}

.territory-showcase--itineraries .territory-showcase__meta h2 {
	font-size: clamp(52px, 5.7vw, 88px);
	line-height: .91;
}

.territory-showcase--itineraries .territory-showcase__subtitle {
	font-size: clamp(15px, 1.25vw, 19px);
	line-height: 1.3;
}

.territory-showcase--itineraries .territory-showcase__links {
	align-items: flex-start;
	flex-direction: column;
	gap: 8px;
}

.territory-showcase__note {
	color: var(--muted);
	display: -webkit-box;
	font-size: 12px;
	line-height: 1.45;
	margin-top: 14px;
	max-width: 430px;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.territory-showcase--itineraries .territory-showcase__backdrop {
	font-size: clamp(110px, 12vw, 200px);
}

.territory-itineraries {
	background: var(--blue-light);
	padding: clamp(90px, 11vw, 160px) 0;
}

.territory-itineraries__grid {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.territory-itinerary {
	background: var(--paper);
	display: flex;
	flex-direction: column;
	min-height: 720px;
	padding: clamp(30px, 4vw, 56px);
}

.territory-itinerary:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.territory-itinerary__meta { align-items: center; color: var(--clay); display: flex; font-size: 12px; justify-content: space-between; letter-spacing: .08em; text-transform: uppercase; }
.territory-itinerary h3 { font-size: clamp(40px, 4.4vw, 64px); margin-top: 26px; }
.territory-itinerary__route { color: var(--clay); font-family: var(--font-title); font-size: 18px; font-weight: 600; margin-top: 22px; }
.territory-itinerary__intro { color: var(--muted); font-size: 15px; line-height: 1.65; margin-top: 16px; }
.territory-itinerary ol { margin: 10px 0 24px; padding-left: 22px; }
.territory-itinerary li { border-bottom: 1px solid color-mix(in srgb, var(--gold) 50%, transparent); padding: 8px 0; }
.territory-itinerary__note { background: color-mix(in srgb, var(--green-light) 55%, transparent); color: var(--muted); font-size: 13px; line-height: 1.55; margin: 0 0 24px; padding: 16px 18px; }
.territory-itinerary__places { border-top: 1px solid color-mix(in srgb, var(--gold) 50%, transparent); margin-top: auto; padding-top: 20px; }
.territory-itinerary__places > span,
.territory-itinerary__experience > span { color: var(--clay); display: block; font-size: 10px; font-weight: 700; letter-spacing: .1em; margin-bottom: 10px; text-transform: uppercase; }
.territory-itinerary__places > div { display: flex; flex-wrap: wrap; gap: 8px; }
.territory-itinerary__places a { border: 1px solid color-mix(in srgb, var(--clay) 40%, transparent); color: var(--clay); font-family: var(--font-title); font-size: 11px; font-weight: 600; padding: 8px 11px; }
.territory-itinerary__places a:hover,
.territory-itinerary__places a:focus-visible { background: var(--clay); color: var(--bone); }
.territory-itinerary__experience { border-top: 1px solid color-mix(in srgb, var(--gold) 50%, transparent); margin-top: 24px; padding-top: 20px; }
.territory-itinerary__experience strong { font-family: var(--font-title); font-size: 20px; }
.territory-itinerary__experience p { font-size: 13px; line-height: 1.55; margin: 7px 0 0; }
.territory-itinerary__experience small { color: var(--muted); display: block; font-size: 11px; line-height: 1.45; margin-top: 7px; }
.territory-itinerary__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.territory-itinerary--city { min-height: 540px; }
.territory-itinerary--city .territory-itinerary__note { margin-top: 24px; }
.territory-itinerary--city .territory-itinerary__experience { margin-top: auto; }
.territory-itinerary--city .territory-itinerary__actions .gv-button { padding-inline: 18px; }

.territory-cities {
	--territory-cities-edge: max(var(--site-pad), calc((100vw - var(--max)) / 2));
	overflow: hidden;
}

.territory-cities > .gv-container {
	max-width: none;
	padding-inline: 0;
}

.territory-cities .territory-section-heading {
	margin-left: var(--territory-cities-edge);
	max-width: min(850px, calc(100vw - (var(--territory-cities-edge) * 2)));
}

.territory-cities__hint {
	align-items: center;
	color: var(--olive-deep);
	display: flex;
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	gap: 12px;
	letter-spacing: .1em;
	margin: 42px var(--territory-cities-edge) 16px;
	text-transform: uppercase;
}

.territory-cities__hint span {
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
}

.territory-cities__grid {
	display: grid;
	gap: 24px;
	grid-auto-columns: clamp(370px, 35vw, 500px);
	grid-auto-flow: column;
	grid-template-columns: none;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding: 0 var(--territory-cities-edge) 26px;
	scroll-padding-inline: var(--territory-cities-edge);
	scroll-snap-type: inline mandatory;
	scrollbar-color: var(--olive-deep) color-mix(in srgb, var(--olive-deep) 16%, transparent);
	scrollbar-width: thin;
}

.territory-cities__grid::-webkit-scrollbar {
	height: 5px;
}

.territory-cities__grid::-webkit-scrollbar-track {
	background: color-mix(in srgb, var(--olive-deep) 16%, transparent);
}

.territory-cities__grid::-webkit-scrollbar-thumb {
	background: var(--olive-deep);
}

.territory-cities__grid .territory-itinerary--city {
	grid-column: auto;
	scroll-snap-align: start;
}

.territory-itineraries-notice {
	background: var(--blue-light);
	padding: clamp(48px, 6vw, 88px) 0 clamp(64px, 8vw, 112px);
}

.territory-itineraries__notice {
	background: var(--olive-deep);
	color: var(--paper);
	display: grid;
	gap: clamp(42px, 6vw, 88px);
	grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
	margin-top: 0;
	overflow: hidden;
	padding: clamp(38px, 5vw, 72px);
	position: relative;
}

.territory-itineraries__notice::after {
	border: 1px solid color-mix(in srgb, var(--green-light) 24%, transparent);
	border-radius: 50%;
	content: '';
	height: 270px;
	left: -112px;
	pointer-events: none;
	position: absolute;
	top: -145px;
	width: 270px;
}

.territory-itineraries__notice-intro,
.territory-itineraries__notice-list {
	position: relative;
	z-index: 1;
}

.territory-itineraries__notice-intro .gv-kicker {
	color: var(--blue-light);
	font-size: clamp(21px, 2vw, 28px);
	margin-bottom: 14px;
}

.territory-itineraries__notice h3 {
	color: var(--green-light);
	font-size: clamp(42px, 4.7vw, 68px);
	letter-spacing: -.045em;
	line-height: .95;
}

.territory-itineraries__notice-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.territory-itineraries__notice-list li {
	align-items: start;
	border-top: 1px solid color-mix(in srgb, var(--green-light) 30%, transparent);
	display: grid;
	gap: 18px;
	grid-template-columns: 42px minmax(0, 1fr);
	padding: 18px 0;
}

.territory-itineraries__notice-list li:last-child {
	border-bottom: 1px solid color-mix(in srgb, var(--green-light) 30%, transparent);
}

.territory-itineraries__notice-list span {
	color: var(--blue-light);
	font-family: var(--font-title);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	padding-top: 3px;
}

.territory-itineraries__notice-list p {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
	max-width: 720px;
}

body.page-id-52 .gv-final-cta .gv-actions .gv-button--ghost {
	background: transparent;
	border-color: var(--green-light);
	color: var(--green-light);
}

body.page-id-52 .gv-final-cta .gv-actions .gv-button--ghost:hover,
body.page-id-52 .gv-final-cta .gv-actions .gv-button--ghost:focus-visible {
	background: var(--green-light);
	color: var(--olive-deep);
}

body.page-id-52 .elementor-element-d024ea4 .gv-story-row {
	background: var(--paper);
}

body.page-id-52 .elementor-element-495e7f4 .gv-story-row {
	background: var(--surface-dim);
}

body.page-id-52 .elementor-top-section.elementor-element-fda8663 {
	background: var(--surface-dim);
}

@media (max-width: 1050px) {
	.territory-circeo__grid { grid-template-columns: 1fr 1fr; }
	.territory-map-layout { grid-template-columns: 1fr; }
	.territory-map { min-height: 620px; }
	.territory-map-panels { margin: 0 auto; max-width: 720px; }
	.territory-showcase__meta { left: 9%; width: 43%; }
	.territory-showcase__image { right: 5%; width: 40%; }
	.territory-showcase__dots { display: none; }
	.territory-showcase__cta { left: 52%; }
}

@media (max-width: 760px) {
	.territory-circeo__grid,
	.territory-guide__intro { display: block; }
	.territory-circeo__visual { margin-top: 42px; min-height: 440px; }
	.territory-circeo__panorama { height: 340px; width: 92%; }
	.territory-circeo__detail { border-width: 7px; height: 190px; width: 53%; }
	.territory-guide__intro > div { margin-top: 30px; }
	.territory-map { min-height: 500px; }
	.territory-map__secondary { font-size: 7px; }
	.territory-map__winery { transform: translate(-50%, -50%) scale(.8); }
	.territory-map__point { font-size: 9px; }
	.territory-map__point span { height: 14px; width: 14px; }
	.territory-map-card__body { padding: 24px; }
	.territory-map-card .gv-actions { align-items: stretch; flex-direction: column; }
	.territory-map-card .gv-button { justify-content: center; }
	.territory-showcase { height: min(860px, 100svh); min-height: 700px; }
	.territory-showcase__rail,
	.territory-showcase__backdrop,
	.territory-showcase__excerpt,
	.territory-showcase__note { display: none; }
	.territory-showcase__label { color: var(--gold); left: 24px; top: 118px; }
	.territory-showcase__slide::before { background: linear-gradient(90deg, color-mix(in srgb, var(--clay) 90%, transparent), color-mix(in srgb, var(--clay) 67%, transparent) 72%, color-mix(in srgb, var(--clay) 50%, transparent)); content: ''; inset: 0; position: absolute; z-index: 2; }
	.territory-showcase__meta { color: var(--bone); left: 24px; top: 46%; width: calc(100% - 48px); }
	.territory-showcase__meta h2 { color: var(--bone); font-size: clamp(58px, 18vw, 86px); margin-left: -4px; }
	.territory-showcase__distance { color: var(--green-light); }
	.territory-showcase__subtitle { color: var(--paper); }
	.territory-showcase__experience span { color: var(--gold); }
	.territory-showcase__subtitle { font-size: 19px; max-width: 310px; }
	.territory-showcase__experience { border-color: color-mix(in srgb, var(--gold) 62%, transparent); color: var(--paper); font-size: 12px; max-width: 310px; }
	.territory-showcase__links a { color: var(--green-light); }
	.territory-showcase__image { height: 100%; inset: 0; opacity: 0; right: auto; top: 0; transform: scale(1.04); width: 100%; z-index: 1; }
	.territory-showcase__slide.is-active .territory-showcase__image { opacity: 1; transform: scale(1); }
	.territory-showcase__image figcaption { background: color-mix(in srgb, var(--olive-deep) 72%, transparent); bottom: 0; max-width: 75%; }
	.territory-showcase__cta { background: var(--paper); bottom: 11%; color: var(--ink); font-size: 10px; height: 112px; left: 24px; transform: translateY(20px); width: 112px; }
	.territory-showcase__cta:hover,
	.territory-showcase__cta:focus-visible { background: var(--ink); color: var(--paper); }
	.territory-showcase__slide.is-active .territory-showcase__cta { transform: translateY(0); }
	.territory-showcase__nav { bottom: 5%; color: var(--bone); right: 18px; transform: none; }
	.territory-showcase__nav button { color: var(--bone); }
	.territory-showcase--itineraries .territory-showcase__meta { left: 24px; top: 45%; width: calc(100% - 48px); }
	.territory-showcase--itineraries .territory-showcase__meta h2 { font-size: clamp(40px, 12vw, 56px); line-height: .92; }
	.territory-showcase--itineraries .territory-showcase__distance { font-size: 18px; margin-bottom: 14px; }
	.territory-showcase--itineraries .territory-showcase__subtitle { font-size: 14px; line-height: 1.3; margin-top: 15px; max-width: 330px; }
	.territory-showcase--itineraries .territory-showcase__experience { margin-top: 16px; padding-top: 12px; }
	.territory-showcase--itineraries .territory-showcase__links { gap: 10px; margin-top: 12px; }
	.territory-showcase--itineraries .territory-showcase__links a { font-size: 9px; }
	.territory-itineraries__grid { grid-template-columns: 1fr; }
	.territory-cities { --territory-cities-edge: 24px; padding: 70px 0 82px; }
	.territory-cities__hint { margin-top: 30px; }
	.territory-cities__grid { gap: 16px; grid-auto-columns: calc(100vw - 48px); grid-template-columns: none; padding-bottom: 20px; }
	.territory-itinerary,
	.territory-itinerary:last-child:nth-child(odd) { grid-column: auto; min-height: 0; }
	.territory-cities__grid .territory-itinerary--city { min-height: 540px; }
	.territory-itineraries-notice { padding: 40px 0 64px; }
	.territory-itineraries__notice { display: block; padding: 32px 24px; }
	.territory-itineraries__notice::after { height: 180px; left: -100px; top: -105px; width: 180px; }
	.territory-itineraries__notice h3 { font-size: clamp(40px, 13vw, 54px); }
	.territory-itineraries__notice-list { margin-top: 30px; }
	.territory-itineraries__notice-list li { gap: 12px; grid-template-columns: 34px minmax(0, 1fr); padding: 16px 0; }
	.territory-itineraries__notice-list p { font-size: 13px; line-height: 1.55; }
}

/* Keep every page hero at one complete viewport, across theme and widget variants. */
.hero,
.page-hero,
.single-hero,
.gv-kit-hero,
.gv-site-hero,
.place-detail__hero,
.wine-detail__hero {
	box-sizing: border-box;
	height: 100vh;
	min-height: 100vh;
}

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

	[data-reveal] {
		opacity: 1;
		transform: none;
	}

	.gianna-intro__video,
	.gianna-intro__content,
	.gianna-visual-card::before,
	.gianna-visual-card__video {
		transform: none !important;
	}

	.gianna-visual-menu__viewport {
		scroll-behavior: auto;
	}
}
