/*!
 * Integrakare Header, Footer & Mega Menu — front-end styles
 * Boutique concierge-medical editorial skin (see the Integrakare design-system prompt guide)
 *
 * Every rule stays namespaced under .alhm / .alhm-header / .alhm-footer and is
 * driven by CSS custom properties, so nothing leaks into — or is overridden
 * by — the active theme, and nothing here can collide with other plugins.
 *
 * Brand fonts (Playfair Display + Inter) are loaded as a proper, cacheable,
 * preconnected <link> by the plugin's PHP (see register_assets()) — NOT as an
 * @import here, because @import blocks CSS parsing and delays first paint.
 */

/* ---------- Header / Footer wrappers ---------- */
.alhm-header,
.alhm-footer {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
.alhm-header {
	position: relative;
	z-index: 9990;
	background: var(--alhm-header-bg, #fff);
	border-bottom: 1px solid rgba(7, 43, 79, .08);
}
.alhm-header--sticky {
	position: -webkit-sticky;
	position: sticky;
	top: env(safe-area-inset-top, 0px);
}
body.admin-bar .alhm-header--sticky { top: calc(32px + env(safe-area-inset-top, 0px)); }
@media (max-width: 782px) {
	body.admin-bar .alhm-header--sticky { top: calc(46px + env(safe-area-inset-top, 0px)); }
}
.alhm-header.is-stuck {
	border-bottom-color: transparent;
	box-shadow: 0 18px 40px -22px rgba(7, 43, 79, .28);
}

/* Footer wrapper: comfortable default padding + safe rhythm for whatever Elementor content is placed inside */
.alhm-footer {
	background: var(--alhm-footer-bg, #072B4F);
	padding-block: clamp(40px, 6vw, 88px);
	padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
	overflow-x: hidden;
}
.alhm-footer .elementor-container { flex-wrap: wrap; row-gap: 32px; }
@media (max-width: 767px) {
	.alhm-footer .elementor-column { min-width: 100% !important; }
}

/* ---------- Design tokens (Integrakare palette — override per-instance from Elementor style controls) ---------- */
.alhm {
	--alhm-text: #072B4F;                 /* deep navy */
	--alhm-hover: #B98A4A;                /* gold / bronze */
	--alhm-divider: rgba(7, 43, 79, .12); /* hairline border */
	--alhm-icon: #072B4F;
	--alhm-icon-size: 15px;
	--alhm-item-hover-bg: rgba(185, 138, 74, .08);
	--alhm-panel-bg: #FFFFFF;
	--alhm-panel-max: 1240px;
	--alhm-panel-pad: 40px;
	--alhm-panel-radius: 0 0 4px 4px;
	--alhm-badge-bg: #072B4F;
	--alhm-badge-text: #E9D3AC;
	--alhm-btn-bg: #B98A4A;
	--alhm-btn-text: #FFFFFF;
	--alhm-btn-hover: #A67A3D;
	--alhm-outline: #072B4F;
	--alhm-btn-radius: 2px;
	--alhm-drawer-bg: #FAF7F1;
	--alhm-drawer-w: min(92vw, 420px);
	--alhm-overlay: rgba(5, 29, 54, .55);
	--alhm-eyebrow: #B98A4A;
	--alhm-card-bg: #FAF7F1;

	position: relative;
	display: block;
	width: 100%;
	color: var(--alhm-text);
	font-family: 'Inter', system-ui, -apple-system, sans-serif;
	line-height: 1.4;
	-webkit-font-smoothing: antialiased;
}

/* ---------- Scoped reset ---------- */
.alhm *,
.alhm *::before,
.alhm *::after { box-sizing: border-box; }
.alhm ul,
.alhm li { margin: 0; padding: 0; list-style: none; }
.alhm ul::before, .alhm li::before, .alhm li::marker { content: none; }
.alhm a { text-decoration: none; box-shadow: none; border: 0; background-image: none; }
.alhm button {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	border-radius: 0;
	box-shadow: none;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.alhm a:focus-visible,
.alhm button:focus-visible {
	outline: 2px solid var(--alhm-hover);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---------- Bar ---------- */
.alhm .alhm__bar {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.2vw, 36px);
	width: 100%;
	min-height: var(--alhm-bar-h, 88px);
}
.alhm .alhm__logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	color: var(--alhm-text);
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	font-weight: 600;
	font-size: clamp(1.35rem, 1.1rem + .8vw, 1.7rem);
	letter-spacing: -.01em;
}
.alhm .alhm__logo img {
	display: block;
	width: var(--alhm-logo-w, 170px);
	max-width: 100%;
	height: auto;
	border-radius: 0;
}
.alhm .alhm__drawer {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: clamp(12px, 1.6vw, 24px);
	min-width: 0;
}
.alhm .alhm__drawer-head,
.alhm .alhm__toggle { display: none; }

.alhm .alhm__nav {
	display: flex;
	flex: 1 1 auto;
	justify-content: var(--alhm-nav-justify, flex-start);
	min-width: 0;
}
.alhm .alhm__list {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: var(--alhm-gap, 2px);
}
.alhm .alhm__item { position: static; }
.alhm .alhm__item--dropdown { position: relative; }
.alhm .alhm__row { display: flex; align-items: center; }

.alhm .alhm__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 10px 2px 10px 10px;
	white-space: nowrap;
	color: var(--alhm-text);
	font-size: clamp(.86rem, .8rem + .2vw, .95rem);
	font-weight: 500;
	letter-spacing: .01em;
	transition: color .15s ease;
}
/* Thin gold accent rule that grows in under the link on hover/open — signature motif */
.alhm .alhm__link::after {
	content: "";
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: 2px;
	height: 1px;
	background: var(--alhm-hover);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .22s ease;
}
.alhm .alhm__item:not(.has-panel) .alhm__link { padding-right: 10px; }
.alhm .alhm__chev {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 28px;
	margin-inline-end: 2px;
	color: var(--alhm-text);
	opacity: .55;
	transition: transform .2s ease, color .15s ease, opacity .15s ease;
}
.alhm .alhm__link:hover,
.alhm .alhm__item.is-open > .alhm__row .alhm__link,
.alhm .alhm__item.is-open > .alhm__row .alhm__chev { color: var(--alhm-hover); opacity: 1; }
.alhm .alhm__link:hover::after,
.alhm .alhm__item.is-open > .alhm__row .alhm__link::after { transform: scaleX(1); }
.alhm .alhm__item.is-open > .alhm__row .alhm__chev { transform: rotate(180deg); opacity: 1; }

/* ---------- Panels ---------- */
.alhm .alhm__panel {
	position: absolute;
	top: var(--alhm-panel-top, 100%);
	left: var(--alhm-panel-left, 0);
	width: var(--alhm-panel-w, 100%);
	z-index: 9999;
	background: var(--alhm-panel-bg);
	border-radius: var(--alhm-panel-radius);
	border-top: 2px solid var(--alhm-hover);
	box-shadow: 0 32px 56px -20px rgba(7, 43, 79, .24);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
}
/* Invisible bridge so the pointer can travel from the link down to the panel. */
.alhm .alhm__panel::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -28px;
	height: 28px;
}
.alhm .alhm__item.is-open > .alhm__panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition-delay: 0s;
}
.alhm[data-panel="boxed"] .alhm__panel { border-radius: 4px; }
.alhm[data-panel="boxed"] .alhm__panel-inner { max-width: none; }

.alhm .alhm__panel-inner {
	max-width: var(--alhm-panel-max);
	margin-inline: auto;
	padding: var(--alhm-panel-pad);
}
.alhm .alhm__panel-inner--tpl { padding: 0; }

.alhm .alhm__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 32px;
}
.alhm .alhm__card { grid-column: span var(--alhm-span, 12); min-width: 0; }
.alhm .alhm__card-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 0 0 16px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--alhm-divider);
}
.alhm .alhm__card-head .alhm__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1px solid var(--alhm-divider);
	background: transparent;
	color: var(--alhm-text);
	font-size: 16px;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.alhm .alhm__card:hover .alhm__card-head .alhm__icon {
	border-color: var(--alhm-hover);
	background: var(--alhm-hover);
	color: #fff;
}
.alhm .alhm__card-title {
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--alhm-text);
}
.alhm .alhm__cols {
	display: grid;
	grid-template-columns: repeat(var(--alhm-cols, 1), minmax(0, 1fr));
	gap: 28px;
	padding: 0;
}
.alhm .alhm__col-title {
	margin-bottom: 10px;
	padding: 0 0 10px 0;
	border-bottom: 1px solid var(--alhm-divider);
	font-family: 'Inter', sans-serif;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--alhm-eyebrow);
}
.alhm .alhm__ilink {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 9px 10px;
	margin-inline: -10px;
	border-radius: 6px;
	color: var(--alhm-text);
	transition: color .15s ease, background-color .15s ease;
}
.alhm .alhm__ilink:hover,
.alhm .alhm__ilink:focus-visible,
.alhm .alhm__ilink.is-pv {
	background: var(--alhm-item-hover-bg);
	color: var(--alhm-hover);
}
.alhm .alhm__ilink .alhm__icon {
	display: inline-flex;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.3em;
	color: var(--alhm-icon);
	font-size: var(--alhm-icon-size);
	line-height: 1;
	transition: color .15s ease;
}
.alhm .alhm__ilink:hover .alhm__icon { color: var(--alhm-hover); }
.alhm .alhm__icon i { font-size: inherit; line-height: 1; }
.alhm .alhm__icon svg { width: 1em; height: 1em; fill: currentColor; }
.alhm .alhm__itext { display: block; min-width: 0; }
.alhm .alhm__ilink-title { display: block; font-size: .95rem; font-weight: 500; }
.alhm .alhm__idesc { display: block; margin-top: 2px; font-size: .8rem; color: #697386; opacity: .85; }
.alhm .alhm__badge {
	margin-inline-start: 2px;
	padding: 2px 9px;
	border-radius: 999px;
	background: var(--alhm-badge-bg);
	color: var(--alhm-badge-text);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.5;
}

/* ---------- Feature card (dark call-to-action tile inside a mega panel) ---------- */
.alhm .alhm__card--feature { grid-column: span var(--alhm-span, 4); }
.alhm .alhm__feature {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	height: 100%;
	padding: 26px;
	background: linear-gradient(155deg, #051D36 0%, #0D4775 100%);
	border-radius: 4px;
	overflow: hidden;
}
.alhm .alhm__feature::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 26px;
	bottom: 26px;
	width: 2px;
	background: var(--alhm-hover);
}
.alhm .alhm__feature-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #E9D3AC;
}
.alhm .alhm__feature-title {
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	font-weight: 600;
	font-size: 1.2rem;
	line-height: 1.3;
	color: #fff;
}
.alhm .alhm__feature-text { font-size: .85rem; line-height: 1.5; color: #C9D9E5; }
.alhm .alhm__feature-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 10px;
	color: #fff;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .02em;
	border-top: 1px solid rgba(255, 255, 255, .18);
	width: 100%;
	transition: color .15s ease;
}
.alhm .alhm__feature-cta:hover { color: var(--alhm-hover); }
.alhm .alhm__feature-arrow { transition: transform .18s ease; }
.alhm .alhm__feature-cta:hover .alhm__feature-arrow { transform: translateX(4px); }

/* Simple dropdown */
.alhm .alhm__item--dropdown > .alhm__panel {
	top: calc(100% + 6px);
	left: 0;
	width: max-content;
	min-width: 240px;
	max-width: 360px;
	padding: 10px;
	border-radius: 2px;
}
.alhm .alhm__item--dropdown > .alhm__panel::before { top: -8px; height: 8px; }
[dir="rtl"] .alhm .alhm__item--dropdown > .alhm__panel { left: auto; right: 0; }

/* ---------- Buttons ---------- */
.alhm .alhm__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-inline-start: auto;
	flex: 0 0 auto;
}
.alhm .alhm__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px clamp(12px, 1.1vw, 17px);
	border: 1px solid transparent;
	border-radius: var(--alhm-btn-radius);
	font-family: 'Inter', sans-serif;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	line-height: 1;
	white-space: nowrap;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.alhm .alhm__btn--primary { background: var(--alhm-btn-bg); color: var(--alhm-btn-text); }
.alhm .alhm__btn--primary:hover { background: var(--alhm-btn-hover); color: var(--alhm-btn-text); transform: translateY(-2px); }
.alhm .alhm__btn--outline { border-color: var(--alhm-outline); color: var(--alhm-outline); background: transparent; }
.alhm .alhm__btn--outline:hover { background: var(--alhm-outline); color: #fff; transform: translateY(-2px); }
.alhm .alhm__btn--text {
	padding: 10px 2px;
	border-radius: 0;
	color: var(--alhm-text);
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: none;
	border-bottom: 1px solid var(--alhm-divider);
}
.alhm .alhm__btn--text:hover { color: var(--alhm-hover); border-color: var(--alhm-hover); }
.alhm .alhm__btn-icon { display: inline-flex; font-size: 1em; line-height: 1; transition: transform .18s ease; }
.alhm .alhm__btn-icon svg { width: 1em; height: 1em; fill: currentColor; }
.alhm .alhm__btn:hover .alhm__btn-icon { transform: translateX(4px); }

/* ---------- Overlay ---------- */
.alhm .alhm__overlay {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: var(--alhm-overlay);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility 0s linear .3s;
}
.alhm:not(.alhm--mobile) .alhm__overlay { display: none; }

/* ======================================================================
 * MOBILE / TABLET — off-canvas drawer + accordions
 * (.alhm--mobile is toggled by JS from the "Switch to mobile menu below" setting)
 * ==================================================================== */
.alhm.alhm--mobile { --alhm-bar-h: 68px; }
.alhm.alhm--mobile .alhm__bar { gap: 12px; padding-inline: 0; }
.alhm.alhm--mobile .alhm__logo { min-width: 0; max-width: 60%; }
.alhm.alhm--mobile .alhm__logo img { width: min(var(--alhm-logo-w, 150px), 100%); }
.alhm.alhm--mobile .alhm__logo-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1.2rem; }

/* Hamburger */
.alhm.alhm--mobile .alhm__toggle {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 48px;
	height: 48px;
	margin-inline-start: auto;
	border-radius: 2px;
	color: var(--alhm-burger, var(--alhm-text));
	-webkit-tap-highlight-color: transparent;
}
.alhm.alhm--mobile .alhm__toggle:active { background: var(--alhm-item-hover-bg); }
.alhm .alhm__toggle span {
	display: block;
	width: 22px;
	height: 1px;
	border-radius: 0;
	background: currentColor;
}

/* Off-canvas drawer */
.alhm.alhm--mobile .alhm__drawer {
	position: fixed;
	top: 0;
	bottom: 0;
	inset-inline-end: 0;
	z-index: 10001;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: var(--alhm-drawer-w);
	height: 100vh;
	height: 100dvh;
	padding: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	background: var(--alhm-drawer-bg);
	box-shadow: -30px 0 70px rgba(5, 29, 54, .22);
	padding-inline-end: env(safe-area-inset-right, 0px);
	transform: translateX(100%);
	visibility: hidden;
	transition: transform .36s cubic-bezier(.22, .61, .36, 1), visibility 0s linear .36s;
}
[dir="rtl"] .alhm.alhm--mobile .alhm__drawer { transform: translateX(-100%); box-shadow: 30px 0 70px rgba(5, 29, 54, .22); }
.alhm.alhm--mobile.alhm--open .alhm__drawer { transform: none; visibility: visible; transition-delay: 0s; }
.alhm.alhm--mobile.alhm--open .alhm__overlay { opacity: 1; visibility: visible; transition-delay: 0s; }
.alhm.alhm--mobile .alhm__overlay { -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }

/* Drawer header: logo-less, close button only, stays pinned while scrolling */
.alhm.alhm--mobile .alhm__drawer-head {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex: 0 0 auto;
	min-height: 64px;
	padding: 0 16px 0 22px;
	background: var(--alhm-drawer-bg);
	border-bottom: 1px solid var(--alhm-divider);
}
.alhm .alhm__drawer-title {
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--alhm-text);
}
.alhm .alhm__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 2px;
	color: var(--alhm-text);
	-webkit-tap-highlight-color: transparent;
}
.alhm .alhm__close:active { background: var(--alhm-item-hover-bg); }

/* Navigation list */
.alhm.alhm--mobile .alhm__nav { display: block; flex: 1 0 auto; padding: 6px 22px 12px; }
.alhm.alhm--mobile .alhm__list { flex-direction: column; align-items: stretch; gap: 0; }
.alhm.alhm--mobile .alhm__item { border-bottom: 1px solid var(--alhm-divider); }
.alhm.alhm--mobile .alhm__item:last-child { border-bottom: 0; }
.alhm.alhm--mobile .alhm__row { justify-content: space-between; min-height: 56px; }
.alhm.alhm--mobile .alhm__link { flex: 1 1 auto; min-height: 56px; padding: 0 4px; font-size: 1.0625rem; font-weight: 500; }
.alhm.alhm--mobile .alhm__link::after { display: none; }
.alhm.alhm--mobile .alhm__item:not(.has-panel) .alhm__link { padding-right: 4px; }
.alhm.alhm--mobile .alhm__chev {
	width: 48px;
	height: 48px;
	margin: 0;
	border-radius: 2px;
	-webkit-tap-highlight-color: transparent;
}
.alhm.alhm--mobile .alhm__chev svg { width: 14px; height: 14px; }
.alhm.alhm--mobile .alhm__chev:active { background: var(--alhm-item-hover-bg); }

/* Panels turn into smooth accordions */
.alhm.alhm--mobile .alhm__panel,
.alhm.alhm--mobile .alhm__item--dropdown > .alhm__panel {
	position: static;
	width: auto;
	min-width: 0;
	max-width: none;
	padding: 0;
	background: transparent;
	border-radius: 0;
	border-top: 0;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	max-height: 0;
	overflow: hidden;
	visibility: hidden; /* closed accordions are not tabbable */
	transition: max-height .32s ease, visibility 0s linear .32s;
}
.alhm.alhm--mobile .alhm__item.is-open > .alhm__panel { visibility: visible; transition-delay: 0s; }
.alhm.alhm--mobile .alhm__panel::before { display: none; }
.alhm.alhm--mobile .alhm__panel-inner { max-width: none; padding: 2px 0 18px; }
.alhm.alhm--mobile .alhm__grid { display: block; }
.alhm.alhm--mobile .alhm__card { margin: 0 0 14px; }
.alhm.alhm--mobile .alhm__card:last-child { margin-bottom: 0; }
.alhm.alhm--mobile .alhm__card-head { gap: 10px; padding: 0 0 10px; margin-bottom: 8px; }
.alhm.alhm--mobile .alhm__card-head .alhm__icon { width: 34px; height: 34px; font-size: 14px; }
.alhm.alhm--mobile .alhm__card-title { font-size: 1.05rem; }
.alhm.alhm--mobile .alhm__cols { display: block; padding: 0; }
.alhm.alhm--mobile .alhm__col { margin: 0 0 6px; }
.alhm.alhm--mobile .alhm__col-title { margin: 10px 0 2px; padding: 0 0 8px; font-size: .68rem; opacity: .8; }
.alhm.alhm--mobile .alhm__ilink { min-height: 48px; margin-inline: 0; padding: 10px 8px; gap: 14px; border-radius: 2px; font-size: 1rem; -webkit-tap-highlight-color: transparent; }
.alhm.alhm--mobile .alhm__ilink:hover { background: transparent; color: var(--alhm-text); padding-left: 8px; }
.alhm.alhm--mobile .alhm__ilink:active { background: var(--alhm-item-hover-bg); color: var(--alhm-hover); }
.alhm.alhm--mobile .alhm__ilink .alhm__icon { width: 34px; height: 34px; align-items: center; border-radius: 50%; border: 1px solid var(--alhm-divider); color: var(--alhm-text); font-size: 15px; }
.alhm.alhm--mobile .alhm__links--simple { padding: 0 0 12px; }
.alhm.alhm--mobile .alhm__card--feature { margin: 4px 0 14px; }
.alhm.alhm--mobile .alhm__feature { padding: 20px; }
.alhm.alhm--mobile .alhm__feature-title { font-size: 1.1rem; }

/* CTA buttons: pinned to the bottom of the drawer, always reachable */
.alhm.alhm--mobile .alhm__actions {
	position: sticky;
	bottom: 0;
	z-index: 2;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
	margin: auto 0 0;
	padding: 16px 22px calc(16px + env(safe-area-inset-bottom, 0px));
	background: var(--alhm-drawer-bg);
	border-top: 1px solid var(--alhm-divider);
	box-shadow: 0 -14px 28px -18px rgba(7, 43, 79, .22);
}
.alhm.alhm--mobile .alhm__btn { width: 100%; min-height: 50px; padding: 15px 24px; font-size: .85rem; }
.alhm.alhm--mobile .alhm__btn--text { order: 3; min-height: 44px; padding: 8px 4px; border-bottom: 0; }
.alhm.alhm--mobile .alhm__btn--primary { order: 1; }
.alhm.alhm--mobile .alhm__btn--outline { order: 2; }

/* Small phones: drawer uses the whole screen width */
@media (max-width: 480px) {
	.alhm.alhm--mobile { --alhm-drawer-w: 100vw; }
	.alhm.alhm--mobile .alhm__nav { padding-inline: 18px; }
	.alhm.alhm--mobile .alhm__actions { padding-inline: 18px; }
	.alhm.alhm--mobile .alhm__drawer-head { padding-inline: 18px 10px; }
}

/* Tablets in drawer mode: put link lists in two columns inside opened cards */
@media (min-width: 600px) {
	.alhm.alhm--mobile .alhm__links { display: block; }
}

/* Landscape phones: keep the header compact */
@media (max-height: 480px) and (orientation: landscape) {
	.alhm.alhm--mobile { --alhm-bar-h: 56px; }
	.alhm.alhm--mobile .alhm__row, .alhm.alhm--mobile .alhm__link { min-height: 48px; }
	.alhm.alhm--mobile .alhm__actions { position: static; box-shadow: none; }
}

/* Laptops / small desktops: tighter bar so logo + nav + two CTAs always fit on one row */
@media (min-width: 783px) and (max-width: 1240px) {
	.alhm:not(.alhm--mobile) .alhm__bar { gap: 22px; }
	.alhm:not(.alhm--mobile) .alhm__list { gap: 2px; }
	.alhm:not(.alhm--mobile) .alhm__link { padding-left: 9px; font-size: .9rem; }
	.alhm:not(.alhm--mobile) .alhm__actions { gap: 10px; }
	.alhm:not(.alhm--mobile) .alhm__btn { padding: 12px 16px; font-size: .74rem; letter-spacing: .05em; }
	.alhm:not(.alhm--mobile) .alhm__panel-inner { padding: 28px; }
	.alhm:not(.alhm--mobile) .alhm__grid { gap: 24px; }
	.alhm:not(.alhm--mobile) .alhm__feature { padding: 20px; }
}

html.alhm-lock,
html.alhm-lock body { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.alhm *, .alhm *::before, .alhm *::after {
		transition-duration: .001ms !important;
		transition-delay: 0s !important;
	}
}


/* ======================================================================
 * v1.4 — Current page, avatars and the hover preview card
 * (photo -> role + name -> description)
 * ==================================================================== */

/* Current page / section */
.alhm .alhm__item.is-current > .alhm__row .alhm__link { color: var(--alhm-hover); }
.alhm .alhm__item.is-current > .alhm__row .alhm__link::after { transform: scaleX(1); }
.alhm.alhm--mobile .alhm__item.is-current > .alhm__row .alhm__link { color: var(--alhm-hover); }

/* Round photo in the link list (the initials sit behind it until the photo has loaded) */
.alhm .alhm__avatar {
	position: relative;
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	overflow: hidden;
	border-radius: 50%;
	background: #EFE7D8;
	color: #8A6530;
	font-size: .72rem;
	letter-spacing: .04em;
	box-shadow: 0 0 0 1px var(--alhm-divider);
	transition: box-shadow .2s ease;
}
.alhm .alhm__avatar b { font-weight: 700; }
.alhm .alhm__avatar img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 15%;
	opacity: 0;
	transition: opacity .35s ease;
}
.alhm .alhm__avatar img.is-loaded { opacity: 1; }
.alhm .alhm__avatar img.is-error { display: none; }
.alhm .alhm__ilink:hover .alhm__avatar,
.alhm .alhm__ilink:focus-visible .alhm__avatar,
.alhm .alhm__ilink.is-pv .alhm__avatar { box-shadow: 0 0 0 2px var(--alhm-hover); }
.alhm .alhm__irole {
	display: block;
	margin-top: 2px;
	font-size: .74rem;
	letter-spacing: .01em;
	color: #697386;
}
.alhm .alhm__ilink:hover .alhm__irole,
.alhm .alhm__ilink.is-pv .alhm__irole { color: var(--alhm-hover); opacity: .9; }

/* Feature tile + preview cards share one grid cell, so the panel never changes height on hover */
.alhm .alhm__stack {
	display: grid;
	height: 100%;
	container-type: inline-size;
	container-name: alhm-host;
}
.alhm .alhm__stack > * { grid-area: 1 / 1; min-width: 0; }
.alhm .alhm__stack .alhm__feature { transition: opacity .25s ease, visibility 0s linear 0s; }
.alhm .alhm__stack.is-pv .alhm__feature {
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease, visibility 0s linear .2s;
}
.alhm .alhm__pvs { display: grid; min-width: 0; pointer-events: none; }

.alhm .alhm__pv {
	grid-area: 1 / 1;
	position: relative;
	display: grid;
	grid-template-rows: auto 1fr;
	min-width: 0;
	overflow: hidden;
	border-radius: 4px;
	background: linear-gradient(155deg, #051D36 0%, #0D4775 100%);
	color: #fff;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	pointer-events: none;
	transition: opacity .25s ease, transform .3s ease, visibility 0s linear .25s;
}
.alhm .alhm__pv.is-on {
	opacity: 1;
	visibility: visible;
	transform: none;
	pointer-events: auto;
	transition-delay: 0s;
}
.alhm .alhm__pv-media {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #0A3459;
	color: rgba(233, 211, 172, .5);
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	font-size: 2.4rem;
}
.alhm .alhm__pv-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(10, 52, 89, 0) 55%, #0A3459 100%);
	pointer-events: none;
}
.alhm .alhm__pv-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 12%;
	opacity: 0;
	transform: scale(1.04);
	transition: opacity .4s ease, transform .6s ease;
}
.alhm .alhm__pv-media img.is-loaded { opacity: 1; }
.alhm .alhm__pv-media img.is-error { display: none; }
.alhm .alhm__pv.is-on .alhm__pv-media img { transform: none; }

.alhm .alhm__pv-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	min-width: 0;
	padding: 4px 22px 22px;
}
.alhm .alhm__pv-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #E9D3AC;
}
.alhm .alhm__pv-title {
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	font-weight: 600;
	font-size: 1.3rem;
	line-height: 1.2;
	color: #fff;
	overflow-wrap: break-word;
	text-wrap: balance;
}
.alhm .alhm__pv-desc {
	font-size: .85rem;
	line-height: 1.55;
	color: #C9D9E5;
}
.alhm .alhm__pv-desc::before {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	margin: 0 0 10px;
	background: var(--alhm-hover);
}
.alhm .alhm__pv-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid rgba(255, 255, 255, .18);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .02em;
	color: #fff;
	transition: color .15s ease;
}
.alhm .alhm__pv-arrow { transition: transform .18s ease; }
.alhm .alhm__pv:hover .alhm__pv-cta { color: #E9D3AC; }
.alhm .alhm__pv:hover .alhm__pv-arrow { transform: translateX(4px); }

/* Wide side card: photo on the left, text on the right */
@container alhm-host (min-width: 380px) {
	.alhm .alhm__pv {
		grid-template-rows: none;
		grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
		min-height: 270px;
	}
	.alhm .alhm__pv-media { aspect-ratio: auto; min-height: 100%; }
	.alhm .alhm__pv-media::after { background: linear-gradient(to right, rgba(10, 52, 89, 0) 60%, #0A3459 100%); }
	.alhm .alhm__pv-body { justify-content: center; padding: 24px 24px 22px 6px; }
	.alhm .alhm__pv-title { font-size: 1.4rem; }
	.alhm .alhm__pv-cta { margin-top: 10px; }
}

/* Team-style panel: list on the left (7/12), preview on the right (5/12) */
.alhm:not(.alhm--mobile) .alhm__grid--pv > .alhm__card:not(.alhm__card--host) { grid-column: span 7; }
.alhm:not(.alhm--mobile) .alhm__grid--pv > .alhm__card--host { grid-column: span 5; }

/* Touch screens / drawer: no hover, so the preview layers stay out of the way */
.alhm.alhm--mobile .alhm__pvs { display: none; }
.alhm.alhm--mobile .alhm__stack { display: block; }
.alhm.alhm--mobile .alhm__avatar { width: 44px; height: 44px; }
.alhm.alhm--mobile .alhm__irole { font-size: .78rem; }
.alhm.alhm--mobile .alhm__ilink.is-pv,
.alhm.alhm--mobile .alhm__ilink:hover { background: transparent; color: var(--alhm-text); }
.alhm.alhm--mobile .alhm__ilink:active { background: var(--alhm-item-hover-bg); color: var(--alhm-hover); }

/* Narrow phones: keep long names/roles from forcing horizontal scroll inside the drawer */
.alhm.alhm--mobile .alhm__itext { flex: 1 1 auto; overflow-wrap: anywhere; }
@media (max-width: 380px) {
	.alhm.alhm--mobile .alhm__bar { gap: 8px; }
	.alhm.alhm--mobile .alhm__link { font-size: 1rem; }
	.alhm.alhm--mobile .alhm__avatar { width: 40px; height: 40px; }
}


/* ======================================================================
   v1.5.0 — B2B company-profile card + first-visit intro animation
   ====================================================================== */

/* No transitions while the menu boots (stops a colour flash when the current page is marked). */
.alhm:not(.alhm--ready) *,
.alhm:not(.alhm--ready) *::before,
.alhm:not(.alhm--ready) *::after { transition: none !important; }

/* ---------- Company profile (PDF) card ---------- */
.alhm .alhm__feature--doc {
	flex-direction: row;
	align-items: center;
	gap: 24px;
	padding: 26px 28px 26px 32px;
}
.alhm .alhm__feature-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
	flex: 1 1 auto;
}
.alhm .alhm__feature--doc .alhm__feature-title { font-size: 1.15rem; }
.alhm .alhm__feature--doc .alhm__feature-cta {
	width: auto;
	margin-top: 6px;
	padding: 11px 18px;
	border-top: 0;
	border-radius: var(--alhm-btn-radius);
	background: var(--alhm-btn-bg);
	color: var(--alhm-btn-text);
	transition: background-color .18s ease, transform .18s ease;
}
.alhm .alhm__feature--doc .alhm__feature-cta:hover { background: var(--alhm-btn-hover); color: var(--alhm-btn-text); transform: translateY(-1px); }
.alhm .alhm__feature--doc .alhm__feature-cta:hover .alhm__feature-arrow { transform: translateY(2px); }

/* Company-profile pages: three small previews side by side (left tilted, centre straight and larger, right tilted).
   Photos load only when the panel is first opened (data-src -> src in JS). */
.alhm .alhm__pages {
	--wc: 92px;   /* centre page: 90% */
	--ws: 76px;   /* side pages: 75% */
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	flex: 0 0 auto;
	width: 250px;
	max-width: 100%;
	height: 220px;
	color: inherit;
}
.alhm .alhm__pg {
	--w: var(--ws);
	--r: 0deg;
	position: relative;
	flex: 0 0 auto;
	width: var(--w);
	aspect-ratio: 462 / 654;
	overflow: hidden;
	border-radius: 3px;
	background: linear-gradient(160deg, #0D4775 0%, #051D36 100%);
	border: 1px solid rgba(233, 211, 172, .5);
	box-shadow: 0 14px 24px -12px rgba(0, 0, 0, .75);
	transform: rotate(var(--r));
	transition: transform .45s cubic-bezier(.22, .61, .36, 1), box-shadow .3s ease;
	will-change: transform;
}
.alhm .alhm__pg:nth-child(1) { --r: -8deg; transform-origin: 100% 100%; }
.alhm .alhm__pg:nth-child(2) { --w: var(--wc); z-index: 2; }
.alhm .alhm__pg:nth-child(3) { --r: 8deg; transform-origin: 0 100%; }
.alhm .alhm__pg img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity .45s ease;
}
.alhm .alhm__pg img.is-loaded { opacity: 1; }
.alhm .alhm__pg img.is-error { display: none; }
.alhm .alhm__pg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 38%, rgba(255, 255, 255, .22) 50%, transparent 62%);
	transform: translateX(-130%);
	transition: transform .8s cubic-bezier(.22, .61, .36, 1);
	pointer-events: none;
}
/* Card hover: sides open a little wider. Single page hover: it lifts and straightens. */
.alhm .alhm__feature--doc:hover .alhm__pg:nth-child(1) { transform: translateX(-6px) rotate(-12deg); }
.alhm .alhm__feature--doc:hover .alhm__pg:nth-child(3) { transform: translateX(6px) rotate(12deg); }
.alhm .alhm__feature--doc .alhm__pg:hover {
	z-index: 6;
	transform: translateY(-10px) scale(1.1) rotate(0);
	box-shadow: 0 22px 32px -14px rgba(0, 0, 0, .85);
}
.alhm .alhm__feature--doc .alhm__pg:hover::after { transform: translateX(130%); }

/* Entrance each time the B2B panel opens (hover): pages rise in one after another. */
@keyframes alhm-pg-in {
	from { opacity: 0; transform: translateY(30px) scale(.8) rotate(0); }
}
@keyframes alhm-feat-in {
	from { opacity: 0; transform: translateX(14px); }
}
@media (prefers-reduced-motion: no-preference) {
	.alhm .alhm__item.is-open .alhm__pg { animation: alhm-pg-in .7s cubic-bezier(.22, .61, .36, 1) backwards; }
	.alhm .alhm__item.is-open .alhm__pg:nth-child(1) { animation-delay: .12s; }
	.alhm .alhm__item.is-open .alhm__pg:nth-child(2) { animation-delay: .22s; }
	.alhm .alhm__item.is-open .alhm__pg:nth-child(3) { animation-delay: .32s; }
	.alhm .alhm__item.is-open .alhm__feature--doc .alhm__feature-body > * { animation: alhm-feat-in .55s cubic-bezier(.22, .61, .36, 1) backwards; }
	.alhm .alhm__item.is-open .alhm__feature--doc .alhm__feature-body > :nth-child(1) { animation-delay: .20s; }
	.alhm .alhm__item.is-open .alhm__feature--doc .alhm__feature-body > :nth-child(2) { animation-delay: .27s; }
	.alhm .alhm__item.is-open .alhm__feature--doc .alhm__feature-body > :nth-child(3) { animation-delay: .34s; }
	.alhm .alhm__item.is-open .alhm__feature--doc .alhm__feature-body > :nth-child(4) { animation-delay: .41s; }
}
@media (prefers-reduced-motion: reduce) {
	.alhm .alhm__pg, .alhm .alhm__pg::after { transition: none !important; }
}
.alhm.alhm--mobile .alhm__pages { --wc: 76px; --ws: 62px; width: 210px; height: 170px; }

/* PDF badge in link lists */
.alhm .alhm__ilink .alhm__badge { white-space: nowrap; }

.alhm.alhm--mobile .alhm__feature--doc { flex-direction: column; align-items: flex-start; gap: 16px; padding: 22px; }
@media (min-width: 783px) and (max-width: 1100px) {
	.alhm .alhm__feature--doc { gap: 16px; padding: 22px; }
	.alhm .alhm__pages { --wc: 76px; --ws: 62px; width: 210px; height: 180px; }
}

/* ---------- First-visit intro (plays once per browser session; never between pages) ----------
   The class `alhm-intro` is put on <html> by a tiny inline script only when sessionStorage has no
   "alhm_intro" flag. Only transform / opacity are animated (GPU friendly, no layout work). */
@keyframes alhm-in-bar   { from { opacity: 0; transform: translateY(-18px); } to { opacity: 1; transform: none; } }
@keyframes alhm-in-up    { from { opacity: 0; transform: translateY(14px); }  to { opacity: 1; transform: none; } }
@keyframes alhm-in-logo  { from { opacity: 0; transform: translateX(-14px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes alhm-in-line  { 0% { transform: scaleX(0); opacity: 1; } 70% { transform: scaleX(1); opacity: 1; } 100% { transform: scaleX(1); opacity: 0; } }

@media (prefers-reduced-motion: no-preference) {
	html.alhm-intro .alhm-header { animation: alhm-in-bar .7s cubic-bezier(.22, .61, .36, 1) both; }
	html.alhm-intro .alhm-header::after {
		content: "";
		position: absolute;
		left: 0; right: 0; bottom: -1px;
		height: 2px;
		background: linear-gradient(90deg, transparent, var(--alhm-hover, #B98A4A) 20%, var(--alhm-hover, #B98A4A) 80%, transparent);
		transform-origin: left center;
		animation: alhm-in-line 1.5s cubic-bezier(.22, .61, .36, 1) .25s both;
		pointer-events: none;
	}
	html.alhm-intro .alhm .alhm__logo { animation: alhm-in-logo .7s cubic-bezier(.22, .61, .36, 1) .15s both; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__list > .alhm__item { animation: alhm-in-up .6s cubic-bezier(.22, .61, .36, 1) both; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__list > .alhm__item:nth-child(1) { animation-delay: .30s; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__list > .alhm__item:nth-child(2) { animation-delay: .38s; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__list > .alhm__item:nth-child(3) { animation-delay: .46s; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__list > .alhm__item:nth-child(4) { animation-delay: .54s; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__list > .alhm__item:nth-child(5) { animation-delay: .62s; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__list > .alhm__item:nth-child(n+6) { animation-delay: .70s; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__actions .alhm__btn { animation: alhm-in-up .6s cubic-bezier(.22, .61, .36, 1) .70s both; }
	html.alhm-intro .alhm:not(.alhm--mobile) .alhm__actions .alhm__btn:nth-child(2) { animation-delay: .80s; }
	html.alhm-intro .alhm.alhm--mobile .alhm__toggle { animation: alhm-in-up .6s cubic-bezier(.22, .61, .36, 1) .3s both; }
}


/* Header: tight laptop widths — labels never break onto two lines. */
@media (min-width: 1101px) and (max-width: 1200px) {
	.alhm:not(.alhm--mobile) .alhm__link { font-size: .84rem; padding-left: 7px; }
	.alhm:not(.alhm--mobile) .alhm__chev { width: 14px; }
	.alhm:not(.alhm--mobile) .alhm__btn { padding: 9px 10px; font-size: .66rem; letter-spacing: .03em; }
	.alhm:not(.alhm--mobile) .alhm__logo img { width: min(var(--alhm-logo-w, 170px), 140px); }
}

/* Never let a menu label or button break onto two lines, whatever the theme does. */
.alhm .alhm__link, .alhm .alhm__btn, .alhm .alhm__btn span { white-space: nowrap !important; }
.alhm.alhm--mobile .alhm__link { white-space: normal !important; }
