/*
 * Dinner Cruise VIP — Design System
 * Royal / Luxury / Premium Dubai yacht-and-fine-dining aesthetic.
 * Gold is used as an ACCENT only — the background stays navy/ivory.
 * ------------------------------------------------------------------
 */

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root {
	/* Brand palette */
	--dcv-midnight-navy:  #071525;
	--dcv-deep-navy:      #0D2238;
	--dcv-royal-gold:     #C9A24B;
	--dcv-champagne-gold: #E5C875;
	--dcv-warm-ivory:     #F7F2E8;
	--dcv-charcoal:       #171717;
	--dcv-deep-burgundy:  #4A1724;
	--dcv-white:          #FFFFFF;

	/* Semantic roles */
	--dcv-bg:             var(--dcv-warm-ivory);
	--dcv-bg-dark:        var(--dcv-midnight-navy);
	--dcv-bg-dark-2:      var(--dcv-deep-navy);
	--dcv-text:           var(--dcv-charcoal);
	--dcv-text-inverse:   var(--dcv-warm-ivory);
	--dcv-text-muted:     rgba(23, 23, 23, 0.65);
	--dcv-text-muted-inverse: rgba(247, 242, 232, 0.72);
	--dcv-accent:         var(--dcv-royal-gold);
	--dcv-accent-light:   var(--dcv-champagne-gold);
	--dcv-accent-alt:     var(--dcv-deep-burgundy);
	--dcv-border:         rgba(201, 162, 75, 0.28);
	--dcv-border-light:   rgba(23, 23, 23, 0.10);
	--dcv-success:        #3E7A5C;
	--dcv-danger:         #A8382B;

	/* Typography */
	--dcv-font-heading: 'Playfair Display', 'Georgia', serif;
	--dcv-font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	--dcv-fs-xs:   0.8125rem;
	--dcv-fs-sm:   0.9375rem;
	--dcv-fs-base: 1rem;
	--dcv-fs-md:   1.125rem;
	--dcv-fs-lg:   1.375rem;
	--dcv-fs-xl:   1.75rem;
	--dcv-fs-2xl:  2.25rem;
	--dcv-fs-3xl:  3rem;
	--dcv-fs-4xl:  3.75rem;

	--dcv-lh-tight: 1.15;
	--dcv-lh-snug:  1.35;
	--dcv-lh-body:  1.65;

	/* Spacing scale (8px base) */
	--dcv-space-1: 0.5rem;
	--dcv-space-2: 1rem;
	--dcv-space-3: 1.5rem;
	--dcv-space-4: 2rem;
	--dcv-space-5: 3rem;
	--dcv-space-6: 4rem;
	--dcv-space-7: 6rem;
	--dcv-space-8: 8rem;

	/* Radius / shadow / motion */
	--dcv-radius-sm: 4px;
	--dcv-radius-md: 10px;
	--dcv-radius-lg: 20px;
	--dcv-radius-pill: 999px;

	--dcv-shadow-sm: 0 2px 10px rgba(7, 21, 37, 0.08);
	--dcv-shadow-md: 0 8px 30px rgba(7, 21, 37, 0.14);
	--dcv-shadow-lg: 0 20px 60px rgba(7, 21, 37, 0.28);
	--dcv-shadow-gold: 0 0 0 1px rgba(201, 162, 75, 0.4), 0 8px 24px rgba(201, 162, 75, 0.18);

	--dcv-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--dcv-transition: 220ms var(--dcv-ease);

	--dcv-container: 1240px;
	--dcv-container-narrow: 860px;
	--dcv-gutter: 1.25rem;

	--dcv-header-h: 84px;
}

@media (min-width: 782px) {
	:root {
		--dcv-fs-2xl: 2.75rem;
		--dcv-fs-3xl: 3.75rem;
		--dcv-fs-4xl: 4.75rem;
		--dcv-gutter: 2rem;
	}
}

/* ============================================================
   2. RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

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

body {
	margin: 0;
	background: var(--dcv-bg);
	color: var(--dcv-text);
	font-family: var(--dcv-font-body);
	font-size: var(--dcv-fs-base);
	line-height: var(--dcv-lh-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

img, video, svg { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font-family: inherit; font-size: inherit; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--dcv-font-heading);
	color: var(--dcv-midnight-navy);
	line-height: var(--dcv-lh-tight);
	font-weight: 700;
	margin: 0 0 0.5em;
}
h1 { font-size: var(--dcv-fs-4xl); }
h2 { font-size: var(--dcv-fs-3xl); }
h3 { font-size: var(--dcv-fs-2xl); }
h4 { font-size: var(--dcv-fs-xl); }
p  { margin: 0 0 1em; }

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

/* Focus visibility — required for WCAG 2.2 AA. Never remove outline
   without a replacement indicator. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--dcv-royal-gold);
	outline-offset: 2px;
	border-radius: var(--dcv-radius-sm);
}

.dcv-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--dcv-midnight-navy);
	color: var(--dcv-warm-ivory);
	padding: 0.75em 1.25em;
	z-index: 10000;
	border-radius: 0 0 var(--dcv-radius-md) 0;
}
.dcv-skip-link:focus { left: 0; }

.dcv-container {
	max-width: var(--dcv-container);
	margin-inline: auto;
	padding-inline: var(--dcv-gutter);
}
.dcv-container--narrow { max-width: var(--dcv-container-narrow); }

.dcv-section { padding-block: var(--dcv-space-6); }
.dcv-section--tight { padding-block: var(--dcv-space-4); }
.dcv-section--dark {
	background: var(--dcv-midnight-navy);
	color: var(--dcv-text-inverse);
}
.dcv-section--dark h1, .dcv-section--dark h2, .dcv-section--dark h3, .dcv-section--dark h4 {
	color: var(--dcv-warm-ivory);
}
.dcv-section--ivory { background: var(--dcv-warm-ivory); }
.dcv-section--navy-2 { background: var(--dcv-deep-navy); color: var(--dcv-text-inverse); }

.dcv-eyebrow {
	display: inline-block;
	font-family: var(--dcv-font-body);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: var(--dcv-fs-xs);
	color: var(--dcv-royal-gold);
	margin-bottom: var(--dcv-space-1);
}

.dcv-section-head {
	max-width: 720px;
	margin: 0 0 var(--dcv-space-4);
}
.dcv-section-head--center { margin-inline: auto; text-align: center; }

.dcv-rule-gold {
	width: 64px;
	height: 2px;
	background: linear-gradient(90deg, var(--dcv-royal-gold), var(--dcv-champagne-gold));
	border: 0;
	margin: var(--dcv-space-2) 0;
}
.dcv-section-head--center .dcv-rule-gold { margin-inline: auto; }

.dcv-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* ============================================================
   3. BUTTONS
   ============================================================ */
.dcv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	padding: 0.85em 1.75em;
	border-radius: var(--dcv-radius-pill);
	font-weight: 600;
	font-size: var(--dcv-fs-sm);
	letter-spacing: 0.02em;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform var(--dcv-transition), box-shadow var(--dcv-transition), background var(--dcv-transition), color var(--dcv-transition), border-color var(--dcv-transition);
	white-space: nowrap;
}
.dcv-btn svg { width: 1.1em; height: 1.1em; flex-shrink: 0; }

.dcv-btn--primary {
	background: linear-gradient(135deg, var(--dcv-royal-gold), var(--dcv-champagne-gold));
	color: var(--dcv-midnight-navy);
	box-shadow: var(--dcv-shadow-gold);
}
.dcv-btn--primary:hover { transform: translateY(-2px); box-shadow: var(--dcv-shadow-lg); }

.dcv-btn--whatsapp {
	background: #25D366;
	color: #06210F;
}
.dcv-btn--whatsapp:hover { transform: translateY(-2px); box-shadow: var(--dcv-shadow-md); }

.dcv-btn--outline {
	background: transparent;
	color: var(--dcv-warm-ivory);
	border-color: rgba(247, 242, 232, 0.5);
}
.dcv-btn--outline:hover { border-color: var(--dcv-royal-gold); color: var(--dcv-royal-gold); }

.dcv-btn--outline-dark {
	background: transparent;
	color: var(--dcv-midnight-navy);
	border-color: rgba(7, 21, 37, 0.3);
}
.dcv-btn--outline-dark:hover { border-color: var(--dcv-royal-gold); color: var(--dcv-deep-navy); }

.dcv-btn--sm { padding: 0.6em 1.25em; font-size: var(--dcv-fs-xs); }
.dcv-btn--block { width: 100%; }
.dcv-btn[disabled] { opacity: 0.55; cursor: not-allowed; transform: none !important; }

.dcv-btn--link {
	background: none;
	border: none;
	padding: 0;
	color: var(--dcv-royal-gold);
	font-weight: 600;
	border-radius: 0;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ============================================================
   4. HEADER / NAV
   ============================================================ */
.dcv-header {
	position: sticky;
	top: 0;
	inset-inline: 0;
	z-index: 999;
	height: var(--dcv-header-h);
	display: flex;
	align-items: center;
	background: transparent;
	transition: background var(--dcv-transition), box-shadow var(--dcv-transition), backdrop-filter var(--dcv-transition), height var(--dcv-transition);
}
.dcv-header--home { background: linear-gradient(to bottom, rgba(7,21,37,0.65), transparent); }
.dcv-header.is-scrolled,
.dcv-header:not(.dcv-header--home) {
	background: rgba(7, 21, 37, 0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 1px 0 rgba(201, 162, 75, 0.25), var(--dcv-shadow-md);
	height: 68px;
}

.dcv-header__inner {
	width: 100%;
	max-width: var(--dcv-container);
	margin-inline: auto;
	padding-inline: var(--dcv-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dcv-space-3);
}

.dcv-logo { display: flex; align-items: center; gap: 0.6em; color: var(--dcv-warm-ivory); }
.dcv-logo img { max-height: 44px; width: auto; }
.dcv-logo__text { font-family: var(--dcv-font-heading); font-size: var(--dcv-fs-lg); font-weight: 700; letter-spacing: 0.02em; }
.dcv-logo__text span { color: var(--dcv-royal-gold); }

.dcv-nav-primary { display: none; }
@media (min-width: 1024px) {
	.dcv-nav-primary { display: block; }
}
.dcv-nav-primary ul { list-style: none; display: flex; align-items: center; gap: var(--dcv-space-3); margin: 0; padding: 0; }
.dcv-menu-item { position: relative; }
.dcv-menu-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	color: var(--dcv-text-muted-inverse);
	font-weight: 500;
	font-size: var(--dcv-fs-sm);
	padding: 0.5em 0.1em;
	position: relative;
}
.dcv-menu-link:hover, .dcv-menu-link[aria-current="page"] { color: var(--dcv-warm-ivory); }
.dcv-menu-link::after {
	content: '';
	position: absolute;
	left: 0; right: 100%;
	bottom: -2px;
	height: 2px;
	background: var(--dcv-royal-gold);
	transition: right var(--dcv-transition);
}
.dcv-menu-link:hover::after, .dcv-menu-link[aria-current="page"]::after { right: 0; }
.dcv-menu-caret { width: 0.5em; height: 0.5em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin-top: -0.3em; }
.dcv-submenu {
	list-style: none; margin: 0; padding: 0.5em 0;
	position: absolute; top: 100%; left: 0; min-width: 220px;
	background: var(--dcv-deep-navy);
	border: 1px solid var(--dcv-border);
	border-radius: var(--dcv-radius-md);
	box-shadow: var(--dcv-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity var(--dcv-transition), transform var(--dcv-transition), visibility var(--dcv-transition);
}
.dcv-menu-item--parent:hover .dcv-submenu,
.dcv-menu-item--parent:focus-within .dcv-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.dcv-submenu .dcv-menu-link { display: block; padding: 0.6em 1em; }
.dcv-submenu .dcv-menu-link::after { display: none; }

.dcv-header__actions { display: flex; align-items: center; gap: 0.75em; }
.dcv-header__actions .dcv-btn { display: none; }
@media (min-width: 640px) {
	.dcv-header__actions .dcv-btn { display: inline-flex; }
}

.dcv-hamburger {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px; height: 44px;
	background: transparent;
	border: 1px solid rgba(247,242,232,0.3);
	border-radius: var(--dcv-radius-sm);
	cursor: pointer;
}
@media (min-width: 1024px) { .dcv-hamburger { display: none; } }
.dcv-hamburger span { display: block; height: 2px; width: 20px; margin-inline: auto; background: var(--dcv-warm-ivory); transition: transform var(--dcv-transition), opacity var(--dcv-transition); }
.dcv-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.dcv-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.dcv-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.dcv-mobile-menu {
	position: fixed; inset: var(--dcv-header-h) 0 0 0;
	background: var(--dcv-midnight-navy);
	padding: var(--dcv-space-3) var(--dcv-gutter);
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform var(--dcv-transition);
	z-index: 998;
}
.dcv-mobile-menu.is-open { transform: translateX(0); }
.dcv-mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.dcv-mobile-menu .dcv-menu-link { display: block; padding: 0.9em 0; font-size: var(--dcv-fs-md); border-bottom: 1px solid rgba(247,242,232,0.08); }
.dcv-mobile-menu .dcv-submenu { position: static; opacity: 1; visibility: visible; transform: none; background: transparent; border: none; box-shadow: none; padding-left: 1em; }
.dcv-mobile-menu__actions { display: flex; flex-direction: column; gap: 0.75em; margin-top: var(--dcv-space-3); }
@media (min-width: 1024px) { .dcv-mobile-menu { display: none; } }

.dcv-sticky-mobile-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
	display: flex; gap: 0.6em;
	padding: 0.6em var(--dcv-gutter);
	background: rgba(7,21,37,0.96);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--dcv-border);
}
@media (min-width: 640px) { .dcv-sticky-mobile-bar { display: none; } }
.dcv-sticky-mobile-bar .dcv-btn { flex: 1; }

/* ============================================================
   5. HERO
   ============================================================ */
.dcv-hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	align-items: center;
	color: var(--dcv-warm-ivory);
	background-color: var(--dcv-midnight-navy);
	overflow: hidden;
}
.dcv-hero__media { position: absolute; inset: 0; z-index: 0; }
.dcv-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.dcv-hero__overlay {
	position: absolute; inset: 0; z-index: 1;
	background:
		linear-gradient(180deg, rgba(7,21,37,0.55) 0%, rgba(7,21,37,0.35) 40%, rgba(7,21,37,0.85) 100%),
		linear-gradient(90deg, rgba(7,21,37,0.75) 0%, rgba(7,21,37,0.15) 60%);
}
.dcv-hero__content { position: relative; z-index: 2; max-width: 760px; padding-block: calc(var(--dcv-header-h) + var(--dcv-space-4)) var(--dcv-space-6); }
.dcv-hero__eyebrow { color: var(--dcv-champagne-gold); }
.dcv-hero h1 { color: var(--dcv-warm-ivory); font-size: var(--dcv-fs-4xl); margin-bottom: 0.35em; }
.dcv-hero__sub { font-size: var(--dcv-fs-md); color: var(--dcv-text-muted-inverse); max-width: 600px; margin-bottom: var(--dcv-space-3); }
.dcv-hero__ctas { display: flex; flex-wrap: wrap; gap: 1em; margin-bottom: var(--dcv-space-4); }
.dcv-hero__trust { display: flex; flex-wrap: wrap; gap: 1.5em; font-size: var(--dcv-fs-xs); color: var(--dcv-text-muted-inverse); }
.dcv-hero__trust strong { color: var(--dcv-champagne-gold); font-family: var(--dcv-font-heading); font-size: var(--dcv-fs-md); display: block; }
.dcv-hero__scroll {
	position: absolute; bottom: var(--dcv-space-3); left: 50%; transform: translateX(-50%);
	z-index: 2; width: 26px; height: 42px; border: 2px solid rgba(247,242,232,0.5); border-radius: 20px;
}
.dcv-hero__scroll::before {
	content: ''; position: absolute; top: 6px; left: 50%; width: 4px; height: 8px; margin-left: -2px;
	background: var(--dcv-royal-gold); border-radius: 2px; animation: dcv-scroll-dot 1.8s infinite;
}
@keyframes dcv-scroll-dot { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(14px); } }

/* ============================================================
   6. CARDS / BADGES
   ============================================================ */
.dcv-grid { display: grid; gap: var(--dcv-space-3); grid-template-columns: 1fr; }
@media (min-width: 640px) { .dcv-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) {
	.dcv-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.dcv-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

.dcv-card {
	position: relative;
	background: var(--dcv-white);
	border-radius: var(--dcv-radius-lg);
	overflow: hidden;
	box-shadow: var(--dcv-shadow-sm);
	border: 1px solid var(--dcv-border-light);
	transition: transform var(--dcv-transition), box-shadow var(--dcv-transition), border-color var(--dcv-transition);
	display: flex;
	flex-direction: column;
	height: 100%;
}
.dcv-card:hover { transform: translateY(-6px); box-shadow: var(--dcv-shadow-lg); border-color: var(--dcv-border); }

.dcv-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--dcv-deep-navy); }
.dcv-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--dcv-ease); }
.dcv-card:hover .dcv-card__media img { transform: scale(1.06); }

.dcv-card__badges { position: absolute; top: 0.75em; left: 0.75em; display: flex; flex-wrap: wrap; gap: 0.4em; z-index: 2; }
.dcv-badge {
	display: inline-flex; align-items: center;
	font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
	padding: 0.35em 0.75em; border-radius: var(--dcv-radius-pill);
	background: var(--dcv-midnight-navy); color: var(--dcv-champagne-gold);
	border: 1px solid rgba(201,162,75,0.5);
}
.dcv-badge--gold { background: linear-gradient(135deg, var(--dcv-royal-gold), var(--dcv-champagne-gold)); color: var(--dcv-midnight-navy); border-color: transparent; }
.dcv-badge--burgundy { background: var(--dcv-deep-burgundy); color: var(--dcv-warm-ivory); border-color: rgba(229,200,117,0.3); }

.dcv-card__price-tag {
	position: absolute; top: 0.75em; right: 0.75em; z-index: 2;
	background: rgba(7,21,37,0.85); color: var(--dcv-champagne-gold);
	padding: 0.4em 0.85em; border-radius: var(--dcv-radius-pill);
	font-weight: 700; font-size: var(--dcv-fs-xs); backdrop-filter: blur(4px);
}

.dcv-card__body { padding: var(--dcv-space-3); display: flex; flex-direction: column; gap: 0.5em; flex: 1; }
.dcv-card__cat { font-size: var(--dcv-fs-xs); color: var(--dcv-royal-gold); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.dcv-card__title { font-size: var(--dcv-fs-md); margin: 0; }
.dcv-card__title a::after { content: ''; position: absolute; inset: 0; }
.dcv-card__meta { display: flex; flex-wrap: wrap; gap: 0.9em; font-size: var(--dcv-fs-xs); color: var(--dcv-text-muted); }
.dcv-card__excerpt { font-size: var(--dcv-fs-sm); color: var(--dcv-text-muted); flex: 1; }
.dcv-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 1em; margin-top: 0.5em; padding-top: 0.75em; border-top: 1px solid var(--dcv-border-light); }
.dcv-card__from { font-size: var(--dcv-fs-xs); color: var(--dcv-text-muted); display: block; }
.dcv-card__price { font-family: var(--dcv-font-heading); font-size: var(--dcv-fs-lg); color: var(--dcv-midnight-navy); font-weight: 700; }
.dcv-card__price--was { text-decoration: line-through; color: var(--dcv-text-muted); font-size: var(--dcv-fs-sm); font-weight: 400; margin-right: 0.4em; }
.dcv-card__rating { display: inline-flex; align-items: center; gap: 0.3em; font-size: var(--dcv-fs-xs); color: var(--dcv-text-muted); }
.dcv-stars { color: var(--dcv-royal-gold); letter-spacing: 1px; }

/* ============================================================
   7. GLASS / PANEL / GOLD-BORDER UTILITIES
   ============================================================ */
.dcv-glass {
	background: rgba(13, 34, 56, 0.55);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid rgba(201, 162, 75, 0.25);
	border-radius: var(--dcv-radius-lg);
}
.dcv-panel {
	background: var(--dcv-white);
	border-radius: var(--dcv-radius-lg);
	border: 1px solid var(--dcv-border-light);
	box-shadow: var(--dcv-shadow-md);
	padding: var(--dcv-space-3);
}
.dcv-panel--gold-edge { border: 1px solid var(--dcv-border); box-shadow: var(--dcv-shadow-gold); }
.dcv-divider-gold { height: 1px; background: linear-gradient(90deg, transparent, var(--dcv-royal-gold), transparent); border: 0; margin: var(--dcv-space-3) 0; }

/* ============================================================
   8. FORMS
   ============================================================ */
.dcv-field { margin-bottom: var(--dcv-space-2); }
.dcv-field label { display: block; font-weight: 600; font-size: var(--dcv-fs-sm); margin-bottom: 0.4em; }
.dcv-field .required { color: var(--dcv-danger); }
.dcv-field input[type="text"],
.dcv-field input[type="tel"],
.dcv-field input[type="email"],
.dcv-field input[type="date"],
.dcv-field input[type="number"],
.dcv-field select,
.dcv-field textarea {
	width: 100%;
	padding: 0.75em 1em;
	border: 1px solid rgba(23,23,23,0.18);
	border-radius: var(--dcv-radius-md);
	background: var(--dcv-white);
	color: var(--dcv-text);
	transition: border-color var(--dcv-transition), box-shadow var(--dcv-transition);
}
.dcv-field input:focus, .dcv-field select:focus, .dcv-field textarea:focus {
	border-color: var(--dcv-royal-gold);
	box-shadow: 0 0 0 3px rgba(201,162,75,0.2);
	outline: none;
}
.dcv-field-row { display: grid; gap: var(--dcv-space-2); grid-template-columns: 1fr; }
@media (min-width: 560px) { .dcv-field-row--2 { grid-template-columns: 1fr 1fr; } }
.dcv-form-msg { padding: 0.85em 1.1em; border-radius: var(--dcv-radius-md); font-size: var(--dcv-fs-sm); margin-top: var(--dcv-space-2); }
.dcv-form-msg--success { background: rgba(62,122,92,0.12); color: var(--dcv-success); }
.dcv-form-msg--error { background: rgba(168,56,43,0.1); color: var(--dcv-danger); }
.dcv-honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dcv-form-note { color: var(--dcv-text-muted); }
.dcv-section--dark .dcv-form-note, .dcv-section--navy-2 .dcv-form-note { color: var(--dcv-text-muted-inverse); }

/* ============================================================
   8b. ARCHIVE / FILTER SIDEBAR
   ============================================================ */
.dcv-archive-layout { display: grid; gap: var(--dcv-space-4); grid-template-columns: 1fr; }
@media (min-width: 900px) { .dcv-archive-layout { grid-template-columns: 260px 1fr; align-items: start; } }

.dcv-archive-filters {
	background: var(--dcv-white);
	border: 1px solid var(--dcv-border-light);
	border-radius: var(--dcv-radius-lg);
	padding: var(--dcv-space-3);
	position: sticky;
	top: calc(var(--dcv-header-h) + 1rem);
}
.dcv-filter-group { border: 0; padding: 0; margin: 0 0 var(--dcv-space-3); }
.dcv-filter-group legend { font-weight: 700; font-family: var(--dcv-font-heading); font-size: var(--dcv-fs-base); margin-bottom: 0.5em; padding: 0; }
.dcv-filter-group select { width: 100%; padding: 0.6em 0.8em; border-radius: var(--dcv-radius-md); border: 1px solid rgba(23,23,23,0.18); }
.dcv-checkbox { display: flex; align-items: center; gap: 0.5em; font-size: var(--dcv-fs-sm); padding: 0.3em 0; cursor: pointer; }
.dcv-checkbox input { accent-color: var(--dcv-royal-gold); width: 16px; height: 16px; }
.dcv-checkbox span { color: var(--dcv-text-muted); font-size: var(--dcv-fs-xs); }

.dcv-archive-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1em; margin-bottom: var(--dcv-space-3); font-size: var(--dcv-fs-sm); color: var(--dcv-text-muted); }
.dcv-sort-label { display: flex; align-items: center; gap: 0.5em; font-weight: 600; color: var(--dcv-text); }
.dcv-sort-label select { padding: 0.5em 0.8em; border-radius: var(--dcv-radius-md); border: 1px solid rgba(23,23,23,0.18); }
.dcv-no-results { grid-column: 1 / -1; text-align: center; padding: var(--dcv-space-4); color: var(--dcv-text-muted); }
#dcv-results-grid[aria-busy="true"] { opacity: 0.5; transition: opacity var(--dcv-transition); }

/* ============================================================
   8c. SINGLE CRUISE
   ============================================================ */
.dcv-single-layout { display: grid; gap: var(--dcv-space-4); grid-template-columns: 1fr; }
@media (min-width: 960px) { .dcv-single-layout { grid-template-columns: 1fr 320px; align-items: start; } }

.dcv-single-sidebar { position: sticky; top: calc(var(--dcv-header-h) + 1rem); }
.dcv-booking-panel__price { font-family: var(--dcv-font-heading); font-size: var(--dcv-fs-xl); font-weight: 700; color: var(--dcv-midnight-navy); margin-bottom: 0.5em; }

.dcv-trust-badges { list-style: none; margin: 0 0 var(--dcv-space-2); padding: 0; display: flex; flex-direction: column; gap: 0.5em; font-size: var(--dcv-fs-xs); color: var(--dcv-text-muted); }
.dcv-trust-badges li { display: flex; align-items: center; gap: 0.5em; }
.dcv-trust-badges svg { width: 16px; height: 16px; color: var(--dcv-royal-gold); flex-shrink: 0; }

.dcv-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5em; border-radius: var(--dcv-radius-lg); overflow: hidden; }
.dcv-gallery__item:first-child { grid-column: span 2; grid-row: span 2; }
.dcv-gallery__item { display: block; aspect-ratio: 1; overflow: hidden; }
.dcv-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dcv-transition); }
.dcv-gallery__item:hover img { transform: scale(1.05); }
.dcv-gallery__video { margin-top: var(--dcv-space-2); aspect-ratio: 16/9; }
.dcv-gallery__video iframe { width: 100%; height: 100%; border: 0; border-radius: var(--dcv-radius-md); }
@media (max-width: 640px) { .dcv-gallery { grid-template-columns: repeat(2, 1fr); } }

.dcv-check-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5em; }
.dcv-check-list li { display: flex; align-items: flex-start; gap: 0.5em; }
.dcv-check-list svg { width: 18px; height: 18px; color: var(--dcv-success); flex-shrink: 0; margin-top: 2px; }
.dcv-check-list--cross svg { color: var(--dcv-danger); }

.dcv-prose h2 { margin-top: 0; }

/* ============================================================
   9. FOOTER
   ============================================================ */
.dcv-footer { background: var(--dcv-midnight-navy); color: var(--dcv-text-muted-inverse); padding-top: var(--dcv-space-6); }
.dcv-footer a:hover { color: var(--dcv-royal-gold); }
.dcv-footer h4 { color: var(--dcv-champagne-gold); font-size: var(--dcv-fs-md); }
.dcv-footer__grid { display: grid; gap: var(--dcv-space-4); grid-template-columns: 1fr; padding-bottom: var(--dcv-space-5); border-bottom: 1px solid rgba(201,162,75,0.15); }
@media (min-width: 782px) { .dcv-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.dcv-footer__grid ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.6em; font-size: var(--dcv-fs-sm); }
.dcv-footer__social { display: flex; gap: 0.75em; margin-top: 1em; }
.dcv-footer__social a { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(201,162,75,0.3); border-radius: 50%; }
.dcv-footer__bottom { display: flex; flex-wrap: wrap; gap: 1em; align-items: center; justify-content: space-between; padding-block: var(--dcv-space-3); font-size: var(--dcv-fs-xs); }

/* ============================================================
   10. WHATSAPP FLOAT
   ============================================================ */
.dcv-whatsapp-float {
	position: fixed; right: 1.25rem; bottom: 5.5rem; z-index: 950;
	width: 58px; height: 58px; border-radius: 50%;
	background: #25D366; color: #06210F;
	display: flex; align-items: center; justify-content: center;
	box-shadow: var(--dcv-shadow-lg);
	animation: dcv-pulse 2.4s infinite;
}
@media (min-width: 640px) { .dcv-whatsapp-float { bottom: 1.75rem; } }
@keyframes dcv-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0.45), var(--dcv-shadow-lg); } 50% { box-shadow: 0 0 0 10px rgba(37,211,102,0), var(--dcv-shadow-lg); } }
@media (prefers-reduced-motion: reduce) { .dcv-whatsapp-float { animation: none; } }

/* ============================================================
   11. BREADCRUMBS
   ============================================================ */
.dcv-breadcrumbs { font-size: var(--dcv-fs-xs); color: var(--dcv-text-muted); padding-block: var(--dcv-space-2); }
.dcv-breadcrumbs a { color: var(--dcv-deep-navy); font-weight: 600; }
.dcv-breadcrumbs a:hover { color: var(--dcv-royal-gold); }
.dcv-breadcrumbs .sep { margin: 0 0.5em; opacity: 0.5; }

/* ============================================================
   12. UTILITIES
   ============================================================ */
.dcv-flex { display: flex; }
.dcv-flex-wrap { flex-wrap: wrap; }
.dcv-items-center { align-items: center; }
.dcv-justify-between { justify-content: space-between; }
.dcv-gap-1 { gap: var(--dcv-space-1); }
.dcv-gap-2 { gap: var(--dcv-space-2); }
.dcv-gap-3 { gap: var(--dcv-space-3); }
.dcv-text-center { text-align: center; }
.dcv-text-gold { color: var(--dcv-royal-gold); }
.dcv-mt-0 { margin-top: 0; }
.dcv-mb-0 { margin-bottom: 0; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}
