/*
 * Volcan Luxe layer (27 Oct 2026, type v2)
 * Type modelled on virugroup.com: one clean grotesk (Instrument Sans) at generous sizes,
 * with italic serif accents (Instrument Serif) on emphasised words. Brand teal and sunrise orange.
 * Loaded last. To switch off: define VOLCAN_LUXE false in wp-config.php or remove the enqueue in volcan-seo-indexing.php.
 */

:root {
	--serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;
	--sans: "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--lx-teal: #0f3743;
	--lx-teal-deep: #0a2730;
	--lx-teal-ink: #081d24;
	--lx-orange: #f28820;
	--lx-orange-deep: #d8741a;
	--lx-sun: #f6b56b;
	--lx-sand: #f7f3ec;
	--lx-sand-2: #efe8dc;
	--lx-line: rgba(15, 55, 67, .14);
	--lx-ease: cubic-bezier(.22, .61, .36, 1);
	--paper: var(--lx-sand);
	--sand: var(--lx-sand);
	--radius: 6px;
	--radius-sm: 4px;
	--r: 4px;
	--r-md: 6px;
	--vc-radius: 6px;
	--shadow-1: 0 1px 2px rgba(10, 39, 48, .05), 0 18px 40px -28px rgba(10, 39, 48, .45);
	--shadow-2: 0 2px 6px rgba(10, 39, 48, .06), 0 34px 70px -36px rgba(10, 39, 48, .55);
}

/* ---------- Type ---------- */
html { -webkit-text-size-adjust: 100%; }
body {
	font-family: var(--sans) !important;
	font-weight: 400 !important;
	font-size: 18px;
	line-height: 1.65;
	letter-spacing: -.003em;
	color: #17262b;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
p, li, td, .lede { font-family: var(--sans); }
strong, b { font-weight: 600; }

h1, h2, h3, h4,
.h1, .h2, .h3,
.display-name, .d-name, .loc-name, .brand-name ~ h1 {
	font-family: var(--sans) !important;
	font-weight: 400 !important;
	letter-spacing: -.025em !important;
	line-height: 1.04;
	text-wrap: balance;
}
h1, .h1 { font-size: clamp(2.6rem, 6vw, 4.6rem) !important; line-height: 1.02 !important; }
h2, .h2 { font-size: clamp(2.2rem, 4.6vw, 3.8rem) !important; }
h3, .h3 { font-size: clamp(1.45rem, 2.2vw, 1.9rem); font-weight: 500 !important; letter-spacing: -.015em !important; line-height: 1.15; }
h4 { font-size: 1.25rem; font-weight: 500 !important; }

/* The Viru touch: one or two words in an italic serif inside a sans headline */
h1 em, h2 em, h3 em, .h1 em, .h2 em, .h3 em, .lede em {
	font-family: var(--serif) !important;
	font-style: italic;
	font-weight: 400;
	font-size: 1.1em;
	letter-spacing: -.005em;
	color: var(--lx-orange);
}
.hero h1 em, .hero .h1 em { color: var(--lx-sun); }

.hero h1, .hero .h1, body .hero h1.h1 {
	font-family: var(--sans) !important;
	font-weight: 400 !important;
	font-size: clamp(3rem, 8vw, 6.4rem) !important;
	line-height: .98 !important;
	letter-spacing: -.035em !important;
	text-shadow: 0 2px 30px rgba(8, 29, 36, .35);
}

.lede, .hero p {
	font-size: clamp(1.2rem, 1.9vw, 1.6rem);
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: -.01em;
}

/* Small spaced capitals, the hallmark of the editorial safari look */
.eyebrow, .tour-tag, .stay-kicker, .vt-guide-cat, .d-count, .loc-country,
.mnav-idx, .step-note, .vc-strip__tag {
	font-family: var(--sans) !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: .12em !important;
	font-size: .84rem;
}
.eyebrow { color: var(--lx-orange); display: inline-flex; align-items: center; gap: .75em; }
.eyebrow::before {
	content: "";
	width: 28px; height: 1px;
	background: currentColor;
	opacity: .8;
}
.hero .eyebrow, .section--deep .eyebrow { color: var(--lx-sun); }

/* ---------- Header and navigation ---------- */
.header { font-family: var(--sans); transition: background .4s var(--lx-ease), box-shadow .4s var(--lx-ease); }
.nav a, .mnav-link, .header a {
	font-family: var(--sans) !important;
	font-weight: 500 !important;
	letter-spacing: -.005em;
}
.nav a { text-transform: none; font-size: 1.02rem; }
.vc-strip { font-family: var(--sans); font-weight: 400; letter-spacing: 0; background: var(--lx-teal-ink); }

/* ---------- Buttons ---------- */
.btn, .volcan-btn, .vf-go, .featured-more, button[type="submit"], input[type="submit"] {
	font-family: var(--sans) !important;
	font-weight: 500 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: 1.02rem;
	border-radius: 999px !important;
	padding: .95em 2em;
	transition: background-color .3s var(--lx-ease), color .3s var(--lx-ease), transform .3s var(--lx-ease), box-shadow .3s var(--lx-ease);
}
.btn:not(.btn--ghost), .volcan-btn:not(.volcan-btn--ghost), .vf-go {
	background: var(--lx-orange);
	color: #fff;
	box-shadow: 0 10px 24px -14px rgba(242, 136, 32, .9);
}
.btn:not(.btn--ghost):hover, .volcan-btn:not(.volcan-btn--ghost):hover, .vf-go:hover {
	background: var(--lx-orange-deep);
	transform: translateY(-2px);
	box-shadow: 0 16px 30px -16px rgba(216, 116, 26, .95);
}
.btn--ghost, .volcan-btn--ghost {
	background: transparent;
	border: 1px solid currentColor;
}
.btn--ghost:hover, .volcan-btn--ghost:hover { background: rgba(255, 255, 255, .12); transform: translateY(-2px); }
.btn--sm { padding: .75em 1.5em; font-size: .92rem; }
.link-arrow {
	font-family: var(--sans);
	text-transform: none;
	letter-spacing: 0;
	font-size: 1.02rem;
	font-weight: 500;
	color: var(--lx-orange-deep);
}

/* ---------- Hero ---------- */
.hero p, .detail-hero p, .page-hero p { text-shadow: 0 1px 18px rgba(8, 29, 36, .45); }

/* ---------- Sections ---------- */
.section { padding-block: clamp(64px, 9vw, 128px); }
.section--paper { background: var(--lx-sand); }
.section-head { margin-bottom: clamp(28px, 4vw, 56px); }
.section-head h2::after, .section-head .h2::after {
	content: "";
	display: block;
	width: 56px; height: 2px;
	margin-top: .55em;
	background: linear-gradient(90deg, var(--lx-orange), var(--lx-sun));
}
.section-head--split h2::after, .section-head--split .h2::after { margin-left: 0; }

/* ---------- Cards and imagery ---------- */
.tour-card, .stay-card, .dest-card, .vt-guide {
	border-radius: var(--radius);
	background: #fff;
	box-shadow: var(--shadow-1);
	overflow: hidden;
	transition: transform .5s var(--lx-ease), box-shadow .5s var(--lx-ease);
}
.tour-card:hover, .stay-card:hover, .dest-card:hover, .vt-guide:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-2);
}
.tour-card-photo, .dest-shot, .vt-guide-photo, .loc-thumb, .gz-shot { overflow: hidden; }
.tour-card-photo img, .dest-shot img, .vt-guide-photo img, .stay-card img, .loc-thumb img, .gz-shot img {
	transition: transform 1.2s var(--lx-ease);
}
.tour-card:hover .tour-card-photo img, .dest-card:hover .dest-shot img,
.vt-guide:hover .vt-guide-photo img, .stay-card:hover img { transform: scale(1.06); }

.tour-card-body h3, .tour-card-body .h3, .stay-body h3, .dest-card-body .d-name {
	font-family: var(--sans) !important;
	font-weight: 500 !important;
	font-size: clamp(1.3rem, 1.8vw, 1.55rem) !important;
	letter-spacing: -.02em !important;
	line-height: 1.18;
}
.tour-price {
	font-family: var(--sans) !important;
	font-weight: 600;
	font-size: 1.4rem;
	color: var(--lx-teal);
}
.tour-tag {
	background: rgba(15, 55, 67, .88);
	color: #fff;
	padding: .5em 1.1em;
	border-radius: 999px;
	font-size: .72rem;
	backdrop-filter: blur(4px);
}
.tour-meta { font-size: 1rem; color: #4a5a60; }
.tour-card-foot { border-top: 1px solid var(--lx-line); }

.value-item .v-num, .loc-num {
	font-family: var(--serif);
	font-style: italic;
	font-size: 1.25em;
	color: var(--lx-orange);
}

/* Detail pages */
.detail-hero .h1, .page-hero .h1 { font-weight: 400; }
.detail-hero .lede { font-family: var(--sans); text-transform: none; letter-spacing: -.005em; font-size: clamp(1.1rem, 1.6vw, 1.35rem); }
.gallery img { border-radius: var(--radius-sm); transition: transform .8s var(--lx-ease), filter .8s var(--lx-ease); }
.gallery a:hover img { transform: scale(1.03); filter: saturate(1.08); }
.breadcrumb { font-family: var(--sans); text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; font-weight: 500; }

/* Forms */
input, select, textarea { font-family: var(--sans); font-weight: 400; font-size: 1rem; }
.vf-field label, .vf-field .vf-value { font-family: var(--sans); letter-spacing: .08em; }

/* Page and detail heroes */
.detail-hero h1, .page-hero h1, .detail-hero .h1, .page-hero .h1 {
	font-family: var(--sans) !important;
	font-weight: 400 !important;
	letter-spacing: -.03em !important;
	line-height: 1 !important;
	font-size: clamp(2.8rem, 7vw, 5.6rem) !important;
}

/* Lodge call to action */
.vsi-cta {
	margin-top: 40px;
	padding: clamp(24px, 4vw, 40px);
	border-radius: var(--radius);
	background: linear-gradient(135deg, var(--lx-teal) 0%, var(--lx-teal-deep) 100%);
	color: #eef4f5;
	box-shadow: var(--shadow-2);
}
.vsi-cta h3 { color: #fff; margin: .4em 0 .5em; }
.vsi-cta p { color: #d7e3e6; font-size: 1.05rem; max-width: 60ch; }
.vsi-cta .eyebrow { color: var(--lx-sun); }
.vsi-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.2em; }
.vsi-cta .btn--ghost { color: #fff; }

/* ---------- Footer ---------- */
.footer {
	background:
		radial-gradient(1200px 400px at 85% -10%, rgba(242, 136, 32, .12), transparent 60%),
		var(--lx-teal-ink);
	font-family: var(--sans);
	font-weight: 400;
	font-size: 1.02rem;
}
.footer h4 {
	font-family: var(--sans) !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .82rem;
	color: var(--lx-sun);
}
.footer a { transition: color .25s var(--lx-ease); }
.footer a:hover { color: var(--lx-orange); }

/* Selection and focus in brand colours */
::selection { background: var(--lx-orange); color: #fff; }
:focus-visible { outline: 2px solid var(--lx-orange); outline-offset: 3px; }

/* ---------- Size layer: lift the theme's small text to comfortable reading sizes ---------- */
main p, main li, .entry-content p, .entry-content li,
.value-item p, .step p, .fleet-note p, .how-cta p, .specialist-copy p {
	font-size: clamp(1.04rem, 1.15vw, 1.14rem) !important;
	line-height: 1.65 !important;
}
.lede, .hero .lede, .hero-content .lede, .hero-content p, .section-head p, .page-hero p, .detail-hero p {
	font-size: clamp(1.2rem, 1.9vw, 1.6rem) !important;
	line-height: 1.45 !important;
}
.tour-meta, .stay-meta, .tour-view, .loc-go, .d-count { font-size: .95rem !important; }
.tour-price small { font-size: .8rem !important; }
.tour-view, .loc-go, .link-arrow { text-transform: none !important; letter-spacing: 0 !important; font-weight: 500 !important; }
.tour-view { font-size: 1.02rem !important; }
.loc-country { font-size: .78rem !important; }
.link-arrow { font-size: 1rem !important; }
.hero-trust { font-size: .9rem !important; letter-spacing: .02em !important; }
.btn, .hero-actions .btn, .volcan-btn { font-size: 1.02rem !important; }
.btn--sm { font-size: .94rem !important; }
.nav a, .mnav-link { font-size: 1.02rem !important; }
.mnav-link { font-size: 1.5rem !important; letter-spacing: -.02em !important; }
.footer, .footer p, .footer li, .footer a, .f-about, .f-news-copy { font-size: 1.02rem !important; }
.f-langs a { font-size: .95rem !important; }
.footer h4 { font-size: .82rem !important; }

@media (max-width: 640px) {
	body { font-size: 17px; }
	.detail-hero h1, .page-hero h1, .detail-hero .h1, .page-hero .h1 { font-size: clamp(2.5rem, 11vw, 3.4rem) !important; }
	.section { padding-block: 56px; }
	h1, .h1 { font-size: clamp(2.4rem, 10vw, 3.2rem) !important; }
	.hero h1, .hero .h1, body .hero h1.h1 { font-size: clamp(2.4rem, 9.6vw, 3.3rem) !important; line-height: 1.02 !important; }
	h2, .h2 { font-size: clamp(2rem, 8.5vw, 2.6rem) !important; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; }
}
