/*
 * Velora - theme stylesheet (shell: base, header, footer, title bar, blog, forms, WooCommerce).
 * Built from assets/css/src/*.css by tools/build-css.py - edit the sources, not this file.
 * Section styles ship with Velora Core (assets/css/sections.css).
 */

/* base: fonts, tokens, reset, typography, buttons, layout helpers, motion, Elementor resets */

@font-face { font-family: "Fraunces"; src: url("../fonts/fraunces-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Jost"; src: url("../fonts/jost-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Kalnia"; src: url("../fonts/kalnia-latin.woff2") format("woff2"); font-weight: 100 700; font-style: normal; font-display: swap; }

:root {
	/* Default mood: Porcelain & Clay (inner pages, Home One). */
	--vl-bg: #F4F1EC;
	--vl-tint: #E5DED6;
	--vl-card: #FBFAF8;
	--vl-ink: #1F2A2E;
	--vl-text: #5F625F;
	--vl-muted: #8A8C88;
	--vl-accent: #B4613E;
	--vl-accent-2: #D9A47F;
	--vl-dark: #1F2A2E;
	--vl-dark-2: #2A373C;
	--vl-line: rgba(31, 42, 46, .9);
	--vl-hair: rgba(31, 42, 46, .14);
	--vl-on-dark: #FFFFFF;
	--vl-on-dark-muted: #A9B0AE;
	--vl-chip: #1F2A2E;
	--vl-grad: linear-gradient(90deg, #B4613E 0%, #D9A47F 55%, #B4613E 100%);

	--vl-display: "Kalnia", "Times New Roman", serif;
	--vl-display-weight: 400;
	--vl-display-case: none;
	--vl-body: "Jost", "Segoe UI", system-ui, sans-serif;
	--vl-serif: "Fraunces", Georgia, serif;

	--vl-h1: clamp(2.375rem, 1.4rem + 2.9vw, 3.215rem);
	--vl-h2: clamp(1.875rem, 1.2rem + 2vw, 2.723rem);
	--vl-h3: clamp(1.375rem, 1.1rem + .8vw, 1.875rem);
	--vl-eyebrow: clamp(.875rem, .8rem + .25vw, 1.125rem);

	--vl-wrap: 1440px;
	--vl-gutter: 40px;
	--vl-pad: 100px;
	--vl-radius: 10px;
	--vl-radius-lg: 20px;
	--vl-ease: cubic-bezier(.22, .61, .36, 1);
	--vl-header-h: 132px;
}

/* Front page: Spa mood (sage, spruce, Fraunces uppercase display). */
.vl-mood-spa {
	--vl-bg: #EFF4F0;
	--vl-tint: #DDE8E0;
	--vl-card: #FFFFFF;
	--vl-ink: #1E3A33;
	--vl-text: #4F5F59;
	--vl-muted: #7D8C86;
	--vl-accent: #2F6B5B;
	--vl-accent-2: #7FB3A2;
	--vl-dark: #173229;
	--vl-dark-2: #21463B;
	--vl-line: rgba(30, 58, 51, .8);
	--vl-hair: rgba(30, 58, 51, .16);
	--vl-on-dark-muted: #B5CCC3;
	--vl-chip: #2F6B5B;
	--vl-grad: linear-gradient(90deg, #2F6B5B 0%, #7FB3A2 60%, #2F6B5B 100%);
	--vl-display: "Fraunces", Georgia, serif;
	--vl-display-weight: 300;
	--vl-display-case: uppercase;
	--vl-h2: clamp(2.125rem, 1.2rem + 2.9vw, 3.685rem);
}

/* Home Two: Lilac mood. */
.vl-mood-lilac {
	--vl-bg: #F2EFF7;
	--vl-tint: #E4DDEF;
	--vl-card: #FAF8FC;
	--vl-ink: #1D1A24;
	--vl-text: #5E5A68;
	--vl-muted: #8D889A;
	--vl-accent: #6F5E99;
	--vl-accent-2: #A898CC;
	--vl-dark: #221D2E;
	--vl-dark-2: #2F2840;
	--vl-hair: rgba(29, 26, 36, .14);
	--vl-on-dark-muted: #BDB5CF;
	--vl-chip: #221D2E;
	--vl-grad: linear-gradient(90deg, #6F5E99 0%, #A898CC 60%, #6F5E99 100%);
}

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scrollbar-width: thin;
	scrollbar-color: var(--vl-accent) transparent;
}

/* Thin brand-colour scrollbar. */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--vl-accent); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--vl-ink); }

body {
	margin: 0;
	background-color: var(--vl-bg);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
	color: var(--vl-text);
	font-family: var(--vl-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

img, svg, video { max-width: 100%; height: auto; }
img { vertical-align: middle; }
figure { margin: 0; }
a { color: var(--vl-ink); text-decoration: none; transition: color .25s var(--vl-ease), opacity .25s var(--vl-ease), background-color .25s var(--vl-ease), border-color .25s var(--vl-ease); }
a:hover { color: var(--vl-accent); }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	color: var(--vl-ink);
	font-family: var(--vl-display);
	font-weight: var(--vl-display-weight);
	line-height: 1.2;
	letter-spacing: 0;
}
h1 { font-size: var(--vl-h1); }
h2 { font-size: var(--vl-h2); }
h3 { font-size: var(--vl-h3); }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1.125rem; }

:focus-visible { outline: 2px solid var(--vl-accent); outline-offset: 3px; }
::selection { background: var(--vl-accent); color: #fff; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000; top: 8px; left: 8px;
	background: #fff; color: var(--vl-ink); padding: 10px 16px; border-radius: 6px;
}

/* Numbers (prices, counters, phone numbers, dates) always use lining, equal-width figures. */
.vl-num, .price, .amount, .woocommerce-Price-amount, .elementor-countdown-digits, .vl-counter, time, .vl-meta {
	font-variant-numeric: lining-nums tabular-nums;
	font-feature-settings: "lnum" 1, "tnum" 1;
}

/* ------------------------------------------------------------------ Layout */
.vl-container, .vl-wrap {
	width: 100%;
	max-width: calc(var(--vl-wrap) + 2 * var(--vl-gutter));
	margin-inline: auto;
	padding-inline: var(--vl-gutter);
}
.vl-section { position: relative; }

/* ------------------------------------------------------------------ Buttons */
.vl-btn :is(.wp-block-button__link, .elementor-button.elementor-button), a.vl-btn, button.vl-btn, .vl-btn-el {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 51px;
	padding: 16px 26px;
	border: 1px solid transparent;
	border-radius: 35px;
	background: var(--vl-dark);
	color: #fff;
	font-family: var(--vl-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: .02em;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
	transition: background-color .3s var(--vl-ease), color .3s var(--vl-ease), border-color .3s var(--vl-ease), transform .3s var(--vl-ease);
}
.vl-btn :is(.wp-block-button__link, .elementor-button.elementor-button):hover, a.vl-btn:hover, button.vl-btn:hover, .vl-btn-el:hover {
	background: var(--vl-accent);
	color: #fff;
}
.vl-btn--light :is(.wp-block-button__link, .elementor-button.elementor-button) { background: #fff; color: var(--vl-ink); }
.vl-btn--light :is(.wp-block-button__link, .elementor-button.elementor-button):hover { background: var(--vl-ink); color: #fff; }
.vl-btn--accent :is(.wp-block-button__link, .elementor-button.elementor-button) { background: var(--vl-accent); color: #fff; }
.vl-btn--accent :is(.wp-block-button__link, .elementor-button.elementor-button):hover { background: var(--vl-ink); }
.vl-btn--outline :is(.wp-block-button__link, .elementor-button.elementor-button) { background: transparent; color: var(--vl-ink); border-color: var(--vl-line); }
.vl-btn--outline :is(.wp-block-button__link, .elementor-button.elementor-button):hover { background: var(--vl-ink); color: #fff; }
.vl-btn--link :is(.wp-block-button__link, .elementor-button.elementor-button) {
	min-height: 0; padding: 0 0 2px; border: 0; border-radius: 0; background: none; color: var(--vl-ink);
	text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
.vl-btn--link :is(.wp-block-button__link, .elementor-button.elementor-button):hover { background: none; color: var(--vl-accent); }
.vl-btn--light.vl-btn--link :is(.wp-block-button__link, .elementor-button.elementor-button), .vl-on-dark .vl-btn--link :is(.wp-block-button__link, .elementor-button.elementor-button) { color: #fff; }
.vl-mood-spa .vl-btn :is(.wp-block-button__link, .elementor-button.elementor-button) { text-transform: uppercase; letter-spacing: .03em; }
.vl-mood-spa .vl-btn--light :is(.wp-block-button__link, .elementor-button.elementor-button) { color: var(--vl-ink); }
.vl-btns { margin: 0; gap: 16px; }
.vl-btns .wp-block-button { margin: 0; }
.elementor-button .elementor-button-content-wrapper { gap: 10px; }

/* Icons drawn in CSS so block and Elementor buttons match. */
[class*="vl-btn--icon-"] :is(.wp-block-button__link, .elementor-button.elementor-button)::before {
	content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
	-webkit-mask: var(--vl-icon) center / contain no-repeat; mask: var(--vl-icon) center / contain no-repeat;
}
.vl-btn--icon-instagram { --vl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='%23000'/%3E%3C/svg%3E"); }
.vl-btn--icon-play { --vl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 4l13 8-13 8z'/%3E%3C/svg%3E"); }
.vl-btn--icon-bag { --vl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M5 8h14l-1 13H6z'/%3E%3Cpath d='M9 8a3 3 0 0 1 6 0'/%3E%3C/svg%3E"); }
.vl-btn--icon-arrow { --vl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); }

/* ------------------------------------------------------------------ Shared type helpers */
.vl-eyebrow, .vl-eyebrow .elementor-heading-title {
	margin: 0 0 6px;
	color: var(--vl-text);
	font-family: var(--vl-body);
	font-size: var(--vl-eyebrow);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.vl-title, .vl-title .elementor-heading-title {
	margin: 0;
	color: var(--vl-ink);
	font-family: var(--vl-display);
	font-size: var(--vl-h2);
	font-weight: var(--vl-display-weight);
	line-height: 1.2;
	text-transform: var(--vl-display-case);
}
.vl-head { margin-bottom: 60px; }
.vl-head--center { text-align: center; max-width: 700px; margin-inline: auto; }
.vl-head--light .vl-eyebrow, .vl-head--light .vl-eyebrow .elementor-heading-title, .vl-head--light .vl-title, .vl-head--light .vl-title .elementor-heading-title, .vl-head--light .vl-head__text { color: #fff; }
.vl-head__text { margin-top: 16px; }
.vl-grad {
	background: var(--vl-grad);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	display: inline-block;
	animation: vl-grad 6s linear infinite;
}
@keyframes vl-grad { to { background-position: -200% 0; } }
.vl-star { display: inline-block; margin-left: .12em; font-family: var(--vl-serif); font-weight: 300; transform: translateY(-.08em); }
.vl-indent { display: inline-block; padding-left: 1.2em; }
.vl-accent-text { color: var(--vl-accent); }

/* Lists. */
.vl-list { margin: 0; padding: 0; list-style: none; }
.vl-list li, .vl-list .elementor-icon-list-item { margin: 0; }
.vl-list--stars li, .vl-list--checks li, .vl-list.vl-list--stars .elementor-icon-list-item, .vl-list.vl-list--checks .elementor-icon-list-item { position: relative; padding-left: 24px !important; line-height: 1.8; }
.vl-list--stars li::before, .vl-list--stars .elementor-icon-list-item::before {
	content: ""; position: absolute; left: 0; top: .6em; width: 11px; height: 11px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.4 5.6 11.4 12 12-6.4.6-11.4 5.6-12 12-.6-6.4-5.6-11.4-12-12C6.4 11.4 11.4 6.4 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.4 5.6 11.4 12 12-6.4.6-11.4 5.6-12 12-.6-6.4-5.6-11.4-12-12C6.4 11.4 11.4 6.4 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vl-list--checks li::before, .vl-list--checks .elementor-icon-list-item::before {
	content: ""; position: absolute; left: 0; top: .45em; width: 14px; height: 14px; background: var(--vl-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ------------------------------------------------------------------ Motion */
.vl-js .vl-anim { opacity: 0; }
.vl-js .vl-anim.is-in { animation: vl-fade-up 1.1s var(--vl-ease) both; }
.vl-js .vl-anim--fadeInLeft.is-in { animation-name: vl-fade-left; }
.vl-js .vl-anim--fadeInRight.is-in { animation-name: vl-fade-right; }
.vl-js .vl-anim--fadeInDown.is-in { animation-name: vl-fade-down; }
.vl-js .vl-anim--fadeIn.is-in { animation-name: vl-fade; }
.vl-js .vl-anim--pulse.is-in { animation-name: vl-pulse; }
.vl-delay-100.is-in { animation-delay: .1s !important; }
.vl-delay-150.is-in { animation-delay: .15s !important; }
.vl-delay-200.is-in { animation-delay: .2s !important; }
.vl-delay-300.is-in { animation-delay: .3s !important; }
.vl-delay-400.is-in { animation-delay: .4s !important; }
@keyframes vl-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vl-fade-up { from { opacity: 0; transform: translate3d(0, 40px, 0); } to { opacity: 1; transform: none; } }
@keyframes vl-fade-down { from { opacity: 0; transform: translate3d(0, -40px, 0); } to { opacity: 1; transform: none; } }
@keyframes vl-fade-left { from { opacity: 0; transform: translate3d(-50px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes vl-fade-right { from { opacity: 0; transform: translate3d(50px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes vl-pulse { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
@keyframes vl-spin { to { transform: rotate(360deg); } }
@keyframes vl-marquee { to { transform: translate3d(-50%, 0, 0); } }
@keyframes vl-marquee-rev { from { transform: translate3d(-50%, 0, 0); } to { transform: none; } }
@keyframes vl-ping { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(2.6); opacity: 0; } }

/* Elementor's "slow" entrance animations match ours. */
.elementor-element.animated-slow { animation-duration: 1.1s; }

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

/* Parallax photos and full-bleed media: the wrapper clips, the image moves (never tilts). */
.vl-bg { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; overflow: hidden; pointer-events: none; }
.vl-bg img, .vl-bg.elementor-widget-image img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.vl-bg.vl-parallax img, .vl-parallax .vl-bg img, .vl-parallax.vl-bg img { height: calc(100% + 120px) !important; top: -60px; will-change: transform; }
.vl-section > :not(.vl-bg) { position: relative; z-index: 1; }

/* ------------------------------------------------------------------ Elementor resets for Velora containers */
.e-con.vl-el {
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
	--kit-widget-spacing: 0px;
	--widgets-spacing: 0px;
	--min-height: 0;
	--width: auto;
	max-width: none;
}
.e-con.vl-el.vl-section { --width: 100%; width: 100%; }
.vl-el > .elementor-widget:not(:last-child) { margin-block-end: 0; }
.vl-el > .e-con-inner { padding: 0; gap: 0; max-width: none; }
.vl-el .elementor-heading-title {
	padding: 0; margin: 0; font: inherit; color: inherit; line-height: inherit;
	letter-spacing: inherit; text-transform: inherit; text-align: inherit;
}
.vl-el .elementor-widget-text-editor { color: inherit; }
.vl-el .elementor-widget-text-editor p { margin: 0 0 1em; }
.vl-el .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.vl-el .elementor-widget-image, .vl-el .elementor-widget-image a { display: block; line-height: 0; }
.vl-el .elementor-widget-image img { display: block; width: 100%; }
.vl-el .elementor-widget-button .elementor-button-wrapper { line-height: 1; }
.vl-el .elementor-icon-list-items { margin: 0; padding: 0; }
.vl-el .elementor-icon-list-item .elementor-icon-list-icon:empty { display: none; }
.vl-el .elementor-icon-list-text { padding: 0 !important; color: inherit; }
.vl-el .elementor-widget-container { margin: 0; padding: 0; }

/* Block-editor group defaults. */
.wp-block-group.vl-section, :where(.vl-section) .wp-block-group { margin-block: 0; }
:where(.vl-section) .wp-block-group { display: block; }
:where(.vl-section) > * { margin-block-start: 0; }

/* Velora licence box (administrators only). */
.vl-license-box {
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; max-width: 760px; margin: 40px auto; padding: 22px 26px;
	border: 1px dashed var(--vl-accent); border-radius: 12px; background: var(--vl-card); color: var(--vl-ink); font-size: 15px;
}
.vl-license-box strong { font-family: var(--vl-display); font-size: 20px; font-weight: 400; width: 100%; }
.vl-license-box a { margin-left: auto; padding: 10px 18px; border-radius: 30px; background: var(--vl-dark); color: #fff; }

@media (max-width: 1199px) {
	:root { --vl-gutter: 30px; --vl-pad: 80px; }
}
@media (max-width: 767px) {
	:root { --vl-gutter: 16px; --vl-pad: 60px; }
	.vl-head { margin-bottom: 40px; }
	.vl-indent { padding-left: .6em; }
}
.vl-btn :is(.wp-block-button__link, .elementor-button.elementor-button) { white-space: nowrap; }

/* Elementor shrinks linked SVG images to 48px; Velora sizes them itself. */
.vl-el .elementor-widget-image a img[src$=".svg"] { width: auto; }

/* header: top bar, main bar (solid | overlay | split), menu + mega menu, search, mobile drawer, logo */

/* ------------------------------------------------------------------ Logo (wordmark) */
.vl-logo { display: inline-flex; align-items: flex-start; gap: 3px; color: var(--vl-ink); line-height: 1; text-decoration: none; white-space: nowrap; }
.vl-logo:hover { color: var(--vl-ink); }
.vl-logo__text { font-family: "Kalnia", Georgia, serif; font-size: 38px; font-weight: 400; letter-spacing: .005em; line-height: .95; }
.vl-logo__spark { width: 11px; height: 11px; margin-top: 2px; fill: var(--vl-accent); flex: none; }
.vl-mood-spa .vl-header .vl-logo__text { font-family: var(--vl-serif); font-size: 30px; font-weight: 300; letter-spacing: .2em; text-transform: uppercase; }
.vl-logo--image img { display: block; max-height: 52px; width: auto; }

/* ------------------------------------------------------------------ Shell */
.vl-header { position: relative; z-index: 60; color: var(--vl-ink); }
.vl-header-overlay .vl-header { position: absolute; top: 0; left: 0; right: 0; color: #fff; }
.admin-bar.vl-header-overlay .vl-header { top: 0; }

/* Top bar. */
.vl-topbar { background: var(--vl-dark); color: #fff; font-size: 14px; line-height: 1.4; }
.vl-header-overlay .vl-topbar { background: #0E1416; }
.vl-topbar__inner { display: grid; grid-template-columns: 1fr minmax(0, 2fr) 1fr; align-items: center; gap: 20px; min-height: 46px; }
.vl-topbar .vl-social { justify-self: start; }
.vl-topbar .vl-social a { color: #fff; }
.vl-topbar .vl-social svg { width: 17px; height: 17px; }
.vl-topbar__news { display: flex; align-items: center; justify-content: center; gap: 22px; min-width: 0; }
.vl-topbar__track { position: relative; display: grid; min-width: 0; }
.vl-topbar__item { grid-area: 1 / 1; margin: 0; text-align: center; letter-spacing: .05em; opacity: 0; transform: translateY(8px); transition: opacity .5s var(--vl-ease), transform .5s var(--vl-ease); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vl-topbar__item.is-active { opacity: 1; transform: none; }
.vl-topbar__item a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.vl-topbar__arrow { display: inline-flex; padding: 4px; border: 0; background: none; color: rgba(255, 255, 255, .75); cursor: pointer; }
.vl-topbar__arrow:hover { color: #fff; }
.vl-topbar__end { justify-self: end; }
.vl-topbar__phone { color: #fff; font-size: 14px; letter-spacing: .03em; }
.vl-topbar__phone:hover { color: var(--vl-accent-2); }

/* Main bar. */
.vl-header__bar { position: relative; background: var(--vl-bg); transition: background-color .35s var(--vl-ease), box-shadow .35s var(--vl-ease); }
.vl-header-overlay .vl-header__bar { background: transparent; border-bottom: 1px solid rgba(255, 255, 255, .22); }
.vl-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; min-height: 86px; }
.vl-header-solid .vl-header__inner { min-height: 90px; }
.vl-header__logo { grid-column: 2; grid-row: 1; justify-self: center; }
.vl-header .vl-nav { grid-column: 1; grid-row: 1; }
.vl-header__tools { grid-column: 3; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: 18px; }
.vl-header-split .vl-header__inner { grid-template-columns: auto 1fr auto; }
.vl-header-split .vl-header__logo { grid-column: 1; justify-self: start; }
.vl-header-split .vl-nav { grid-column: 2; justify-self: center; }
.vl-header-overlay .vl-logo, .vl-header-overlay .vl-logo:hover { color: #fff; }
.vl-header-overlay .vl-logo__spark { fill: var(--vl-accent-2); }

.vl-header__icon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.vl-header__icon:hover { color: var(--vl-accent); }
.vl-header-overlay .vl-header__icon:hover { color: var(--vl-accent-2); }
.vl-count {
	position: absolute; top: -4px; right: -8px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
	background: var(--vl-accent); color: #fff; font-family: var(--vl-body); font-size: 11px; font-weight: 600; line-height: 18px; text-align: center;
}
.vl-count[hidden] { display: none; }
.vl-header__toggle { display: none; }

/* Sticky: the bar is fixed and slides in once the page has scrolled past the header. */
.vl-header.is-stuck .vl-header__bar {
	position: fixed; top: 0; left: 0; right: 0; z-index: 70;
	background: var(--vl-bg); box-shadow: 0 10px 30px rgba(20, 30, 30, .08);
	animation: vl-slide-down .45s var(--vl-ease) both;
}
.admin-bar .vl-header.is-stuck .vl-header__bar { top: 32px; }
.vl-header-overlay .vl-header.is-stuck .vl-header__bar { background: rgba(17, 24, 26, .62); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom-color: transparent; box-shadow: none; }
.vl-header.is-stuck .vl-header__inner { min-height: 76px; }
@keyframes vl-slide-down { from { transform: translateY(-100%); } to { transform: none; } }

/* ------------------------------------------------------------------ Menu */
.vl-menu, .vl-menu ul { margin: 0; padding: 0; list-style: none; }
.vl-menu { display: flex; align-items: center; gap: 6px clamp(18px, 2.6vw, 38px); flex-wrap: nowrap; white-space: nowrap; }
.vl-menu > li { position: relative; }
.vl-menu > li > a {
	position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 30px 0;
	color: inherit; font-family: var(--vl-body); font-size: 15px; font-weight: 500; letter-spacing: .03em; text-transform: uppercase;
}
.vl-menu > li.menu-item-has-children > a::after {
	content: ""; width: 7px; height: 7px; margin-top: -3px; border-right: 1.3px solid currentColor; border-bottom: 1.3px solid currentColor;
	transform: rotate(45deg) scale(.8); transition: transform .3s var(--vl-ease);
}
.vl-menu > li:hover > a::after { transform: rotate(225deg) scale(.8); margin-top: 3px; }
.vl-menu > li > a:hover, .vl-menu > li.current-menu-item > a, .vl-menu > li.current-menu-ancestor > a, .vl-menu > li.current_page_item > a { color: var(--vl-accent); }
.vl-header-overlay .vl-menu > li > a:hover, .vl-header-overlay .vl-menu > li.current-menu-item > a, .vl-header-overlay .vl-menu > li.current-menu-ancestor > a { color: var(--vl-accent-2); }

/* Dropdowns. */
.vl-menu .sub-menu {
	position: absolute; top: 100%; left: -26px; z-index: 80; min-width: 250px; padding: 22px 0;
	background: var(--vl-card); border-radius: 12px; box-shadow: 0 24px 50px rgba(20, 30, 30, .12);
	color: var(--vl-ink); opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .3s var(--vl-ease), transform .3s var(--vl-ease), visibility .3s;
}
.vl-menu li:hover > .sub-menu, .vl-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.vl-menu .sub-menu .sub-menu { top: -22px; left: 100%; }
.vl-menu .sub-menu a {
	display: block; padding: 7px 28px; color: var(--vl-ink); font-family: var(--vl-body); font-size: 16px; font-weight: 400;
	text-transform: none; letter-spacing: 0; transition: color .25s var(--vl-ease), padding .25s var(--vl-ease);
}
.vl-menu .sub-menu a:hover, .vl-menu .sub-menu .current-menu-item > a { color: var(--vl-accent); padding-left: 34px; }

/* Mega menu (top item with the CSS class "vl-mega"): second-level items are column titles. */
.vl-menu > li.vl-mega { position: static; }
.vl-menu > li.vl-mega > .sub-menu {
	left: var(--vl-gutter); right: auto; display: grid; grid-template-columns: repeat(2, minmax(240px, 1fr)); gap: 0 40px;
	width: min(720px, calc(100vw - 2 * var(--vl-gutter))); padding: 34px 40px;
}
.vl-header .vl-header__inner { position: relative; }
.vl-menu > li.vl-mega > .sub-menu > li > a {
	padding: 0 0 12px; margin-bottom: 8px; border-bottom: 1px solid var(--vl-hair); font-family: "Kalnia", Georgia, serif; font-size: 20px; pointer-events: none;
}
.vl-menu > li.vl-mega > .sub-menu > li > a:hover { padding-left: 0; }
.vl-menu > li.vl-mega .sub-menu .sub-menu { position: static; min-width: 0; padding: 0; background: none; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
.vl-menu > li.vl-mega .sub-menu .sub-menu a { position: relative; padding: 6px 0 6px 20px; font-size: 16px; }
.vl-menu > li.vl-mega .sub-menu .sub-menu a::before {
	content: ""; position: absolute; left: 0; top: 50%; width: 9px; height: 9px; margin-top: -4px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.4 5.6 11.4 12 12-6.4.6-11.4 5.6-12 12-.6-6.4-5.6-11.4-12-12C6.4 11.4 11.4 6.4 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.4 5.6 11.4 12 12-6.4.6-11.4 5.6-12 12-.6-6.4-5.6-11.4-12-12C6.4 11.4 11.4 6.4 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vl-menu > li.vl-mega .sub-menu .sub-menu a:hover { padding-left: 24px; }

.vl-nav__head, .vl-nav .vl-nav__social { display: none; }

/* ------------------------------------------------------------------ Search panel */
.vl-search-panel { position: absolute; top: 100%; left: 0; right: 0; z-index: 75; padding: 26px 0; background: var(--vl-card); box-shadow: 0 24px 40px rgba(20, 30, 30, .1); animation: vl-fade .3s var(--vl-ease); }
.vl-header.is-stuck .vl-search-panel { position: fixed; top: 76px; }
.vl-search-panel__form { position: relative; max-width: 760px; margin: 0 auto; }
.vl-search-panel__form input[type="search"] {
	width: 100%; height: 61px; padding: 0 70px 0 30px; border: 1px solid var(--vl-line); border-radius: 40px; background: transparent;
	color: var(--vl-ink); font: inherit; font-size: 16px;
}
.vl-search-panel__form button { position: absolute; top: 6px; right: 6px; display: inline-flex; align-items: center; justify-content: center; width: 49px; height: 49px; border: 0; border-radius: 50%; background: var(--vl-dark); color: #fff; cursor: pointer; }
.vl-search-panel__form button:hover { background: var(--vl-accent); }

/* ------------------------------------------------------------------ Tablet & mobile: off-canvas drawer */
@media (max-width: 1199px) {
	.vl-header__inner, .vl-header-split .vl-header__inner { grid-template-columns: 1fr auto 1fr; min-height: 74px; }
	.vl-header__toggle {
		display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; grid-column: 1; grid-row: 1; justify-self: start;
		width: 40px; height: 40px; padding: 8px; border: 0; background: none; color: inherit; cursor: pointer;
	}
	.vl-header__toggle span { display: block; height: 1.6px; background: currentColor; border-radius: 2px; transition: transform .3s var(--vl-ease), opacity .3s; }
	.vl-header__toggle span:nth-child(2) { width: 70%; }
	.vl-header__logo, .vl-header-split .vl-header__logo { grid-column: 2; justify-self: center; }
	.vl-header .vl-nav {
		position: fixed; top: 0; bottom: 0; left: 0; z-index: 120; width: min(380px, 88vw); padding: 26px 28px 40px; overflow-y: auto;
		background: var(--vl-card); color: var(--vl-ink); transform: translateX(-102%); visibility: hidden;
		transition: transform .45s var(--vl-ease), visibility .45s; overscroll-behavior: contain;
	}
	.vl-header .vl-nav.is-open { transform: none; visibility: visible; box-shadow: 30px 0 60px rgba(0, 0, 0, .18); }
	.vl-nav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 26px; }
	.vl-nav__head .vl-logo, .vl-nav__head .vl-logo:hover { color: var(--vl-ink); }
	.vl-nav__close { display: inline-flex; padding: 6px; border: 0; background: none; color: var(--vl-ink); cursor: pointer; }
	.vl-menu { display: block; }
	.vl-menu > li { border-bottom: 1px solid var(--vl-hair); }
	.vl-menu > li > a { display: flex; justify-content: space-between; padding: 15px 0; font-size: 15px; }
	.vl-header-overlay .vl-menu > li > a:hover, .vl-header-overlay .vl-menu > li.current-menu-item > a, .vl-header-overlay .vl-menu > li.current-menu-ancestor > a { color: var(--vl-accent); }
	.vl-menu .sub-menu, .vl-menu > li.vl-mega > .sub-menu {
		position: static; display: none; width: auto; min-width: 0; padding: 0 0 12px 12px; background: none; box-shadow: none;
		opacity: 1; visibility: visible; transform: none; grid-template-columns: 1fr;
	}
	.vl-menu li.is-open > .sub-menu { display: block; }
	.vl-menu .sub-menu a { padding: 7px 0; font-size: 15px; }
	.vl-menu .sub-menu a:hover { padding-left: 6px; }
	.vl-menu > li.vl-mega > .sub-menu > li > a { margin: 10px 0 4px; padding: 0 0 6px; font-size: 18px; pointer-events: auto; }
	.vl-menu > li.vl-mega .sub-menu .sub-menu { display: block; }
	.vl-nav .vl-nav__social { display: flex; margin-top: 26px; }
	.vl-nav-overlay { position: fixed; inset: 0; z-index: 110; background: rgba(10, 14, 15, .45); opacity: 0; visibility: hidden; transition: opacity .4s, visibility .4s; }
	.vl-nav-open .vl-nav-overlay { display: block; opacity: 1; visibility: visible; }
	.vl-nav-open { overflow: hidden; }
	.vl-header__account { display: none; }
	.vl-header__tools { gap: 12px; }
	.vl-logo__text { font-size: 32px; }
}
@media (max-width: 782px) {
	.admin-bar .vl-header.is-stuck .vl-header__bar { top: 0; }
}
@media (max-width: 767px) {
	.vl-topbar__inner { grid-template-columns: 1fr; min-height: 38px; }
	.vl-topbar .vl-social, .vl-topbar__end { display: none; }
	.vl-topbar__news { gap: 8px; }
	.vl-topbar__item { font-size: 13px; white-space: normal; }
	.vl-header__wishlist { display: none; }
	.vl-logo__text { font-size: 29px; }
	.vl-mood-spa .vl-header .vl-logo__text { font-size: 24px; letter-spacing: .16em; }
	.vl-search-panel { padding: 16px 0; }
}

/* Drawer must escape the stuck bar: no backdrop filter (it would trap position:fixed) on small screens. */
@media (max-width: 1199px) {
	.vl-header-overlay .vl-header.is-stuck .vl-header__bar { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(17, 24, 26, .92); }
	.vl-header__bar .vl-nav-overlay { z-index: 110; }
	.vl-header .vl-nav { z-index: 120; }
}

/* footer: classic (dark, patterned, four columns) and card (front page), newsletter, payment marks, back to top */

.vl-footer { position: relative; padding-top: 100px; background-color: #121A1C; background-image: url("../img/leaves.svg"); background-size: 360px; color: var(--vl-on-dark-muted); font-size: 16px; }
.vl-mood-spa .vl-footer { background-color: var(--vl-dark); background-image: url("../img/leaves.svg"); }
.vl-mood-lilac .vl-footer { background-color: #17131F; }
.vl-footer a { color: var(--vl-on-dark-muted); }
.vl-footer a:hover { color: #fff; }

.vl-footer__grid { display: grid; grid-template-columns: 1.95fr 1fr 1fr 1.55fr; gap: 40px; padding-bottom: 100px; }
.vl-footer__eyebrow { margin: 0 0 4px; color: #8D9592; font-size: 18px; font-weight: 500; letter-spacing: .05em; line-height: 1.6; text-transform: uppercase; }
.vl-footer__big { margin: 0 0 24px; color: #fff; font-family: var(--vl-display); font-size: var(--vl-h2); font-weight: var(--vl-display-weight); line-height: 1.2; text-transform: var(--vl-display-case); }
.vl-footer__title { margin: 0 0 18px; color: #fff; font-family: "Kalnia", Georgia, serif; font-size: 20px; font-weight: 400; line-height: 1.2; }
.vl-footer__links { margin: 0; padding: 0; list-style: none; }
.vl-footer__links li { margin: 0 0 6px; line-height: 1.6; }
.vl-footer__links a { display: inline-block; transition: color .25s var(--vl-ease), transform .25s var(--vl-ease); }
.vl-footer__links a:hover { transform: translateX(4px); }
.vl-footer__brand .vl-logo, .vl-footer__brand .vl-logo:hover { color: #fff; margin-bottom: 20px; }
.vl-footer__brand .vl-logo__text { font-size: 46px; }
.vl-footer__text { max-width: 360px; margin: 0 0 22px; }
.vl-footer .vl-social a { color: #fff; }
.vl-footer .vl-social a:hover { color: var(--vl-accent-2); }

/* Shared social list. */
.vl-social { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 0; padding: 0; list-style: none; }
.vl-social a { display: inline-flex; align-items: center; justify-content: center; color: inherit; transition: color .25s var(--vl-ease), transform .25s var(--vl-ease); }
.vl-social a:hover { transform: translateY(-2px); }
.vl-social svg { width: 20px; height: 20px; fill: currentColor; }

/* Newsletter form (footer + sections). */
.vl-newsletter { max-width: 360px; }
.vl-newsletter__field { position: relative; }
.vl-newsletter input[type="email"] {
	width: 100%; height: 64px; padding: 0 76px 0 30px; border: 1px solid rgba(255, 255, 255, .7); border-radius: 100px;
	background: transparent; color: #fff; font: inherit; font-size: 16px;
}
.vl-newsletter input[type="email"]::placeholder { color: rgba(255, 255, 255, .7); }
.vl-newsletter button {
	position: absolute; top: 9px; right: 9px; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px;
	border: 0; border-radius: 50%; background: #fff; color: var(--vl-dark); cursor: pointer; transition: background-color .3s, color .3s;
}
.vl-newsletter button:hover { background: var(--vl-accent); color: #fff; }
.vl-newsletter__consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 16px; color: #fff; font-size: 14px; line-height: 1.6; cursor: pointer; }
.vl-newsletter__consent input { width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--vl-accent); flex: none; }
.vl-newsletter__consent a { color: #fff; text-decoration: underline; }
.vl-newsletter--dark input[type="email"] { border-color: var(--vl-line); color: var(--vl-ink); }
.vl-newsletter--dark input[type="email"]::placeholder { color: var(--vl-muted); }
.vl-newsletter--dark button { background: var(--vl-dark); color: #fff; }
.vl-newsletter--dark .vl-newsletter__consent, .vl-newsletter--dark .vl-newsletter__consent a { color: var(--vl-text); }
.vl-newsletter--white input[type="email"] { border-color: #fff; background: #fff; color: var(--vl-ink); }
.vl-newsletter--white input[type="email"]::placeholder { color: var(--vl-muted); }
.vl-newsletter--white button { background: var(--vl-dark); color: #fff; }

/* Card footer (front page). */
.vl-footer--card { padding-top: 90px; }
.vl-footer__news-row { display: grid; grid-template-columns: 1.5fr 1fr; align-items: center; gap: 40px; padding-bottom: 60px; }
.vl-footer--card .vl-footer__big { margin: 0 0 14px; font-size: clamp(2.25rem, 1.2rem + 3vw, 3.685rem); }
.vl-footer--card .vl-footer__eyebrow { color: #fff; font-size: 14px; }
.vl-footer__stats { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; margin: 0; padding: 0; list-style: none; color: #fff; font-size: 15px; }
.vl-footer__stats li { display: inline-flex; align-items: baseline; gap: 6px; }
.vl-footer__stats li + li::before { content: ""; width: 6px; height: 6px; margin-right: 16px; border-radius: 50%; background: #fff; align-self: center; }
.vl-footer__stats strong { font-size: 24px; font-weight: 500; }
.vl-footer--card .vl-newsletter { max-width: none; }
.vl-footer--card .vl-newsletter input[type="email"] { height: 67px; border-radius: 12px; border-color: rgba(255, 255, 255, .85); }
.vl-footer--card .vl-newsletter button { top: 10px; right: 10px; width: 47px; height: 47px; border-radius: 8px; }
.vl-footer__card {
	display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 40px; padding: 80px; border-radius: 12px;
	background: rgba(255, 255, 255, .07) url("../img/blobs.svg") center / 520px; text-align: left;
}
.vl-footer__card .vl-footer__title { font-family: var(--vl-serif); font-weight: 500; font-size: 19.5px; }
.vl-footer__card .vl-footer__links a { color: #fff; }
.vl-footer__col--end { text-align: right; }
.vl-footer__brand { display: flex; flex-direction: column; align-items: flex-start; }
.vl-footer__card .vl-footer__brand { align-items: center; text-align: center; }
.vl-footer__card .vl-logo__text { font-family: "Kalnia", Georgia, serif; font-size: 48px; letter-spacing: 0; text-transform: none; font-weight: 400; }
.vl-footer__tagline { max-width: 330px; margin: 0 0 22px; color: #fff; font-family: "Kalnia", Georgia, serif; font-size: 24px; font-weight: 300; line-height: 1.2; }

/* Bottom bar. */
.vl-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 30px; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .12); }
.vl-footer--card .vl-footer__bottom { margin-top: 40px; }
.vl-footer__copy { margin: 0; color: #fff; }
.vl-footer__copy a { color: #fff; }
.vl-pay { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.vl-pay li { padding: 3px 8px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 4px; color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .04em; line-height: 1.2; }

/* Back to top: round button with a rotating text ring. */
.vl-totop {
	position: fixed; right: 26px; bottom: 26px; z-index: 90; display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px;
	border-radius: 50%; background: var(--vl-dark); color: #fff; opacity: 0; visibility: hidden; transform: translateY(14px);
	transition: opacity .35s var(--vl-ease), transform .35s var(--vl-ease), visibility .35s, background-color .3s;
}
.vl-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.vl-totop:hover { background: var(--vl-accent); color: #fff; }
.vl-totop__ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: vl-spin 14s linear infinite; }
.vl-totop__ring text { fill: #fff; font-family: var(--vl-body); font-size: 11px; font-weight: 500; letter-spacing: 2.6px; text-transform: uppercase; }

@media (max-width: 1199px) {
	.vl-footer__grid { grid-template-columns: 1fr 1fr; gap: 50px 40px; padding-bottom: 70px; }
	.vl-footer__card { grid-template-columns: 1fr 1fr; padding: 50px; }
	.vl-footer__card .vl-footer__brand { grid-column: 1 / -1; grid-row: 1; }
}
@media (max-width: 767px) {
	.vl-footer { padding-top: 70px; }
	.vl-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px 24px; padding-bottom: 50px; }
	.vl-footer__news, .vl-footer__grid .vl-footer__brand { grid-column: 1 / -1; }
	.vl-footer__news-row { grid-template-columns: 1fr; gap: 26px; padding-bottom: 40px; }
	.vl-footer__card { padding: 36px 22px; gap: 34px 20px; }
	.vl-footer__col--end { text-align: left; }
	.vl-footer__bottom { flex-direction: column; align-items: flex-start; }
	.vl-totop { right: 16px; bottom: 16px; width: 50px; height: 50px; }
}

/* titlebar: page title bar with photo + breadcrumbs, 404, search results, plain pages */

.vl-titlebar {
	position: relative; display: flex; align-items: flex-end; min-height: 464px; padding: 0 0 80px;
	background: var(--vl-dark) var(--vl-titlebar-img, url("../img/blobs.svg")) center / cover no-repeat; color: #fff; text-align: center; isolation: isolate;
}
.vl-titlebar::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 16, 18, .55) 0%, rgba(10, 16, 18, .3) 45%, rgba(10, 16, 18, .5) 100%); }
.vl-header-solid .vl-titlebar { min-height: 331px; padding-bottom: 70px; align-items: center; padding-top: 70px; }
.vl-titlebar__inner { width: 100%; }
.vl-titlebar__title { margin: 0 0 14px; color: #fff; font-family: "Kalnia", Georgia, serif; font-size: clamp(2.25rem, 1.4rem + 2.4vw, 3.25rem); font-weight: 400; line-height: 1.15; }
.vl-breadcrumb { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px; font-size: 16px; }
.vl-breadcrumb a { color: #fff; }
.vl-breadcrumb a:hover { color: var(--vl-accent-2); }
.vl-breadcrumb [aria-current] { color: rgba(255, 255, 255, .78); }
.vl-breadcrumb__sep { width: 1px; height: 13px; background: rgba(255, 255, 255, .7); transform: rotate(20deg); }

/* Plain pages and the content column. */
.vl-page { padding: var(--vl-pad) 0; }
.vl-entry-content > * + * { margin-top: 1.1em; }
.vl-entry-content > .alignwide { max-width: var(--vl-wrap); }
.vl-entry-content { max-width: 900px; margin: 0 auto; }
.vl-entry-content.is-wide { max-width: none; }

/* 404: full-screen photo, outlined number. */
.vl-404 {
	position: relative; display: grid; place-items: center; min-height: 100vh; padding: 140px var(--vl-gutter) 80px; overflow: hidden;
	background: var(--vl-dark) var(--vl-404-img, url("../img/blobs.svg")) center / cover no-repeat; color: #fff; text-align: center; isolation: isolate;
}
.vl-404::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(12, 18, 20, .55); }
.vl-404__num {
	display: block; margin: 0 0 -10px; font-family: "Kalnia", Georgia, serif; font-size: clamp(9rem, 6rem + 14vw, 17rem); font-weight: 300; line-height: .9;
	color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, .85); letter-spacing: -.02em;
}
.vl-404__title { margin: 0 0 16px; color: #fff; font-family: "Kalnia", Georgia, serif; font-size: var(--vl-h2); font-weight: 400; }
.vl-404__text { max-width: 640px; margin: 0 auto 30px; color: rgba(255, 255, 255, .9); }
.vl-404 .vl-searchform { max-width: 460px; margin: 0 auto 28px; }

/* Search form (sidebar, 404, search page). */
.vl-searchform { position: relative; }
.vl-searchform input[type="search"] {
	width: 100%; height: 61px; padding: 0 64px 0 30px; border: 1px solid var(--vl-line); border-radius: 40px; background: transparent;
	color: var(--vl-ink); font: inherit; font-size: 16px;
}
.vl-404 .vl-searchform input[type="search"] { border-color: rgba(255, 255, 255, .8); color: #fff; }
.vl-404 .vl-searchform input::placeholder { color: rgba(255, 255, 255, .75); }
.vl-searchform button { position: absolute; top: 50%; right: 18px; display: inline-flex; padding: 6px; border: 0; background: none; color: inherit; cursor: pointer; transform: translateY(-50%); }

/* Search results. */
.vl-search-results { padding: var(--vl-pad) 0; }
.vl-result { display: grid; grid-template-columns: 200px 1fr; gap: 28px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--vl-hair); }
.vl-result:first-child { padding-top: 0; }
.vl-result__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--vl-radius); }
.vl-result__type { margin: 0 0 4px; color: var(--vl-accent); font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.vl-result__title { margin: 0 0 8px; font-size: 26px; }
.vl-empty { max-width: 640px; margin: 0 auto; text-align: center; }
.vl-empty .vl-searchform { margin: 24px auto 0; max-width: 460px; }

@media (max-width: 1199px) {
	.vl-titlebar { min-height: 400px; padding-bottom: 60px; }
}
@media (max-width: 767px) {
	.vl-titlebar { min-height: 330px; padding-bottom: 46px; }
	.vl-header-solid .vl-titlebar { min-height: 240px; padding: 50px 0; }
	.vl-result { grid-template-columns: 1fr; gap: 14px; }
}
.vl-page--sections { padding: 0; }

/* blog: listing layouts, cards, sidebar widgets, single post, comments, pagination */

.vl-blog-layout { display: grid; grid-template-columns: minmax(0, 1fr) 410px; gap: 0; padding-top: var(--vl-pad); padding-bottom: var(--vl-pad); }
.vl-blog-layout--right .vl-blog-main, .vl-blog-layout:not(.vl-blog-layout--left):not(.vl-blog-layout--none) .vl-blog-main { padding-right: 40px; border-right: 1px solid var(--vl-line); }
.vl-blog-layout:not(.vl-blog-layout--left):not(.vl-blog-layout--none) .vl-sidebar { padding-left: 40px; }
.vl-blog-layout--left { grid-template-columns: 410px minmax(0, 1fr); }
.vl-blog-layout--left .vl-sidebar { grid-column: 1; grid-row: 1; padding-right: 40px; border-right: 1px solid var(--vl-line); }
.vl-blog-layout--left .vl-blog-main { grid-column: 2; padding-left: 40px; }
.vl-blog-layout--none { grid-template-columns: minmax(0, 1fr); }
.vl-blog-layout--none .vl-single { max-width: 990px; margin: 0 auto; }

/* Cards. */
.vl-post-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px 30px; }
.vl-post-grid.is-wide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vl-post-card { min-width: 0; }
.vl-post-card__img { display: block; overflow: hidden; border-radius: var(--vl-radius); }
.vl-post-card__img img { display: block; width: 100%; aspect-ratio: 480 / 244; object-fit: cover; transition: transform .9s var(--vl-ease); }
.vl-post-card:hover .vl-post-card__img img { transform: scale(1.06); }
.vl-post-card__body { padding-top: 22px; }
.vl-post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 10px; color: var(--vl-ink); font-size: 14px; font-weight: 600; }
.vl-post-card__by::before { content: "-"; margin-right: 10px; }
.vl-post-card__by a { color: inherit; text-transform: capitalize; }
.vl-post-card__title { margin: 0 0 12px; font-family: "Kalnia", Georgia, serif; font-size: clamp(1.5rem, 1.2rem + .8vw, 1.875rem); font-weight: 400; line-height: 1.2; text-transform: capitalize; }
.vl-post-card__title a { color: var(--vl-ink); }
.vl-post-card__title a:hover { color: var(--vl-accent); }
.vl-post-card__excerpt { margin: 0 0 16px; }
.vl-post-card__more { color: var(--vl-ink); font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; }

/* List layout: photo left, text on a tinted panel. */
.vl-post-grid--list .vl-post-card { display: grid; grid-template-columns: 36% 1fr; overflow: hidden; border: 1px solid var(--vl-line); border-radius: var(--vl-radius); background: var(--vl-tint); }
.vl-post-grid--list .vl-post-card__img { border-radius: 0; }
.vl-post-grid--list .vl-post-card__img img { height: 100%; aspect-ratio: auto; min-height: 100%; }
.vl-post-grid--list .vl-post-card__body { padding: 40px 30px; }
.vl-post-grid--list .vl-post-card__meta { color: var(--vl-accent); font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.vl-post-grid--list .vl-post-card__by { display: none; }

/* Sidebar widgets. */
.vl-sidebar { min-width: 0; }
.vl-widget { margin-bottom: 48px; }
.vl-widget:last-child { margin-bottom: 0; }
.vl-widget__title, .vl-widget .widget-title, .vl-widget h2 { margin: 0 0 22px; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 24px; font-weight: 400; line-height: 1.2; }
.vl-widget ul { margin: 0; padding: 0; list-style: none; }
.vl-widget__list li, .vl-widget .product-categories li, .vl-widget .woocommerce-widget-layered-nav-list li { position: relative; padding: 5px 0 5px 22px; }
.vl-widget__list li::before, .vl-widget .product-categories li::before {
	content: ""; position: absolute; left: 0; top: 13px; width: 10px; height: 10px; background: var(--vl-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.4 5.6 11.4 12 12-6.4.6-11.4 5.6-12 12-.6-6.4-5.6-11.4-12-12C6.4 11.4 11.4 6.4 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.4 5.6 11.4 12 12-6.4.6-11.4 5.6-12 12-.6-6.4-5.6-11.4-12-12C6.4 11.4 11.4 6.4 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vl-widget__list a, .vl-widget .product-categories a { color: var(--vl-text); }
.vl-widget__list a:hover, .vl-widget .product-categories a:hover { color: var(--vl-accent); }
.vl-widget .children { padding-left: 6px; }
.vl-recent li { display: grid; grid-template-columns: 113px 1fr; gap: 18px; align-items: center; margin-bottom: 18px; }
.vl-recent__img img { display: block; width: 113px; height: 77px; object-fit: cover; border-radius: 8px; }
.vl-recent span { display: flex; flex-direction: column; gap: 4px; }
.vl-recent time { color: var(--vl-text); font-size: 14px; }
.vl-recent a { color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 16px; line-height: 1.3; text-transform: capitalize; }
.vl-recent a:hover { color: var(--vl-accent); }
.vl-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.vl-tags a, .tagcloud a { display: inline-block; padding: 8px 18px; border: 1px solid var(--vl-line); border-radius: 30px; color: var(--vl-ink); font-size: 12px !important; letter-spacing: .04em; line-height: 1.4; text-transform: uppercase; }
.vl-tags a:hover, .tagcloud a:hover { background: var(--vl-dark); border-color: var(--vl-dark); color: #fff; }
.vl-widget--promo a { position: relative; display: block; overflow: hidden; border-radius: var(--vl-radius); color: #fff; }
.vl-widget--promo img { display: block; width: 100%; aspect-ratio: 389 / 520; object-fit: cover; transition: transform .9s var(--vl-ease); }
.vl-widget--promo a:hover img { transform: scale(1.05); }
.vl-widget--promo span { position: absolute; inset: auto 0 0; padding: 30px; background: linear-gradient(transparent, rgba(0, 0, 0, .55)); font-family: "Kalnia", Georgia, serif; font-size: 34px; letter-spacing: .1em; line-height: 1.1; text-align: center; text-transform: uppercase; }
.vl-widget--promo small { display: block; margin-top: 8px; font-family: var(--vl-body); font-size: 11px; letter-spacing: .2em; }

/* Single post. */
.vl-single__img { margin: 0 0 30px; overflow: hidden; border-radius: 16px; }
.vl-single__img img { display: block; width: 100%; max-height: 520px; object-fit: cover; }
.vl-single__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 18px; color: var(--vl-ink); font-size: 14px; font-weight: 600; }
.vl-single__meta a { color: var(--vl-accent); }
.vl-entry { color: var(--vl-text); }
.vl-entry > * { margin-top: 0; margin-bottom: 1.4em; }
.vl-entry h2, .vl-entry h3 { margin-top: 1.6em; margin-bottom: .6em; }
.vl-entry h2 { font-size: 2rem; }
.vl-entry h3 { font-size: 1.5rem; }
.vl-entry a { color: var(--vl-accent); text-decoration: underline; text-underline-offset: 3px; }
.vl-entry img { border-radius: var(--vl-radius); }
.vl-entry ul { padding-left: 0; list-style: none; }
.vl-entry ul li { position: relative; padding-left: 26px; margin-bottom: 8px; }
.vl-entry ul li::before {
	content: ""; position: absolute; left: 0; top: .4em; width: 15px; height: 15px; background: var(--vl-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vl-entry blockquote, .vl-entry .wp-block-quote {
	position: relative; margin: 2em 0; padding: 40px; border: 0; border-radius: var(--vl-radius); background: #121A1C url("../img/leaves.svg") center / 300px;
	color: #fff; font-family: "Kalnia", Georgia, serif; font-size: 24px; line-height: 1.35;
}
.vl-entry blockquote p { margin: 0 0 .6em; }
.vl-entry blockquote cite { display: block; color: #fff; font-family: var(--vl-body); font-size: 15px; font-style: normal; text-align: right; }
.vl-entry .wp-block-columns { gap: 30px; }
.vl-single__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 40px 0; padding: 22px 0; border-top: 1px solid var(--vl-line); border-bottom: 1px solid var(--vl-line); }
.vl-share { gap: 18px; }
.vl-share a { color: var(--vl-ink); }
.vl-share svg { width: 18px; height: 18px; }

/* Previous / next. */
.post-navigation { margin: 0 0 50px; }
.post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.post-navigation a { display: flex; align-items: center; gap: 16px; color: var(--vl-ink); }
.post-navigation .nav-next { grid-column: 2; }
.post-navigation .nav-next a { justify-content: flex-end; text-align: right; }
.vl-postnav__thumb img, .vl-postnav__thumb .wp-post-image { display: block; width: 104px; height: 80px; object-fit: cover; border-radius: 8px; }
.vl-postnav__thumb:empty { display: none; }
.vl-postnav__text { display: flex; flex-direction: column; gap: 4px; }
.vl-postnav__label { color: var(--vl-text); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.vl-postnav__title { font-family: "Kalnia", Georgia, serif; font-size: 20px; line-height: 1.25; }

/* Comments. */
.vl-comments { margin-top: 30px; padding-top: 40px; border-top: 1px solid var(--vl-line); }
.vl-comments__title, .comment-reply-title { margin: 0 0 26px; font-family: "Kalnia", Georgia, serif; font-size: 28px; font-weight: 400; }
.comment-list { margin: 0 0 40px; padding: 0; list-style: none; }
.comment-list .children { padding-left: 40px; list-style: none; }
.comment-body { display: grid; grid-template-columns: 60px 1fr; gap: 0 20px; padding: 22px 0; border-bottom: 1px solid var(--vl-hair); }
.comment-author .avatar { grid-row: span 3; width: 60px; height: 60px; border-radius: 50%; }
.comment-author { display: contents; }
.comment-author .fn { font-weight: 600; color: var(--vl-ink); font-style: normal; }
.comment-author .says { display: none; }
.comment-metadata { grid-column: 2; font-size: 13px; }
.comment-metadata a { color: var(--vl-text); }
.comment-content, .reply { grid-column: 2; }
.comment-content p { margin: 8px 0; }
.reply a { font-size: 13px; text-decoration: underline; }
.comment-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.comment-form > p { margin: 0; }
.comment-form .comment-notes, .comment-form .comment-form-comment, .comment-form .form-submit, .comment-form .comment-form-cookies-consent { grid-column: 1 / -1; }
.comment-form label { display: block; margin-bottom: 6px; color: var(--vl-ink); font-size: 14px; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; padding: 18px 26px; border: 1px solid var(--vl-line); border-radius: 30px; background: transparent; color: var(--vl-ink); font: inherit;
}
.comment-form textarea { border-radius: 24px; min-height: 160px; }
.comment-form .submit { min-height: 51px; padding: 16px 30px; border: 0; border-radius: 35px; background: var(--vl-dark); color: #fff; font: 500 14px/1 var(--vl-body); cursor: pointer; }
.comment-form .submit:hover { background: var(--vl-accent); }
.no-comments { color: var(--vl-text); }

/* Pagination (blog + shop). */
.pagination, .woocommerce-pagination { margin-top: 60px; }
.nav-links, .woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; border: 0; }
.woocommerce-pagination ul.page-numbers li { border: 0; }
.page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 48px; height: 48px; padding: 0 12px;
	border: 1px solid var(--vl-line); border-radius: 50%; color: var(--vl-ink); font-size: 15px; font-variant-numeric: lining-nums tabular-nums;
}
.page-numbers.current, a.page-numbers:hover { background: var(--vl-dark); border-color: var(--vl-dark); color: #fff; }
.page-numbers.dots { border: 0; }

@media (max-width: 1199px) {
	.vl-blog-layout, .vl-blog-layout--left { grid-template-columns: 1fr; gap: 60px; }
	.vl-blog-layout .vl-blog-main, .vl-blog-layout--left .vl-blog-main { grid-column: 1; padding: 0 !important; border: 0 !important; }
	.vl-blog-layout .vl-sidebar, .vl-blog-layout--left .vl-sidebar { grid-column: 1; grid-row: auto; padding: 0 !important; border: 0 !important; }
	.vl-post-grid.is-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.vl-post-grid, .vl-post-grid.is-wide { grid-template-columns: 1fr; gap: 40px; }
	.vl-post-grid--list .vl-post-card { grid-template-columns: 1fr; }
	.vl-post-grid--list .vl-post-card__img img { aspect-ratio: 16 / 10; }
	.vl-post-grid--list .vl-post-card__body { padding: 26px 22px; }
	.vl-entry blockquote { padding: 26px; font-size: 20px; }
	.post-navigation .nav-links { grid-template-columns: 1fr; }
	.post-navigation .nav-next { grid-column: 1; }
	.comment-form { grid-template-columns: 1fr; }
	.vl-postnav__thumb { display: none; }
}

/* forms: shared fields, contact form, booking form + calendar, register card, notices, modal */

.vl-form { color: var(--vl-ink); }
.vl-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.vl-field { display: flex; flex-direction: column; gap: 8px; margin: 0; min-width: 0; }
.vl-field--full { grid-column: 1 / -1; }
.vl-field > span, .vl-field > legend { color: var(--vl-ink); font-size: 14px; font-weight: 500; }
.vl-form input[type="text"], .vl-form input[type="email"], .vl-form input[type="tel"], .vl-form input[type="number"], .vl-form input[type="password"], .vl-form select, .vl-form textarea,
.woocommerce form .input-text, .woocommerce form select, .woocommerce-page form .input-text {
	width: 100%; min-height: 64px; padding: 20px 30px; border: 1px solid var(--vl-line); border-radius: 40px; background: transparent;
	color: var(--vl-ink); font: inherit; font-size: 16px; line-height: 1.4; transition: border-color .25s var(--vl-ease), box-shadow .25s var(--vl-ease);
	-webkit-appearance: none; appearance: none;
}
.vl-form textarea, .woocommerce form textarea.input-text { min-height: 200px; border-radius: 34px; resize: vertical; }
.vl-form select, .woocommerce form select {
	padding-right: 52px; cursor: pointer;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F2A2E' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 24px center / 16px no-repeat;
}
.vl-form input::placeholder, .vl-form textarea::placeholder { color: var(--vl-muted); }
.vl-form input:focus, .vl-form select:focus, .vl-form textarea:focus, .woocommerce form .input-text:focus { outline: none; border-color: var(--vl-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--vl-accent) 18%, transparent); }
.vl-form__actions { display: flex; justify-content: center; margin-top: 28px; }
.vl-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.vl-form__notice { grid-column: 1 / -1; margin: 0 0 20px; padding: 14px 20px; border-radius: 12px; font-size: 15px; }
.vl-form__notice.is-ok { background: color-mix(in srgb, var(--vl-accent) 12%, #fff); color: var(--vl-ink); }
.vl-form__notice.is-error { background: #FBE9E5; color: #8A2D18; }
.vl-newsletter .vl-form__notice { margin-bottom: 12px; }

/* Booking form: calendar left, details card right. */
.vl-booking-form { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 30px; align-items: start; }
.vl-cal { padding: 34px; border-radius: var(--vl-radius-lg); background: var(--vl-card); box-shadow: 0 30px 60px rgba(20, 30, 30, .06); }
.vl-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.vl-cal__title { display: flex; flex-direction: column; align-items: center; }
.vl-cal__year { color: var(--vl-text); font-size: 14px; }
.vl-cal__month { font-family: "Kalnia", Georgia, serif; font-size: 26px; font-weight: 400; }
.vl-cal__nav { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--vl-line); border-radius: 50%; background: none; color: var(--vl-ink); cursor: pointer; }
.vl-cal__nav:hover:not(:disabled) { background: var(--vl-dark); color: #fff; }
.vl-cal__nav:disabled { opacity: .35; cursor: default; }
.vl-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.vl-cal__dow { padding: 6px 0; color: var(--vl-text); font-size: 13px; text-align: center; text-transform: uppercase; letter-spacing: .04em; }
.vl-cal__dow-s { display: none; }
.vl-cal__day { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 58px; padding: 6px 2px; border: 1px solid transparent; border-radius: 12px; background: var(--vl-bg); color: var(--vl-ink); font: inherit; cursor: pointer; transition: background-color .2s, border-color .2s, color .2s; }
.vl-cal__day.is-blank { background: none; cursor: default; }
.vl-cal__day:disabled { opacity: .4; cursor: not-allowed; background: none; }
.vl-cal__day.is-free:hover { border-color: var(--vl-accent); }
.vl-cal__day[aria-pressed="true"] { background: var(--vl-dark); color: #fff; }
.vl-cal__num { font-size: 17px; font-weight: 500; font-variant-numeric: lining-nums tabular-nums; }
.vl-cal__day small { font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: inherit; opacity: .7; }
.vl-cal__legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 20px 0 0; padding: 0; list-style: none; color: var(--vl-text); font-size: 13px; }
.vl-cal__legend li { display: inline-flex; align-items: center; gap: 8px; }
.vl-cal__legend i { width: 12px; height: 12px; border-radius: 4px; background: var(--vl-bg); border: 1px solid var(--vl-hair); }
.vl-cal__legend i.is-closed { opacity: .4; }
.vl-cal__legend i.is-picked { background: var(--vl-dark); }
.vl-booking-form__card { padding: 40px; border-radius: var(--vl-radius-lg); background: var(--vl-tint); }
.vl-booking-form__title { margin: 0 0 10px; font-family: "Kalnia", Georgia, serif; font-size: 30px; font-weight: 400; }
.vl-booking-form__intro { margin: 0 0 16px; color: var(--vl-text); }
.vl-booking-form__picked { margin: 0 0 18px; padding: 12px 18px; border-radius: 12px; background: var(--vl-card); color: var(--vl-ink); font-size: 15px; }
.vl-booking-form__call { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 24px; color: var(--vl-ink); }
.vl-booking-form__call strong { font-weight: 600; }
.vl-booking-form .vl-form__grid { gap: 16px; }
.vl-booking-form input[type="text"], .vl-booking-form input[type="email"], .vl-booking-form input[type="tel"], .vl-booking-form select { min-height: 56px; padding: 14px 24px; background: var(--vl-card); border-color: transparent; }
.vl-booking-form textarea { min-height: 130px; padding: 16px 24px; background: var(--vl-card); border-color: transparent; border-radius: 24px; }
.vl-times { margin: 0; padding: 0; border: 0; }
.vl-times__list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.vl-chip { position: relative; cursor: pointer; }
.vl-chip input { position: absolute; opacity: 0; pointer-events: none; }
.vl-chip span { display: inline-block; padding: 9px 16px; border: 1px solid var(--vl-line); border-radius: 30px; font-size: 14px; transition: background-color .2s, color .2s; }
.vl-chip input:checked + span { background: var(--vl-dark); border-color: var(--vl-dark); color: #fff; }
.vl-chip input:focus-visible + span { outline: 2px solid var(--vl-accent); outline-offset: 2px; }
.vl-booking-form__foot { margin-top: 24px; }

/* Modal (quick view, size guide, video). */
.vl-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 24px; background: rgba(10, 14, 15, .6); animation: vl-fade .3s var(--vl-ease); }
.vl-modal[hidden] { display: none; }
.vl-modal__box { position: relative; width: min(960px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 40px; border-radius: var(--vl-radius-lg); background: var(--vl-card); animation: vl-fade-up .4s var(--vl-ease); }
.vl-modal__box--video { width: min(1100px, 100%); padding: 0; background: #000; overflow: hidden; }
.vl-modal__box--video iframe, .vl-modal__box--video video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.vl-modal__close { position: absolute; top: 14px; right: 14px; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--vl-bg); color: var(--vl-ink); cursor: pointer; }
.vl-modal__close:hover { background: var(--vl-dark); color: #fff; }
.vl-modal-open { overflow: hidden; }

@media (max-width: 991px) {
	.vl-booking-form { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.vl-form__grid { grid-template-columns: 1fr; }
	.vl-cal { padding: 20px 14px; }
	.vl-cal__grid { gap: 4px; }
	.vl-cal__day { min-height: 46px; border-radius: 9px; }
	.vl-cal__day small { display: none; }
	.vl-cal__dow-l { display: none; }
	.vl-cal__dow-s { display: inline; }
	.vl-booking-form__card { padding: 26px 20px; }
	.vl-modal__box { padding: 26px 20px; }
}

/* Register card. */
.vl-register__title { margin: 0 0 8px; text-align: center; font-family: "Kalnia", Georgia, serif; font-size: var(--vl-h2); font-weight: 400; }
.vl-register__sub { margin: 0 0 30px; text-align: center; color: var(--vl-text); }
.vl-form__grid--single { grid-template-columns: 1fr; gap: 16px; }
.vl-register .vl-form__actions { margin-top: 22px; }
.vl-register__submit { width: 100%; }
.vl-register__login { margin: 18px 0 0; text-align: center; }
.vl-register__login a, .vl-register__done a { color: var(--vl-ink); text-decoration: underline; text-underline-offset: 4px; }

/* Toast (wishlist). */
.vl-toast { position: fixed; left: 50%; bottom: 26px; z-index: 210; display: flex; align-items: center; gap: 16px; max-width: calc(100vw - 32px); padding: 14px 22px; border-radius: 40px; background: var(--vl-dark); color: #fff; font-size: 15px; box-shadow: 0 18px 40px rgba(0, 0, 0, .2); opacity: 0; visibility: hidden; transform: translate(-50%, 16px); transition: opacity .3s var(--vl-ease), transform .3s var(--vl-ease), visibility .3s; }
.vl-toast.is-visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.vl-toast a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Quick view loading. */
.vl-modal__box--quick.is-loading { min-height: 320px; display: grid; place-items: center; }
.vl-modal__loading { width: 44px; height: 44px; border: 2px solid var(--vl-hair); border-top-color: var(--vl-accent); border-radius: 50%; animation: vl-spin .8s linear infinite; }
.vl-quick.is-loading { opacity: .6; pointer-events: none; }

/* Lightbox. */
.vl-modal__box--lightbox { width: auto; max-width: min(1100px, 100%); padding: 0; background: transparent; overflow: visible; }
.vl-lightbox { position: relative; margin: 0; }
.vl-lightbox__img { display: block; max-width: 100%; max-height: calc(100vh - 80px); width: auto; margin: 0 auto; border-radius: 12px; }
.vl-lightbox__prev, .vl-lightbox__next { position: absolute; top: 50%; transform: translateY(-50%); background: var(--vl-card); border-color: transparent; color: var(--vl-ink); }
.vl-lightbox__prev { left: 12px; }
.vl-lightbox__next { right: 12px; }
.vl-lightbox__count { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); padding: 4px 12px; border-radius: 20px; background: rgba(0, 0, 0, .55); color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; }
.vl-modal__box--lightbox .vl-modal__close { top: -16px; right: -16px; }

/* shop: product grids + card styles, archive layout, filters, cart, checkout, account, notices, quick view */

/* ------------------------------------------------------------------ Grids */
/* Base card rules use low specificity so every card style below wins without !important; only
   WooCommerce's float layout needs overriding. */
.woocommerce ul.products, .woocommerce-page ul.products, ul.products, .vl-products ul.products, .vl-products .elementor-grid {
	display: grid !important; grid-template-columns: repeat(var(--vl-cols, 4), minmax(0, 1fr)); gap: 40px 30px;
	margin: 0 !important; padding: 0; list-style: none;
}
ul.products::before, ul.products::after { display: none !important; }
ul.products.columns-1 { --vl-cols: 1; }
ul.products.columns-2 { --vl-cols: 2; }
ul.products.columns-3 { --vl-cols: 3; }
ul.products.columns-4 { --vl-cols: 4; }
ul.products.columns-5 { --vl-cols: 5; }
ul.products.columns-6 { --vl-cols: 6; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product, ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; min-width: 0; }
:where(ul.products li.product) { padding: 0; text-align: center; }
.vl-products .woocommerce { width: 100%; }

/* Horizontal carousel (.vl-carousel wrapper): native scroll with snap, progress bar under it. */
.vl-carousel ul.products { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: calc((100% - (var(--vl-cols, 4) - 1) * 30px) / var(--vl-cols, 4)); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; padding-bottom: 6px !important; }
.vl-carousel ul.products::-webkit-scrollbar { display: none; }
.vl-carousel ul.products li.product { scroll-snap-align: start; }
.vl-scrollbar { position: relative; height: 4px; margin-top: 30px; border-radius: 4px; background: var(--vl-hair); overflow: hidden; }
.vl-scrollbar span { position: absolute; top: 0; bottom: 0; left: 0; width: 25%; border-radius: 4px; background: var(--vl-accent); transition: transform .2s linear; }

/* ------------------------------------------------------------------ Card: shared parts (style 1 = default) */
.vl-card { position: relative; display: flex; flex-direction: column; }
.vl-card__media { position: relative; overflow: hidden; border-radius: 5px; background: var(--vl-tint); }
.vl-card__link { display: block; position: relative; aspect-ratio: 330 / 373; overflow: hidden; }
.vl-shop ul.products .vl-card__link { aspect-ratio: 4 / 5; }
.vl-card__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; margin: 0 !important; border-radius: 0 !important; transition: opacity .6s var(--vl-ease), transform 1.2s var(--vl-ease); }
.vl-card__img--alt { opacity: 0; }
.vl-card:hover .vl-card__img--alt { opacity: 1; }
.vl-card:hover .vl-card__img { transform: scale(1.07); }
.vl-chip {
	position: absolute; top: 12px; right: 12px; z-index: 3; padding: 4px 9px; border-radius: 4px; background: var(--vl-chip); color: #fff;
	font-family: var(--vl-body); font-size: 10px; font-weight: 600; letter-spacing: 1px; line-height: 1.6; text-transform: uppercase;
}
.vl-chip--sale { background: var(--vl-accent); }
.vl-chip--out { background: #6E7270; }
.vl-card__icons { position: absolute; top: 12px; right: 12px; z-index: 3; display: flex; flex-direction: column; gap: 8px; }
.vl-chip ~ .vl-card__icons { top: 46px; }
.vl-card__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%;
	background: var(--vl-card); color: var(--vl-ink); cursor: pointer; box-shadow: 0 6px 18px rgba(20, 30, 30, .1);
	opacity: 0; transform: translateX(16px); transition: opacity .35s var(--vl-ease), transform .45s cubic-bezier(.34, 1.56, .64, 1), background-color .25s, color .25s;
}
.vl-card__icon:nth-child(2) { transition-delay: .05s; }
.vl-card__icon:nth-child(3) { transition-delay: .1s; }
.vl-card:hover .vl-card__icon, .vl-card:focus-within .vl-card__icon { opacity: 1; transform: none; }
.vl-card__icon:hover, .vl-wish.is-on { background: var(--vl-dark); color: #fff; }
.vl-wish.is-on svg { fill: currentColor; }
.vl-card__icon.loading { opacity: .6; pointer-events: none; }
.vl-card__icon.added::after, .vl-card__cta.added::after { content: ""; }
.added_to_cart { display: none !important; }
.vl-card__cta {
	position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 3; display: none; align-items: center; justify-content: center; min-height: 46px; padding: 12px 20px;
	border-radius: 30px; background: var(--vl-dark); color: #fff; font-size: 14px; font-weight: 500; letter-spacing: .02em;
	opacity: 0; transform: translateY(14px); transition: opacity .35s var(--vl-ease), transform .35s var(--vl-ease), background-color .25s;
}
.vl-card__cta:hover { background: var(--vl-accent); color: #fff; }
.vl-card:hover .vl-card__cta, .vl-card:focus-within .vl-card__cta { opacity: 1; transform: none; }
.vl-card__body { padding: 18px 6px 0; }
.vl-card__cats { margin: 0 0 6px; color: var(--vl-text); font-size: 12px; font-weight: 500; letter-spacing: .06em; line-height: 1.5; text-transform: uppercase; }
.vl-card__cats a { color: inherit; }
.vl-card__cats a:hover { color: var(--vl-accent); }
.vl-card__title { margin: 0 0 6px; padding: 0; color: var(--vl-ink); font-family: var(--vl-body); font-size: 20px; font-weight: 500; line-height: 1.25; letter-spacing: 0; text-transform: none; }
.vl-card__title a { color: inherit; }
.vl-card__title a:hover { color: var(--vl-accent); }
.vl-card .price { display: block; margin: 0; color: var(--vl-ink); font-size: 16px; font-weight: 500; letter-spacing: .02em; font-variant-numeric: lining-nums tabular-nums; }
.price del { color: var(--vl-muted); font-weight: 400; margin-right: 6px; opacity: 1; }
.price ins { text-decoration: none; }
.vl-card__desc, .vl-card__button { display: none; }
.vl-card .vl-stars { display: none; margin: 2px auto 8px; }

/* Stars (rating as a percentage mask). */
.vl-stars { position: relative; display: inline-block; width: 82px; height: 14px; background: linear-gradient(90deg, var(--vl-ink) var(--rating, 0%), color-mix(in srgb, var(--vl-ink) 22%, transparent) var(--rating, 0%));
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 82 14'%3E%3Cg%3E%3Cpath id='s' d='M7 .6l1.9 4.1 4.5.5-3.4 3 1 4.4L7 10.4 3 12.6l1-4.4-3.4-3 4.5-.5z'/%3E%3Cuse href='%23s' x='17'/%3E%3Cuse href='%23s' x='34'/%3E%3Cuse href='%23s' x='51'/%3E%3Cuse href='%23s' x='68'/%3E%3C/g%3E%3C/svg%3E") left center / 82px 14px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 82 14'%3E%3Cg%3E%3Cpath id='s' d='M7 .6l1.9 4.1 4.5.5-3.4 3 1 4.4L7 10.4 3 12.6l1-4.4-3.4-3 4.5-.5z'/%3E%3Cuse href='%23s' x='17'/%3E%3Cuse href='%23s' x='34'/%3E%3Cuse href='%23s' x='51'/%3E%3Cuse href='%23s' x='68'/%3E%3C/g%3E%3C/svg%3E") left center / 82px 14px no-repeat;
	vertical-align: middle;
}

/* Style 2: framed card, serif caps, cart bar on hover. */
.vl-cards--s2 .vl-card { padding: 10px; border: 1px solid var(--vl-line); border-radius: 10px; }
.vl-cards--s2 .vl-card__media { border-radius: 8px; }
.vl-cards--s2 .vl-card__body { padding: 18px 8px 10px; }
.vl-cards--s2 .vl-card__title { font-family: var(--vl-display); font-size: 21px; font-weight: 400; line-height: 1.2; text-transform: uppercase; }
.vl-cards--s2 .vl-card__cta { display: flex; }

/* Style 3: left-aligned text. */
.vl-cards--s3 .vl-card, .vl-cards--s3 .vl-card__body { text-align: left; }
.vl-cards--s3 .vl-card__body { padding-left: 0; padding-right: 0; }
.vl-cards--s3 .vl-card__media { border-radius: 8px; }

/* Style 4: the photo is the card; a light panel with name, stars and price sits inside its bottom. */
.vl-cards--s4 .vl-card { overflow: hidden; border-radius: 8px; }
.vl-cards--s4 .vl-card__media { flex: 1; border-radius: 8px; }
.vl-cards--s4 .vl-card__link { height: 100%; aspect-ratio: 330 / 380; }
.vl-cards--s4 .vl-card__body { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 4; padding: 16px 18px 14px; border-radius: 6px; background: var(--vl-card); text-align: left; box-shadow: 0 10px 30px rgba(20, 30, 30, .08); }
.vl-cards--s4 .vl-card__cats { display: none; }
.vl-cards--s4 .vl-card__title { font-size: 18px; margin-bottom: 8px; }
.vl-cards--s4 .vl-card .vl-stars { display: block; margin: 0 0 6px; }
.vl-cards--s4 .vl-card .price { font-size: 15px; }

/* Style 5: icons in a row along the photo bottom. */
.vl-cards--s5 .vl-card__media > .vl-card__icons { top: auto; bottom: 14px; left: 0; right: 0; flex-direction: row; justify-content: center; }
.vl-cards--s5 .vl-card__icon { transform: translateY(18px); }
.vl-cards--s5 .vl-card__media { border-radius: 8px; }

/* Style 6: icons in the middle of the photo over a soft shade, chip on the left. */
.vl-cards--s6 .vl-card__media > .vl-card__icons { top: 50%; left: 0; right: 0; flex-direction: row; justify-content: center; transform: translateY(-50%); }
.vl-cards--s6 .vl-card__icon { transform: scale(.6); }
.vl-cards--s6 .vl-chip { left: 12px; right: auto; }
.vl-cards--s6 .vl-card__media { border-radius: 8px; }
.vl-cards--s6 .vl-card__media::after { content: ""; position: absolute; inset: 0; z-index: 2; background: rgba(20, 28, 30, .2); opacity: 0; transition: opacity .4s; pointer-events: none; }
.vl-cards--s6 .vl-card:hover .vl-card__media::after { opacity: 1; }

/* Style 7: framed card with the cart button inside the content. */
.vl-cards--s7 .vl-card { padding: 10px 10px 22px; border: 1px solid var(--vl-line); border-radius: 10px; }
.vl-cards--s7 .vl-card__media { border-radius: 8px; }
.vl-cards--s7 .vl-card__body { padding: 18px 8px 0; }
.vl-cards--s7 .vl-card__button {
	display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; padding: 12px 24px; border: 1px solid var(--vl-line); border-radius: 30px;
	color: var(--vl-ink); font-size: 14px; font-weight: 500; line-height: 1; transition: background-color .25s, color .25s, border-color .25s;
}
.vl-cards--s7 .vl-card__button:hover { background: var(--vl-dark); border-color: var(--vl-dark); color: #fff; }
.vl-cards--s7 .vl-chip { left: 12px; right: auto; }
.vl-cards--s7 .vl-card__media > .vl-card__icons { top: 12px; }

/* Front page (spa) cards: white card, serif caps, accent chip, pill on hover. */
.vl-cards--spa .vl-card { padding: 6px 6px 22px; border-radius: 10px; background: var(--vl-card); box-shadow: 0 1px 0 rgba(30, 58, 51, .04); }
.vl-cards--spa .vl-card__media { background: var(--vl-bg); }
.vl-cards--spa .vl-card__link { aspect-ratio: 307 / 384; }
.vl-cards--spa .vl-chip { background: var(--vl-accent); }
.vl-cards--spa .vl-card__title { font-family: var(--vl-serif); font-weight: 400; text-transform: uppercase; }
.vl-cards--spa .vl-card__cta { display: flex; background: var(--vl-accent); text-transform: uppercase; }
.vl-cards--spa .vl-card__cats { color: var(--vl-ink); }

/* Framed cards in one row share a height. */
:is(.vl-cards--s2, .vl-cards--s7, .vl-cards--spa) .vl-card { height: 100%; }

/* List view (shop toolbar). */
ul.products.is-list { grid-template-columns: 1fr !important; }
ul.products.is-list li.product.vl-card { display: grid; grid-template-columns: 300px 1fr; gap: 30px; align-items: center; height: auto; text-align: left; }
ul.products.is-list .vl-card__body { position: static; padding: 0; background: none; box-shadow: none; }
ul.products.is-list .vl-card__desc { display: block; margin: 10px 0 0; }
ul.products.is-list .vl-card .vl-stars { display: block; margin: 4px 0 8px; }
ul.products.is-list .vl-card__button { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; padding: 12px 24px; border-radius: 30px; background: var(--vl-dark); color: #fff; font-size: 14px; }

/* ------------------------------------------------------------------ Shop archive */
.vl-shop { padding-top: var(--vl-pad); padding-bottom: var(--vl-pad); }
.vl-shop__layout { display: grid; grid-template-columns: 410px minmax(0, 1fr); }
.vl-shop__sidebar { padding-right: 40px; border-right: 1px solid var(--vl-line); }
.vl-shop__layout > .vl-shop__main { padding-left: 40px; }
.vl-shop--sidebar-right .vl-shop__layout { grid-template-columns: minmax(0, 1fr) 410px; }
.vl-shop--sidebar-right .vl-shop__sidebar { grid-column: 2; grid-row: 1; padding: 0 0 0 40px; border-right: 0; border-left: 1px solid var(--vl-line); }
.vl-shop--sidebar-right .vl-shop__layout > .vl-shop__main { grid-column: 1; padding: 0 40px 0 0; }
.vl-shop__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 30px; }
.woocommerce .woocommerce-result-count, .woocommerce-result-count { margin: 0; float: none; color: var(--vl-text); font-size: 15px; }
.vl-shop__views { display: flex; gap: 8px; }
.vl-shop__view { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 6px; background: var(--vl-tint); color: var(--vl-ink); cursor: pointer; }
.vl-shop__view.is-active, .vl-shop__view:hover { background: var(--vl-dark); color: #fff; }
.vl-shop__view-dots { width: 16px; height: 16px; background: radial-gradient(circle, currentColor 1.6px, transparent 2.2px) 0 0 / calc(16px / var(--n)) calc(16px / 2); }
.woocommerce .woocommerce-ordering, .woocommerce-ordering { margin: 0; float: none; }
.woocommerce .woocommerce-ordering select, .woocommerce-ordering select {
	min-width: 230px; height: 50px; min-height: 0; padding: 0 48px 0 24px; border: 1px solid var(--vl-line); border-radius: 30px; color: var(--vl-ink); font: inherit; font-size: 15px;
	-webkit-appearance: none; appearance: none; cursor: pointer;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231F2A2E'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") right 18px center / 18px no-repeat;
}

/* Filters. */
.widget_price_filter .price_slider_wrapper { padding-top: 6px; }
.widget_price_filter .ui-slider { position: relative; height: 3px; margin: 8px 8px 24px; border-radius: 3px; background: var(--vl-hair); }
.widget_price_filter .ui-slider .ui-slider-range { position: absolute; top: 0; height: 100%; background: var(--vl-ink); }
.widget_price_filter .ui-slider .ui-slider-handle { position: absolute; top: -7px; width: 16px; height: 16px; margin-left: -8px; border: 2px solid var(--vl-ink); border-radius: 50%; background: var(--vl-bg); cursor: ew-resize; outline: none; }
.widget_price_filter .price_slider_amount { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; gap: 12px; color: var(--vl-text); font-variant-numeric: lining-nums tabular-nums; }
.widget_price_filter .price_slider_amount .button { padding: 12px 24px; border: 1px solid var(--vl-line); border-radius: 30px; background: none; color: var(--vl-ink); font: 500 14px/1 var(--vl-body); cursor: pointer; }
.widget_price_filter .price_slider_amount .button:hover { background: var(--vl-dark); color: #fff; }
.widget_price_filter .price_slider_amount .clear { display: none; }
.woocommerce-widget-layered-nav-list { display: flex; flex-wrap: wrap; gap: 10px; }
.vl-widget .woocommerce-widget-layered-nav-list li { padding: 0; }
.woocommerce-widget-layered-nav-list a { display: inline-block; padding: 7px 16px; border: 1px solid var(--vl-line); border-radius: 30px; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 14px; }
.woocommerce-widget-layered-nav-list .chosen a, .woocommerce-widget-layered-nav-list a:hover { background: var(--vl-dark); color: #fff; border-color: var(--vl-dark); }
.woocommerce-widget-layered-nav-list .count { display: none; }
.vl-widget .product-categories .count { display: none; }

/* Wishlist page: the shortcode on a full-width page gets the container. */
.vl-page--sections > .vl-wishlist { width: 100%; max-width: calc(var(--vl-wrap) + 2 * var(--vl-gutter)); margin-inline: auto; padding: var(--vl-pad) var(--vl-gutter); }
.vl-wishlist .vl-empty-note { max-width: none; }

/* ------------------------------------------------------------------ Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper .wc-block-components-notice-banner {
	position: relative; margin: 0 0 30px !important; padding: 18px 24px !important; border: 0 !important; border-top: 2px solid var(--vl-accent) !important; border-radius: 10px;
	background: var(--vl-tint) !important; color: var(--vl-ink) !important; list-style: none; font-size: 15px;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-error { border-top-color: #B4412A !important; }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 16px; color: var(--vl-ink); text-decoration: underline; background: none; padding: 0; }
.vl-empty-note p { margin-bottom: 24px; padding: 18px 24px; border-top: 2px solid var(--vl-accent); border-radius: 10px; background: var(--vl-tint); color: var(--vl-ink); }
.vl-empty-note .vl-btn--outline-el, .return-to-shop .button, .woocommerce .return-to-shop a.button {
	display: inline-flex; padding: 14px 26px; border: 1px solid var(--vl-line); border-radius: 30px; background: transparent; color: var(--vl-ink); font: 500 14px/1 var(--vl-body);
}
.vl-empty-note .vl-btn--outline-el:hover, .return-to-shop .button:hover { background: var(--vl-dark); color: #fff; }

/* ------------------------------------------------------------------ WooCommerce buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
	display: inline-flex; align-items: center; justify-content: center; min-height: 51px; padding: 16px 28px; border: 0; border-radius: 35px;
	background: var(--vl-dark); color: #fff; font: 500 14px/1 var(--vl-body); letter-spacing: .02em; text-transform: none; transition: background-color .3s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--vl-accent); color: #fff; }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .5; }

/* ------------------------------------------------------------------ Cart & checkout */
.woocommerce-cart .vl-page, .woocommerce-checkout .vl-page, .woocommerce-account .vl-page, .vl-page--woo { padding: var(--vl-pad) 0; }
.woocommerce table.shop_table { width: 100%; margin: 0 0 30px; border: 0; border-collapse: collapse; border-radius: 0; }
.woocommerce table.shop_table th { padding: 16px 12px; border-bottom: 1px solid var(--vl-line); color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 18px; font-weight: 400; text-align: left; }
.woocommerce table.shop_table td { padding: 20px 12px; border-top: 0; border-bottom: 1px solid var(--vl-hair); vertical-align: middle; }
.woocommerce table.shop_table img { width: 80px; border-radius: 8px; }
.woocommerce table.shop_table td.product-name a { color: var(--vl-ink); font-family: var(--vl-display); font-size: 18px; font-weight: 400; text-decoration: none; }
.woocommerce table.shop_table td.product-name a:hover { color: var(--vl-accent); }
.woocommerce table.shop_table td .amount { color: var(--vl-ink); font-variant-numeric: lining-nums tabular-nums; }
.woocommerce a.remove { text-decoration: none; }
.woocommerce a.remove { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; color: var(--vl-ink) !important; font-size: 20px; }
.woocommerce a.remove:hover { background: var(--vl-dark); color: #fff !important; }
.woocommerce .quantity .qty { width: 70px; min-height: 44px; border: 1px solid var(--vl-line); border-radius: 30px; background: transparent; color: var(--vl-ink); font: inherit; text-align: center; }
.woocommerce table.cart td.actions .coupon { display: inline-flex; align-items: center; gap: 10px; }
.woocommerce table.cart td.actions .coupon #coupon_code, .woocommerce .coupon input.input-text { width: 240px !important; min-height: 51px; margin: 0; padding: 0 22px; border-radius: 30px; }
.woocommerce table.cart td.actions { padding-top: 24px; padding-bottom: 24px; }
.woocommerce table.cart td.actions > .button { float: right; }
.cart-collaterals .cart_totals, .woocommerce-checkout-review-order, #order_review { padding: 34px; border-radius: var(--vl-radius-lg); background: var(--vl-tint); }
.cart-collaterals .cart_totals h2, #order_review_heading, .woocommerce-billing-fields h3, .woocommerce-additional-fields h3, .woocommerce-shipping-fields h3 { margin: 0 0 20px; font-family: "Kalnia", Georgia, serif; font-size: 26px; font-weight: 400; }
.cart_totals table.shop_table td, .cart_totals table.shop_table th { border-bottom-color: var(--vl-hair); font-size: 16px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; text-decoration: none; }
.woocommerce .cart-collaterals .cart_totals { float: right; width: 48%; }
.cart_totals .shop_table th { width: 40%; }

/* Checkout: billing + notes on the left, the order summary in a sticky card on the right. */
.woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 0 60px; align-items: start; }
.woocommerce form.checkout > * { grid-column: 1 / -1; }
.woocommerce form.checkout > .col2-set { grid-column: 1; grid-row: 2 / span 3; display: flex; flex-direction: column; gap: 30px; }
.woocommerce form.checkout > .col2-set > .col-1, .woocommerce form.checkout > .col2-set > .col-2 { width: 100%; float: none; }
.woocommerce form.checkout > #order_review_heading { grid-column: 2; grid-row: 2; margin-top: 0; }
.woocommerce form.checkout > #order_review { grid-column: 2; grid-row: 3; position: sticky; top: 110px; }
.woocommerce-checkout #payment ul.payment_methods { padding: 18px 20px; border-bottom: 1px solid var(--vl-hair); }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li::marker { content: ""; }
.woocommerce-checkout #payment div.form-row { padding: 20px; }
.woocommerce-checkout #payment .woocommerce-info { margin: 0 !important; }
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: 14px 8px; }
.woocommerce form .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row label { margin-bottom: 6px; color: var(--vl-ink); font-size: 14px; font-weight: 500; }
.woocommerce form .form-row .input-text { min-height: 56px; padding: 14px 24px; }
.woocommerce-checkout .col2-set { width: 100%; }
#payment { border-radius: 14px; background: var(--vl-card) !important; }
#payment .place-order .button { width: 100%; }
.select2-container .select2-selection--single { height: 56px; border: 1px solid var(--vl-line); border-radius: 40px; background: transparent; }
.select2-container .select2-selection--single .select2-selection__rendered { padding: 0 24px; line-height: 54px; color: var(--vl-ink); }
.select2-container .select2-selection--single .select2-selection__arrow { top: 15px; right: 16px; }

/* ------------------------------------------------------------------ Account / login / register card */
.woocommerce-account:not(.logged-in) .woocommerce, .vl-auth-card {
	max-width: 650px; margin: 0 auto; padding: 48px 50px; border-radius: var(--vl-radius-lg); background: var(--vl-tint);
}
.woocommerce-account:not(.logged-in) .woocommerce h2, .vl-auth-card h2 { margin: 0 0 24px; text-align: center; font-family: "Kalnia", Georgia, serif; font-size: var(--vl-h2); font-weight: 400; }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr; gap: 40px; }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { width: 100% !important; float: none !important; }
.woocommerce form.login, .woocommerce form.register { margin: 0; padding: 0; border: 0; }
.woocommerce-form-login__submit, .woocommerce-form-register__submit { width: 100%; margin-top: 8px !important; }
.woocommerce-LostPassword { margin-top: 16px; text-align: center; }
.woocommerce-LostPassword a { color: var(--vl-ink); text-decoration: underline; }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 12px 18px; border-radius: 30px; color: var(--vl-ink); }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { background: var(--vl-dark); color: #fff; }

/* ------------------------------------------------------------------ Quick view */
.vl-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.vl-quick__media img { display: block; width: 100%; border-radius: var(--vl-radius); }
.vl-quick__cats { margin: 0 0 6px; color: var(--vl-text); font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.vl-quick__cats a { color: inherit; }
.vl-quick__title { margin: 0 0 10px; font-family: "Kalnia", Georgia, serif; font-size: 34px; font-weight: 400; }
.vl-quick .price { display: block; margin: 12px 0; color: var(--vl-ink); font-size: 24px; font-weight: 600; }
.vl-quick__text { margin-bottom: 20px; }
.vl-quick form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 16px; }
.vl-quick .vl-buy-now { display: none; }
.vl-quick__more { color: var(--vl-ink); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1199px) {
	.vl-shop__layout, .vl-shop--sidebar-right .vl-shop__layout { grid-template-columns: 1fr; gap: 50px; }
	.vl-shop__sidebar, .vl-shop--sidebar-right .vl-shop__sidebar { grid-column: 1; grid-row: 2; padding: 0; border: 0; }
	.vl-shop__layout > .vl-shop__main, .vl-shop--sidebar-right .vl-shop__layout > .vl-shop__main { grid-column: 1; grid-row: 1; padding: 0; }
	ul.products.columns-4, ul.products.columns-5 { --vl-cols: 3; }
}
@media (max-width: 991px) {
	.woocommerce form.checkout { grid-template-columns: 1fr; }
	.woocommerce form.checkout > .col2-set, .woocommerce form.checkout > #order_review_heading, .woocommerce form.checkout > #order_review { grid-column: 1; grid-row: auto; position: static; }
	.woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
	ul.products.columns-3, ul.products.columns-4, ul.products.columns-5 { --vl-cols: 2; }
	.vl-quick { grid-template-columns: 1fr; gap: 24px; }
	.vl-shop__views { display: none; }
}
@media (max-width: 767px) {
	.woocommerce ul.products, ul.products, .vl-products ul.products { gap: 30px 14px; }
	ul.products.is-list li.product .vl-card { grid-template-columns: 1fr; }
	.vl-card__title { font-size: 16px; }
	.vl-card__cats { font-size: 11px; }
	.vl-card .price { font-size: 14px; }
	.vl-card__icon { width: 34px; height: 34px; opacity: 1; transform: none; }
	.vl-card__icons { gap: 6px; top: 40px; right: 8px; }
	.vl-cards--s5 .vl-card__icons, .vl-cards--s6 .vl-card__icons { top: auto; bottom: 8px; }
	.vl-card__cta { display: none !important; }
	.vl-cards--s4 .vl-card__link { aspect-ratio: 330 / 460; }
	.vl-cards--s4 .vl-card__body { left: 8px; right: 8px; bottom: 8px; padding: 10px 12px; }
	.vl-cards--s4 .vl-card__title { font-size: 14px; margin-bottom: 4px; }
	.vl-cards--s4 .vl-card .vl-stars { transform: scale(.8); transform-origin: left center; margin-bottom: 2px; }
	.vl-cards--s4 .vl-card .price { font-size: 13px; }
	.vl-cards--s4 .vl-card__icons { display: none; }
	.vl-carousel ul.products { grid-auto-columns: 72%; }
	.woocommerce-account:not(.logged-in) .woocommerce, .vl-auth-card { padding: 30px 20px; }
	.woocommerce table.shop_table_responsive tr td { padding: 10px 6px; }
	.woocommerce-ordering select { min-width: 0; width: 100%; }
	.woocommerce table.cart td.actions .coupon { display: flex; width: 100%; }
	.woocommerce table.cart td.actions .coupon #coupon_code { flex: 1; width: auto !important; min-width: 0; }
	.woocommerce table.cart td.actions > .button { float: none; width: 100%; margin-top: 12px; }
	.vl-shop__toolbar { flex-direction: column; align-items: stretch; }
}

/* product: single product layouts, gallery variants, summary, swatches, buy box, tabs, deal, sticky bar */

.single-product .vl-shop { padding-top: 70px; }
.woocommerce div.product, .woocommerce-page div.product { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 50px 60px; align-items: start; }
.woocommerce div.product > .woocommerce-product-gallery, .woocommerce div.product > .vl-gallery-grid { grid-column: 1; grid-row: 1; width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product > .summary { grid-column: 2; grid-row: 1; width: 100% !important; float: none !important; margin: 0 !important; position: relative; }
.woocommerce div.product > .woocommerce-tabs, .woocommerce div.product > .related, .woocommerce div.product > .upsells, .woocommerce div.product > .vl-product-extra { grid-column: 1 / -1; }
.woocommerce div.product > .onsale { display: none; }

/* Gallery grid (default) and stack: every photo visible (lightbox on click). */
.vl-gallery-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.vl-gallery-grid__item { display: block; overflow: hidden; border-radius: 10px; background: var(--vl-tint); cursor: zoom-in; }
.vl-gallery-grid__item img { display: block; width: 100%; aspect-ratio: 330 / 373; object-fit: cover; transition: transform 1s var(--vl-ease); }
.vl-gallery-grid__item:hover img { transform: scale(1.05); }
.vl-gallery-grid .vl-chip { top: 16px; right: auto; left: 16px; }
.vl-gallery-grid { gap: 40px; }
.vl-gallery-grid--n1 { grid-template-columns: 1fr; }
.vl-gallery-grid__item { position: relative; }
.vl-gallery-grid__item--empty { cursor: default; }
.vl-gallery-grid__item--empty img { aspect-ratio: 330 / 373; }
.vl-gallery-grid__zoom {
	position: absolute; right: 14px; bottom: 14px; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%;
	background: var(--vl-card); color: var(--vl-ink); opacity: 0; transform: scale(.7); transition: opacity .3s, transform .4s var(--vl-ease);
}
.vl-gallery-grid__item:hover .vl-gallery-grid__zoom, .vl-gallery-grid__item:focus-visible .vl-gallery-grid__zoom { opacity: 1; transform: none; }
.vl-product--stack .vl-gallery-grid { grid-template-columns: 1fr; gap: 24px; }
.vl-product--stack .vl-gallery-grid__item img { aspect-ratio: 4 / 5; }

/* Slider galleries (thumbs right / left / bottom, deal, simple). */
.woocommerce div.product div.images { position: relative; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs { list-style: none; }
/* Hover zoom (WooCommerce zoomImg) stays inside its photo; the summary always sits above the gallery. */
.woocommerce div.product .woocommerce-product-gallery__image, .vl-gallery-grid__item { position: relative; overflow: hidden; }
.woocommerce div.product .woocommerce-product-gallery, .woocommerce div.product .woocommerce-product-gallery .flex-viewport { overflow: hidden; }
.woocommerce div.product .zoomImg { max-width: none; border-radius: 0 !important; }
.woocommerce div.product > .summary { z-index: 2; }
.woocommerce div.product > .woocommerce-product-gallery, .woocommerce div.product > .vl-gallery-grid { position: relative; z-index: 1; }
.woocommerce div.product div.images .woocommerce-product-gallery__image a { display: block; }
.woocommerce div.product div.images .flex-viewport, .woocommerce div.product div.images .woocommerce-product-gallery__image:first-child { border-radius: 12px; overflow: hidden; }
.woocommerce div.product div.images img { display: block; width: 100%; height: auto; border-radius: 12px; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { aspect-ratio: 4 / 5; object-fit: cover; }
.woocommerce div.product div.images .flex-control-thumbs img { height: auto; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 16px 0 0; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs img { aspect-ratio: 1 / 1.15; object-fit: cover; border: 1.5px solid transparent; border-radius: 8px; opacity: .65; transition: opacity .25s, border-color .25s; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--vl-ink); }
.vl-product--thumbs-right .woocommerce-product-gallery, .vl-product--thumbs-left .woocommerce-product-gallery, :is(.vl-product--deal, .vl-product--toggle) .woocommerce-product-gallery { display: grid; grid-template-columns: minmax(0, 1fr) 110px; gap: 16px; align-items: start; }
.vl-product--thumbs-right .woocommerce-product-gallery .flex-viewport, .vl-product--thumbs-left .woocommerce-product-gallery .flex-viewport, :is(.vl-product--deal, .vl-product--toggle) .woocommerce-product-gallery .flex-viewport { grid-column: 1; grid-row: 1; }
.vl-product--thumbs-right .flex-control-thumbs, .vl-product--thumbs-left .flex-control-thumbs, :is(.vl-product--deal, .vl-product--toggle) .flex-control-thumbs { grid-column: 2; grid-row: 1; grid-template-columns: 1fr !important; margin: 0 !important; }
.vl-product--thumbs-left .woocommerce-product-gallery, :is(.vl-product--deal, .vl-product--toggle) .woocommerce-product-gallery { grid-template-columns: 110px minmax(0, 1fr); }
.vl-product--thumbs-left .woocommerce-product-gallery .flex-viewport, :is(.vl-product--deal, .vl-product--toggle) .woocommerce-product-gallery .flex-viewport { grid-column: 2; }
.vl-product--thumbs-left .flex-control-thumbs, :is(.vl-product--deal, .vl-product--toggle) .flex-control-thumbs { grid-column: 1 !important; }
.woocommerce-product-gallery__trigger { position: absolute; top: 16px; right: 16px; z-index: 5; display: inline-flex; width: 42px; height: 42px; border-radius: 50%; background: var(--vl-card); align-items: center; justify-content: center; text-indent: -9999px; overflow: hidden; }
.woocommerce-product-gallery__trigger::after { content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; text-indent: 0; background: var(--vl-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.4-4.4M11 8v6M8 11h6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.4-4.4M11 8v6M8 11h6'/%3E%3C/svg%3E") center / contain no-repeat; }
.woocommerce-product-gallery__trigger img { display: none !important; }

/* Summary. */
.vl-summary__cats { margin: 0 0 6px; color: var(--vl-ink); font-size: 14px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.vl-summary__cats a { color: inherit; }
.woocommerce div.product .product_title { margin: 0 0 12px; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: clamp(2rem, 1.4rem + 1.6vw, 2.5rem); font-weight: 400; line-height: 1.15; }
.woocommerce div.product .summary > .vl-stars { display: block; margin-bottom: 14px; }
.woocommerce div.product .summary p.price, .woocommerce div.product .summary span.price { display: block; margin: 0 0 16px; font-variant-numeric: lining-nums tabular-nums; color: var(--vl-ink); font-size: 26px; font-weight: 600; }
.woocommerce-product-details__short-description { margin-bottom: 14px; }
.vl-summary__stock { margin: 0 0 14px; color: var(--vl-text); }
.vl-summary__stock strong { color: var(--vl-ink); font-weight: 600; }
.woocommerce div.product .stock { color: var(--vl-accent); }
.vl-size-guide-link { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 0; border: 0; background: none; color: var(--vl-ink); font: 500 14px/1.4 var(--vl-body); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }

/* Variations + swatches. */
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 10px; border: 0; }
.woocommerce div.product form.cart .variations tr { display: block; margin-bottom: 16px; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; border: 0; text-align: left; line-height: 1.4; }
.woocommerce div.product form.cart .variations th label { display: block; margin-bottom: 10px; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 20px; font-weight: 400; }
.vl-swatches { position: relative; }
.vl-swatches select, .woocommerce div.product form.cart .vl-swatches select { position: absolute; left: 0; top: 0; width: 1px !important; min-width: 0; height: 1px; min-height: 0; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); opacity: 0; pointer-events: none; }
.vl-swatches.no-js select, .woocommerce div.product form.cart .vl-swatches.no-js select { position: static; width: 100% !important; height: auto; min-height: 56px; padding: 14px 24px; border: 1px solid var(--vl-line); clip-path: none; opacity: 1; pointer-events: auto; }
.vl-swatch-list { display: flex; flex-wrap: wrap; gap: 10px; }
.vl-swatch {
	display: inline-flex; align-items: center; justify-content: center; min-width: 54px; height: 40px; padding: 0 16px; border: 1px solid var(--vl-line); border-radius: 30px;
	background: transparent; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 15px; cursor: pointer; transition: background-color .2s, color .2s;
}
.vl-swatch:hover { border-color: var(--vl-ink); }
.vl-swatch.is-active { background: var(--vl-dark); color: #fff; border-color: var(--vl-dark); }
.vl-swatch.is-disabled { opacity: .35; text-decoration: line-through; }
.vl-swatches[data-type="color"] .vl-swatch { min-width: 0; width: 30px; height: 30px; padding: 0; border-radius: 50%; border: 2px solid var(--vl-bg); box-shadow: 0 0 0 1px var(--vl-hair); background: var(--sw); font-size: 0; }
.vl-swatches[data-type="color"] .vl-swatch.is-active { box-shadow: 0 0 0 2px var(--vl-ink); }
.reset_variations { display: inline-block; margin-left: 10px; color: var(--vl-ink); font-size: 14px; }
.woocommerce-variation-price .price { font-size: 20px !important; }

/* Quantity pill + add to cart + buy now. */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 14px; margin: 10px 0 20px; }
.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 14px; }
.woocommerce .quantity { display: inline-flex; align-items: center; height: 54px; padding: 0 6px; border: 1px solid var(--vl-line); border-radius: 30px; }
.woocommerce div.product form.cart .quantity { margin: 0; }
.woocommerce .quantity .qty { width: 46px; min-height: 0; height: 100%; padding: 0; border: 0; background: transparent; -moz-appearance: textfield; }
.woocommerce .quantity .qty::-webkit-inner-spin-button, .woocommerce .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.vl-qty__btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--vl-ink); cursor: pointer; }
.vl-qty__btn:hover { background: var(--vl-tint); }
.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1; min-width: 200px; height: 54px; border: 1px solid var(--vl-line); background: transparent; color: var(--vl-ink);
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--vl-dark); color: #fff; }
.vl-buy-now { flex-basis: 100%; height: 54px; border: 0; border-radius: 35px; background: var(--vl-dark); color: #fff; font: 500 15px/1 var(--vl-body); cursor: pointer; transition: background-color .3s; }
.vl-buy-now:hover { background: var(--vl-accent); }
.woocommerce-variation-add-to-cart-disabled .vl-buy-now { opacity: .45; pointer-events: none; }
.vl-trust { margin: 6px 0 22px; padding: 0; list-style: none; }
.vl-trust li { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; color: var(--vl-text); }
.vl-trust svg { color: var(--vl-ink); }
.vl-pickup { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; padding-top: 22px; border-top: 1px solid var(--vl-line); }
.vl-pickup__title { margin: 0 0 4px; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 20px; }
.vl-pickup__text { margin: 0; font-size: 14px; }
.vl-pickup a { color: var(--vl-ink); text-decoration: underline; text-underline-offset: 4px; }
.product_meta { margin-top: 20px; color: var(--vl-text); font-size: 14px; }
.product_meta > span { display: block; margin-bottom: 4px; }
.product_meta a { color: var(--vl-ink); }

/* Deal. */
.vl-deal { margin: 4px 0 20px; padding: 20px 22px; border-radius: 14px; background: var(--vl-tint); }
.vl-deal__label { margin: 0 0 12px; color: var(--vl-ink); font-weight: 500; }
.vl-countdown--deal .elementor-countdown-wrapper { display: flex; gap: 10px; }
.vl-countdown--deal .elementor-countdown-item { flex: 1; padding: 10px 6px; border-radius: 10px; background: var(--vl-card); text-align: center; }
.vl-countdown--deal .elementor-countdown-digits { display: block; color: var(--vl-ink); font-family: var(--vl-body); font-size: 24px; font-weight: 600; line-height: 1.2; }
.vl-countdown--deal .elementor-countdown-label { display: block; color: var(--vl-text); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.vl-deal__bar { height: 6px; margin: 16px 0 8px; border-radius: 6px; background: var(--vl-card); overflow: hidden; }
.vl-deal__bar span { display: block; height: 100%; border-radius: 6px; background: var(--vl-accent); }
.vl-deal__counts { margin: 0; font-size: 14px; }

/* Tabs: pill buttons on a line; "toggle" layout shows them as accordions (assets/js/shop.js). */
.woocommerce div.product .woocommerce-tabs { margin-top: 40px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { position: relative; display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 40px; padding: 0; list-style: none; overflow: visible; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; z-index: 0; border: 0; border-top: 1px solid var(--vl-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { position: relative; z-index: 1; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: inline-flex; align-items: center; min-height: 56px; padding: 0 40px; border: 1px solid var(--vl-line); border-radius: 40px; background: var(--vl-bg); color: var(--vl-ink); font: 500 15px/1 var(--vl-body); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a, .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { background: var(--vl-dark); border-color: var(--vl-dark); color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 0; color: var(--vl-text); }
.woocommerce table.shop_attributes { border: 0; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--vl-hair); background: none !important; font-style: normal; }
.woocommerce table.shop_attributes th { width: 220px; color: var(--vl-ink); font-weight: 500; }
.vl-care li { margin-bottom: 10px; }
.vl-product--toggle div.product .woocommerce-tabs ul.tabs { display: none; }
.vl-product--toggle .vl-desc__media { display: none; }
.vl-product--toggle .woocommerce-tabs .panel { display: block !important; border-bottom: 1px solid var(--vl-line); }
.vl-tab-toggle { display: none; }
.vl-product--toggle .vl-tab-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 22px 0; border: 0; border-top: 1px solid var(--vl-line); background: none; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 22px; text-align: left; cursor: pointer; }
.vl-product--toggle .vl-tab-toggle::after { content: "+"; font-family: var(--vl-body); font-size: 24px; transition: transform .3s; }
.vl-product--toggle .vl-tab-toggle[aria-expanded="true"]::after { transform: rotate(45deg); }
.vl-product--toggle .woocommerce-tabs .panel[hidden] { display: none !important; }
.vl-product--toggle .woocommerce-tabs .panel { padding-bottom: 26px; border-bottom: 0; }
.vl-product--toggle .woocommerce div.product .woocommerce-tabs { margin-top: 0; }
.vl-product--toggle div.product > .woocommerce-tabs { grid-column: 2; grid-row: 2; margin-top: -20px; }
.vl-product--toggle .vl-desc { grid-template-columns: 1fr; gap: 24px; }

/* Description columns + reviews. */
.woocommerce-Tabs-panel--description > *:first-child { margin-top: 0; }
.vl-desc { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 60px; align-items: start; }
.vl-desc--plain { display: block; max-width: 900px; }
.vl-desc__text > :first-child { margin-top: 0; }
.vl-desc__text ul, .vl-desc--plain ul { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 30px; margin: 24px 0 0; padding: 0; list-style: none; }
.vl-desc__text li, .vl-desc--plain li { position: relative; padding-left: 28px; }
.vl-desc__text li::before, .vl-desc--plain li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 16px; height: 16px; background: var(--vl-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='m4 12.5 5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='m4 12.5 5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vl-desc__media { margin: 0; overflow: hidden; border-radius: 12px; }
.vl-desc__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; }
.woocommerce-Tabs-panel--description .wp-block-columns { gap: 40px; align-items: center; }
.woocommerce-Tabs-panel--description img { border-radius: 12px; }
#reviews #comments ol.commentlist { padding: 0; }
#reviews #comments ol.commentlist li img.avatar { width: 50px; border-radius: 50%; border: 0; padding: 0; }
#reviews #comments ol.commentlist li .comment-text { margin-left: 70px; border: 0; border-bottom: 1px solid var(--vl-hair); border-radius: 0; padding: 0 0 18px; }

/* Related products. */
.woocommerce div.product .related, .woocommerce div.product .upsells { margin-top: var(--vl-pad); }
.related > h2, .upsells > h2 { margin: 0 0 50px; text-align: center; font-family: var(--vl-display); font-size: var(--vl-h2); font-weight: 400; }
.vl-products-head { margin-bottom: 50px; }
.vl-products-head .vl-eyebrow { margin: 0 0 6px; font-size: 14px; }
.vl-products-head .vl-title { margin: 0; }

/* Sticky add-to-cart bar. */
.vl-sticky-cart {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 85; padding: 14px 0; background: linear-gradient(90deg, var(--vl-tint), var(--vl-bg)); box-shadow: 0 -10px 30px rgba(20, 30, 30, .08);
	transform: translateY(105%); transition: transform .45s var(--vl-ease);
}
.vl-sticky-cart.is-visible { transform: none; }
.vl-sticky-cart__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.vl-sticky-cart__product { display: flex; align-items: center; gap: 16px; min-width: 0; }
.vl-sticky-cart__product img { width: 60px; height: 60px; object-fit: cover; border-radius: 8px; }
.vl-sticky-cart__name { margin: 0 0 4px; color: var(--vl-ink); font-family: "Kalnia", Georgia, serif; font-size: 22px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vl-sticky-cart__end { display: flex; align-items: center; gap: 22px; }
.vl-sticky-cart .price { color: var(--vl-ink); font-weight: 600; }
.vl-sticky-cart.is-visible ~ .vl-totop { bottom: 110px; }
.vl-size-table { width: 100%; margin-top: 16px; border-collapse: collapse; }
.vl-size-table th, .vl-size-table td { padding: 12px; border-bottom: 1px solid var(--vl-hair); text-align: left; }
.vl-size-table th { color: var(--vl-ink); font-weight: 600; }

@media (max-width: 1199px) {
	.woocommerce div.product, .woocommerce-page div.product { gap: 40px; }
}
@media (max-width: 991px) {
	.vl-desc { grid-template-columns: 1fr; gap: 30px; }
	.woocommerce div.product, .woocommerce-page div.product { grid-template-columns: 1fr; }
	.woocommerce div.product > .summary { grid-column: 1; grid-row: auto; position: static; }
	.vl-product--toggle div.product > .woocommerce-tabs { grid-column: 1; grid-row: auto; margin-top: 0; }
	.vl-sticky-cart__product .vl-stars, .vl-sticky-cart .price { display: none; }
}
@media (max-width: 767px) {
	.vl-gallery-grid { gap: 10px; }
	.vl-desc__text ul, .vl-desc--plain ul { grid-template-columns: 1fr; }
	.vl-gallery-grid { gap: 10px; }
	.vl-product--thumbs-right .woocommerce-product-gallery, .vl-product--thumbs-left .woocommerce-product-gallery, :is(.vl-product--deal, .vl-product--toggle) .woocommerce-product-gallery { grid-template-columns: 1fr; }
	.vl-product--thumbs-right .woocommerce-product-gallery .flex-viewport, .vl-product--thumbs-left .woocommerce-product-gallery .flex-viewport, :is(.vl-product--deal, .vl-product--toggle) .woocommerce-product-gallery .flex-viewport { grid-column: 1; }
	.vl-product--thumbs-right .flex-control-thumbs, .vl-product--thumbs-left .flex-control-thumbs, :is(.vl-product--deal, .vl-product--toggle) .flex-control-thumbs { grid-column: 1 !important; grid-row: 2 !important; grid-template-columns: repeat(4, 1fr) !important; margin-top: 12px !important; }
	.woocommerce div.product .woocommerce-tabs ul.tabs { gap: 8px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li a { min-height: 44px; padding: 0 20px; font-size: 14px; }
	.vl-sticky-cart__name { font-size: 17px; }
	.vl-sticky-cart__product img { width: 46px; height: 46px; }
}
