/* ==========================================================================
   BOWestAfrica — Design System
   Modular, modern CSS. No framework dependency. Custom properties drive all
   brand colors/typography so they stay easy to change from the Customizer
   (see inc/customizer.php — bowa_customizer_css_vars() overrides these at
   runtime) or by editing the :root block below.
   ========================================================================== */

/* -------------------------------------------------------------------------
   1. Custom Properties
   ------------------------------------------------------------------------- */
:root {
	/* Brand colors — kept in sync with Customizer via inline <style> in wp_head */
	/* Sampled directly from the BOWestAfrica logo (truebwa.png) so the site
	   reads as an extension of the mark, not just a color scheme "inspired
	   by" it. See README brand notes in assets/images/logo/. */
	--bowa-navy: #0a2f63;
	--bowa-light-blue: #1e8fe0;
	--bowa-gold: #c8962f;
	--bowa-white: #ffffff;
	--bowa-dark: #061428;
	--bowa-muted: #6b7684;

	/* Derived tones */
	--bowa-navy-800: #123b79;
	--bowa-navy-700: #1b4a93;
	--bowa-light-blue-50: #eaf4fd;
	--bowa-light-blue-100: #d2e9fb;
	--bowa-gold-dark: #946e1d;
	--bowa-gold-light: #f0ddae;
	--bowa-border: #e4e8ee;
	--bowa-surface: #f7f9fc;
	--bowa-success: #1c8a5c;
	--bowa-pending: #b8860b;
	--bowa-expired: #b0413e;

	/* Typography */
	--bowa-font-heading: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--bowa-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

	/* Scale */
	--bowa-radius-sm: 6px;
	--bowa-radius-md: 12px;
	--bowa-radius-lg: 20px;
	--bowa-radius-pill: 999px;
	--bowa-shadow-sm: 0 1px 3px rgba(10, 26, 47, 0.08);
	--bowa-shadow-md: 0 8px 24px rgba(10, 26, 47, 0.08);
	--bowa-shadow-lg: 0 20px 48px rgba(10, 26, 47, 0.14);
	--bowa-container: 1220px;
	--bowa-container-narrow: 800px;
	--bowa-gap: 1.5rem;
	--bowa-transition: 180ms ease;

	/* Homepage section spacing system — the "Why BOWestAfrica" section is the
	   visual reference every major homepage section is built from (via the
	   shared .section / .section-heading classes below), so changing these
	   two values retunes the whole page's vertical rhythm consistently. The
	   Hero (its own clamp) and the Footer are intentionally excluded. */
	--bowa-section-padding-block: clamp(3rem, 6vw, 6rem);
	--bowa-section-heading-gap: 2.5rem;
}

/* -------------------------------------------------------------------------
   2. Reset & Base
   ------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

/* Horizontal-overflow safety net (v1.4.4). Root cause: grid/flex items
   default to a content-based minimum width (min-width: auto per the CSS
   spec) and this stylesheet had no overflow-wrap protection anywhere, so
   a single long, unbroken token in real content — a footer email/address,
   a hyphen-free article or business title, a raw URL — could force its
   card/column (and the whole page) wider than the viewport. Verified with
   Playwright: normal-length content produces zero overflow at every
   breakpoint; only unbroken long tokens trigger it, and only in the
   selectors below. Fixing both parts (letting the item shrink, and
   letting its text actually wrap) removes the overflow with no visual
   change for any existing normal-length content. */
h1, h2, h3, h4, h5, h6, p, li, dd, dt, blockquote, a, span, small, figcaption {
	overflow-wrap: break-word;
}
.pillar-grid > *, .area-grid > *, .service-grid > *, .article-grid > *,
.social-grid > *, .event-grid > *, .testimonial-grid > *, .video-grid > *,
.member-grid > *, .business-grid > *,
.who-we-are__grid > *, .membership-preview__grid > *,
.site-footer__top > *, .site-footer__columns > *,
.site-footer__links > *, .site-footer__contact > *,
.membership-preview__list > * {
	min-width: 0;
}

/* Defensive backstop only — the rules above fix the actual cause above;
   this just guarantees no stray future element can ever introduce a
   horizontal scrollbar. Safe with position: sticky (unlike overflow:
   hidden), since clip does not create a new scroll container. */
html, body { overflow-x: clip; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

body {
	margin: 0;
	font-family: var(--bowa-font-body);
	font-size: 16px;
	line-height: 1.65;
	color: var(--bowa-dark);
	background: var(--bowa-white);
	-webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; background: none; border: none; color: inherit; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--bowa-font-heading);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 0.6em;
	letter-spacing: -0.01em;
	color: var(--bowa-navy);
}
p { margin: 0 0 1.2em; }
p:last-child { margin-bottom: 0; }

/* Accessibility helpers */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
	border: 0; padding: 0; margin: -1px;
}
.skip-link {
	position: fixed;
	top: -100px;
	left: 1rem;
	z-index: 10000;
	background: var(--bowa-navy);
	color: var(--bowa-white);
	padding: 0.75rem 1.25rem;
	border-radius: var(--bowa-radius-sm);
	transition: top var(--bowa-transition);
}
.skip-link:focus {
	top: 1rem;
	outline: 2px solid var(--bowa-gold);
	outline-offset: 2px;
}

:focus-visible {
	outline: 2px solid var(--bowa-gold);
	outline-offset: 2px;
	border-radius: 2px;
}

/* -------------------------------------------------------------------------
   3. Layout
   ------------------------------------------------------------------------- */
.container {
	max-width: var(--bowa-container);
	margin-inline: auto;
	padding-inline: 1.5rem;
}
.container--narrow { max-width: var(--bowa-container-narrow); }

.section { padding-block: var(--bowa-section-padding-block); }
.section--tinted { background: var(--bowa-surface); }
.section--center { text-align: center; }

.section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: var(--bowa-section-heading-gap);
	flex-wrap: wrap;
}
.section-heading--center { flex-direction: column; align-items: center; text-align: center; }

.section-title {
	font-size: clamp(1.6rem, 2.6vw, 2.2rem);
	margin: 0;
}
.section-title--sm { font-size: clamp(1.3rem, 2vw, 1.6rem); margin-bottom: 1.75rem; }
.section-title--on-dark { color: var(--bowa-white); }
.section-lead {
	font-size: 1.1rem;
	color: var(--bowa-muted);
	max-width: 60ch;
}

.eyebrow {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bowa-gold-dark);
	margin-bottom: 0.75rem;
}
.eyebrow--on-dark { color: var(--bowa-gold); }

.two-col {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3rem;
}
.two-col__item p:last-child { color: var(--bowa-muted); }

.prose :is(h2, h3, h4) { margin-top: 2em; }
.prose p { color: var(--bowa-dark); }
.prose ul, .prose ol { margin: 0 0 1.2em 1.3em; list-style: revert; }
.prose a { color: var(--bowa-navy); text-decoration: underline; text-decoration-color: var(--bowa-gold); text-underline-offset: 3px; }
.prose img { border-radius: var(--bowa-radius-md); margin-block: 1.5em; }
.prose blockquote {
	border-left: 3px solid var(--bowa-gold);
	padding-left: 1.25rem;
	margin: 1.75rem 0;
	color: var(--bowa-muted);
	font-style: italic;
}
/* Prose rendered on a dark/navy card background (e.g. Membership plan card) —
   overrides only the text color that .prose otherwise hardcodes for light
   backgrounds; spacing/list/link rules above are inherited unchanged. */
.prose--on-dark p { color: rgba(255, 255, 255, 0.85); }
.prose--on-dark a { color: var(--bowa-white); text-decoration-color: var(--bowa-gold); }

.preview-note {
	font-size: 0.85rem;
	color: var(--bowa-muted);
	background: var(--bowa-light-blue-50);
	border: 1px dashed var(--bowa-light-blue);
	border-radius: var(--bowa-radius-sm);
	padding: 0.75rem 1rem;
	margin-top: 1.5rem;
}

/* -------------------------------------------------------------------------
   4. Buttons & Links
   ------------------------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.85rem 1.6rem;
	border-radius: var(--bowa-radius-sm);
	font-weight: 600;
	font-size: 0.95rem;
	transition: transform var(--bowa-transition), box-shadow var(--bowa-transition), background var(--bowa-transition), color var(--bowa-transition), border-color var(--bowa-transition);
	border: 1px solid transparent;
	white-space: nowrap;
}
.btn--block { width: 100%; }
.btn--lg { padding: 1rem 2rem; font-size: 1rem; }
.btn--sm { padding: 0.55rem 1.1rem; font-size: 0.85rem; }

.btn--primary { background: var(--bowa-navy); color: var(--bowa-white); }
.btn--primary:hover { background: var(--bowa-navy-800); transform: translateY(-1px); }

.btn--gold { background: var(--bowa-gold); color: var(--bowa-dark); }
.btn--gold:hover { background: var(--bowa-gold-dark); transform: translateY(-1px); box-shadow: var(--bowa-shadow-md); }

.btn--outline { border-color: var(--bowa-navy); color: var(--bowa-navy); }
.btn--outline:hover { background: var(--bowa-navy); color: var(--bowa-white); }

.btn--outline-light { border-color: rgba(255,255,255,0.5); color: var(--bowa-white); }
.btn--outline-light:hover { background: rgba(255,255,255,0.12); border-color: var(--bowa-white); }

.btn--ghost { color: var(--bowa-navy); padding: 0.6rem 0.9rem; }
.btn--ghost:hover { background: var(--bowa-surface); }

.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 600;
	color: var(--bowa-navy);
	white-space: nowrap;
}
.link-arrow .icon { width: 16px; height: 16px; transition: transform var(--bowa-transition); }
.link-arrow:hover .icon { transform: translateX(3px); }
.link-arrow--light { color: var(--bowa-white); }

.icon { width: 20px; height: 20px; flex-shrink: 0; }
.icon--flip { transform: rotate(180deg); }

.tag {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.3rem 0.65rem;
	border-radius: var(--bowa-radius-pill);
	background: var(--bowa-surface);
	color: var(--bowa-navy);
	border: 1px solid var(--bowa-border);
}
.tag--gold { background: var(--bowa-gold); color: var(--bowa-dark); border-color: var(--bowa-gold); }

/* -------------------------------------------------------------------------
   5. Header & Navigation
   ------------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 500;
	background: rgba(255,255,255,0.96);
	backdrop-filter: saturate(180%) blur(8px);
	border-bottom: 1px solid var(--bowa-border);
}
.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 0.9rem;
}

.site-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--bowa-navy);
	line-height: 0;
}
.site-logo__wordmark { display: flex; flex-direction: column; line-height: 1; }
.site-logo__line { font-family: var(--bowa-font-heading); font-weight: 800; letter-spacing: 0.02em; font-size: 0.95rem; }
.site-logo__line--primary { color: var(--bowa-navy); }
.site-logo__line--accent { color: var(--bowa-gold-dark); font-size: 0.78rem; letter-spacing: 0.14em; }
.custom-logo-link img { max-height: 46px; width: auto; }

/* The bundled BOWestAfrica logo file has a genuine transparent background,
   so it renders directly — no container/plate behind it — and simply scales
   to fit the header, footer, and member-card contexts it appears in.
   Base rule (60px, v1.4.3) governs the main header logo specifically — the
   footer and member-card contexts below pin their own height and are
   unaffected by this value. */
.site-logo--image img { display: block; height: 60px; width: auto; }
.site-logo--mobile img { display: block; height: 34px; width: auto; }
.site-footer .site-logo--image img {
	height: 44px;
	/* Subtle white glow (v1.4.1) so the logo separates cleanly from the
	   footer's dark background — no box, panel or border, just a soft
	   halo that follows the logo's own transparent artwork. */
	filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.55)) drop-shadow(0 0 2px rgba(255, 255, 255, 0.85));
}
.member-card__logo .site-logo--image img { height: 32px; }

.site-header__nav { flex: 1; display: flex; justify-content: center; }
.primary-menu { display: flex; align-items: center; gap: 0.25rem; }
.primary-menu > .menu-item { position: relative; }
.menu-item__link {
	display: inline-flex;
	align-items: center;
	padding: 0.6rem 0.9rem;
	border-radius: var(--bowa-radius-sm);
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--bowa-navy);
	transition: background var(--bowa-transition), color var(--bowa-transition);
}
.menu-item__link:hover { background: var(--bowa-surface); }

.menu-item--has-children { display: flex; align-items: center; }
.submenu-toggle { padding: 0.4rem; display: inline-flex; }
.submenu-toggle .icon { width: 14px; height: 14px; transition: transform var(--bowa-transition); }
.menu-item--has-children:hover .submenu-toggle .icon,
.menu-item--has-children.is-open .submenu-toggle .icon { transform: rotate(180deg); }

.sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	box-shadow: var(--bowa-shadow-md);
	padding: 0.5rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--bowa-transition), transform var(--bowa-transition), visibility var(--bowa-transition);
}
.menu-item--has-children:hover > .sub-menu,
.menu-item--has-children.is-open > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.sub-menu .menu-item__link { display: block; }

.site-header__actions { display: flex; align-items: center; gap: 0.6rem; }
.site-header__login span { display: none; }
@media (min-width: 900px) { .site-header__login span { display: inline; } }

.mobile-menu-toggle {
	display: none;
	padding: 0.5rem;
	border-radius: var(--bowa-radius-sm);
}
.mobile-menu-toggle .icon--close { display: none; }
.mobile-menu-toggle[aria-expanded="true"] .icon--open { display: none; }
.mobile-menu-toggle[aria-expanded="true"] .icon--close { display: block; }

/* -------------------------------------------------------------------------
   6. Mobile Menu
   ------------------------------------------------------------------------- */
.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 1000;
	visibility: hidden;
	pointer-events: none;
}
.mobile-menu.is-open { visibility: visible; pointer-events: auto; }

.mobile-menu__backdrop {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(10, 26, 47, 0.5);
	opacity: 0;
	transition: opacity var(--bowa-transition);
}
.mobile-menu.is-open .mobile-menu__backdrop { opacity: 1; }

.mobile-menu__inner {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	z-index: 2;
	width: min(360px, 88vw);
	background: var(--bowa-white);
	color: var(--bowa-navy);
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	transform: translateX(100%);
	transition: transform 260ms ease;
	overflow-y: auto;
}
.mobile-menu.is-open .mobile-menu__inner { transform: translateX(0); }

.mobile-menu__header { display: flex; align-items: center; justify-content: flex-end; }
.mobile-menu__inner nav,
.mobile-menu__list { display: block; width: 100%; }
.mobile-menu__list > .menu-item {
	display: block;
	width: 100%;
	border-bottom: 1px solid var(--bowa-border);
}
.mobile-menu__list .menu-item__link {
	display: flex;
	width: 100%;
	padding: 0.9rem 0.25rem;
	font-size: 1.05rem;
	line-height: 1.35;
	color: var(--bowa-navy);
	opacity: 1;
	visibility: visible;
}
/* Desktop top-level items with children are flex rows. Reset that layout in
   the off-canvas menu so the label and its submenu stack vertically instead
   of becoming horizontal flex siblings that can be clipped on narrow screens. */
.mobile-menu__list .menu-item--has-children { display: block; }
.mobile-menu__list .submenu-toggle { display: none; }
.mobile-menu__list .sub-menu {
	display: block;
	position: static;
	width: 100%;
	opacity: 1;
	visibility: visible;
	transform: none;
	box-shadow: none;
	border: none;
	padding-left: 1rem;
}
.mobile-menu__list .sub-menu .menu-item__link {
	color: var(--bowa-navy);
	font-size: 0.96rem;
}
.mobile-menu__actions { display: flex; flex-direction: column; gap: 0.75rem; }

@media (max-width: 960px) {
	.site-header__nav { display: none; }
	.site-header__login { display: none; }
	.site-header__cta { display: none; }
	.mobile-menu-toggle { display: inline-flex; }
}

/* -------------------------------------------------------------------------
   7. Hero
   ------------------------------------------------------------------------- */
.hero { position: relative; overflow: hidden; color: var(--bowa-white); }
.hero--home { padding-block: clamp(4rem, 10vw, 8rem); }
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__gradient {
	position: absolute; inset: 0;
	background: linear-gradient(135deg, var(--bowa-navy) 0%, var(--bowa-dark) 55%, var(--bowa-navy-700) 100%);
}
.hero__pattern {
	position: absolute; inset: 0;
	background-image: radial-gradient(circle at 20% 20%, rgba(90,169,230,0.18), transparent 45%),
		radial-gradient(circle at 85% 15%, rgba(201,162,75,0.16), transparent 40%),
		radial-gradient(circle at 75% 90%, rgba(90,169,230,0.12), transparent 45%);
}
.hero__inner { position: relative; z-index: 1; max-width: 760px; }
.hero__title { color: var(--bowa-white); font-size: clamp(2.2rem, 5vw, 3.6rem); margin-bottom: 0.5em; }
.hero__subtitle { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: rgba(255,255,255,0.82); max-width: 56ch; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.hero__stats { display: flex; gap: clamp(1.5rem, 4vw, 3rem); margin-top: 3.5rem; flex-wrap: wrap; }
.hero__stat { display: flex; flex-direction: column; }
.hero__stat-number { font-family: var(--bowa-font-heading); font-size: 2rem; font-weight: 800; color: var(--bowa-gold); }
.hero__stat-label { font-size: 0.85rem; color: rgba(255,255,255,0.72); }

.page-hero { background: var(--bowa-surface); padding-block: clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid var(--bowa-border); }
.page-hero--compact { padding-block: clamp(2rem, 4vw, 3rem); }
.page-hero__title { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.page-hero__description { color: var(--bowa-muted); max-width: 60ch; font-size: 1.05rem; }
/* Optional secondary meta line (added v1.6.5), e.g. the Contact page's
   Headquarters line — visually distinct from the description sentence
   above it, never appended into that sentence. */
.page-hero__meta { color: var(--bowa-navy); font-weight: 600; font-size: 0.92rem; margin-top: 0.75rem; }
.page-hero__search { max-width: 480px; margin-top: 1.25rem; }

/* Optional hero photo (added v1.6.0) — same photo-frame visual language as
   .about-intro__grid / .membership-plan__grid. Only applied when a page
   template sets the bowa_page_hero_image filter (see hero-page.php); every
   other page's .page-hero renders with none of this and is unaffected. */
.page-hero--with-image { padding-block: clamp(2.5rem, 5vw, 3.5rem); }
.page-hero__grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: center; }
.page-hero--image-left .page-hero__grid { grid-template-columns: 0.8fr 1.2fr; }
.page-hero--image-left .page-hero__visual { order: -1; }
.page-hero__visual { position: relative; }
.page-hero__photo-frame {
	aspect-ratio: 1 / 1;
	border-radius: var(--bowa-radius-lg);
	overflow: hidden;
	box-shadow: var(--bowa-shadow-lg);
}
.page-hero__photo { display: block; width: 100%; height: 100%; object-fit: cover; }

/* -------------------------------------------------------------------------
   8. Breadcrumbs & Pagination
   ------------------------------------------------------------------------- */
.breadcrumbs { margin-bottom: 1.25rem; }
.breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; font-size: 0.82rem; color: var(--bowa-muted); }
.breadcrumbs__item { display: flex; align-items: center; gap: 0.4rem; }
.breadcrumbs__item:not(:last-child)::after { content: '/'; color: var(--bowa-border); margin-left: 0.4rem; }
.breadcrumbs__item a:hover { color: var(--bowa-navy); text-decoration: underline; }

.pagination { margin-top: 3rem; display: flex; justify-content: center; }
.pagination__list { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.pagination .page-numbers,
.pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding-inline: 0.5rem;
	border-radius: var(--bowa-radius-sm);
	border: 1px solid var(--bowa-border);
	font-weight: 600;
}
.pagination .page-numbers.current { background: var(--bowa-navy); color: var(--bowa-white); border-color: var(--bowa-navy); }
.pagination .page-numbers:not(.current):hover { background: var(--bowa-surface); }

/* -------------------------------------------------------------------------
   9. Cards: Article / Service / Area / Pillar / Event / Video / Member
   ------------------------------------------------------------------------- */
.article-grid, .video-grid, .service-grid, .area-grid, .event-grid, .member-grid {
	display: grid;
	gap: var(--bowa-gap);
}
.article-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.video-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.service-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.area-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.event-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.event-grid--compact { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.member-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

/* Network "Load More" (added v1.6.12, mirrors .business-load-more). */
.network-load-more { text-align: center; margin-top: 2.5rem; }
.network-load-more__note { margin: 0.75rem 0 0; font-size: 0.875rem; color: var(--bowa-muted); }

.article-card {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	overflow: hidden;
	transition: box-shadow var(--bowa-transition), transform var(--bowa-transition);
}
.article-card:hover { box-shadow: var(--bowa-shadow-md); transform: translateY(-2px); }
.article-card__image-link { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--bowa-surface); }
.article-card__image { width: 100%; height: 100%; object-fit: cover; }
.article-card__image--placeholder { background: linear-gradient(135deg, var(--bowa-light-blue-100), var(--bowa-surface)); display: block; width: 100%; height: 100%; }
.article-card__tag { position: absolute; top: 0.75rem; left: 0.75rem; }
.article-card__body { padding: 1.25rem; }
.article-card__title { font-size: 1.08rem; margin-bottom: 0.5rem; }
.article-card__title a:hover { color: var(--bowa-navy-800); text-decoration: underline; }
.article-card__excerpt { color: var(--bowa-muted); font-size: 0.92rem; }
.article-card__meta { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--bowa-muted); margin-top: 0.85rem; }
.article-card__more { display: inline-flex; align-items: center; gap: 0.35rem; margin-top: 0.85rem; font-size: 0.85rem; font-weight: 600; color: var(--bowa-navy); }
.article-card__more .icon { width: 15px; height: 15px; transition: transform var(--bowa-transition); }
.article-card__more:hover .icon { transform: translateX(3px); }

/* Homepage "Latest Articles" grid: exact 4/2/1 columns (not auto-fill), so
   the row always looks intentional regardless of how many cards render. */
.article-grid--home { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .article-grid--home { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .article-grid--home { grid-template-columns: 1fr; } }

.pillar-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--bowa-gap); }
.pillar-grid--compact { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.pillar-card, .pillar-card--compact {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 1.75rem;
	text-align: left;
}
.pillar-card__icon, .service-card__icon, .area-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: var(--bowa-radius-md);
	background: var(--bowa-light-blue-50);
	color: var(--bowa-navy);
	margin-bottom: 1rem;
}
.pillar-card__icon .icon, .service-card__icon .icon, .area-card__icon .icon { width: 24px; height: 24px; }
.pillar-card__title { font-size: 1.1rem; margin-bottom: 0.4rem; }
.pillar-card__text { color: var(--bowa-muted); font-size: 0.92rem; margin: 0; }
/* Optional per-card link (added v1.6.4 — used by the Resources page category
   cards so each one leads somewhere real rather than reading as static
   text). Only present when a card supplies one, so pillar-grid usages
   without a link (e.g. Membership's benefit cards) are unaffected. */
.pillar-card .link-arrow { margin-top: 0.85rem; }

.area-card {
	display: block;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 1.75rem;
	transition: box-shadow var(--bowa-transition), transform var(--bowa-transition), border-color var(--bowa-transition);
}
.area-card:hover { box-shadow: var(--bowa-shadow-md); transform: translateY(-2px); border-color: var(--bowa-gold); }
.area-card__title { font-size: 1.1rem; margin-bottom: 0.4rem; }
.area-card__text { color: var(--bowa-muted); font-size: 0.9rem; }
.area-card__cta { display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 600; font-size: 0.85rem; color: var(--bowa-navy); margin-top: 0.75rem; }
.area-card__cta .icon { width: 14px; height: 14px; }

.service-card {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 2rem;
}
.service-card__title { font-size: 1.15rem; margin-bottom: 0.5rem; }
.service-card__text { color: var(--bowa-muted); margin-bottom: 1.25rem; }
.service-grid--landing .service-card { height: 100%; }
.service-card--landing { display: flex; flex-direction: column; }
.service-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; margin-top: auto; }

.event-card {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	overflow: hidden;
}
.event-card__image { position: relative; aspect-ratio: 16/9; background: var(--bowa-surface); }
.event-card__image img { width: 100%; height: 100%; object-fit: cover; }
.event-card__image--placeholder { display: flex; align-items: center; justify-content: center; color: var(--bowa-light-blue); }
.event-card__date-badge {
	position: absolute; top: 0.75rem; left: 0.75rem;
	background: var(--bowa-white);
	border-radius: var(--bowa-radius-sm);
	padding: 0.4rem 0.7rem;
	text-align: center;
	box-shadow: var(--bowa-shadow-sm);
}
.event-card__date-day { display: block; font-weight: 800; font-size: 1.1rem; color: var(--bowa-navy); line-height: 1; }
.event-card__date-month { display: block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--bowa-gold-dark); }
.event-card__body { padding: 1.25rem; }
.event-card__title { font-size: 1.05rem; margin-bottom: 0.6rem; }
.event-card__meta { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.85rem; color: var(--bowa-muted); margin-bottom: 0.75rem; }
.event-card__meta li { display: flex; align-items: center; gap: 0.4rem; }
.event-card__meta .icon { width: 16px; height: 16px; color: var(--bowa-light-blue); }
.event-card__excerpt { font-size: 0.88rem; color: var(--bowa-muted); margin-bottom: 1rem; }

.video-card { position: relative; }
.video-card__thumb { position: relative; display: block; aspect-ratio: 16/9; border-radius: var(--bowa-radius-md); overflow: hidden; background: var(--bowa-navy); }
.video-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.video-card__thumb-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--bowa-navy), var(--bowa-navy-700)); }
.video-card__play {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	background: rgba(10,26,47,0.25);
	transition: background var(--bowa-transition);
}
.video-card__play .icon { width: 52px; height: 52px; color: var(--bowa-white); filter: drop-shadow(0 2px 6px rgba(0,0,0,0.4)); }
.video-card:hover .video-card__play { background: rgba(10,26,47,0.4); }
.video-card__title { font-size: 0.98rem; margin-top: 0.75rem; }

/* v1.6.6: rebuilt as a flex column (matching .business-card's already-solid
   pattern) so name/title/tags of very different lengths don't push each
   card's action link to a different vertical position within a row — the
   action is pinned to the bottom of every card via margin-top: auto below,
   regardless of how much text precedes it. min-width: 0 on the grid cell
   (see the shared rule above) plus the theme-wide overflow-wrap rule (also
   above) already cover long unbroken company/industry/country strings. */
.member-preview-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 1.5rem;
	text-align: center;
	height: 100%;
}
.member-preview-card__avatar {
	width: 64px; height: 64px;
	border-radius: 50%;
	margin: 0 auto 0.85rem;
	background: var(--bowa-navy);
	color: var(--bowa-white);
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 1.4rem;
	overflow: hidden;
	flex-shrink: 0;
}
.member-preview-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.member-preview-card__name { font-size: 1rem; margin-bottom: 0.15rem; line-height: 1.3; }
.member-preview-card__title { font-size: 0.82rem; color: var(--bowa-muted); margin-bottom: 0.75rem; line-height: 1.4; }
.member-preview-card__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin-bottom: 0.85rem; }
.member-preview-card .link-arrow, .member-preview-card .btn--disabled { margin-top: auto; }

/* -------------------------------------------------------------------------
   10. Membership / Testimonials / Final CTA
   ------------------------------------------------------------------------- */
.membership-preview__card {
	background: linear-gradient(135deg, var(--bowa-navy), var(--bowa-dark));
	border-radius: var(--bowa-radius-lg);
	padding: clamp(2.5rem, 6vw, 4.5rem);
	color: var(--bowa-white);
}
.membership-preview__intro { max-width: 650px; color: rgba(255,255,255,0.82); margin-top: 1rem; line-height: 1.75; }
.membership-preview__price { display: flex; align-items: baseline; gap: 0.4rem; margin: 1rem 0 1.5rem; flex-wrap: wrap; }
.membership-preview__from { color: rgba(255,255,255,0.82); font-weight: 700; margin-right: 0.2rem; }
.membership-preview__amount { font-size: 3rem; font-weight: 800; color: var(--bowa-gold); font-family: var(--bowa-font-heading); }
.membership-preview__period { color: rgba(255,255,255,0.7); }
.membership-preview__list { display: grid; gap: 0.75rem; margin-bottom: 2rem; max-width: 480px; }
.membership-preview__list li { display: flex; align-items: center; gap: 0.6rem; }
.membership-preview__list .icon { color: var(--bowa-gold); width: 18px; height: 18px; flex-shrink: 0; }
.membership-preview__actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }

/* Membership page pricing card — restyled (v1.4) to the same dark
   navy-to-dark gradient card treatment as the homepage's Founding
   Membership section (.membership-preview__card), so this page reads as a
   direct continuation of it rather than a visually unrelated pricing box.
   Structure mirrors .membership-preview__grid: content | photo. */
.membership-plan { }
.membership-plan__card {
	background: linear-gradient(135deg, var(--bowa-navy), var(--bowa-dark));
	border-radius: var(--bowa-radius-lg);
	padding: clamp(2.5rem, 6vw, 4.5rem);
	color: var(--bowa-white);
}
.membership-plan__grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: center; }
.membership-plan__grid--image-left { grid-template-columns: 0.8fr 1.2fr; }
.membership-plan__grid--image-left .membership-plan__visual { order: -1; }
.membership-plan__visual { position: relative; }
.membership-plan__photo-frame {
	aspect-ratio: 1 / 1;
	border-radius: var(--bowa-radius-lg);
	overflow: hidden;
	box-shadow: var(--bowa-shadow-lg);
}
.membership-plan__photo { display: block; width: 100%; height: 100%; object-fit: cover; }
.membership-plan__price { display: flex; align-items: baseline; gap: 0.4rem; margin: 1rem 0 0.5rem; }
.membership-plan__amount { font-size: 3.2rem; font-weight: 800; color: var(--bowa-gold); font-family: var(--bowa-font-heading); }
.membership-plan__period { color: rgba(255, 255, 255, 0.7); }
.membership-plan__note { color: rgba(255, 255, 255, 0.7); font-size: 0.85rem; margin-bottom: 1.75rem; }

.membership-benefits .pillar-grid { margin-top: 0; }

.testimonial-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--bowa-gap); }
.testimonial-card {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 2rem;
	position: relative;
}
.testimonial-card__quote-mark { position: absolute; top: 1rem; right: 1.5rem; font-size: 3rem; color: var(--bowa-light-blue-100); font-family: Georgia, serif; }
.testimonial-card blockquote { margin: 0 0 1.25rem; font-size: 1rem; color: var(--bowa-dark); }
.testimonial-card__name { display: block; font-weight: 700; }
.testimonial-card__title { display: block; font-size: 0.82rem; color: var(--bowa-muted); }

.final-cta { background: linear-gradient(135deg, var(--bowa-navy) 0%, var(--bowa-navy-700) 100%); color: var(--bowa-white); }
.final-cta__inner { text-align: center; max-width: 640px; margin: 0 auto; }
.final-cta__title { color: var(--bowa-white); font-size: clamp(1.5rem, 3vw, 2.1rem); }
.final-cta__text { color: rgba(255,255,255,0.8); margin-bottom: 1.75rem; }
.final-cta__actions { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }

/* -------------------------------------------------------------------------
   11. Checklist / Process Steps / FAQ
   ------------------------------------------------------------------------- */
.checklist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.checklist-item {
	display: flex; align-items: flex-start; gap: 0.65rem;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-sm);
	padding: 1rem 1.15rem;
}
.checklist-item .icon { width: 18px; height: 18px; color: var(--bowa-success); flex-shrink: 0; margin-top: 2px; }
.checklist-item--gold .icon { color: var(--bowa-gold-dark); }

.process-steps { display: grid; gap: 1.75rem; counter-reset: step; }
.process-steps__item { display: flex; gap: 1.25rem; align-items: flex-start; }
.process-steps__number {
	font-family: var(--bowa-font-heading);
	font-weight: 800;
	font-size: 1.4rem;
	color: var(--bowa-gold-dark);
	min-width: 3rem;
}
.process-steps__item h3 { margin-bottom: 0.35rem; font-size: 1.05rem; }
.process-steps__item p { color: var(--bowa-muted); margin: 0; }

.faq-list { display: grid; gap: 0.75rem; }
.faq-item {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-sm);
	padding: 0.25rem 1.25rem;
}
.faq-item__question {
	display: flex; align-items: center; justify-content: space-between;
	padding: 1rem 0;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
.faq-item__question::-webkit-details-marker { display: none; }
.faq-item__question .icon { width: 18px; height: 18px; transition: transform var(--bowa-transition); flex-shrink: 0; }
.faq-item[open] .faq-item__question .icon { transform: rotate(180deg); }
.faq-item__answer { padding-bottom: 1rem; color: var(--bowa-muted); }

/* Comparison block + disclaimer callout (added v1.6.0 — service sub-pages) */
.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.comparison-card {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 2rem;
}
.comparison-card--featured { border-color: var(--bowa-gold); box-shadow: var(--bowa-shadow-md); }
.comparison-card__title { font-size: 1.2rem; margin: 0.35rem 0 0.6rem; }
.comparison-card__text { color: var(--bowa-muted); margin-bottom: 1rem; }
.comparison-card__points { display: grid; gap: 0.6rem; }
.comparison-card__points li { display: flex; align-items: flex-start; gap: 0.5rem; }
.comparison-card__points .icon { width: 16px; height: 16px; color: var(--bowa-success); flex-shrink: 0; margin-top: 3px; }

.disclaimer-box {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	background: var(--bowa-surface);
	border: 1px solid var(--bowa-border);
	border-left: 3px solid var(--bowa-gold);
	border-radius: var(--bowa-radius-md);
	padding: 1.5rem 1.75rem;
}
.disclaimer-box__icon { flex-shrink: 0; color: var(--bowa-gold-dark); }
.disclaimer-box__icon .icon { width: 22px; height: 22px; }
.disclaimer-box__title { font-size: 1rem; margin-bottom: 0.35rem; }
.disclaimer-box__text { color: var(--bowa-muted); margin: 0; font-size: 0.92rem; }

/* -------------------------------------------------------------------------
   12. Articles / Editorial (single post)
   ------------------------------------------------------------------------- */
.article-single__header { padding-block: 2.5rem 1.5rem; }
.article-single__categories { display: flex; gap: 0.5rem; margin-bottom: 1rem; }
.article-single__title { font-size: clamp(1.9rem, 4.5vw, 3rem); }
.article-single__featured-image { max-width: 1400px; margin: 0 auto 2.5rem; }
.article-single__featured-image img { width: 100%; border-radius: var(--bowa-radius-md); aspect-ratio: 16/9; object-fit: cover; }

.article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 0.6rem; color: var(--bowa-muted); font-size: 0.88rem; }
.article-meta__author { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 600; color: var(--bowa-navy); }
.article-meta__avatar { border-radius: 50%; }
.article-meta__divider { opacity: 0.6; }

.article-single__layout { display: grid; grid-template-columns: 56px 1fr; gap: 2rem; }
.article-single__share-rail { position: sticky; top: 6rem; align-self: start; }
.article-single__body { font-size: 1.08rem; }

.social-share { display: flex; flex-direction: column; align-items: center; gap: 0.6rem; }
.article-single__share-rail .social-share { flex-direction: column; }
.social-share__label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--bowa-muted); }
.social-share__link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px;
	border-radius: 50%;
	border: 1px solid var(--bowa-border);
	color: var(--bowa-navy);
	transition: background var(--bowa-transition), color var(--bowa-transition);
}
.social-share__link .icon { width: 18px; height: 18px; }
.social-share__link:hover { background: var(--bowa-navy); color: var(--bowa-white); }

.article-single__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2.5rem; }

.author-box {
	display: flex; gap: 1.25rem; align-items: center;
	margin-top: 2.5rem;
	padding: 1.5rem;
	background: var(--bowa-surface);
	border-radius: var(--bowa-radius-md);
}
.author-box__avatar img { border-radius: 50%; }
.author-box__label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--bowa-muted); margin: 0; }
.author-box__name { font-size: 1.05rem; margin: 0.15rem 0 0.4rem; }
.author-box__bio { color: var(--bowa-muted); font-size: 0.9rem; margin: 0; }

.related-articles { margin-top: 0; }

.featured-article {
	display: grid; grid-template-columns: 1.1fr 1fr; gap: 2.5rem; align-items: center;
	margin-bottom: 3rem; padding-bottom: 3rem; border-bottom: 1px solid var(--bowa-border);
}
.featured-article__image { display: block; border-radius: var(--bowa-radius-lg); overflow: hidden; aspect-ratio: 4/3; background: var(--bowa-surface); }
.featured-article__image--placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--bowa-navy), var(--bowa-light-blue)); }
.featured-article__title { font-size: clamp(1.4rem, 2.8vw, 2rem); margin-bottom: 0.75rem; }
.featured-article__excerpt { color: var(--bowa-muted); margin-bottom: 1rem; }
.featured-article__body .article-meta { margin-bottom: 1.5rem; }

.insights-layout { display: grid; grid-template-columns: 1fr 300px; gap: 3rem; align-items: start; }
.insights-layout__sidebar { position: sticky; top: 6rem; display: grid; gap: 1.5rem; }
.insights-layout__more { margin-top: 2.5rem; text-align: center; }

/* Cross-link banner (added v1.6.0 — currently used to point Insights at
   Resources; reusable for future cross-page promos). */
.resources-promo__inner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.resources-promo__icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--bowa-white);
	color: var(--bowa-gold-dark);
	box-shadow: var(--bowa-shadow-sm);
}
.resources-promo__icon .icon { width: 24px; height: 24px; }
.resources-promo__body { flex: 1 1 320px; }
.resources-promo__body .section-title { margin-bottom: 0.25rem; }
.resources-promo__body p { color: var(--bowa-muted); margin: 0; }

.widget { background: var(--bowa-white); border: 1px solid var(--bowa-border); border-radius: var(--bowa-radius-md); padding: 1.5rem; }
.widget__title, .footer-widget__title { font-size: 1rem; margin-bottom: 1rem; }
.category-filter__list li { border-bottom: 1px solid var(--bowa-border); }
.category-filter__list a { display: flex; justify-content: space-between; padding: 0.65rem 0; font-size: 0.92rem; }
.category-filter__list a.is-active, .category-filter__list a:hover { color: var(--bowa-navy); font-weight: 600; }
.category-filter__count { color: var(--bowa-muted); }
.category-filter__search { margin-top: 1.25rem; }

.empty-state { text-align: center; padding: 3rem 1rem; color: var(--bowa-muted); }
.empty-state--inline { padding: 1.5rem; background: var(--bowa-surface); border-radius: var(--bowa-radius-md); }
.empty-state__title { color: var(--bowa-navy); }

/* -------------------------------------------------------------------------
   13. Video / TV Page
   ------------------------------------------------------------------------- */
.featured-video { margin-bottom: 2.5rem; }
.featured-video__player { position: relative; aspect-ratio: 16/9; border-radius: var(--bowa-radius-lg); overflow: hidden; background: var(--bowa-navy); margin-bottom: 1rem; }
.featured-video__player iframe { width: 100%; height: 100%; border: 0; }
.featured-video__fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--bowa-white); }
.featured-video__fallback .icon { width: 64px; height: 64px; }
.featured-video__title { font-size: 1.3rem; }

.video-categories { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 2rem; }
.video-categories__item {
	padding: 0.5rem 1rem;
	border-radius: var(--bowa-radius-pill);
	border: 1px solid var(--bowa-border);
	font-size: 0.85rem; font-weight: 600;
}
.video-categories__item.is-active, .video-categories__item:hover { background: var(--bowa-navy); color: var(--bowa-white); border-color: var(--bowa-navy); }

.youtube-cta { text-align: center; margin-top: 3rem; padding: 3rem; background: var(--bowa-surface); border-radius: var(--bowa-radius-lg); }
.youtube-cta h2 { margin-bottom: 0.4rem; }
.youtube-cta p { color: var(--bowa-muted); margin-bottom: 1.5rem; }

/* -------------------------------------------------------------------------
   14. Connect / Events
   ------------------------------------------------------------------------- */
.featured-event { padding-block: clamp(2.5rem, 5vw, 4rem) 0; }
.featured-event__card {
	display: grid; grid-template-columns: 1fr 1.1fr;
	background: linear-gradient(135deg, var(--bowa-navy), var(--bowa-dark));
	border-radius: var(--bowa-radius-lg);
	overflow: hidden;
	color: var(--bowa-white);
}
.featured-event__image { background: var(--bowa-navy-700); min-height: 260px; }
.featured-event__image img { width: 100%; height: 100%; object-fit: cover; }
.featured-event__content { padding: clamp(2rem, 4vw, 3rem); }
.featured-event__title { color: var(--bowa-white); font-size: clamp(1.4rem, 2.8vw, 2rem); }
.featured-event__meta { display: grid; gap: 0.6rem; margin: 1.25rem 0; }
.featured-event__meta li { display: flex; align-items: center; gap: 0.5rem; color: rgba(255,255,255,0.85); }
.featured-event__meta .icon { color: var(--bowa-gold); width: 18px; height: 18px; }
.featured-event__excerpt { color: rgba(255,255,255,0.78); margin-bottom: 1.5rem; }

.past-events__list { display: grid; gap: 0.75rem; }
.past-events__item {
	display: grid; grid-template-columns: 100px 1fr auto; gap: 1rem; align-items: center;
	padding: 1rem 1.25rem;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-sm);
}
.past-events__date { font-weight: 700; color: var(--bowa-gold-dark); font-size: 0.85rem; }
.past-events__title { font-weight: 600; }
.past-events__location { color: var(--bowa-muted); font-size: 0.85rem; }

/* -------------------------------------------------------------------------
   15. Network Directory
   ------------------------------------------------------------------------- */
.directory-filters { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2rem; align-items: center; }
.directory-filters__search { flex: 1; min-width: 220px; }
.directory-filters__search input,
.directory-filters__selects select {
	width: 100%;
	padding: 0.7rem 1rem;
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-sm);
	background: var(--bowa-white);
}
.directory-filters__selects { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.directory-filters__selects select { min-width: 160px; }

/* -------------------------------------------------------------------------
   16. Contact Page
   ------------------------------------------------------------------------- */
.contact-page__grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 3rem; }
/* Two-forms variant (added v1.6.4) — General Contact | Partnerships side by
   side on the Contact page, equal-width columns rather than the info/form
   1fr/1.2fr split above. Declared here, before the "27. Responsive" media
   query below, so the shared mobile collapse rule (which this selector is
   added to) safely wins on narrow screens without needing its own
   duplicate override — see the CSS-specificity/source-order lesson noted
   throughout this stylesheet (search "specificity"). */
.contact-page__grid--forms { grid-template-columns: 1fr 1fr; }
.contact-forms .contact-page__form .form-placeholder { height: 100%; }
.contact-info-list { display: grid; gap: 1.25rem; margin: 1.5rem 0; }
.contact-info-list li { display: flex; gap: 1rem; align-items: flex-start; }
.contact-info-list__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--bowa-light-blue-50); color: var(--bowa-navy); flex-shrink: 0;
}
.contact-info-list__icon .icon { width: 20px; height: 20px; }
.contact-info-list__label { display: block; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--bowa-muted); }

/* Full .form-placeholder design system (panel, fields, buttons, validation,
   success/error states) moved to assets/css/forms.css in v1.6.1, since that
   stylesheet is conditionally loaded only on pages that can contain a real
   form — see functions.php. Kept out of main.css so pages with no form
   (e.g. the homepage) don't load form-specific CSS at all. */

/* -------------------------------------------------------------------------
   17. Status Pills
   ------------------------------------------------------------------------- */
.status-pill {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.4rem 0.85rem;
	border-radius: var(--bowa-radius-pill);
	font-size: 0.78rem; font-weight: 700;
	background: rgba(28,138,92,0.1); color: var(--bowa-success);
}
.status-pill__dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.status-pill--pending { background: rgba(184,134,11,0.1); color: var(--bowa-pending); }
.status-pill--expired { background: rgba(176,65,62,0.1); color: var(--bowa-expired); }
.status-pill--on-dark { background: rgba(255,255,255,0.14); color: var(--bowa-white); }
.status-pill--sm { font-size: 0.7rem; padding: 0.3rem 0.65rem; }
/* Added v1.6.15 for My Projects statuses beyond pending/active — reuses the
   existing brand color variables rather than introducing new ones. */
.status-pill--on-hold { background: rgba(184,134,11,0.1); color: var(--bowa-pending); }
.status-pill--completed { background: rgba(28,138,92,0.1); color: var(--bowa-success); }
.status-pill--cancelled { background: rgba(176,65,62,0.1); color: var(--bowa-expired); }

/* -------------------------------------------------------------------------
   18. Floating Widgets
   ------------------------------------------------------------------------- */
.floating-widgets {
	position: fixed;
	bottom: 1.25rem;
	z-index: 900;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.75rem;
}
/* Two independently-positioned widget stacks (added v1.6.5): Motivation
   bottom-left, Communication bottom-right, so they never occupy the same
   corner or risk overlapping each other. */
.floating-widgets--right { right: 1.25rem; }
.floating-widgets--left {
	left: 1.25rem;
	align-items: flex-start;
}
.floating-widgets--left .floating-panel { right: auto; left: 0; }
.floating-widget { position: relative; }
.floating-widget__trigger {
	display: inline-flex; align-items: center; gap: 0.5rem;
	background: var(--bowa-navy);
	color: var(--bowa-white);
	padding: 0.85rem 1.25rem;
	border-radius: var(--bowa-radius-pill);
	box-shadow: var(--bowa-shadow-lg);
	font-weight: 600; font-size: 0.88rem;
	transition: transform var(--bowa-transition), background var(--bowa-transition);
}
.floating-widget__trigger:hover { background: var(--bowa-navy-800); transform: translateY(-2px); }
.floating-widget__trigger--round { padding: 0.9rem; border-radius: 50%; background: var(--bowa-gold); color: var(--bowa-dark); }
.floating-widget__trigger--round:hover { background: var(--bowa-gold-dark); }

.floating-panel {
	position: absolute;
	bottom: calc(100% + 0.75rem);
	right: 0;
	width: min(320px, 88vw);
	background: var(--bowa-white);
	border-radius: var(--bowa-radius-md);
	box-shadow: var(--bowa-shadow-lg);
	border: 1px solid var(--bowa-border);
	overflow: hidden;
}
.floating-panel[hidden] { display: none; }
.floating-panel__header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--bowa-border); }
.floating-panel__title { font-size: 0.98rem; margin: 0; }
.floating-panel__close { padding: 0.3rem; }
.floating-panel__close .icon { width: 18px; height: 18px; }
.floating-panel__body { padding: 1.25rem; }
.floating-panel__quote { font-style: italic; color: var(--bowa-dark); margin: 0; }

.floating-panel--menu { padding: 0.5rem; }
.floating-panel__link {
	display: flex; align-items: center; gap: 0.75rem;
	padding: 0.7rem 0.85rem;
	border-radius: var(--bowa-radius-sm);
	font-weight: 600; font-size: 0.9rem;
}
.floating-panel__link:hover { background: var(--bowa-surface); }
.floating-panel__link .icon { width: 18px; height: 18px; color: var(--bowa-navy); }

@media (max-width: 600px) {
	.floating-widgets { bottom: 1rem; }
	.floating-widgets--right { right: 1rem; }
	.floating-widgets--left { left: 1rem; }
	.floating-widget__trigger span { display: none; }
	.floating-widget__trigger { padding: 0.9rem; border-radius: 50%; }
}

/* -------------------------------------------------------------------------
   19. Social Icons
   ------------------------------------------------------------------------- */
.social-icons { display: flex; gap: 0.6rem; margin-top: 1rem; }
.social-icons a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; border-radius: 50%;
	border: 1px solid var(--bowa-border);
	color: var(--bowa-navy);
	transition: background var(--bowa-transition), color var(--bowa-transition);
}
.social-icons a .icon { width: 16px; height: 16px; }
.social-icons a:hover { background: var(--bowa-navy); color: var(--bowa-white); }
.social-icons--footer a { border-color: rgba(255,255,255,0.2); color: var(--bowa-white); }
.social-icons--footer a:hover { background: var(--bowa-gold); color: var(--bowa-dark); border-color: var(--bowa-gold); }

/* Contact page's dedicated "Follow BOWestAfrica" section (moved below the
   forms — v1.6.9) — centers the icon row under its centered heading. Only
   applies inside this one section; every other .social-icons usage
   (currently just the footer) is unaffected. */
.contact-social-section .social-icons { justify-content: center; }

/* -------------------------------------------------------------------------
   20. Footer
   ------------------------------------------------------------------------- */
.site-footer { background: var(--bowa-navy); color: rgba(255,255,255,0.85); padding-top: clamp(3rem, 6vw, 5rem); }
.site-footer a:hover { color: var(--bowa-gold); }
.site-footer__top { display: grid; grid-template-columns: 1.2fr 2fr; gap: 3rem; padding-bottom: 3rem; border-bottom: 1px solid rgba(255,255,255,0.12); }
.site-footer .site-logo__line--primary { color: var(--bowa-white); }
.site-footer__headquarters { margin: 0.85rem 0 0; color: rgba(255,255,255,0.75); font-size: 0.88rem; font-weight: 600; letter-spacing: 0.01em; }
.site-footer__tagline { margin: 1rem 0; color: rgba(255,255,255,0.65); max-width: 32ch; }
.site-footer__columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.site-footer__heading { color: var(--bowa-white); font-size: 0.92rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 1.1rem; }
.site-footer__links, .site-footer__contact { display: grid; gap: 0.7rem; font-size: 0.92rem; }
.site-footer__bottom { display: flex; justify-content: space-between; align-items: center; padding-block: 1.5rem; font-size: 0.82rem; color: rgba(255,255,255,0.55); flex-wrap: wrap; gap: 1rem; }
.site-footer__legal { display: flex; gap: 1.25rem; }
.footer-widget { margin-top: 1.5rem; }

/* -------------------------------------------------------------------------
   21. Member Dashboard (compact base rules — see member-dashboard.css for
   the full, conditionally-loaded dashboard system)
   ------------------------------------------------------------------------- */
.bowa-member-app .site-main { background: var(--bowa-surface); }

/* -------------------------------------------------------------------------
   22. WooCommerce lightweight base (see woocommerce.css for full styling)
   ------------------------------------------------------------------------- */
.woocommerce-page-wrap { }

/* -------------------------------------------------------------------------
   23. 404
   ------------------------------------------------------------------------- */
.error-404 { max-width: 560px; margin-inline: auto; }
.error-404__title { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.error-404__text { color: var(--bowa-muted); margin-bottom: 2rem; }
.error-404__actions { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 2rem; }
.error-404__search { max-width: 420px; margin-inline: auto; }

/* -------------------------------------------------------------------------
   24. Search form
   ------------------------------------------------------------------------- */
.search-form { display: flex; border: 1px solid var(--bowa-border); border-radius: var(--bowa-radius-sm); overflow: hidden; background: var(--bowa-white); }
.search-form__input { flex: 1; border: none; padding: 0.8rem 1rem; }
.search-form__input:focus { outline: none; }
.search-form__submit { padding: 0 1.1rem; background: var(--bowa-navy); color: var(--bowa-white); }
.search-form__submit .icon { width: 18px; height: 18px; }

/* -------------------------------------------------------------------------
   25. Comments
   ------------------------------------------------------------------------- */
.comments-area { margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid var(--bowa-border); }
.comment-list { display: grid; gap: 1.5rem; margin: 1.5rem 0; }
.comment-list .children { margin-top: 1.5rem; margin-left: 2.5rem; display: grid; gap: 1.5rem; }
.comment-body { display: flex; gap: 1rem; }
.comment-author .avatar { border-radius: 50%; }
.comment-metadata { font-size: 0.8rem; color: var(--bowa-muted); }
.comment-form input, .comment-form textarea {
	width: 100%; padding: 0.75rem 1rem;
	border: 1px solid var(--bowa-border); border-radius: var(--bowa-radius-sm);
	margin-bottom: 1rem;
}
.comment-reply-title { font-size: 1.2rem; }

/* -------------------------------------------------------------------------
   26. About page columns / misc
   ------------------------------------------------------------------------- */
.who-we-are__grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 3rem; align-items: center; }

/* Founding Membership: content|photo grid inside the existing dark card
   (v1.3.2) — content stays left/larger, the new membership photo sits
   right/smaller as a square, matching the Who We Are photo treatment.
   Declared here (not further down) so the shared collapse rule below
   still wins the cascade on narrow screens. */
.membership-preview__grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: center; }
.stat-card {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-lg);
	padding: 2rem;
	text-align: center;
	box-shadow: var(--bowa-shadow-md);
}
.stat-card__number { display: inline-flex; color: var(--bowa-gold-dark); margin-bottom: 0.75rem; }
.stat-card__number .icon { width: 40px; height: 40px; }
.stat-card__label { display: block; font-weight: 700; color: var(--bowa-navy); }

/* -------------------------------------------------------------------------
   27. Responsive
   ------------------------------------------------------------------------- */
@media (max-width: 960px) {
	.two-col, .who-we-are__grid, .membership-preview__grid, .about-intro__grid, .membership-plan__grid, .contact-page__grid, .contact-page__grid--forms, .featured-article, .featured-event__card, .page-hero__grid, .comparison-grid { grid-template-columns: 1fr; }
	/* The image-left modifiers (added v1.6.2) set grid-template-columns with
	   higher selector specificity than the row above, so without this they'd
	   win even inside this mobile breakpoint and leave a cramped two-column
	   grid on small screens. Force both image-left variants back to a single
	   stacked column, and cancel the desktop order:-1 flip so content still
	   reads title-first, image-second on mobile — consistent with every
	   other stacked section on the site. */
	.page-hero--image-left .page-hero__grid,
	.membership-plan__grid--image-left { grid-template-columns: 1fr; }
	.page-hero--image-left .page-hero__visual,
	.membership-plan__grid--image-left .membership-plan__visual { order: 0; }
	.insights-layout { grid-template-columns: 1fr; }
	.insights-layout__sidebar { position: static; }
	.article-single__layout { grid-template-columns: 1fr; }
	.article-single__share-rail { position: static; }
	.article-single__share-rail .social-share { flex-direction: row; justify-content: center; margin-bottom: 1.5rem; }
	.site-footer__top { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.site-footer__columns { grid-template-columns: 1fr 1fr; }
	.section-heading { flex-direction: column; align-items: flex-start; }
	.membership-preview__actions { flex-direction: column; align-items: flex-start; }
	.past-events__item { grid-template-columns: 1fr; text-align: left; }
}

@media (max-width: 480px) {
	.site-footer__columns { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   19. Plugin-Integration Pass — pricing, disabled/plugin-ready states,
   member-area utility screens (My Profile, My Membership, My Projects,
   Notifications, Service Request, Resources), submenu dropdowns for the
   no-menu-assigned fallback nav.
   ------------------------------------------------------------------------- */

/* Disabled / plugin-ready control — used instead of a dead href="#" */
.btn--disabled {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15rem;
	background: var(--bowa-surface);
	color: var(--bowa-muted);
	border: 1px dashed var(--bowa-border);
	cursor: not-allowed;
	text-align: center;
}
.btn--disabled:hover { transform: none; box-shadow: none; }
.btn--disabled__note { font-size: 0.72rem; font-weight: 400; opacity: 0.85; max-width: 32ch; }

/* Pricing tiers (service pages) */
.pricing-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1.25rem;
	margin-top: 1.5rem;
}
.pricing-tier {
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 1.5rem;
	text-align: center;
}
.pricing-tier--featured {
	border-color: var(--bowa-gold);
	box-shadow: var(--bowa-shadow-md);
	transform: translateY(-4px);
}
.pricing-tier__name { font-size: 1rem; font-weight: 700; color: var(--bowa-navy); margin-bottom: 0.5rem; }
.pricing-tier__price { margin-bottom: 0.5rem; }
.pricing-tier__amount { font-size: 1.6rem; font-weight: 800; color: var(--bowa-navy); font-family: var(--bowa-font-heading); }
.pricing-tier__period { font-size: 0.8rem; color: var(--bowa-muted); display: block; }
.pricing-tier__text { font-size: 0.85rem; color: var(--bowa-muted); }
.pricing-note { margin-top: 1rem; font-size: 0.82rem; color: var(--bowa-muted); text-align: center; }

/* Event pricing / dual CTAs */
.featured-event__pricing { display: flex; gap: 1rem; list-style: none; margin: 1rem 0; flex-wrap: wrap; }
.featured-event__pricing li { display: flex; align-items: center; gap: 0.5rem; color: var(--bowa-white); font-size: 0.9rem; }
.featured-event__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.event-card__price { font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.event-card__actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* Service Request page */
.service-request-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.service-request-picker__item {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-start;
	padding: 1.25rem;
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	background: var(--bowa-white);
}
.service-request-picker__item.is-selected { border-color: var(--bowa-gold); box-shadow: var(--bowa-shadow-sm); }
.service-request-picker__icon { color: var(--bowa-light-blue); }
.service-request-picker__icon .icon { width: 28px; height: 28px; }

/* Contact offices */
.contact-offices { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.25rem; margin: 1.5rem 0; }
.contact-offices__item { padding: 1.25rem; background: var(--bowa-surface); border-radius: var(--bowa-radius-md); }
.contact-offices__title { display: flex; align-items: center; gap: 0.5rem; font-size: 0.95rem; margin-bottom: 0.5rem; color: var(--bowa-navy); }
.contact-offices__title .icon { width: 18px; height: 18px; }

/* My Profile */
.profile-summary { text-align: center; margin-bottom: 2rem; }
.profile-summary__avatar {
	width: 88px; height: 88px; border-radius: 50%;
	background: var(--bowa-navy);
	color: var(--bowa-white);
	display: flex; align-items: center; justify-content: center;
	font-size: 2rem; font-weight: 700;
	margin: 0 auto 1rem;
	overflow: hidden;
}
.profile-summary__avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-summary__name { font-family: var(--bowa-font-heading); font-size: 1.4rem; margin-bottom: 0.5rem; }

/* Member directory type badge */
.member-preview-card { position: relative; }
.member-preview-card__type {
	position: absolute; top: 0.85rem; right: 0.85rem;
	font-size: 0.65rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	padding: 0.2rem 0.55rem;
	border-radius: var(--bowa-radius-pill);
	background: var(--bowa-light-blue-50); color: var(--bowa-navy-700);
	max-width: 62%;
	text-align: right;
}

/* My Projects */
.project-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.25rem; }
.project-card { background: var(--bowa-white); border: 1px solid var(--bowa-border); border-radius: var(--bowa-radius-md); padding: 1.5rem; }
.project-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 0.75rem; }
.project-card__header h3 { font-size: 1.05rem; }
.project-card__meta { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1rem; font-size: 0.85rem; color: var(--bowa-muted); }
.project-card__meta li { display: flex; align-items: center; gap: 0.5rem; }
.project-card__meta .icon { width: 16px; height: 16px; }
.project-card__progress { height: 8px; border-radius: var(--bowa-radius-pill); background: var(--bowa-surface); overflow: hidden; margin-bottom: 0.35rem; }
.project-card__progress span { display: block; height: 100%; background: var(--bowa-gold); }
.project-card__progress-label { font-size: 0.78rem; color: var(--bowa-muted); margin-bottom: 1rem; }

/* Project detail page (added v1.6.15) */
.project-detail__summary { display: flex; gap: 1.5rem; flex-wrap: wrap; padding: 1.5rem; background: var(--bowa-white); border: 1px solid var(--bowa-border); border-radius: var(--bowa-radius-md); margin-bottom: 1.5rem; }
.project-detail__image { width: 220px; max-width: 100%; height: 150px; object-fit: cover; border-radius: var(--bowa-radius-md); flex-shrink: 0; }
.project-detail__summary-body { flex: 1; min-width: 240px; }
.project-detail__summary-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 0.35rem; }
.project-detail__summary-header h2 { font-size: 1.4rem; margin: 0; }
.project-detail__code { font-size: 0.78rem; color: var(--bowa-muted); margin-bottom: 0.75rem; }
.project-detail__latest-update { font-size: 0.9rem; margin-top: 0.5rem; }
.project-detail__quicknav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.project-detail__quicknav a { padding: 0.4rem 0.9rem; border-radius: var(--bowa-radius-pill); background: var(--bowa-surface); font-size: 0.82rem; font-weight: 600; color: var(--bowa-navy); }
.project-detail__quicknav a:hover { background: var(--bowa-light-blue-50); }
.project-detail__section { padding: 1.5rem 0; border-top: 1px solid var(--bowa-border); scroll-margin-top: 6.5rem; }
.project-detail__section h3 { margin-bottom: 0.75rem; }
.project-detail__short-description { font-weight: 600; margin-bottom: 0.75rem; }
.project-detail__overview-body { color: var(--bowa-muted); }
.project-detail__file-list { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
.project-detail__file-list li { display: flex; align-items: center; gap: 0.6rem; padding: 0.75rem 1rem; background: var(--bowa-surface); border-radius: var(--bowa-radius-md); }
.project-detail__file-list li span { flex: 1; }
.project-detail__file-list .icon { width: 18px; height: 18px; flex-shrink: 0; color: var(--bowa-muted); }
.project-detail__photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.75rem; }
.project-detail__photo { width: 100%; height: 140px; object-fit: cover; border-radius: var(--bowa-radius-md); }
.project-detail__video-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.project-detail__video iframe, .project-detail__video embed { width: 100%; aspect-ratio: 16 / 9; border-radius: var(--bowa-radius-md); }
.project-detail__milestone-list { list-style: none; display: flex; flex-direction: column; gap: 0.75rem; }
.project-detail__milestone-list li { display: flex; align-items: flex-start; gap: 0.6rem; }
.project-detail__milestone-list .icon { width: 18px; height: 18px; margin-top: 0.15rem; color: var(--bowa-success); flex-shrink: 0; }
.project-detail__milestone-date { display: block; font-size: 0.78rem; color: var(--bowa-muted); }
.project-detail__update-list { list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.project-detail__update-date { display: block; font-size: 0.78rem; font-weight: 700; color: var(--bowa-navy); margin-bottom: 0.2rem; }

/* Notifications */
.notification-list { list-style: none; display: flex; flex-direction: column; gap: 0.75rem; }
.notification-item {
	display: flex; align-items: flex-start; gap: 1rem;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	background: var(--bowa-white);
	position: relative;
}
.notification-item.is-unread { background: var(--bowa-light-blue-50); border-color: var(--bowa-light-blue-100); }
.notification-item__icon { color: var(--bowa-navy); flex-shrink: 0; }
.notification-item__body h3 { font-size: 0.95rem; margin-bottom: 0.25rem; }
.notification-item__body p { font-size: 0.85rem; color: var(--bowa-muted); margin-bottom: 0.35rem; }
.notification-item__time { font-size: 0.75rem; color: var(--bowa-muted); }
.notification-item__dot { position: absolute; top: 1.1rem; right: 1.1rem; width: 8px; height: 8px; border-radius: 50%; background: var(--bowa-gold); }

/* Dashboard panel header w/ "View All" link */
.dashboard-panel__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.dashboard-panel__header .dashboard-panel__title { margin-bottom: 0; }

/* Resources page */
.resource-library { min-height: 4rem; }
.resource-library > * + * { margin-top: 1rem; }

/* Fallback (no-menu-assigned) submenu — reuses the same visual language as
   the real wp_nav_menu dropdown so both code paths look identical. */
.primary-menu .menu-item--has-children { position: relative; }
.mobile-menu__list .sub-menu { list-style: none; padding-left: 1rem; }

/* -------------------------------------------------------------------------
   20. Trusted Businesses (business-discovery directory — not an investment
   product; cards never imply BOWestAfrica guarantees a listed business)
   ------------------------------------------------------------------------- */
.business-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--bowa-gap); }

/* Homepage preview: exact 4/2/1 columns, same pattern as .article-grid--home. */
.business-grid--home { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .business-grid--home { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .business-grid--home { grid-template-columns: 1fr; } }

.business-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 1.75rem;
	text-align: left;
	transition: box-shadow var(--bowa-transition), transform var(--bowa-transition);
}
.business-card:hover { box-shadow: var(--bowa-shadow-md); transform: translateY(-2px); }
.business-card__badge {
	position: absolute; top: 0.85rem; right: 0.85rem;
	font-size: 0.62rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	padding: 0.2rem 0.55rem;
	border-radius: var(--bowa-radius-pill);
	background: var(--bowa-gold-light); color: var(--bowa-navy-800);
	max-width: 62%;
	text-align: right;
}
.business-card__logo {
	width: 56px; height: 56px;
	border-radius: var(--bowa-radius-sm);
	background: var(--bowa-light-blue-50);
	color: var(--bowa-navy);
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 1.3rem;
	margin-bottom: 1rem;
	overflow: hidden;
}
.business-card__logo img { width: 100%; height: 100%; object-fit: cover; }
.business-card__name { font-size: 1.05rem; margin-bottom: 0.5rem; }
.business-card__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.75rem; }
.business-card__text { color: var(--bowa-muted); font-size: 0.88rem; margin-bottom: 1.25rem; }
.business-card .btn { margin-top: auto; }

.trusted-businesses-preview__cta { text-align: center; margin-top: 2.5rem; }

/* Trusted Businesses directory page reuses .directory-filters (see §"Network
   directory filters") for the search/select filter bar — same visual
   language as the Network page, no duplicate filter-bar styling needed. */
.business-load-more { text-align: center; margin-top: 2.5rem; }
.business-load-more__note { margin: 0.75rem 0 0; font-size: 0.875rem; color: var(--bowa-muted); }

/* Trusted Business detail-ready layout */
.business-profile__header { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 2rem; flex-wrap: wrap; }
.business-profile__logo { width: 88px; height: 88px; border-radius: var(--bowa-radius-md); background: var(--bowa-light-blue-50); color: var(--bowa-navy); display: flex; align-items: center; justify-content: center; font-size: 2rem; font-weight: 700; overflow: hidden; }
.business-profile__logo img { width: 100%; height: 100%; object-fit: cover; }
.business-profile__meta { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
.business-profile__section { margin-bottom: 2rem; }
.business-profile__section h2 { font-size: 1.2rem; margin-bottom: 0.75rem; }
.business-profile__services { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.business-profile__services li { background: var(--bowa-surface); border-radius: var(--bowa-radius-pill); padding: 0.4rem 0.9rem; font-size: 0.85rem; }
.business-profile__photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.75rem; }
.business-profile__photos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--bowa-radius-sm); }

/* Network Member detail-ready layout (added v1.6.6) — deliberately mirrors
   .business-profile above, class-for-class, so the two directories' detail
   pages feel like one consistent system. */
.member-profile__header { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 2rem; flex-wrap: wrap; }
.member-profile__avatar { width: 88px; height: 88px; border-radius: 50%; background: var(--bowa-light-blue-50); color: var(--bowa-navy); display: flex; align-items: center; justify-content: center; font-size: 2rem; font-weight: 700; overflow: hidden; flex-shrink: 0; }
.member-profile__avatar img { width: 100%; height: 100%; object-fit: cover; }
.member-profile__name { margin: 0 0 0.25rem; }
.member-profile__role { margin: 0; color: var(--bowa-text-muted, #5b6472); }
.member-profile__meta { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
.member-profile__section { margin-bottom: 2rem; }
.member-profile__section h2 { font-size: 1.2rem; margin-bottom: 0.75rem; }
.member-profile__back { margin-bottom: 1.5rem; }

/* -------------------------------------------------------------------------
   21. Social & Media Hub (BOWestAfrica TV page + homepage "Connect With
   BOWestAfrica" section) — cards only ever render for a platform whose URL
   is configured in Customizer → BOWestAfrica Branding → Social & Video Links.
   ------------------------------------------------------------------------- */
.social-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--bowa-gap); }

/* Homepage preview: 4 columns desktop / 2 tablet / 1 mobile, same pattern as
   .article-grid--home and .business-grid--home. */
.social-grid--home { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .social-grid--home { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .social-grid--home { grid-template-columns: 1fr; } }

.social-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-md);
	padding: 1.75rem;
	text-align: left;
	transition: box-shadow var(--bowa-transition), transform var(--bowa-transition);
}
.social-card:hover { box-shadow: var(--bowa-shadow-md); transform: translateY(-2px); }
.social-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: var(--bowa-radius-md);
	background: var(--bowa-light-blue-50);
	color: var(--bowa-navy);
	margin-bottom: 1rem;
}
.social-card__icon .icon { width: 24px; height: 24px; }
.social-card__name { font-size: 1.05rem; margin-bottom: 0.4rem; }
.social-card__text { color: var(--bowa-muted); font-size: 0.88rem; margin-bottom: 1.25rem; }
.social-card .btn { margin-top: auto; }

/* Handle-only "coming soon" state (added v1.6.5) — a platform with a known
   @handle but no verified URL yet still renders a full card (icon, name,
   handle), just without a clickable CTA, so nothing is ever an invented
   or uncertain destination. */
.social-card__handle { color: var(--bowa-navy); font-weight: 600; font-size: 0.85rem; margin: -0.75rem 0 1.25rem; }
.social-card--pending { opacity: 0.85; }
.social-card__pending-label {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--bowa-muted);
	padding: 0.5rem 0;
}

/* Homepage featured-video teaser — lightweight thumbnail, never an embedded
   player, so the homepage never carries more than one heavy media element. */
.social-connect__featured {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-top: 2.5rem;
	padding: 1.5rem;
	background: var(--bowa-white);
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-lg);
	flex-wrap: wrap;
}
.social-connect__featured-thumb { position: relative; display: block; flex: 0 0 240px; aspect-ratio: 16/9; border-radius: var(--bowa-radius-md); overflow: hidden; background: var(--bowa-navy); }
.social-connect__featured-thumb img { width: 100%; height: 100%; object-fit: cover; }
.social-connect__featured-thumb-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--bowa-navy), var(--bowa-navy-700)); }
.social-connect__featured-play {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	background: rgba(6,20,40,0.25);
	color: var(--bowa-white);
}
.social-connect__featured-play .icon { width: 40px; height: 40px; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.4)); }
.social-connect__featured-body { flex: 1 1 240px; }
.social-connect__featured-body h3 { font-size: 1.15rem; margin: 0.25rem 0 1rem; }

/* BOWestAfrica TV page: social-channels block sits above the video section,
   reusing .social-grid without the homepage's fixed column cap. */
.social-channels { padding-bottom: 0; }

/* -------------------------------------------------------------------------
   22. Homepage Photography — Hero background photo + Who We Are photo
   (Customizer: BOWestAfrica Branding > Homepage Imagery). Photography only;
   no structural/layout changes beyond hosting the images in the existing
   .hero__media and .who-we-are__visual slots.
   ------------------------------------------------------------------------- */

/* Hero: photo fills .hero__media behind the pre-existing gradient/pattern
   layers (DOM order keeps them stacked correctly with no new z-index
   needed). Overlay opacity lives here in CSS — never baked into the image
   file — so it stays easy to adjust later. object-position is biased
   slightly above center to favor faces/upper bodies over the lower portion
   of the source photo; retune if a different hero photo is uploaded. */
.hero__photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
}
.hero__gradient {
	background: linear-gradient(
		100deg,
		rgba(10, 47, 99, 0.92) 0%,
		rgba(10, 47, 99, 0.82) 32%,
		rgba(6, 20, 40, 0.55) 62%,
		rgba(6, 20, 40, 0.30) 100%
	);
}
.hero__pattern { opacity: 0.6; }

@media (max-width: 720px) {
	/* Hero content stacks full-width on small screens, so there's no
	   left/right split to fade across — use a more uniform, higher-opacity
	   overlay instead to keep the headline and CTAs reliably readable. */
	.hero__gradient {
		background: linear-gradient(
			180deg,
			rgba(6, 20, 40, 0.82) 0%,
			rgba(10, 47, 99, 0.88) 55%,
			rgba(10, 47, 99, 0.92) 100%
		);
	}
}

/* Who We Are: square photo inside the existing content|visual grid column
   (visual column first — image on the left on desktop, v1.3.2), with the
   pre-existing floating stat-card badge overlapping its outer (left) corner
   — a restrained "photo + credential" composition using only existing
   design tokens (radius, shadow, spacing). */
.who-we-are__visual { position: relative; }
.who-we-are__photo-frame {
	aspect-ratio: 1 / 1;
	border-radius: var(--bowa-radius-lg);
	overflow: hidden;
	box-shadow: var(--bowa-shadow-lg);
}
.who-we-are__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.stat-card--float {
	position: absolute;
	left: -1.5rem;
	bottom: -1.5rem;
	max-width: 220px;
	z-index: 1;
}

@media (max-width: 960px) {
	.stat-card--float { left: 1rem; bottom: -1.25rem; }
}
@media (max-width: 480px) {
	/* Let the badge return to normal document flow on narrow phones rather
	   than floating off the edge of a full-width stacked photo. */
	.stat-card--float { position: static; max-width: none; margin-top: -2rem; margin-inline: 1rem; }
}

.membership-preview__photo-frame {
	aspect-ratio: 1 / 1;
	border-radius: var(--bowa-radius-lg);
	overflow: hidden;
	box-shadow: var(--bowa-shadow-lg);
}
.membership-preview__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* About page: editorial intro (content | photo), same visual language as
   the homepage's photo-frame + shadow treatment used above. */
.about-intro__grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: center; }
.about-intro__visual { position: relative; }
.about-intro__photo-frame {
	aspect-ratio: 1 / 1;
	border-radius: var(--bowa-radius-lg);
	overflow: hidden;
	box-shadow: var(--bowa-shadow-lg);
}
.about-intro__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Pre-existing gap (found during v1.6.2 mobile verification, fixed here):
   .about-intro__grid is defined above with the same selector specificity as
   its collapse rule in the "27. Responsive" media query, but appears later
   in the file, so the plain CSS cascade let this 2-column rule win even on
   phones — the section never actually stacked below 960px. Re-declaring the
   collapse here, after this rule, restores the single-column mobile layout
   used by every other section on the site. */
@media (max-width: 960px) {
	.about-intro__grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   28. Newsletter signup (v1.6.3) — footer "compact" instance and the
   Contact-page "prominent" instance, both rendered by the same
   bowa_render_newsletter_form() (see inc/newsletter.php). Styled here,
   directly, rather than in forms.css: the footer renders on every page and
   forms.css is only conditionally enqueued on six templates, and the
   newsletter markup isn't wrapped in .form-placeholder anyway. A small
   amount of visual language is intentionally duplicated from forms.css so
   both instances still read as the same design system.
   ------------------------------------------------------------------------- */
.bowa-newsletter__heading {
	color: var(--bowa-navy);
	font-size: 1rem;
	margin-bottom: 0.4rem;
}
.bowa-newsletter__intro {
	font-size: 0.88rem;
	color: var(--bowa-muted);
	margin-bottom: 1rem;
	max-width: 46ch;
}
.bowa-newsletter__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
.bowa-newsletter .bowa-field { margin-bottom: 0; }
.bowa-newsletter label {
	display: block;
	font-weight: 600;
	font-size: 0.82rem;
	margin-bottom: 0.35rem;
}
.bowa-newsletter input[type="text"],
.bowa-newsletter input[type="email"] {
	width: 100%;
	padding: 0.7rem 0.9rem;
	border-radius: var(--bowa-radius-sm);
	font-size: 0.9rem;
	font-family: inherit;
}
.bowa-newsletter input:focus {
	outline: none;
	box-shadow: 0 0 0 3px var(--bowa-light-blue-50);
}
.bowa-newsletter .bowa-field--hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	margin: 0;
}
.bowa-newsletter .bowa-field--error input { border-color: var(--bowa-expired); }
.bowa-newsletter .bowa-field__error {
	color: var(--bowa-expired);
	font-size: 0.76rem;
	margin-top: 0.3rem;
}
.bowa-newsletter__consent {
	font-size: 0.76rem;
	margin: 0.75rem 0 1rem;
	max-width: 52ch;
}
.bowa-newsletter__success {
	font-weight: 600;
	color: var(--bowa-success);
}

/* General Turnstile-verification error banner (added v1.6.7) — same role as
   .bowa-form-error in forms.css, duplicated here in plain form since
   forms.css isn't loaded on every page but the footer newsletter form is. */
.bowa-newsletter__error {
	padding: 0.75rem 1rem;
	margin: 0 0 0.85rem;
	border-radius: var(--bowa-radius-sm);
	background: rgba(214,69,69,0.08);
	border: 1px solid var(--bowa-expired);
	color: var(--bowa-expired);
	font-size: 0.82rem;
	font-weight: 600;
}

/* Cloudflare Turnstile widget wrapper (added v1.6.7) — see the matching rule
   in forms.css for the full explanation of data-size="flexible". */
.bowa-newsletter .bowa-field--turnstile { margin: 0.25rem 0 1rem; }
.bowa-newsletter .bowa-field--turnstile .cf-turnstile { width: 100%; }

/* Compact (footer) variant — dark background, stacked fields, kept short
   so the "Get in Touch" column and the footer overall don't grow tall. */
.bowa-newsletter--compact { margin-top: 1.5rem; max-width: 320px; }
.bowa-newsletter--compact .bowa-newsletter__heading { color: var(--bowa-white); font-size: 0.92rem; }
.bowa-newsletter--compact .bowa-newsletter__intro { color: rgba(255,255,255,0.65); font-size: 0.82rem; margin-bottom: 0.85rem; }
.bowa-newsletter--compact .bowa-newsletter__row { grid-template-columns: 1fr; gap: 0.6rem; }
.bowa-newsletter--compact label { color: rgba(255,255,255,0.85); font-size: 0.78rem; }
.bowa-newsletter--compact input[type="text"],
.bowa-newsletter--compact input[type="email"] {
	border: 1px solid rgba(255,255,255,0.2);
	background: rgba(255,255,255,0.06);
	color: var(--bowa-white);
}
.bowa-newsletter--compact input::placeholder { color: rgba(255,255,255,0.5); }
.bowa-newsletter--compact .bowa-newsletter__consent { color: rgba(255,255,255,0.5); }
.bowa-newsletter--compact .bowa-newsletter__success { color: var(--bowa-white); font-size: 0.85rem; }
.bowa-newsletter--compact .bowa-newsletter__error { background: rgba(214,69,69,0.15); font-size: 0.78rem; }
.bowa-newsletter--compact button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-top: 0.25rem;
}

/* Prominent (Contact page) variant — light card, side-by-side fields. */
.bowa-newsletter--prominent {
	text-align: center;
	max-width: 640px;
	margin-inline: auto;
}
.bowa-newsletter--prominent .bowa-newsletter__intro { margin-inline: auto; }
.bowa-newsletter--prominent .bowa-newsletter__consent { margin-inline: auto; text-align: center; color: var(--bowa-muted); }
.bowa-newsletter--prominent .bowa-newsletter__row { text-align: left; }
.bowa-newsletter--prominent input[type="text"],
.bowa-newsletter--prominent input[type="email"] {
	border: 1px solid var(--bowa-border);
	background: var(--bowa-white);
}

@media (max-width: 640px) {
	.bowa-newsletter--prominent .bowa-newsletter__row,
	.bowa-newsletter__row { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   29. Membership "Why Join" — text | image (added v1.6.4)
   TEXT LEFT | IMAGE RIGHT on desktop. The image is intentionally NOT forced
   into a square/cropped frame like the theme's other managed photos (see
   bowa-membership-card image size in functions.php, registered with hard
   crop OFF) — a membership-card graphic needs its own proportions
   preserved, not distorted or cropped into someone else's aspect ratio.
   ------------------------------------------------------------------------- */
.membership-why-join__grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: center; text-align: left; }
.membership-why-join__content .section-lead { margin-bottom: 0; }
.membership-why-join__visual { display: flex; justify-content: center; }
.membership-why-join__card-frame {
	width: 100%;
	max-width: 440px;
	border-radius: var(--bowa-radius-lg);
	overflow: hidden;
	box-shadow: var(--bowa-shadow-lg);
	line-height: 0;
	/* Reserves the frame's height using the bowa-membership-card image
	   size's own ratio (1000/630, registered in functions.php) before the
	   (loading="lazy") image finishes loading, so the section never
	   momentarily collapses to zero height and re-flows once it loads. */
	aspect-ratio: 1000 / 630;
}
.membership-why-join__card-photo {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

/* This selector is declared here, after the "27. Responsive" media query
   above rather than before it (like most grids in this file), so it needs
   its OWN explicit mobile override rather than relying on that shared
   list — the same same-or-higher-specificity/source-order rule documented
   next to .about-intro__grid earlier in this file. Without this, the rule
   above would win on mobile despite the shared collapse rule, exactly like
   the v1.6.2 bug it mirrors. */
@media (max-width: 960px) {
	.membership-why-join__grid { grid-template-columns: 1fr; }
}


/* -------------------------------------------------------------------------
   30. Membership Plans — Silver / Gold / Diamond choice cards (v1.7.3)
   Plans are commerce/benefit choices; card designs remain reusable visual
   categories and membership status remains separate server-side state.
   ------------------------------------------------------------------------- */
.membership-plan-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
	align-items: stretch;
}
.membership-plan-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	border-top: 4px solid var(--bowa-light-blue);
}
.membership-plan-card .checklist { flex: 1; margin-bottom: 1.5rem; }
.membership-plan-card .btn { align-self: flex-start; margin-top: auto; }
.membership-plan-card__card-type {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	margin: 0 0 0.85rem;
	padding: 0.3rem 0.65rem;
	border-radius: 999px;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: rgba(10,47,99,0.07);
	color: var(--bowa-navy);
}
.membership-plan-card--silver { border-top-color: #9aa8b5; }
.membership-plan-card--gold { border-top-color: var(--bowa-gold); }
.membership-plan-card--diamond { border-top-color: var(--bowa-light-blue); }
@media (max-width: 960px) {
	.membership-plan-grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   31. Membership plan refinements — v1.7.4
   ------------------------------------------------------------------------- */
.membership-plan-card__badge {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	margin-bottom: 0.75rem;
	padding: 0.35rem 0.7rem;
	border-radius: 999px;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: rgba(10,47,99,0.08);
	color: var(--bowa-navy);
}
.membership-plan-card.is-recommended {
	box-shadow: 0 18px 45px rgba(10,47,99,0.14);
	transform: translateY(-4px);
}
.membership-plan-card.is-recommended .membership-plan-card__badge {
	background: var(--bowa-gold);
	color: #111;
}
.membership-plan-card__period { margin-top: -0.35rem; margin-bottom: 1rem; color: var(--bowa-text-muted); }
.membership-plan-card__benefits { padding-left: 1.1rem; }
.membership-plan-card__unavailable { margin-top: auto; font-weight: 700; color: var(--bowa-text-muted); }
.membership-plan-card--silver { border-top-color: #9aa8b5; }
.membership-plan-card--gold { border-top-color: var(--bowa-gold); }
.membership-plan-card--diamond { border-top-color: var(--bowa-light-blue); }
@media (max-width: 960px) {
	.membership-plan-card.is-recommended { transform: none; }
}

/* v1.7.13 — membership renewal / plan-change presentation */
.membership-plan-change-note {
	max-width: 920px;
	margin: 1.4rem auto 0;
	padding: 0.9rem 1rem;
	border-radius: var(--bowa-radius-sm);
	background: rgba(10,47,99,0.055);
	color: var(--bowa-muted);
	font-size: 0.86rem;
	line-height: 1.6;
	text-align: center;
}
.membership-lifecycle-notice { margin-bottom: 1.4rem; }
.membership-lifecycle-notice--expired { border-color: rgba(176,65,62,0.2); }
.membership-lifecycle-notice--renewal { border-color: rgba(201,162,75,0.3); }
.membership-change-plans .membership-plan-card { height: 100%; }

/* --------------------------------------------------------------------------
 * Native Events — v1.7.26
 * ----------------------------------------------------------------------- */
.event-detail-hero {
	background: linear-gradient(135deg, var(--bowa-navy) 0%, #0d3d78 62%, #12548f 100%);
	color: var(--bowa-white);
	padding-block: clamp(3.25rem, 7vw, 6.5rem);
}
.event-detail-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.event-detail-hero__content,
.event-detail-hero__image,
.event-detail-layout > * { min-width: 0; }
.event-detail-hero h1 { color: var(--bowa-white); font-size: clamp(2.1rem, 5vw, 4.25rem); margin: .7rem 0 1rem; }
.event-detail-hero__lead { max-width: 760px; color: rgba(255,255,255,.84); font-size: clamp(1rem, 1.6vw, 1.18rem); }
.event-detail-hero__image { margin: 0; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 28px 70px rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.16); }
.event-detail-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.event-detail-meta { list-style: none; margin: 1.5rem 0 0; display: grid; gap: .7rem; }
.event-detail-meta li { display: flex; gap: .7rem; align-items: flex-start; color: rgba(255,255,255,.88); }
.event-detail-meta .icon { width: 19px; height: 19px; flex: 0 0 auto; color: var(--bowa-gold); margin-top: .12rem; }
.event-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 390px); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.event-detail-content.prose { max-width: none; }
.event-register-card { position: sticky; top: 104px; background: var(--bowa-white); border: 1px solid rgba(10,47,99,.12); border-radius: 22px; padding: clamp(1.4rem, 3vw, 2rem); box-shadow: 0 18px 48px rgba(10,47,99,.11); }
.event-register-card h2 { margin-top: .15rem; color: var(--bowa-navy); }
.event-register-card__member { background: rgba(200,150,47,.11); border-left: 4px solid var(--bowa-gold); padding: .85rem 1rem; border-radius: 0 10px 10px 0; }
.event-registration-form { display: grid; gap: .65rem; margin-top: 1.15rem; }
.event-registration-form label { font-weight: 700; color: var(--bowa-navy); font-size: .9rem; }
.event-registration-form input { width: 100%; border: 1px solid rgba(10,47,99,.2); border-radius: 10px; min-height: 46px; padding: .72rem .85rem; background: #fff; color: var(--bowa-dark); }
.event-registration-form input:focus { outline: 3px solid rgba(30,143,224,.18); border-color: var(--bowa-light-blue); }
.bowa-event-notice { border-radius: 12px; padding: .85rem 1rem; margin: 1rem 0; font-weight: 600; font-size: .9rem; }
.bowa-event-notice--success { background: #ecf9f1; color: #17623b; border: 1px solid #b9e8cc; }
.bowa-event-notice--info { background: #eef6ff; color: var(--bowa-navy); border: 1px solid #c9e2ff; }
.bowa-event-notice--error { background: #fff1f1; color: #8b2525; border: 1px solid #f2c5c5; }
.event-share { margin-top: clamp(2rem,5vw,4rem); padding-top: 2rem; border-top: 1px solid rgba(10,47,99,.12); }
.event-share h2 { margin-top: .1rem; }
.event-share__actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.event-share__button { appearance: none; border: 1px solid rgba(10,47,99,.16); background: #fff; color: var(--bowa-navy); border-radius: 999px; padding: .65rem .95rem; font-weight: 700; font-size: .86rem; line-height: 1; cursor: pointer; text-decoration: none; }
.event-share__button:hover,.event-share__button:focus-visible { background: var(--bowa-navy); color: #fff; border-color: var(--bowa-navy); }
.event-share__status { min-height: 1.4em; margin-top: .6rem; color: var(--bowa-muted); font-size: .82rem; }
.event-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
.event-card__image { display: block; }
.event-card__body { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.event-card__topline { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-bottom: .75rem; }
.event-card__pricing-row { display: grid; gap: .2rem; margin: auto 0 .95rem; padding-top: .75rem; font-size: .82rem; color: var(--bowa-muted); }
.event-card__actions { margin-top: auto; }
.event-card__actions .btn { width: 100%; justify-content: center; }
.btn--block { width: 100%; justify-content: center; }
.events-archive .page-hero--simple { background: linear-gradient(135deg,var(--bowa-navy),#0d477e); color:#fff; padding-block:clamp(3rem,6vw,5rem); }
.events-archive .page-hero--simple h1 { color:#fff; }
.events-archive .page-hero--simple p:not(.eyebrow) { max-width:720px;color:rgba(255,255,255,.82); }

@media (max-width: 900px) {
	.event-detail-hero__grid, .event-detail-layout { grid-template-columns: 1fr; }
	.event-detail-hero__image { max-width: 720px; width: 100%; }
	.event-register-card { position: static; }
}
@media (max-width: 600px) {
	.event-detail-hero { padding-block: 2.5rem; }
	.event-detail-hero__image { border-radius: 18px; }
	.event-share__actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
	.event-share__button { text-align: center; }
}

/* v1.7.28 — Event confirmed-registration state */
.event-rsvp-confirmed{text-align:center;padding:.4rem 0}.event-rsvp-confirmed__check{display:inline-flex;width:3rem;height:3rem;align-items:center;justify-content:center;border-radius:50%;background:#eaf7ef;color:#176b3a;font-size:1.45rem;font-weight:800;margin-bottom:.7rem}.event-rsvp-confirmed h3{color:var(--bowa-navy);margin-bottom:.35rem}.event-rsvp-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1rem 0}.event-rsvp-summary>div{padding:.7rem;border-radius:var(--bowa-radius-md);background:var(--bowa-surface)}.event-rsvp-summary dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--bowa-muted)}.event-rsvp-summary dd{font-weight:700;color:var(--bowa-navy);margin:0}.notifications-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.notifications-toolbar p{margin:0;color:var(--bowa-muted)}.notification-item__body h3 a{color:var(--bowa-navy)}@media(max-width:520px){.event-rsvp-summary{grid-template-columns:1fr}}

/* v1.7.34 — member dashboard global tools */
.bowa-world-tools__intro{margin-top:-.35rem;color:var(--color-text-muted,#5e6b7a)}
.bowa-world-tools__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.25rem}
.bowa-tool-card{border:1px solid rgba(10,47,99,.12);border-radius:16px;padding:1.15rem;background:#fff;box-shadow:0 8px 24px rgba(10,47,99,.06)}
.bowa-tool-card h3{margin:0 0 .85rem;color:#0a2f63;font-size:1rem}.bowa-tool-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}
.bowa-tool-row input,.bowa-tool-row select{min-height:42px;border:1px solid #ccd5df;border-radius:9px;padding:.55rem .65rem;background:#fff;max-width:100%}.bowa-tool-row input[type=number]{width:90px}.bowa-tool-row input[type=search]{flex:1;min-width:150px}
.bowa-tool-result{margin-top:.8rem;padding:.75rem;border-radius:10px;background:#f4f8fc;color:#0a2f63;font-weight:650;min-height:46px}.bowa-tool-result.is-error{color:#8a2d2d;background:#fff3f3}.bowa-world-clock{display:flex;justify-content:space-between;gap:1rem;padding:.62rem 0;border-bottom:1px solid #edf0f4}.bowa-world-clock strong{color:#0a2f63}.bowa-tool-note{font-size:.82rem;color:#66717f;margin:.75rem 0 0}
@media(max-width:980px){.bowa-world-tools__grid{grid-template-columns:1fr}}@media(max-width:520px){.bowa-tool-row{align-items:stretch}.bowa-tool-row input[type=search],.bowa-tool-row .btn{width:100%}}


/* v1.7.35 — Global tools button polish + public Resources tools */
.bowa-tool-action{appearance:none;-webkit-appearance:none;cursor:pointer;text-decoration:none;line-height:1.2;min-height:42px;box-shadow:0 5px 14px rgba(10,47,99,.13)}
.bowa-tool-action:hover{box-shadow:0 8px 20px rgba(10,47,99,.2)}
.bowa-tool-action:focus-visible{outline:3px solid rgba(200,150,47,.42);outline-offset:2px}
.bowa-public-tools .section-heading{max-width:760px;margin-inline:auto;margin-bottom:1.75rem}
.bowa-public-tools .section-heading p:last-child{color:var(--bowa-muted);max-width:680px;margin-inline:auto}
.bowa-public-tools .bowa-tool-card{min-width:0}
.bowa-public-tools .bowa-tool-card h3{font-size:1.1rem}
.bowa-public-tools .bowa-tool-note{margin:-.25rem 0 .9rem}
@media(max-width:520px){.bowa-tool-action{width:100%;white-space:normal;text-align:center}.bowa-public-tools .bowa-tool-row>span{align-self:center;text-align:center}}

/* v1.7.36 — personalized Business Time + tappable Resources cards */
.bowa-tool-card__heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}
.bowa-tool-card__heading h3{margin:0}
.bowa-tool-edit-toggle{appearance:none;border:0;background:transparent;color:var(--bowa-navy,#0a2f63);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:.25rem .1rem}
.bowa-tool-edit-toggle:hover{color:var(--bowa-gold,#c8962f)}
.bowa-tool-edit-toggle:focus-visible{outline:3px solid rgba(200,150,47,.35);outline-offset:3px;border-radius:4px}
.bowa-business-time-settings{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5eaf0}
.bowa-business-time-fields{display:grid;grid-template-columns:1fr;gap:.65rem;margin-bottom:.85rem}
.bowa-business-time-fields label{display:grid;gap:.3rem;color:#0a2f63;font-size:.78rem;font-weight:800}
.bowa-business-time-fields select{width:100%;min-height:42px;border:1px solid #ccd5df;border-radius:9px;padding:.55rem .65rem;background:#fff;color:#17263a}
.bowa-tool-inline-notice{margin:.65rem 0;padding:.65rem .75rem;border-radius:9px;font-size:.82rem;font-weight:750}
.bowa-tool-inline-notice.is-success{background:#edf9f2;color:#17623a;border:1px solid #c9ead7}
.bowa-tool-inline-notice.is-error{background:#fff3f3;color:#8a2d2d;border:1px solid #f1cccc}
.bowa-resource-link-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;cursor:pointer;min-width:0;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.bowa-resource-link-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(10,47,99,.12);border-color:rgba(200,150,47,.55)}
.bowa-resource-link-card:focus-visible{outline:3px solid rgba(200,150,47,.42);outline-offset:4px}
.bowa-resource-link-card .pillar-card__title,.bowa-resource-link-card .pillar-card__text{color:inherit}
.bowa-resource-link-card__cta{margin-top:auto;padding-top:.75rem;pointer-events:none}
@media(max-width:640px){.bowa-resource-link-grid{grid-template-columns:1fr}.bowa-resource-link-card{padding:1.05rem}.bowa-resource-link-card__cta{display:flex;justify-content:space-between;align-items:center;width:100%}.bowa-business-time-fields{grid-template-columns:1fr}}

/* v1.7.43 — member feedback + persistent collapsible dashboard */
.bowa-member-feedback{margin:0 0 18px;padding:13px 16px;border-radius:10px;font-weight:700;border:1px solid rgba(18,125,73,.24);background:#edf9f2;color:#126b42;box-shadow:0 5px 18px rgba(10,47,99,.06)}
.bowa-member-feedback.is-error{background:#fff1f1;color:#9b2626;border-color:rgba(155,38,38,.2)}
.bowa-member-feedback.is-hiding{opacity:0;transform:translateY(-4px);transition:.25s ease}
.bowa-dashboard-fold{margin:0 0 22px;border:1px solid rgba(10,47,99,.12);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(10,47,99,.06);overflow:hidden}
.bowa-dashboard-fold__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:0;background:#fff;color:#0a2f63;text-align:left;cursor:pointer}
.bowa-dashboard-fold__toggle:hover{background:#f7fbff}.bowa-dashboard-fold__toggle span:first-child{display:flex;flex-direction:column;gap:2px}.bowa-dashboard-fold__toggle small{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:#66788e}.bowa-dashboard-fold__toggle strong{font-size:1.08rem}.bowa-dashboard-fold__chevron{font-size:1.25rem;transition:transform .2s ease}.bowa-dashboard-fold.is-open .bowa-dashboard-fold__chevron{transform:rotate(180deg)}
.bowa-dashboard-fold__content{padding:0 18px 18px}.bowa-dashboard-fold__content>.dashboard-panel:first-child,.bowa-dashboard-fold__content>.dashboard-panels:first-child{margin-top:0}.bowa-dashboard-fold__content>.dashboard-panel:last-child,.bowa-dashboard-fold__content>.dashboard-panels:last-child{margin-bottom:0}
.bowa-dashboard-fold__content>.dashboard-panel{box-shadow:none;border-color:rgba(10,47,99,.09)}
.dashboard-quick-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.bowa-dashboard-fold__toggle{padding:15px 16px}.bowa-dashboard-fold__content{padding:0 12px 14px}.dashboard-quick-grid--compact{grid-template-columns:1fr}}

/* -------------------------------------------------------------------------
   v1.7.47 — Resources + member directory alignment polish
   ------------------------------------------------------------------------- */
.bowa-resource-links__heading {
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: .5rem;
	max-width: 760px;
	margin-bottom: 2rem;
}
.bowa-resource-links__heading .eyebrow,
.bowa-resource-links__heading h2,
.bowa-resource-links__heading p { margin-inline: 0; }
.bowa-resource-links__heading h2 { margin-bottom: .15rem; }
.bowa-resource-links__heading p:last-child { margin-bottom: 0; color: var(--bowa-muted); max-width: 680px; }

.directory-contact-note {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: .55rem .8rem;
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-sm);
	background: var(--bowa-surface);
	color: var(--bowa-muted);
	font-size: .84rem;
	line-height: 1.4;
}

@media (max-width: 640px) {
	.bowa-resource-links__heading { gap: .4rem; margin-bottom: 1.5rem; }
	.bowa-resource-links__heading h2,
	.bowa-resource-links__heading p { width: 100%; }
}

/* -------------------------------------------------------------------------
   v1.7.65 — Floating Global Tools (replaces public Motivation widget)
   ------------------------------------------------------------------------- */
.floating-widget--global-tools .floating-widget__trigger {
	background: var(--bowa-gold);
	color: var(--bowa-navy);
	border: 1px solid var(--bowa-gold-light);
	box-shadow: 0 10px 28px rgba(6, 25, 51, 0.28);
	font-weight: 700;
}
.floating-widget--global-tools .floating-widget__trigger:hover {
	background: var(--bowa-gold-dark);
	color: var(--bowa-white);
	transform: translateY(-2px);
}
.floating-widget--global-tools .floating-widget__trigger:focus-visible {
	outline: 3px solid var(--bowa-gold-light);
	outline-offset: 3px;
}
.floating-widget--global-tools .floating-widget__trigger .icon {
	width: 18px;
	height: 18px;
	color: currentColor;
}
.floating-panel--global-tools {
	width: min(390px, calc(100vw - 2.5rem));
	max-height: min(620px, 76vh);
	overflow: auto;
}
.floating-panel--global-tools .floating-panel__header {
	background: var(--bowa-navy);
	color: var(--bowa-white);
	border-bottom: 0;
}
.floating-panel--global-tools .floating-panel__title { color: var(--bowa-white); }
.floating-panel--global-tools .floating-panel__close { color: var(--bowa-white); }
.floating-panel__eyebrow {
	margin: 0 0 0.15rem;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bowa-gold);
}
.floating-tools { background: var(--bowa-white); }
.floating-tools__tabs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.35rem;
	padding: 0.75rem;
	background: var(--bowa-surface);
	border-bottom: 1px solid var(--bowa-border);
}
.floating-tools__tab {
	min-width: 0;
	padding: 0.58rem 0.45rem;
	border: 1px solid transparent;
	border-radius: var(--bowa-radius-sm);
	background: transparent;
	color: var(--bowa-navy);
	font-size: 0.76rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
}
.floating-tools__tab:hover,
.floating-tools__tab:focus-visible {
	background: var(--bowa-white);
	border-color: var(--bowa-border);
}
.floating-tools__tab.is-active {
	background: var(--bowa-navy);
	color: var(--bowa-white);
	border-color: var(--bowa-navy);
}
.floating-tools__panel {
	padding: 1rem 1.05rem 1.1rem;
}
.floating-tools__panel[hidden] { display: none; }
.floating-tools__panel h3 {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	color: var(--bowa-navy);
}
.floating-tools__note {
	margin: 0 0 0.85rem;
	font-size: 0.78rem;
	line-height: 1.5;
	color: var(--bowa-muted);
}
.floating-tools__field,
.floating-tools__panel select {
	width: 100%;
	min-width: 0;
	min-height: 42px;
	padding: 0.55rem 0.65rem;
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-sm);
	background: var(--bowa-white);
	color: var(--bowa-dark);
	font: inherit;
}
.floating-tools__field:focus,
.floating-tools__panel select:focus {
	outline: 2px solid color-mix(in srgb, var(--bowa-light-blue) 35%, transparent);
	outline-offset: 1px;
	border-color: var(--bowa-light-blue);
}
.floating-tools__currency-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: end;
	gap: 0.45rem;
	margin-top: 0.6rem;
}
.floating-tools__currency-row label span {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 0.68rem;
	font-weight: 800;
	color: var(--bowa-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.floating-tools__arrow {
	padding-bottom: 0.65rem;
	font-weight: 800;
	color: var(--bowa-gold-dark);
}
.floating-tools__action {
	width: 100%;
	justify-content: center;
	margin-top: 0.7rem;
}
.floating-tools__result {
	margin-top: 0.7rem;
	padding: 0.65rem 0.75rem;
	border-radius: var(--bowa-radius-sm);
	background: var(--bowa-surface);
	font-size: 0.78rem;
	line-height: 1.45;
	color: var(--bowa-dark);
	overflow-wrap: anywhere;
}
.floating-tools__result.is-error {
	background: #fff3f3;
	color: #8d2020;
}
.floating-tools__clocks {
	display: grid;
	gap: 0.5rem;
}
.floating-world-clock {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	padding: 0.68rem 0.75rem;
	border: 1px solid var(--bowa-border);
	border-radius: var(--bowa-radius-sm);
	background: var(--bowa-surface);
}
.floating-world-clock strong {
	min-width: 0;
	font-size: 0.78rem;
	color: var(--bowa-navy);
	overflow-wrap: anywhere;
}
.floating-world-clock span {
	flex: 0 0 auto;
	font-size: 0.76rem;
	font-weight: 800;
	color: var(--bowa-dark);
	white-space: nowrap;
}
@media (max-width: 600px) {
	.floating-panel--global-tools {
		position: fixed;
		left: 1rem;
		right: 1rem;
		bottom: 4.7rem;
		width: auto;
		max-height: min(560px, calc(100vh - 6.5rem));
	}
	.floating-tools__tab { font-size: 0.7rem; padding-inline: 0.25rem; }
	.floating-tools__currency-row { grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr); }
}

/* v1.7.66 — Native EN/FR language controls */
.bowa-language-switcher{display:inline-flex;align-items:center;gap:.32rem;white-space:nowrap;font-size:.72rem;font-weight:800;letter-spacing:.06em}
.bowa-language-switcher a{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;min-height:2rem;padding:.25rem .42rem;border-radius:999px;color:var(--bowa-navy);text-decoration:none;border:1px solid transparent}
.bowa-language-switcher a:hover,.bowa-language-switcher a:focus-visible{border-color:var(--bowa-gold);color:var(--bowa-navy)}
.bowa-language-switcher a.is-active{background:var(--bowa-navy);color:#fff;border-color:var(--bowa-navy)}
.bowa-language-switcher--mobile{justify-content:center;margin:0 0 1rem;padding:.65rem;border:1px solid var(--bowa-border);border-radius:var(--bowa-radius-sm);background:#fff}
@media(max-width:1120px){.bowa-language-switcher--header{display:none}}

/* v1.7.68 — footer clearance + centered copyright */
.site-footer__bottom {
  position: relative;
  justify-content: center;
  text-align: center;
  padding-inline: clamp(1rem, 8vw, 7rem);
}
.site-footer__copy {
  margin: 0 auto;
  text-align: center;
  width: 100%;
}
.site-footer__legal {
  width: 100%;
  justify-content: center;
}
@media (max-width: 767px) {
  .site-footer__bottom { padding-inline: 1rem; padding-bottom: 5.5rem; }
}

/* -------------------------------------------------------------------------
   v1.7.71 — EN/FR layout stability
   Language changes must never alter the physical scale of the site. French
   copy is often longer, so it may wrap inside its component, but the root
   font scale, page container, header geometry, logo size and controls remain
   identical to English.
   ------------------------------------------------------------------------- */
html,
html[lang],
html[lang^="en"],
html[lang^="fr"] {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
body,
body:lang(en),
body:lang(fr) {
	font-size: 1rem;
	line-height: 1.6;
	font-family: var(--bowa-font-body);
}

/* Keep the same page grid in both locales. */
html[lang^="en"] .container,
html[lang^="fr"] .container {
	width: min(100% - 2rem, var(--bowa-container));
	max-width: var(--bowa-container);
}

/* Header dimensions are language-neutral. Longer French labels stay inside
   their own navigation item rather than changing the perceived site scale. */
html[lang^="en"] .site-header__inner,
html[lang^="fr"] .site-header__inner {
	min-height: 78px;
	font-size: 1rem;
}
html[lang^="en"] .site-logo--image img,
html[lang^="fr"] .site-logo--image img {
	height: 60px;
	max-height: 60px;
	width: auto;
}
html[lang^="en"] .primary-menu,
html[lang^="fr"] .primary-menu {
	font-size: 1rem;
	line-height: 1.2;
}
html[lang^="en"] .menu-item__link,
html[lang^="fr"] .menu-item__link {
	font-size: .92rem;
	line-height: 1.2;
	white-space: nowrap;
}
html[lang^="en"] .site-header__actions,
html[lang^="fr"] .site-header__actions,
html[lang^="en"] .bowa-language-switcher,
html[lang^="fr"] .bowa-language-switcher {
	font-size: inherit;
	line-height: 1;
}
html[lang^="en"] .bowa-language-switcher,
html[lang^="fr"] .bowa-language-switcher {
	font-size: .72rem;
}

/* Translation-safe components: text can wrap, but it cannot force grids,
   cards or buttons wider than their English geometry. */
html[lang^="fr"] :is(
	.grid > *,
	.two-col > *,
	.card,
	.membership-plan-card,
	.event-card,
	.business-card,
	.network-card,
	.dashboard-panel,
	.dashboard-quick-card,
	.woocommerce ul.products li.product
) {
	min-width: 0;
}
html[lang^="fr"] :is(
	.btn,
	button,
	input[type="submit"],
	input[type="button"],
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button
) {
	max-width: 100%;
	overflow-wrap: anywhere;
	text-wrap: balance;
}
html[lang^="fr"] :is(h1,h2,h3,h4,h5,h6,p,li,dd,dt,a,span,strong,small,label) {
	overflow-wrap: break-word;
}

/* At widths where the French desktop menu would become crowded, use the
   exact same mobile-navigation mechanism instead of compressing/scaling the
   whole header. */
@media (max-width: 1180px) {
	html[lang^="fr"] .site-header__nav { display: none; }
	html[lang^="fr"] .site-header__login { display: none; }
	html[lang^="fr"] .site-header__cta { display: none; }
	html[lang^="fr"] .mobile-menu-toggle { display: inline-flex; }
}

@media (max-width: 640px) {
	html[lang^="en"] .container,
	html[lang^="fr"] .container {
		width: min(100% - 1.25rem, var(--bowa-container));
	}
	html[lang^="en"] .site-header__inner,
	html[lang^="fr"] .site-header__inner {
		min-height: 64px;
	}
	html[lang^="en"] .site-logo--image img,
	html[lang^="fr"] .site-logo--image img {
		height: 50px;
		max-height: 50px;
	}
}

/* v1.7.79 — Membership value & conversion experience. */
.member-value__heading { max-width: 860px; margin-inline: auto; }
.member-value__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.15rem;
	margin-top: 2rem;
}
.member-value__card {
	min-width: 0;
	padding: 1.5rem;
	border: 1px solid rgba(10,47,99,.12);
	border-radius: var(--bowa-radius-lg, 18px);
	background: #fff;
	box-shadow: 0 12px 32px rgba(10,47,99,.06);
}
.member-value__icon {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-bottom: .9rem;
	border-radius: 12px;
	background: rgba(200,150,47,.13);
	color: var(--bowa-navy);
}
.member-value__icon .icon { width: 22px; height: 22px; }
.member-value__card h3 { margin: 0 0 .55rem; color: var(--bowa-navy); font-size: 1.05rem; }
.member-value__card p { margin: 0; color: var(--bowa-text-muted, #56657a); line-height: 1.65; }
.member-value__actions {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: .8rem;
	flex-wrap: wrap;
	margin-top: 2rem;
}
.member-value__actions--center { margin-top: 1.6rem; }
.member-value--compact { background: linear-gradient(180deg,#fff 0%,#f7f9fc 100%); }
.member-value--compact .member-value__card { box-shadow: none; }
.member-value__mini-grid {
	display: grid;
	grid-template-columns: repeat(4,minmax(0,1fr));
	gap: 1rem;
	margin-top: 2rem;
}
.member-value__mini {
	display: grid;
	gap: .35rem;
	padding: 1.2rem;
	border-left: 3px solid var(--bowa-gold);
	background: #fff;
	border-radius: 0 var(--bowa-radius-md,12px) var(--bowa-radius-md,12px) 0;
	box-shadow: 0 8px 24px rgba(10,47,99,.05);
}
.member-value__mini strong { color: var(--bowa-navy); }
.member-value__mini span { color: var(--bowa-text-muted,#56657a); font-size: .94rem; line-height: 1.55; }
.event-membership-value__panel,
.resource-member-bridge__inner {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto;
	align-items: center;
	gap: 2rem;
	padding: 1.5rem 1.75rem;
	border-radius: var(--bowa-radius-lg,18px);
	background: var(--bowa-navy);
	color: #fff;
	box-shadow: 0 16px 36px rgba(10,47,99,.12);
}
.event-membership-value__panel .eyebrow,
.resource-member-bridge__inner .eyebrow { color: var(--bowa-gold); }
.event-membership-value__panel h2,
.resource-member-bridge__inner h2 { margin: .15rem 0 .45rem; color: #fff; }
.event-membership-value__panel p,
.resource-member-bridge__inner p { margin: 0; color: rgba(255,255,255,.82); }
.event-membership-value__actions { display: flex; align-items: center; }
.resource-member-bridge__inner .btn { white-space: nowrap; }

@media (max-width: 980px) {
	.member-value__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.member-value__mini-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
	.member-value__grid,
	.member-value__mini-grid { grid-template-columns: 1fr; }
	.member-value__card { padding: 1.25rem; }
	.member-value__actions { align-items: stretch; }
	.member-value__actions .btn { width: 100%; justify-content: center; }
	.event-membership-value__panel,
	.resource-member-bridge__inner { grid-template-columns: 1fr; gap: 1rem; padding: 1.35rem; }
	.event-membership-value__actions .btn,
	.resource-member-bridge__inner .btn { width: 100%; justify-content: center; white-space: normal; }
}

/* v1.7.91 — Membership benefits refresh */
.membership-core-benefits { background: linear-gradient(180deg,#f7f9fc 0%,#ffffff 100%); }
.membership-core-benefits__grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
  margin-top: 1.75rem;
}
.membership-core-benefit {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  min-width: 0;
  padding: 1rem 1.05rem;
  background: #fff;
  border: 1px solid rgba(10,47,99,.12);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(10,47,99,.05);
}
.membership-core-benefit span {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(200,150,47,.14);
  color: var(--bowa-navy);
  font-weight: 800;
}
.membership-core-benefit strong { color: var(--bowa-navy); line-height: 1.45; }
.membership-plan-card__includes {
  margin: .35rem 0 .7rem;
  color: var(--bowa-navy);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
@media (max-width: 900px) {
  .membership-core-benefits__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .membership-core-benefits__grid { grid-template-columns: 1fr; }
  .membership-core-benefit { padding: .9rem; }
}

/* v1.7.92 — Silver plan value clarity */
.membership-plan-card__value-copy{margin:.45rem 0 .85rem;color:var(--bowa-text,#243247);font-weight:600;line-height:1.55}
.membership-plan-card--silver .membership-plan-card__benefits{margin-bottom:1.15rem}

/* v1.7.95 — About-page navigation and linked values. */
.about-values__grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.about-value-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	color: inherit;
	text-decoration: none;
	transition: transform var(--bowa-transition), box-shadow var(--bowa-transition), border-color var(--bowa-transition);
}
.about-value-card:hover,
.about-value-card:focus-visible {
	transform: translateY(-3px);
	border-color: rgba(200,150,47,.65);
	box-shadow: 0 14px 34px rgba(10,47,99,.10);
}
.about-value-card:focus-visible {
	outline: 3px solid rgba(200,150,47,.34);
	outline-offset: 3px;
}
.about-value-card__link {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	margin-top: auto;
	padding-top: 1rem;
	font-size: .86rem;
	font-weight: 700;
	color: var(--bowa-navy);
}
.about-mission-vision .link-arrow,
.about-corridor .link-arrow,
.about-connect .link-arrow {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	margin-top: .8rem;
	font-weight: 700;
	color: var(--bowa-navy);
}
@media (max-width: 1024px) {
	.about-values__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.about-values__grid { grid-template-columns: 1fr; }
	.about-value-card { padding: 1.35rem; }
}

/* v1.7.97 Service journey alignment, horizontal process + linked rows */
.process-steps.process-steps--horizontal{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:14px;align-items:stretch}
.process-steps--horizontal .process-steps__item{display:block;min-width:0}
.process-steps--horizontal .process-steps__link{height:100%;display:flex;flex-direction:column;gap:14px;padding:20px 16px;border:1px solid rgba(10,47,99,.13);border-radius:16px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 8px 22px rgba(10,47,99,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.process-steps--horizontal .process-steps__link:hover,.process-steps--horizontal .process-steps__link:focus-visible{transform:translateY(-3px);box-shadow:0 14px 30px rgba(10,47,99,.11);border-color:rgba(200,150,47,.65)}
.process-steps--horizontal .process-steps__number{flex:0 0 auto}
.process-steps--horizontal .process-steps__item h3{margin-top:0}
.service-quick-nav{background:#fff;border-top:1px solid rgba(10,47,99,.08);border-bottom:1px solid rgba(10,47,99,.1);position:relative;z-index:2}
.service-quick-nav__inner,.service-related-links__inner{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding-top:14px;padding-bottom:14px}
.service-quick-nav a,.service-related-links a{display:inline-flex;padding:9px 13px;border:1px solid rgba(10,47,99,.16);border-radius:999px;text-decoration:none;font-weight:750;color:#0a2f63;background:#fff}
.service-quick-nav a:hover,.service-quick-nav a:focus-visible,.service-related-links a:hover,.service-related-links a:focus-visible{background:#0a2f63;color:#fff}
.service-linked-row{position:relative;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease}
.service-linked-row:hover,.service-linked-row:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px rgba(10,47,99,.09)}
.service-linked-row__arrow{margin-left:auto;color:#c8962f;font-weight:900}
.service-linked-card{text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.service-linked-card:hover,.service-linked-card:focus-visible{transform:translateY(-3px);box-shadow:0 14px 30px rgba(10,47,99,.1);border-color:rgba(200,150,47,.55)}
.service-linked-card__cta{display:block;margin-top:12px;color:#0a2f63;font-size:.88rem}
.pricing-tier.service-linked-card{display:block}
.process-steps__link{display:flex;gap:1.25rem;align-items:flex-start;text-decoration:none;color:inherit;width:100%}
.service-member-bridge__panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);gap:28px;align-items:center;padding:30px;border-radius:20px;background:#0a2f63;color:#fff}
.service-member-bridge__panel h2{color:#fff}.service-member-bridge__panel .eyebrow{color:#f2ca76}
.service-member-bridge__links{display:grid;gap:10px}.service-member-bridge__links a{display:block;padding:12px 14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:12px;text-decoration:none;color:#fff;font-weight:800}.service-member-bridge__links a:hover{background:#fff;color:#0a2f63}
.service-related-links{padding:0 0 1.75rem}
@media(max-width:1100px){.process-steps.process-steps--horizontal{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.process-steps.process-steps--horizontal{grid-template-columns:1fr}.service-member-bridge__panel{grid-template-columns:1fr}.service-quick-nav__inner,.service-related-links__inner{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.service-quick-nav a,.service-related-links a{white-space:nowrap}}

/* v1.7.98 Services CTA contrast, linked process, resources + contact navigation */
.final-cta .btn--outline{border-color:rgba(255,255,255,.78);color:#fff;background:transparent}
.final-cta .btn--outline:hover,.final-cta .btn--outline:focus-visible{background:#fff;border-color:#fff;color:#0a2f63}
.services-how-we-work .process-steps__link{height:100%}
.contact-route-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.contact-route-card:hover,.contact-route-card:focus-visible{transform:translateY(-3px);box-shadow:0 14px 30px rgba(10,47,99,.11);border-color:rgba(200,150,47,.6)}
.contact-route-card__cta{margin-top:auto}
.bowa-resource-link-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1050px){.bowa-resource-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.bowa-resource-link-grid{grid-template-columns:1fr}}


/* v1.8.5 — member-dashboard input consistency and responsive fit audit.
   Scoped to dashboard utility controls so public forms and WooCommerce remain unchanged. */
.dashboard__main .bowa-tool-row input,
.dashboard__main .bowa-tool-row select,
.dashboard__main .bowa-business-time-fields select {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
	color: #17263a;
}
.dashboard__main .bowa-tool-row input:focus,
.dashboard__main .bowa-tool-row select:focus,
.dashboard__main .bowa-business-time-fields select:focus {
	outline: 0;
	border-color: #1e8fe0;
	box-shadow: 0 0 0 3px rgba(30,143,224,.14);
}
.dashboard__main .bowa-tool-row input::placeholder { color: #738096; opacity: 1; }
@media(max-width:520px){
	.dashboard__main .bowa-tool-row input[type=number],
	.dashboard__main .bowa-tool-row input[type=search],
	.dashboard__main .bowa-tool-row select { width:100%; flex:1 1 100%; }
	.dashboard__main .bowa-tool-row>span { width:100%; text-align:center; }
}

/* v1.8.8 Membership Registration Coming Soon */
.bowa-membership-coming-soon .bowa-commerce-status{border:1px solid rgba(10,47,99,.16);border-left:4px solid #c8962f;border-radius:10px;background:#fff;padding:20px;text-align:center;box-shadow:0 8px 24px rgba(10,47,99,.06)}
.bowa-membership-coming-soon .bowa-commerce-status h2{color:#0a2f63;margin:.2rem 0 .55rem}.bowa-membership-coming-soon .bowa-commerce-status p{max-width:720px;margin:.45rem auto 0}.bowa-membership-coming-soon .bowa-commerce-status .btn{margin-top:14px}.membership-plan-card__unavailable{display:block;margin-top:8px;font-size:.88rem;color:#5d6470}

/* v1.8.18 — trust, responsibility and practical-support alignment */
.bowa-responsibility-notice{padding:1.25rem 1.4rem;border:1px solid rgba(10,47,99,.16);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(10,47,99,.05)}
.bowa-responsibility-notice p:last-child{margin-bottom:0}.bowa-responsibility-notice--trusted{margin-bottom:1.5rem}.bowa-responsibility-notice--profile{margin-top:1.5rem}
.bowa-ground-support .pillar-grid{margin-top:2rem}.bowa-trust-process{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem 1rem;margin-top:2rem;padding:1rem 1.25rem;border-radius:14px;background:#fff;border:1px solid rgba(10,47,99,.12)}
.bowa-trust-process strong{width:100%;text-align:center;color:#0a2f63}.bowa-trust-process span{font-weight:600}.bowa-trust-process b{color:#c8962f}
@media(max-width:680px){.bowa-trust-process{align-items:flex-start;justify-content:flex-start}.bowa-trust-process strong{text-align:left}.bowa-trust-process b{display:none}.bowa-trust-process span{width:100%;padding-left:.25rem}}


/* v1.8.19 — linked member cards and balanced interactive grids. */
.member-value__card--linked{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease}
.member-value__card--linked:hover,.member-value__card--linked:focus-visible{transform:translateY(-4px);box-shadow:0 16px 34px rgba(10,47,99,.12);border-color:rgba(200,150,47,.58);background:#fff}
.member-value__card--linked:focus-visible{outline:3px solid rgba(30,143,224,.24);outline-offset:3px}
.member-value__card-cta{display:block;margin-top:.9rem;color:var(--bowa-navy);font-size:.88rem;font-weight:700}

/* v1.8.20 Network + Trusted Business trust/privacy experience */
.network-member-overview{padding-bottom:1.5rem}.network-overview-card,.trusted-directory-tools,.business-trust-panel{display:flex;gap:2rem;justify-content:space-between;align-items:flex-start;background:#fff;border:1px solid var(--color-border,#dbe3ea);border-radius:18px;padding:1.5rem;box-shadow:0 10px 30px rgba(10,47,99,.06)}.network-overview-stats{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:.75rem;min-width:360px}.network-overview-stats>div{padding:1rem;border-radius:14px;background:#f5f8fb;text-align:center}.network-overview-stats strong{display:block;font-size:1.6rem;color:#0a2f63}.network-overview-stats span{font-size:.82rem}.network-subnav{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.network-subnav a{display:inline-flex;padding:.6rem .85rem;border:1px solid #dbe3ea;border-radius:999px;text-decoration:none;font-weight:700}.network-subnav a:hover,.network-subnav a:focus{border-color:#1e8fe0;transform:translateY(-1px)}.trusted-directory-tools{margin:1.25rem 0}.business-trust-panel{display:block}.business-trust-panel__heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.business-review-list{list-style:none;margin:1rem 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.business-review-list li{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#f5f8fb;border-radius:12px}.business-review-list span{font-size:.85rem;color:#526171}.member-profile__contact-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.member-profile__contact-actions form{margin:0}.business-concern-form{margin-top:1rem;border-top:1px solid #e3e8ee;padding-top:1rem}.business-concern-form summary{cursor:pointer;font-weight:700;color:#0a2f63}.business-concern-form textarea{width:100%;margin:.75rem 0;padding:.8rem;border:1px solid #cfd8e3;border-radius:10px}.business-card__review{font-size:.78rem;color:#607080;margin:.35rem 0}.privacy-grid select{width:100%}.trust-center-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:760px){.network-overview-card,.trusted-directory-tools{display:block}.network-overview-stats{min-width:0;grid-template-columns:1fr;margin-top:1rem}.business-review-list,.trust-center-grid{grid-template-columns:1fr}.business-trust-panel__heading{align-items:flex-start;flex-direction:column}}
.business-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.business-detail-grid>div{padding:1rem;background:#f5f8fb;border-radius:12px}.business-detail-grid span{display:block;font-size:.78rem;color:#607080;margin-bottom:.2rem}.business-detail-grid strong{color:#0a2f63}@media(max-width:640px){.business-detail-grid{grid-template-columns:1fr}}

/* v1.8.21 — professional Network + Trusted Business discovery/presentation */
.member-preview-card--linked,
.business-card--linked{
	color:inherit;
	text-decoration:none;
	cursor:pointer;
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.member-preview-card--linked:hover,
.member-preview-card--linked:focus-visible,
.business-card--linked:hover,
.business-card--linked:focus-visible{
	transform:translateY(-4px);
	box-shadow:0 16px 34px rgba(10,47,99,.12);
	border-color:rgba(200,150,47,.58);
}
.member-preview-card--linked:focus-visible,
.business-card--linked:focus-visible{outline:3px solid rgba(30,143,224,.22);outline-offset:3px}
.member-preview-card__hint{width:100%;margin:.15rem 0 .9rem;padding:.75rem .85rem;border-radius:10px;background:#f5f8fb;color:#526171;font-size:.82rem;line-height:1.5;text-align:left}
.member-preview-card__hint strong{color:#0a2f63}
.member-preview-card__cta,.business-card__cta{display:inline-flex;align-items:center;gap:.35rem;margin-top:auto;padding-top:.8rem;font-weight:800;color:#0a2f63;font-size:.88rem}
.member-profile--professional,.business-profile--professional{max-width:100%}
.member-profile__header--professional,.business-profile__header--professional{padding:1.35rem 1.45rem;border:1px solid #dbe3ea;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#f7f9fc 100%);box-shadow:0 10px 28px rgba(10,47,99,.055)}
.member-profile__identity{min-width:0;flex:1}.member-profile__identity .eyebrow,.business-profile__header--professional .eyebrow{margin-bottom:.25rem}
.member-profile__section,.business-profile__section{padding:1.35rem 1.45rem;border:1px solid rgba(10,47,99,.09);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(10,47,99,.035)}
.member-profile__section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.member-profile__section-heading h2{margin:0}
.professional-snapshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.professional-snapshot-grid>div,.business-review-dates>div{padding:1rem;border-radius:12px;background:#f5f8fb;min-width:0}
.professional-snapshot-grid span,.business-review-dates span{display:block;margin-bottom:.25rem;color:#607080;font-size:.78rem}.professional-snapshot-grid strong,.business-review-dates strong{color:#0a2f63;overflow-wrap:anywhere}
.member-value-exchange-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.member-value-exchange-grid article{padding:1.1rem 1.2rem;border-radius:14px;background:#f5f8fb;border-left:4px solid #c8962f}.member-value-exchange-grid article h2{margin:.1rem 0 .55rem}.member-value-exchange-grid article p:last-child{margin-bottom:0}
.member-associated-business{border-left:4px solid #c8962f}.member-associated-business__row{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}.member-associated-business__row>div:last-child{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.member-associated-business__row h2{margin-bottom:.35rem}
.external-link-notice{margin-top:1rem;padding:.9rem 1rem;border:1px solid rgba(10,47,99,.11);border-left:4px solid #1e8fe0;border-radius:10px;background:#f7fafc}.external-link-notice strong{color:#0a2f63}.external-link-notice p{margin:.3rem 0 0;color:#526171;font-size:.86rem;line-height:1.55}
.member-profile__professional-link .btn{margin-bottom:.2rem}
.business-card__services,.business-service-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:.15rem 0 .8rem}.business-card__services span,.business-service-tags span{display:inline-flex;padding:.3rem .58rem;border-radius:999px;background:#f0f5fa;color:#0a2f63;font-size:.74rem;font-weight:750;line-height:1.25}.business-service-tags--profile span{font-size:.82rem;padding:.42rem .72rem}
.business-card__cta{width:100%;justify-content:space-between}.business-card--linked{height:100%}
.trusted-directory-tools__links{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.trusted-category-discovery{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0 1.15rem}.trusted-category-discovery button{appearance:none;border:1px solid #dbe3ea;background:#fff;color:#0a2f63;border-radius:999px;padding:.55rem .8rem;font:inherit;font-size:.82rem;font-weight:750;cursor:pointer;transition:.18s ease}.trusted-category-discovery button:hover,.trusted-category-discovery button:focus-visible,.trusted-category-discovery button.is-active{border-color:#0a2f63;background:#0a2f63;color:#fff}.trusted-category-discovery button:focus-visible{outline:3px solid rgba(30,143,224,.2);outline-offset:2px}
.trusted-provider-help{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;margin-top:2.25rem;padding:1.5rem 1.65rem;border-radius:18px;background:#0a2f63;color:#fff;box-shadow:0 14px 34px rgba(10,47,99,.13)}.trusted-provider-help .eyebrow{color:#f2ca76}.trusted-provider-help h2{color:#fff;margin:.15rem 0 .45rem}.trusted-provider-help p:last-child{margin-bottom:0;color:rgba(255,255,255,.82)}
.business-profile__contact-actions{display:flex;flex-wrap:wrap;gap:.55rem}.business-review-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1rem 0}.associated-member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.associated-member-list>a{display:flex;align-items:center;gap:.7rem;padding:.75rem .85rem;border:1px solid #dbe3ea;border-radius:12px;color:#0a2f63;text-decoration:none;background:#fff}.associated-member-list>a:hover,.associated-member-list>a:focus-visible{border-color:#c8962f;box-shadow:0 8px 20px rgba(10,47,99,.07)}.associated-member-list__avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;overflow:hidden;background:#0a2f63;color:#fff;font-weight:800;flex:0 0 38px}.associated-member-list__avatar img{width:100%;height:100%;object-fit:cover}
.business-representative-tools{border-left:4px solid #1e8fe0}.representative-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin:.9rem 0}.business-update-form,.business-association-review{margin-top:1rem;padding-top:1rem;border-top:1px solid #e3e8ee}.business-update-form summary{cursor:pointer;font-weight:800;color:#0a2f63}.business-update-form textarea{width:100%;margin:.8rem 0;padding:.8rem;border:1px solid #cfd8e3;border-radius:10px}.business-association-review h3{margin:0 0 .35rem;color:#0a2f63}.business-association-review__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-top:1px solid #edf0f3}.business-association-review__item:first-of-type{margin-top:.75rem}.business-association-review__item>div:first-child{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.business-association-review__item form{margin:0}.business-association-review__item small{color:#607080}
.professional-extra-links{margin-top:1rem;padding:1rem;border:1px solid #dbe3ea;border-radius:12px;background:#f8fafc}.professional-extra-links summary{cursor:pointer;font-weight:800;color:#0a2f63}.profile-form-card--association{border-left:4px solid #c8962f}.association-status{display:inline-flex;width:max-content;max-width:100%;padding:.45rem .7rem;border-radius:999px;background:#eef3f7;color:#0a2f63;font-weight:800;text-transform:capitalize}.association-status--approved{background:#d1e7dd;color:#0f5132}.association-status--pending{background:#fff3cd;color:#664d03}.association-status--rejected{background:#f8d7da;color:#842029}

@media(max-width:900px){.professional-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trusted-directory-tools{gap:1rem}.trusted-directory-tools__links{justify-content:flex-start}.trusted-provider-help{grid-template-columns:1fr}.member-associated-business__row{align-items:flex-start;flex-direction:column}.member-associated-business__row>div:last-child{justify-content:flex-start}.associated-member-list{grid-template-columns:1fr}}
@media(max-width:640px){.professional-snapshot-grid,.member-value-exchange-grid,.business-review-dates{grid-template-columns:1fr}.member-profile__header--professional,.business-profile__header--professional,.member-profile__section,.business-profile__section{padding:1.1rem}.business-association-review__item{align-items:flex-start;flex-direction:column}.business-association-review__item form{display:flex;gap:.45rem;flex-wrap:wrap}.trusted-provider-help{padding:1.25rem}.trusted-provider-help .btn{width:100%;justify-content:center}.trusted-directory-tools__links .btn{width:100%;justify-content:center}}
