/*
 * Homepage styles (Divi sections). Uses the tokens from base.css.
 *
 * The page content is built in the Divi builder; each module carries a vn-*
 * class from the markup below, so editors can change copy and images freely.
 */

:root {
	--vn-i-lock: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22862.5%201570.5%20195%20195%22%3E%3Cg%20transform=%22translate(960%201668)%22%3E%3Ccircle%20r=%2287%22%20fill=%22%23263e77%22%20stroke=%22%23ffffff%22%20stroke-width=%2221%22/%3E%3C/g%3E%3Cpath%20fill-rule=%22nonzero%22%20fill=%22%23ffde00%22%20fill-opacity=%221%22%20d=%22M%20962.933594%201693.175781%20C%20963.769531%201693.175781%20964.484375%201692.367188%20964.292969%201691.546875%20L%20961.859375%201681.128906%20C%20963.121094%201680.421875%20964.113281%201679.335938%20964.632812%201677.996094%20C%20965.71875%201675.203125%20964.59375%201672.058594%20962.027344%201670.53125%20C%20960.101562%201669.386719%20957.695312%201669.382812%20955.769531%201670.527344%20C%20953.273438%201672.015625%20952.128906%201675.027344%20953.078125%201677.78125%20C%20953.570312%201679.21875%20954.601562%201680.390625%20955.933594%201681.132812%20L%20953.699219%201691.34375%20C%20953.59375%201691.828125%20953.628906%201692.242188%20953.941406%201692.640625%20C%20954.183594%201692.945312%20954.582031%201693.179688%20955.046875%201693.179688%20Z%20M%20941.382812%201655.21875%20L%20976.417969%201655.21875%20L%20976.414062%201647.984375%20C%20976.410156%201646.074219%20976.097656%201644.226562%20975.484375%201642.4375%20C%20972.972656%201635.121094%20965.972656%201630.230469%20958.222656%201630.5625%20C%20953.992188%201630.746094%20950.066406%201632.359375%20946.976562%201635.230469%20C%20944.890625%201637.167969%20943.296875%201639.574219%20942.355469%201642.265625%20C%20941.730469%201644.113281%20941.375%201645.976562%20941.375%201647.933594%20Z%20M%20932.292969%201708.835938%20C%20928.308594%201708.835938%20925.058594%201705.414062%20925.054688%201701.515625%20L%20925.039062%201662.195312%20C%20925.292969%201658.355469%20928.453125%201655.335938%20932.289062%201655.253906%20L%20932.289062%201648.035156%20C%20932.289062%201646.085938%20932.515625%201644.214844%20932.898438%201642.304688%20C%20934.660156%201634.308594%20940.113281%201627.546875%20947.5%201624.035156%20C%20950.660156%201622.53125%20954.066406%201621.683594%20957.558594%201621.5%20C%20964.027344%201621.164062%20970.402344%201623.230469%20975.449219%201627.265625%20C%20979.40625%201630.425781%20982.351562%201634.609375%20984.039062%201639.394531%20C%20984.992188%201642.097656%20985.472656%201644.945312%20985.5%201647.828125%20L%20985.503906%201655.152344%20L%20985.546875%201655.25%20C%20989.492188%201655.363281%20992.742188%201658.613281%20992.742188%201662.613281%20L%20992.742188%201701.453125%20C%20992.742188%201705.375%20989.523438%201708.832031%20985.527344%201708.832031%20Z%20M%20932.292969%201708.835938%20%22/%3E%3C/svg%3E");
	--vn-i-badge: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%221497.5%201570.5%20195%20195%22%3E%3Cg%20transform=%22translate(1595%201668)%22%3E%3Ccircle%20r=%2287%22%20fill=%22%23263e77%22%20stroke=%22%23ffffff%22%20stroke-width=%2221%22/%3E%3C/g%3E%3Cpath%20fill-rule=%22nonzero%22%20fill=%22%23ffde00%22%20fill-opacity=%221%22%20d=%22M%201574.585938%201675.074219%20L%201585.777344%201686.238281%20C%201587.558594%201688.019531%201590.617188%201688%201592.40625%201686.210938%20L%201618.164062%201660.441406%20C%201620.078125%201658.523438%201619.882812%201655.390625%201618.015625%201653.601562%20C%201616.089844%201651.757812%201613.089844%201651.835938%201611.199219%201653.726562%20L%201589.0625%201675.871094%20L%201581.421875%201668.214844%20C%201579.503906%201666.292969%201576.417969%201666.308594%201574.546875%201668.203125%20C%201572.679688%201670.089844%201572.664062%201673.15625%201574.585938%201675.074219%20M%201612.523438%201713.773438%20C%201611.292969%201716.085938%201608.582031%201717.273438%201606.125%201716.207031%20L%201600.019531%201713.269531%20C%201596.230469%201711.554688%201591.847656%201711.417969%201588.046875%201713.164062%20L%201582.347656%201715.953125%20C%201579.796875%201717.203125%201576.757812%201716.496094%201575.394531%201713.921875%20L%201572.730469%201708.898438%20C%201570.640625%201704.773438%201566.816406%201701.824219%201562.234375%201701.023438%20L%201556.28125%201699.980469%20C%201553.589844%201699.511719%201551.664062%201697.117188%201552.050781%201694.375%20L%201552.90625%201688.253906%20C%201553.523438%201683.875%201552.175781%201679.429688%201549.101562%201676.242188%20L%201544.722656%201671.703125%20C%201542.722656%201669.632812%201542.863281%201666.488281%201544.878906%201664.5%20L%201549.082031%201660.164062%20C%201552.207031%201656.933594%201553.515625%201652.4375%201552.894531%201648%20L%201552.046875%201641.984375%20C%201551.660156%201639.226562%201553.640625%201636.878906%201556.320312%201636.410156%20L%201562.386719%201635.347656%20C%201566.699219%201634.59375%201570.386719%201631.867188%201572.441406%201628.015625%20L%201575.507812%201622.277344%20C%201576.800781%201619.859375%201579.820312%201619.226562%201582.222656%201620.398438%20L%201587.714844%201623.078125%20C%201591.660156%201625.003906%201596.28125%201624.933594%201600.21875%201623.03125%20L%201606.03125%201620.226562%20C%201608.34375%201619.109375%201611.167969%201620.136719%201612.371094%201622.382812%20L%201615.394531%201628.039062%20C%201617.414062%201631.8125%201621.011719%201634.429688%201625.210938%201635.289062%20L%201631.867188%201636.492188%20C%201634.433594%201636.957031%201636.125%201639.46875%201635.761719%201642.042969%20L%201634.894531%201648.234375%20C%201634.292969%201652.507812%201635.640625%201656.859375%201638.597656%201660.015625%20L%201642.925781%201664.492188%20C%201644.855469%201666.484375%201645.136719%201669.5625%201643.171875%201671.609375%20L%201638.585938%201676.386719%20C%201635.582031%201679.632812%201634.304688%201684.03125%201634.925781%201688.394531%20L%201635.765625%201694.3125%20C%201636.148438%201697.003906%201634.339844%201699.476562%201631.675781%201699.949219%20L%201625.28125%201701.082031%20C%201621.207031%201701.878906%201617.664062%201704.394531%201615.605469%201708.003906%20Z%20M%201612.523438%201713.773438%20%22/%3E%3C/svg%3E");
	--vn-i-check: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%221003.51%204359.84%2077.52%2077.52%22%3E%3Cpath%20fill-rule=%22nonzero%22%20fill=%22%23ffde00%22%20fill-opacity=%221%22%20d=%22M%201024.472656%204402.46875%20L%201033.875%204411.851562%20C%201035.890625%204413.867188%201039.398438%204413.882812%201041.429688%204411.855469%20L%201059.957031%204393.371094%20C%201062.113281%204391.21875%201062.234375%204387.828125%201060.175781%204385.609375%20C%201058.152344%204383.394531%201054.671875%204383.214844%201052.410156%204385.253906%20L%201037.65625%204400%20L%201032.261719%204394.617188%20C%201030.105469%204392.464844%201026.601562%204392.566406%201024.496094%204394.691406%20C%201022.398438%204396.808594%201022.304688%204400.304688%201024.472656%204402.46875%20M%201081.03125%204398.601562%20C%201081.03125%204420.007812%201063.675781%204437.363281%201042.269531%204437.363281%20C%201020.863281%204437.363281%201003.507812%204420.007812%201003.507812%204398.601562%20C%201003.507812%204377.195312%201020.863281%204359.839844%201042.269531%204359.839844%20C%201063.675781%204359.839844%201081.03125%204377.195312%201081.03125%204398.601562%20%22/%3E%3C/svg%3E");
	--vn-i-arrow: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%221169.54%202071.93%2030.21%2035.82%22%3E%3Cpath%20fill-rule=%22nonzero%22%20fill=%22%23ffde00%22%20fill-opacity=%221%22%20d=%22M%201176.300781%202104.300781%20L%201170.78125%202107.59375%20C%201170.523438%202107.746094%201170.203125%202107.699219%201169.972656%202107.535156%20C%201169.652344%202107.308594%201169.542969%202106.914062%201169.671875%202106.542969%20L%201175.652344%202089.835938%20C%201175.734375%202089.605469%201175.71875%202089.394531%201175.632812%202089.167969%20L%201169.722656%202073.148438%20C%201169.570312%202072.742188%201169.671875%202072.304688%201170.074219%202072.082031%20C%201170.277344%202071.96875%201170.5625%202071.929688%201170.789062%202072.066406%20L%201174.644531%202074.363281%20L%201184.738281%202080.390625%20L%201199.375%202089.128906%20C%201199.628906%202089.277344%201199.75%202089.574219%201199.742188%202089.847656%20C%201199.734375%202090.136719%201199.582031%202090.390625%201199.324219%202090.542969%20L%201195.003906%202093.121094%20Z%20M%201176.300781%202104.300781%20%22/%3E%3C/svg%3E");
	--vn-wave-why: url('../img/wave-why.svg');
	--vn-wave-touch: url('../img/wave-touch.svg');
}

/* ------------------------------------------------------------------ resets */

/* Divi adds percentage padding/margins to sections, rows and modules; the
   layout here is driven by the tokens in base.css instead. */
.et_pb_section.vn-sec {
	padding: 0;
	font-family: var(--font);
}

.et_pb_row.vn-row {
	width: 100%;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter);
	box-sizing: border-box;
}

.vn-sec .et_pb_column {
	margin-right: 0;
}

.et_pb_section.vn-sec .et_pb_column .et_pb_module {
	margin-bottom: 0 !important;
	margin-right: 0 !important;
}

.vn-sec :is(p, h1, h2, h3, h4) {
	margin: 0;
	padding: 0;
	font-family: var(--font);
}

.vn-sec :where(p, li) {
	text-wrap: pretty;
}

.vn-why-card p,
.vn-stat .vn-stat__label,
.vn-cat .et_pb_module_header {
	text-wrap: balance;
}

.vn-sec .et_pb_text_inner {
	font-family: var(--font);
}

/* Divi buttons: use the shared .vn-btn look */
.et_pb_section .et_pb_button.vn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 28px;
	border-width: 2px;
	border-radius: var(--r-pill);
	font-family: var(--font);
	font-size: var(--fs-sm);
	line-height: 1;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
}

.et_pb_section .et_pb_button.vn-btn::after {
	display: none;
}

.et_pb_section .et_pb_button.vn-btn:hover {
	padding: 0 28px;
}

.et_pb_section .et_pb_button.vn-btn--accent {
	background: var(--c-yellow);
	border-color: var(--c-yellow);
	color: var(--c-deep);
}

.et_pb_section .et_pb_button.vn-btn--accent:hover {
	background: #fff;
	border-color: #fff;
	color: var(--c-deep);
}

.et_pb_section .et_pb_button.vn-btn--ghost {
	background: rgba(4, 18, 62, 0.55);
	border-color: #fff;
	color: #fff;
}

.et_pb_section .et_pb_button.vn-btn--ghost:hover {
	background: #fff;
	border-color: #fff;
	color: var(--c-deep);
}

.vn-sec .et_pb_button_module_wrapper {
	margin: 0;
}

/* shared section heading */
.vn-h2 {
	font-size: var(--fs-h2);
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

.vn-sec .vn-label {
	font-size: var(--fs-xs);
	letter-spacing: 0.14em;
}

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

.et_pb_section.vn-hero {
	display: flex;
	align-items: center;
	min-height: clamp(500px, 64vh, 640px);
	padding-block: clamp(40px, 6vw, 72px);
	background-size: cover;
	background-position: 70% center;
	background-repeat: no-repeat;
}

.vn-hero .et_pb_column {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	justify-content: start;
	align-items: start;
	gap: 16px 12px;
}

.vn-hero .et_pb_button_module_wrapper {
	justify-self: start;
}

.vn-hero__card.et_pb_text {
	grid-column: 1 / -1;
	max-width: 540px;
	padding: clamp(22px, 3vw, 36px);
	box-sizing: border-box;
	border-radius: var(--r-lg);
	background: rgba(4, 18, 62, 0.74);
	color: #fff;
}

.vn-hero__card h1 {
	margin-top: 0;
	font-size: var(--fs-h1);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -0.025em;
	color: #fff;
}

.vn-hero__card h1 span {
	color: var(--c-yellow);
}

.vn-hero__card .vn-hero__lead {
	margin-top: 14px;
	max-width: 46ch;
	font-size: var(--fs-md);
	line-height: 1.6;
	font-weight: 500;
	color: #fff;
}

/* ------------------------------------------------------------------ stats */

.et_pb_section.vn-stats {
	background: #fff;
	border-bottom: 1px solid var(--c-grey);
}

.vn-stats .et_pb_column {
	display: flex;
	justify-content: center;
	gap: clamp(20px, 7vw, 112px);
	padding-block: clamp(20px, 2.6vw, 32px);
}

.vn-sec .vn-stat {
	text-align: center;
}

.vn-stat .vn-stat__num {
	font-size: clamp(1.375rem, 1rem + 1.4vw, 2rem);
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--c-navy);
}

.vn-stat .vn-stat__label {
	margin-top: 2px;
	font-size: var(--fs-xs);
	line-height: 1.35;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-muted);
}

/* -------------------------------------------------------------- why venice */

.et_pb_section.vn-why {
	position: relative;
	padding-block: var(--section-y);
	background: var(--c-action);
	overflow: hidden;
}

.vn-why::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--vn-wave-why) no-repeat 0 0 / 100% 100%;
	pointer-events: none;
}

.vn-why .et_pb_row {
	position: relative;
}

.vn-why .vn-why__head {
	text-align: center;
}

.vn-why .vn-why__head .et_pb_text,
.vn-why .vn-why__cta .et_pb_text {
	text-align: center;
}

/* yellow label on the blue field: kept at a "large text" size for contrast */
.vn-why__head .vn-label {
	font-size: clamp(1.0625rem, 0.95rem + 0.5vw, 1.25rem);
	letter-spacing: 0.12em;
	color: var(--c-yellow);
}

.vn-why__head .vn-h2 {
	margin-top: 8px;
	color: #fff;
}

.vn-why .vn-why__cards {
	margin-top: clamp(56px, 6vw, 72px);
}

.vn-why .vn-why__cards .et_pb_column {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 40px);
}

.vn-why-card.et_pb_text {
	position: relative;
	box-sizing: border-box;
	max-width: 360px;
	width: 100%;
	justify-self: center;
	padding: 60px 24px 28px;
	border-radius: var(--r-lg);
	background: var(--c-navy);
	text-align: center;
}

.vn-why-card::before {
	content: '';
	position: absolute;
	left: 50%;
	top: -44px;
	width: 88px;
	height: 88px;
	margin-left: -44px;
	background: no-repeat center / contain;
}

.vn-why-card--durability::before {
	background-image: url('../img/icon-durability.webp');
}

.vn-why-card--seal::before {
	background-image: var(--vn-i-lock);
}

.vn-why-card--mind::before {
	background-image: var(--vn-i-badge);
}

.vn-why-card h3 {
	min-height: 2.6em;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--fs-lg);
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--c-yellow);
}

.vn-why-card p {
	margin-top: 8px;
	font-size: var(--fs-md);
	line-height: 1.55;
	font-weight: 500;
	color: #fff;
}

.vn-why .vn-why__cta {
	margin-top: clamp(28px, 3.4vw, 40px);
}

.vn-arrow-link a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	font-size: var(--fs-md);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--c-yellow);
}

.vn-arrow-link a::after {
	content: '';
	width: 14px;
	height: 16px;
	background: var(--vn-i-arrow) no-repeat center / contain;
	transition: transform 0.2s var(--ease);
}

.vn-arrow-link a:hover::after {
	transform: translateX(4px);
}

/* ---------------------------------------------------------- product range */

.et_pb_section.vn-range {
	padding-block: var(--section-y);
	background: var(--c-grey);
}

.vn-range .vn-range__head {
	text-align: center;
}

.vn-range .vn-range__head .et_pb_text {
	text-align: center;
}

.vn-range__head .vn-label {
	color: var(--c-link);
}

.vn-range__head .vn-h2 {
	margin-top: 6px;
	color: var(--c-navy);
	text-transform: uppercase;
}

.vn-range .vn-range__grid {
	margin-top: clamp(24px, 3vw, 36px);
}

.vn-range .vn-range__grid .et_pb_column {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

/* columns: 2 (phone), 4 (tablet), 5 (laptop and up); the last row centres */
.vn-cat.et_pb_blurb {
	flex: 0 0 calc((100% - 12px) / 2);
}

@media (min-width: 640px) {
	.vn-cat.et_pb_blurb {
		flex-basis: calc((100% - 36px) / 4);
	}
}

@media (min-width: 1000px) {
	.vn-range .vn-range__grid .et_pb_column {
		gap: 16px;
	}

	.vn-cat.et_pb_blurb {
		flex-basis: calc((100% - 64px) / 5);
	}
}

.vn-cat.et_pb_blurb {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 14px 12px 16px;
	border-radius: var(--r-md);
	background: #fff;
	transition: box-shadow 0.25s var(--ease), transform 0.25s var(--ease);
}

.vn-cat.et_pb_blurb:hover {
	box-shadow: var(--shadow-md);
	transform: translateY(-2px);
}

.vn-cat .et_pb_blurb_content {
	display: flex;
	flex-direction: column;
	max-width: none;
	flex: 1;
}

.vn-cat .et_pb_main_blurb_image {
	display: block;
	margin: 0;
}

.vn-cat .et_pb_main_blurb_image .et_pb_image_wrap,
.vn-cat .et_pb_main_blurb_image a {
	display: block;
}

.vn-cat .et_pb_main_blurb_image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 0.8;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.vn-cat .et_pb_blurb_container {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.vn-cat .et_pb_module_header {
	margin: 8px 0 0;
	padding: 0;
	font-family: var(--font);
	font-size: var(--fs-sm);
	line-height: 1.3;
	font-weight: 800;
	text-align: center;
	text-transform: uppercase;
	color: var(--c-navy);
}

.vn-cat .et_pb_module_header a {
	color: inherit;
	text-decoration: none;
}

.vn-cat .et_pb_module_header a::after {
	content: '';
	position: absolute;
	inset: 0;
}

.vn-cat:focus-within {
	outline: 3px solid var(--c-link);
	outline-offset: 2px;
}

/* catalogue banner */
.vn-range .vn-catalogue.et_pb_row {
	position: relative;
	overflow: hidden;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin: clamp(32px, 4vw, 56px) auto 0;
	padding: clamp(36px, 5vw, 56px) clamp(20px, 4vw, 40px);
	border-radius: var(--r-xl);
	background-color: var(--c-navy);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	text-align: center;
	width: calc(100% - var(--gutter) * 2);
}

.vn-catalogue::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(4, 18, 62, 0.82);
}

.vn-catalogue .et_pb_column {
	position: relative;
}

.vn-catalogue .et_pb_text {
	text-align: center;
}

.vn-catalogue .vn-label {
	color: var(--c-yellow);
}

.vn-catalogue .vn-h2 {
	margin-top: 8px;
	color: #fff;
}

.vn-catalogue .et_pb_button_module_wrapper {
	margin-top: 22px;
}

/* ------------------------------------------------------------------ about */

.et_pb_section.vn-about {
	position: relative;
	padding-block: var(--section-y);
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: 15% 45%;
	background-size: cover;
	overflow: hidden;
}

/* white fade from the photo into the text column */
.vn-about::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0) 16%, rgba(255, 255, 255, 0.45) 30%, rgba(255, 255, 255, 0.85) 42%, #fff 54%);
	pointer-events: none;
}

.vn-about .vn-about__row {
	position: relative;
	display: flex;
	justify-content: flex-end;
}

.vn-about .vn-about__row .et_pb_column {
	flex: 0 1 560px;
	width: auto;
	float: none;
}

.vn-about .vn-label {
	color: var(--c-deep);
}

.vn-about h2 {
	margin-top: 6px;
	font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.125rem);
	line-height: 1.18;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--c-deep);
	text-wrap: balance;
}

.vn-about .vn-about__copy {
	margin-top: 14px;
	font-size: var(--fs-md);
	line-height: 1.65;
	font-weight: 500;
	color: var(--c-ink);
}

.vn-pill.et_pb_text {
	position: relative;
	box-sizing: border-box;
	margin-top: 14px;
	padding: 16px 24px 16px 84px;
	border-radius: var(--r-lg);
	background: var(--c-navy);
	min-height: 76px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.vn-about .vn-pill.et_pb_text:nth-child(2) {
	margin-top: 24px;
}

.vn-pill::before {
	content: '';
	position: absolute;
	left: 20px;
	top: 50%;
	width: 44px;
	height: 44px;
	margin-top: -22px;
	background: var(--vn-i-check) no-repeat center / contain;
}

.vn-pill h3 {
	font-size: var(--fs-md);
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--c-yellow);
}

.vn-pill p {
	margin-top: 2px;
	font-size: var(--fs-sm);
	line-height: 1.45;
	font-weight: 400;
	color: #fff;
}

/* ----------------------------------------------------------- get in touch */

.et_pb_section.vn-touch {
	position: relative;
	padding-block: var(--section-y);
	background: var(--c-navy);
	overflow: hidden;
}

.vn-touch::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 62%;
	background: var(--vn-wave-touch) no-repeat 0 0 / 100% 100%;
	pointer-events: none;
}

.vn-touch .vn-touch__row {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
	gap: clamp(28px, 6vw, 96px);
	align-items: center;
}

.vn-touch .vn-touch__row .et_pb_column {
	width: auto;
	margin-bottom: 0;
}

.vn-touch__copy .vn-label {
	color: #fff;
}

.vn-touch__copy h2 {
	margin-top: 8px;
	font-size: var(--fs-h2);
	line-height: 1.12;
	font-weight: 800;
	letter-spacing: -0.025em;
	color: #fff;
}

.vn-touch__copy h2 span {
	color: var(--c-yellow);
}

.vn-form-card.et_pb_code {
	padding: clamp(20px, 2.6vw, 32px);
	border-radius: var(--r-xl);
	background: #fff;
	box-shadow: var(--shadow-md);
}

/* Contact Form 7 inside the card */
.vn-form-card .wpcf7-form {
	display: grid;
	gap: 12px;
	margin: 0;
}

.vn-form-card .wpcf7-form p {
	margin: 0;
	padding: 0;
}

.vn-form-card .wpcf7-form br {
	display: none;
}

.vn-form-card label {
	display: block;
	margin-bottom: 6px;
	color: var(--c-navy);
	font-size: var(--fs-sm);
	font-weight: 600;
}

.vn-form-card .wpcf7-form-control-wrap {
	display: block;
}

.vn-form-card input[type='text'],
.vn-form-card input[type='email'],
.vn-form-card input[type='tel'],
.vn-form-card textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	padding: 12px 16px;
	border: 2px solid transparent;
	border-radius: var(--r-sm);
	background: var(--c-grey);
	color: var(--c-ink);
	font-family: var(--font);
	font-size: var(--fs-md);
	line-height: 1.4;
}

.vn-form-card textarea {
	height: 112px;
	min-height: 112px;
	resize: vertical;
}

.vn-form-card input:focus,
.vn-form-card textarea:focus {
	outline: none;
	border-color: var(--c-link);
	background: #fff;
}

.vn-form-card input[type='submit'] {
	min-width: 180px;
	min-height: 48px;
	padding: 0 28px;
	border: 2px solid transparent;
	border-radius: var(--r-pill);
	background: var(--c-action);
	color: #fff;
	font-family: var(--font);
	font-size: var(--fs-sm);
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.2s var(--ease);
}

.vn-form-card input[type='submit']:hover {
	background: var(--c-navy);
}

.vn-form-card .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: var(--c-error);
	font-size: var(--fs-sm);
	font-weight: 600;
}

.vn-form-card .wpcf7-response-output {
	margin: 4px 0 0;
	padding: 10px 14px;
	border-radius: var(--r-sm);
	font-size: var(--fs-sm);
}

.vn-form-card .wpcf7-spinner {
	display: none;
}

/* ------------------------------------------------------------ responsive */

@media (max-width: 1024px) {
	.vn-touch .vn-touch__row {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.vn-touch::before {
		height: 46%;
	}
}

@media (max-width: 900px) {
	.vn-why-card.et_pb_text {
		padding: 56px 16px 24px;
	}

	.vn-why-card p {
		font-size: var(--fs-sm);
	}

	.et_pb_section.vn-about {
		background-size: 100% auto;
		background-position: top center;
		padding-top: 0;
	}

	.vn-about::before {
		background: linear-gradient(180deg, rgba(255, 255, 255, 0) 120px, #fff 240px);
	}

	.vn-about .vn-about__row {
		padding-top: 230px;
	}

	.vn-about .vn-about__row {
		display: block;
	}

	.vn-about .vn-about__row .et_pb_column {
		width: 100%;
	}
}

@media (max-width: 640px) {
	/* cards are stacked here, so the equal-height title box is not needed */
	.vn-why-card h3 {
		min-height: 0;
	}

	.vn-why .vn-why__cards {
		margin-top: 76px;
	}

	.vn-why .vn-why__cards .et_pb_column {
		grid-template-columns: minmax(0, 1fr);
		gap: 56px;
	}

	.et_pb_section.vn-why {
		background: linear-gradient(var(--c-action) 0 420px, var(--c-mid) 420px);
	}

	.vn-why::before {
		top: 100px;
		bottom: auto;
		height: 320px;
	}

	.vn-why-card.et_pb_text {
		padding: 60px 24px 28px;
	}

	.vn-why-card p {
		font-size: var(--fs-md);
	}

	.et_pb_section.vn-hero {
		min-height: 0;
		padding-top: 190px;
		background-position: 80% top;
	}

	.vn-hero .et_pb_column {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.et_pb_section .et_pb_button.vn-btn {
		padding: 0 14px;
		font-size: 0.8125rem;
	}

	.vn-hero .et_pb_button.vn-btn {
		width: 100%;
	}

	.vn-hero__card.et_pb_text {
		border-radius: var(--r-md);
	}

	.vn-hero .et_pb_column {
		gap: 12px 10px;
	}

	.vn-stats .et_pb_column {
		gap: 8px;
		justify-content: space-between;
	}

	.vn-stat .vn-stat__label {
		font-size: var(--fs-xs);
		letter-spacing: 0.04em;
	}

	.vn-pill.et_pb_text {
		padding: 14px 18px 14px 72px;
	}

	.vn-pill::before {
		left: 16px;
		width: 40px;
		height: 40px;
		margin-top: -20px;
	}

	.vn-cat .et_pb_module_header {
		font-size: 13px;
	}

	.vn-range .vn-catalogue.et_pb_row {
		border-radius: var(--r-lg);
	}
}

@media (max-width: 359px) {
	.vn-hero .et_pb_column {
		grid-template-columns: minmax(0, 1fr);
	}
}
