/* Icons: stroke icons in the style of Lucide (ISC licence). */
:root {
	--wb-icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");
	--wb-icon-community: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
	--wb-icon-sprout: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 20h10'/%3E%3Cpath d='M10 20c5.5-2.5.8-6.4 3-10'/%3E%3Cpath d='M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z'/%3E%3Cpath d='M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z'/%3E%3C/svg%3E");
	--wb-icon-person: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='7' r='4'/%3E%3Cpath d='M3 21v-2a5 5 0 0 1 5-5h4'/%3E%3Cpath d='M19.5 21.5 16.6 18.7a1.9 1.9 0 0 1 2.9-2.5 1.9 1.9 0 0 1 2.9 2.5z'/%3E%3C/svg%3E");
	--wb-icon-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7z'/%3E%3C/svg%3E");
	--wb-icon-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.7 9a1 1 0 0 1-.7 0C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.2-2.7a1.2 1.2 0 0 1 1.6 0C14.5 3.8 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--wb-icon-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='19' r='3'/%3E%3Cpath d='M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15'/%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3C/svg%3E");
	--wb-icon-scale: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18'/%3E%3Cpath d='M7 21h10'/%3E%3Cpath d='M5 7h14'/%3E%3Cpath d='M5 7 2 14a3.5 3.5 0 0 0 6 0z'/%3E%3Cpath d='m19 7-3 7a3.5 3.5 0 0 0 6 0z'/%3E%3C/svg%3E");
	--wb-icon-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
	--wb-icon-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3Cpath d='M8 9h8'/%3E%3Cpath d='M8 13h5'/%3E%3C/svg%3E");
	--wb-icon-refresh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3Cpath d='M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16'/%3E%3Cpath d='M8 16H3v5'/%3E%3C/svg%3E");
	--wb-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--wb-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
	--wb-icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
	--wb-icon-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--wb-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	--wb-icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
	--wb-icon-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E");
	--wb-icon-family: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='5' r='2.5'/%3E%3Ccircle cx='17' cy='5' r='2.5'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M4 21v-6a3 3 0 0 1 3-3'/%3E%3Cpath d='M20 21v-6a3 3 0 0 0-3-3'/%3E%3Cpath d='M9.5 21v-3a2.5 2.5 0 0 1 5 0v3'/%3E%3C/svg%3E");
	--wb-icon-compass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m16.2 7.8-2.1 6.3-6.3 2.1 2.1-6.3z'/%3E%3C/svg%3E");
	--wb-icon-cup: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 8h1a4 4 0 1 1 0 8h-1'/%3E%3Cpath d='M3 8h14v9a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4z'/%3E%3Cpath d='M6 2v2'/%3E%3Cpath d='M10 2v2'/%3E%3Cpath d='M14 2v2'/%3E%3C/svg%3E");
	--wb-icon-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='21' r='1'/%3E%3Ccircle cx='19' cy='21' r='1'/%3E%3Cpath d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12'/%3E%3C/svg%3E");
	--wb-icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z'/%3E%3C/svg%3E");
}
.wb-ico--home { --wb-icon: var(--wb-icon-home); }
.wb-ico--community { --wb-icon: var(--wb-icon-community); }
.wb-ico--sprout { --wb-icon: var(--wb-icon-sprout); }
.wb-ico--person { --wb-icon: var(--wb-icon-person); }
.wb-ico--heart { --wb-icon: var(--wb-icon-heart); }
.wb-ico--shield { --wb-icon: var(--wb-icon-shield); }
.wb-ico--route { --wb-icon: var(--wb-icon-route); }
.wb-ico--scale { --wb-icon: var(--wb-icon-scale); }
.wb-ico--lock { --wb-icon: var(--wb-icon-lock); }
.wb-ico--chat { --wb-icon: var(--wb-icon-chat); }
.wb-ico--refresh { --wb-icon: var(--wb-icon-refresh); }
.wb-ico--check { --wb-icon: var(--wb-icon-check); }
.wb-ico--phone { --wb-icon: var(--wb-icon-phone); }
.wb-ico--mail { --wb-icon: var(--wb-icon-mail); }
.wb-ico--pin { --wb-icon: var(--wb-icon-pin); }
.wb-ico--arrow { --wb-icon: var(--wb-icon-arrow); }
.wb-ico--info { --wb-icon: var(--wb-icon-info); }
.wb-ico--plus { --wb-icon: var(--wb-icon-plus); }
.wb-ico--family { --wb-icon: var(--wb-icon-family); }
.wb-ico--compass { --wb-icon: var(--wb-icon-compass); }
.wb-ico--cup { --wb-icon: var(--wb-icon-cup); }
.wb-ico--cart { --wb-icon: var(--wb-icon-cart); }
.wb-ico--star { --wb-icon: var(--wb-icon-star); }

/* ==========================================================================
   Wellness Bridge – site styles
   Tokens come from theme.json (var(--wp--preset--…)).
   ========================================================================== */

:root {
	--wb-navy: var(--wp--preset--color--navy);
	--wb-navy-deep: var(--wp--preset--color--navy-deep);
	--wb-green: var(--wp--preset--color--green);
	--wb-green-deep: var(--wp--preset--color--green-deep);
	--wb-teal: var(--wp--preset--color--teal);
	--wb-teal-deep: var(--wp--preset--color--teal-deep);
	--wb-lime: var(--wp--preset--color--lime);
	--wb-mist: var(--wp--preset--color--mist);
	--wb-cream: var(--wp--preset--color--cream);
	--wb-line: var(--wp--preset--color--line);
	--wb-ink: var(--wp--preset--color--ink);
	--wb-slate: var(--wp--preset--color--slate);
	--wb-radius: 22px;
	--wb-radius-lg: 32px;
	--wb-shadow-sm: 0 1px 2px rgba(11, 58, 104, .06), 0 2px 8px rgba(11, 58, 104, .05);
	--wb-shadow: 0 2px 6px rgba(11, 58, 104, .05), 0 18px 40px -12px rgba(11, 58, 104, .18);
	--wb-shadow-lg: 0 30px 70px -20px rgba(7, 42, 77, .35);
	--wb-ease: cubic-bezier(.22, 1, .36, 1);
	--wb-section: var(--wp--preset--spacing--60);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 6.5rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
::selection { background: #CFE8E3; color: var(--wb-navy-deep); }
img { height: auto; }
p { color: inherit; }
strong { font-weight: 700; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wb-navy);
	outline-offset: 3px;
	border-radius: 6px;
}
.wb-bg-navy :where(a, button, summary):focus-visible,
.wb-footer :where(a, button):focus-visible { outline-color: var(--wb-lime); }

.skip-link.screen-reader-text:focus {
	background: var(--wb-navy); color: #fff; border-radius: 8px; padding: .9rem 1.25rem;
	font-weight: 700; z-index: 100000; text-decoration: none; box-shadow: var(--wb-shadow);
}

.wb-main { padding-top: 0; }
.wb-main > .wp-block-post-content > :first-child { margin-block-start: 0; }
.wb-main > .wp-block-post-content > :last-child { margin-block-end: 0; }
.wb-main > .wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }
.wb-main--simple { padding-block: var(--wp--preset--spacing--60); min-height: 50vh; }

/* ---------- Icons (mask technique; colour follows --wb-ico-color) ---------- */
.wb-ico::before {
	content: ""; display: inline-block; flex: none;
	width: 1.2em; height: 1.2em; vertical-align: -.2em; margin-right: .6em;
	background-color: var(--wb-ico-color, currentColor);
	-webkit-mask: var(--wb-icon) center / contain no-repeat;
	mask: var(--wb-icon) center / contain no-repeat;
}

/* ---------- Header ---------- */
.wb-site-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .3s var(--wb-ease), box-shadow .3s var(--wb-ease);
}
.admin-bar .wb-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .wb-site-header { top: 0; } }
.wb-site-header.is-scrolled { border-bottom-color: var(--wb-line); box-shadow: 0 10px 30px -18px rgba(11, 58, 104, .25); }
.wb-header__bar { padding-block: .85rem; gap: 1.5rem; min-height: 4.5rem; }
.wb-header__nav { gap: clamp(1rem, 2vw, 2rem); }

.wb-brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--wb-navy); flex: none; }
.wb-brand:hover { color: var(--wb-navy); }
.wb-brand__mark { width: 46px; height: 46px; flex: none; transition: transform .5s var(--wb-ease); }
.wb-brand:hover .wb-brand__mark { transform: translateY(-2px); }
.wb-brand__text { display: flex; flex-direction: column; line-height: 1; }
.wb-brand__name { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.42rem; letter-spacing: -.015em; }
.wb-brand__tag { font-size: .66rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--wb-teal-deep); margin-top: .4rem; }
.wb-brand--light { color: #fff; }
.wb-brand--light:hover { color: #fff; }
.wb-brand--light .wb-brand__tag { color: var(--wb-lime); }
.wb-brand--light .wb-brand__mark path[stroke="#0B3A68"] { stroke: #fff; }
.wb-brand__logo { max-height: 56px; width: auto; }

.wb-nav .wp-block-navigation-item__content { color: var(--wb-ink); text-decoration: none; padding-block: .4rem; position: relative; }
.wb-nav .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; border-radius: 2px;
	background: var(--wb-green); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--wb-ease);
}
.wb-nav .wp-block-navigation-item__content:hover { color: var(--wb-green-deep); }
.wb-nav .wp-block-navigation-item__content:hover::after,
.wb-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.wb-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--wb-navy); }
.wb-nav .wp-block-navigation__container { gap: clamp(.9rem, 1.6vw, 1.6rem); }

.wb-btn-sm .wp-block-button__link { padding: .7em 1.25em; font-size: .975rem; }

/* Collapse to the menu button below 1180px (core switches at 600px). */
@media (max-width: 1179px) {
	.wb-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.wb-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.wb-nav .wp-block-navigation__responsive-container-open {
	width: 46px; height: 46px; border-radius: 50%; align-items: center; justify-content: center;
	border: 1.5px solid var(--wb-line); color: var(--wb-navy); background: #fff;
}
.wb-nav .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; }
.wb-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem clamp(1.25rem, 5vw, 2.5rem) 2rem; }
.wb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem; align-items: flex-start; }
.wb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: .25rem; width: 100%; align-items: stretch; }
.wb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wb-line); }
.wb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading); font-size: 1.6rem; font-weight: 600; padding: .85rem 0; color: var(--wb-navy); width: 100%;
}
.wb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.wb-nav .wp-block-navigation__responsive-container-close { top: 1.25rem; right: 1.25rem; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--wb-line); display: flex; align-items: center; justify-content: center; }
@media (max-width: 560px) {
	.wb-header .wb-header__cta { display: none !important; }
	.wb-brand__name { font-size: 1.22rem; }
	.wb-brand__mark { width: 40px; height: 40px; }
}

/* ---------- Sections ---------- */
.wb-section { padding-block: var(--wb-section); position: relative; }
.wb-section--tight { padding-block: var(--wp--preset--spacing--50); }
.wb-bg-mist { background: var(--wb-mist); }
.wb-bg-cream { background: var(--wb-cream); }
.wb-bg-navy { background: var(--wb-navy); color: rgba(255, 255, 255, .86); }
.wb-bg-navy :where(h1, h2, h3, h4) { color: #fff; }
.wb-bg-navy a:not(.wp-element-button) { color: #fff; }

.wb-eyebrow {
	display: inline-flex; align-items: center; gap: .65rem;
	font-size: .8rem !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
	color: var(--wb-teal-deep); margin-bottom: .25rem !important;
}
.wb-eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--wb-teal); }
.wb-bg-navy .wb-eyebrow { color: var(--wb-lime); }
.wb-bg-navy .wb-eyebrow::before { background: var(--wb-lime); }
.has-text-align-center.wb-eyebrow, .wb-center .wb-eyebrow { justify-content: center; }

.wb-lead { font-size: var(--wp--preset--font-size--large) !important; line-height: 1.6; color: var(--wb-ink); }
.wb-muted { color: var(--wb-slate); }
.wb-center { text-align: center; }
.wb-center > * { margin-inline: auto; }
.wb-intro { max-width: 46rem; }
.wb-intro.wb-center { margin-inline: auto; }
.wb-section-head { margin-bottom: clamp(2rem, 4vw, 3.25rem) !important; }
.wb-section-head h2 { margin-top: .4rem; }
.wb-section-head p:not(.wb-eyebrow) { color: var(--wb-slate); font-size: 1.1875rem; }

h1 em, h2 em, .wb-accent { font-style: italic; font-weight: 500; color: var(--wb-green); }
.wb-bg-navy h2 em { color: var(--wb-lime); }

/* ---------- Home hero ---------- */
.wb-hero {
	padding-block: clamp(3rem, 7vw, 6rem) clamp(4rem, 8vw, 7rem);
	background:
		radial-gradient(60rem 40rem at 105% -10%, rgba(62, 160, 155, .16), transparent 60%),
		radial-gradient(50rem 32rem at -10% 110%, rgba(157, 196, 109, .18), transparent 60%),
		linear-gradient(180deg, #fff 0%, var(--wb-mist) 100%);
	overflow: hidden;
}
.wb-hero::before {
	content: ""; position: absolute; inset: auto -10% -2px -10%; height: 46%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 300' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%233EA09B' stroke-opacity='.18' stroke-width='1.5'%3E%3Cpath d='M0 300C300 60 900 60 1200 300'/%3E%3Cpath d='M-60 300C260 100 940 100 1260 300'/%3E%3Cpath d='M-120 300C220 140 980 140 1320 300'/%3E%3C/g%3E%3C/svg%3E") bottom / 100% 100% no-repeat;
	pointer-events: none;
}
.wb-hero__grid { gap: clamp(2rem, 5vw, 5rem) !important; align-items: center !important; position: relative; }
.wb-hero__copy > * + * { margin-top: 1.35rem; }
.wb-hero h1 { font-size: var(--wp--preset--font-size--display); line-height: 1.04; letter-spacing: -.025em; margin-top: .75rem; }
.wb-hero h1 em { display: block; }
.wb-hero .wb-lead { max-width: 34rem; }
.wb-hero .wp-block-buttons { margin-top: 2rem; gap: .85rem; }

.wb-chip {
	display: inline-flex !important; align-items: center; gap: .6rem;
	background: #fff; border: 1px solid var(--wb-line); border-radius: 999px;
	padding: .55rem 1rem .55rem .85rem; font-size: .9rem !important; color: var(--wb-slate);
	box-shadow: var(--wb-shadow-sm); line-height: 1.35;
}
.wb-chip::before { content: ""; flex: none; width: .55rem; height: .55rem; border-radius: 50%; background: var(--wb-teal); box-shadow: 0 0 0 4px rgba(62, 160, 155, .18); }

.wb-hero__media { position: relative; }
.wb-arch img, .wb-arch { border-radius: 999px 999px var(--wb-radius-lg) var(--wb-radius-lg); }
.wb-hero__media .wp-block-image { margin: 0; }
.wb-hero__media .wp-block-image img { width: 100%; aspect-ratio: 4 / 4.6; object-fit: cover; box-shadow: var(--wb-shadow-lg); }
.wb-hero__media::before {
	content: ""; position: absolute; z-index: -1; inset: 6% -7% -5% 9%;
	border-radius: 999px 999px 40px 40px; border: 2px solid rgba(62, 160, 155, .35);
}
.wb-float-card {
	position: absolute; left: -2.25rem; bottom: 2.5rem; z-index: 2;
	background: rgba(255, 255, 255, .96); border-radius: 18px; padding: 1rem 1.25rem !important;
	box-shadow: var(--wb-shadow); max-width: 15.5rem;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.wb-float-card p { margin: 0; font-size: .92rem; line-height: 1.45; color: var(--wb-slate); }
.wb-float-card p:first-child { font-family: var(--wp--preset--font-family--heading); font-size: 1.15rem; font-weight: 600; color: var(--wb-navy); margin-bottom: .2rem; }
.wb-float-card--top { left: auto; right: -1.5rem; top: 2.5rem; bottom: auto; display: flex; gap: .7rem; align-items: center; }
@media (max-width: 781px) {
	.wb-hero__media { margin-top: 1rem; }
	.wb-float-card { left: 1rem; bottom: 1rem; }
	.wb-float-card--top { display: none; }
	.wb-hero__media::before { display: none; }
}

/* ---------- Statement band ---------- */
.wb-statement p { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.4; color: var(--wb-navy); font-weight: 500; letter-spacing: -.01em; }
.wb-statement p.wb-muted { font-family: var(--wp--preset--font-family--body); font-size: 1.125rem; color: var(--wb-slate); font-weight: 400; letter-spacing: 0; }

/* ---------- Cards ---------- */
.wb-cards { gap: clamp(1rem, 2vw, 1.5rem) !important; }
.wb-card {
	position: relative; background: #fff; border: 1px solid var(--wb-line); border-radius: var(--wb-radius);
	padding: clamp(1.5rem, 2.5vw, 2rem) !important; box-shadow: var(--wb-shadow-sm);
	transition: transform .45s var(--wb-ease), box-shadow .45s var(--wb-ease), border-color .45s var(--wb-ease);
}
.wb-card:hover { transform: translateY(-4px); box-shadow: var(--wb-shadow); border-color: #cfe0dc; }
.wb-card > * + * { margin-top: .75rem; }
.wb-card h3 { font-size: 1.4rem; margin-top: 0; }
.wb-card p { color: var(--wb-slate); margin: 0; font-size: 1.0625rem; line-height: 1.65; }
.wb-card.wb-ico::before {
	display: block; width: 3.5rem; height: 3.5rem; margin: 0 0 1.25rem;
	background: var(--wb-mist); -webkit-mask: none; mask: none; border-radius: 16px;
}
.wb-card.wb-ico::after {
	content: ""; position: absolute; top: calc(clamp(1.5rem, 2.5vw, 2rem) + .9rem); left: calc(clamp(1.5rem, 2.5vw, 2rem) + .9rem);
	width: 1.7rem; height: 1.7rem; background: var(--wb-teal-deep);
	-webkit-mask: var(--wb-icon) center / contain no-repeat; mask: var(--wb-icon) center / contain no-repeat;
}
.wb-card--green.wb-ico::before { background: #EAF4EE; }
.wb-card--green.wb-ico::after { background: var(--wb-green); }
.wb-card--navy.wb-ico::before { background: #E6EDF4; }
.wb-card--navy.wb-ico::after { background: var(--wb-navy); }

.wb-bg-mist .wb-card { border-color: transparent; }

/* Numbered value cards */
.wb-values { counter-reset: wbval; }
.wb-value { counter-increment: wbval; border-top: 2px solid var(--wb-line); padding-top: 1.5rem !important; transition: border-color .4s var(--wb-ease); }
.wb-value:hover { border-top-color: var(--wb-green); }
.wb-value::before { content: counter(wbval, decimal-leading-zero); display: block; font-family: var(--wp--preset--font-family--heading); font-size: 1rem; font-weight: 600; color: var(--wb-teal-deep); margin-bottom: .75rem; letter-spacing: .05em; }
.wb-value h3 { font-size: 1.35rem; margin: 0 0 .5rem; }
.wb-value p { color: var(--wb-slate); margin: 0; }
.wb-bg-navy .wb-value { border-top-color: rgba(255, 255, 255, .18); }
.wb-bg-navy .wb-value:hover { border-top-color: var(--wb-lime); }
.wb-bg-navy .wb-value::before { color: var(--wb-lime); }
.wb-bg-navy .wb-value p { color: rgba(255, 255, 255, .78); }

/* ---------- Split layouts ---------- */
.wb-split { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center !important; }
@media (min-width: 782px) { .wb-split--reverse > .wp-block-column:first-child { order: 2; } }
.wb-media { position: relative; margin: 0; }
.wb-media img { width: 100%; border-radius: var(--wb-radius-lg); object-fit: cover; aspect-ratio: 5 / 4; box-shadow: var(--wb-shadow); }
.wb-media--tall img { aspect-ratio: 4 / 5; }
.wb-focus-left img { object-position: 20% center; }
.wb-cards { grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)) !important; }
.wb-cards--3 { grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr)) !important; }
@media (min-width: 1100px) { .wb-cards--3 { grid-template-columns: repeat(3, 1fr) !important; } }
.wb-values { grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)) !important; gap: clamp(1.5rem, 3vw, 2.5rem) !important; }
.wb-card h3 { margin-bottom: .6rem !important; }
.wb-features { grid-template-columns: repeat(auto-fit, minmax(min(24rem, 100%), 1fr)) !important; }
.wb-media--wide img { aspect-ratio: 16 / 10; }
.wb-media.wb-arch img { border-radius: 999px 999px var(--wb-radius-lg) var(--wb-radius-lg); aspect-ratio: 4 / 5; }
.wb-media-wrap { position: relative; }
.wb-media-wrap::after {
	content: ""; position: absolute; z-index: -1; width: 46%; aspect-ratio: 1; right: -6%; bottom: -8%;
	background: radial-gradient(circle at 30% 30%, rgba(157, 196, 109, .45), rgba(62, 160, 155, .25) 60%, transparent 70%);
	border-radius: 50%; filter: blur(4px);
}
.wb-split--reverse .wb-media-wrap::after { right: auto; left: -6%; }

/* Check list */
.wb-checklist { list-style: none; padding: 0; margin: 1.75rem 0 0; display: grid; gap: 1.1rem; }
.wb-checklist li { position: relative; padding-left: 2.6rem; color: var(--wb-slate); line-height: 1.6; }
.wb-checklist li strong { color: var(--wb-navy); display: block; font-size: 1.125rem; margin-bottom: .1rem; }
.wb-checklist li::before {
	content: ""; position: absolute; left: 0; top: .1rem; width: 1.75rem; height: 1.75rem; border-radius: 50%;
	background: #E4F2EA;
}
.wb-checklist li::after {
	content: ""; position: absolute; left: .4rem; top: .5rem; width: .95rem; height: .95rem; background: var(--wb-green);
	-webkit-mask: var(--wb-icon-check) center / contain no-repeat; mask: var(--wb-icon-check) center / contain no-repeat;
}
.wb-checklist--compact { gap: .75rem; }
.wb-bg-navy .wb-checklist li { color: rgba(255, 255, 255, .82); }
.wb-bg-navy .wb-checklist li strong { color: #fff; }

/* ---------- Feature (image) cards ---------- */
.wb-feature { background: #fff; border-radius: var(--wb-radius-lg); overflow: hidden; box-shadow: var(--wb-shadow-sm); border: 1px solid var(--wb-line); display: flex; flex-direction: column; transition: transform .5s var(--wb-ease), box-shadow .5s var(--wb-ease); }
.wb-feature:hover { transform: translateY(-5px); box-shadow: var(--wb-shadow); }
.wb-feature .wp-block-image { margin: 0; overflow: hidden; }
.wb-feature .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; transition: transform 1.2s var(--wb-ease); }
.wb-feature:hover .wp-block-image img { transform: scale(1.04); }
.wb-feature__body { padding: clamp(1.5rem, 3vw, 2.25rem) !important; }
.wb-feature__body > * + * { margin-top: .8rem; }
.wb-feature__body h3 { margin: 0; }
.wb-feature__body p { color: var(--wb-slate); margin-bottom: 0; }
.wb-tag { display: inline-block; font-size: .78rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wb-teal-deep); background: var(--wb-mist); padding: .35rem .7rem; border-radius: 999px; }

.wb-arrow-link a, a.wb-arrow-link { font-weight: 700; color: var(--wb-green-deep); text-decoration: none; display: inline-flex; align-items: center; gap: .45rem; }
.wb-arrow-link a::after, a.wb-arrow-link::after {
	content: ""; width: 1.05em; height: 1.05em; background: currentColor; transition: transform .35s var(--wb-ease);
	-webkit-mask: var(--wb-icon-arrow) center / contain no-repeat; mask: var(--wb-icon-arrow) center / contain no-repeat;
}
.wb-arrow-link a:hover::after, a.wb-arrow-link:hover::after { transform: translateX(4px); }
.wb-arrow-link a:hover { color: var(--wb-navy); }

/* ---------- Notice ---------- */
.wb-notice {
	position: relative; background: #fff; border: 1px solid var(--wb-line); border-left: 5px solid var(--wb-teal);
	border-radius: 0 var(--wb-radius) var(--wb-radius) 0; padding: 1.4rem 1.6rem 1.4rem 4rem !important; box-shadow: var(--wb-shadow-sm);
}
.wb-notice::before {
	content: ""; position: absolute; left: 1.35rem; top: 1.55rem; width: 1.6rem; height: 1.6rem; background: var(--wb-teal-deep);
	-webkit-mask: var(--wb-icon-info) center / contain no-repeat; mask: var(--wb-icon-info) center / contain no-repeat;
}
.wb-notice p { margin: 0; font-size: 1rem; color: var(--wb-ink); }
.wb-notice p + p { margin-top: .5rem; }
.wb-notice strong:first-child { color: var(--wb-navy); }

/* ---------- Page hero ---------- */
.wb-page-hero {
	padding-block: clamp(3rem, 6vw, 5.5rem);
	background:
		radial-gradient(48rem 30rem at 100% 0%, rgba(62, 160, 155, .14), transparent 60%),
		linear-gradient(180deg, #fff, var(--wb-mist));
	overflow: hidden;
}
.wb-page-hero h1 { font-size: clamp(2.4rem, 5.2vw, 3.75rem); line-height: 1.06; letter-spacing: -.025em; margin-top: .6rem; }
.wb-page-hero .wb-lead { margin-top: 1.25rem; max-width: 40rem; color: var(--wb-slate); }
.wb-page-hero .wb-media img { aspect-ratio: 4 / 3.4; }
.wb-page-hero--plain { padding-block: clamp(3rem, 6vw, 4.5rem) clamp(2rem, 4vw, 3rem); }
.wb-breadcrumb { font-size: .9rem !important; color: var(--wb-slate); }
.wb-breadcrumb a { color: var(--wb-slate); }

/* ---------- Statement cards (mission/vision) ---------- */
.wb-quote-card { border-radius: var(--wb-radius-lg); padding: clamp(2rem, 4vw, 3rem) !important; height: 100%; position: relative; overflow: hidden; }
.wb-quote-card h3 { font-size: 1rem; letter-spacing: .2em; text-transform: uppercase; font-family: var(--wp--preset--font-family--body); font-weight: 700; margin: 0 0 1rem; }
.wb-quote-card p { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.3rem, 2.2vw, 1.65rem); line-height: 1.4; font-weight: 500; margin: 0; letter-spacing: -.01em; }
.wb-quote-card--navy { background: var(--wb-navy); color: #fff; }
.wb-quote-card--navy h3 { color: var(--wb-lime); }
.wb-quote-card--mist { background: var(--wb-mist); color: var(--wb-navy); }
.wb-quote-card--mist h3 { color: var(--wb-teal-deep); }
.wb-quote-card::after {
	content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%;
	border: 2px solid currentColor; opacity: .08;
}
.wb-equal > .wp-block-column { display: flex; flex-direction: column; }
.wb-equal > .wp-block-column > * { flex: 1; }

/* ---------- FAQ accordion ---------- */
.wb-faq { border-top: 1px solid var(--wb-line); }
.wb-faq details { border-bottom: 1px solid var(--wb-line); padding: 0; margin: 0; }
.wb-faq summary {
	list-style: none; cursor: pointer; position: relative; padding: 1.5rem 3.5rem 1.5rem 0;
	font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(1.2rem, 2vw, 1.4rem); color: var(--wb-navy); line-height: 1.35;
}
.wb-faq summary::-webkit-details-marker { display: none; }
.wb-faq summary::after {
	content: ""; position: absolute; right: .4rem; top: 50%; width: 2.25rem; height: 2.25rem; margin-top: -1.125rem; border-radius: 50%;
	background: var(--wb-mist); transition: transform .4s var(--wb-ease), background-color .3s;
}
.wb-faq summary::before {
	content: ""; position: absolute; right: 1.025rem; top: 50%; width: 1rem; height: 1rem; margin-top: -.5rem; z-index: 1; background: var(--wb-teal-deep);
	-webkit-mask: var(--wb-icon-plus) center / contain no-repeat; mask: var(--wb-icon-plus) center / contain no-repeat; transition: transform .4s var(--wb-ease);
}
.wb-faq details[open] summary::before { transform: rotate(45deg); }
.wb-faq details[open] summary::after { background-color: #E4F2EA; }
.wb-faq summary:hover { color: var(--wb-green-deep); }
.wb-faq details > :not(summary) { margin: 0 0 1.5rem; color: var(--wb-slate); max-width: 46rem; }
.wb-faq details > p + p { margin-top: -.75rem; }

/* ---------- Contact ---------- */
.wb-contact-grid { gap: clamp(2rem, 5vw, 4.5rem) !important; align-items: flex-start !important; }
.wb-contact-item { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem 0 !important; border-bottom: 1px solid var(--wb-line); margin: 0 !important; }
.wb-contact-item:first-of-type { border-top: 1px solid var(--wb-line); }
.wb-contact-item p { margin: 0; }
.wb-contact-item p:first-child { font-size: .8rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--wb-teal-deep); }
.wb-contact-item p:last-child { font-size: 1.15rem; color: var(--wb-navy); font-weight: 600; }
.wb-contact-item p:last-child a { color: var(--wb-navy); text-decoration-color: rgba(11, 58, 104, .3); text-underline-offset: 4px; }
.wb-contact-item.wb-ico { display: block; position: relative; padding-left: 3.75rem !important; }
.wb-contact-item.wb-ico::before { position: absolute; left: 0; top: 1.4rem; width: 2.6rem; height: 2.6rem; margin: 0; border-radius: 50%; background: var(--wb-mist); -webkit-mask: none; mask: none; }
.wb-contact-item.wb-ico::after { content: ""; position: absolute; left: .7rem; top: 2.1rem; width: 1.2rem; height: 1.2rem; background: var(--wb-teal-deep); -webkit-mask: var(--wb-icon) center / contain no-repeat; mask: var(--wb-icon) center / contain no-repeat; }
.wb-tbc { color: var(--wb-slate); font-weight: 400; font-style: italic; }

.wb-form-card { background: #fff; border-radius: var(--wb-radius-lg); box-shadow: var(--wb-shadow); border: 1px solid var(--wb-line); padding: clamp(1.5rem, 4vw, 3rem) !important; }
.wb-form-card h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); margin: 0 0 .5rem; }
.wb-form-card > p { color: var(--wb-slate); }
.wb-small { font-size: .9375rem !important; color: var(--wb-slate); }

/* Contact Form 7 */
.wpcf7 form { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
.wb-field label, .wb-fieldset legend { display: block; font-weight: 700; color: var(--wb-navy); margin-bottom: .45rem; font-size: 1rem; }
.wb-field .wb-req { color: var(--wb-green-deep); font-weight: 700; }
.wb-field .wb-opt { color: var(--wb-slate); font-weight: 400; font-size: .9rem; }
.wb-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 640px) { .wb-field-row { grid-template-columns: 1fr; } }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; font: inherit; font-size: 1.0625rem; color: var(--wb-ink); background: #FBFDFC;
	border: 1.5px solid #CBD9D6; border-radius: 14px; padding: .85rem 1rem; transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.wpcf7 textarea { min-height: 9rem; resize: vertical; }
.wpcf7 :is(input, select, textarea) { box-sizing: border-box; max-width: 100%; }
.wpcf7 select { appearance: none; padding-right: 2.75rem; }
.wpcf7 :is(input, select, textarea):hover { border-color: #9DBAB5; }
.wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea):focus { outline: none; border-color: var(--wb-teal-deep); background: #fff; box-shadow: 0 0 0 4px rgba(62, 160, 155, .2); }
.wb-fieldset { border: 0; padding: 0; margin: 0; }
.wb-fieldset .wpcf7-radio { display: flex; flex-wrap: wrap; gap: .6rem; }
.wb-fieldset .wpcf7-list-item { margin: 0; }
.wb-fieldset .wpcf7-list-item label { display: inline-flex; align-items: center; gap: .55rem; padding: .6rem 1rem; border: 1.5px solid #CBD9D6; border-radius: 999px; cursor: pointer; font-weight: 600; color: var(--wb-ink); background: #FBFDFC; transition: all .2s; margin: 0; }
.wb-fieldset .wpcf7-list-item label:hover { border-color: var(--wb-teal); }
.wb-fieldset .wpcf7-list-item label:has(input:checked) { border-color: var(--wb-green); background: #EAF4EE; color: var(--wb-green-deep); }
.wb-fieldset input[type="radio"] { accent-color: var(--wb-green); width: 1.05rem; height: 1.05rem; margin: 0; }
.wb-fieldset .wpcf7-list-item label:has(input:focus-visible) { outline: 3px solid var(--wb-navy); outline-offset: 2px; }
.wb-consent { background: var(--wb-mist); border-radius: 14px; padding: 1rem 1.1rem; }
.wb-consent .wpcf7-list-item { margin: 0; }
.wb-consent label { display: flex; gap: .75rem; align-items: flex-start; cursor: pointer; line-height: 1.5; font-size: 1rem; }
.wb-consent input[type="checkbox"] { accent-color: var(--wb-green); width: 1.25rem; height: 1.25rem; margin-top: .15rem; flex: none; }
.wb-form-note { font-size: .9375rem; color: var(--wb-slate); margin: 0; padding-left: 1rem; border-left: 3px solid var(--wb-lime); }
.wpcf7-submit {
	font: inherit; font-weight: 700; font-size: 1.0625rem; color: #fff; background: var(--wb-green); border: 2px solid var(--wb-green);
	border-radius: 999px; padding: .95em 2em; cursor: pointer; transition: background-color .25s, transform .25s var(--wb-ease), box-shadow .25s;
	box-shadow: 0 10px 24px -10px rgba(45, 131, 88, .6);
}
.wpcf7-submit:hover { background: var(--wb-green-deep); border-color: var(--wb-green-deep); transform: translateY(-1px); }
.wpcf7-submit:disabled { opacity: .6; cursor: not-allowed; }
.wb-submit-row { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.wpcf7-spinner { margin: 0; }
.wpcf7-not-valid-tip { color: #B3261E; font-size: .9rem; margin-top: .4rem; font-weight: 600; }
.wpcf7 .wpcf7-not-valid { border-color: #B3261E !important; }
.wpcf7 form .wpcf7-response-output { margin: 0; border-radius: 14px; padding: 1rem 1.25rem; border-width: 1.5px; font-weight: 600; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--wb-green); background: #EAF4EE; color: var(--wb-green-deep); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-color: #E2A33B; background: #FFF8EC; color: #6B4A0F; }
.wpcf7 .screen-reader-response { position: absolute; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); height: 1px; width: 1px; margin: -1px; padding: 0; border: 0; word-wrap: normal !important; }
.wpcf7 .hidden-fields-container { display: none; }
.wpcf7-form-control-wrap { position: relative; display: block; }

/* ---------- CTA band ---------- */
.wb-cta {
	background:
		radial-gradient(40rem 26rem at 90% 120%, rgba(62, 160, 155, .45), transparent 60%),
		radial-gradient(34rem 24rem at 0% -20%, rgba(157, 196, 109, .25), transparent 60%),
		var(--wb-navy);
	color: rgba(255, 255, 255, .85); overflow: hidden;
}
.wb-cta::before {
	content: ""; position: absolute; inset: auto 0 0 0; height: 70%; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 300' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.08' stroke-width='1.5'%3E%3Cpath d='M0 300C300 40 900 40 1200 300'/%3E%3Cpath d='M-80 300C240 90 960 90 1280 300'/%3E%3Cpath d='M-160 300C180 140 1020 140 1360 300'/%3E%3C/g%3E%3C/svg%3E") bottom / 100% 100% no-repeat;
}
.wb-cta h2 { color: #fff; }
.wb-cta h2 em { color: var(--wb-lime); }
.wb-cta p { color: rgba(255, 255, 255, .82); }
.wb-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--wb-navy); border-color: #fff; }
.wb-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--wb-lime); border-color: var(--wb-lime); color: var(--wb-navy-deep); }
.wb-cta .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .6); }
.wb-cta .is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .1); border-color: #fff; }
.wb-cta .wb-small { color: rgba(255, 255, 255, .7); }

/* Buttons: hover lift */
.wp-block-button__link { transition: background-color .25s, color .25s, border-color .25s, transform .3s var(--wb-ease), box-shadow .3s var(--wb-ease); }
.wp-block-button:not(.is-style-outline) .wp-block-button__link { box-shadow: 0 10px 24px -12px rgba(45, 131, 88, .55); }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px); }
.is-style-outline .wp-block-button__link:hover { background: var(--wb-navy); color: #fff; }

/* ---------- Prose pages ---------- */
.wb-prose { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.wb-prose h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-top: 2.75rem; margin-bottom: .5rem; }
.wb-prose h3 { font-size: 1.3rem; margin-top: 2rem; }
.wb-prose ul { padding-left: 1.25rem; }
.wb-prose li { margin-bottom: .4rem; }
.wb-prose li::marker { color: var(--wb-teal); }
.wb-draft-flag { background: #FFF8EC; border: 1.5px dashed #E2A33B; border-radius: 14px; padding: 1rem 1.25rem !important; color: #6B4A0F; font-size: .975rem; }

/* ---------- Footer ---------- */
.wb-site-footer { margin-top: 0; }
.wb-footer { background: var(--wb-navy-deep); color: rgba(255, 255, 255, .78); padding-block: clamp(3.5rem, 7vw, 5.5rem) 2rem; position: relative; overflow: hidden; }
.wb-footer::before {
	content: ""; position: absolute; right: -10%; top: -30%; width: 50rem; height: 50rem; border-radius: 50%;
	background: radial-gradient(circle, rgba(62, 160, 155, .16), transparent 60%); pointer-events: none;
}
.wb-footer__grid { gap: clamp(2rem, 4vw, 4rem) !important; position: relative; }
.wb-footer__tagline { font-family: var(--wp--preset--font-family--heading); font-size: 1.35rem; line-height: 1.4; color: #fff; margin-top: 1.5rem; max-width: 20rem; font-weight: 500; }
.wb-footer__heading { font-family: var(--wp--preset--font-family--body) !important; font-size: .8rem !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--wb-lime) !important; margin: .4rem 0 1.25rem; }
.wb-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.wb-footer a { color: #fff; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .35s var(--wb-ease), color .2s; }
.wb-footer a:hover { color: #fff; background-size: 100% 1px; }
.wb-footer__contact { margin: 0 0 .9rem; display: flex; align-items: flex-start; --wb-ico-color: var(--wb-lime); }
.wb-footer__contact::before { margin-top: .3em; }
.wb-footer .wb-tbc { color: rgba(255, 255, 255, .6); }
.wb-footer__notice { position: relative; margin-top: clamp(2.5rem, 5vw, 4rem) !important; border: 1px solid rgba(255, 255, 255, .16); border-radius: 18px; padding: 1.25rem 1.5rem !important; background: rgba(255, 255, 255, .04); }
.wb-footer__notice p { margin: 0; font-size: .95rem; color: rgba(255, 255, 255, .82); }
.wb-footer__notice strong { color: #fff; }
.wb-footer__bottom { position: relative; margin-top: 2rem !important; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .9rem; }
.wb-footer__bottom p { margin: 0; color: rgba(255, 255, 255, .62); }

/* ---------- Reveal on scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
	.wb-js .wb-reveal { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--wb-ease), transform .9s var(--wb-ease); }
	.wb-js .wb-reveal.is-visible { opacity: 1; transform: none; }
	.wb-js .wb-stagger > * { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--wb-ease), transform .8s var(--wb-ease); }
	.wb-js .wb-stagger.is-visible > * { opacity: 1; transform: none; }
	.wb-js .wb-stagger.is-visible > :nth-child(2) { transition-delay: .08s; }
	.wb-js .wb-stagger.is-visible > :nth-child(3) { transition-delay: .16s; }
	.wb-js .wb-stagger.is-visible > :nth-child(4) { transition-delay: .24s; }
	.wb-js .wb-stagger.is-visible > :nth-child(5) { transition-delay: .32s; }
	.wb-js .wb-stagger.is-visible > :nth-child(6) { transition-delay: .4s; }
	.wb-hero__copy > * { animation: wb-rise 1s var(--wb-ease) both; }
	.wb-hero__copy > :nth-child(2) { animation-delay: .06s; }
	.wb-hero__copy > :nth-child(3) { animation-delay: .12s; }
	.wb-hero__copy > :nth-child(4) { animation-delay: .18s; }
	.wb-hero__copy > :nth-child(5) { animation-delay: .24s; }
	.wb-hero__media { animation: wb-fade 1.4s var(--wb-ease) .1s both; }
}
@keyframes wb-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes wb-fade { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: none; } }

/* Editor: never hide content while editing. */
.editor-styles-wrapper .wb-reveal, .editor-styles-wrapper .wb-stagger > * { opacity: 1 !important; transform: none !important; }

/* Misc */
:root {
	--wb-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B3A68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 1rem center / 1.1rem no-repeat;
}
.wpcf7 select { background: #FBFDFC var(--wb-chevron); }
@media print { .wb-site-header, .wb-footer, .wb-cta { display: none !important; } }

/* ==========================================================================
   Design v2 – immersive photography, bento grid, layered compositions
   ========================================================================== */
html, body { overflow-x: clip; }
:root { --wb-radius-xl: 40px; --wb-overlay: 7, 42, 77; }

/* ---------- Top bar ---------- */
.wb-topbar { background: var(--wb-navy-deep); color: rgba(255, 255, 255, .86); font-size: .875rem; }
.wb-topbar__inner { padding-block: .55rem; gap: 1.5rem; }
.wb-topbar p { margin: 0; line-height: 1.4; }
.wb-topbar a { color: #fff; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255, 255, 255, .4); }
.wb-topbar a:hover { text-decoration-color: var(--wb-lime); }
.wb-topbar__status { display: flex; align-items: center; gap: .6rem; }
.wb-topbar__status::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--wb-lime); box-shadow: 0 0 0 4px rgba(157, 196, 109, .2); flex: none; }
.wb-topbar__contact { gap: 1.5rem; --wb-ico-color: var(--wb-lime); }
.wb-topbar__contact p { display: flex; align-items: center; }
.wb-topbar__contact a { text-decoration: none; }
.wb-topbar .wb-tbc { color: rgba(255, 255, 255, .7); font-style: normal; }
@media (max-width: 860px) { .wb-topbar__contact { display: none !important; } .wb-topbar { font-size: .8125rem; } }

/* ---------- Background photos ---------- */
.wb-bg { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; max-width: none !important; width: 100% !important; height: 100%; }
.wb-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
:is(.wb-hero2, .wb-banner, .wb-quote-band, .wb-photo-band, .wb-tile--photo, .wb-ocard) { position: relative; overflow: hidden; isolation: isolate; }
:is(.wb-hero2, .wb-banner, .wb-quote-band, .wb-photo-band) > :not(.wb-bg) { position: relative; z-index: 2; }

/* ---------- Home hero ---------- */
.wb-hero2 {
	min-height: min(90vh, 880px); display: flex; flex-direction: column; justify-content: center;
	padding-block: clamp(5rem, 10vw, 8rem) clamp(8rem, 13vw, 11rem) !important;
	background: var(--wb-navy-deep); color: #fff;
}
.wb-hero2::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(var(--wb-overlay), .95) 0%, rgba(var(--wb-overlay), .84) 34%, rgba(var(--wb-overlay), .38) 66%, rgba(var(--wb-overlay), .08) 100%),
		linear-gradient(0deg, rgba(var(--wb-overlay), .55) 0%, rgba(var(--wb-overlay), 0) 38%);
}
.wb-hero2 > .wb-hero2__inner { width: 100%; }
.wb-bg--hero img { object-position: 68% 45%; }
.wb-hero2__copy { max-width: 41rem; }
.wb-hero2__copy > * + * { margin-top: 1.4rem; }
.wb-hero2 h1 { color: #fff; font-size: clamp(2.8rem, 6.2vw, 5.4rem); line-height: 1; letter-spacing: -.03em; margin-top: .9rem; }
.wb-hero2 h1 em { display: block; color: var(--wb-lime); font-weight: 500; }
.wb-hero2 .wb-lead { color: rgba(255, 255, 255, .92); font-size: clamp(1.2rem, 1.9vw, 1.5rem) !important; max-width: 32rem; }
.wb-hero2 .wb-eyebrow, .wb-banner .wb-eyebrow { color: var(--wb-lime); }
.wb-hero2 .wb-eyebrow::before, .wb-banner .wb-eyebrow::before { background: var(--wb-lime); }
.wb-hero2 .wp-block-buttons { margin-top: 2.25rem; gap: .9rem; }
:is(.wb-hero2, .wb-banner, .wb-cta-card, .wb-aside-card) .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .7); }
:is(.wb-hero2, .wb-banner, .wb-cta-card, .wb-aside-card) .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wb-navy); border-color: #fff; }
.wb-hero2 .wb-chip { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .26); color: #fff; box-shadow: none; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.wb-hero2 .wb-chip::before { background: var(--wb-lime); box-shadow: 0 0 0 4px rgba(157, 196, 109, .25); }
@media (prefers-reduced-motion: no-preference) {
	.wb-bg--hero img { animation: wb-slow-zoom 14s var(--wb-ease) both; }
}
@keyframes wb-slow-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
@media (max-width: 781px) {
	.wb-hero2 { min-height: 0; }
	.wb-hero2::before { background: linear-gradient(180deg, rgba(var(--wb-overlay), .7) 0%, rgba(var(--wb-overlay), .9) 70%); }
	.wb-bg--hero img { object-position: 60% center; }
}

/* ---------- Pillars strip (overlaps the hero) ---------- */
.wb-pillars-wrap { padding-block: 0 !important; margin-top: calc(-1 * clamp(4.5rem, 8vw, 6rem)) !important; position: relative; z-index: 5; }
.wb-pillars {
	background: #fff; border-radius: 28px; box-shadow: var(--wb-shadow-lg); padding: clamp(1rem, 2vw, 1.6rem) !important;
	gap: 0 !important; grid-template-columns: repeat(4, 1fr) !important;
}
.wb-pillar { position: relative; padding: 1rem 1.25rem 1rem 4.6rem !important; min-height: 4.5rem; }
.wb-pillar + .wb-pillar { border-left: 1px solid var(--wb-line); }
.wb-pillar.wb-ico::before { position: absolute; left: 1.25rem; top: 1.05rem; width: 2.6rem; height: 2.6rem; margin: 0; border-radius: 14px; background: var(--wb-mist); -webkit-mask: none; mask: none; }
.wb-pillar.wb-ico::after { content: ""; position: absolute; left: 1.95rem; top: 1.75rem; width: 1.2rem; height: 1.2rem; background: var(--wb-teal-deep); -webkit-mask: var(--wb-icon) center / contain no-repeat; mask: var(--wb-icon) center / contain no-repeat; }
.wb-pillar p { margin: 0; line-height: 1.35; }
.wb-pillar p strong { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.12rem; color: var(--wb-navy); }
.wb-pillar p + p { margin-top: .25rem; font-size: .95rem; color: var(--wb-slate); }
@media (max-width: 1000px) {
	.wb-pillars { grid-template-columns: 1fr 1fr !important; }
	.wb-pillar:nth-child(3) { border-left: 0; }
	.wb-pillar:nth-child(n+3) { border-top: 1px solid var(--wb-line); }
}
@media (max-width: 560px) {
	.wb-pillars { grid-template-columns: 1fr !important; }
	.wb-pillar + .wb-pillar { border-left: 0; border-top: 1px solid var(--wb-line); }
}

/* ---------- Layered photo composition ---------- */
.wb-compose { position: relative; padding-bottom: 14% !important; }
.wb-compose > * { margin: 0 !important; }
.wb-compose__main { width: 82%; position: relative; z-index: 1; }
.wb-compose__main img { width: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; border-radius: 999px 999px var(--wb-radius-lg) var(--wb-radius-lg); box-shadow: var(--wb-shadow-lg); display: block; }
.wb-compose__inset { position: absolute !important; right: 0; bottom: 0; width: 44%; z-index: 2; }
.wb-compose__inset img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 8px solid #fff; box-shadow: var(--wb-shadow); display: block; }
.wb-compose--right .wb-compose__main { margin-left: auto !important; }
.wb-compose--right .wb-compose__inset { right: auto; left: 0; }
.wb-compose::before {
	content: ""; position: absolute; z-index: 0; width: 40%; aspect-ratio: 1; border-radius: 50%;
	border: 2px dashed rgba(62, 160, 155, .5); top: -5%; right: 4%;
}
.wb-compose--right::before { right: auto; left: 4%; }
.wb-compose::after {
	content: ""; position: absolute; z-index: 0; width: 22%; aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(circle, rgba(157, 196, 109, .55), rgba(157, 196, 109, 0) 70%); bottom: 26%; left: -6%;
}
.wb-compose--right::after { left: auto; right: -6%; }
.wb-bg-mist .wb-compose__inset img { border-color: var(--wb-mist); }
.wb-why .wb-compose__inset img { border-color: var(--wb-navy); }
.wb-why .wb-compose::before { border-color: rgba(157, 196, 109, .45); }

/* ---------- Curved section tops ---------- */
.wb-curve-top { padding-top: calc(var(--wb-section) + clamp(1.5rem, 3vw, 3rem)) !important; overflow: hidden; }
.wb-curve-top::before {
	content: ""; position: absolute; top: -1px; left: -10%; right: -10%; height: clamp(36px, 5vw, 80px);
	background: #fff; border-radius: 0 0 50% 50% / 0 0 100% 100%; pointer-events: none;
}

/* ---------- Bento grid ---------- */
.wb-bento { display: grid !important; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(250px, auto); gap: clamp(1rem, 1.6vw, 1.4rem); }
.wb-bento > * { margin: 0 !important; }
.wb-tile--a { grid-column: 1 / 3; grid-row: 1 / 3; }
.wb-tile--b { grid-column: 3 / 5; }
.wb-tile--c { grid-column: 3 / 4; }
.wb-tile--d { grid-column: 4 / 5; }
.wb-tile {
	border-radius: 28px; padding: clamp(1.5rem, 2.4vw, 2.25rem) !important; display: flex; flex-direction: column; justify-content: flex-end;
	min-height: 250px; box-shadow: var(--wb-shadow-sm); transition: transform .5s var(--wb-ease), box-shadow .5s var(--wb-ease); position: relative;
}
.wb-tile:hover { transform: translateY(-4px); box-shadow: var(--wb-shadow); }
.wb-tile h3 { font-size: clamp(1.35rem, 1.9vw, 1.65rem); margin: 0 0 .5rem; }
.wb-tile p { margin: 0; font-size: 1.02rem; line-height: 1.6; }
.wb-tile__num { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: .95rem !important; letter-spacing: .08em; margin-bottom: .6rem !important; }
.wb-tile--photo { color: #fff; }
.wb-tile--photo::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(var(--wb-overlay), .94) 0%, rgba(var(--wb-overlay), .55) 42%, rgba(var(--wb-overlay), 0) 75%); }
.wb-tile--photo .wb-tile__body { position: relative; z-index: 2; max-width: 30rem; }
.wb-tile--photo h3 { color: #fff; }
.wb-tile--photo p { color: rgba(255, 255, 255, .9); }
.wb-tile--photo .wb-tile__num { color: var(--wb-lime); }
.wb-tile--photo .wb-bg img { transition: transform 1.4s var(--wb-ease); }
.wb-tile--photo:hover .wb-bg img { transform: scale(1.05); }
.wb-tile--a h3 { font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.wb-tile--mint { background: linear-gradient(160deg, #DDF0EA 0%, #F4FAF8 100%); justify-content: space-between; }
.wb-tile--mint .wb-tile__num { color: var(--wb-teal-deep); }
.wb-tile--mint p { color: var(--wb-slate); }
.wb-tile--navy { background: linear-gradient(160deg, var(--wb-navy) 0%, var(--wb-navy-deep) 100%); color: #fff; justify-content: space-between; }
.wb-tile--navy h3 { color: #fff; }
.wb-tile--navy p { color: rgba(255, 255, 255, .82); }
.wb-tile--navy .wb-tile__num { color: var(--wb-lime); }
.wb-tile.wb-ico::before { width: 3.25rem; height: 3.25rem; margin: 0 0 1.5rem; display: block; border-radius: 16px; background: #fff; -webkit-mask: none; mask: none; box-shadow: var(--wb-shadow-sm); }
.wb-tile--navy.wb-ico::before { background: rgba(255, 255, 255, .1); box-shadow: none; }
.wb-tile.wb-ico::after {
	content: ""; position: absolute; top: calc(clamp(1.5rem, 2.4vw, 2.25rem) + .85rem); left: calc(clamp(1.5rem, 2.4vw, 2.25rem) + .85rem);
	width: 1.55rem; height: 1.55rem; background: var(--wb-teal-deep); -webkit-mask: var(--wb-icon) center / contain no-repeat; mask: var(--wb-icon) center / contain no-repeat;
}
.wb-tile--navy.wb-ico::after { background: var(--wb-lime); }
@media (max-width: 1000px) {
	.wb-bento { grid-template-columns: 1fr 1fr; }
	.wb-tile--a { grid-column: 1 / 3; grid-row: auto; min-height: 380px; }
	.wb-tile--b { grid-column: 1 / 3; min-height: 320px; }
	.wb-tile--c { grid-column: 1 / 2; }
	.wb-tile--d { grid-column: 2 / 3; }
}
@media (max-width: 600px) {
	.wb-bento { grid-template-columns: 1fr; }
	.wb-tile--a, .wb-tile--b, .wb-tile--c, .wb-tile--d { grid-column: auto; }
}

/* ---------- Navy "why" section ---------- */
.wb-why {
	background:
		radial-gradient(50rem 32rem at -5% -10%, rgba(62, 160, 155, .3), transparent 60%),
		radial-gradient(40rem 30rem at 105% 110%, rgba(157, 196, 109, .16), transparent 60%),
		var(--wb-navy) !important;
}
.wb-why p { color: rgba(255, 255, 255, .84); }
.wb-why h2 em { color: var(--wb-lime); }
.wb-numbered { list-style: none; padding: 0; margin: 2rem 0 0; counter-reset: wbn; }
.wb-numbered li { counter-increment: wbn; position: relative; padding: 1.15rem 0 1.15rem 4.25rem; border-top: 1px solid rgba(255, 255, 255, .14); color: rgba(255, 255, 255, .78); line-height: 1.6; }
.wb-numbered li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.wb-numbered li::before { content: counter(wbn, decimal-leading-zero); position: absolute; left: 0; top: 1.05rem; font-family: var(--wp--preset--font-family--heading); font-size: 1.6rem; line-height: 1; color: var(--wb-lime); font-weight: 500; }
.wb-numbered li strong { display: block; color: #fff; font-size: 1.15rem; margin-bottom: .15rem; }

/* ---------- Values ribbon ---------- */
.wb-ribbon {
	width: 100vw; max-width: none !important; margin: 0 0 0 calc(50% - 50vw) !important;
	overflow: hidden; background: var(--wb-cream); border-block: 1px solid #ECE6D8; padding-block: clamp(1.25rem, 2.5vw, 1.9rem);
}
.wb-ribbon__track { display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 2.75rem); width: max-content; }
.wb-ribbon__track span:not(.wb-ribbon__dot) { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(1.6rem, 3.4vw, 2.9rem); line-height: 1; color: var(--wb-navy); white-space: nowrap; letter-spacing: -.02em; }
.wb-ribbon__track span.is-alt { font-style: italic; font-weight: 500; color: var(--wb-green); }
.wb-ribbon__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--wb-teal); flex: none; }
@media (prefers-reduced-motion: no-preference) {
	.wb-ribbon__track { animation: wb-marquee 70s linear infinite; }
	.wb-ribbon:hover .wb-ribbon__track { animation-play-state: paused; }
}
@keyframes wb-marquee { to { transform: translateX(-50%); } }
.wb-ribbon + *, * + .wb-ribbon { margin-block-start: 0 !important; }

/* ---------- Overlay (photo) cards ---------- */
.wb-ocards { gap: clamp(1rem, 2vw, 1.5rem) !important; grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr)) !important; }
.wb-ocard {
	min-height: clamp(420px, 42vw, 560px); border-radius: var(--wb-radius-lg); display: flex; align-items: flex-end;
	padding: clamp(1.75rem, 3vw, 2.75rem) !important; color: #fff; box-shadow: var(--wb-shadow);
	transition: transform .6s var(--wb-ease), box-shadow .6s var(--wb-ease);
}
.wb-ocard::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(var(--wb-overlay), .96) 0%, rgba(var(--wb-overlay), .78) 38%, rgba(var(--wb-overlay), .2) 70%, rgba(var(--wb-overlay), 0) 85%); }
.wb-ocard:hover { transform: translateY(-6px); box-shadow: var(--wb-shadow-lg); }
.wb-ocard .wb-bg img { transition: transform 1.4s var(--wb-ease); }
.wb-ocard:hover .wb-bg img { transform: scale(1.05); }
.wb-ocard__body { position: relative; z-index: 2; max-width: 31rem; }
.wb-ocard__body > * + * { margin-top: .85rem; }
.wb-ocard h3 { color: #fff; font-size: clamp(1.75rem, 2.8vw, 2.4rem); margin-top: 1rem; }
.wb-ocard p { color: rgba(255, 255, 255, .9); margin-bottom: 0; }
.wb-glass-tag {
	display: inline-block; font-size: .76rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #fff !important;
	background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .32); border-radius: 999px; padding: .4rem .85rem;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.wb-arrow-link--light a { color: #fff !important; }
.wb-arrow-link--light a:hover { color: var(--wb-lime) !important; }

/* ---------- Quote band ---------- */
.wb-quote-band { min-height: clamp(460px, 48vw, 620px); display: flex; flex-direction: column; justify-content: center; padding-block: clamp(5rem, 10vw, 8rem) !important; text-align: center; background: var(--wb-navy-deep); }
.wb-quote-band::before { content: ""; position: absolute; inset: 0; z-index: 1; background: radial-gradient(60rem 40rem at 50% 50%, rgba(var(--wb-overlay), .62), rgba(var(--wb-overlay), .86)); }
.wb-quote-band__copy { max-width: 58rem !important; margin-inline: auto !important; }
.wb-quote { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.55rem, 3.3vw, 2.6rem) !important; line-height: 1.32; font-weight: 500; color: #fff; letter-spacing: -.015em; }
.wb-quote::before { content: "“"; display: block; font-size: clamp(4.5rem, 8vw, 6.5rem); line-height: .7; color: var(--wb-lime); margin-bottom: .5rem; font-weight: 600; }
.wb-quote-cite { display: inline-flex; align-items: center; gap: .75rem; margin-top: 1.75rem !important; text-transform: uppercase; letter-spacing: .22em; font-size: .8rem !important; font-weight: 700; color: var(--wb-lime); }
.wb-quote-cite::before, .wb-quote-cite::after { content: ""; width: 32px; height: 2px; border-radius: 2px; background: var(--wb-lime); }

/* ---------- Check list in two columns ---------- */
.wb-checklist--grid { grid-template-columns: 1fr 1fr; column-gap: 1.5rem; }
@media (max-width: 600px) { .wb-checklist--grid { grid-template-columns: 1fr; } }

/* ---------- CTA card ---------- */
.wb-cta-section { padding-block: var(--wb-section) !important; }
.wb-cta-card {
	position: relative; overflow: hidden; border-radius: var(--wb-radius-xl); padding: 0 !important; box-shadow: var(--wb-shadow-lg);
	background:
		radial-gradient(36rem 26rem at 0% 0%, rgba(62, 160, 155, .4), transparent 60%),
		radial-gradient(30rem 24rem at 60% 120%, rgba(157, 196, 109, .25), transparent 60%),
		var(--wb-navy);
	color: rgba(255, 255, 255, .86);
}
.wb-cta-card::before {
	content: ""; position: absolute; inset: auto 0 0 0; height: 70%; pointer-events: none; z-index: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 300' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.08' stroke-width='1.5'%3E%3Cpath d='M0 300C300 40 900 40 1200 300'/%3E%3Cpath d='M-80 300C240 90 960 90 1280 300'/%3E%3Cpath d='M-160 300C180 140 1020 140 1360 300'/%3E%3C/g%3E%3C/svg%3E") bottom / 100% 100% no-repeat;
}
.wb-cta-card__grid { gap: 0 !important; margin: 0 !important; align-items: stretch !important; position: relative; z-index: 1; }
.wb-cta-card__copy { padding: clamp(2.25rem, 5vw, 4.5rem) !important; }
.wb-cta-card__copy > * + * { margin-top: 1.1rem; }
.wb-cta-card h2 { color: #fff; }
.wb-cta-card h2 em { color: var(--wb-lime); }
.wb-cta-card .wb-lead { color: rgba(255, 255, 255, .88); }
.wb-cta-card .wb-small { color: rgba(255, 255, 255, .7); }
.wb-cta-card .wb-eyebrow { color: var(--wb-lime); }
.wb-cta-card .wb-eyebrow::before { background: var(--wb-lime); }
.wb-cta-card .wp-block-buttons { margin-top: 1.75rem; }
.wb-cta-card .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--wb-navy); border-color: #fff; box-shadow: none; }
.wb-cta-card .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--wb-lime); border-color: var(--wb-lime); color: var(--wb-navy-deep); }
.wb-cta-card__media { position: relative; min-height: 320px; }
.wb-cta-card__img { position: absolute !important; inset: 0; margin: 0 !important; }
.wb-cta-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wb-cta-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--wb-navy) 0%, rgba(11, 58, 104, 0) 35%); pointer-events: none; }
@media (max-width: 781px) {
	.wb-cta-card__media { min-height: 220px; order: -1; }
	.wb-cta-card__media::after { background: linear-gradient(0deg, var(--wb-navy) 0%, rgba(11, 58, 104, 0) 45%); }
}

/* ---------- Inner-page banner ---------- */
.wb-banner { padding-block: clamp(4.5rem, 9vw, 7.5rem) clamp(6rem, 11vw, 9rem) !important; background: var(--wb-navy-deep); color: #fff; }
.wb-banner::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(var(--wb-overlay), .95) 0%, rgba(var(--wb-overlay), .8) 42%, rgba(var(--wb-overlay), .3) 100%); pointer-events: none; }
.wb-banner--plain {
	background:
		radial-gradient(50rem 30rem at 100% 0%, rgba(62, 160, 155, .45), transparent 60%),
		radial-gradient(40rem 26rem at 0% 120%, rgba(157, 196, 109, .22), transparent 60%),
		var(--wb-navy);
}
.wb-banner--plain::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 300' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.08' stroke-width='1.5'%3E%3Cpath d='M0 300C300 40 900 40 1200 300'/%3E%3Cpath d='M-80 300C240 90 960 90 1280 300'/%3E%3Cpath d='M-160 300C180 140 1020 140 1360 300'/%3E%3C/g%3E%3C/svg%3E") bottom / 100% 80% no-repeat;
}
.wb-banner::after {
	content: ""; position: absolute; z-index: 3; left: -10%; right: -10%; bottom: -1px; height: clamp(36px, 5vw, 80px);
	background: #fff; border-radius: 50% 50% 0 0 / 100% 100% 0 0; pointer-events: none;
}
.wb-banner:has(+ .wb-bg-mist)::after { background: var(--wb-mist); }
.wb-banner:has(+ .wb-bg-cream)::after { background: var(--wb-cream); }
.wb-banner__copy { max-width: 46rem; }
.wb-banner__copy > * + * { margin-top: 1.1rem; }
.wb-banner h1 { color: #fff; font-size: clamp(2.5rem, 5.4vw, 4.4rem); line-height: 1.04; letter-spacing: -.028em; }
.wb-banner h1 em { color: var(--wb-lime); }
.wb-banner .wb-lead { color: rgba(255, 255, 255, .9) !important; max-width: 40rem; }
.wb-banner .wb-breadcrumb {
	display: inline-flex; gap: .35rem; align-items: center; color: rgba(255, 255, 255, .78); font-size: .875rem !important;
	background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px; padding: .35rem .9rem;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.wb-banner .wb-breadcrumb a { color: #fff; text-decoration: none; }
.wb-banner .wb-breadcrumb a:hover { color: var(--wb-lime); }

/* ---------- Photo band with glass cards ---------- */
.wb-photo-band { padding-block: clamp(5rem, 9vw, 8rem) !important; background: var(--wb-navy-deep); }
.wb-photo-band::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(120deg, rgba(var(--wb-overlay), .82), rgba(var(--wb-overlay), .55)); }
.wb-glass-card {
	height: 100%; color: #fff; border-radius: 28px; padding: clamp(2rem, 4vw, 3rem) !important;
	background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .26);
	-webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2);
}
.wb-glass-card h3 { color: var(--wb-lime); font-family: var(--wp--preset--font-family--body); font-size: .85rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 1rem; }
.wb-glass-card p { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.3rem, 2.2vw, 1.7rem); line-height: 1.4; font-weight: 500; margin: 0; color: #fff; }

/* ---------- Photo mosaic ---------- */
.wb-mosaic { display: grid !important; grid-template-columns: 1.35fr 1fr 1fr; gap: clamp(1rem, 1.6vw, 1.4rem); align-items: stretch; }
.wb-mosaic > * { margin: 0 !important; }
.wb-mosaic img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; display: block; border-radius: 28px; box-shadow: var(--wb-shadow-sm); }
.wb-mosaic__b img { border-radius: 999px 999px 28px 28px; }
@media (max-width: 781px) {
	.wb-mosaic { grid-template-columns: 1fr 1fr; }
	.wb-mosaic__a { grid-column: 1 / 3; }
	.wb-mosaic img { min-height: 220px; }
}

/* ---------- Feature card (children) ---------- */
.wb-feature-card { border-radius: var(--wb-radius-xl); padding: clamp(2rem, 5vw, 4rem) !important; background: linear-gradient(135deg, #E6F3EC 0%, var(--wb-mist) 60%, #fff 100%); border: 1px solid var(--wb-line); }
.wb-feature-card .wb-split { margin: 0 !important; }
.wb-feature-card__img { margin: 0 !important; }
.wb-feature-card__img img { width: 100%; aspect-ratio: 4 / 4.3; object-fit: cover; border-radius: 999px 999px 28px 28px; box-shadow: var(--wb-shadow); display: block; }
.wb-feature-card p:not(.wb-eyebrow) { color: var(--wb-slate); }
.wb-glass-note { background: #fff; border-radius: 18px; padding: 1.1rem 1.35rem !important; border-left: 4px solid var(--wb-green); box-shadow: var(--wb-shadow-sm); margin-top: 1.5rem !important; }
.wb-glass-note p { margin: 0; font-size: 1rem; color: var(--wb-ink) !important; }

/* ---------- Cards: numbered + raised ---------- */
.wb-cards--numbered { counter-reset: wbc; }
.wb-cards--numbered .wb-card { counter-increment: wbc; }
.wb-cards--numbered .wb-card h3::before { content: counter(wbc, decimal-leading-zero); display: block; font-size: .85rem; letter-spacing: .12em; color: var(--wb-teal-deep); font-family: var(--wp--preset--font-family--body); font-weight: 700; margin-bottom: .4rem; }
.wb-card--raised { box-shadow: var(--wb-shadow-lg); border-color: transparent; }
.wb-card::before { transition: transform .5s var(--wb-ease); }
.wb-card:hover::before { transform: rotate(-6deg) scale(1.06); }

/* ---------- FAQ layout ---------- */
.wb-faq-grid { gap: clamp(2rem, 5vw, 4.5rem) !important; align-items: flex-start !important; }
@media (min-width: 782px) { .wb-sticky { position: sticky; top: 9rem; } }
.wb-aside-card { border-radius: 28px; overflow: hidden; background: var(--wb-navy); color: rgba(255, 255, 255, .85); box-shadow: var(--wb-shadow); }
.wb-aside-card__img { margin: 0 !important; }
.wb-aside-card__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.wb-aside-card__body { padding: clamp(1.5rem, 3vw, 2rem) !important; }
.wb-aside-card__body h3 { color: #fff; margin: 0 0 .5rem; }
.wb-aside-card__body p { color: rgba(255, 255, 255, .82); }
.wb-aside-card .wp-block-button__link { background: #fff; color: var(--wb-navy); border-color: #fff; box-shadow: none; }
.wb-aside-card .wp-block-button__link:hover { background: var(--wb-lime); border-color: var(--wb-lime); color: var(--wb-navy-deep); }
.wb-faq { border-top: 0; }
.wb-faq details { background: #fff; border: 1px solid var(--wb-line); border-radius: 18px; padding: 0 1.5rem; margin: 0 0 .85rem; transition: box-shadow .35s var(--wb-ease), border-color .35s; }
.wb-faq details:hover { border-color: #C9DCD7; }
.wb-faq details[open] { box-shadow: var(--wb-shadow); border-color: transparent; }
.wb-faq summary { padding: 1.35rem 3.25rem 1.35rem 0; }

/* ---------- Contact ---------- */
.wb-contact-tiles-wrap { padding-block: 0 !important; margin-top: calc(-1 * clamp(3rem, 6vw, 4.5rem)) !important; position: relative; z-index: 5; }
.wb-contact-tiles { gap: clamp(1rem, 1.6vw, 1.4rem) !important; }
.wb-contact-tile { position: relative; background: #fff; border: 1px solid var(--wb-line); border-radius: 24px; box-shadow: var(--wb-shadow); padding: 1.6rem 1.6rem 1.6rem 5.25rem !important; }
.wb-contact-tile.wb-ico::before { position: absolute; left: 1.5rem; top: 1.55rem; width: 2.75rem; height: 2.75rem; margin: 0; border-radius: 14px; background: var(--wb-mist); -webkit-mask: none; mask: none; }
.wb-contact-tile.wb-ico::after { content: ""; position: absolute; left: 2.25rem; top: 2.3rem; width: 1.25rem; height: 1.25rem; background: var(--wb-teal-deep); -webkit-mask: var(--wb-icon) center / contain no-repeat; mask: var(--wb-icon) center / contain no-repeat; }
.wb-contact-tile__label { margin: 0; font-size: .78rem !important; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--wb-teal-deep); }
.wb-contact-tile__value { margin: .3rem 0 0 !important; font-size: 1.12rem !important; font-weight: 600; color: var(--wb-navy); }
.wb-contact-tile__value a { color: var(--wb-navy); }
.wb-form-card h2 em { color: var(--wb-green); }
.wb-aside-photo { margin-bottom: 1.5rem !important; }
.wb-aside-photo figure { margin: 0 !important; }
.wb-aside-photo img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: 999px 999px 28px 28px; box-shadow: var(--wb-shadow); display: block; }
@media (max-width: 781px) { .wb-aside-photo { display: none; } }

/* ---------- Header refinements ---------- */
.wb-header__bar { min-height: 4.75rem; }
.wb-header__cta .wp-block-button__link::after {
	content: ""; display: inline-block; width: 1em; height: 1em; margin-left: .45em; vertical-align: -.15em; background: currentColor;
	-webkit-mask: var(--wb-icon-arrow) center / contain no-repeat; mask: var(--wb-icon-arrow) center / contain no-repeat;
}

/* ---------- Footer refinement ---------- */
.wb-site-footer .wb-footer { padding-top: clamp(4rem, 8vw, 6rem); }

.wb-center .wb-notice, .wb-center .wb-notice p { text-align: left; }
.wb-contact-tiles { grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr)) !important; }
