/* LTL '27 base: tokens, fonts, layout, type, buttons, shared components. Module-specific CSS lives in each AVC module. */

/* ---------- Fonts (self-hosted) ---------- */
@font-face {
	font-family: 'Red Hat Display';
	src: url('../fonts/RedHatDisplay-VariableFont_wght.ttf') format('truetype');
	font-weight: 300 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Red Hat Display';
	src: url('../fonts/RedHatDisplay-Italic-VariableFont_wght.ttf') format('truetype');
	font-weight: 300 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: 'Sora';
	src: url('../fonts/Sora-VariableFont_wght.ttf') format('truetype');
	font-weight: 100 800;
	font-style: normal;
	font-display: swap;
}

/* ---------- Tokens ---------- */
/* Colors read the Elementor Site Settings globals first, so editing them there sweeps the site. */
body {
	--ltl-teal: var(--e-global-color-ltlteal, #6DEFE6);
	--ltl-purple: var(--e-global-color-ltlpurple, #B272F9);
	--ltl-magenta: var(--e-global-color-ltlmagenta, #ED2A91);
	--ltl-red: var(--e-global-color-ltlred, #EE2037);
	--ltl-ink: var(--e-global-color-primary, #15152b);
	--ltl-night: var(--e-global-color-secondary, #0d0d1b);
	--ltl-white: var(--e-global-color-ltlwhite, #fff);
	--ltl-paper: var(--e-global-color-ltlpaper, #f4f4f1);
	--ltl-rule: var(--e-global-color-ltlrule, #d6d6d0);
	--ltl-text-2: var(--e-global-color-text, #3a3a52);
	--ltl-text-3: var(--e-global-color-ltltext3, #55556b);
	--ltl-text-4: var(--e-global-color-ltltext4, #6a6a80);
	--ltl-on-dark-2: var(--e-global-color-ltlondark, #c4c8d8);

	--ltl-four: var(--ltl-teal) 0 25%, var(--ltl-purple) 0 50%, var(--ltl-magenta) 0 75%, var(--ltl-red) 0 100%;
	--ltl-bar: linear-gradient(90deg, var(--ltl-four));
	--ltl-ring: conic-gradient(var(--ltl-four));
	--ltl-scrim-hero: linear-gradient(90deg, rgba(13, 13, 27, .88) 15%, rgba(13, 13, 27, .25) 75%), linear-gradient(180deg, transparent 50%, rgba(13, 13, 27, .8));
	--ltl-scrim-photo: linear-gradient(180deg, transparent 40%, rgba(13, 13, 27, .9));

	--font-display: var(--e-global-typography-primary-font-family, 'Red Hat Display'), sans-serif;
	--font-body: var(--e-global-typography-text-font-family, 'Sora'), sans-serif;
	--ls-display: -.03em;
	--ls-quote: -.04em;
	--ls-eyebrow: .14em;
	--ls-micro: .12em;

	--border-strong: 2px solid var(--ltl-ink);
	--border-rule: 1px solid var(--ltl-rule);
	--photo-gap: 6px;
	--radius-vessel: 0 0 160px 0;
	--radius-vessel-md: 0 0 140px 0;
	--radius-vessel-sm: 0 0 28px 0;

	--ease-brand: cubic-bezier(.45, 0, .1, 1);
	--dur-sweep: .7s;
	--dur-nudge: .5s;
	--dur-underline: .4s;
}

:root {
	--web-max: 2000px;
	--web-gutter: 360px;
	--web-section-y: 120px;
	--web-section-y-sm: 80px;
	--web-header-h: 100px;
}
@media (max-width: 1799px) {
	:root { --web-gutter: clamp(64px, 14vw, 360px); }
}
@media (max-width: 1023px) {
	:root { --web-gutter: 40px; --web-section-y: 80px; --web-section-y-sm: 56px; --web-header-h: 76px; }
}
@media (max-width: 639px) {
	:root { --web-gutter: 24px; --web-section-y: 64px; --web-section-y-sm: 48px; }
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-weight: var(--e-global-typography-text-font-weight, 400);
	font-size: var(--e-global-typography-text-font-size, clamp(15px, .9vw, 18px));
	line-height: 1.65; /* unitless on purpose: an em value here would be inherited as fixed px */
	color: var(--ltl-ink);
	background: var(--ltl-white);
	-webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:hover { color: inherit; }
:focus-visible { outline: 3px solid var(--ltl-ink); outline-offset: 3px; }
.ltl-dark :focus-visible,
.ltl-ink :focus-visible,
.ltl-hero :focus-visible { outline-color: var(--ltl-teal); }
.ltl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ltl-link { border-bottom: 1.5px solid currentColor; transition: color var(--dur-underline) var(--ease-brand); }
.ltl-link:hover { color: var(--ltl-purple); }
.ltl-dark .ltl-link:hover { color: var(--ltl-teal); }

/* ---------- Sections (outer Containers) ---------- */
.ltl-page { max-width: var(--web-max); margin: 0 auto; overflow-x: clip; }
/* Every top-level Container (pages, header, footer) caps at the page width and centers.
   Margins go through Elementor's variables, so a margin set in the editor still wins. */
.elementor > .e-con.e-parent { max-width: var(--web-max); --margin-left: auto; --margin-right: auto; }
/* On Containers these set Elementor's padding variables, so padding set on one Container in the editor still wins */
.ltl-section:not(.e-con) { padding: var(--web-section-y) var(--web-gutter); }
.e-con.ltl-section { --padding-top: var(--web-section-y); --padding-bottom: var(--web-section-y); --padding-left: var(--web-gutter); --padding-right: var(--web-gutter); }
.e-con.ltl-section--sm { --padding-top: var(--web-section-y-sm); --padding-bottom: var(--web-section-y-sm); }
.e-con.ltl-section--tail-sm { --padding-bottom: var(--web-section-y-sm); }
.e-con.ltl-section--lead-sm { --padding-top: var(--web-section-y-sm); }
.e-con.ltl-section--tail-lg { --padding-bottom: calc(var(--web-section-y) * 1.33); }
.e-con.ltl-section--lead-lg { --padding-top: calc(var(--web-section-y) * 1.33); }
.e-con.ltl-section--flush { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.ltl-dark { background-color: var(--ltl-night); color: var(--ltl-white); }
.ltl-ink { background-color: var(--ltl-ink); color: var(--ltl-white); }
.ltl-paper { background-color: var(--ltl-paper); }
.ltl-flood { background: url('../images/gradients/ltl-gradient-wide.jpg') center / cover no-repeat; color: var(--ltl-ink); }
/* Default-colored widgets follow the section ground; a color set on the widget still wins */
.ltl-dark .elementor-widget-heading .elementor-heading-title,
.ltl-ink .elementor-widget-heading .elementor-heading-title,
.ltl-hero .elementor-widget-heading .elementor-heading-title,
.ltl-dark .elementor-widget-text-editor,
.ltl-ink .elementor-widget-text-editor,
.ltl-hero .elementor-widget-text-editor { color: inherit; }

/* Two-column grids; Elementor Container direction can stay Row, the class sets the grid */
.e-con.ltl-split,
.ltl-split { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
.e-con.ltl-split--even,
.ltl-split--even { grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; }
.e-con.ltl-split--side,
.ltl-split--side { grid-template-columns: 4fr 8fr; gap: 96px; }
.ltl-split > * { min-width: 0; }
/* Sticks under the (shrunk) header while the column beside it scrolls */
.e-con.ltl-sticky,
.ltl-sticky { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px); }
@media (max-width: 1024px) {
	.e-con.ltl-split,
	.ltl-split { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.e-con.ltl-sticky,
	.ltl-sticky { position: static; }
}

/* ---------- Type ---------- */
/* Plain tags (embeds, shortcodes, posts) and ltl- classes both read the Site Settings > Global Fonts presets.
   Classes go on the widget (Advanced > CSS Classes); those selectors reach the inner tag too.
   Font settings chosen on an Elementor widget still win over these. */
h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; color: inherit; text-wrap: balance; }

h1, .ltl-h1, .elementor-widget.ltl-h1 .elementor-heading-title {
	font-family: var(--e-global-typography-ltlh1-font-family, 'Red Hat Display'), sans-serif;
	font-weight: var(--e-global-typography-ltlh1-font-weight, 700);
	font-size: var(--e-global-typography-ltlh1-font-size, clamp(44px, 5.4vw, 96px));
	line-height: var(--e-global-typography-ltlh1-line-height, .98);
	letter-spacing: var(--e-global-typography-ltlh1-letter-spacing, -.03em);
}
h2, .ltl-h2, .elementor-widget.ltl-h2 .elementor-heading-title {
	font-family: var(--e-global-typography-ltlh2-font-family, 'Red Hat Display'), sans-serif;
	font-weight: var(--e-global-typography-ltlh2-font-weight, 700);
	font-size: var(--e-global-typography-ltlh2-font-size, clamp(36px, 3.4vw, 64px));
	line-height: var(--e-global-typography-ltlh2-line-height, 1.02);
	letter-spacing: var(--e-global-typography-ltlh2-letter-spacing, -.03em);
}
h3, .ltl-h3, .elementor-widget.ltl-h3 .elementor-heading-title {
	font-family: var(--e-global-typography-ltlh3-font-family, 'Sora'), sans-serif;
	font-weight: var(--e-global-typography-ltlh3-font-weight, 600);
	font-size: var(--e-global-typography-ltlh3-font-size, clamp(22px, 1.6vw, 28px));
	line-height: var(--e-global-typography-ltlh3-line-height, 1.2);
	letter-spacing: var(--e-global-typography-ltlh3-letter-spacing, -.01em);
}
h4 {
	font-family: var(--e-global-typography-secondary-font-family, 'Sora'), sans-serif;
	font-weight: var(--e-global-typography-secondary-font-weight, 600);
	font-size: var(--e-global-typography-secondary-font-size, clamp(20px, 1.2vw, 24px));
	line-height: var(--e-global-typography-secondary-line-height, 1.25);
	letter-spacing: var(--e-global-typography-secondary-letter-spacing, -.01em);
}
h5 { font: 600 16px / 1.4 var(--font-body); }
h6 {
	font-family: var(--e-global-typography-ltleyebrow-font-family, 'Sora'), sans-serif;
	font-weight: var(--e-global-typography-ltleyebrow-font-weight, 500);
	font-size: var(--e-global-typography-ltleyebrow-font-size, 12px);
	letter-spacing: var(--e-global-typography-ltleyebrow-letter-spacing, .14em);
	text-transform: var(--e-global-typography-ltleyebrow-text-transform, uppercase);
}
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
b, strong { font-weight: 700; }

.ltl-h1, .elementor-widget.ltl-h1 .elementor-heading-title,
.ltl-h2, .elementor-widget.ltl-h2 .elementor-heading-title,
.ltl-h3, .elementor-widget.ltl-h3 .elementor-heading-title,
.ltl-quote-big, .elementor-widget.ltl-quote-big .elementor-heading-title { margin: 0; }
.ltl-quote-big, .elementor-widget.ltl-quote-big .elementor-heading-title {
	font-family: var(--e-global-typography-ltlquote-font-family, 'Red Hat Display'), sans-serif;
	font-weight: var(--e-global-typography-ltlquote-font-weight, 800);
	font-size: var(--e-global-typography-ltlquote-font-size, clamp(34px, 4.6vw, 92px));
	line-height: var(--e-global-typography-ltlquote-line-height, .95);
	letter-spacing: var(--e-global-typography-ltlquote-letter-spacing, -.04em);
	text-wrap: balance;
}
.ltl-lead, .ltl-lead p { font-size: clamp(17px, 1.05vw, 20px); line-height: 1.6; max-width: 760px; margin: 0; text-wrap: pretty; }
.ltl-body { font-size: clamp(15px, .9vw, 18px); line-height: 1.65; color: var(--ltl-text-2); text-wrap: pretty; }
.ltl-dark .ltl-body,
.ltl-ink .ltl-body { color: var(--ltl-on-dark-2); }
.ltl-meta { font: 500 14px var(--font-body); }
/* Small stacked details (dates, address) */
.ltl-details,
.e-con .elementor-widget.ltl-details { font: 400 14px / 2 var(--font-body); color: var(--ltl-text-2); }
.ltl-micro { font: 400 11px var(--font-body); letter-spacing: var(--ls-micro); text-transform: uppercase; color: var(--ltl-text-3); }
.ltl-dark .ltl-micro,
.ltl-ink .ltl-micro { color: var(--ltl-on-dark-2); }

/* Eyebrow: Heading widget (tag p) with the mini four-color bar */
.ltl-eyebrow,
.elementor-widget.ltl-eyebrow .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font: 500 12px var(--font-body);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
}
.ltl-eyebrow:not(.elementor-widget)::before,
.elementor-widget.ltl-eyebrow .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 44px;
	height: 6px;
	background: var(--ltl-bar);
}
/* Default space under an eyebrow widget; a margin set on the widget in the editor wins */
.e-con > .elementor-widget.ltl-eyebrow { margin-bottom: 18px; }
.elementor-widget.ltl-eyebrow--plain .elementor-heading-title::before,
.ltl-eyebrow.ltl-eyebrow--plain:not(.elementor-widget)::before { display: none; }

/* Full-width bar: once per layout (footer edge). Never over a gradient. */
.ltl-bar { display: block; width: 100%; height: 12px; background: var(--ltl-bar); }
.ltl-bar--hero { width: 240px; }

/* ---------- Buttons: sweep + nudge ---------- */
/* Native Button widget: add class ltl-btn (+ --white, --lg, --nav). ltl-web.js injects the sweep panels. */
.ltl-b,
.elementor-widget.ltl-btn .elementor-button {
	position: relative;
	overflow: hidden;
	display: inline-block;
	padding: 18px 28px;
	border: 0;
	border-radius: 0;
	font: 600 15px / 1 var(--font-body);
	text-align: center;
	cursor: pointer;
	background: var(--ltl-ink);
	color: var(--ltl-white);
	box-shadow: none;
}
.ltl-b--white,
.elementor-widget.ltl-btn--white .elementor-button { background: var(--ltl-white); color: var(--ltl-ink); }
.ltl-b:hover, .ltl-b:focus-visible,
.elementor-widget.ltl-btn .elementor-button:hover,
.elementor-widget.ltl-btn .elementor-button:focus-visible { background: var(--ltl-ink); color: var(--ltl-white); }
.ltl-b--white:hover, .ltl-b--white:focus-visible,
.elementor-widget.ltl-btn--white .elementor-button:hover,
.elementor-widget.ltl-btn--white .elementor-button:focus-visible { background: var(--ltl-white); color: var(--ltl-ink); }
.ltl-b--lg,
.elementor-widget.ltl-btn--lg .elementor-button { padding: 20px 32px; font-size: 16px; }
.ltl-b--nav,
.elementor-widget.ltl-btn--nav .elementor-button { padding: 13px 22px; font-size: 14px; }
/* No baseline gap under the nav button, so it centers with the logo and hamburger */
.elementor-widget.ltl-btn--nav .elementor-button { vertical-align: top; }

.ltl-s { position: absolute; inset: 0; display: flex; pointer-events: none; transform: translateX(-101%); }
.ltl-s i { flex: 1; }
.ltl-s i:nth-child(1) { background: var(--ltl-teal); }
.ltl-s i:nth-child(2) { background: var(--ltl-purple); }
.ltl-s i:nth-child(3) { background: var(--ltl-magenta); }
.ltl-s i:nth-child(4) { background: var(--ltl-red); }
.ltl-b:hover .ltl-s, .ltl-b:focus-visible .ltl-s,
.ltl-btn .elementor-button:hover .ltl-s, .ltl-btn .elementor-button:focus-visible .ltl-s { animation: ltlsweep var(--dur-sweep) var(--ease-brand) both; }
.ltl-b:hover .ltl-s i, .ltl-b:focus-visible .ltl-s i,
.ltl-btn .elementor-button:hover .ltl-s i, .ltl-btn .elementor-button:focus-visible .ltl-s i { animation: ltlfan var(--dur-sweep) var(--ease-brand) both; }
.ltl-b:hover .ltl-s i:nth-child(2), .ltl-btn .elementor-button:hover .ltl-s i:nth-child(2) { animation-delay: .05s; }
.ltl-b:hover .ltl-s i:nth-child(3), .ltl-btn .elementor-button:hover .ltl-s i:nth-child(3) { animation-delay: .1s; }
.ltl-b:hover .ltl-s i:nth-child(4), .ltl-btn .elementor-button:hover .ltl-s i:nth-child(4) { animation-delay: .15s; }
.ltl-t,
.ltl-btn .elementor-button-content-wrapper { position: relative; display: inline-flex; transition: transform var(--dur-nudge) var(--ease-brand); }
.ltl-t { display: inline-block; }
.ltl-b:hover .ltl-t, .ltl-b:focus-visible .ltl-t,
.ltl-btn .elementor-button:hover .elementor-button-content-wrapper,
.ltl-btn .elementor-button:focus-visible .elementor-button-content-wrapper { transform: translateX(8px); }

/* Trailing arrows (ltl-web.js wraps them) never start a line: glued to the last word,
   shrunk when the label wraps anyway, dropped when it still does. */
.ltl-arrow { white-space: nowrap; }
.is-tight .ltl-arrow { font-size: .85em; }
.is-dire .ltl-arrow { display: none; }

@keyframes ltlsweep { 0% { transform: translateX(-101%) scaleX(.5); } 50% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(140%) scaleX(1.2); } }
@keyframes ltlfan { 0% { transform: translateX(-60%); } 60% { transform: translateX(0); } 100% { transform: translateX(40%); } }
@keyframes ltlrise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

/* ---------- Header (Theme Builder header template) ---------- */
/* Container .ltl-header > Site Logo .ltl-header__logo, Nav Menu .ltl-nav-menu, Text .ltl-header__info, Button .ltl-btn--nav */
.elementor-location-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.e-con.ltl-header {
	/* Lines up with the page gutter when the row fits; otherwise narrows smoothly (row needs --row-w) */
	--row-w: 1190px;
	padding: 24px max(48px, min(var(--web-gutter), calc((100% - var(--row-w)) / 2)));
	gap: 32px;
	background-color: var(--ltl-white);
	color: var(--ltl-ink);
	border-bottom: 1px solid transparent;
	/* Past 2000px the page edges can land on a half pixel; white side edges hide the content's anti-aliased edge on scroll */
	box-shadow: -2px 0 0 var(--ltl-white), 2px 0 0 var(--ltl-white);
	transition: padding var(--dur-nudge) var(--ease-brand), border-color var(--dur-nudge) var(--ease-brand);
}
.e-con.ltl-header.is-stuck { padding-top: 12px; padding-bottom: 12px; border-bottom-color: var(--ltl-rule); }
.elementor-widget.ltl-header__logo { flex: none; }
/* Beats Elementor's 48px width on linked SVG images */
.elementor-widget.ltl-header__logo a img[src] { width: auto; max-width: none; height: 52px; transition: height var(--dur-nudge) var(--ease-brand); }
.is-stuck .elementor-widget.ltl-header__logo a img[src] { height: 40px; }

.elementor-widget.ltl-header__info {
	margin-left: auto;
	padding-left: 28px;
	border-left: 1px solid var(--ltl-rule);
	font: 600 13px / 1.35 var(--font-body);
	color: var(--ltl-ink);
	white-space: nowrap;
}
.ltl-header__info p { margin: 0; }
.ltl-header__info span { display: block; margin-top: 2px; font-weight: 400; color: var(--ltl-text-3); }

/* Nav Menu widget: links get the four-color underline */
.elementor-widget.ltl-nav-menu { flex: 1 1 auto; margin-left: 24px; }
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-nav-menu { gap: 32px; }
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item {
	position: relative;
	padding: 8px 0;
	font: 600 14px / 1.2 var(--font-body);
	letter-spacing: 0;
	color: var(--ltl-ink);
	white-space: nowrap;
}
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item:hover,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item:focus,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--ltl-ink); }
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background: var(--ltl-bar);
	opacity: 1;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dur-underline) var(--ease-brand);
}
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item:hover::after,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item:focus-visible::after,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item-active::after { transform: scaleX(1); }

/* Hamburger + dropdown panel */
.elementor-widget.ltl-nav-menu .elementor-menu-toggle {
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1.5px solid var(--ltl-ink);
	border-radius: 0;
	background: var(--ltl-white);
	color: var(--ltl-ink);
	font-size: 22px;
}
.elementor-widget.ltl-nav-menu .elementor-menu-toggle svg { fill: currentColor; }
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown {
	background: var(--ltl-white);
	border-bottom: 2px solid var(--ltl-ink);
	padding: 8px var(--web-gutter) 24px;
}
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container { margin-top: 24px; }
.is-stuck .elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container { margin-top: 12px; }
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown .elementor-item,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown .elementor-item:focus,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
	padding: 18px 0;
	border-bottom: 1px solid var(--ltl-rule);
	font: 600 20px / 1.2 var(--font-body);
	letter-spacing: 0;
	color: var(--ltl-ink);
	background: transparent;
}
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-widget.ltl-nav-menu .elementor-nav-menu--dropdown .elementor-item.elementor-item-active { padding-left: 12px; transition: padding var(--dur-nudge) var(--ease-brand); }

/* The header steps down in stages so the dates stay as long as possible:
   the gutter narrows first, then tighter nav type and spacing, then the dates drop. */
@media (max-width: 1599px) {
	.e-con.ltl-header { --row-w: 1096px; gap: 24px; }
	.elementor-widget.ltl-nav-menu { margin-left: 8px; }
	.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-nav-menu { gap: 22px; }
	.elementor-widget.ltl-nav-menu .elementor-nav-menu--main .elementor-item { font-size: 13px; }
	.elementor-widget.ltl-header__info { padding-left: 20px; font-size: 12px; }
}
@media (max-width: 1199px) {
	.elementor-widget.ltl-header__info { display: none; }
	.e-con.ltl-header > .ltl-btn--nav { margin-left: auto; }
}
@media (max-width: 1024px) {
	.e-con.ltl-header { gap: 16px; padding-left: var(--web-gutter); padding-right: var(--web-gutter); }
	.elementor-widget.ltl-nav-menu { flex: 0 0 auto; order: 3; margin-left: 0; }
	.elementor-widget.ltl-header__logo a img[src] { height: 40px; }
	/* Hamburger matches the Register button's height */
	.elementor-widget.ltl-nav-menu .elementor-menu-toggle { width: 40px; height: 40px; font-size: 20px; }
}

/* ---------- Footer (Theme Builder footer template) ---------- */
/* CTA Container .ltl-section.ltl-dark.ltl-cta, Container .ltl-bar, Container .ltl-footer with Nav Menu .ltl-footer-menu */
.ltl-cta .elementor-widget-heading { max-width: 1200px; }
.e-con .elementor-widget.ltl-cta__text { margin: 24px 0 36px; font: 400 18px / 1.6 var(--font-body); color: inherit; }
.e-con.ltl-bar { padding: 0; min-height: 12px; height: 12px; background: var(--ltl-bar); }

.e-con.ltl-footer {
	padding: 32px var(--web-gutter);
	gap: 32px;
	background-color: var(--ltl-white);
	font: 400 12px / 1.8 var(--font-body);
	color: var(--ltl-text-3);
}
.e-con.ltl-footer .elementor-widget-text-editor { font: inherit; color: inherit; }
.e-con.ltl-footer > .e-con.ltl-footer__l { width: auto; flex: 1 1 auto; }
.e-con.ltl-footer a:hover { color: var(--ltl-purple); }
.elementor-widget.ltl-footer-menu .elementor-nav-menu { flex-wrap: wrap; }
.elementor-widget.ltl-footer-menu .elementor-nav-menu--main .elementor-item,
.elementor-widget.ltl-footer-menu .elementor-nav-menu--main .elementor-item:focus,
.elementor-widget.ltl-footer-menu .elementor-nav-menu--main .elementor-item.elementor-item-active {
	padding: 0;
	font: inherit;
	letter-spacing: 0;
	color: inherit;
}
.elementor-widget.ltl-footer-menu .elementor-nav-menu--main .elementor-item:hover { color: var(--ltl-purple); }
.elementor-widget.ltl-footer-menu .elementor-nav-menu > li { display: flex; align-items: center; }
/* Resets the Nav Menu divider styles that share this pseudo-element */
.elementor-widget.ltl-footer-menu .elementor-nav-menu > li:not(:last-child)::after { content: "\00b7"; margin: 0 .45em; height: auto; border: 0; }
.elementor-widget.ltl-footer__r { margin-left: auto; text-align: right; }
@media (max-width: 1023px) {
	.elementor-widget.ltl-footer__r { margin-left: 0; text-align: left; }
}

/* ---------- Hero (inner pages + home) ---------- */
.ltl-hero { position: relative; overflow: hidden; background-color: var(--ltl-night); color: var(--ltl-white); }
.ltl-hero__scrim { position: absolute; inset: 0; background: var(--ltl-scrim-hero); pointer-events: none; }
.ltl-hero__body { position: relative; }
.ltl-hero__body > * { animation: ltlrise .9s var(--ease-brand) both; }
.ltl-hero__body > :nth-child(2) { animation-delay: .08s; }
.ltl-hero__body > :nth-child(3) { animation-delay: .16s; }
.ltl-hero__body > :nth-child(4) { animation-delay: .24s; }

/* ---------- Photography ---------- */
.ltl-photo { position: relative; overflow: hidden; background-color: var(--ltl-night); }
.ltl-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-brand); }
.ltl-photo:hover img { transform: scale(1.04); }
.ltl-vessel { border-radius: var(--radius-vessel); overflow: hidden; }
.ltl-vessel--md { border-radius: var(--radius-vessel-md); overflow: hidden; }
.ltl-vessel--sm { border-radius: var(--radius-vessel-sm); overflow: hidden; }
@media (max-width: 1023px) {
	.ltl-vessel { border-radius: 0 0 100px 0; }
}

/* Image widget that fills its box like a background photo (class on the Image widget) */
.elementor-widget-image.ltl-cover { position: relative; align-self: stretch; min-height: 420px; overflow: hidden; background-color: var(--ltl-night); }
.elementor-widget-image.ltl-cover img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
@media (max-width: 767px) {
	.elementor-widget-image.ltl-cover { min-height: 280px; }
}

/* Plain white page header (no photo): eyebrow + H1 sitting on a rule */
.e-con.ltl-page-head {
	--padding-top: 48px;
	--padding-bottom: 64px;
	--padding-left: var(--web-gutter);
	--padding-right: var(--web-gutter);
	min-height: clamp(280px, 20vw, 400px);
	justify-content: flex-end;
	border-bottom: var(--border-rule);
}

/* Contact list: micro label over a link, ruled rows (Text Editor with one <p> per contact) */
.ltl-contacts { border-top: var(--border-strong); }
.ltl-contacts p { margin: 0; padding: 18px 0; border-bottom: var(--border-rule); }
.ltl-contacts .ltl-micro { display: block; margin-bottom: 6px; }
.ltl-contacts a { font-weight: 600; }

/* Strong rule above a container (e.g. the second row of audience stats) */
.e-con.ltl-rule-top { border-top: var(--border-strong); }
/* In-page anchors (#sponsor-form) clear the sticky header */
.e-con[id] { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--web-header-h)); }

/* Google Maps widget at the design's 4:3 (class on the widget; beats its height setting) */
.elementor-widget.ltl-map iframe { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; }

/* ---------- Rows (hover rule + title nudge) ---------- */
.ltl-rows { border-top: var(--border-strong); }
.ltl-row { position: relative; border-bottom: var(--border-rule); }
.ltl-row::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	background: var(--ltl-ink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dur-underline) var(--ease-brand);
}
.ltl-row:hover::before { transform: scaleX(1); }
.ltl-row__title { transition: transform var(--dur-nudge) var(--ease-brand); }
.ltl-row:hover .ltl-row__title { transform: translateX(8px); }

/* ---------- Session tags (agenda + preview) ---------- */
.ltl-tag {
	display: inline-block;
	padding: 6px 10px;
	font: 500 11px / 1.2 var(--font-body);
	letter-spacing: .1em;
	text-transform: uppercase;
	white-space: nowrap;
	background: var(--ltl-ink);
	color: var(--ltl-white);
}
.ltl-tag--keynote { background: var(--ltl-red); }
.ltl-tag--breakout { background: var(--ltl-purple); color: var(--ltl-night); }
.ltl-tag--session { background: var(--ltl-teal); color: var(--ltl-night); }
.ltl-tag--networking { background: var(--ltl-magenta); color: var(--ltl-night); }
.ltl-tag--neutral { background: rgba(21, 21, 43, .08); color: var(--ltl-ink); }
/* Soft: tinted ground, ink text (the shipped default) */
.ltl-tag--soft { color: var(--ltl-ink); background: rgba(21, 21, 43, .08); }
.ltl-tag--soft.ltl-tag--keynote { background: color-mix(in srgb, var(--ltl-red) 18%, #fff); }
.ltl-tag--soft.ltl-tag--breakout { background: color-mix(in srgb, var(--ltl-purple) 22%, #fff); }
.ltl-tag--soft.ltl-tag--session { background: color-mix(in srgb, var(--ltl-teal) 30%, #fff); }
.ltl-tag--soft.ltl-tag--networking { background: color-mix(in srgb, var(--ltl-magenta) 18%, #fff); }
.ltl-tag--soft.ltl-tag--registration { background: rgba(21, 21, 43, .12); }

/* ---------- Highlight + ring ---------- */
/* Highlights never split across lines */
.ltl-hl { background: var(--ltl-teal); color: var(--ltl-night); padding: 0 8px; white-space: nowrap; }
/* Ring: ONE headshot only, never side by side */
.ltl-ring { flex: none; width: 64px; height: 64px; padding: 3px; background: var(--ltl-ring); border-radius: 0 0 28px 0; }
.ltl-ring img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; border: 2px solid var(--ltl-white); border-radius: 0 0 25px 0; }

/* ---------- Elementor resets the brand forbids ---------- */
.ltl-page .elementor-widget-image img,
.ltl-page .e-con { box-shadow: none; }

/* ---------- Scroll reveal (needs ltl-web.js; safe without it) ---------- */
.ltl-js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease-brand), transform .8s var(--ease-brand); transition-delay: calc(var(--i, 0) * 80ms); }
.ltl-js [data-reveal].is-in { opacity: 1; transform: none; }
.ltl-js [data-draw] { transform: scaleX(0); transform-origin: left; transition: transform 1.1s var(--ease-brand); }
.ltl-js [data-draw].is-in { transform: scaleX(1); }
.ltl-i1 { --i: 1; }
.ltl-i2 { --i: 2; }
.ltl-i3 { --i: 3; }
.ltl-i4 { --i: 4; }

/* The editor shows everything immediately */
.elementor-editor-active [data-reveal],
.elementor-editor-active [data-draw] { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .001s !important; animation-delay: 0s !important; transition-duration: .001s !important; transition-delay: 0s !important; }
	.ltl-js [data-reveal], .ltl-js [data-draw] { opacity: 1; transform: none; }
}
