/* ==========================================================================
   LEO Components — base styles
   Components built progressively Phase 2-4.
   Each prefixed `.leo-`, follow BEM methodology.
   ========================================================================== */

/* ── Full-bleed section pattern ───────────────────────────────────────── */
/* Hello Elementor parent constrains .site-main to max-width 1140px.
 * Em remove this constraint so sections naturally fill 100% width.
 * Content stays constrained via .leo-container inside each section. */
body { overflow-x: hidden; }

body .site-main,
body main#content,
body main.site-main {
	max-width: none !important;
	width: 100% !important;
	padding-inline: 0 !important;
	margin-inline: 0 !important;
}

/* Hide leftover Hello Elementor page header (em manage titles in Hero) */
body .site-main > .page-header { display: none !important; }

/* Page content wrapper — let em sections take over fully */
body .site-main > .page-content,
body .site-main .page-content {
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.leo-hero--full,
.leo-section,
.leo-section-divider {
	width: 100%;
	position: relative;
}

/* ── Container (constrains content INSIDE full-bleed sections) ───────── */
.leo-container {
	max-width: var(--leo-container-max);
	margin-inline: auto;
	padding-inline: var(--leo-container-padding);
}

/* ── Pull quote (McKinsey-style charcoal section with large italic quote) */
.leo-pullquote {
	margin: 0;
	padding: 0;
	border-left: 4px solid var(--leo-gold);
	padding-left: clamp(24px, 4vw, 64px);
}

.leo-pullquote p {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.5rem, 2.5vw + 0.5rem, 2.5rem);
	font-weight: var(--leo-font-weight-regular);
	font-style: italic;
	line-height: 1.35;
	color: var(--leo-white);
	letter-spacing: -0.015em;
	margin: 0 0 var(--leo-space-3) 0;
}

.leo-pullquote cite {
	display: block;
	font-style: normal;
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--leo-gold);
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-medium);
}

/* ── Section (McKinsey-style: generous spacing, alternating bg rhythm) ── */
.leo-section {
	padding-block: clamp(56px, 8vw, 128px);
}

.leo-section--cream    { background-color: var(--leo-cream); }
.leo-section--gray     { background-color: var(--leo-gray-light); }
.leo-section--charcoal {
	background-color: var(--leo-charcoal);
	color: var(--leo-white);
	background-image:
		radial-gradient(ellipse 60% 50% at 80% 20%, rgba(201, 162, 74, 0.12) 0%, transparent 60%),
		radial-gradient(ellipse 40% 60% at 10% 100%, rgba(201, 162, 74, 0.08) 0%, transparent 60%);
}
.leo-section--charcoal h1,
.leo-section--charcoal h2,
.leo-section--charcoal h3,
.leo-section--charcoal h4 { color: var(--leo-white); }
.leo-section--charcoal .leo-stat { border-top-color: var(--leo-gold); }
.leo-section--charcoal .leo-stat__number { color: var(--leo-white); }
.leo-section--charcoal .leo-stat__label { color: rgba(255, 255, 255, 0.7); }
.leo-section--charcoal .leo-card {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
}
.leo-section--charcoal .leo-card__title { color: var(--leo-white); }
.leo-section--charcoal .leo-card__body { color: rgba(255, 255, 255, 0.8); }
.leo-section--charcoal .leo-card__icon { color: var(--leo-gold); }

/* Section eyebrow (small uppercase label above heading) */
.leo-section__eyebrow {
	display: block;
	font-family: var(--leo-font-heading);
	font-size: 12px;
	font-weight: var(--leo-font-weight-bold);
	letter-spacing: 0.2em;
	color: var(--leo-gold-dark);
	text-transform: uppercase;
	margin-bottom: var(--leo-space-2);
}

.leo-section--charcoal .leo-section__eyebrow { color: var(--leo-gold); }

/* Section heading McKinsey-style: large, bold, with thin gold accent line */
.leo-section h2 {
	font-size: clamp(2rem, 3.5vw + 0.5rem, 3.25rem);
	font-weight: var(--leo-font-weight-extra);
	letter-spacing: -0.025em;
	line-height: 1.1;
	max-width: 18ch;
	margin-bottom: var(--leo-space-5);
}

.leo-section h2.leo-text-center {
	margin-inline: auto;
}

/* ── Button ───────────────────────────────────────────────────────────── */
.leo-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--leo-space-1);
	padding: 12px 24px;
	border: 2px solid transparent;
	border-radius: var(--leo-radius-md);
	font-family: var(--leo-font-heading);
	font-size: 1rem;
	font-weight: var(--leo-font-weight-medium);
	line-height: 1;
	text-align: center;
	cursor: pointer;
	transition: all var(--leo-transition-base);
	min-height: 44px; /* a11y tap target */
	text-decoration: none;
}

.leo-btn--primary {
	background-color: var(--leo-gold);
	color: var(--leo-charcoal);
	border-color: var(--leo-gold);
}

.leo-btn--primary:hover,
.leo-btn--primary:focus-visible {
	background-color: var(--leo-gold-dark);
	color: var(--leo-white);
	border-color: var(--leo-gold-dark);
}

.leo-btn--secondary {
	background-color: transparent;
	color: var(--leo-charcoal);
	border-color: var(--leo-charcoal);
}

.leo-btn--secondary:hover,
.leo-btn--secondary:focus-visible {
	background-color: var(--leo-charcoal);
	color: var(--leo-white);
}

.leo-btn--ghost {
	background-color: transparent;
	color: var(--leo-gold-dark);
	border-color: transparent;
}

.leo-btn--ghost:hover,
.leo-btn--ghost:focus-visible {
	color: var(--leo-gold);
	background-color: rgba(201, 162, 74, 0.08);
}

/* On charcoal background, invert button colors */
.leo-section--charcoal .leo-btn--secondary {
	color: var(--leo-white);
	border-color: var(--leo-white);
}

.leo-section--charcoal .leo-btn--secondary:hover,
.leo-section--charcoal .leo-btn--secondary:focus-visible {
	background-color: var(--leo-white);
	color: var(--leo-charcoal);
}

/* ── Section header (eyebrow + headline + lead) ──────────────────────── */
.leo-section-header {
	max-width: 720px;
	margin: 0 auto var(--leo-space-6);
	text-align: center;
}

.leo-section-header__title {
	font-size: clamp(2rem, 3.5vw + 0.5rem, 3.5rem);
	font-weight: var(--leo-font-weight-extra);
	letter-spacing: -0.025em;
	line-height: 1.1;
	margin: var(--leo-space-2) 0 var(--leo-space-3);
}

.leo-section-header__lead {
	font-size: 1.125rem;
	color: var(--leo-slate);
	line-height: 1.7;
}

/* ── Pillar card (McKinsey "People like you" style: numbered, generous) */
.leo-pillar-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background: var(--leo-gray-light);
	border: 1px solid var(--leo-gray-light);
}

@media (min-width: 768px) {
	.leo-pillar-grid { grid-template-columns: repeat(3, 1fr); }
}

.leo-pillar-card {
	background: var(--leo-white);
	padding: clamp(32px, 4vw, 56px);
	position: relative;
	transition: all 300ms ease;
	display: flex;
	flex-direction: column;
}

.leo-pillar-card:hover {
	background: var(--leo-cream);
}

.leo-pillar-card__num {
	font-family: var(--leo-font-heading);
	font-size: 14px;
	font-weight: var(--leo-font-weight-bold);
	color: var(--leo-gold-dark);
	letter-spacing: 0.15em;
	margin-bottom: var(--leo-space-3);
}

.leo-pillar-card__icon {
	color: var(--leo-gold-dark);
	margin-bottom: var(--leo-space-3);
}

.leo-pillar-card__title {
	font-size: 1.5rem;
	font-weight: var(--leo-font-weight-bold);
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin-bottom: var(--leo-space-3);
	color: var(--leo-charcoal);
}

.leo-pillar-card__body {
	color: var(--leo-slate);
	line-height: 1.7;
	margin-bottom: var(--leo-space-4);
	flex-grow: 1;
}

.leo-pillar-card__meta {
	padding-top: var(--leo-space-3);
	border-top: 1px solid var(--leo-gray-light);
	font-size: 0.8125rem;
	color: var(--leo-gold-dark);
	font-weight: var(--leo-font-weight-medium);
	letter-spacing: 0.02em;
}

/* ── Card (McKinsey-style: minimal border, generous padding, hover lift) */
.leo-card {
	background-color: var(--leo-white);
	border-radius: 2px;
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--leo-gray-light);
	border-top: 3px solid transparent;
	box-shadow: none;
	transition: all var(--leo-transition-base);
	position: relative;
}

.leo-card:hover {
	border-top-color: var(--leo-gold);
	box-shadow: 0 12px 32px -8px rgba(31, 41, 55, 0.1);
	transform: translateY(-2px);
}

.leo-card__icon {
	width: 56px;
	height: 56px;
	color: var(--leo-gold-dark);
	margin-bottom: var(--leo-space-3);
}

.leo-card__title {
	font-size: 1.375rem;
	font-weight: var(--leo-font-weight-bold);
	letter-spacing: -0.015em;
	margin-bottom: var(--leo-space-2);
	color: var(--leo-charcoal);
}

.leo-card__body {
	color: var(--leo-slate);
	line-height: 1.65;
	font-size: 1rem;
}

/* ── Grid (3-col, 4-col responsive) ───────────────────────────────────── */
.leo-grid {
	display: grid;
	gap: var(--leo-space-3);
}

.leo-grid--3 {
	grid-template-columns: repeat(1, 1fr);
}

.leo-grid--4 {
	grid-template-columns: repeat(1, 1fr);
}

@media (min-width: 768px) {
	.leo-grid--3 { grid-template-columns: repeat(2, 1fr); }
	.leo-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.leo-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.leo-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* ── Header — applies to BOTH PHP and Theme Builder ──────────────────── */
.leo-header,
header[data-elementor-type="header"] {
	position: sticky;
	top: 0;
	z-index: var(--leo-z-sticky);
	background: var(--leo-white);
	box-shadow: var(--leo-shadow-sm);
	border-bottom: 1px solid var(--leo-gray-light);
}

/* Theme Builder header — constrain logo to brand size */
header[data-elementor-type="header"] .elementor-widget-image img {
	max-height: 56px !important;
	width: auto !important;
	height: 56px !important;
	object-fit: contain;
}

/* Theme Builder header section padding */
header[data-elementor-type="header"] > section {
	padding-block: 8px !important;
}

/* Theme Builder nav menu spacing */
header[data-elementor-type="header"] .elementor-nav-menu > li > a.elementor-item {
	padding: 8px 16px !important;
	font-size: 15px !important;
}

/* Footer Theme Builder logo invert */
footer[data-elementor-type="footer"] .elementor-widget-image img {
	max-height: 48px !important;
	width: auto !important;
	height: 48px !important;
	filter: brightness(0) invert(1);
	margin-bottom: 12px;
}

/* Hero background — stronger visual depth */
.leo-hero {
	background:
		radial-gradient(ellipse at top right, rgba(201, 162, 74, 0.08) 0%, transparent 50%),
		radial-gradient(ellipse at bottom left, rgba(31, 41, 55, 0.04) 0%, transparent 50%),
		linear-gradient(180deg, var(--leo-cream) 0%, var(--leo-white) 100%);
	border-bottom: 1px solid rgba(201, 162, 74, 0.15);
}

/* Add subtle alternation between sections to break up white */
.leo-section:not(.leo-section--cream):not(.leo-section--charcoal):not(.leo-section--gray) {
	background: var(--leo-white);
}

.leo-section--cream {
	background:
		radial-gradient(circle at 20% 50%, rgba(201, 162, 74, 0.04) 0%, transparent 60%),
		var(--leo-cream);
}

.leo-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--leo-space-3);
	padding-block: var(--leo-space-2);
	min-height: 72px;
}

.leo-header__logo img {
	display: block;
	width: auto;
	max-height: 56px;
	height: auto;
}

.leo-header__nav {
	display: none;
	flex: 1;
}

.leo-header__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var(--leo-space-3);
	justify-content: center;
}

.leo-header__menu li a,
.leo-header__menu li > span {
	display: block;
	padding: var(--leo-space-1) var(--leo-space-2);
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-medium);
	color: var(--leo-charcoal);
	text-decoration: none;
	transition: color var(--leo-transition-base);
	border-bottom: 2px solid transparent;
}

.leo-header__menu li a:hover,
.leo-header__menu li.current-menu-item a {
	color: var(--leo-gold-dark);
	border-bottom-color: var(--leo-gold);
}

.leo-header__cta {
	display: none;
}

.leo-header__menu-toggle {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 44px;
	height: 44px;
	background: transparent;
	border: 1px solid var(--leo-charcoal);
	border-radius: var(--leo-radius-sm);
	cursor: pointer;
	padding: 0;
}

.leo-header__menu-toggle-icon span {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--leo-charcoal);
	margin: 3px 0;
	transition: transform var(--leo-transition-base), opacity var(--leo-transition-base);
}

@media (min-width: 1024px) {
	.leo-header__menu-toggle { display: none; }
	.leo-header__nav { display: flex; align-items: center; }
	.leo-header__cta { display: block; }
}

/* Mobile menu open state */
.leo-header__nav.is-open {
	display: block;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--leo-white);
	box-shadow: var(--leo-shadow-md);
	padding: var(--leo-space-3);
}

.leo-header__nav.is-open .leo-header__menu {
	flex-direction: column;
	gap: 0;
}

.leo-header__nav.is-open .leo-header__menu li a {
	padding: var(--leo-space-2);
	border-bottom: 1px solid var(--leo-gray-light);
}

/* ── Footer ───────────────────────────────────────────────────────────── */
.leo-footer {
	background: var(--leo-charcoal);
	color: var(--leo-white);
	padding-block: var(--leo-space-6) var(--leo-space-3);
	margin-top: var(--leo-space-8);
}

.leo-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--leo-space-5);
	padding-bottom: var(--leo-space-5);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

@media (min-width: 768px) {
	.leo-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.leo-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1.5fr; }
}

.leo-footer__logo img {
	max-height: 48px;
	width: auto;
	filter: brightness(0) invert(1);  /* Make logo white on dark bg */
	margin-bottom: var(--leo-space-2);
}

.leo-footer__tagline {
	font-size: var(--leo-font-size-small);
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: var(--leo-space-3);
	font-style: italic;
}

.leo-footer__social-placeholder {
	font-size: var(--leo-font-size-small);
	color: rgba(255, 255, 255, 0.5);
}

.leo-footer__heading {
	font-size: var(--leo-font-size-h4);
	color: #E5C26B; /* lighter gold for WCAG AA contrast on charcoal bg */
	margin-bottom: var(--leo-space-2);
	font-weight: var(--leo-font-weight-bold);
}

.leo-footer__menu,
.leo-footer__legal-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.leo-footer__menu li,
.leo-footer__legal-menu li {
	margin-bottom: var(--leo-space-1);
}

.leo-footer__menu a,
.leo-footer__legal-menu a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: color var(--leo-transition-base);
	font-size: 0.95rem;
}

.leo-footer__menu a:hover,
.leo-footer__legal-menu a:hover,
.leo-footer__menu a:focus-visible,
.leo-footer__legal-menu a:focus-visible {
	color: var(--leo-gold);
}

.leo-footer__contact {
	font-style: normal;
	font-size: 0.95rem;
	color: rgba(255, 255, 255, 0.85);
}

.leo-footer__contact p {
	margin-bottom: var(--leo-space-2);
	line-height: 1.5;
}

.leo-footer__contact a {
	color: var(--leo-gold);
	text-decoration: none;
}

.leo-footer__contact a:hover {
	text-decoration: underline;
}

.leo-footer__bottom {
	padding-top: var(--leo-space-3);
	display: flex;
	flex-direction: column;
	gap: var(--leo-space-2);
	font-size: var(--leo-font-size-small);
	color: rgba(255, 255, 255, 0.6);
}

@media (min-width: 768px) {
	.leo-footer__bottom {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
	}
}

.leo-footer__legal p {
	margin: 0 0 var(--leo-space-1) 0;
	line-height: 1.5;
}

.leo-footer__legal-menu {
	display: flex;
	gap: var(--leo-space-2);
	flex-wrap: wrap;
}

.leo-footer__legal-menu li {
	margin: 0;
}

.leo-footer__legal-menu li:not(:last-child)::after {
	content: '·';
	margin-left: var(--leo-space-2);
	color: rgba(255, 255, 255, 0.3);
}

/* ── Lightbox modal (for legal docs) ──────────────────────────────────── */
.leo-lightbox-modal {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: var(--leo-z-modal);
	padding: var(--leo-space-3);
}

.leo-lightbox-img {
	max-width: 90vw;
	max-height: 90vh;
	object-fit: contain;
	border-radius: var(--leo-radius-sm);
}

.leo-lightbox-close {
	position: absolute;
	top: var(--leo-space-2);
	right: var(--leo-space-2);
	width: 44px;
	height: 44px;
	background: transparent;
	color: var(--leo-white);
	border: 1px solid var(--leo-white);
	border-radius: var(--leo-radius-full);
	font-size: 2rem;
	cursor: pointer;
	line-height: 1;
}

.leo-lightbox-close:hover {
	background: var(--leo-white);
	color: var(--leo-charcoal);
}

/* ── Hero FULL-SCREEN with Saigon skyline background ─────────────────── */
.leo-hero--full {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	padding-block: clamp(80px, 12vh, 140px) clamp(60px, 8vh, 100px);
	color: var(--leo-white);
}

/* Background image layer */
.leo-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.leo-hero__bg-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Dark gradient overlay — charcoal heavy left → gold soft right */
.leo-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(105deg, rgba(31, 41, 55, 0.92) 0%, rgba(31, 41, 55, 0.78) 40%, rgba(31, 41, 55, 0.55) 70%, rgba(201, 162, 74, 0.35) 100%),
		linear-gradient(180deg, rgba(31, 41, 55, 0.4) 0%, transparent 30%, rgba(31, 41, 55, 0.5) 100%);
}

.leo-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: end;
	width: 100%;
}

@media (min-width: 1024px) {
	.leo-hero__inner {
		grid-template-columns: 1.3fr 1fr;
		align-items: end;
	}
}

/* Hero title — much bigger, white */
.leo-hero--full .leo-hero__title {
	color: var(--leo-white);
	font-size: clamp(2.5rem, 6vw + 0.5rem, 5.5rem);
	font-weight: var(--leo-font-weight-extra);
	letter-spacing: -0.03em;
	line-height: 1.02;
	margin: var(--leo-space-3) 0 var(--leo-space-4);
	max-width: 14ch;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
}

.leo-hero--full .leo-hero__subtitle {
	color: rgba(255, 255, 255, 0.92);
	font-size: clamp(1.0625rem, 1.2vw + 0.5rem, 1.3125rem);
	line-height: 1.7;
	margin-bottom: var(--leo-space-5);
	max-width: 52ch;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
}

/* Eyebrow on dark bg */
.leo-eyebrow--on-dark {
	color: var(--leo-gold);
}

/* Button on dark — outline white */
.leo-btn--on-dark.leo-btn--secondary {
	color: var(--leo-white);
	border-color: var(--leo-white);
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(8px);
}

.leo-btn--on-dark.leo-btn--secondary:hover {
	background: var(--leo-white);
	color: var(--leo-charcoal);
}

/* Hero stats overlay — bottom right, glass effect */
.leo-hero__stats-overlay {
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(20px) saturate(150%);
	-webkit-backdrop-filter: blur(20px) saturate(150%);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-left: 3px solid var(--leo-gold);
	padding: clamp(24px, 3vw, 36px);
	max-width: 480px;
}

.leo-hero__stat-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(16px, 2vw, 28px);
	margin-top: var(--leo-space-3);
}

.leo-hero__stat-item {
	text-align: left;
}

.leo-hero__stat-num {
	display: block;
	font-family: var(--leo-font-heading);
	font-size: clamp(1.875rem, 2.8vw + 0.5rem, 2.75rem);
	font-weight: var(--leo-font-weight-extra);
	color: var(--leo-white);
	letter-spacing: -0.03em;
	line-height: 1;
	margin-bottom: 6px;
}

.leo-hero__stat-lbl {
	display: block;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.75);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: var(--leo-font-weight-medium);
}

/* Scroll hint at bottom */
.leo-hero__scroll-hint {
	position: absolute;
	bottom: clamp(20px, 4vh, 40px);
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.6);
	font-size: 10px;
	font-weight: var(--leo-font-weight-bold);
	letter-spacing: 0.2em;
	animation: leo-bounce 2s ease-in-out infinite;
}

@keyframes leo-bounce {
	0%, 100% { transform: translateX(-50%) translateY(0); }
	50% { transform: translateX(-50%) translateY(8px); }
}

@media (prefers-reduced-motion: reduce) {
	.leo-hero__scroll-hint { animation: none; }
}

/* ── Section divider (horizontal strip between sections) ─────────────── */
.leo-section-divider {
	height: 1px;
	background: var(--leo-gray-light);
	width: 100%;
}

.leo-section-divider--gold {
	height: 3px;
	background: linear-gradient(90deg, transparent 0%, var(--leo-gold) 30%, var(--leo-gold) 70%, transparent 100%);
}

/* Section divider after charcoal bg — make it gold so visible */
.leo-section--charcoal + .leo-section-divider,
.leo-hero--full + .leo-section-divider {
	background: linear-gradient(90deg, var(--leo-gold) 0%, var(--leo-gold-dark) 100%);
	height: 3px;
}

/* Legacy hero (non-full) keep old styles */
.leo-hero:not(.leo-hero--full) {
	padding-block: clamp(64px, 10vw, 144px) clamp(80px, 12vw, 160px);
	background:
		radial-gradient(ellipse 60% 80% at 75% 50%, rgba(201, 162, 74, 0.12) 0%, transparent 60%),
		radial-gradient(ellipse 50% 70% at 20% 80%, rgba(31, 41, 55, 0.06) 0%, transparent 60%),
		linear-gradient(165deg, var(--leo-cream) 0%, var(--leo-white) 70%);
	border-bottom: 4px solid var(--leo-gold);
	position: relative;
	overflow: hidden;
}

.leo-hero:not(.leo-hero--full)::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 6px;
	height: clamp(80px, 15vw, 200px);
	background: linear-gradient(180deg, var(--leo-gold) 0%, transparent 100%);
}

.leo-hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--leo-space-5);
	align-items: center;
	position: relative;
	z-index: 1;
}

@media (min-width: 1024px) {
	.leo-hero__grid {
		grid-template-columns: 1.3fr 1fr;
		gap: var(--leo-space-8);
	}
}

.leo-hero__title {
	font-size: clamp(2.5rem, 5.5vw + 0.5rem, 5rem);
	font-weight: var(--leo-font-weight-extra);
	letter-spacing: -0.025em;
	line-height: 1.05;
	color: var(--leo-charcoal);
	margin-block: var(--leo-space-3) var(--leo-space-4);
	max-width: 14ch;
}

.leo-hero__subtitle {
	font-size: clamp(1.0625rem, 1.1vw + 0.5rem, 1.25rem);
	color: var(--leo-slate);
	line-height: 1.7;
	margin-bottom: var(--leo-space-5);
	max-width: 52ch;
}

.leo-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--leo-space-2);
	margin-bottom: var(--leo-space-4);
}

.leo-hero .leo-btn {
	padding: 16px 32px;
	font-size: 1rem;
	min-height: 52px;
}

.leo-hero__visual {
	display: flex;
	justify-content: center;
}

/* Hero stats card — premium glass-effect with gold border */
.leo-hero__visual-card {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--leo-space-3);
	padding: clamp(24px, 3vw, 40px);
	background: var(--leo-white);
	border-radius: 2px;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.04),
		0 24px 64px -16px rgba(31, 41, 55, 0.15);
	max-width: 480px;
	width: 100%;
	border-left: 6px solid var(--leo-gold);
	border-top: none;
	position: relative;
}

/* Tiny "BY THE NUMBERS" label above card */
.leo-hero__visual-card::before {
	content: 'BY THE NUMBERS';
	position: absolute;
	top: -28px;
	left: 0;
	font-family: var(--leo-font-heading);
	font-size: 11px;
	font-weight: var(--leo-font-weight-bold);
	letter-spacing: 0.2em;
	color: var(--leo-gold-dark);
}

.leo-hero__visual-stat {
	text-align: left;
	padding: var(--leo-space-2) 0;
}

.leo-hero__visual-number {
	display: block;
	font-family: var(--leo-font-heading);
	font-size: clamp(2.25rem, 3.5vw + 0.5rem, 3rem);
	font-weight: var(--leo-font-weight-extra);
	color: var(--leo-charcoal);
	letter-spacing: -0.03em;
	line-height: 1;
	margin-bottom: var(--leo-space-1);
}

.leo-hero__visual-label {
	display: block;
	font-size: 0.75rem;
	color: var(--leo-slate);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: var(--leo-font-weight-medium);
}

/* ── Stat block (McKinsey-style: HUGE numbers, minimal labels) ────────── */
.leo-stat-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--leo-space-5);
}

@media (min-width: 768px) {
	.leo-stat-grid { grid-template-columns: repeat(4, 1fr); gap: var(--leo-space-6); }
}

.leo-stat {
	text-align: left;
	padding-block: var(--leo-space-3);
	border-top: 3px solid var(--leo-gold);
	padding-top: var(--leo-space-3);
}

.leo-stat__number {
	display: block;
	font-family: var(--leo-font-heading);
	font-size: clamp(3rem, 7vw + 0.5rem, 5.5rem);
	font-weight: var(--leo-font-weight-extra);
	color: var(--leo-charcoal);
	letter-spacing: -0.035em;
	line-height: 0.95;
	margin-bottom: var(--leo-space-2);
}

.leo-stat__label {
	display: block;
	font-size: 0.875rem;
	color: var(--leo-slate);
	line-height: 1.5;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: var(--leo-font-weight-medium);
	max-width: 18ch;
}

/* ── Service card on Home (number prefix McKinsey style) ──────────────── */
.leo-service-card {
	counter-increment: service-counter;
	position: relative;
	padding-top: clamp(40px, 4vw, 56px);
}

.leo-service-card::before {
	content: counter(service-counter, decimal-leading-zero);
	position: absolute;
	top: clamp(16px, 2vw, 24px);
	right: clamp(20px, 2.5vw, 32px);
	font-family: var(--leo-font-heading);
	font-size: 14px;
	font-weight: var(--leo-font-weight-bold);
	color: var(--leo-gold-dark);
	letter-spacing: 0.1em;
}

.leo-grid--3.leo-service-card-grid {
	counter-reset: service-counter;
}

.leo-service-card .leo-card__title a {
	color: var(--leo-charcoal);
	text-decoration: none;
}

.leo-service-card .leo-card__title a:hover {
	color: var(--leo-gold-dark);
}

.leo-service-card .leo-btn--ghost {
	margin-top: var(--leo-space-3);
	padding-left: 0;
	color: var(--leo-charcoal);
	font-weight: var(--leo-font-weight-medium);
}

.leo-service-card .leo-btn--ghost:hover {
	color: var(--leo-gold-dark);
	background: transparent;
}

/* ── Prose (long-form text) ───────────────────────────────────────────── */
.leo-prose p {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--leo-slate);
	margin-bottom: var(--leo-space-3);
}

.leo-prose em {
	color: var(--leo-charcoal);
	font-style: italic;
}

/* ── Timeline ─────────────────────────────────────────────────────────── */
.leo-timeline {
	position: relative;
	max-width: 800px;
	margin-inline: auto;
}

.leo-timeline::before {
	content: '';
	position: absolute;
	left: 100px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: var(--leo-gold);
	opacity: 0.3;
}

.leo-timeline__item {
	position: relative;
	display: grid;
	grid-template-columns: 100px 1fr;
	gap: var(--leo-space-3);
	padding-bottom: var(--leo-space-4);
	padding-left: var(--leo-space-1);
}

.leo-timeline__item:last-child {
	padding-bottom: 0;
}

.leo-timeline__item::before {
	content: '';
	position: absolute;
	left: 94px;
	top: 8px;
	width: 14px;
	height: 14px;
	background: var(--leo-gold);
	border: 3px solid var(--leo-cream);
	border-radius: var(--leo-radius-full);
	z-index: 1;
}

.leo-timeline__item--featured::before {
	width: 20px;
	height: 20px;
	left: 91px;
	top: 5px;
	background: var(--leo-gold-dark);
	box-shadow: 0 0 0 4px rgba(201, 162, 74, 0.2);
}

.leo-timeline__year {
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-bold);
	color: var(--leo-gold-dark);
	font-size: 0.875rem;
	text-align: right;
	padding-top: 2px;
}

.leo-timeline__content {
	padding-left: var(--leo-space-3);
}

.leo-timeline__title {
	font-size: 1.125rem;
	margin-bottom: var(--leo-space-1);
}

.leo-timeline__item--featured .leo-timeline__title {
	color: var(--leo-gold-dark);
}

@media (max-width: 600px) {
	.leo-timeline::before { left: 8px; }
	.leo-timeline__item { grid-template-columns: 1fr; padding-left: var(--leo-space-3); }
	.leo-timeline__item::before { left: 2px; top: 4px; }
	.leo-timeline__item--featured::before { left: -1px; }
	.leo-timeline__year { text-align: left; }
	.leo-timeline__content { padding-left: 0; }
}

/* ── Award card (Bằng khen VAA) ───────────────────────────────────────── */
.leo-award-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--leo-space-4);
	padding: var(--leo-space-5);
	background: var(--leo-cream);
	border-radius: var(--leo-radius-lg);
	border-left: 4px solid var(--leo-gold);
	box-shadow: var(--leo-shadow-md);
}

@media (min-width: 768px) {
	.leo-award-card {
		grid-template-columns: 2fr 1fr;
	}
}

.leo-award-card__title {
	font-size: 1.25rem;
	color: var(--leo-gold-dark);
	margin-bottom: var(--leo-space-3);
}

.leo-award-card__quote {
	font-size: 1.0625rem;
	font-style: italic;
	color: var(--leo-charcoal);
	line-height: 1.7;
	margin-block: 0 var(--leo-space-3);
	padding-left: var(--leo-space-3);
	border-left: 2px solid var(--leo-gold);
}

.leo-award-card__cite {
	font-size: var(--leo-font-size-small);
	color: var(--leo-slate);
	margin: 0;
}

.leo-award-card__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--leo-space-2);
	padding: var(--leo-space-3);
	background: var(--leo-white);
	border-radius: var(--leo-radius-md);
	color: var(--leo-gold);
	text-align: center;
	min-height: 180px;
}

.leo-award-card__placeholder p {
	font-size: var(--leo-font-size-small);
	color: var(--leo-slate);
	margin: 0;
}

/* ── Team card (Đội ngũ) ──────────────────────────────────────────────── */
.leo-team-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--leo-space-3);
	padding: var(--leo-space-4);
	background: var(--leo-white);
	border-radius: var(--leo-radius-lg);
	box-shadow: var(--leo-shadow-sm);
	border: 1px solid var(--leo-gray-light);
}

@media (min-width: 768px) {
	.leo-team-card {
		grid-template-columns: 160px 1fr;
		gap: var(--leo-space-4);
		align-items: start;
	}
}

.leo-team-card--featured {
	background: linear-gradient(135deg, var(--leo-cream) 0%, var(--leo-white) 100%);
	border-color: var(--leo-gold);
	border-width: 2px;
}

.leo-team-card__avatar {
	display: flex;
	justify-content: center;
}

.leo-team-card__monogram {
	width: 140px;
	height: 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--leo-gold);
	color: var(--leo-charcoal); /* charcoal text on gold for WCAG AA contrast (5.26:1) */
	font-family: var(--leo-font-heading);
	font-size: 3rem;
	font-weight: var(--leo-font-weight-extra);
	border-radius: var(--leo-radius-full);
	letter-spacing: var(--leo-letter-spacing-tight);
}

.leo-team-card__name {
	font-size: 1.25rem;
	margin-bottom: var(--leo-space-1);
}

.leo-team-card__role {
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-medium);
	color: var(--leo-gold-dark);
	margin-bottom: var(--leo-space-2);
}

.leo-team-card__bio {
	color: var(--leo-slate);
	line-height: 1.7;
	margin: 0;
}

/* ── Stat grid variants ───────────────────────────────────────────────── */
.leo-stat-grid--6 {
	grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 768px) {
	.leo-stat-grid--6 { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) {
	.leo-stat-grid--6 { grid-template-columns: repeat(3, 1fr); }
}

/* ── Industry grid ────────────────────────────────────────────────────── */
.leo-industry-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--leo-space-2);
}

@media (min-width: 600px) {
	.leo-industry-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) {
	.leo-industry-grid { grid-template-columns: repeat(4, 1fr); }
}

.leo-industry-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--leo-space-1);
	padding: var(--leo-space-3);
	background: var(--leo-white);
	border: 1px solid var(--leo-gray-light);
	border-radius: var(--leo-radius-md);
	text-align: center;
	transition: all var(--leo-transition-base);
}

.leo-industry-card:hover {
	border-color: var(--leo-gold);
	transform: translateY(-2px);
	box-shadow: var(--leo-shadow-sm);
}

.leo-industry-card__icon {
	font-size: 2rem;
	display: block;
}

.leo-industry-card__name {
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-medium);
	color: var(--leo-charcoal);
	font-size: 0.95rem;
}

/* ── Service nav sticky ───────────────────────────────────────────────── */
.leo-service-nav {
	position: sticky;
	top: 72px; /* header height */
	z-index: 50;
	background: var(--leo-white);
	border-bottom: 1px solid var(--leo-gray-light);
	box-shadow: var(--leo-shadow-sm);
	padding-block: var(--leo-space-2);
}

.leo-service-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var(--leo-space-3);
	overflow-x: auto;
	scrollbar-width: thin;
}

.leo-service-nav__list li {
	flex-shrink: 0;
}

.leo-service-nav__list a {
	display: block;
	padding: var(--leo-space-1) var(--leo-space-2);
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-medium);
	font-size: 0.95rem;
	color: var(--leo-slate);
	text-decoration: none;
	border-radius: var(--leo-radius-sm);
	transition: all var(--leo-transition-base);
	white-space: nowrap;
}

.leo-service-nav__list a:hover {
	background: var(--leo-cream);
	color: var(--leo-gold-dark);
}

/* ── Service block ────────────────────────────────────────────────────── */
.leo-service-block {
	scroll-margin-top: 140px; /* offset for sticky nav + header */
}

.leo-service-block__title {
	font-size: var(--leo-font-size-h2);
	margin-bottom: var(--leo-space-2);
}

.leo-service-block__lead {
	font-size: 1.125rem;
	color: var(--leo-slate);
	line-height: 1.7;
	margin-bottom: var(--leo-space-4);
	max-width: 800px;
}

.leo-service-block__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--leo-space-4);
	margin-bottom: var(--leo-space-4);
}

@media (min-width: 768px) {
	.leo-service-block__grid { grid-template-columns: 1.2fr 1fr; }
}

.leo-service-block__subtitle {
	font-size: 1.125rem;
	color: #7A5E23; /* darker than gold-dark for WCAG AA on cream bg (5:1+) */
	margin-block: var(--leo-space-3) var(--leo-space-1);
	font-weight: var(--leo-font-weight-bold);
}

.leo-service-block__subtitle:first-child {
	margin-top: 0;
}

.leo-service-block__cta {
	margin-top: var(--leo-space-3);
}

/* Checklist (used in service blocks) */
.leo-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.leo-checklist li {
	position: relative;
	padding-left: var(--leo-space-4);
	margin-bottom: var(--leo-space-2);
	color: var(--leo-slate);
	line-height: 1.6;
}

.leo-checklist li::before {
	content: '✓';
	position: absolute;
	left: 0;
	top: 0;
	color: var(--leo-success);
	font-weight: var(--leo-font-weight-bold);
	font-size: 1.125rem;
}

ol.leo-checklist {
	counter-reset: leo-counter;
}

ol.leo-checklist li {
	counter-increment: leo-counter;
}

ol.leo-checklist li::before {
	content: counter(leo-counter);
	background: var(--leo-gold);
	color: var(--leo-white);
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--leo-radius-full);
	font-size: 0.875rem;
	top: 2px;
}

/* ── Comparison table ─────────────────────────────────────────────────── */
.leo-comparison-table {
	overflow-x: auto;
	background: var(--leo-white);
	border-radius: var(--leo-radius-lg);
	box-shadow: var(--leo-shadow-sm);
}

.leo-comparison-table table {
	width: 100%;
	border-collapse: collapse;
}

.leo-comparison-table th,
.leo-comparison-table td {
	padding: var(--leo-space-2) var(--leo-space-3);
	text-align: left;
	border-bottom: 1px solid var(--leo-gray-light);
}

.leo-comparison-table th {
	background: var(--leo-cream);
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-bold);
	color: #7A5E23; /* darker for WCAG AA on cream */
}

.leo-comparison-table tr:last-child td {
	border-bottom: none;
}

.leo-comparison-table tr:hover {
	background: var(--leo-cream);
}

.leo-comparison-table a {
	color: #7A5E23; /* darker for WCAG AA on cream (cells hover bg) */
	font-weight: var(--leo-font-weight-medium);
	text-decoration: underline;
}

/* ── Contact page layout ──────────────────────────────────────────────── */
.leo-contact-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--leo-space-5);
}

@media (min-width: 1024px) {
	.leo-contact-grid { grid-template-columns: 1.2fr 1fr; gap: var(--leo-space-6); }
}

.leo-contact-form-placeholder {
	padding: var(--leo-space-4);
	background: var(--leo-cream);
	border-radius: var(--leo-radius-lg);
	border-left: 4px solid var(--leo-gold);
	color: var(--leo-slate);
	line-height: 1.7;
}

.leo-contact-info__item {
	display: grid;
	grid-template-columns: 32px 1fr;
	gap: var(--leo-space-2);
	padding-block: var(--leo-space-2);
	border-bottom: 1px solid var(--leo-gray-light);
	line-height: 1.6;
}

.leo-contact-info__item:last-child {
	border-bottom: none;
}

.leo-contact-info__icon {
	font-size: 1.5rem;
	line-height: 1;
}

.leo-map-embed {
	overflow: hidden;
	border-radius: var(--leo-radius-lg);
	box-shadow: var(--leo-shadow-md);
}

/* ── FAQ accordion ────────────────────────────────────────────────────── */
.leo-faq {
	display: flex;
	flex-direction: column;
	gap: var(--leo-space-2);
}

.leo-faq__item {
	background: var(--leo-white);
	border: 1px solid var(--leo-gray-light);
	border-radius: var(--leo-radius-md);
	overflow: hidden;
	transition: box-shadow var(--leo-transition-base);
}

.leo-faq__item[open] {
	box-shadow: var(--leo-shadow-sm);
	border-color: var(--leo-gold);
}

.leo-faq__question {
	padding: var(--leo-space-3);
	font-family: var(--leo-font-heading);
	font-weight: var(--leo-font-weight-medium);
	font-size: 1.0625rem;
	color: var(--leo-charcoal);
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: var(--leo-space-5);
}

.leo-faq__question::-webkit-details-marker { display: none; }

.leo-faq__question::after {
	content: '+';
	position: absolute;
	right: var(--leo-space-3);
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.5rem;
	color: var(--leo-gold);
	transition: transform var(--leo-transition-base);
	font-weight: var(--leo-font-weight-regular);
	line-height: 1;
}

.leo-faq__item[open] .leo-faq__question::after {
	content: '−';
}

.leo-faq__question:hover {
	color: var(--leo-gold-dark);
}

.leo-faq__answer {
	padding: 0 var(--leo-space-3) var(--leo-space-3);
	color: var(--leo-slate);
	line-height: 1.7;
}

.leo-faq__answer p {
	margin: 0;
}

/* ── Category card (Insights) ─────────────────────────────────────────── */
.leo-category-card {
	text-decoration: none;
	color: inherit;
	display: block;
}

.leo-category-card:hover .leo-card__title {
	color: var(--leo-gold-dark);
}

/* Component-specific styles (built later):
 * .leo-testimonial-card, .leo-logo-wall (need real logos),
 * .leo-blog-card (after first posts)
 */

/* ════════════════════════════════════════════════════════════════════════
   ARTICLE LIST (v1.9 — content/blog pages, expand-to-read cards)
   Title + 2-3 line preview + fade mask + pure-CSS expand (checkbox hack)
   ════════════════════════════════════════════════════════════════════════ */

.leo-articles {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, 3vw, 40px);
	margin-top: clamp(40px, 5vw, 64px);
}

.leo-article {
	background: var(--leo-cream);
	border-top: 2px solid var(--leo-gold-dark);
	padding: clamp(28px, 4vw, 48px);
	position: relative;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.leo-article:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(31, 41, 55, 0.08);
}

.leo-article__cb {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.leo-article__num {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-gold-dark);
	display: block;
	margin-bottom: 12px;
}

.leo-article__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.25rem, 2.2vw, 1.75rem);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: var(--leo-charcoal);
	margin: 0 0 clamp(16px, 2vw, 24px) 0;
}

.leo-article__body {
	position: relative;
	max-height: 96px;  /* ~3 lines preview */
	overflow: hidden;
	transition: max-height 0.7s ease-in-out;
}
.leo-article__body p {
	margin: 0 0 16px 0;
	color: var(--leo-charcoal);
	line-height: 1.75;
	font-size: clamp(0.9375rem, 1.1vw, 1.0625rem);
}
.leo-article__body p:last-child { margin-bottom: 0; }
.leo-article__body strong { font-weight: 700; color: var(--leo-charcoal); }
.leo-article__body em { color: var(--leo-gold-dark); font-style: italic; }
.leo-article__body h4 {
	font-family: var(--leo-font-heading);
	font-size: 1.0625rem;
	font-weight: 800;
	color: var(--leo-charcoal);
	margin: 24px 0 12px 0;
	letter-spacing: -0.01em;
}
.leo-article__body ul,
.leo-article__body ol {
	margin: 0 0 16px 0;
	padding-left: 24px;
}
.leo-article__body li {
	color: var(--leo-charcoal);
	line-height: 1.7;
	margin-bottom: 8px;
	font-size: clamp(0.9375rem, 1.1vw, 1.0625rem);
}
.leo-article__body table {
	width: 100%;
	border-collapse: collapse;
	margin: 16px 0 24px 0;
	font-size: 0.9375rem;
}
.leo-article__body th,
.leo-article__body td {
	text-align: left;
	padding: 10px 14px;
	border-bottom: 1px solid rgba(31, 41, 55, 0.12);
}
.leo-article__body th {
	font-family: var(--leo-font-heading);
	font-weight: 700;
	color: var(--leo-gold-dark);
	background: rgba(201, 162, 74, 0.06);
}
.leo-article__body blockquote,
.leo-article__body p.leo-article__note {
	border-left: 3px solid var(--leo-gold);
	padding-left: 20px;
	font-style: italic;
	color: var(--leo-slate);
	margin: 20px 0;
}

/* Fade gradient when collapsed */
.leo-article__body::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60px;
	background: linear-gradient(180deg, rgba(250, 247, 240, 0) 0%, var(--leo-cream) 85%);
	pointer-events: none;
	transition: opacity 0.4s ease;
}
.leo-article__cb:checked ~ .leo-article__body { max-height: 8000px; }
.leo-article__cb:checked ~ .leo-article__body::after { opacity: 0; }

.leo-article__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: clamp(20px, 2.5vw, 28px);
	cursor: pointer;
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	user-select: none;
	transition: color 0.2s ease;
}
.leo-article__toggle::before { content: 'Đọc tiếp'; }
.leo-article__toggle::after {
	content: '\2193';
	font-size: 1rem;
	transition: transform 0.3s ease;
}
.leo-article__toggle:hover { color: var(--leo-gold); }
.leo-article__cb:checked ~ .leo-article__toggle::before { content: 'Thu gọn'; }
.leo-article__cb:checked ~ .leo-article__toggle::after { content: '\2191'; }
.leo-article__cb:focus-visible ~ .leo-article__toggle {
	outline: 2px solid var(--leo-gold);
	outline-offset: 4px;
}

/* ════════════════════════════════════════════════════════════════════════
   TESTIMONIAL CAROUSEL (v1.8 — single panel + prev/next/dots)
   Height auto-fits longest slide via CSS grid trick (all in same cell).
   ════════════════════════════════════════════════════════════════════════ */

.leo-carousel {
	margin-top: clamp(48px, 6vw, 80px);
	position: relative;
}

.leo-carousel__viewport {
	display: grid;
	grid-template-rows: 1fr;
	background: var(--leo-cream);
	border-top: 2px solid var(--leo-gold-dark);
	padding: clamp(32px, 4vw, 56px);
	overflow: hidden;
}

.leo-carousel__slide {
	grid-row: 1;
	grid-column: 1;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.45s ease;
	visibility: hidden;
}
.leo-carousel__slide.is-active {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

/* Slide content layout: avatar + attribution + years header, then quote body */
.leo-carousel__head {
	display: grid;
	grid-template-columns: 100px 1fr auto;
	gap: clamp(16px, 2vw, 28px);
	align-items: center;
	margin-bottom: clamp(24px, 3vw, 36px);
}
@media (max-width: 600px) {
	.leo-carousel__head {
		grid-template-columns: 64px 1fr;
		grid-template-rows: auto auto;
	}
	.leo-carousel__years {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

.leo-carousel__avatar {
	width: 100px;
	height: 100px;
	background: var(--leo-white);
	border: 1px solid rgba(201, 162, 74, 0.25);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	flex-shrink: 0;
}
@media (max-width: 600px) {
	.leo-carousel__avatar { width: 64px; height: 64px; }
}
.leo-carousel__avatar img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.leo-carousel__avatar--monogram {
	background: var(--leo-charcoal);
	color: var(--leo-gold);
	font-family: var(--leo-font-heading);
	font-size: 2rem;
	font-weight: 800;
	letter-spacing: -0.04em;
}

.leo-carousel__attribution {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.leo-carousel__author {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
	font-weight: 800;
	color: var(--leo-charcoal);
	letter-spacing: -0.01em;
	line-height: 1.2;
}
.leo-carousel__role {
	font-size: 0.875rem;
	color: var(--leo-slate);
	line-height: 1.4;
}
.leo-carousel__role strong {
	color: var(--leo-gold-dark);
	font-weight: 700;
}

.leo-carousel__years {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--leo-gold-dark);
	padding: 8px 14px;
	border: 1px solid rgba(201, 162, 74, 0.3);
	white-space: nowrap;
}

.leo-carousel__body {
	position: relative;
	padding-left: clamp(28px, 3vw, 44px);
}
.leo-carousel__body::before {
	content: '\201C';
	position: absolute;
	top: -16px;
	left: 0;
	font-family: var(--leo-font-heading);
	font-size: clamp(3.5rem, 5vw, 4.5rem);
	line-height: 1;
	color: var(--leo-gold);
	opacity: 0.5;
	font-weight: 800;
}
.leo-carousel__body p {
	margin: 0 0 16px 0;
	color: var(--leo-charcoal);
	line-height: 1.7;
	font-size: clamp(0.9375rem, 1.1vw, 1.0625rem);
}
.leo-carousel__body p:last-child { margin-bottom: 0; }

/* Navigation bar — same cream tone as viewport, subtle divider */
.leo-carousel__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: clamp(20px, 2.5vw, 28px) clamp(24px, 3vw, 40px);
	background: var(--leo-cream);
	color: var(--leo-charcoal);
	border-top: 1px solid rgba(201, 162, 74, 0.25);
}

.leo-carousel__btn {
	background: transparent;
	border: 1px solid var(--leo-gold-dark);
	color: var(--leo-gold-dark);
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 1.25rem;
	transition: all 0.2s ease;
	font-family: inherit;
	border-radius: 0;
}
.leo-carousel__btn:hover {
	background: var(--leo-gold-dark);
	color: var(--leo-white);
	border-color: var(--leo-gold-dark);
}
.leo-carousel__btn:focus-visible {
	outline: 2px solid var(--leo-gold);
	outline-offset: 2px;
}

.leo-carousel__dots {
	display: flex;
	gap: 10px;
	flex: 1;
	justify-content: center;
}
.leo-carousel__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(31, 41, 55, 0.2);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: all 0.2s ease;
}
.leo-carousel__dot:hover {
	background: rgba(31, 41, 55, 0.5);
}
.leo-carousel__dot.is-active {
	background: var(--leo-gold-dark);
	transform: scale(1.3);
}
.leo-carousel__dot:focus-visible {
	outline: 2px solid var(--leo-gold);
	outline-offset: 3px;
}

.leo-carousel__counter {
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	color: var(--leo-slate);
	min-width: 50px;
	text-align: right;
}

/* ════════════════════════════════════════════════════════════════════════
   TESTIMONIAL CARDS (v1.7 — DEPRECATED, kept for backward compat)
   ════════════════════════════════════════════════════════════════════════ */

.leo-testimonials {
	display: flex;
	flex-direction: column;
	gap: clamp(32px, 4vw, 56px);
	margin-top: clamp(48px, 6vw, 80px);
}

.leo-testimonial {
	background: var(--leo-cream);
	padding: clamp(28px, 4vw, 48px);
	border-top: 2px solid var(--leo-gold-dark);
	position: relative;
	transition: transform 0.2s ease;
}
.leo-testimonial:hover { transform: translateY(-2px); }

.leo-testimonial__cb {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.leo-testimonial__head {
	display: grid;
	grid-template-columns: 100px 1fr auto;
	gap: clamp(16px, 2vw, 28px);
	align-items: center;
	margin-bottom: clamp(20px, 3vw, 32px);
}
@media (max-width: 600px) {
	.leo-testimonial__head {
		grid-template-columns: 64px 1fr;
		grid-template-rows: auto auto;
	}
	.leo-testimonial__years {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

.leo-testimonial__avatar {
	width: 100px;
	height: 100px;
	background: var(--leo-white);
	border: 1px solid rgba(201, 162, 74, 0.25);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	flex-shrink: 0;
}
@media (max-width: 600px) {
	.leo-testimonial__avatar { width: 64px; height: 64px; }
}
.leo-testimonial__avatar img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.leo-testimonial__avatar--monogram {
	background: var(--leo-charcoal);
	color: var(--leo-gold);
	font-family: var(--leo-font-heading);
	font-size: 2rem;
	font-weight: 800;
	letter-spacing: -0.04em;
}

.leo-testimonial__attribution {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.leo-testimonial__author {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
	font-weight: 800;
	color: var(--leo-charcoal);
	letter-spacing: -0.01em;
	line-height: 1.2;
}
.leo-testimonial__role {
	font-size: 0.875rem;
	color: var(--leo-slate);
	line-height: 1.4;
}
.leo-testimonial__role strong {
	color: var(--leo-gold-dark);
	font-weight: 700;
}

.leo-testimonial__years {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--leo-gold-dark);
	padding: 8px 14px;
	border: 1px solid rgba(201, 162, 74, 0.3);
	white-space: nowrap;
}

.leo-testimonial__body {
	position: relative;
	max-height: 110px;  /* show ~2 lines, then fade */
	overflow: hidden;
	padding-left: clamp(28px, 3vw, 44px);
	transition: max-height 0.6s ease-in-out;
}
.leo-testimonial__body::before {
	content: '\201C';
	position: absolute;
	top: -16px;
	left: 0;
	font-family: var(--leo-font-heading);
	font-size: clamp(3.5rem, 5vw, 4.5rem);
	line-height: 1;
	color: var(--leo-gold);
	opacity: 0.5;
	font-weight: 800;
}
.leo-testimonial__body p {
	margin: 0 0 16px 0;
	color: var(--leo-charcoal);
	line-height: 1.7;
	font-size: clamp(0.9375rem, 1.1vw, 1.0625rem);
}
.leo-testimonial__body p:last-child { margin-bottom: 0; }
.leo-testimonial__body::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 70px;
	background: linear-gradient(180deg, rgba(250, 247, 240, 0) 0%, var(--leo-cream) 85%);
	pointer-events: none;
	transition: opacity 0.4s ease;
}

.leo-testimonial__cb:checked ~ .leo-testimonial__body { max-height: 3000px; }
.leo-testimonial__cb:checked ~ .leo-testimonial__body::after { opacity: 0; }

.leo-testimonial__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: clamp(16px, 2vw, 24px);
	cursor: pointer;
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	user-select: none;
	transition: color 0.2s ease;
}
.leo-testimonial__toggle::before { content: 'Xem thêm'; }
.leo-testimonial__toggle::after {
	content: '\2193';
	font-size: 1rem;
	transition: transform 0.3s ease;
}
.leo-testimonial__toggle:hover { color: var(--leo-gold); }
.leo-testimonial__cb:checked ~ .leo-testimonial__toggle::before { content: 'Thu gọn'; }
.leo-testimonial__cb:checked ~ .leo-testimonial__toggle::after { content: '\2191'; }
.leo-testimonial__cb:focus-visible ~ .leo-testimonial__toggle {
	outline: 2px solid var(--leo-gold);
	outline-offset: 4px;
}

/* (removed nth-child alternation — uniform cream/gold-dark style) */

/* ════════════════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATION (v1.6 — addresses iPhone/Android UX issues)
   ════════════════════════════════════════════════════════════════════════ */

@media (max-width: 767px) {
	/* === HEADER (Theme Builder) — FORCE 3 columns side-by-side on mobile === */
	header[data-elementor-type="header"] .elementor-container,
	header[data-elementor-type="header"] .elementor-container.elementor-column-gap-default {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		gap: 8px !important;
	}
	header[data-elementor-type="header"] .elementor-column,
	header[data-elementor-type="header"] .elementor-top-column {
		width: auto !important;
		flex: 0 0 auto !important;
		max-width: none !important;
	}
	/* Logo column — fixed width, left */
	header[data-elementor-type="header"] .elementor-column:first-child {
		flex: 0 0 auto !important;
	}
	/* === HIDE CTA on mobile === */
	header[data-elementor-type="header"] .elementor-column:last-child {
		display: none !important;
	}
	/* Menu column — burger pushed to RIGHT edge */
	header[data-elementor-type="header"] .elementor-column:nth-child(2) {
		flex: 1 1 auto !important;
		text-align: right !important;
		margin-left: auto !important;
	}
	header[data-elementor-type="header"] .elementor-column:nth-child(2) .elementor-widget-wrap {
		justify-content: flex-end !important;
		padding: 0 !important;
	}
	/* Logo image smaller */
	header[data-elementor-type="header"] .elementor-widget-image img {
		max-height: 36px !important;
		height: 36px !important;
	}
	/* Burger toggle — align RIGHT (far edge) */
	header[data-elementor-type="header"] .elementor-nav-menu--burger,
	header[data-elementor-type="header"] .elementor-menu-toggle {
		margin-left: auto !important;
		margin-right: 0 !important;
		display: inline-flex !important;
	}

	/* === Dropdown menu — FIXED full-viewport overlay === */
	header[data-elementor-type="header"] {
		position: sticky !important;
		top: 0;
		z-index: 100;
	}
	header[data-elementor-type="header"] {
		overflow: visible !important;
	}
	header[data-elementor-type="header"] .elementor-section {
		overflow: visible !important;
	}
	header[data-elementor-type="header"] .elementor-nav-menu__container.elementor-nav-menu--dropdown,
	header[data-elementor-type="header"] nav.elementor-nav-menu__container,
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown {
		position: fixed !important;
		top: 45px !important; /* exact header height: 36px logo + 8px padding + 1px border */
		left: 0 !important;
		right: 0 !important;
		width: 100vw !important;
		max-width: 100vw !important;
		background: var(--leo-white) !important;
		box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;
		border-top: 2px solid var(--leo-gold) !important;
		padding: 0 !important;
		margin: 0 !important;
		z-index: 99;
	}
	/* Nuke ALL spacing inside dropdown */
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown ul,
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-nav-menu,
	header[data-elementor-type="header"] nav.elementor-nav-menu--dropdown ul {
		padding: 0 !important;
		margin: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		list-style: none !important;
	}
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown li {
		padding: 0 !important;
		margin: 0 !important;
		width: 100% !important;
		display: block !important;
	}
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown li > a,
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown li > a.elementor-item {
		padding: 16px 20px !important;
		margin: 0 !important;
		display: block !important;
		width: 100% !important;
	}
	/* Menu items inside dropdown - clean styling */
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown li a {
		padding: 14px 20px !important;
		font-size: 0.9375rem !important;
		font-family: var(--leo-font-heading) !important;
		font-weight: 600 !important;
		color: var(--leo-charcoal) !important;
		text-align: left !important;
		border-bottom: 1px solid var(--leo-gray-light) !important;
	}
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown li:last-child a {
		border-bottom: none !important;
	}
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown li a:hover,
	header[data-elementor-type="header"] .elementor-nav-menu--dropdown li.current-menu-item a {
		background: var(--leo-cream) !important;
		color: var(--leo-gold-dark) !important;
	}
	/* CTA — small compact */
	header[data-elementor-type="header"] .elementor-button {
		padding: 8px 12px !important;
		font-size: 11px !important;
		letter-spacing: 0.02em !important;
		white-space: nowrap !important;
	}
	/* Tighten outer section padding */
	header[data-elementor-type="header"] > section,
	header[data-elementor-type="header"] .elementor-section,
	header[data-elementor-type="header"] .elementor-top-section {
		padding: 4px 12px !important;
	}
	/* Widget wrap collapse padding */
	header[data-elementor-type="header"] .elementor-widget-wrap {
		padding: 0 !important;
		justify-content: flex-end !important;
	}
	header[data-elementor-type="header"] .elementor-column:first-child .elementor-widget-wrap {
		justify-content: flex-start !important;
	}

	/* === HOME HERO — tighter mobile === */
	.leo-hero-edit {
		padding-block: clamp(80px, 14vw, 120px);
	}
	.leo-hero-edit__title {
		font-size: clamp(1.875rem, 8vw, 2.75rem);
		line-height: 1.15; /* clearance for Vietnamese diacritics */
		letter-spacing: -0.03em;
		max-width: 100%;
	}
	.leo-hero-edit__lead {
		font-size: 0.9375rem;
		line-height: 1.55;
	}
	.leo-hero-edit__est {
		font-size: 0.625rem;
		letter-spacing: 0.18em;
		margin-bottom: 20px;
	}
	.leo-hero-edit__est::before {
		width: 24px;
	}
	.leo-hero-edit__actions {
		gap: 10px;
	}
	.leo-hero-edit__actions > * {
		flex: 1 1 calc(50% - 5px);
		text-align: center;
		justify-content: center;
		padding: 13px 18px !important;
		font-size: 13px !important;
	}

	/* HERO META — compact 2x2 grid (was single column eating space) */
	.leo-hero-edit__meta {
		grid-template-columns: 1fr 1fr;
		gap: 14px 18px;
		padding: 18px;
		margin-top: 28px;
	}
	.leo-hero-edit__meta-num {
		font-size: 1.375rem;
	}
	.leo-hero-edit__meta-label {
		font-size: 0.6875rem;
		line-height: 1.35;
	}

	/* SCROLL indicator smaller */
	.leo-hero-edit__scroll {
		font-size: 0.5625rem;
		gap: 6px;
		bottom: 16px;
	}
	.leo-hero-edit__scroll svg {
		width: 10px;
		height: 14px;
	}

	/* === INNER PAGE HERO — mobile === */
	.leo-page-hero {
		padding-block: clamp(72px, 10vw, 96px) clamp(40px, 6vw, 56px);
	}
	.leo-page-hero__title {
		font-size: clamp(2rem, 9vw, 3.25rem);
		line-height: 1.15;
		max-width: 100%;
	}
	.leo-page-hero__index {
		font-size: 0.625rem;
	}
	.leo-page-hero__wordmark {
		display: none; /* big bg letters overwhelm mobile */
	}
	.leo-page-hero__lead {
		font-size: 0.9375rem;
		line-height: 1.55;
	}

	/* === SECTION SPACING — tighter on mobile === */
	.leo-section--edit {
		padding-block: clamp(48px, 8vw, 72px);
	}
	.leo-edit-container {
		padding-inline: 20px;
	}
	.leo-section-marker {
		margin-bottom: 28px;
		font-size: 0.625rem;
	}
	.leo-edit-head__title {
		font-size: clamp(1.625rem, 7vw, 2.5rem);
		line-height: 1.15;
	}
	.leo-edit-head__lead {
		font-size: 0.9375rem;
	}

	/* === EDITORIAL GRIDS — single column on mobile === */
	.leo-edit-grid,
	.leo-edit-grid--wide,
	.leo-edit-grid--narrow,
	.leo-edit-grid--reverse {
		grid-template-columns: 1fr !important;
		gap: 28px !important;
	}

	/* === SERVICE BLOCKS (Dịch vụ) — stack === */
	.leo-edit-service {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
	.leo-edit-service__left {
		position: static !important;
		top: auto !important;
	}
	.leo-edit-service__num {
		font-size: clamp(3rem, 12vw, 4.5rem);
	}
	.leo-edit-service__title {
		font-size: clamp(1.5rem, 6.5vw, 2rem);
		line-height: 1.15;
	}
	.leo-edit-service__detail-grid {
		grid-template-columns: 1fr !important;
		gap: 28px;
	}

	/* === ANCHOR NAV (Dịch vụ) — FIXED below header on mobile === */
	.leo-anchor-nav {
		position: fixed !important;
		top: 45px !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		margin-top: 0 !important;
		z-index: 50 !important;
	}
	.leo-anchor-nav__label {
		display: none;
	}
	.leo-anchor-nav__link {
		font-size: 0.75rem;
		padding-block: 12px;
		padding-inline: 10px;
	}
	/* Push first service section down to compensate for fixed nav */
	.leo-anchor-nav + section,
	.leo-anchor-nav + #ke-toan-tron-goi {
		padding-top: 60px !important;
	}
	.leo-edit-service[id] {
		scroll-margin-top: 100px; /* header 45 + fixed nav ~44 + breath */
	}
	/* Service sticky left also flush */
	.leo-edit-service__left {
		position: static !important;
		top: auto !important;
	}

	/* === TIMELINE (Về LEO) — stack vertically on mobile (year above body) === */
	.leo-edit-timeline__entry {
		grid-template-columns: 1fr !important;
		gap: 8px !important;
	}
	.leo-edit-timeline__year {
		font-size: 1rem !important;
		font-weight: 800 !important;
		color: var(--leo-gold-dark) !important;
		line-height: 1.2;
	}
	.leo-edit-timeline__body h3 {
		font-size: 1.0625rem;
		margin-top: 4px;
	}
	.leo-edit-timeline__body p {
		font-size: 0.9375rem;
		line-height: 1.55;
	}

	/* === CINEMATIC — make taller aspect ratio on mobile (caption needs room) === */
	.leo-cinematic {
		aspect-ratio: 16 / 9 !important; /* override inline ultra-wide values */
	}
	.leo-cinematic__cap {
		font-size: 0.625rem !important;
		padding: 12px 16px !important;
		letter-spacing: 0.06em !important;
		line-height: 1.4 !important;
	}

	/* === PORTRAIT CARDS (Về LEO team) — stack === */
	.leo-portrait {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
	.leo-portrait__monogram {
		max-width: 200px;
		margin-inline: auto;
	}

	/* === LEDGER (testimonials, stats) — tighter on mobile === */
	.leo-ledger__row {
		flex-direction: column;
		align-items: flex-start !important;
		gap: 6px;
		padding-block: 16px;
	}
	.leo-ledger__value {
		font-size: 0.875rem;
	}

	/* === BG-PANEL — full mobile coverage with bottom-aligned text === */
	.leo-bg-panel {
		padding: clamp(32px, 5vw, 48px) 24px;
		min-height: clamp(240px, 40vw, 320px);
	}
	.leo-bg-panel__title {
		font-size: clamp(1.5rem, 6.5vw, 2rem);
		line-height: 1.2;
	}
	.leo-bg-panel__lead {
		font-size: 0.9375rem;
	}

	/* === SCOREBOARD === */
	.leo-scoreboard {
		grid-template-columns: 1fr 1fr !important;
		gap: 0;
	}
	.leo-scoreboard__num {
		font-size: clamp(2rem, 8vw, 3rem);
	}

	/* === CINEMATIC caption — bottom-positioned, smaller === */
	.leo-cinematic__cap {
		font-size: 0.6875rem;
		padding: 16px 20px;
	}

	/* === CONTACT FORM (Liên hệ) — fit viewport on mobile === */
	.leo-edit-form {
		padding: 28px 20px !important;
		max-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
	}
	.leo-edit-form *,
	.leo-edit-form .elementor-form,
	.leo-edit-form .elementor-form-fields-wrapper,
	.leo-edit-form .elementor-field-group,
	.leo-edit-form .elementor-field-type-text,
	.leo-edit-form .elementor-field-type-email,
	.leo-edit-form .elementor-field-type-tel,
	.leo-edit-form .elementor-field-type-select,
	.leo-edit-form .elementor-field-type-textarea,
	.leo-edit-form .elementor-field {
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
	}
	/* NUCLEAR v2: target ANY element with "elementor" in classname inside form panel.
	   Elementor template shortcode wraps in 6+ levels (.elementor → .elementor-section → .elementor-container → .elementor-column → .elementor-widget-wrap → .elementor-widget-container → form). Catches all margins/padding/transforms/negative positioning. */
	.leo-edit-form__inner [class*="elementor"],
	.leo-edit-form__inner form,
	.leo-edit-form .elementor-form-fields-wrapper > * {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		left: 0 !important;
		right: auto !important;
		transform: none !important;
		box-sizing: border-box !important;
	}
	/* Force all field cols to stack 100% width on mobile (col-50 → col-100) */
	.leo-edit-form .elementor-col-50,
	.leo-edit-form .elementor-col-100 {
		width: 100% !important;
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
	.leo-edit-form input,
	.leo-edit-form select,
	.leo-edit-form textarea {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin-left: 0 !important;
		padding-left: 0 !important;
	}

	/* FIX #2: Hero text always visible on mobile (reveal race condition on iOS Safari) */
	.leo-hero-edit__est.leo-reveal,
	.leo-hero-edit__title.leo-reveal,
	.leo-hero-edit__lead.leo-reveal,
	.leo-hero-edit__actions.leo-reveal,
	.leo-hero-edit__meta.leo-reveal,
	.leo-page-hero__title.leo-reveal,
	.leo-page-hero__lead.leo-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
	/* Shrink decorative wordmark on mobile */
	.leo-edit-form::before {
		font-size: 4.5rem !important;
		right: -20px !important;
		bottom: -30px !important;
	}
	/* Parent grid: prevent child overflow */
	.leo-edit-grid > *,
	.leo-edit-grid--wide > * {
		min-width: 0 !important;
		max-width: 100% !important;
	}

	/* === TRUST STATS (Liên hệ) === */
	.leo-edit-stats {
		grid-template-columns: 1fr 1fr !important;
		gap: 0;
	}
	.leo-edit-stats__num {
		font-size: clamp(1.5rem, 6vw, 2rem);
	}
	.leo-edit-stats__label {
		font-size: 0.6875rem;
	}

	/* === CTA closing === */
	.leo-edit-cta {
		padding-block: clamp(64px, 12vw, 96px);
	}
	.leo-edit-cta__title {
		font-size: clamp(1.625rem, 7vw, 2.25rem);
		line-height: 1.15;
	}
	.leo-edit-cta__actions {
		flex-direction: column;
		gap: 12px;
	}
	.leo-edit-cta__actions > * {
		width: 100%;
		text-align: center;
		justify-content: center;
	}

	/* === FAQ === */
	.leo-edit-faq__q {
		font-size: 0.9375rem;
		padding-block: 18px;
	}

	/* === CONTACT LEDGER === */
	.leo-contact-ledger__item {
		flex-direction: column;
		gap: 4px;
		padding-block: 16px;
	}
	.leo-contact-ledger__label {
		font-size: 0.625rem;
	}
}

	/* === FOOTER — disable burger menu, always show vertical list === */
	footer[data-elementor-type="footer"] .elementor-menu-toggle,
	footer[data-elementor-type="footer"] .elementor-nav-menu--burger > .elementor-menu-toggle {
		display: none !important;
	}
	footer[data-elementor-type="footer"] nav.elementor-nav-menu--dropdown,
	footer[data-elementor-type="footer"] .elementor-nav-menu__container,
	footer[data-elementor-type="footer"] .elementor-nav-menu--dropdown {
		position: static !important;
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		background: transparent !important;
		box-shadow: none !important;
		border: none !important;
		padding: 0 !important;
		margin: 0 !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		z-index: auto !important;
	}
	footer[data-elementor-type="footer"] .elementor-nav-menu {
		display: block !important;
		flex-direction: column !important;
	}
	footer[data-elementor-type="footer"] .elementor-nav-menu li {
		display: block !important;
		width: 100% !important;
		text-align: left !important;
	}
	footer[data-elementor-type="footer"] .elementor-nav-menu li a {
		padding: 6px 0 !important;
		margin: 0 !important;
		color: rgba(255,255,255,0.7) !important;
		font-size: 0.875rem !important;
		font-family: var(--leo-font-body) !important;
		font-weight: 400 !important;
		text-align: left !important;
		border-bottom: none !important;
		background: transparent !important;
		text-transform: none !important;
		letter-spacing: 0 !important;
	}
	footer[data-elementor-type="footer"] .elementor-nav-menu li a:hover {
		color: var(--leo-gold) !important;
		background: transparent !important;
	}
}

/* Extra-small screens (≤380px) — iPhone SE, small Androids */
@media (max-width: 380px) {
	.leo-hero-edit__title {
		font-size: 1.75rem;
	}
	.leo-page-hero__title {
		font-size: 1.875rem;
	}
	.leo-edit-container {
		padding-inline: 16px;
	}
	.leo-hero-edit__meta {
		padding: 14px;
	}
	.leo-hero-edit__meta-num {
		font-size: 1.25rem;
	}
}

/* ============================================================== */
/* v1.3.1 — Session 3 design iteration                            */
/* Header CTA gold + McKinsey patterns for About/Services/Insights/Contact */
/* ============================================================== */

/* ── Header CTA "Đặt lịch tư vấn" — force gold (override Elementor default gray) */
header[data-elementor-type="header"] .elementor-button,
header[data-elementor-type="header"] a.elementor-button,
header[data-elementor-type="header"] .elementor-widget-button .elementor-button {
	background-color: var(--leo-gold) !important;
	color: var(--leo-charcoal) !important;
	padding: 12px 24px !important;
	font-weight: 600 !important;
	font-family: var(--leo-font-heading) !important;
	font-size: 14px !important;
	letter-spacing: 0.02em !important;
	border: 2px solid var(--leo-gold) !important;
	border-radius: var(--leo-radius-md) !important;
	box-shadow: 0 2px 8px rgba(201, 162, 74, 0.15) !important;
	transition: all var(--leo-transition-base) !important;
	text-decoration: none !important;
}

header[data-elementor-type="header"] .elementor-button:hover,
header[data-elementor-type="header"] a.elementor-button:hover,
header[data-elementor-type="header"] .elementor-widget-button .elementor-button:hover {
	background-color: var(--leo-gold-dark) !important;
	color: var(--leo-white) !important;
	border-color: var(--leo-gold-dark) !important;
	box-shadow: 0 4px 12px rgba(139, 111, 46, 0.25) !important;
	transform: translateY(-1px);
}

header[data-elementor-type="header"] .elementor-button:focus-visible {
	outline: 2px solid var(--leo-charcoal) !important;
	outline-offset: 2px !important;
}

/* ── Numbered service block (Services page) — McKinsey "01 / 02 / 03" */
.leo-service-block {
	position: relative;
}

.leo-service-block__num {
	display: inline-block;
	font-family: var(--leo-font-heading);
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: var(--leo-font-weight-extra);
	color: var(--leo-gold);
	line-height: 1;
	letter-spacing: -0.04em;
	margin-bottom: var(--leo-space-2);
	opacity: 0.85;
}

.leo-section--charcoal .leo-service-block__num {
	color: var(--leo-gold);
	opacity: 1;
}

.leo-service-block__eyebrow {
	display: block;
	font-family: var(--leo-font-heading);
	font-size: var(--leo-font-size-eyebrow);
	font-weight: var(--leo-font-weight-medium);
	letter-spacing: var(--leo-letter-spacing-eyebrow);
	text-transform: uppercase;
	color: var(--leo-gold-dark);
	margin-bottom: var(--leo-space-2);
}

/* ── Category card numbered variant (Insights page) */
.leo-category-card--numbered {
	position: relative;
	padding-top: clamp(40px, 6vw, 56px);
}

.leo-category-card__num {
	position: absolute;
	top: var(--leo-space-3);
	right: var(--leo-space-3);
	font-family: var(--leo-font-heading);
	font-size: 1.5rem;
	font-weight: var(--leo-font-weight-bold);
	color: var(--leo-gold);
	letter-spacing: -0.02em;
	opacity: 0.7;
}

/* ── Trust stat row (Contact page above form) */
.leo-trust-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--leo-space-3);
	padding-block: var(--leo-space-4);
	border-top: 1px solid var(--leo-gray-light);
	border-bottom: 1px solid var(--leo-gray-light);
	margin-block: var(--leo-space-4);
}

.leo-trust-row__item {
	text-align: center;
}

.leo-trust-row__num {
	display: block;
	font-family: var(--leo-font-heading);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: var(--leo-font-weight-extra);
	color: var(--leo-charcoal);
	line-height: 1;
	letter-spacing: -0.03em;
	margin-bottom: var(--leo-space-1);
}

.leo-trust-row__label {
	font-size: var(--leo-font-size-small);
	color: var(--leo-slate);
	letter-spacing: 0.02em;
}

/* ── Insights category card refinement — taller, more McKinsey */
.leo-category-card {
	padding: clamp(28px, 4vw, 40px);
	border-top: 3px solid transparent;
	transition: border-top-color var(--leo-transition-base), transform var(--leo-transition-base);
}

.leo-category-card:hover {
	border-top-color: var(--leo-gold);
	transform: translateY(-4px);
}

/* ── Section padding tighter on page heros (was full-bleed too tall on inner pages) */
.leo-hero:not(.leo-hero--full) {
	padding-block: clamp(64px, 10vw, 120px) clamp(48px, 8vw, 96px);
}

/* ── Page hero eyebrow on light bg (was using on-dark variant) */
.leo-hero:not(.leo-hero--full) .leo-eyebrow {
	color: var(--leo-gold-dark);
}

/* ── Tighter contact info icon column */
.leo-contact-info__icon {
	font-size: 1.5rem;
	flex-shrink: 0;
	width: 32px;
	text-align: center;
}

/* ── Service block CTA right-aligned for cleaner balance */
.leo-service-block__cta {
	margin-top: var(--leo-space-5);
	padding-top: var(--leo-space-4);
	border-top: 1px solid var(--leo-gray-light);
}

.leo-section--cream .leo-service-block__cta {
	border-top-color: rgba(201, 162, 74, 0.15);
}

.leo-section--charcoal .leo-service-block__cta {
	border-top-color: rgba(255, 255, 255, 0.1);
}

/* ════════════════════════════════════════════════════════════════════════
   v1.4.0 — EDITORIAL OVERHAUL (Big4 audit refined)
   Direction: refined minimalism + editorial precision (Deloitte/KPMG vibe)
   Asymmetric grids · massive Manrope display · thin gold rules · ledger data
   ════════════════════════════════════════════════════════════════════════ */

/* ── Tabular nums everywhere stats appear */
.leo-stat__number,
.leo-mega-num,
.leo-scoreboard__num,
.leo-edit-stats__num,
.leo-edit-service__num,
.leo-edit-timeline__year,
.leo-ledger__value,
.leo-hero-editorial__meta-num,
.leo-hero-editorial__title strong {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum";
}

/* ── Editorial container — breaks 1200 grid, uses 1440 */
.leo-edit-container {
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
}

/* ── Custom scrollbar — gold thin */
@media (pointer: fine) {
	html { scrollbar-width: thin; scrollbar-color: var(--leo-gold) var(--leo-gray-light); }
	::-webkit-scrollbar { width: 10px; height: 10px; }
	::-webkit-scrollbar-track { background: var(--leo-gray-light); }
	::-webkit-scrollbar-thumb { background: var(--leo-gold); border: 2px solid var(--leo-gray-light); border-radius: 5px; }
	::-webkit-scrollbar-thumb:hover { background: var(--leo-gold-dark); }
}

/* ── Atmospheric grain overlay (subtle SVG noise) */
.leo-grain {
	position: relative;
	isolation: isolate;
}
.leo-grain::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: 0.35;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.4'/></svg>");
}
.leo-grain > * { position: relative; z-index: 1; }

.leo-section--charcoal.leo-grain::after { opacity: 0.18; mix-blend-mode: screen; }

/* ── Section marker — micro-label with leading gold rule */
.leo-section-marker {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-slate);
	margin-bottom: clamp(24px, 3vw, 40px);
}
.leo-section-marker::before {
	content: '';
	display: block;
	width: 40px;
	height: 1px;
	background: var(--leo-gold);
}
.leo-section-marker__num {
	font-variant-numeric: tabular-nums;
	color: var(--leo-charcoal);
}
.leo-section--charcoal .leo-section-marker { color: rgba(255, 255, 255, 0.6); }
.leo-section--charcoal .leo-section-marker__num { color: var(--leo-cream); }

/* ── Editorial section header — replaces .leo-section-header (asymmetric, marker + title) */
.leo-edit-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(16px, 2vw, 24px);
	margin-bottom: clamp(48px, 7vw, 80px);
	max-width: 880px;
}

.leo-edit-head__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-gold-dark);
}
.leo-edit-head__eyebrow::before {
	content: '';
	display: block;
	width: 32px;
	height: 1px;
	background: var(--leo-gold);
}

.leo-edit-head__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(2rem, 5.2vw, 4rem);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.035em;
	color: var(--leo-charcoal);
	margin: 0;
}

.leo-edit-head__title em {
	font-style: normal;
	color: var(--leo-gold-dark);
	font-weight: 800;
	font-feature-settings: "ss01";
}

.leo-edit-head__lead {
	font-family: var(--leo-font-body);
	font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
	line-height: 1.55;
	color: var(--leo-slate);
	max-width: 64ch;
	margin: 0;
}

.leo-section--charcoal .leo-edit-head__title { color: var(--leo-white); }
.leo-section--charcoal .leo-edit-head__lead { color: rgba(255, 255, 255, 0.75); }
.leo-section--charcoal .leo-edit-head__eyebrow { color: var(--leo-gold); }

/* ── Editorial asymmetric 2-col grids */
.leo-edit-grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: clamp(32px, 5vw, 96px);
	align-items: start;
}
.leo-edit-grid--reverse { grid-template-columns: 2fr 1fr; }
.leo-edit-grid--narrow { grid-template-columns: 1fr 3fr; }
.leo-edit-grid--wide { grid-template-columns: 3fr 2fr; }

@media (max-width: 900px) {
	.leo-edit-grid, .leo-edit-grid--reverse, .leo-edit-grid--narrow, .leo-edit-grid--wide {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

/* ── Mega number — signature display moment */
.leo-mega-num {
	font-family: var(--leo-font-heading);
	font-size: clamp(5rem, 14vw, 12rem);
	font-weight: 800;
	line-height: 0.85;
	letter-spacing: -0.06em;
	color: var(--leo-charcoal);
	display: block;
}
.leo-mega-num--gold { color: var(--leo-gold); }
.leo-mega-num--outline {
	-webkit-text-stroke: 2px var(--leo-charcoal);
	-webkit-text-fill-color: transparent;
	color: transparent;
}
.leo-section--charcoal .leo-mega-num { color: var(--leo-cream); }
.leo-section--charcoal .leo-mega-num--gold { color: var(--leo-gold); }
.leo-section--charcoal .leo-mega-num--outline {
	-webkit-text-stroke: 2px var(--leo-gold);
}

.leo-mega-num__sub {
	display: block;
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-slate);
	margin-top: 16px;
}
.leo-section--charcoal .leo-mega-num__sub { color: rgba(255, 255, 255, 0.55); }

/* ── Wordmark — decorative behind-content text */
.leo-wordmark {
	position: absolute;
	font-family: var(--leo-font-heading);
	font-weight: 800;
	font-size: clamp(8rem, 24vw, 22rem);
	line-height: 0.85;
	letter-spacing: -0.06em;
	color: rgba(201, 162, 74, 0.05);
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.leo-section--charcoal .leo-wordmark { color: rgba(201, 162, 74, 0.07); }

/* ── Newspaper horizontal rule */
.leo-hr {
	border: 0;
	margin: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, var(--leo-gold) 15%, var(--leo-gold) 85%, transparent 100%);
	opacity: 0.4;
}
.leo-hr--solid { background: var(--leo-charcoal); opacity: 0.9; height: 2px; }
.leo-hr--gold-solid { background: var(--leo-gold); opacity: 1; height: 2px; }
.leo-section--charcoal .leo-hr { background: linear-gradient(90deg, transparent 0%, var(--leo-gold) 15%, var(--leo-gold) 85%, transparent 100%); opacity: 0.5; }

/* ── Pill — editorial accent label */
.leo-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	border: 1px solid var(--leo-gold);
	border-radius: 999px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--leo-gold-dark);
	background: rgba(201, 162, 74, 0.06);
	white-space: nowrap;
}
.leo-pill::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--leo-gold);
	flex-shrink: 0;
}
.leo-section--charcoal .leo-pill {
	color: var(--leo-gold);
	background: rgba(201, 162, 74, 0.1);
	border-color: rgba(201, 162, 74, 0.35);
}

/* ── Bigquote — editorial pull-quote with massive open quote */
.leo-bigquote {
	position: relative;
	padding-top: clamp(60px, 8vw, 100px);
	padding-left: clamp(24px, 4vw, 64px);
}
.leo-bigquote::before {
	content: '\201C';
	position: absolute;
	top: -10px;
	left: -10px;
	font-family: var(--leo-font-heading);
	font-weight: 800;
	font-size: clamp(8rem, 16vw, 14rem);
	line-height: 1;
	color: var(--leo-gold);
	opacity: 0.9;
	pointer-events: none;
}
.leo-bigquote__text {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.375rem, 2.6vw, 2.25rem);
	font-weight: 500;
	line-height: 1.28;
	letter-spacing: -0.018em;
	color: var(--leo-charcoal);
	margin: 0 0 32px 0;
}
.leo-bigquote__cite {
	font-family: var(--leo-font-body);
	font-size: 0.9375rem;
	font-style: normal;
	color: var(--leo-slate);
	display: flex;
	align-items: center;
	gap: 16px;
}
.leo-bigquote__cite::before {
	content: '';
	width: 40px;
	height: 1px;
	background: var(--leo-gold);
}
.leo-section--charcoal .leo-bigquote__text { color: var(--leo-cream); }
.leo-section--charcoal .leo-bigquote__cite { color: rgba(255, 255, 255, 0.65); }

/* Compact variant — smaller " mark positioned above-left, doesn't overlap text */
.leo-bigquote--compact {
	padding-top: clamp(36px, 5vw, 56px);
	padding-left: clamp(32px, 4vw, 48px);
}
.leo-bigquote--compact::before {
	font-size: clamp(3.5rem, 6vw, 5rem);
	top: -8px;
	left: 0;
	opacity: 0.6;
}

/* ── Ledger — Deloitte-style data table rows */
.leo-ledger {
	border-top: 2px solid var(--leo-charcoal);
	margin-block: clamp(32px, 5vw, 64px);
}
.leo-ledger__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 32px;
	padding-block: clamp(20px, 2.5vw, 28px);
	border-bottom: 1px solid var(--leo-gray-light);
	align-items: baseline;
	transition: background 0.2s ease;
}
.leo-ledger__row:hover { background: rgba(201, 162, 74, 0.04); }
.leo-ledger__label {
	font-family: var(--leo-font-body);
	font-size: clamp(0.9375rem, 1.3vw, 1.125rem);
	font-weight: 500;
	color: var(--leo-charcoal);
	line-height: 1.45;
}
.leo-ledger__value {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.125rem, 1.8vw, 1.5rem);
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: -0.02em;
	white-space: nowrap;
}
.leo-section--charcoal .leo-ledger {
	border-top-color: var(--leo-gold);
}
.leo-section--charcoal .leo-ledger__row {
	border-bottom-color: rgba(255, 255, 255, 0.12);
}
.leo-section--charcoal .leo-ledger__row:hover { background: rgba(201, 162, 74, 0.08); }
.leo-section--charcoal .leo-ledger__label { color: var(--leo-cream); }
.leo-section--charcoal .leo-ledger__value { color: var(--leo-gold); }

/* ── Scoreboard — full-width charcoal stats band */
.leo-scoreboard {
	background: var(--leo-charcoal);
	color: var(--leo-white);
	padding-block: clamp(72px, 11vw, 144px);
	position: relative;
	overflow: hidden;
}
.leo-scoreboard::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 20% 30%, rgba(201, 162, 74, 0.1) 0%, transparent 50%),
		radial-gradient(ellipse at 80% 70%, rgba(201, 162, 74, 0.05) 0%, transparent 50%);
	pointer-events: none;
}
.leo-scoreboard__inner {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(24px, 4vw, 64px);
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
}
@media (max-width: 768px) {
	.leo-scoreboard__inner { grid-template-columns: repeat(2, 1fr); gap: 32px; }
}
.leo-scoreboard__item {
	border-left: 1px solid rgba(255, 255, 255, 0.18);
	padding-left: clamp(16px, 2vw, 32px);
}
.leo-scoreboard__num {
	font-family: var(--leo-font-heading);
	font-size: clamp(2.5rem, 6.5vw, 5.5rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: -0.045em;
	color: var(--leo-gold);
	display: block;
	margin-bottom: 16px;
}
.leo-scoreboard__label {
	font-family: var(--leo-font-body);
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.45;
	letter-spacing: 0.02em;
	max-width: 30ch;
}
.leo-scoreboard__pre {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(201, 162, 74, 0.85);
	display: block;
	margin-bottom: 12px;
}

/* ── Edit stats — compact 4-col stat row (replaces leo-trust-row) */
.leo-edit-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--leo-gray-light);
	border-bottom: 1px solid var(--leo-gray-light);
}
@media (max-width: 768px) {
	.leo-edit-stats { grid-template-columns: repeat(2, 1fr); }
}
.leo-edit-stats__item {
	padding: clamp(24px, 3.5vw, 48px) clamp(16px, 2.2vw, 32px);
	border-left: 1px solid var(--leo-gray-light);
}
.leo-edit-stats__item:first-child { border-left: 0; }
@media (max-width: 768px) {
	.leo-edit-stats__item:nth-child(odd) { border-left: 0; }
	.leo-edit-stats__item:nth-child(n+3) { border-top: 1px solid var(--leo-gray-light); }
}
.leo-edit-stats__num {
	font-family: var(--leo-font-heading);
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	font-weight: 800;
	line-height: 1;
	color: var(--leo-charcoal);
	letter-spacing: -0.03em;
	display: block;
	margin-bottom: 12px;
}
.leo-edit-stats__label {
	font-family: var(--leo-font-body);
	font-size: 0.8125rem;
	color: var(--leo-slate);
	line-height: 1.45;
	letter-spacing: 0.02em;
}

/* ── Editorial service block (sticky left, dense right) */
.leo-edit-service {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: clamp(32px, 6vw, 96px);
	padding-block: clamp(64px, 9vw, 128px);
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
}
@media (max-width: 900px) {
	.leo-edit-service { grid-template-columns: 1fr; gap: 32px; padding-block: clamp(48px, 8vw, 96px); }
}
.leo-edit-service__left { position: sticky; top: 168px; align-self: start; }
@media (max-width: 900px) {
	.leo-edit-service__left { position: static; }
}
.leo-edit-service__num {
	font-family: var(--leo-font-heading);
	font-size: clamp(4rem, 8.5vw, 7.5rem);
	font-weight: 800;
	line-height: 0.85;
	letter-spacing: -0.05em;
	color: var(--leo-gold);
	display: block;
}
.leo-edit-service__total {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	color: var(--leo-slate);
	font-weight: 500;
}
.leo-edit-service__tag {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-slate);
	border-top: 1px solid var(--leo-charcoal);
	padding-top: 16px;
	margin-top: 32px;
	display: block;
}
.leo-edit-service__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--leo-charcoal);
	margin: 0 0 24px 0;
}
.leo-edit-service__lead {
	font-family: var(--leo-font-body);
	font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
	line-height: 1.6;
	color: var(--leo-slate);
	margin: 0 0 40px 0;
	max-width: 60ch;
}
.leo-edit-service__detail-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 4vw, 56px);
}
@media (max-width: 700px) {
	.leo-edit-service__detail-grid { grid-template-columns: 1fr; gap: 32px; }
}
.leo-edit-service__subhead {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--leo-charcoal);
	margin: 0 0 16px 0;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--leo-gold);
}
.leo-edit-service__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.leo-edit-service__list li {
	padding: 12px 0 12px 28px;
	position: relative;
	border-bottom: 1px solid var(--leo-gray-light);
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--leo-charcoal);
}
.leo-edit-service__list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 22px;
	width: 16px;
	height: 1px;
	background: var(--leo-gold);
}
.leo-edit-service__list--num { counter-reset: edit-step; }
.leo-edit-service__list--num li {
	counter-increment: edit-step;
	padding-left: 44px;
}
.leo-edit-service__list--num li::before {
	content: counter(edit-step, decimal-leading-zero);
	background: transparent;
	width: auto;
	top: 14px;
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.05em;
}
.leo-edit-service__cta {
	margin-top: clamp(40px, 5vw, 64px);
	padding-top: 32px;
	border-top: 1px solid var(--leo-gray-light);
}

/* ── Editorial industry chip-grid — 6-col with icons, fills exactly 12 cells */
.leo-chip-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1px;
	background: var(--leo-gray-light);
	border: 1px solid var(--leo-gray-light);
}
@media (max-width: 1100px) { .leo-chip-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 720px)  { .leo-chip-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px)  { .leo-chip-grid { grid-template-columns: repeat(2, 1fr); } }

.leo-chip {
	background: var(--leo-white);
	padding: clamp(24px, 2.8vw, 36px) clamp(20px, 2vw, 28px);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	transition: background 0.2s ease, transform 0.2s ease;
	min-height: clamp(160px, 16vw, 200px);
	position: relative;
}
.leo-chip:hover {
	background: var(--leo-cream);
	transform: translateY(-2px);
}
.leo-chip:hover .leo-chip__icon { color: var(--leo-gold); }
.leo-chip__num {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.18em;
}
.leo-chip__icon {
	color: var(--leo-charcoal);
	transition: color 0.2s ease;
	margin-top: auto;
}
.leo-chip__icon svg { display: block; }
.leo-chip__name {
	font-family: var(--leo-font-heading);
	font-weight: 700;
	font-size: clamp(0.9375rem, 1.05vw, 1.0625rem);
	color: var(--leo-charcoal);
	letter-spacing: -0.01em;
	line-height: 1.3;
}
.leo-section--cream .leo-chip-grid { background: rgba(201, 162, 74, 0.12); border-color: rgba(201, 162, 74, 0.18); }
.leo-section--cream .leo-chip { background: var(--leo-cream); }
.leo-section--cream .leo-chip:hover { background: var(--leo-white); }

/* ── Editorial timeline (newspaper ledger style) */
.leo-edit-timeline {
	border-top: 2px solid var(--leo-charcoal);
}
.leo-edit-timeline__entry {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: clamp(24px, 4vw, 80px);
	padding-block: clamp(28px, 4vw, 48px);
	border-bottom: 1px solid var(--leo-gray-light);
	align-items: baseline;
	transition: background 0.2s ease;
}
@media (max-width: 768px) {
	.leo-edit-timeline__entry { grid-template-columns: 1fr; gap: 8px; }
}
.leo-edit-timeline__entry:hover { background: rgba(201, 162, 74, 0.04); }
.leo-edit-timeline__year {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.375rem, 2.8vw, 2.25rem);
	font-weight: 800;
	line-height: 1;
	color: var(--leo-gold);
	letter-spacing: -0.025em;
}
.leo-edit-timeline__body h3 {
	font-size: clamp(1.125rem, 1.8vw, 1.5rem);
	font-weight: 700;
	margin: 0 0 12px 0;
	line-height: 1.2;
}
.leo-edit-timeline__body p {
	color: var(--leo-slate);
	line-height: 1.6;
	margin: 0;
	font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);
}
.leo-edit-timeline__entry--featured {
	background: rgba(201, 162, 74, 0.06);
	border-bottom-color: var(--leo-gold);
	border-bottom-width: 2px;
}
.leo-edit-timeline__entry--featured .leo-edit-timeline__year { color: var(--leo-gold-dark); }
.leo-edit-timeline__entry--featured .leo-edit-timeline__body h3::before {
	content: '\2605 ';
	color: var(--leo-gold);
	margin-right: 4px;
}

/* ── Editorial portrait spread (team) */
.leo-portrait {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: clamp(32px, 5vw, 80px);
	padding-block: clamp(48px, 7vw, 96px);
	border-top: 1px solid var(--leo-gray-light);
	align-items: start;
}
.leo-portrait:first-of-type { border-top: 2px solid var(--leo-charcoal); }
@media (max-width: 768px) {
	.leo-portrait { grid-template-columns: 1fr; gap: 24px; }
}
.leo-portrait__visual {
	aspect-ratio: 4/5;
	background: var(--leo-charcoal);
	color: var(--leo-cream);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}
.leo-portrait__visual::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 30% 30%, rgba(201, 162, 74, 0.18) 0%, transparent 60%),
		radial-gradient(ellipse at 70% 70%, rgba(201, 162, 74, 0.08) 0%, transparent 60%);
}
.leo-portrait__monogram {
	font-family: var(--leo-font-heading);
	font-size: clamp(4.5rem, 9vw, 7.5rem);
	font-weight: 800;
	letter-spacing: -0.05em;
	color: var(--leo-gold);
	position: relative;
}
.leo-portrait__corner {
	position: absolute;
	bottom: 16px;
	left: 16px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	color: rgba(255, 255, 255, 0.55);
	text-transform: uppercase;
}
.leo-portrait__role {
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--leo-gold-dark);
	margin: 0 0 12px 0;
}
.leo-portrait__name {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--leo-charcoal);
	margin: 0 0 24px 0;
}
.leo-portrait__bio {
	font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);
	line-height: 1.7;
	color: var(--leo-slate);
}
.leo-portrait__bio + .leo-portrait__bio {
	margin-top: 16px;
}
.leo-portrait__bio strong {
	color: var(--leo-charcoal);
	font-weight: 700;
}

/* ── Editorial hero — TRUE full-viewport (100vh / 100dvh) like original design */
.leo-hero-edit {
	position: relative;
	min-height: 100vh;
	min-height: 100dvh; /* mobile: handle browser chrome */
	display: grid;
	align-items: center; /* vertical-center content like old design */
	overflow: hidden;
	background: var(--leo-charcoal);
	color: var(--leo-cream);
	padding-block: clamp(96px, 11vw, 144px); /* symmetric top/bottom */
}

/* ── Hero scroll hint (bottom-center, animated) */
.leo-hero-edit__scroll {
	position: absolute;
	bottom: clamp(20px, 3vw, 40px);
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
	pointer-events: none;
}
.leo-hero-edit__scroll svg {
	animation: leo-scroll-pulse 2.2s ease-in-out infinite;
}
@keyframes leo-scroll-pulse {
	0%, 100% { transform: translateY(0); opacity: 0.45; }
	50% { transform: translateY(6px); opacity: 0.9; }
}
@media (prefers-reduced-motion: reduce) {
	.leo-hero-edit__scroll svg { animation: none; }
}
.leo-hero-edit__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}
.leo-hero-edit__bg picture {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.leo-hero-edit__bg img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 35%;
	display: block;
}
.leo-hero-edit__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(31, 41, 55, 0.45) 0%, rgba(31, 41, 55, 0.3) 50%, rgba(31, 41, 55, 0.55) 100%),
		radial-gradient(ellipse at 30% 60%, rgba(31, 41, 55, 0.35) 0%, transparent 55%);
}
.leo-hero-edit__title,
.leo-hero-edit__lead,
.leo-hero-edit__est {
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}
.leo-hero-edit__inner {
	position: relative;
	z-index: 1;
	max-width: 1440px;
	width: 100%;
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: clamp(32px, 5vw, 80px);
	align-items: center; /* center meta sidebar with main content */
}
@media (max-width: 1024px) {
	.leo-hero-edit__inner { grid-template-columns: 1fr; }
}
.leo-hero-edit__est {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.25em;
	color: var(--leo-gold);
	text-transform: uppercase;
	margin-bottom: clamp(24px, 4vw, 56px);
}
.leo-hero-edit__est::before {
	content: '';
	width: 48px;
	height: 1px;
	background: var(--leo-gold);
}
.leo-hero-edit__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(2.25rem, 6.5vw, 5.5rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--leo-white);
	margin: 0 0 clamp(20px, 3vw, 32px) 0;
	max-width: 18ch;
}
.leo-hero-edit__title em {
	font-style: normal;
	color: var(--leo-gold);
}
.leo-hero-edit__lead {
	font-family: var(--leo-font-body);
	font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.85);
	max-width: 56ch;
	margin: 0 0 clamp(32px, 4vw, 56px) 0;
}
.leo-hero-edit__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.leo-hero-edit__meta {
	display: grid;
	gap: 24px;
	padding: clamp(24px, 3vw, 32px);
	background: rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-left: 2px solid var(--leo-gold);
}
.leo-hero-edit__meta-row {
	display: grid;
	gap: 4px;
}
.leo-hero-edit__meta-num {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 800;
	line-height: 1;
	color: var(--leo-gold);
	letter-spacing: -0.03em;
}
.leo-hero-edit__meta-label {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.7);
	letter-spacing: 0.04em;
}

/* ── Inner page hero (for ve-leo/dich-vu/tin-tuc/lien-he) */
.leo-page-hero {
	position: relative;
	padding-block: clamp(96px, 13vw, 160px) clamp(56px, 8vw, 96px);
	background:
		linear-gradient(180deg, var(--leo-cream) 0%, var(--leo-white) 100%);
	overflow: hidden;
	border-bottom: 1px solid rgba(201, 162, 74, 0.18);
}
.leo-page-hero__wordmark {
	position: absolute;
	top: clamp(40px, 8vw, 80px);
	right: clamp(-40px, -3vw, -20px);
	font-family: var(--leo-font-heading);
	font-weight: 800;
	font-size: clamp(8rem, 22vw, 18rem);
	line-height: 0.82;
	letter-spacing: -0.06em;
	color: rgba(201, 162, 74, 0.07);
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
}
.leo-page-hero__inner {
	position: relative;
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
}
.leo-page-hero__index {
	display: flex;
	align-items: center;
	gap: 16px;
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-slate);
	margin-bottom: clamp(24px, 4vw, 48px);
}
.leo-page-hero__index::before {
	content: '';
	width: 48px;
	height: 1px;
	background: var(--leo-gold);
}
.leo-page-hero__index span {
	color: var(--leo-charcoal);
}
.leo-page-hero__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(2.5rem, 7vw, 5.5rem);
	font-weight: 800;
	line-height: 1.15;  /* was 1.0 — clearance for Vietnamese diacritics (ủ, ấ, ặ, etc.) */
	letter-spacing: -0.04em;
	color: var(--leo-charcoal);
	margin: 0 0 clamp(20px, 3vw, 32px) 0;
	max-width: 20ch;
}
.leo-page-hero__title em {
	font-style: normal;
	color: var(--leo-gold-dark);
}
.leo-page-hero__lead {
	font-family: var(--leo-font-body);
	font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
	line-height: 1.55;
	color: var(--leo-slate);
	max-width: 60ch;
	margin: 0;
}

/* ── Issue cover (for tin-tuc categories) */
.leo-issue {
	display: block;
	background: var(--leo-white);
	border: 1px solid var(--leo-gray-light);
	padding: clamp(28px, 4vw, 48px);
	text-decoration: none;
	color: var(--leo-charcoal);
	position: relative;
	transition: border-color 0.25s ease, transform 0.25s ease;
	height: 100%;
}
.leo-issue:hover {
	border-color: var(--leo-gold);
	transform: translateY(-4px);
}
.leo-issue:hover .leo-issue__title { color: var(--leo-gold-dark); }
.leo-issue__top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: clamp(48px, 8vw, 80px);
	padding-bottom: 16px;
	border-bottom: 1px solid var(--leo-gray-light);
}
.leo-issue__num {
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.2em;
}
.leo-issue__tag {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--leo-slate);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.leo-issue__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.25rem, 2vw, 1.625rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--leo-charcoal);
	margin: 0 0 16px 0;
	transition: color 0.2s ease;
}
.leo-issue__body {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--leo-slate);
	margin: 0 0 24px 0;
}
.leo-issue__arrow {
	font-family: var(--leo-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.12em;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* Issue card icon — editorial line-art, gold on hover */
.leo-issue__icon {
	color: var(--leo-charcoal);
	margin-bottom: clamp(20px, 3vw, 32px);
	transition: color 0.2s ease, transform 0.2s ease;
	display: inline-flex;
}
.leo-issue__icon svg { display: block; }
.leo-issue:hover .leo-issue__icon {
	color: var(--leo-gold);
	transform: translateY(-2px);
}

/* ── Editorial form wrapper (contact) */
.leo-edit-form {
	background: var(--leo-charcoal);
	color: var(--leo-cream);
	padding: clamp(40px, 6vw, 72px);
	position: relative;
	overflow: hidden;
}
.leo-edit-form::before {
	content: 'LIÊN HỆ';
	position: absolute;
	right: clamp(-60px, -4vw, -30px);
	bottom: clamp(-80px, -6vw, -40px);
	font-family: var(--leo-font-heading);
	font-size: clamp(8rem, 18vw, 14rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.06em;
	color: rgba(201, 162, 74, 0.07);
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
}
.leo-edit-form__inner { position: relative; z-index: 1; }
.leo-edit-form h2,
.leo-edit-form h3 { color: var(--leo-white); }
.leo-edit-form .elementor-field-group label,
.leo-edit-form .elementor-field-label {
	color: var(--leo-cream) !important;
	font-family: var(--leo-font-heading) !important;
	font-size: 0.7rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
}
.leo-edit-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.leo-edit-form select,
.leo-edit-form textarea {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.25) !important;
	color: var(--leo-white) !important;
	border-radius: 0 !important;
	padding: 12px 0 !important;
	font-family: var(--leo-font-body) !important;
}
.leo-edit-form input::placeholder,
.leo-edit-form textarea::placeholder { color: rgba(255, 255, 255, 0.4) !important; }
.leo-edit-form input:focus,
.leo-edit-form select:focus,
.leo-edit-form textarea:focus {
	outline: 0 !important;
	border-bottom-color: var(--leo-gold) !important;
}
/* Dropdown options — readable on browser-native white panel */
.leo-edit-form select option {
	background-color: var(--leo-white) !important;
	color: var(--leo-charcoal) !important;
	padding: 8px !important;
}
.leo-edit-form select option:checked,
.leo-edit-form select option:hover {
	background-color: var(--leo-cream) !important;
	color: var(--leo-gold-dark) !important;
}
.leo-edit-form .elementor-field-group { margin-bottom: 24px !important; }
.leo-edit-form button[type="submit"],
.leo-edit-form .elementor-button {
	background: var(--leo-gold) !important;
	color: var(--leo-charcoal) !important;
	border: 0 !important;
	padding: 14px 32px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
}
.leo-edit-form button[type="submit"]:hover,
.leo-edit-form .elementor-button:hover {
	background: var(--leo-white) !important;
}

/* ── Contact info ledger style */
.leo-contact-ledger {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.leo-contact-ledger__item {
	display: grid;
	grid-template-columns: 100px minmax(0, 1fr);
	gap: 32px;
	padding-block: clamp(20px, 2.5vw, 28px);
	border-bottom: 1px solid var(--leo-gray-light);
	align-items: baseline;
}
.leo-contact-ledger__item:first-child { border-top: 2px solid var(--leo-charcoal); }
@media (max-width: 600px) {
	.leo-contact-ledger__item { grid-template-columns: 1fr; gap: 4px; padding-block: 16px; }
}
.leo-contact-ledger__label {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--leo-slate);
}
.leo-contact-ledger__value {
	font-family: var(--leo-font-body);
	font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);
	line-height: 1.5;
	color: var(--leo-charcoal);
}
.leo-contact-ledger__value a {
	color: var(--leo-gold-dark);
	font-weight: 700;
	font-family: var(--leo-font-heading);
	font-size: 1.25rem;
	letter-spacing: -0.01em;
}
.leo-contact-ledger__value a:hover { color: var(--leo-gold); }
.leo-contact-ledger__value em { color: var(--leo-slate); font-size: 0.8125rem; font-style: italic; display: block; margin-top: 6px; }

/* ── Editorial FAQ (numbered ledger) */
.leo-edit-faq { border-top: 2px solid var(--leo-charcoal); counter-reset: faq-item; }
.leo-edit-faq__item {
	counter-increment: faq-item;
	border-bottom: 1px solid var(--leo-gray-light);
}
.leo-edit-faq__item[open] { background: rgba(201, 162, 74, 0.04); }
.leo-edit-faq__q {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) 32px;
	gap: 24px;
	align-items: baseline;
	padding-block: clamp(20px, 3vw, 28px);
	cursor: pointer;
	font-family: var(--leo-font-heading);
	font-size: clamp(1rem, 1.4vw, 1.1875rem);
	font-weight: 600;
	color: var(--leo-charcoal);
	letter-spacing: -0.01em;
	list-style: none;
	transition: color 0.2s ease;
}
.leo-edit-faq__q::-webkit-details-marker { display: none; }
.leo-edit-faq__q:hover { color: var(--leo-gold-dark); }
.leo-edit-faq__q::before {
	content: counter(faq-item, decimal-leading-zero);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.1em;
	align-self: center;
}
.leo-edit-faq__q::after {
	content: '+';
	font-size: 1.5rem;
	font-weight: 300;
	color: var(--leo-gold);
	text-align: right;
	line-height: 1;
}
.leo-edit-faq__item[open] .leo-edit-faq__q::after { content: '\2212'; }
.leo-edit-faq__a {
	padding: 0 32px clamp(24px, 3vw, 32px) calc(64px + 24px);
	color: var(--leo-slate);
	line-height: 1.65;
	font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);
	max-width: 72ch;
}
.leo-edit-faq__a p { margin: 0; }

/* ── Scroll reveal — fade + translate */
.leo-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
				transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}
.leo-reveal.is-visible { opacity: 1; transform: translateY(0); }
.leo-reveal[data-delay="100"] { transition-delay: 0.1s; }
.leo-reveal[data-delay="200"] { transition-delay: 0.2s; }
.leo-reveal[data-delay="300"] { transition-delay: 0.3s; }
.leo-reveal[data-delay="400"] { transition-delay: 0.4s; }
.leo-reveal[data-delay="500"] { transition-delay: 0.5s; }
@media (prefers-reduced-motion: reduce) {
	.leo-reveal { opacity: 1; transform: none; transition: none; }
}

/* ── Section padding canonical (editorial) */
.leo-section--edit {
	padding-block: clamp(72px, 11vw, 144px);
	position: relative;
}
.leo-section--edit > .leo-edit-container {
	position: relative;
}

/* ── Editorial nav rebuild (services anchor nav) */
.leo-anchor-nav {
	position: sticky;
	top: 88px;  /* 16px gap below sticky main header (~72px tall) */
	z-index: 50;
	background: var(--leo-white);
	border-top: 1px solid var(--leo-gold);
	border-bottom: 1px solid var(--leo-gray-light);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
	margin-top: 8px;  /* extra visual breath when first entering view */
}
.leo-anchor-nav__inner {
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
	display: flex;
	align-items: center;
	gap: clamp(8px, 1.5vw, 24px);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.leo-anchor-nav__inner::-webkit-scrollbar { display: none; }
.leo-anchor-nav__label {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-slate);
	padding-block: 16px;
	padding-right: 24px;
	border-right: 1px solid var(--leo-gray-light);
	flex-shrink: 0;
}
.leo-anchor-nav__link {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-block: 16px;
	padding-inline: clamp(12px, 1.5vw, 20px);
	font-family: var(--leo-font-heading);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--leo-charcoal);
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color 0.2s ease, border-color 0.2s ease;
}
.leo-anchor-nav__link:hover,
.leo-anchor-nav__link.is-active {
	color: var(--leo-gold-dark);
	border-bottom-color: var(--leo-gold);
}
.leo-anchor-nav__num {
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--leo-gold-dark);
	letter-spacing: 0.05em;
}

/* ── Editorial CTA section */
.leo-edit-cta {
	background: var(--leo-charcoal);
	color: var(--leo-cream);
	position: relative;
	overflow: hidden;
	padding-block: clamp(80px, 11vw, 144px);
}
.leo-edit-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 30% 30%, rgba(201, 162, 74, 0.1) 0%, transparent 60%),
		radial-gradient(ellipse at 70% 70%, rgba(201, 162, 74, 0.05) 0%, transparent 60%);
}
.leo-edit-cta__inner {
	position: relative;
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: clamp(48px, 6vw, 96px);
	align-items: end;
}
@media (max-width: 900px) {
	.leo-edit-cta__inner { grid-template-columns: 1fr; gap: 32px; }
}
.leo-edit-cta__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(2rem, 5vw, 4rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.035em;
	color: var(--leo-white);
	margin: 0 0 24px 0;
	max-width: 22ch;
}
.leo-edit-cta__title em {
	font-style: normal;
	color: var(--leo-gold);
}
.leo-edit-cta__lead {
	font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.8);
	max-width: 60ch;
	margin: 0;
}
.leo-edit-cta__actions {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.leo-edit-cta__phone {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	font-weight: 700;
	color: var(--leo-gold);
	text-decoration: none;
	letter-spacing: -0.01em;
}
.leo-edit-cta__phone:hover { color: var(--leo-white); }
.leo-edit-cta__phone span {
	display: block;
	font-size: 0.6875rem;
	letter-spacing: 0.22em;
	color: rgba(255, 255, 255, 0.6);
	text-transform: uppercase;
	margin-bottom: 4px;
	font-weight: 600;
}

/* ── Buttons editorial — refined, no rounded pillows */
.leo-btn-edit {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 16px 32px;
	font-family: var(--leo-font-heading);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-decoration: none;
	border: 1.5px solid transparent;
	border-radius: 0;
	transition: all 0.2s ease;
	cursor: pointer;
}
.leo-btn-edit--primary {
	background: var(--leo-gold);
	color: var(--leo-charcoal);
	border-color: var(--leo-gold);
}
.leo-btn-edit--primary:hover {
	background: var(--leo-charcoal);
	color: var(--leo-gold);
	border-color: var(--leo-gold);
}
.leo-btn-edit--ghost {
	background: transparent;
	color: var(--leo-charcoal);
	border-color: var(--leo-charcoal);
}
.leo-btn-edit--ghost:hover {
	background: var(--leo-charcoal);
	color: var(--leo-white);
}
.leo-btn-edit--on-dark {
	background: transparent;
	color: var(--leo-cream);
	border-color: rgba(255, 255, 255, 0.4);
}
.leo-btn-edit--on-dark:hover {
	background: var(--leo-cream);
	color: var(--leo-charcoal);
	border-color: var(--leo-cream);
}
.leo-btn-edit::after {
	content: '\2192';
	transition: transform 0.2s ease;
}
.leo-btn-edit:hover::after { transform: translateX(4px); }

/* ── Inner-page anchor section snap padding (for sticky nav) */
.leo-edit-service[id] { scroll-margin-top: 168px; }
.leo-section[id] { scroll-margin-top: 130px; }

/* ── Hide old McKinsey hero on inner pages when leo-page-hero used */
body.has-leo-page-hero .leo-hero.leo-section { display: none; }

/* ════════════════════════════════════════════════════════════════════════
   IMAGE COMPONENTS (v1.5.0 — editorial rhythm: cinematic + contextual)
   ════════════════════════════════════════════════════════════════════════ */

/* ── Cinematic full-bleed moment (~12:5 ratio, big presence between sections) */
.leo-cinematic {
	width: 100%;
	aspect-ratio: 1920/800;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-color: var(--leo-charcoal);
	position: relative;
}

/* Optional caption strip overlaying bottom of cinematic */
.leo-cinematic__cap {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: clamp(20px, 2.5vw, 32px) clamp(24px, 5vw, 80px);
	background: linear-gradient(180deg, transparent 0%, rgba(31,41,55,0.7) 100%);
	color: var(--leo-cream);
	font-family: var(--leo-font-heading);
	font-size: clamp(0.75rem, 1vw, 0.9375rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	display: flex;
	align-items: center;
	gap: 16px;
}
.leo-cinematic__cap::before {
	content: '';
	width: 32px;
	height: 1px;
	background: var(--leo-gold);
}

/* ── Contextual square image (1:1, sits next to text in editorial grids) */
.leo-context-square {
	aspect-ratio: 1/1;
	width: 100%;
	max-width: 480px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-color: var(--leo-charcoal);
	box-shadow: 0 12px 32px rgba(0,0,0,0.12);
}

.leo-context-square--no-shadow { box-shadow: none; }

/* ── LEO Award Icon — symbolic certificate card (no photo) */
.leo-award-icon {
	aspect-ratio: 3/4;
	max-width: 480px;
	margin: 0 auto;
}
.leo-award-icon__frame {
	height: 100%;
	background: linear-gradient(180deg, var(--leo-charcoal) 0%, #0f1721 100%);
	border: 2px solid var(--leo-gold);
	padding: clamp(40px, 5vw, 56px) clamp(20px, 3vw, 32px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	position: relative;
	overflow: hidden;
	box-shadow: 0 16px 48px rgba(0,0,0,0.25), inset 0 0 0 1px rgba(201,162,74,0.2);
}
.leo-award-icon__frame::before,
.leo-award-icon__frame::after {
	content: '';
	position: absolute;
	width: 32px;
	height: 32px;
	border: 1px solid var(--leo-gold);
}
.leo-award-icon__frame::before {
	top: 12px;
	left: 12px;
	border-right: none;
	border-bottom: none;
}
.leo-award-icon__frame::after {
	bottom: 12px;
	right: 12px;
	border-left: none;
	border-top: none;
}
.leo-award-icon__ribbon {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	background: var(--leo-gold);
	color: var(--leo-charcoal);
	padding: 6px 24px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
}
.leo-award-icon__medal {
	color: var(--leo-gold);
	margin-bottom: 20px;
	margin-top: 8px;
	filter: drop-shadow(0 4px 12px rgba(201,162,74,0.3));
}
.leo-award-icon__org {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: rgba(255,255,255,0.65);
	line-height: 1.4;
	margin-bottom: 20px;
}
.leo-award-icon__divider {
	width: 48px;
	height: 1px;
	background: var(--leo-gold);
	margin-bottom: 20px;
}
.leo-award-icon__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 800;
	color: var(--leo-cream);
	margin-bottom: 4px;
	letter-spacing: -0.02em;
}
.leo-award-icon__year {
	font-family: var(--leo-font-heading);
	font-size: clamp(2.5rem, 5vw, 3.5rem);
	font-weight: 800;
	color: var(--leo-gold);
	line-height: 1;
	letter-spacing: -0.04em;
	margin-bottom: 16px;
}
.leo-award-icon__cite {
	font-family: var(--leo-font-body);
	font-size: 0.75rem;
	color: rgba(255,255,255,0.55);
	letter-spacing: 0.05em;
}

/* ── BG Panel — section-constrained with image background + text overlay
   Use case: section where image acts as backdrop, text + content sit on top.
   NOT full-bleed (like cinematic), constrained inside .leo-edit-container. */
.leo-bg-panel {
	position: relative;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-color: var(--leo-charcoal);
	padding: clamp(40px, 5vw, 80px) clamp(32px, 5vw, 64px);
	display: flex;
	align-items: center;
	min-height: clamp(320px, 38vw, 480px);
	overflow: hidden;
	margin-block: clamp(24px, 3vw, 40px);
	box-shadow: 0 16px 48px rgba(0,0,0,0.15);
}

/* Overlay gradient — text readability on left half */
.leo-bg-panel::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(31,41,55,0.88) 0%, rgba(31,41,55,0.6) 45%, rgba(31,41,55,0.25) 75%, rgba(31,41,55,0.1) 100%);
	pointer-events: none;
}

/* Right-aligned variant (text right, image fades from right) */
.leo-bg-panel--right::before {
	background: linear-gradient(270deg, rgba(31,41,55,0.88) 0%, rgba(31,41,55,0.6) 45%, rgba(31,41,55,0.25) 75%, rgba(31,41,55,0.1) 100%);
}

/* Centered (text center, image fades from all sides) */
.leo-bg-panel--center::before {
	background: radial-gradient(ellipse at center, rgba(31,41,55,0.85) 0%, rgba(31,41,55,0.4) 60%, transparent 100%);
}

.leo-bg-panel__inner {
	position: relative;
	z-index: 1;
	max-width: min(55%, 600px);
	color: var(--leo-cream);
}
.leo-bg-panel--right .leo-bg-panel__inner { margin-left: auto; }
.leo-bg-panel--center .leo-bg-panel__inner { margin-inline: auto; max-width: min(75%, 720px); text-align: center; }

.leo-bg-panel__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--leo-gold);
	margin-bottom: 16px;
}
.leo-bg-panel__eyebrow::before {
	content: '';
	display: block;
	width: 32px;
	height: 1px;
	background: var(--leo-gold);
}

.leo-bg-panel__title {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--leo-white);
	margin: 0 0 20px 0;
	text-shadow: 0 2px 16px rgba(0,0,0,0.5);
}
.leo-bg-panel__title em {
	font-style: normal;
	color: var(--leo-gold);
}

.leo-bg-panel__lead {
	font-family: var(--leo-font-body);
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.88);
	margin: 0;
	text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}

@media (max-width: 768px) {
	.leo-bg-panel__inner { max-width: 100% !important; }
	.leo-bg-panel::before {
		background: linear-gradient(180deg, rgba(31,41,55,0.5) 0%, rgba(31,41,55,0.85) 100%) !important;
	}
}

/* Testimonial 2-col row (legacy — kept for backwards compat) */
@media (max-width: 900px) {
	.leo-edit-tg-row {
		grid-template-columns: 1fr !important;
	}
	.leo-edit-tg-row > div:last-child {
		justify-content: flex-start !important;
	}
}

/* ════════════════════════════════════════════════════════════════════════
   IMAGE PLACEHOLDER SYSTEM (v1.4.2)
   Marks spots where anh will upload curated images.
   When real image arrives → just swap src or add background-image inline.
   ════════════════════════════════════════════════════════════════════════ */

.leo-img-spot {
	background: var(--leo-charcoal);
	color: var(--leo-cream);
	padding: clamp(48px, 7vw, 96px) clamp(32px, 4vw, 64px);
	text-align: center;
	border: 2px dashed rgba(201, 162, 74, 0.45);
	position: relative;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: clamp(280px, 28vw, 420px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 16px;
}

.leo-img-spot::before {
	content: '+';
	position: absolute;
	top: clamp(16px, 2vw, 28px);
	left: clamp(16px, 2vw, 28px);
	font-family: var(--leo-font-heading);
	font-size: clamp(1.5rem, 3vw, 2.5rem);
	font-weight: 300;
	color: var(--leo-gold);
	line-height: 1;
}

.leo-img-spot::after {
	content: 'IMAGE';
	position: absolute;
	top: clamp(22px, 2.3vw, 32px);
	left: clamp(56px, 6vw, 88px);
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.3em;
	color: var(--leo-gold);
}

.leo-img-spot__id {
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.25em;
	color: var(--leo-gold);
	text-transform: uppercase;
}

.leo-img-spot__name {
	font-family: var(--leo-font-heading);
	font-size: clamp(1.125rem, 1.8vw, 1.5rem);
	font-weight: 800;
	color: var(--leo-white);
	letter-spacing: -0.02em;
	line-height: 1.2;
	max-width: 32ch;
}

.leo-img-spot__hint {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.65);
	max-width: 56ch;
	line-height: 1.55;
	margin: 0;
}

.leo-img-spot__meta {
	margin-top: 8px;
	font-family: var(--leo-font-heading);
	font-size: 0.6875rem;
	color: rgba(201, 162, 74, 0.85);
	letter-spacing: 0.18em;
	padding: 8px 14px;
	border: 1px solid rgba(201, 162, 74, 0.3);
	display: inline-flex;
	gap: 12px;
}

.leo-img-spot__meta strong { color: var(--leo-gold); font-weight: 700; }

/* When inline `style="background-image:url(...)"` is added → hide placeholder content */
.leo-img-spot[data-img-loaded="true"] > *,
.leo-img-spot[data-img-loaded="true"]::before,
.leo-img-spot[data-img-loaded="true"]::after {
	display: none;
}
.leo-img-spot[data-img-loaded="true"] {
	border: none;
	padding: 0;
	min-height: 0;
	width: 100%;
	max-width: 100%;
	/* aspect-ratio set inline per spot (e.g., 1920/540) */
}

/* Page hero variant — fills page-hero with image */
.leo-page-hero.has-img-spot {
	background: var(--leo-charcoal);
	color: var(--leo-cream);
}
.leo-page-hero.has-img-spot .leo-img-spot {
	position: absolute;
	inset: 0;
	z-index: 0;
	border: 2px dashed rgba(201, 162, 74, 0.35);
}
.leo-page-hero.has-img-spot .leo-page-hero__inner {
	position: relative;
	z-index: 2;
}
.leo-page-hero.has-img-spot .leo-page-hero__inner::before {
	content: '';
	position: absolute;
	inset: -40px -1000px;
	z-index: -1;
	background: linear-gradient(180deg, rgba(31,41,55,0.35) 0%, rgba(31,41,55,0.65) 100%);
}
.leo-page-hero.has-img-spot .leo-page-hero__title,
.leo-page-hero.has-img-spot .leo-page-hero__lead {
	color: var(--leo-cream);
	text-shadow: 0 2px 24px rgba(0,0,0,0.45);
}
.leo-page-hero.has-img-spot .leo-page-hero__title em { color: var(--leo-gold); }
.leo-page-hero.has-img-spot .leo-page-hero__index { color: rgba(255,255,255,0.65); }
.leo-page-hero.has-img-spot .leo-page-hero__index span { color: var(--leo-white); }
.leo-page-hero.has-img-spot .leo-page-hero__wordmark { color: rgba(201, 162, 74, 0.1); }
