/* ==========================================================================
   LEI24 theme styles
   Colours follow the LEI24 design guide (navy #062b52, blue #1768a9).
   Change the variables in :root and the whole site follows.
   ========================================================================== */

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--c-navy: #062b52;
	--c-navy-deep: #032746;
	--c-blue: #1768a9;
	--c-blue-dark: #115387;
	--c-text: #1d3a58;
	--c-muted: #627487;
	--c-label: #3b6284;
	--c-light: #eaf5fc;
	--c-tile: #f4f8fb;
	--c-border: #d7e2eb;
	--c-border-strong: #9bb8ce;
	--c-bg: #ffffff;
	--c-success: #0f7a4a;
	--c-error: #b3261e;

	--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--fs-base: 1.0625rem;
	--lh-base: 1.6;

	--radius: 12px;
	--radius-sm: 7px;
	--shadow: 0 1px 2px rgba(6, 43, 82, 0.05), 0 10px 30px rgba(6, 43, 82, 0.07);

	--container: 1240px;
	--container-narrow: 760px;
	--gutter: clamp(1rem, 4vw, 2.5rem);
	--section-y: clamp(3.5rem, 8vw, 6.5rem);
	--header-h: 76px;
}

/* Base ------------------------------------------------------------------ */

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

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 1rem); scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-text);
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	line-height: var(--lh-base);
	font-feature-settings: "cv11", "ss01";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

/* Hungarian has long compound words; let them break with hyphens. */
.lang-hu { hyphens: auto; }

img, svg, video { max-width: 100%; height: auto; }

h1, h2, h3, h4 {
	color: var(--c-navy);
	line-height: 1.12;
	margin: 0 0 0.6em;
	font-weight: 700;
	letter-spacing: -0.025em;
	hyphens: manual;
}
h1 { font-size: clamp(2.4rem, 5.5vw, 4.25rem); letter-spacing: -0.04em; line-height: 1.02; }
h2 { font-size: clamp(1.85rem, 3.4vw, 2.75rem); letter-spacing: -0.035em; }
h3 { font-size: 1.25rem; letter-spacing: -0.015em; }
h4 { font-size: 1.05rem; }
h1 em, h2 em { font-style: normal; color: var(--c-blue); }

p, ul, ol, dl, address { margin: 0 0 1.1em; }
address { font-style: normal; }
strong { font-weight: 650; color: var(--c-navy); }

a { color: var(--c-blue); text-underline-offset: 0.18em; }
a:hover { color: var(--c-blue-dark); }

:focus-visible { outline: 3px solid var(--c-blue); outline-offset: 2px; border-radius: 4px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: 1rem; top: -100px;
	z-index: 1000;
	padding: 0.6rem 1rem;
	background: var(--c-navy);
	color: #fff;
	border-radius: var(--radius-sm);
}
.skip-link:focus { top: 1rem; color: #fff; }

.container {
	width: 100%;
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.container--narrow { max-width: calc(var(--container-narrow) + 2 * var(--gutter)); }

.eyebrow {
	margin-bottom: 0.9rem;
	color: var(--c-label);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}
.lead { font-size: 1.125rem; line-height: 1.6; color: var(--c-muted); }

/* Buttons (theme + core button block share one look) ---------------------- */

.lei24-btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 50px;
	padding: 0.8rem 1.5rem;
	border: 1px solid var(--c-navy);
	border-radius: var(--radius-sm);
	background: var(--c-navy);
	color: #fff;
	font: inherit;
	font-size: 0.975rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}
.lei24-btn:hover,
.wp-block-button__link:hover { background: var(--c-blue); border-color: var(--c-blue); color: #fff; }

.lei24-btn--outline,
.is-style-outline > .wp-block-button__link {
	background: #fff;
	border-color: var(--c-border-strong);
	color: var(--c-navy);
}
.lei24-btn--outline:hover,
.is-style-outline > .wp-block-button__link:hover { background: #fff; border-color: var(--c-navy); color: var(--c-navy); box-shadow: inset 0 0 0 1px var(--c-navy); }

.lei24-btn--sm { min-height: 42px; padding: 0.5rem 1.1rem; font-size: 0.9rem; }

.wp-block-buttons,
.lei24-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.75rem 0; }
.wp-block-buttons > .wp-block-button { margin: 0; }

/* Header ------------------------------------------------------------------ */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: saturate(180%) blur(10px);
	border-bottom: 1px solid #e5edf3;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 2rem;
	min-height: var(--header-h);
}

.site-logo { display: inline-flex; flex-direction: column; justify-content: center; line-height: 1; text-decoration: none; flex-shrink: 0; }
.site-logo img { max-height: 44px; width: auto; }
.site-logo__text { color: var(--c-navy); font-size: 1.75rem; font-weight: 800; letter-spacing: -0.04em; }
.site-logo__text span { color: var(--c-blue); }
.site-logo__tagline { margin-top: 0.3rem; color: var(--c-navy); font-size: 0.5rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; white-space: nowrap; }

.site-nav { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.site-nav__actions { display: flex; align-items: center; gap: 0.6rem; }

.menu { list-style: none; margin: 0; padding: 0; }
.menu--primary { display: flex; gap: 0.1rem; }
.menu--primary a {
	display: block;
	padding: 0.5rem 0.7rem;
	border-radius: var(--radius-sm);
	color: var(--c-navy);
	font-size: 0.9rem;
	font-weight: 550;
	text-decoration: none;
	white-space: nowrap;
}
.menu--primary a:hover { background: var(--c-light); color: var(--c-navy); }
.menu--primary .current-menu-item > a,
.menu--primary .current_page_item > a { color: var(--c-blue); }
/* Custom links (Pricing, platform links) are never "the current page". */
.menu--primary .menu-item-type-custom.current-menu-item > a { color: var(--c-navy); }
.menu--primary .sub-menu { display: none; }

.lang-switcher { display: flex; gap: 0.1rem; list-style: none; margin: 0 0.4rem 0 0; padding: 0; font-size: 0.8rem; font-weight: 700; }
.lang-switcher a,
.lang-switcher span { display: block; padding: 0.3rem 0.45rem; border-radius: 6px; color: var(--c-muted); text-decoration: none; }
.lang-switcher a:hover { background: var(--c-light); color: var(--c-navy); }
.lang-switcher .is-current { background: var(--c-light); color: var(--c-navy); }

.nav-toggle {
	display: none;
	position: relative;
	width: 44px; height: 44px;
	margin-left: auto;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
	position: absolute;
	left: 11px;
	width: 22px; height: 2px;
	background: var(--c-navy);
	border-radius: 2px;
	transition: transform 0.2s, top 0.2s, opacity 0.2s;
	content: "";
}
.nav-toggle__bar { top: 21px; }
.nav-toggle__bar::before { left: 0; top: -7px; }
.nav-toggle__bar::after { left: 0; top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 1100px) {
	.nav-toggle { display: block; }
	.site-nav {
		display: none;
		position: absolute;
		top: 100%; left: 0; right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
		max-height: calc(100vh - var(--header-h));
		overflow-y: auto;
		padding: 1rem var(--gutter) 1.5rem;
		background: #fff;
		border-bottom: 1px solid var(--c-border);
		box-shadow: var(--shadow);
	}
	.site-nav.is-open { display: flex; }
	.menu--primary { flex-direction: column; }
	.menu--primary a { padding: 0.75rem 0.5rem; font-size: 1rem; }
	.site-nav__actions { flex-wrap: wrap; }
	.site-nav__actions .lang-switcher { width: 100%; margin-bottom: 0.5rem; }
	.site-nav__actions .lei24-btn { flex: 1; }
}

/* Page content layout ------------------------------------------------------
   Plain blocks sit in a narrow reading column. Section groups (hero, band,
   stats, end, CTA) span the full width and centre their content. */

.entry-content > * {
	max-width: calc(var(--container-narrow) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.entry-content > :first-child:not(.lei24-hero):not(.lei24-band):not(.lei24-cta):not(.lei24-statbar):not(.lei24-end) { margin-top: var(--section-y); }
.entry-content > :last-child:not(.lei24-band):not(.lei24-cta):not(.lei24-end) { margin-bottom: var(--section-y); }

.entry-content > .alignwide { max-width: calc(var(--container) + 2 * var(--gutter)); }
.entry-content > .alignfull,
.entry-content > .lei24-hero,
.entry-content > .lei24-band,
.entry-content > .lei24-statbar,
.entry-content > .lei24-end,
.entry-content > .lei24-cta { max-width: none; padding-inline: 0; }

.lei24-hero > *,
.lei24-band > *,
.lei24-statbar > *,
.lei24-end > *,
.lei24-cta > * {
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.lei24-band { padding-block: var(--section-y); }
.entry-content > :not(.lei24-band):not(.lei24-hero):not(.lei24-statbar) + .lei24-cta,
.entry-content > :not(.lei24-band):not(.lei24-hero):not(.lei24-statbar) + .lei24-end { margin-top: var(--section-y); }
.lei24-band:not([class*="lei24-band--"]) + .lei24-band:not([class*="lei24-band--"]) { padding-top: 0; }
.lei24-band--soft { background: var(--c-light); }
.lei24-band--dark { background: var(--c-navy); color: #c9d8e6; }
.lei24-band--dark h2, .lei24-band--dark h3 { color: #fff; }

.lei24-prose { max-width: calc(var(--container-narrow) + 2 * var(--gutter)) !important; }

.lei24-section-head { text-align: center; margin-bottom: 3rem; }
.lei24-section-head > * { max-width: 720px; margin-inline: auto; }
.lei24-section-head .lead { margin-bottom: 0; }

.wp-block-columns { display: flex; gap: 2rem; margin-bottom: 0; }
.wp-block-column { flex: 1 1 0; min-width: 0; }
@media (max-width: 781px) {
	.wp-block-columns { flex-direction: column; }
	.wp-block-columns > .wp-block-column { flex: 0 0 auto !important; width: 100%; max-width: none !important; }
}

/* Page hero (title band on inner pages) ------------------------------------ */

.page-hero {
	padding-block: clamp(3rem, 7vw, 5.5rem) clamp(2.25rem, 5vw, 3.75rem);
	background: linear-gradient(90deg, #fff 0%, #f6fbff 50%, #e8f4fc 100%);
	border-bottom: 1px solid #e5edf3;
}
.page-hero__title { margin-bottom: 0.35em; font-size: clamp(2.1rem, 4.5vw, 3.25rem); }
.page-hero__lead { margin: 0; font-size: 1.1875rem; color: var(--c-muted); }
.page-hero__meta { margin: 0; color: var(--c-muted); font-size: 0.9375rem; }
.page-hero--compact { padding-block: 3rem 2.25rem; }
.page-hero--center { text-align: center; border-bottom: 0; padding-block: 6rem; }
.page-hero--center .lei24-actions { justify-content: center; }

/* Home hero ----------------------------------------------------------------- */

.lei24-hero {
	overflow: hidden;
	padding-block: clamp(3rem, 7vw, 5.5rem);
	background: linear-gradient(90deg, #fff 0%, #f6fbff 55%, #e8f4fc 100%);
}
.lei24-hero__grid.wp-block-columns { align-items: center; gap: clamp(2rem, 5vw, 4rem); }
.lei24-hero__grid > .wp-block-column:first-child { flex: 1.1 1 0; max-width: 680px; }
.lei24-hero__title { margin: 0.2em 0 0.45em; }
.lei24-hero .lead { font-size: 1.1875rem; color: var(--c-muted); }
.lei24-hero p:not(.eyebrow) { color: var(--c-muted); font-size: 1.0625rem; }
.lei24-hero .wp-block-buttons { margin-top: 2.25rem; }
.lei24-hero .wp-block-button__link { min-height: 56px; padding-inline: 1.75rem; font-size: 1.05rem; }

.lei24-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.75rem;
	list-style: none;
	margin: 2.25rem 0 0;
	padding: 0;
	color: var(--c-navy);
	font-size: 0.875rem;
	font-weight: 600;
}
.lei24-checks li { position: relative; margin: 0; padding-left: 1.55rem; }
.lei24-checks li::before {
	position: absolute; left: 0; top: 0.15em;
	width: 1.05rem; height: 1.05rem;
	border-radius: 50%;
	background: var(--c-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m4 8.5 2.5 2.5L12 5.5'/%3E%3C/svg%3E") center / 78% no-repeat;
	content: "";
}

/* Globe with the example LEI card */
.lei24-globe {
	position: relative;
	width: min(520px, 100%);
	aspect-ratio: 1;
	margin-left: auto;
	border-radius: 50%;
	background:
		radial-gradient(circle at 32% 26%, rgba(234, 247, 255, 0.95) 0%, rgba(120, 168, 203, 0.9) 28%, #194e77 58%, #031b33 86%);
	box-shadow: inset -30px -40px 80px rgba(3, 27, 51, 0.55), 0 40px 80px -30px rgba(6, 43, 82, 0.45);
}
.lei24-globe::before {
	/* Meridians and parallels */
	position: absolute; inset: 0;
	border-radius: 50%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23ffffff' stroke-opacity='.22' stroke-width='.6'%3E%3Ccircle cx='100' cy='100' r='99.5'/%3E%3Cellipse cx='100' cy='100' rx='25' ry='99.5'/%3E%3Cellipse cx='100' cy='100' rx='55' ry='99.5'/%3E%3Cellipse cx='100' cy='100' rx='82' ry='99.5'/%3E%3Cpath d='M100 .5v199M.5 100h199'/%3E%3Cellipse cx='100' cy='100' rx='99.5' ry='30'/%3E%3Cellipse cx='100' cy='100' rx='99.5' ry='65'/%3E%3C/svg%3E") center / 100% no-repeat;
	content: "";
}
.lei24-globe::after {
	/* Soft highlight */
	position: absolute; inset: 6% 40% 55% 12%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(255, 255, 255, 0.35), transparent);
	filter: blur(6px);
	content: "";
}
.lei24-lei-card {
	position: absolute;
	z-index: 1;
	left: -12%;
	top: 38%;
	width: min(380px, 88%);
	padding: 1.5rem 1.6rem 1.25rem;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 16px;
	box-shadow: 0 18px 45px rgba(0, 26, 51, 0.25);
}
.lei24-lei-card .eyebrow { margin-bottom: 0.4rem; font-size: 0.68rem; }
.lei24-lei-card__code {
	margin: 0 0 0.5rem;
	color: var(--c-navy) !important;
	font-size: clamp(1.1rem, 2.1vw, 1.4rem) !important;
	font-weight: 750;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.04em;
}
.lei24-lei-card p:last-child { margin: 0; font-size: 0.8rem !important; line-height: 1.5; }

@media (max-width: 781px) {
	.lei24-globe { width: min(340px, 86%); margin: 1rem auto 0; }
	.lei24-lei-card { left: -8%; top: 55%; width: 108%; padding: 1.1rem 1.2rem 1rem; }
	.lei24-hero__grid > .wp-block-column:last-child { padding-bottom: 5rem; }
}

/* Stats bar ------------------------------------------------------------------ */

.lei24-statbar { padding-block: clamp(2.5rem, 5vw, 3.5rem); background: #fff; }
.lei24-statbar__eyebrow { text-align: center; margin-bottom: 1.5rem; }
.lei24-stats.wp-block-columns { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.75rem; }
.lei24-stat.wp-block-column {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 150px;
	padding: 1.5rem 1rem;
	background: var(--c-tile);
	border-radius: 4px;
	text-align: center;
}
.lei24-stat__value {
	margin: 0 0 0.25rem;
	color: var(--c-navy);
	font-size: clamp(1.4rem, 2.2vw, 1.9rem);
	font-weight: 750;
	letter-spacing: -0.03em;
	line-height: 1.15;
	font-variant-numeric: tabular-nums;
}
.lei24-stat__label { margin: 0; color: var(--c-blue); font-size: 0.95rem; font-style: italic; line-height: 1.35; }
@media (max-width: 1000px) { .lei24-stats.wp-block-columns { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) {
	.lei24-stats.wp-block-columns { grid-template-columns: 1fr 1fr; }
	.lei24-stat:last-child { grid-column: 1 / -1; }
	.lei24-stat.wp-block-column { min-height: 120px; }
}

/* Cards and steps ----------------------------------------------------------- */

.lei24-cards.wp-block-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.25rem; margin-bottom: 0; }
.lei24-card.wp-block-column {
	display: flex;
	flex-direction: column;
	padding: 1.75rem;
	background: #fff;
	border: 1px solid var(--c-border);
	border-radius: 10px;
}
.lei24-card > :last-child { margin-bottom: 0; }
.lei24-card p { color: var(--c-muted); }
.lei24-card__link { margin-top: auto; font-weight: 650; }
.lei24-card__link a { text-decoration: none; }

.lei24-steps { counter-reset: step; }
.lei24-steps .lei24-card { counter-increment: step; }
.lei24-steps .lei24-card::before {
	display: grid;
	place-items: center;
	width: 2.5rem; height: 2.5rem;
	margin-bottom: 1rem;
	border-radius: 50%;
	background: var(--c-navy);
	color: #fff;
	font-weight: 750;
	content: counter(step);
}

/* Pricing ---------------------------------------------------------------------- */

.lei24-pricing.wp-block-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: stretch; margin-top: 1rem; }
@media (max-width: 900px) { .lei24-pricing.wp-block-columns { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }
.lei24-price.wp-block-column {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 2rem;
	background: #fff;
	border: 1px solid #cddce7;
	border-radius: 10px;
}
.lei24-price h3 { margin-bottom: 0.75rem; font-size: 1.125rem; color: var(--c-label); }
.lei24-price__amount { margin: 0; color: var(--c-navy); font-size: 3rem; font-weight: 750; letter-spacing: -0.04em; line-height: 1; }
.lei24-price__per { margin: 0.5rem 0 1.25rem; color: var(--c-blue); font-weight: 700; font-size: 0.95rem; }
.lei24-price__features { flex: 1; list-style: none; margin: 0 0 0.5rem; padding: 1.25rem 0 0; border-top: 1px solid var(--c-border); color: var(--c-muted); }
.lei24-price__features li { position: relative; margin-bottom: 0.55rem; padding-left: 1.6rem; }
.lei24-price__features li::before {
	position: absolute; left: 0; top: 0.35em;
	width: 0.95rem; height: 0.95rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231768a9' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m3 8.5 3 3L13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
}
.lei24-price .wp-block-buttons { margin: 1.25rem 0 0; }
.lei24-price .wp-block-button { flex: 1; }
.lei24-price .wp-block-button__link { width: 100%; }
.lei24-price.is-featured { border: 2px solid var(--c-blue); box-shadow: 0 20px 50px -20px rgba(23, 104, 169, 0.35); }
.lei24-price__badge {
	position: absolute;
	top: -0.85rem; left: 50%;
	transform: translateX(-50%);
	margin: 0;
	padding: 0.3rem 0.9rem;
	background: var(--c-blue);
	border-radius: 999px;
	color: #fff;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
}
.lei24-pricing-note { margin-top: 1.5rem; text-align: center; color: var(--c-muted); font-size: 0.875rem; }

/* Why prices differ ------------------------------------------------------------- */

.lei24-why.wp-block-columns { gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.lei24-why__box {
	padding: 1.75rem 2.25rem;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}
.lei24-why__box p { margin: 0; padding: 1.1rem 0; border-bottom: 1px solid var(--c-border); color: var(--c-muted); font-size: 0.975rem; }
.lei24-why__box p:last-child { border-bottom: 0; }
.lei24-why__box strong { display: inline-block; margin-bottom: 0.2rem; font-size: 1.05rem; }

/* Features ------------------------------------------------------------------------ */

.lei24-features.wp-block-columns { counter-reset: feature; gap: 0; margin-top: 1rem; }
.lei24-feature.wp-block-column { counter-increment: feature; padding: 0 1.75rem; border-right: 1px solid var(--c-border); }
.lei24-feature:first-child { padding-left: 0; }
.lei24-feature:last-child { padding-right: 0; border-right: 0; }
.lei24-feature::before {
	display: block;
	width: 2.5rem; height: 2.5rem;
	margin-bottom: 1.25rem;
	background-color: var(--c-blue);
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
	content: "";
}
.lei24-feature h3::before {
	display: block;
	margin-bottom: 0.4rem;
	color: var(--c-blue);
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	content: counter(feature, decimal-leading-zero);
}
.lei24-feature p { color: var(--c-muted); font-size: 0.975rem; }
@media (max-width: 900px) {
	.lei24-features.wp-block-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem 2rem; }
	.lei24-feature.wp-block-column { padding: 0; border: 0; }
}
@media (max-width: 560px) { .lei24-features.wp-block-columns { grid-template-columns: 1fr; } }

.lei24-icon-gear { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z'/%3E%3C/svg%3E"); }
.lei24-icon-globe { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10Z'/%3E%3C/svg%3E"); }
.lei24-icon-data { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5'/%3E%3Cpath d='M3 12c0 1.66 4 3 9 3s9-1.34 9-3'/%3E%3C/svg%3E"); }
.lei24-icon-shield { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.lei24-icon-clock { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.lei24-icon-check { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpath d='M22 4 12 14.01l-3-3'/%3E%3C/svg%3E"); }

/* Savings calculator ------------------------------------------------------------ */

.lei24-calc-row.wp-block-columns { align-items: center; gap: clamp(2rem, 5vw, 4rem); }
.lei24-calc-row > .wp-block-column:first-child { flex: 0.8 1 0; }
.lei24-calc-row > .wp-block-column:last-child { flex: 1.2 1 0; }
.lei24-calc { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch; }
@media (max-width: 640px) { .lei24-calc { grid-template-columns: 1fr; } }
.lei24-calc__inputs { display: flex; flex-direction: column; justify-content: center; gap: 0.4rem; }
.lei24-calc__inputs label { color: var(--c-navy); font-size: 0.9rem; font-weight: 600; }
.lei24-calc__inputs input {
	width: 100%;
	min-height: 50px;
	margin-bottom: 0.9rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid #c6d7e5;
	border-radius: var(--radius-sm);
	background: #fff;
	color: var(--c-navy);
	font: inherit;
	font-size: 1.125rem;
	font-weight: 650;
}
.lei24-calc__inputs input:focus { border-color: var(--c-blue); outline: 3px solid rgba(23, 104, 169, 0.2); outline-offset: 0; }
.lei24-calc__result {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 1.75rem;
	background: var(--c-navy);
	border-radius: var(--radius);
	color: #c9d8e6;
}
.lei24-calc__result strong {
	display: block;
	margin: 0.35rem 0 0.1rem;
	color: #fff;
	font-size: clamp(2.2rem, 4vw, 3rem);
	font-weight: 750;
	letter-spacing: -0.03em;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}
.lei24-calc__result span:first-child { font-size: 0.9rem; font-weight: 600; color: #9fc3e6; text-transform: uppercase; letter-spacing: 0.08em; }
.lei24-calc__result small { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, 0.15); font-size: 0.8rem; color: #9fb4c9; }

/* FAQ --------------------------------------------------------------------------- */

.lei24-faq { max-width: calc(var(--container-narrow) + 2 * var(--gutter)) !important; }
.wp-block-details {
	margin: 0 0 0.75rem;
	padding: 0;
	background: #fff;
	border: 1px solid var(--c-border);
	border-radius: 10px;
}
.wp-block-details summary {
	position: relative;
	padding: 1.1rem 3rem 1.1rem 1.35rem;
	color: var(--c-navy);
	font-weight: 650;
	list-style: none;
	cursor: pointer;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	position: absolute; right: 1.35rem; top: 50%;
	width: 0.55rem; height: 0.55rem;
	border-right: 2px solid var(--c-blue);
	border-bottom: 2px solid var(--c-blue);
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.2s;
	content: "";
}
.wp-block-details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.wp-block-details > :not(summary) { padding: 0 1.35rem; color: var(--c-muted); }
.wp-block-details > :last-child { padding-bottom: 1.1rem; margin-bottom: 0; }

/* Closing section ------------------------------------------------------------------ */

.lei24-end { padding-block: var(--section-y); background: #fff; border-top: 1px solid #e5edf3; }
.lei24-end__grid.wp-block-columns { align-items: center; gap: 3rem; }
.lei24-end__grid > .wp-block-column:last-child {
	flex: 0.7 1 0;
	padding: 2.5rem;
	background: linear-gradient(135deg, var(--c-navy) 0%, #0d3f70 100%);
	border-radius: var(--radius);
	color: #c9d8e6;
}
.lei24-end__grid h2 { font-size: clamp(2.2rem, 4.5vw, 3.5rem); }
.lei24-end .wp-block-buttons { margin-bottom: 0; }
.lei24-end__tagline { margin-bottom: 1rem; color: #fff !important; font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; letter-spacing: -0.02em; text-transform: uppercase; }
.lei24-end__grid > .wp-block-column:last-child p { margin: 0; font-size: 1.1rem; }

/* CTA band (inner pages) ------------------------------------------------------------ */

.lei24-cta {
	padding-block: clamp(3.5rem, 7vw, 5rem);
	background: linear-gradient(135deg, var(--c-navy) 0%, #0d3f70 100%);
	color: #c9d8e6;
	text-align: center;
}
.lei24-cta h2 { color: #fff; }
.lei24-cta .lead { max-width: 640px; color: #c9d8e6; }
.lei24-cta .wp-block-buttons { justify-content: center; margin-bottom: 0; }
.lei24-cta .wp-block-button__link { background: #fff; border-color: #fff; color: var(--c-navy); }
.lei24-cta .wp-block-button__link:hover { background: var(--c-light); border-color: var(--c-light); color: var(--c-navy); }
.lei24-cta .is-style-outline > .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.5); }
.lei24-cta .is-style-outline > .wp-block-button__link:hover { border-color: #fff; box-shadow: inset 0 0 0 1px #fff; }

/* Prose (inner pages, legal) -------------------------------------------------- */

.entry-content h2 { margin-top: 2.2em; }
.entry-content h3 { margin-top: 1.8em; }
.entry-content .lei24-band h2,
.entry-content .lei24-hero h1,
.entry-content .lei24-cta h2,
.entry-content .lei24-end h2,
.entry-content .lei24-end h3,
.entry-content .lei24-card h3,
.entry-content .lei24-price h3,
.entry-content .lei24-feature h3,
.entry-content .lei24-section-head h2,
.entry-content > :first-child { margin-top: 0; }

.entry-content li { margin-bottom: 0.4em; }
.entry-content table { width: 100%; border-collapse: collapse; margin-bottom: 1.5em; font-size: 0.9375rem; }
.entry-content th,
.entry-content td { padding: 0.6rem 0.75rem; border: 1px solid var(--c-border); text-align: left; vertical-align: top; }
.entry-content th { background: var(--c-light); color: var(--c-navy); }

.entry-content--prose { font-size: 1rem; }
.entry-content--prose h2 { font-size: 1.375rem; letter-spacing: -0.02em; }
.entry-content--prose h3 { font-size: 1.125rem; }

.lei24-callout {
	padding: 1.25rem 1.5rem !important;
	background: var(--c-light);
	border-left: 4px solid var(--c-blue);
	border-radius: var(--radius-sm);
}
.entry-content > .lei24-callout { max-width: var(--container-narrow); }

.lei24-code {
	color: var(--c-navy);
	font-size: 1.35rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
}

.lei24-missing { background: #fff3cd; color: #7a5a00; padding: 0 0.25em; border-radius: 3px; }

/* Contact form ---------------------------------------------------------------- */

.lei24-form-wrap {
	padding: clamp(1.25rem, 4vw, 2.25rem);
	background: #fff;
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}
.lei24-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
@media (max-width: 640px) { .lei24-form__grid { grid-template-columns: 1fr; } }

.lei24-field { display: flex; flex-direction: column; gap: 0.35rem; }
.lei24-field--full { grid-column: 1 / -1; }
.lei24-field label { color: var(--c-navy); font-size: 0.9rem; font-weight: 600; }
.lei24-req { color: var(--c-error); }

.lei24-field input[type="text"],
.lei24-field input[type="email"],
.lei24-field select,
.lei24-field textarea {
	width: 100%;
	min-height: 50px;
	padding: 0.65rem 0.9rem;
	border: 1px solid #c6d7e5;
	border-radius: var(--radius-sm);
	background: #fff;
	color: var(--c-navy);
	font: inherit;
}
.lei24-field textarea { resize: vertical; min-height: 150px; }
.lei24-field input:focus,
.lei24-field select:focus,
.lei24-field textarea:focus { border-color: var(--c-blue); outline: 3px solid rgba(23, 104, 169, 0.2); outline-offset: 0; }
.lei24-field.has-error input,
.lei24-field.has-error textarea { border-color: var(--c-error); }
.lei24-field__error { margin: 0; color: var(--c-error); font-size: 0.875rem; }

.lei24-field--check { margin: 1.25rem 0; }
.lei24-field--check label { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; color: var(--c-text); }
.lei24-field--check input { width: 1.15rem; height: 1.15rem; margin-top: 0.2rem; flex-shrink: 0; accent-color: var(--c-navy); }

.lei24-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lei24-notice { margin-bottom: 1.25rem; padding: 1rem 1.25rem; border-radius: var(--radius-sm); }
.lei24-notice--success { background: #e7f6ee; color: var(--c-success); }
.lei24-notice--error { background: #fdecea; color: var(--c-error); }

.lei24-contact.wp-block-columns { gap: clamp(2rem, 5vw, 4rem); }
.lei24-contact > .wp-block-column:first-child { flex: 0.8 1 0; }
.lei24-contact > .wp-block-column:last-child { flex: 1.2 1 0; }

/* Footer ------------------------------------------------------------------------ */

.site-footer {
	padding-top: 4rem;
	background: var(--c-navy-deep);
	color: #a9bdd1;
	font-size: 0.9375rem;
}
.site-footer a { color: #dbe6f0; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2.5rem; padding-bottom: 3rem; }
@media (max-width: 800px) { .site-footer__grid { grid-template-columns: 1fr; } }
.site-footer .site-logo:hover { text-decoration: none; }
.site-footer .site-logo__text,
.site-footer .site-logo__tagline { color: #fff; }
.site-footer .site-logo__text span { color: #6fb0e8; }
.site-footer__brand p { max-width: 340px; margin-top: 1.25rem; }
.site-footer__title { margin-bottom: 1rem; color: #fff; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.menu--footer li { margin-bottom: 0.5rem; }

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 2rem;
	padding-block: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 0.875rem;
}
.site-footer__bottom p { margin: 0; }
.site-footer__bottom nav { margin-right: auto; }
.menu--legal { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.site-footer .lang-switcher a,
.site-footer .lang-switcher span { color: #a9bdd1; }
.site-footer .lang-switcher .is-current { background: rgba(255, 255, 255, 0.1); color: #fff; }
.site-footer .lang-switcher a:hover { background: rgba(255, 255, 255, 0.1); color: #fff; text-decoration: none; }

/* Editor --------------------------------------------------------------------- */

.editor-styles-wrapper .lei24-hero,
.editor-styles-wrapper .lei24-band,
.editor-styles-wrapper .lei24-statbar,
.editor-styles-wrapper .lei24-end,
.editor-styles-wrapper .lei24-cta { padding-inline: 1.5rem; }
.editor-styles-wrapper .lei24-lei-card { position: relative; left: auto; top: auto; margin: 30% auto 0; }

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; scroll-behavior: auto !important; }
}
