/* =====================================================================
   Westlyn Careers — component styles
   Reproduces the original static site's design (incl. its "premium" layer).
   Layout utilities with exact original values are in utilities.css (generated).
   Colours / sizes come from theme.json presets (editable in the Site Editor).
   ===================================================================== */

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
a { color: var(--wp--preset--color--ink); text-underline-offset: 3px; }
::selection { background: var(--wp--preset--color--gold-light); color: var(--wp--preset--color--ink); }
[hidden] { display: none !important; }
[id] { scroll-margin-top: 100px; }
img { max-width: 100%; height: auto; }

/* Blocks start with no margins: spacing comes from the layout utilities, as in the original */
:where(.wp-site-blocks, .editor-styles-wrapper) :where(h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, hr) { margin: 0; }
:where(.wp-block-group.has-background) { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
:where(.wp-site-blocks) .is-layout-flow > *, :where(.wp-site-blocks) .is-layout-constrained > * { margin-block-start: 0; margin-block-end: 0; }
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: none; }

/* Serif text (Cormorant) — the premium layer sets all serif text to 600 */
.has-display-font-family, :where(h1, h2, h3, h4, h5, h6):not(.has-sans-font-family) {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	font-size-adjust: 0.43;
	letter-spacing: -0.005em;
	font-variant-numeric: lining-nums;
}
.has-sans-font-family { font-family: var(--wp--preset--font-family--sans); font-size-adjust: none; }
.has-hero-font-size { line-height: 1 !important; }
.has-section-title-font-size { line-height: 1.02 !important; }

/* ---------- Page wrapper ---------- */
.wp-site-blocks { min-height: 100vh; background: var(--wp--preset--color--ivory); }
main.wl-main, .wl-main { display: block; }

/* ---------- Eyebrow label: gold rule + uppercase text ---------- */
.wl-eyebrow {
	display: flex; align-items: center; gap: 12px;
	font-family: var(--wp--preset--font-family--sans); font-weight: 600; font-size: 12px;
	letter-spacing: 0.22em; text-transform: uppercase; line-height: 1.4;
}
.wl-eyebrow::before { content: ""; flex: none; width: 28px; height: 1px; background: var(--wp--preset--color--gold); }

/* Small numerals 01, 02 … become gold serif italics */
.wl-num {
	font-family: var(--wp--preset--font-family--display) !important; font-style: italic;
	font-weight: 600 !important; font-size: 24px !important; line-height: 1 !important;
	color: var(--wp--preset--color--gold-text) !important; font-variant-numeric: lining-nums;
}
.wl-num-xl {
	font-family: var(--wp--preset--font-family--display) !important; font-style: italic;
	font-weight: 500 !important; color: var(--wp--preset--color--gold-text) !important; font-variant-numeric: lining-nums;
}

/* Short gold bar (separator block) */
hr.wp-block-separator.wl-bar { width: 28px; height: 2px; border: 0; background: var(--wp--preset--color--gold); opacity: 1; margin: 0; }

/* ---------- Sections ---------- */
.wl-hero { background: var(--wp--preset--color--night) radial-gradient(ellipse at 85% 10%, rgba(191,155,95,0.16), transparent 55%) !important; }
.wl-page-head { background: var(--wp--preset--color--night) radial-gradient(ellipse at 90% 0%, rgba(191,155,95,0.14), transparent 55%) !important; margin-bottom: clamp(40px, 5vw, 64px); }
.wl-page-head.wl-p-clamp-40-6vw-72-0-clamp-24-3vw-40 { padding-bottom: clamp(36px, 4vw, 56px) !important; }
.wl-page-head .wl-breadcrumb a { color: var(--wp--preset--color--mist); }

/* ---------- Breadcrumb ---------- */
.wl-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; font-size: 14px; color: var(--wp--preset--color--slate); }
.wl-program-head .wl-breadcrumb, .wl-page-head .wl-breadcrumb { color: var(--wp--preset--color--haze); }
.wl-breadcrumb a { color: var(--wp--preset--color--muted); text-decoration: underline; text-underline-offset: 3px; }
.wl-program-head .wl-breadcrumb a { color: var(--wp--preset--color--mist); }

/* ---------- Cards ---------- */
.wl-card { border-color: transparent !important; box-shadow: 0 1px 0 rgba(12,27,51,0.04), 0 22px 44px -30px rgba(12,27,51,0.3); }
.wl-card-link { position: relative; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.wl-card-link :is(h1, h2, h3, h4, p) a { color: inherit; text-decoration: none; }
.wl-card-link :is(h1, h2, h3, h4, p) a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.wl-card-link:hover { border-color: var(--wp--preset--color--ink) !important; }
.wl-card-link:focus-within { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 2px; }
.wl-card-link a:focus-visible { outline: none; }

/* ---------- Media frames ---------- */
.wl-media { position: relative; overflow: hidden; background: repeating-linear-gradient(135deg, #ECE9E2 0 1px, #F1EEE8 1px 12px); }
.wl-media > .wp-block-image, .wl-media > figure { position: absolute; inset: 0; margin: 0; }
.wl-media > .wp-block-image img, .wl-media img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.wl-media-fill { min-height: 280px; }
.wl-hero .wl-media { background: #14223D !important; box-shadow: 0 40px 80px -40px rgba(0,0,0,0.6); outline: 1px solid rgba(191,155,95,0.55); outline-offset: 14px; overflow: visible; }
.wl-hero .wl-media > figure { overflow: hidden; }
main img, .wl-main img { filter: saturate(0.9) contrast(1.04) sepia(0.06); }
.wl-media-hero img { animation: wl-settle 1.6s cubic-bezier(.2,.7,.2,1) both; }
@keyframes wl-settle { from { transform: scale(1.08); } to { transform: scale(1); } }
.wl-media-tall img, .wl-media-fill img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.wl-media-tall:hover img, .wl-media-fill:hover img { transform: scale(1.04); }
.wp-block-image { margin: 0; }
.wp-block-image img { display: block; }

/* Testimonial avatar */
.wp-block-image.wl-avatar { flex: none; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; background: var(--wp--preset--color--sand); }
.wp-block-image.wl-avatar img { width: 52px; height: 52px; object-fit: cover; object-position: center top; }

/* ---------- Buttons ---------- */
:root .wp-block-buttons { display: contents; }   /* beats WordPress's layout flex: buttons join the parent's flex/grid, as in the original */
.wp-block-button { display: inline-flex; }
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 54px; padding: 0 26px; border: 1px solid transparent; border-radius: 2px;
	font-family: var(--wp--preset--font-family--sans); font-weight: 600; font-size: 15px; line-height: 1.2;
	text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: transform .22s ease, box-shadow .22s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -16px rgba(12,27,51,.6); }
.wp-block-button__link:active { transform: translateY(0) scale(.98); box-shadow: none; transition-duration: .08s; }
.wp-block-button__link:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 3px; }
.has-arrow .wp-block-button__link::after { content: "→"; display: inline-block; transition: transform .22s ease; }
.has-arrow .wp-block-button__link:hover::after { transform: translateX(4px); }

/* Primary: deep navy with a fine gold base line */
.is-style-primary .wp-block-button__link, .wp-block-button:not([class*="is-style-"]) .wp-block-button__link {
	background: var(--wp--preset--color--night); color: #fff; border-color: var(--wp--preset--color--night);
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--gold); padding: 0 28px;
}
.is-style-primary .wp-block-button__link:hover, .wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover {
	background: #14223D; color: #fff; box-shadow: inset 0 -2px 0 var(--wp--preset--color--gold), 0 14px 26px -16px rgba(10,20,40,.7);
}
.is-style-primary.has-arrow .wp-block-button__link::after { color: var(--wp--preset--color--gold-light); }
/* Outline (navy) */
.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); }
.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; }
/* Light (white) */
.is-style-light .wp-block-button__link { background: #fff; color: var(--wp--preset--color--ink); border-color: #fff; }
.is-style-light .wp-block-button__link:hover { background: #ECE6D6; color: var(--wp--preset--color--ink); }
/* Outline on dark */
.is-style-outline-light .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255,255,255,0.45); padding: 0 24px; }
.is-style-outline-light .wp-block-button__link:hover { background: rgba(255,255,255,0.08); border-color: #fff; color: #fff; }
/* Gold */
.is-style-gold .wp-block-button__link { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--night); border-color: var(--wp--preset--color--gold); padding: 0 28px; }
.is-style-gold .wp-block-button__link:hover { background: var(--wp--preset--color--gold-light); border-color: var(--wp--preset--color--gold-light); color: var(--wp--preset--color--night); }
/* Underlined text link ("All programs →") */
.is-style-text-link .wp-block-button__link {
	min-height: 0; padding: 6px 0; background: none; border: 0; border-bottom: 1px solid currentColor; border-radius: 0;
	color: var(--wp--preset--color--ink); box-shadow: none;
}
.is-style-text-link .wp-block-button__link:hover { transform: none; box-shadow: none; color: #667085; border-color: #667085; }
/* Sizes */
.wl-btn-sm .wp-block-button__link { min-height: 48px; padding: 0 22px; font-size: 14px; }
.wl-btn-xs .wp-block-button__link { min-height: 0; padding: 0; font-size: 12.5px; }
.wl-btn-block, .wl-btn-block .wp-block-button__link { width: 100%; }
.wl-as-flex-start.wp-block-buttons > .wp-block-button, .wp-block-button.wl-as-flex-start { align-self: flex-start; }

/* ---------- Lists ---------- */
.is-style-checklist { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.is-style-checklist > li { display: flex; gap: 16px; align-items: baseline; }   /* row spacing/dividers come from each list's own wl-li-* class */
.is-style-checklist > li::before { content: ""; flex: none; width: 8px; height: 8px; background: var(--wp--preset--color--gold); transform: translateY(-2px); }

/* ---------- Quotes ---------- */
.wp-block-quote { margin: 0; padding: 0; border: 0; }
.wl-quote-xl p {
	font-family: var(--wp--preset--font-family--display) !important; font-style: italic; font-weight: 500 !important;
	font-size: clamp(34px, 4.6vw, 64px) !important; line-height: 1.12 !important; letter-spacing: -0.01em !important;
}
.wl-quote p { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size-adjust: 0.43; }

/* ---------- FAQ (Details blocks) ---------- */
.wl-faq { border-top: 1px solid var(--wp--preset--color--ink); }
.wl-faq-item { border-bottom: 1px solid var(--wp--preset--color--line); }
.wl-faq-item > summary {
	display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; cursor: pointer;
	list-style: none; font-family: var(--wp--preset--font-family--sans); font-weight: 600; font-size: 17px; line-height: 1.45;
	color: var(--wp--preset--color--ink);
}
.wl-faq-item > summary::-webkit-details-marker { display: none; }
.wl-faq-item > summary::after {
	content: "+"; flex: none; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--wp--preset--color--line-strong); font-size: 16px; font-weight: 500; line-height: 1;
}
.wl-faq-item[open] > summary::after { content: "−"; }
.wl-faq-item > summary:hover { color: var(--wp--preset--color--navy-hover); }
.wl-faq-item > summary:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 2px; }
.wl-faq-item > :not(summary) { padding: 0 48px 22px 0; font-size: 16px; line-height: 1.7; color: var(--wp--preset--color--muted); }

/* ---------- Tables ---------- */
.wl-table { overflow-x: auto; border: 1px solid var(--wp--preset--color--line); background: #fff; margin: 0; }
.wl-table table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 15.5px; line-height: 1.5; color: var(--wp--preset--color--body); }
.wl-table thead th { text-align: left; padding: 14px 16px; background: var(--wp--preset--color--night); color: #fff; font-weight: 600; font-size: 14px; border: 0; }
.wl-table tbody :is(th, td) { padding: 14px 16px; border: 0; border-top: 1px solid var(--wp--preset--color--line); vertical-align: top; text-align: left; }
.wl-table tbody th { font-weight: 600; color: var(--wp--preset--color--ink); }
.wl-table thead { border: 0; }

/* ---------- In-text links: gold underline ---------- */
:is(main, .wl-main) :is(p, li, dd) a:not(.wp-block-button__link):not(.wl-card-link a),
.wl-prose a {
	text-decoration: none; background-image: linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--gold));
	background-size: 100% 1px; background-position: 0 100%; background-repeat: no-repeat;
	transition: background-size .3s ease; padding-bottom: 1px;
}
:is(main, .wl-main) :is(p, li, dd) a:not(.wp-block-button__link):hover { background-size: 100% 2px; }
.wl-card-link :is(p, h1, h2, h3, h4) a { background-image: none !important; padding-bottom: 0; }

/* ---------- Sticky "at a glance" panel ---------- */
.wl-sticky { position: sticky; top: 100px; }

/* ---------- Header ---------- */
.wl-topbar { background: var(--wp--preset--color--night); }
.wl-topbar-in {
	max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); height: 40px; display: flex; align-items: center;
	justify-content: space-between; gap: 24px; font-family: var(--wp--preset--font-family--sans); font-size: 12.5px; color: var(--wp--preset--color--mist);
}
.wl-topbar a { color: var(--wp--preset--color--frost); text-decoration: none; }
.wl-topbar a:hover { color: #fff; }
.wl-topbar .wl-topbar-cta a { color: var(--wp--preset--color--gold-light); font-weight: 600; }
.wl-topbar .wl-topbar-cta a:hover { color: #E2D3AE; }
.wl-topbar-tag { display: flex; align-items: center; gap: 10px; letter-spacing: 0.02em; }
.wl-topbar-tag::before { content: ""; width: 6px; height: 6px; background: var(--wp--preset--color--gold); transform: rotate(45deg); }
.wl-topbar-links { display: flex; align-items: center; gap: 24px; }
.wl-topbar-links > p + p::before { content: ""; display: inline-block; width: 1px; height: 14px; background: rgba(255,255,255,0.2); margin-right: 24px; vertical-align: middle; }

.wl-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(247,244,238,0.86) !important; -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid rgba(12,27,51,0.08); transition: box-shadow .35s ease, background-color .35s ease;
}
body.admin-bar .wl-header { top: var(--wp-admin--admin-bar--height, 32px); }
body.is-scrolled .wl-header { background: rgba(247,244,238,0.95) !important; box-shadow: 0 10px 30px -18px rgba(10,20,40,.45); }
.wl-header-in { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.wl-header .wp-block-site-logo img, .wl-header .wl-logo img { height: 70px !important; width: auto !important; transform-origin: left center; transition: transform .35s ease; }
body.is-scrolled .wl-header .wp-block-site-logo img, body.is-scrolled .wl-header .wl-logo img { transform: scale(0.84); }
.wl-header .wl-logo { margin: 0; flex: none; }
.wl-header .wl-logo a { display: block; }

/* Main navigation (core Navigation block) */
.wl-nav { font-family: var(--wp--preset--font-family--sans); }
.wl-nav .wp-block-navigation__container { gap: 28px; align-items: center; }
.wl-nav .wp-block-navigation-item__content {
	padding: 10px 0; font-weight: 500; font-size: 14.5px; letter-spacing: 0.01em; color: #2A3A55; white-space: nowrap;
	text-decoration: none; position: relative;
	background-image: linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--gold)); background-repeat: no-repeat;
	background-position: 0 calc(100% - 4px); background-size: 0 1.5px; transition: background-size .3s ease, color .2s ease;
}
.wl-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--ink); background-size: 100% 1.5px; }
.wl-nav .current-menu-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; background: var(--wp--preset--color--gold);
}
/* Programs dropdown */
.wl-nav .wp-block-navigation-submenu__toggle { padding: 10px 0; font-weight: 500; font-size: 14.5px; letter-spacing: 0.01em; color: #2A3A55; gap: 6px; }
.wl-nav .wp-block-navigation__submenu-icon { color: #667085; width: 10px; height: 10px; margin-left: 6px; }
.wl-nav .wp-block-navigation__submenu-container {
	top: calc(100% + 22px) !important; left: -24px !important; width: 400px !important; min-width: 400px !important;
	background: #fff !important; border: 1px solid var(--wp--preset--color--line) !important; border-top: 2px solid var(--wp--preset--color--gold) !important;
	box-shadow: 0 24px 48px -24px rgba(12,27,51,0.28); padding: 10px !important;
}
.wl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex !important; flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px 16px !important;
	white-space: normal; background-image: none;
}
.wl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--ivory); }
.wl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__label { font-weight: 600; font-size: 15px; color: var(--wp--preset--color--ink); }
.wl-nav .wp-block-navigation-item__description { display: block; font-size: 13px; color: #667085; font-weight: 400; }
.wl-nav .wl-nav-all > .wp-block-navigation-item__content {
	flex-direction: row !important; justify-content: space-between; align-items: center !important; width: 100%;
	background: var(--wp--preset--color--ivory) !important; margin-top: 6px; font-weight: 600; font-size: 14px;
}
.wl-nav .wl-nav-all > .wp-block-navigation-item__content::after { content: "→"; }
.wl-nav .wl-nav-all > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--sand) !important; }
.wl-nav .wp-block-buttons.wl-nav-cta-group { display: flex; align-items: center; gap: 28px; }
.wl-nav .wp-block-buttons.wl-nav-cta-group::before { content: ""; width: 1px; height: 28px; background: var(--wp--preset--color--line-strong); }
.wl-nav .wl-nav-cta-group .wp-block-button__link {
	min-height: 48px; padding: 0 22px; gap: 12px; font-size: 14px; letter-spacing: 0.02em;
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--gold), 0 10px 24px -14px rgba(12,27,51,0.6);
}
.wl-nav .wl-nav-cta-group .wp-block-button__link:hover { background: var(--wp--preset--color--navy-hover); box-shadow: 0 14px 28px -14px rgba(12,27,51,0.7), inset 0 -2px 0 var(--wp--preset--color--gold); }
.wl-nav .wl-nav-cta-group .wp-block-button__link::after { content: "→"; color: var(--wp--preset--color--gold-light); }
.wl-nav .wp-block-buttons.wl-nav-mobile-ctas { display: none; }

/* Mobile menu: the design switches at 1180px */
.wl-nav .wp-block-navigation__responsive-container-open {
	display: none; align-items: center; gap: 10px; min-height: 44px; padding: 0 4px 0 14px;
	font-family: var(--wp--preset--font-family--sans); font-weight: 600; font-size: 14px; color: var(--wp--preset--color--ink);
}
.wl-nav .wp-block-navigation__responsive-container-open::before { content: "Menu"; }
@media (max-width: 1179.98px) {
	.wl-topbar { display: none; }
	.wl-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
	.wl-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.wl-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed; top: 85px; left: 0; right: 0; bottom: 0; z-index: 49; background: var(--wp--preset--color--ivory) !important;
		padding: 16px clamp(20px, 4vw, 48px) 40px !important; overflow-y: auto;
	}
	body.admin-bar .wl-nav .wp-block-navigation__responsive-container.is-menu-open { top: calc(85px + var(--wp-admin--admin-bar--height, 46px)); }
	.wl-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: -64px; right: clamp(20px, 4vw, 48px); }
	.wl-nav .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: stretch !important; gap: 0 !important; }
	.wl-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
	.wl-nav .is-menu-open .wp-block-navigation-item__content,
	.wl-nav .is-menu-open .wp-block-navigation-submenu__toggle {
		width: 100%; padding: 18px 0 !important; border-bottom: 1px solid var(--wp--preset--color--line);
		font-weight: 600 !important; font-size: 22px !important; letter-spacing: -0.01em; color: var(--wp--preset--color--ink) !important; background-image: none;
	}
	.wl-nav .is-menu-open .wp-block-navigation__submenu-container {
		position: static !important; width: auto !important; min-width: 0 !important; border: 0 !important; box-shadow: none; padding: 0 0 18px !important;
		background: transparent !important; display: flex; flex-direction: column; gap: 14px; opacity: 1 !important; visibility: visible !important; height: auto !important;
	}
	.wl-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		background: #fff !important; border: 1px solid var(--wp--preset--color--line); padding: 14px 16px !important; font-size: 16px !important;
	}
	.wl-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__label { font-size: 16px; }
	.wl-nav .is-menu-open .wl-nav-all > .wp-block-navigation-item__content { background: transparent !important; border: 0 !important; padding: 4px 0 !important; font-size: 15px !important; justify-content: flex-start; gap: 6px; }
	.wl-nav .wp-block-buttons.wl-nav-cta-group { display: none; }
	.wl-nav .is-menu-open .wp-block-buttons.wl-nav-mobile-ctas { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; width: 100%; }
	.wl-nav .is-menu-open .wl-nav-mobile-ctas .wp-block-button, .wl-nav .is-menu-open .wl-nav-mobile-ctas .wp-block-button__link { width: 100%; font-size: 16px; }
	body.has-modal-open .wl-mobbar { display: none; }
}

/* ---------- Footer ---------- */
.wl-footer { background: var(--wp--preset--color--night-deep) !important; color: var(--wp--preset--color--mist); }
.wl-footer a { color: var(--wp--preset--color--frost); text-decoration: none; }
.wl-footer a:hover { color: #fff; text-decoration: underline; }
.wl-footer-logo { align-self: flex-start; background: #fff; padding: 10px 14px; border-radius: 2px; }
.wl-footer-logo img { display: block; height: 88px !important; width: auto !important; filter: none !important; }
.wl-footer-in { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); display: flex; flex-direction: column; gap: 56px; }
.wl-footer { padding: clamp(64px, 8vw, 96px) 0 32px; font-family: var(--wp--preset--font-family--sans); }
.wl-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 40px; }
.wl-footer-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.wl-footer-col.wl-footer-brand { gap: 16px; }
.wl-footer-desc { font-size: 14.5px; line-height: 1.65; color: var(--wp--preset--color--haze); }
.wl-footer-col p { font-size: 15px; line-height: 1.5; }
.wl-footer-muted { color: var(--wp--preset--color--haze); }
.wl-footer-social { display: flex; flex-wrap: wrap; gap: 18px; padding-top: 6px; }
.wl-footer-social p { font-size: 14px; }
.wl-footer-disclaimer { padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.12); font-size: 13px; line-height: 1.65; color: var(--wp--preset--color--haze); max-width: 900px; }
.wl-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: 13px; color: var(--wp--preset--color--haze); }
.wl-footer-bottom p { font-size: 13px; }
.wl-footer-legal { display: flex; gap: 20px; }
.wl-footer-label { font-weight: 600; font-size: 12px !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--gold-light) !important; }

/* Mobile bottom action bar and floating WhatsApp button */
.wl-mobbar { display: none; }
@media (max-width: 1179.98px) {
	.wl-mobbar {
		display: grid; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: #fff; border-top: 1px solid var(--wp--preset--color--line);
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); grid-template-columns: 1fr 1fr 1.4fr; gap: 8px;
	}
	.wl-mobbar .wp-block-button, .wl-mobbar .wp-block-button__link { width: 100%; }
	.wl-mobbar .wp-block-button__link { min-height: 48px; padding: 0 6px; font-size: 14px; border: 1px solid var(--wp--preset--color--line-strong); background: #fff; color: var(--wp--preset--color--ink); box-shadow: none; }
	.wl-mobbar .is-style-primary .wp-block-button__link { background: var(--wp--preset--color--night); border-color: var(--wp--preset--color--night); color: #fff; }
	.wl-footer { padding-bottom: calc(32px + 72px) !important; }
}
.wa-fab {
	position: fixed; right: 24px; bottom: 24px; z-index: 45; display: none; align-items: center; gap: 10px; min-height: 52px; padding: 0 22px 0 16px;
	border-radius: 999px; background: var(--wp--preset--color--night); color: #fff !important; text-decoration: none !important;
	font-family: var(--wp--preset--font-family--sans); font-weight: 600; font-size: 15px;
	box-shadow: 0 16px 32px -14px rgba(12,27,51,.55); border: 1px solid rgba(191,155,95,.6); transition: transform .22s ease, box-shadow .22s ease;
}
.wa-fab:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 20px 36px -14px rgba(12,27,51,.65); }
.wa-fab:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 3px; }
.wa-fab svg { width: 22px; height: 22px; flex: none; }
@media (min-width: 1180px) { .wa-fab { display: inline-flex; } }

/* ---------- Enquiry pop-up / dialogs ---------- */
.pop { border: 0; padding: 0; margin: auto; width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); background: transparent; color: var(--wp--preset--color--ink); overflow: visible; }
.pop::backdrop { background: rgba(12,27,51,.55); backdrop-filter: blur(2px); }
.pop[open] { animation: wl-pop-in .45s cubic-bezier(.2,.7,.2,1) both; }
.pop[open]::backdrop { animation: wl-fade .35s ease both; }
.pop-inner { position: relative; background: var(--wp--preset--color--ivory); border-top: 3px solid var(--wp--preset--color--gold); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 28px 24px 24px; box-shadow: 0 30px 60px -20px rgba(12,27,51,.5); }
.pop-close { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; border: 0; background: transparent; font-size: 28px; line-height: 1; color: var(--wp--preset--color--muted); cursor: pointer; border-radius: 2px; }
.pop-close:hover { background: #ECE9E2; color: var(--wp--preset--color--ink); }
.pop-close:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 2px; }
.pop-head { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; padding-right: 36px; }
.pop-eyebrow { display: flex; align-items: center; gap: 10px; font-family: var(--wp--preset--font-family--sans); font-weight: 600; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--gold-text); }
.pop-eyebrow span { width: 24px; height: 1px; background: var(--wp--preset--color--gold); }
.pop-head h2 { margin: 0; font-family: var(--wp--preset--font-family--display) !important; font-weight: 600 !important; font-size: clamp(26px, 4vw, 32px); line-height: 1.1; letter-spacing: -.005em; }
.pop-head p { margin: 0; font-family: var(--wp--preset--font-family--sans); font-size: 15px; line-height: 1.6; color: var(--wp--preset--color--muted); }
.pop form { padding: 0 !important; border: 0 !important; background: transparent !important; gap: 14px !important; box-shadow: none !important; }
.pop form > div { gap: 14px !important; }
.pop .wl-f-message { display: none !important; }
.pop :is(input[type="text"], input[type="tel"], input[type="email"], select) { height: 46px !important; }
.pop [role="status"] { border: 0 !important; padding: 8px 0 0 !important; background: transparent !important; box-shadow: none !important; }
@media (max-width: 600px) {
	.pop { width: 100vw; max-width: 100vw; margin: auto 0 0; max-height: 92dvh; }
	.pop-inner { max-height: 92dvh; padding: 24px 16px 16px; }
	.pop[open] { animation-name: wl-sheet-in; }
}
#pros-pop .wl-f-reset { display: none !important; }
@keyframes wl-pop-in { from { opacity: 0; transform: translateY(28px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes wl-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes wl-sheet-in { from { transform: translateY(100%); } to { transform: none; } }
@keyframes wl-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ---------- Animations: page opening, scroll reveal, staggered cards ---------- */
html.js :is(main, .wl-main) .wl-enter { animation: wl-fade-up .7s cubic-bezier(.2,.7,.2,1) both; }
html.js :is(main, .wl-main) .wl-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
html.js :is(main, .wl-main) .wl-reveal.wl-in { opacity: 1; transform: none; }
html.js :is(main, .wl-main) .wl-reveal .wl-grid > * { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
html.js :is(main, .wl-main) .wl-reveal.wl-in .wl-grid > * { opacity: 1; transform: none; }
html.js :is(main, .wl-main) .wl-reveal.wl-in .wl-grid > :nth-child(2) { transition-delay: .08s; }
html.js :is(main, .wl-main) .wl-reveal.wl-in .wl-grid > :nth-child(3) { transition-delay: .16s; }
html.js :is(main, .wl-main) .wl-reveal.wl-in .wl-grid > :nth-child(4) { transition-delay: .24s; }
html.js :is(main, .wl-main) .wl-reveal.wl-in .wl-grid > :nth-child(5) { transition-delay: .32s; }
html.js :is(main, .wl-main) .wl-reveal.wl-in .wl-grid > :nth-child(n+6) { transition-delay: .4s; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	html.js :is(main, .wl-main) .wl-reveal, html.js :is(main, .wl-main) .wl-reveal .wl-grid > * { opacity: 1; transform: none; }
	body.is-scrolled .wl-header .wl-logo img { transform: none; }
}

/* ---------- Phones: footer tap targets, compact homepage, swipeable rows ---------- */
@media (max-width: 767px) {
	.wl-footer a { min-height: 44px; display: inline-flex !important; align-items: center; }
	.wl-footer .wl-footer-col { gap: 0 !important; }
	.wl-footer .wl-footer-social { gap: 4px 22px !important; }
	.wl-footer .wl-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 28px 20px !important; }
	.wl-footer .wl-footer-grid > :first-child, .wl-footer .wl-footer-grid > :last-child { grid-column: 1 / -1; }

	:root .wl-section.wl-p-clamp-80-10vw-128-0 { padding-top: 60px !important; padding-bottom: 60px !important; }
	:root .wl-gap-56 { gap: 32px !important; }
	:root .wl-gap-48 { gap: 28px !important; }
	:root .wl-cgap-48 { gap: 28px !important; }   /* the original's [style*="gap:48px"] rule also matched column-gap:48px */
	:root .wl-gap-clamp-28-3vw-40 { gap: 24px !important; }
	:root .wl-step-card { min-height: 0 !important; padding: 22px !important; gap: 10px !important; }
	:root .wl-num-xl { font-size: 34px !important; }
	:root .wl-media-hero { height: 300px !important; }
	:root .wl-media-tall { height: 240px !important; }
	.wl-media-fill { min-height: 200px !important; }

	:root .wl-testimonials .wl-gtc-fit-mm-320-1fr, :root .wl-swipe {
		display: flex !important; flex-direction: row !important; overflow-x: auto; scroll-snap-type: x mandatory;
		gap: 14px !important; margin: 0 -20px !important; padding: 4px 20px 18px !important; scrollbar-width: thin; -webkit-overflow-scrolling: touch;
	}
	:root .wl-testimonials .wl-gtc-fit-mm-320-1fr > *, :root .wl-swipe > * { flex: 0 0 86%; scroll-snap-align: start; }
	:root .wl-benefits { grid-template-columns: 1fr 1fr !important; gap: 22px 16px !important; }
	:root .wl-steps { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px !important; background: transparent !important; border: 0 !important; }   /* the list's inline padding/margin (0) won over the original's inset */
	:root .wl-steps > * { flex: 0 0 78%; scroll-snap-align: start; border: 1px solid var(--wp--preset--color--line); }
}

/* ---------- Content that needs owner verification before it is shown (see docs) ---------- */
.wl-requires-verification-preview { outline: 2px dashed #A33A2B; outline-offset: 6px; }

/* ---------- Template containers (single article, archives, 404) ---------- */
.wl-article-in { max-width: 820px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); display: flex; flex-direction: column; gap: 20px; }
.wl-article-body { padding: 0 0 clamp(56px, 7vw, 88px); }
.wl-article-content { display: flex; flex-direction: column; gap: 20px; }
.wl-article-title { line-height: 1.06; text-wrap: balance; }
.wl-container-std { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); display: flex; flex-direction: column; gap: 22px; }
.wl-container-std.wl-row { flex-direction: row; flex-wrap: wrap; gap: 12px; }
.wl-pb-section { padding: 0 0 clamp(80px, 10vw, 128px); }
.wl-editor-note { padding: 12px 14px; background: #F7F4EE; border: 1px dashed #BF9B5F; font: 13px/1.5 system-ui, sans-serif; color: #4B5565; }
.wl-article .wl-page-head { padding: clamp(40px, 6vw, 72px) 0 clamp(36px, 4vw, 56px) !important; }
hr.wp-block-separator.wl-rule { border: 0 !important; margin: 0; opacity: 1; flex: none; }

/* Header refinements (match the original exactly) */
@media (min-width: 1180px) {
	.wl-nav .wp-block-navigation__responsive-container-content { gap: 28px; align-items: center; }
}
.wl-nav .wp-block-navigation-item__content.is-current::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; background: var(--wp--preset--color--gold);
}
.wl-nav .wp-block-navigation__submenu-icon svg { display: none; }
.wl-nav .wp-block-navigation__submenu-icon::after { content: "▼"; font-size: 10px; line-height: 1; color: #667085; }
.wl-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-icon::after,
.wl-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] .wp-block-navigation__submenu-icon::after { content: "▲"; }
.wl-nav .wp-block-navigation__submenu-icon { width: auto; height: auto; margin-left: 6px; }
/* Download icon on "Download Prospectus" buttons (as in the original) */
.wl-pros-open .wp-block-button__link::before {
	content: ""; flex: none; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v11m0 0l-4.5-4.5M12 15l4.5-4.5M5 19h14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v11m0 0l-4.5-4.5M12 15l4.5-4.5M5 19h14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Logos that were CSS background images in the original */
.wp-block-image.wl-bg-image img { width: 100%; height: 100%; object-fit: contain; filter: none !important; }
/* backdrop-filter makes the header the containing block for fixed children: switch it off while the mobile menu is open */
html.has-modal-open .wl-header, body.has-modal-open .wl-header { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background: var(--wp--preset--color--ivory) !important; }
/* Mobile menu: the header toggle reads "Close" while open (theme.js closes the menu); WP's own close button is kept for screen readers */
@media (max-width: 1179.98px) {
	.wl-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; }
	html.has-modal-open .wl-nav .wp-block-navigation__responsive-container-open::before { content: "Close"; }
	.wl-nav .is-menu-open .wp-block-navigation__responsive-container-close {
		position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
	}
	.wl-nav .is-menu-open .wp-block-navigation-item__content.is-current::after { display: none; }
}
