/**
 * WV Color Services — Premium Page Styles
 *
 * Scope: .wv-color-page
 * Palette: verde/oliva #786F46 | marrón #8E6542 | crema #EEE6DC
 * Design: Refined, elegant, editorial luxury with warm tones
 *
 * @package WestVibe_Child
 */

/* ─── Scope wrapper ──────────────────────────────────────────────────────── */
.wv-color-page {
	--wv-clr-olive:    #786F46;
	--wv-clr-olive-dk: #5a5537;
	--wv-clr-brown:     #8E6542;
	--wv-clr-cream:     #EEE6DC;
	--wv-clr-beige:     #D2CDB1;
	--wv-clr-dark:      #1E1E1E;
	--wv-clr-white:     #FFFFFF;
	--wv-clr-gray-50:   #F9F7F4;
	--wv-clr-gray-100:  #F0ECE5;
	--wv-clr-gray-200:  #E2DAD0;
	--wv-clr-gray-300:  #C8BFB2;
	--wv-clr-gray-400:  #9E9282;
	--wv-clr-gray-500:  #7A7068;
	--wv-clr-gray-600:  #5C544A;
	--wv-clr-max-w:     1160px;
	--wv-clr-max-w-txt: 680px;
	--wv-clr-py:        clamp(3rem, 6vw, 5rem);
	--wv-clr-px:        clamp(1.25rem, 5vw, 3rem);
	--wv-clr-gap:       clamp(1.5rem, 3vw, 2.5rem);
	--wv-clr-radius:    16px;
	--wv-clr-radius-sm: 10px;
	--wv-clr-radius-xs: 5px;
	--wv-clr-transition: 0.2s ease;

	font-family: var( --wv-font-body, system-ui, -apple-system, sans-serif );
	font-size: 16px;
	line-height: 1.7;
	color: var( --wv-clr-dark );
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

.wv-color-page *,
.wv-color-page *::before,
.wv-color-page *::after {
	box-sizing: border-box;
}

.wv-color-page img {
	max-width: 100%;
	height: auto;
	display: block;
}

.wv-color-page a {
	color: inherit;
}

.wv-color-page ::selection {
	background: var( --wv-clr-olive );
	color: var( --wv-clr-white );
}

/* ─── Typography ───────────────────────────────────────────────────────────── */
.wv-color-page .wv-color-eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var( --wv-clr-olive );
	margin-bottom: 0.75rem;
}

.wv-color-page .wv-color-h1,
.wv-color-page h1,
.wv-color-page .wv-color-hero__title {
	font-family: var( --wv-font-luxury, 'Playfair Display', Georgia, serif );
	font-size: clamp( 2.25rem, 4vw, 3.5rem );
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	margin: 0 0 1rem;
	color: var( --wv-clr-dark );
}

.wv-color-page .wv-color-h2,
.wv-color-page h2,
.wv-color-page .wv-color-hero__title {
	font-family: var( --wv-font-luxury, 'Playfair Display', Georgia, serif );
	font-size: clamp( 1.5rem, 2.5vw, 2.25rem );
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 0.75rem;
	color: var( --wv-clr-dark );
}

.wv-color-page .wv-color-h3,
.wv-color-page h3,
.wv-color-page .wv-color-service__title {
	font-family: var( --wv-font-luxury, 'Playfair Display', Georgia, serif );
	font-size: clamp( 1.125rem, 1.8vw, 1.5rem );
	font-weight: 600;
	line-height: 1.25;
	margin: 0 0 0.5rem;
	color: var( --wv-clr-dark );
}

.wv-color-page p {
	margin: 0 0 0.875rem;
	font-size: 0.9375rem;
	color: var( --wv-clr-gray-600 );
	line-height: 1.75;
}

.wv-color-page p:last-child {
	margin-bottom: 0;
}

.wv-color-page .wv-color-subtitle {
	font-size: clamp( 0.9375rem, 1.2vw, 1.0625rem );
	color: var( --wv-clr-brown );
	line-height: 1.6;
	font-style: italic;
	font-family: var( --wv-font-luxury, Georgia, serif );
}

.wv-color-page .wv-color-body {
	font-size: 0.875rem;
	color: var( --wv-clr-gray-500 );
	line-height: 1.75;
}

/* ─── SR-only ──────────────────────────────────────────────────────────────── */
.wv-color-page .wv-color-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect( 0, 0, 0, 0 );
	white-space: nowrap;
	border-width: 0;
}

/* ─── Buttons ────────────────────────────────────────────────────────────── */
.wv-color-page .wv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var( --wv-font-body, system-ui, sans-serif );
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.75rem 1.75rem;
	border-radius: var( --wv-clr-radius-xs );
	border: 1.5px solid transparent;
	cursor: pointer;
	transition:
		background var( --wv-clr-transition ),
		color var( --wv-clr-transition ),
		border-color var( --wv-clr-transition ),
		transform 0.15s ease,
		box-shadow 0.2s ease;
	white-space: nowrap;
	user-select: none;
}

.wv-color-page .wv-btn:focus-visible {
	outline: 2px solid var( --wv-clr-olive );
	outline-offset: 3px;
}

.wv-color-page .wv-btn:active {
	transform: translateY( 1px );
}

.wv-color-page .wv-btn--primary {
	background: var( --wv-clr-olive );
	color: var( --wv-clr-white );
	border-color: var( --wv-clr-olive );
}

.wv-color-page .wv-btn--primary:hover {
	background: var( --wv-clr-olive-dk );
	border-color: var( --wv-clr-olive-dk );
	box-shadow: 0 4px 12px rgba( 120, 111, 70, 0.3 );
}

.wv-color-page .wv-btn--secondary {
	background: transparent;
	color: var( --wv-clr-olive );
	border-color: var( --wv-clr-olive );
}

.wv-color-page .wv-btn--secondary:hover {
	background: var( --wv-clr-olive );
	color: var( --wv-clr-white );
}

.wv-color-page .wv-btn--large {
	padding: 0.875rem 2.25rem;
	font-size: 0.75rem;
}

/* ─── HERO ────────────────────────────────────────────────────────────────── */
.wv-color-hero {
	padding: clamp( 3rem, 8vw, 7rem ) var( --wv-clr-px );
	background: var( --wv-clr-cream );
	position: relative;
}

.wv-color-hero__inner {
	max-width: var( --wv-clr-max-w );
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var( --wv-clr-gap );
	align-items: center;
}

.wv-color-hero__content {
	padding-right: clamp( 1rem, 4vw, 3rem );
}

.wv-color-hero__title {
	margin-bottom: 0.5rem;
}

.wv-color-hero__subtitle {
	font-size: clamp( 0.875rem, 1.2vw, 1rem );
	color: var( --wv-clr-brown );
	font-style: italic;
	font-family: var( --wv-font-luxury, Georgia, serif );
	margin-bottom: 1.25rem;
}

.wv-color-hero__description {
	font-size: 0.9375rem;
	color: var( --wv-clr-gray-600 );
	line-height: 1.8;
	margin-bottom: 2rem;
}

.wv-color-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem;
	margin-bottom: 1.5rem;
}

.wv-color-hero__links a {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --wv-clr-olive );
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color var( --wv-clr-transition );
}

.wv-color-hero__links a:hover {
	color: var( --wv-clr-brown );
}

.wv-color-hero__image {
	border-radius: var( --wv-clr-radius );
	overflow: hidden;
	aspect-ratio: 4 / 5;
}

.wv-color-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ─── INTRO ────────────────────────────────────────────────────────────────── */
.wv-color-intro {
	padding: var( --wv-clr-py ) var( --wv-clr-px );
	background: var( --wv-clr-white );
}

.wv-color-intro__inner {
	max-width: var( --wv-clr-max-w );
	margin: 0 auto;
}

.wv-color-intro__header {
	text-align: center;
	margin-bottom: clamp( 2rem, 4vw, 3rem );
}

.wv-color-intro__body {
	max-width: var( --wv-clr-max-w-txt );
	margin: 0 auto clamp( 2rem, 4vw, 3rem );
	text-align: center;
}

.wv-color-intro__faq-wrap {
	max-width: var( --wv-clr-max-w-txt );
	margin: 0 auto clamp( 2rem, 4vw, 3rem );
	display: grid;
	gap: 1rem;
}

.wv-color-intro__faq,
.wv-color-intro__lighter-note,
.wv-color-service__accordion-html {
	background: var( --wv-clr-gray-50 );
	border: 1px solid var( --wv-clr-gray-200 );
	border-radius: var( --wv-clr-radius );
	padding: 1rem 1.125rem;
	text-align: left;
}

.wv-color-intro__faq .wv-color-accordion,
.wv-color-intro__lighter-note .wv-color-accordion,
.wv-color-service__accordion-html .wv-color-accordion {
	border: 0;
	border-radius: 0;
	margin-top: 0;
}

.wv-color-intro__faq .wv-color-accordion-item,
.wv-color-intro__lighter-note .wv-color-accordion-item,
.wv-color-service__accordion-html .wv-color-accordion-item {
	border-bottom: 1px solid var( --wv-clr-gray-200 );
}

.wv-color-intro__faq .wv-color-accordion-item:last-child,
.wv-color-intro__lighter-note .wv-color-accordion-item:last-child,
.wv-color-service__accordion-html .wv-color-accordion-item:last-child {
	border-bottom: none;
}

.wv-color-intro__image {
	max-width: 360px;
	margin: 0 auto clamp( 1.5rem, 3vw, 2rem );
	border-radius: var( --wv-clr-radius );
	overflow: hidden;
	box-shadow: 0 16px 36px rgba( 0, 0, 0, 0.12 );
}

.wv-color-intro__image img {
	width: 100%;
	height: auto;
	display: block;
}

.wv-color-intro__text {
	margin-bottom: 1rem;
}

.wv-color-intro__languages {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.8125rem;
	color: var( --wv-clr-olive );
	font-weight: 600;
	letter-spacing: 0.02em;
}

.wv-color-intro__cards {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: var( --wv-clr-gap );
}

.wv-color-card {
	background: var( --wv-clr-gray-50 );
	border: 1px solid var( --wv-clr-gray-200 );
	border-radius: var( --wv-clr-radius );
	padding: clamp( 1.5rem, 3vw, 2rem );
}

.wv-color-card__icon {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var( --wv-clr-olive );
	color: var( --wv-clr-white );
	border-radius: 50%;
	margin-bottom: 1rem;
}

.wv-color-card__title {
	font-family: var( --wv-font-luxury, Georgia, serif );
	font-size: 1rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: var( --wv-clr-dark );
}

.wv-color-card__text {
	font-size: 0.875rem;
	color: var( --wv-clr-gray-500 );
	line-height: 1.7;
	margin: 0;
}

/* ─── STICKY NAV ──────────────────────────────────────────────────────────── */
.wv-color-nav {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var( --wv-clr-dark );
	padding: 0 var( --wv-clr-px );
	transition: box-shadow 0.2s ease;
}

.wv-color-nav.is-stuck {
	box-shadow: 0 2px 16px rgba( 0, 0, 0, 0.15 );
}

.wv-color-nav__inner {
	max-width: var( --wv-clr-max-w );
	margin: 0 auto;
	display: flex;
	align-items: center;
	overflow-x: auto;
	scrollbar-width: none;
	gap: 0;
	-webkit-overflow-scrolling: touch;
}

.wv-color-nav__inner::-webkit-scrollbar {
	display: none;
}

.wv-color-nav__link {
	flex-shrink: 0;
	display: inline-block;
	padding: 0.875rem 1rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba( 255, 255, 255, 0.65 );
	text-decoration: none;
	transition: color var( --wv-clr-transition );
	border-bottom: 2px solid transparent;
}

.wv-color-nav__link:hover,
.wv-color-nav__link.is-active {
	color: var( --wv-clr-cream );
	border-bottom-color: var( --wv-clr-olive );
}

/* ─── SERVICES ─────────────────────────────────────────────────────────────── */
.wv-color-services {
	padding: var( --wv-clr-py ) var( --wv-clr-px );
	background: var( --wv-clr-gray-50 );
}

.wv-color-services__inner {
	max-width: var( --wv-clr-max-w );
	margin: 0 auto;
}

.wv-color-service {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var( --wv-clr-gap );
	align-items: center;
	padding: clamp( 2.5rem, 5vw, 4rem ) 0;
	border-bottom: 1px solid var( --wv-clr-gray-200 );
}

.wv-color-service:first-child {
	padding-top: 0;
}

.wv-color-service[data-image-pos="left"] .wv-color-service__content {
	order: 2;
}

.wv-color-service[data-image-pos="left"] .wv-color-service__image {
	order: 1;
}

.wv-color-service__content {
	padding-right: clamp( 0.5rem, 3vw, 2rem );
}

.wv-color-service__label {
	display: inline-block;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var( --wv-clr-brown );
	background: rgba( 142, 101, 66, 0.1 );
	padding: 0.25rem 0.625rem;
	border-radius: var( --wv-clr-radius-xs );
	margin-bottom: 0.75rem;
}

.wv-color-service__title {
	margin-bottom: 0.25rem;
}

.wv-color-service__subtitle {
	font-size: 0.8125rem;
	color: var( --wv-clr-gray-500 );
	font-style: italic;
	font-family: var( --wv-font-luxury, Georgia, serif );
	margin-bottom: 0.75rem;
}

.wv-color-service__price {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var( --wv-clr-olive );
	letter-spacing: 0.01em;
	margin-bottom: 1rem;
}

.wv-color-service__description {
	font-size: 0.9375rem;
	color: var( --wv-clr-gray-600 );
	line-height: 1.75;
	margin-bottom: 1.25rem;
}

.wv-color-service__accordion-html {
	margin-top: 1.25rem;
}

.wv-color-service__accordion-html h4,
.wv-color-intro__faq h4,
.wv-color-intro__lighter-note h4 {
	font-family: var( --wv-font-luxury, Georgia, serif );
	font-size: 1rem;
	margin: 0 0 0.5rem;
	color: var( --wv-clr-dark );
}

.wv-color-service__accordion-html p,
.wv-color-service__accordion-html li,
.wv-color-intro__faq p,
.wv-color-intro__faq li,
.wv-color-intro__lighter-note p,
.wv-color-intro__lighter-note li {
	color: var( --wv-clr-gray-600 );
}

.wv-color-service__accordion-html ul,
.wv-color-service__accordion-html ol,
.wv-color-intro__faq ul,
.wv-color-intro__faq ol,
.wv-color-intro__lighter-note ul,
.wv-color-intro__lighter-note ol {
	margin: 0 0 1rem 1.25rem;
	padding: 0;
}

.wv-color-table-wrap {
	overflow-x: auto;
	margin-top: 1.25rem;
}

.wv-color-table {
	width: 100%;
	border-collapse: collapse;
	background: var( --wv-clr-white );
	border: 1px solid var( --wv-clr-gray-200 );
	border-radius: var( --wv-clr-radius-sm );
	overflow: hidden;
}

.wv-color-table th,
.wv-color-table td {
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var( --wv-clr-gray-200 );
	text-align: left;
	vertical-align: top;
	font-size: 0.875rem;
}

.wv-color-table th {
	background: var( --wv-clr-gray-100 );
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --wv-clr-gray-500 );
}

.wv-color-table tr:last-child td {
	border-bottom: none;
}

.wv-color-service__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}

.wv-color-service__image {
	border-radius: var( --wv-clr-radius );
	overflow: hidden;
	aspect-ratio: 4 / 5;
}

.wv-color-service__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ─── ACCORDION ───────────────────────────────────────────────────────────── */
.wv-color-accordion {
	margin-top: 1.25rem;
	border: 1px solid var( --wv-clr-gray-200 );
	border-radius: var( --wv-clr-radius-sm );
	overflow: hidden;
}

.wv-color-accordion-item {
	border-bottom: 1px solid var( --wv-clr-gray-200 );
}

.wv-color-accordion-item:last-child {
	border-bottom: none;
}

.wv-color-accordion-trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.875rem 1.125rem;
	background: var( --wv-clr-white );
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var( --wv-clr-dark );
	text-align: left;
	cursor: pointer;
	transition: background var( --wv-clr-transition );
}

.wv-color-accordion-trigger:hover {
	background: var( --wv-clr-gray-50 );
}

.wv-color-accordion-trigger[aria-expanded="true"] {
	background: var( --wv-clr-gray-50 );
}

.wv-color-accordion-icon {
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	position: relative;
}

.wv-color-accordion-icon::before,
.wv-color-accordion-icon::after {
	content: '';
	position: absolute;
	background: var( --wv-clr-olive );
	transition: transform 0.2s ease;
}

.wv-color-accordion-icon::before {
	width: 100%;
	height: 1.5px;
	top: 50%;
	left: 0;
	transform: translateY( -50% );
}

.wv-color-accordion-icon::after {
	width: 1.5px;
	height: 100%;
	left: 50%;
	top: 0;
	transform: translateX( -50% );
}

.wv-color-accordion-trigger[aria-expanded="true"] .wv-color-accordion-icon::after {
	transform: translateX( -50% ) rotate( 90deg );
}

.wv-color-accordion-content {
	display: none;
}

.wv-color-accordion-content.is-open {
	display: block;
}

.wv-color-accordion-content-inner {
	padding: 0.875rem 1.125rem 1rem;
	font-size: 0.875rem;
	color: var( --wv-clr-gray-600 );
	line-height: 1.75;
}

/* ─── STYLES GRID (table items) ────────────────────────────────────────────── */
.wv-color-styles-grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 160px, 1fr ) );
	gap: 0.75rem;
	margin-top: 1.25rem;
	padding: 1.25rem;
	background: var( --wv-clr-gray-50 );
	border: 1px solid var( --wv-clr-gray-200 );
	border-radius: var( --wv-clr-radius-sm );
}

.wv-color-styles-grid__cell {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.wv-color-styles-grid__label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --wv-clr-gray-400 );
}

.wv-color-styles-grid__value {
	font-size: 0.875rem;
	font-weight: 600;
	color: var( --wv-clr-dark );
}

/* ─── GALLERY ─────────────────────────────────────────────────────────────── */
.wv-color-gallery {
	margin: clamp( 1.5rem, 3vw, 2.5rem ) 0;
}

.wv-color-gallery__title {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var( --wv-clr-gray-400 );
	margin-bottom: 0.875rem;
	text-align: center;
}

.wv-color-gallery__scroll {
	display: flex;
	gap: 0.75rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: var( --wv-clr-gray-300 ) transparent;
	padding-bottom: 0.5rem;
	-webkit-overflow-scrolling: touch;
}

.wv-color-gallery__scroll::-webkit-scrollbar {
	height: 4px;
}

.wv-color-gallery__scroll::-webkit-scrollbar-track {
	background: transparent;
}

.wv-color-gallery__scroll::-webkit-scrollbar-thumb {
	background: var( --wv-clr-gray-300 );
	border-radius: 2px;
}

.wv-color-gallery__item {
	flex-shrink: 0;
	width: clamp( 120px, 20vw, 180px );
	aspect-ratio: 3 / 4;
	border-radius: var( --wv-clr-radius-sm );
	overflow: hidden;
	scroll-snap-align: start;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.wv-color-gallery__item:hover {
	transform: scale( 1.03 );
	box-shadow: 0 4px 16px rgba( 0, 0, 0, 0.12 );
}

.wv-color-gallery__link {
	display: block;
	width: 100%;
	height: 100%;
	text-decoration: none;
}

.wv-color-gallery__link:focus-visible {
	outline: 2px solid var( --wv-clr-olive );
	outline-offset: -2px;
}

.wv-color-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fancybox__container {
	z-index: 999999 !important;
}

.wv-color-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba( 0, 0, 0, 0.86 );
	padding: 32px;
}

.wv-color-lightbox.is-open {
	display: flex;
}

.wv-color-lightbox img {
	max-width: min( 1100px, 92vw );
	max-height: 86vh;
	object-fit: contain;
	display: block;
}

.wv-color-lightbox__close {
	position: absolute;
	top: 24px;
	right: 24px;
	background: transparent;
	border: 1px solid rgba( 255, 255, 255, 0.5 );
	color: #fff;
	border-radius: 999px;
	width: 44px;
	height: 44px;
	cursor: pointer;
	font-size: 24px;
	line-height: 1;
}

/* ─── POLICIES ─────────────────────────────────────────────────────────────── */
.wv-color-policies {
	padding: var( --wv-clr-py ) var( --wv-clr-px );
	background: var( --wv-clr-dark );
}

.wv-color-policies__inner {
	max-width: var( --wv-clr-max-w );
	margin: 0 auto;
}

.wv-color-policies__header {
	text-align: center;
	margin-bottom: clamp( 2rem, 4vw, 3rem );
}

.wv-color-policies .wv-color-eyebrow {
	color: var( --wv-clr-beige );
}

.wv-color-policies .wv-color-h2 {
	color: var( --wv-clr-cream );
}

.wv-color-policies__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 280px, 1fr ) );
	gap: var( --wv-clr-gap );
}

.wv-color-policy-card {
	background: rgba( 255, 255, 255, 0.05 );
	border: 1px solid rgba( 255, 255, 255, 0.1 );
	border-radius: var( --wv-clr-radius );
	padding: clamp( 1.5rem, 3vw, 2rem );
}

.wv-color-policy-card__title {
	font-family: var( --wv-font-luxury, Georgia, serif );
	font-size: 1rem;
	font-weight: 600;
	color: var( --wv-clr-cream );
	margin-bottom: 0.75rem;
}

.wv-color-policy-card__content {
	font-size: 0.875rem;
	color: rgba( 238, 230, 220, 0.7 );
	line-height: 1.75;
}

.wv-color-policy-card__content p {
	color: rgba( 238, 230, 220, 0.7 );
	margin-bottom: 0.5rem;
}

/* ─── REVIEWS ─────────────────────────────────────────────────────────────── */
.wv-color-reviews {
	padding: var( --wv-clr-py ) var( --wv-clr-px );
	background: var( --wv-clr-cream );
}

.wv-color-reviews__inner {
	max-width: var( --wv-clr-max-w );
	margin: 0 auto;
}

.wv-color-reviews__header {
	text-align: center;
	margin-bottom: clamp( 2rem, 4vw, 3rem );
}

.wv-color-reviews__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 260px, 1fr ) );
	gap: var( --wv-clr-gap );
}

.wv-color-review-card {
	background: var( --wv-clr-white );
	border: 1px solid var( --wv-clr-gray-200 );
	border-radius: var( --wv-clr-radius );
	padding: clamp( 1.5rem, 3vw, 2rem );
	position: relative;
}

.wv-color-review-card__quote {
	font-family: var( --wv-font-luxury, Georgia, serif );
	font-size: 4rem;
	line-height: 1;
	color: var( --wv-clr-beige );
	position: absolute;
	top: 1rem;
	left: 1.25rem;
}

.wv-color-review-card__text {
	font-size: 0.9375rem;
	color: var( --wv-clr-gray-600 );
	line-height: 1.75;
	font-style: italic;
	margin-bottom: 1rem;
	padding-top: 2rem;
}

.wv-color-review-card__text p {
	color: var( --wv-clr-gray-600 );
}

.wv-color-review-card__author {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --wv-clr-olive );
}

/* ─── BOTTOM CTA ──────────────────────────────────────────────────────────── */
.wv-color-cta {
	padding: var( --wv-clr-py ) var( --wv-clr-px );
	background: var( --wv-clr-gray-100 );
	position: relative;
	overflow: hidden;
	text-align: center;
}

.wv-color-cta__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.wv-color-cta__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.15;
}

.wv-color-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 640px;
	margin: 0 auto;
}

.wv-color-cta__title {
	font-family: var( --wv-font-luxury, Georgia, serif );
	font-size: clamp( 1.5rem, 3vw, 2.5rem );
	font-weight: 600;
	color: var( --wv-clr-dark );
	margin-bottom: 0.75rem;
}

.wv-color-cta__subtitle {
	font-size: clamp( 0.875rem, 1.2vw, 1rem );
	color: var( --wv-clr-gray-600 );
	margin-bottom: 2rem;
	line-height: 1.7;
}

/* ─── CONSULTATION ───────────────────────────────────────────────────────── */
.wv-color-consultation {
	padding: var( --wv-clr-py ) var( --wv-clr-px );
	background: var( --wv-clr-white );
}

.wv-color-consultation__inner {
	max-width: var( --wv-clr-max-w );
	margin: 0 auto;
	padding: clamp( 1.5rem, 4vw, 2.5rem );
	background: linear-gradient( 180deg, var( --wv-clr-gray-50 ), #fff );
	border: 1px solid var( --wv-clr-gray-200 );
	border-radius: var( --wv-clr-radius );
	box-shadow: 0 12px 34px rgba( 0, 0, 0, 0.06 );
}

.wv-color-consultation__header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.wv-color-consultation__body {
	max-width: 760px;
	margin: 0 auto;
}

.wv-color-consultation__fallback {
	display: grid;
	gap: 1rem;
	justify-items: center;
	text-align: center;
}

/* ─── Reveal Animation ─────────────────────────────────────────────────────── */
.wv-color-reveal {
	opacity: 0;
	transform: translateY( 20px );
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.wv-color-reveal.is-visible {
	opacity: 1;
	transform: translateY( 0 );
}

/* ─── Responsive ───────────────────────────────────────────────────────────── */
@media ( max-width: 900px ) {
	.wv-color-hero__inner {
		grid-template-columns: 1fr;
	}

	.wv-color-hero__image {
		order: -1;
		aspect-ratio: 16 / 9;
	}

	.wv-color-hero__content {
		padding-right: 0;
		text-align: center;
	}

	.wv-color-hero__ctas {
		justify-content: center;
	}

	.wv-color-hero__links {
		justify-content: center;
		display: flex;
	}

	.wv-color-service {
		grid-template-columns: 1fr;
	}

	.wv-color-service[data-image-pos="left"] .wv-color-service__content {
		order: 1;
	}

	.wv-color-service[data-image-pos="left"] .wv-color-service__image {
		order: 2;
	}

	.wv-color-service__content {
		padding-right: 0;
		text-align: center;
	}

	.wv-color-service__ctas {
		justify-content: center;
	}

	.wv-color-intro__cards {
		grid-template-columns: 1fr;
	}

	.wv-color-policies__grid {
		grid-template-columns: 1fr;
	}

	.wv-color-reviews__grid {
		grid-template-columns: 1fr;
	}
}

@media ( max-width: 600px ) {
	.wv-color-nav__link {
		padding: 0.75rem 0.75rem;
		font-size: 0.625rem;
	}

	.wv-color-styles-grid {
		grid-template-columns: 1fr 1fr;
	}
}