/* ==========================================================================
   Site chrome: alert bar, top bar, header, navigation, drawer, footer.
   Colours and fonts follow Elementor Site Settings via its CSS variables; the fallbacks are the
   EURO29 brand tokens (logo blue #003399, logo gold #EBA500).
   Contrast (WCAG AA): blue on white 10.9:1; navy on gold 8.0:1; gold on navy 8.0:1;
   gold on white only 2.1:1, so gold is never used for text on light backgrounds
   (use --e29-accent-text, 5.6:1, for small gold-toned text).
   ========================================================================== */

:root {
	--e29-primary: var(--e-global-color-primary, #003399);
	--e29-secondary: var(--e-global-color-secondary, #1F4FB5);
	--e29-text: var(--e-global-color-text, #1B2438);
	--e29-accent: var(--e-global-color-accent, #EBA500);
	--e29-accent-bright: var(--e-global-color-accentbr, #F5C342);
	--e29-accent-text: var(--e-global-color-accenttext, #8A6000);
	--e29-navy-dark: var(--e-global-color-navydark, #0B1B3F);
	--e29-navy-deeper: #071330;
	--e29-on-accent: var(--e-global-color-navydark, #0B1B3F);
	--e29-muted: var(--e-global-color-muted, #556079);
	--e29-border: var(--e-global-color-border, #DFE4EE);
	--e29-surface: var(--e-global-color-surface, #F3F6FC);
	--e29-font-head: "Nunito", "Nunito Fallback", system-ui, sans-serif;
	--e29-font-body: "Poppins", "Poppins Fallback", system-ui, sans-serif;
	--e29-header-h: 80px;
	--e29-radius: 12px;
	--e29-radius-pill: 999px;
	--e29-shadow: 0 10px 30px rgba(11, 27, 63, 0.14);
	--e29-admin-bar: 0px;
}

.admin-bar { --e29-admin-bar: 32px; }
@media (max-width: 782px) { .admin-bar { --e29-admin-bar: 46px; } }

.e29-container {
	width: 100%;
	/* Content width matches Elementor's boxed containers (1240px + side padding). */
	max-width: calc(var(--container-max-width, 1240px) + 48px);
	margin-inline: auto;
	padding-inline: 24px;
}
@media (max-width: 767px) { .e29-container { padding-inline: 16px; } }

.e29-icon { flex-shrink: 0; display: block; }

/* Buttons ---------------------------------------------------------------- */
.e29-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.75rem 1.5rem;
	border-radius: var(--e29-radius-pill);
	font-family: var(--e29-font-body);
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, transform 0.2s;
}
.e29-btn--accent { background: var(--e29-accent); color: var(--e29-on-accent); }
.e29-btn--accent:hover, .e29-btn--accent:focus-visible { background: var(--e29-primary); color: #fff; }
.e29-btn--block { width: 100%; }

/* Alert bar -------------------------------------------------------------- */
.e29-alert { background: var(--e29-navy-dark); color: #fff; font-size: 0.875rem; }
.e29-alert-dismissed .e29-alert { display: none; }
.e29-alert__inner { display: flex; align-items: center; gap: 0.75rem; min-height: 44px; padding-block: 0.5rem; }
.e29-alert__icon { color: var(--e29-accent-bright); }
.e29-alert__text { margin: 0; flex: 1; line-height: 1.45; }
.e29-alert__text a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; margin-inline-start: 0.35rem; }
.e29-alert__text a:hover { color: var(--e29-accent-bright); }
.e29-alert__close {
	display: grid; place-items: center;
	width: 36px; height: 36px; padding: 0;
	background: transparent; border: 0; border-radius: 50%;
	color: #fff; cursor: pointer;
}
.e29-alert__close:hover { background: rgba(255, 255, 255, 0.12); }

/* Top bar ---------------------------------------------------------------- */
.e29-topbar { background: var(--e29-surface); border-bottom: 1px solid var(--e29-border); font-size: 0.875rem; }
.e29-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 42px; }
.e29-topbar__contact { display: flex; gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.e29-topbar__contact li { display: flex; align-items: center; gap: 0.4rem; color: var(--e29-secondary); }
.e29-topbar__contact a { color: var(--e29-text); text-decoration: none; }
.e29-topbar__contact a:hover { color: var(--e29-accent); }
.e29-topbar__right { display: flex; align-items: center; gap: 1rem; }
@media (max-width: 1024px) { .e29-topbar { display: none; } }

/* Social icons ----------------------------------------------------------- */
.e29-social { display: flex; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.e29-social a {
	display: grid; place-items: center;
	width: 34px; height: 34px; border-radius: 50%;
	color: var(--e29-secondary);
	transition: background-color 0.2s, color 0.2s;
}
.e29-social a:hover { background: var(--e29-primary); color: #fff; }
.e29-social--footer a, .e29-social--footer a:visited { color: #fff; background: rgba(255, 255, 255, 0.08); }
.e29-social--footer a:hover { background: var(--e29-accent); }

/* Header ----------------------------------------------------------------- */
.e29-header {
	position: sticky; top: var(--e29-admin-bar); z-index: 1000;
	background: #fff;
	border-bottom: 1px solid var(--e29-border);
	transition: box-shadow 0.25s;
}
.e29-header.is-scrolled { box-shadow: 0 4px 18px rgba(35, 39, 44, 0.1); }
.e29-header__inner { display: flex; align-items: center; gap: 2rem; min-height: var(--e29-header-h); }

.e29-logo a { display: inline-flex; align-items: center; text-decoration: none; }
/* The SVG logo is sized by height; its width follows the 794:197 aspect ratio. */
.e29-logo img { display: block; height: 46px; width: auto; max-width: none; }
@media (max-width: 1024px) { .e29-logo img { height: 40px; } }
@media (max-width: 767px)  { .e29-logo img { height: 34px; } }
.e29-footer .e29-logo img { height: 48px; }

.e29-nav { margin-inline-start: auto; }
.e29-nav__menu { display: flex; align-items: center; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.e29-nav__menu > li { position: relative; display: flex; align-items: center; }
.e29-nav__menu a {
	display: block; padding: 0.6rem 0.8rem;
	color: var(--e29-text); font: 500 0.9375rem/1.2 var(--e29-font-body); text-decoration: none;
	border-radius: 8px;
}
.e29-nav__menu > li > a { position: relative; }
.e29-nav__menu > li > a::after {
	content: ""; position: absolute; inset-inline: 0.8rem; bottom: 0.15rem; height: 3px; border-radius: 3px;
	background: var(--e29-accent); transform: scaleX(0); transform-origin: left; transition: transform 0.2s;
}
.e29-nav__menu > li:hover > a::after,
.e29-nav__menu > .current-menu-item > a::after,
.e29-nav__menu > .current-menu-ancestor > a::after,
.e29-nav__menu > .current-page-ancestor > a::after { transform: scaleX(1); }
.e29-nav__menu > li.menu-item-has-children > a { padding-inline-end: 0.15rem; }

.e29-sub-toggle {
	display: grid; place-items: center;
	width: 28px; height: 28px; padding: 0; margin-inline-end: 0.4rem;
	background: transparent; border: 0; border-radius: 4px; color: var(--e29-text); cursor: pointer;
}
.e29-sub-toggle:hover { background: var(--e29-surface); }
.e29-sub-toggle .e29-icon { transition: transform 0.2s; }
.e29-sub-toggle[aria-expanded="true"] .e29-icon { transform: rotate(180deg); }

.e29-nav .sub-menu {
	position: absolute; top: 100%; inset-inline-start: 0; z-index: 1001;
	min-width: 280px; margin: 0; padding: 0.5rem;
	list-style: none; background: #fff; border: 1px solid var(--e29-border); border-radius: var(--e29-radius);
	box-shadow: var(--e29-shadow);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity 0.18s, transform 0.18s, visibility 0s 0.18s;
}
.e29-nav .sub-menu a { padding: 0.65rem 0.8rem; }
.e29-nav .sub-menu a:hover, .e29-nav .sub-menu a:focus-visible, .e29-nav .sub-menu .current-menu-item > a { background: var(--e29-surface); color: var(--e29-primary); }
.e29-nav li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
@media (hover: hover) {
	.e29-nav li:hover > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
}

.e29-header__actions { display: flex; align-items: center; gap: 0.75rem; }
.e29-burger {
	display: none; place-items: center;
	width: 44px; height: 44px; padding: 0;
	background: transparent; border: 1px solid var(--e29-border); border-radius: var(--e29-radius);
	color: var(--e29-primary); cursor: pointer;
}

@media (max-width: 1024px) {
	:root { --e29-header-h: 68px; }
	.e29-nav { display: none; }
	.e29-header__actions { margin-inline-start: auto; }
	.e29-burger { display: grid; }
}
@media (max-width: 767px) {
	.e29-header__cta { display: none; }
}

/* Mobile drawer ---------------------------------------------------------- */
.e29-drawer { position: fixed; inset: 0; z-index: 10000; }
.e29-drawer[hidden] { display: none; }
.e29-drawer__backdrop { position: absolute; inset: 0; background: rgba(11, 27, 63, 0.6); opacity: 0; transition: opacity 0.25s; }
.e29-drawer__panel {
	position: absolute; inset-block: 0; inset-inline-end: 0;
	display: flex; flex-direction: column; gap: 1.25rem;
	width: min(400px, 100%); padding: 1rem 1.25rem 2rem;
	overflow-y: auto; overscroll-behavior: contain;
	background: #fff;
	transform: translateX(100%); transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.e29-drawer.is-open .e29-drawer__backdrop { opacity: 1; }
.e29-drawer.is-open .e29-drawer__panel { transform: none; }
.e29-drawer__head { display: flex; align-items: center; justify-content: space-between; }
.e29-drawer__title { margin: 0; font: 700 1.125rem/1 var(--e29-font-head); color: var(--e29-primary); }
.e29-drawer__close {
	display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
	background: var(--e29-surface); border: 0; border-radius: 50%; color: var(--e29-primary); cursor: pointer;
}
.e29-drawer__menu, .e29-drawer__menu .sub-menu { margin: 0; padding: 0; list-style: none; }
.e29-drawer__menu > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--e29-border); }
.e29-drawer__menu a {
	flex: 1; display: block; padding: 0.9rem 0.25rem;
	color: var(--e29-text); font: 600 1.0625rem/1.3 var(--e29-font-body); text-decoration: none;
}
.e29-drawer__menu .e29-sub-toggle { width: 44px; height: 44px; margin: 0; }
.e29-drawer__menu .sub-menu { flex-basis: 100%; display: none; padding-bottom: 0.5rem; }
.e29-drawer__menu li.is-open > .sub-menu { display: block; }
.e29-drawer__menu .sub-menu a { padding: 0.6rem 0.75rem; font-weight: 500; font-size: 0.9688rem; border-inline-start: 2px solid var(--e29-border); }
.e29-drawer__contact { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.e29-drawer__contact li { display: flex; align-items: center; gap: 0.6rem; color: var(--e29-secondary); }
.e29-drawer__contact a { color: var(--e29-text); text-decoration: none; }
html.e29-drawer-open { overflow: hidden; }

/* Footer ----------------------------------------------------------------- */
.e29-footer { position: relative; margin-top: 0; padding-top: 1px; background: var(--e29-navy-dark); color: rgba(255, 255, 255, 0.84); font-size: 0.9375rem; }
/* Gold-to-blue brand rule along the top edge of the footer. */
.e29-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--e29-accent) 0 22%, var(--e29-primary) 22% 100%); }
.e29-footer a { color: rgba(255, 255, 255, 0.86); text-decoration: none; }
.e29-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

.e29-footer__cta {
	display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
	margin-top: 3rem; padding: 1.75rem 2rem;
	background: var(--e29-primary); border-radius: 16px;
}
.e29-footer__cta-title { margin: 0; font: 800 1.5rem/1.25 var(--e29-font-head); color: #fff; }
.e29-footer__cta-text { margin: 0.35rem 0 0; color: rgba(255, 255, 255, 0.85); }
.e29-footer__cta .e29-btn:hover { background: #fff; color: var(--e29-primary); text-decoration: none; }

.e29-footer__grid {
	/* Brand column first; the menu and contact columns share the rest, however many are filled in. */
	display: grid; grid-template-columns: minmax(260px, 1.5fr); grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 2.5rem;
	padding-block: 3.5rem 3rem;
}
.e29-footer__about { margin: 1rem 0 1.25rem; line-height: 1.65; max-width: 34ch; }
.e29-footer__heading { margin: 0 0 1rem; font: 800 1.0625rem/1.3 var(--e29-font-head); color: #fff; letter-spacing: 0.01em; }
.e29-footer__menu { display: grid; gap: 0.55rem; margin: 0; padding: 0; list-style: none; }
.e29-footer__contact { display: grid; gap: 0.85rem; margin: 0; padding: 0; list-style: none; }
.e29-footer__contact li { display: flex; gap: 0.65rem; align-items: flex-start; }
.e29-footer__contact .e29-icon { margin-top: 2px; color: var(--e29-accent-bright); }
.e29-footer__contact address { font-style: normal; }

.e29-footer__bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); background: var(--e29-navy-deeper); font-size: 0.875rem; }
.e29-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; min-height: 60px; padding-block: 0.9rem; }
.e29-footer__copy { margin: 0; }
.e29-footer__legal { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; margin: 0; padding: 0; list-style: none; }
/* Statutory company line: items separated by dots; short items never break inside, the court name may. */
/* Legal disclaimer: full-size, readable text above the company line (AA on the dark footer). */
.e29-footer__disclaimer { flex-basis: 100%; margin: 0; padding-top: 0.25rem; color: rgba(255, 255, 255, 0.86); font-size: 0.9375rem; line-height: 1.6; }
.e29-footer__company { display: flex; flex-wrap: wrap; flex-basis: 100%; gap: 0.25rem 0; margin: 0; padding: 0; list-style: none; font-size: 0.8125rem; line-height: 1.5; }
.e29-footer__company li { white-space: nowrap; }
.e29-footer__company li:nth-child(3) { white-space: normal; }
.e29-footer__company li:not(:last-child)::after { content: "·" / ""; margin: 0 0.5rem; }
@media (max-width: 767px) {
	.e29-footer__company { flex-direction: column; gap: 0.15rem; }
	.e29-footer__company li { white-space: normal; }
	.e29-footer__company li:not(:last-child)::after { content: none; }
}

@media (max-width: 1024px) {
	.e29-footer__grid { grid-template-columns: 1fr 1fr; grid-auto-flow: row; }
}
@media (max-width: 767px) {
	.e29-footer__cta { padding: 1.5rem; margin-top: 2rem; }
	.e29-footer__cta .e29-btn { width: 100%; }
	.e29-footer__grid { grid-template-columns: 1fr; gap: 2rem; padding-block: 2.5rem 2rem; }
	.e29-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
}

/* Elementor Site Settings style every <button> and <a> (.elementor-kit-N button,
   :hover, :focus). Theme chrome controls keep their own look via higher specificity. */
html body :is(.e29-alert__close, .e29-sub-toggle, .e29-burger, .e29-drawer__close),
html body :is(.e29-alert__close, .e29-sub-toggle, .e29-burger, .e29-drawer__close):is(:hover, :focus) {
	padding: 0;
	font: inherit;
	line-height: 1;
	box-shadow: none;
	text-transform: none;
}
html body .e29-alert__close { background: transparent; color: #fff; border-radius: 50%; }
html body .e29-alert__close:is(:hover, :focus) { background: rgba(255, 255, 255, 0.14); color: #fff; }
html body .e29-sub-toggle { background: transparent; color: var(--e29-text); border-radius: 4px; }
html body .e29-sub-toggle:is(:hover, :focus) { background: var(--e29-surface); color: var(--e29-primary); }
html body .e29-burger { background: transparent; color: var(--e29-primary); border: 1px solid var(--e29-border); border-radius: var(--e29-radius); }
html body .e29-burger:is(:hover, :focus) { background: var(--e29-surface); color: var(--e29-primary); }
html body .e29-drawer__close { background: var(--e29-surface); color: var(--e29-primary); border-radius: 50%; }
html body .e29-drawer__close:is(:hover, :focus) { background: var(--e29-border); color: var(--e29-primary); }

html body .e29-btn--accent, html body .e29-btn--accent:visited { background: var(--e29-accent); color: var(--e29-on-accent); }
html body .e29-btn--accent:is(:hover, :focus) { background: var(--e29-primary); color: #fff; }
html body .e29-footer__cta .e29-btn--accent:is(:hover, :focus) { background: #fff; color: var(--e29-primary); }
html body :is(.e29-nav__menu, .e29-drawer__menu) a { color: var(--e29-text); }
html body :is(.e29-nav__menu, .e29-drawer__menu) a:hover,
html body :is(.e29-nav__menu, .e29-drawer__menu) .current-menu-item > a { color: var(--e29-primary); }
html body .e29-footer a { color: rgba(255, 255, 255, 0.86); }
html body .e29-footer a.e29-btn--accent { color: var(--e29-on-accent); } /* navy on gold, 8:1 */
html body .e29-footer a.e29-btn--accent:is(:hover, :focus) { background: #fff; color: var(--e29-primary); }
html body .e29-footer a:hover { color: #fff; }
html body .e29-alert__text a, html body .e29-alert__text a:hover { color: #fff; }

/* Active page in menus (WordPress marks the link with aria-current="page"): the current item and its
   parent item (e.g. Our Services on a service sub-page) take the brand colour and an
   underline; in the footer the same, more subtly. */
html body .e29-nav__menu > :is(.current-menu-item, .current-menu-ancestor, .current-page-ancestor) > a { color: var(--e29-primary); font-weight: 600; }
html body .e29-nav .sub-menu .current-menu-item > a,
html body .e29-drawer__menu :is(.current-menu-item, .current-menu-ancestor, .current-page-ancestor) > a {
	color: var(--e29-primary);
	text-decoration: underline;
	text-decoration-color: var(--e29-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.35em;
}
html body .e29-nav .sub-menu .current-menu-item > a { background: var(--e29-surface); }
html body .e29-drawer__menu .sub-menu .current-menu-item > a { border-inline-start-color: var(--e29-accent); }
html body .e29-footer :is(.e29-footer__menu, .e29-footer__legal) .current-menu-item > a {
	color: #fff;
	text-decoration: underline;
	text-decoration-color: var(--e29-accent-bright);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

#e29-main:focus { outline: none; } /* skip link target; focus moves into it, not a control */

/* Long compound words (e.g. German) wrap and hyphenate in headings instead of overflowing on phones.
   Hyphenation follows the page language (<html lang>). */
:is(h1, h2, h3, h4, .elementor-heading-title) { overflow-wrap: break-word; hyphens: auto; }

/* Floating WhatsApp button: phones only (desktop has WhatsApp in the top strip and footer). */
.e29-wa-float { display: none; }
@media (max-width: 767px) {
	.e29-wa-float {
		position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 90;
		display: inline-flex; align-items: center; justify-content: center;
		width: 56px; height: 56px; border-radius: 50%;
		background: #1a7f45; color: #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
	}
	.e29-wa-float:hover, .e29-wa-float:focus-visible { background: #14653a; color: #fff; }
	.e29-wa-float:focus-visible { outline: 3px solid var(--e29-primary); outline-offset: 3px; }
	html.e29-drawer-open .e29-wa-float { display: none; }
	/* Keep the last footer line clear of the button. */
	.e29-footer__bottom { padding-bottom: 72px; }
}

/* Cookie consent banner (inc/consent.php): bottom panel, three equal-weight buttons. */
.e29-consent { position: fixed; inset: auto 16px 16px 16px; z-index: 9000; display: flex; justify-content: center; pointer-events: none; }
.e29-consent[hidden] { display: none; }
.e29-consent__panel { pointer-events: auto; width: min(760px, 100%); padding: 22px 24px; border: 1px solid var(--e29-border); border-radius: 16px; background: #fff; box-shadow: 0 18px 48px rgba(11, 27, 63, 0.22); color: var(--e29-text); }
.e29-consent__title { margin: 0 0 0.4rem; font: 800 1.125rem/1.3 var(--e29-font-head); color: var(--e29-navy-dark); }
.e29-consent__text { margin: 0 0 1rem; font-size: 0.9375rem; line-height: 1.55; }
.e29-consent__settings { display: grid; gap: 10px; margin: 0 0 1rem; padding: 14px 16px; border-radius: 12px; background: var(--e29-surface); }
.e29-consent__option { display: flex; gap: 10px; align-items: flex-start; font-size: 0.9375rem; line-height: 1.45; }
.e29-consent__option input { width: 20px; height: 20px; margin-top: 2px; flex-shrink: 0; accent-color: var(--e29-primary); }
.e29-consent__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
html body .e29-consent__btn, html body .e29-consent__btn:is(:hover, :focus) {
	min-height: 44px; padding: 0.6rem 1rem; border: 2px solid var(--e29-primary); border-radius: 999px;
	background: #fff; color: var(--e29-primary); font: 600 0.9375rem/1.2 var(--e29-font-body); cursor: pointer; box-shadow: none;
}
html body .e29-consent__btn:hover { background: var(--e29-primary); color: #fff; }
html body .e29-consent__btn[hidden] { display: none; }
@media (max-width: 600px) { .e29-consent { inset: auto 8px 8px 8px; } .e29-consent__panel { padding: 18px; } .e29-consent__actions { grid-template-columns: 1fr; } }
html.e29-consent-open .e29-wa-float { display: none; }
/* Footer "Cookie settings" (styled like the legal links). */
html body .e29-cookie-settings, html body .e29-cookie-settings:is(:hover, :focus) { padding: 0; border: 0; background: none; color: rgba(255, 255, 255, 0.86); font: inherit; cursor: pointer; box-shadow: none; }
html body .e29-cookie-settings:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
/* Links inside running text are underlined, not marked by colour alone (WCAG 1.4.1). */
html body .e29-consent__text a { color: var(--e29-primary); text-decoration: underline; text-underline-offset: 0.15em; }
html body .e29-consent__settings[hidden] { display: none; }

/* Tap targets: every standalone link and button is at least 44 × 44 px (WCAG 2.5.5 target size;
   links inside running text are exempt). Visual size stays the same; only the hit area grows. */
.e29-logo a { min-height: 44px; }
html body .elementor-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
html body .e29-link-arrow .elementor-button { min-height: 44px; }
.e29-nav__menu > li > a { min-height: 44px; display: flex; align-items: center; }
.e29-footer__menu { gap: 0; }
.e29-footer__menu a, .e29-footer__legal a, html body .e29-cookie-settings { display: inline-flex; align-items: center; min-height: 44px; }
.e29-footer__legal { gap: 0 1.4rem; }
.e29-footer__contact a, .e29-topbar__contact a, .e29-drawer__contact a { display: inline-flex; align-items: center; min-height: 44px; }
.e29-topbar__inner { min-height: 44px; }
.e29-social a { width: 44px; height: 44px; }
.e29-breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }
html body .e29-toc li a { display: inline-flex; align-items: center; min-height: 44px; }
html body .e29-toc li { margin: 0; }
html body .e29-channels__value a { display: inline-flex; align-items: center; min-height: 44px; }
.e29-breadcrumbs a, .e29-footer__menu a, .e29-footer__legal a, .e29-nav__menu > li > a { min-width: 44px; }

/* Elementor's global fonts with the metric-matched fallbacks (assets/fonts/fonts.css). The attribute
   selector outranks the kit's own ".elementor-kit-N" rules without depending on the kit ID. */
body[class*="elementor-kit-"] {
	--e-global-typography-primary-font-family: "Nunito", "Nunito Fallback";
	--e-global-typography-secondary-font-family: "Nunito", "Nunito Fallback";
	--e-global-typography-text-font-family: "Poppins", "Poppins Fallback";
	--e-global-typography-accent-font-family: "Poppins", "Poppins Fallback";
	--e-global-typography-eyebrow-font-family: "Poppins", "Poppins Fallback";
	--e-global-typography-small-font-family: "Poppins", "Poppins Fallback";
	--e-global-typography-lead-font-family: "Poppins", "Poppins Fallback";
	font-family: "Poppins", "Poppins Fallback", sans-serif;
}
body[class*="elementor-kit-"] :is(h1, h2, h3, h4, h5, h6) { font-family: "Nunito", "Nunito Fallback", sans-serif; }
body[class*="elementor-kit-"] :is(button, input, select, textarea, .elementor-button) { font-family: "Poppins", "Poppins Fallback", sans-serif; }
