/* ==========================================================================
   BSR Group — Template 3 "Executive", light edition
   Palette from the BSR crest: navy, royal, sky, gold. Light body sections,
   dark header bar, hero and footer. Condensed uppercase headings.
   ========================================================================== */

:root {
	--bsr-navy: #0E1A3A;
	--bsr-deep: #08122B;
	--bsr-deep-2: #0D1A3D;
	--bsr-royal: #2340B0;
	--bsr-royal-h: #1A3290;
	--bsr-sky: #41A8ED;
	--bsr-sky-soft: #E7F3FD;
	--bsr-gold: #F2C230;
	--bsr-ink: #4B5875;
	--bsr-ink-2: #6A7690;
	--bsr-light: #F3F6FB;
	--bsr-line: #DDE5F0;
	--bsr-white: #FFFFFF;
	--bsr-wa: #1E9E57;
	--bsr-display: 'Saira Condensed', 'Arial Narrow', sans-serif;
	--bsr-body: Barlow, 'Segoe UI', Arial, sans-serif;
	--bsr-r: 6px;
	--bsr-gutter: max(20px, env(safe-area-inset-left, 0px));
	--bsr-gutter-r: max(20px, env(safe-area-inset-right, 0px));
	--bsr-shadow: 0 18px 44px rgba(14, 26, 58, 0.10);
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bsr-white); color: var(--bsr-ink); font-family: var(--bsr-body); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--bsr-royal); }
a:hover { color: var(--bsr-royal-h); }
:focus-visible { outline: 3px solid var(--bsr-gold); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--bsr-display); color: var(--bsr-navy); text-transform: uppercase; letter-spacing: 0.01em; line-height: 1.02; font-weight: 800; text-wrap: balance; margin: 0; }
h1 { font-size: clamp(44px, 6.4vw, 88px); line-height: 0.95; }
h2 { font-size: clamp(34px, 4.4vw, 56px); line-height: 0.98; font-weight: 800; }
h3 { font-size: clamp(22px, 2vw, 27px); font-weight: 700; line-height: 1.1; }
h4 { font-size: 18px; font-weight: 700; letter-spacing: 0.08em; }
p { margin: 0; }
strong { color: var(--bsr-navy); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.bsr-skip { position: absolute; left: -9999px; top: 0; z-index: 999; background: var(--bsr-gold); color: var(--bsr-navy); padding: 10px 16px; font-weight: 700; }
.bsr-skip:focus { left: 12px; top: 12px; }
.bsr-wrap { max-width: 1240px; margin: 0 auto; padding-left: var(--bsr-gutter); padding-right: var(--bsr-gutter-r); box-sizing: content-box; }
.bsr-svg { width: 18px; height: 18px; flex-shrink: 0; }

/* ---------- buttons (theme + core/button) ---------- */
.bsr-btn, .wp-block-button__link, .wpcf7-submit, .bsr-submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 26px; border-radius: var(--bsr-r); border: 2px solid transparent;
	font-family: var(--bsr-display); font-size: 18px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
	text-decoration: none; line-height: 1; cursor: pointer; box-sizing: border-box;
	background: var(--bsr-royal); color: var(--bsr-white); transition: background .2s, color .2s, border-color .2s;
}
.bsr-btn:hover, .wp-block-button__link:hover, .wpcf7-submit:hover { background: var(--bsr-royal-h); color: var(--bsr-white); }
.bsr-btn--outline, .is-style-bsr-outline .wp-block-button__link { background: transparent; color: var(--bsr-navy); border-color: var(--bsr-line); }
.bsr-btn--outline:hover, .is-style-bsr-outline .wp-block-button__link:hover { background: transparent; color: var(--bsr-royal); border-color: var(--bsr-royal); }
.is-style-bsr-light .wp-block-button__link { background: var(--bsr-white); color: var(--bsr-navy); }
.is-style-bsr-light .wp-block-button__link:hover { background: var(--bsr-sky); color: var(--bsr-deep); }
.is-style-bsr-gold .wp-block-button__link { background: var(--bsr-gold); color: var(--bsr-navy); }
.is-style-bsr-gold .wp-block-button__link:hover { background: #FFD45A; color: var(--bsr-navy); }
.is-dark .is-style-bsr-outline .wp-block-button__link, .bsr-hero .is-style-bsr-outline .wp-block-button__link, .bsr-phero .is-style-bsr-outline .wp-block-button__link, .bsr-cta .is-style-bsr-outline .wp-block-button__link { color: var(--bsr-white); border-color: rgba(255,255,255,0.55); }
.is-dark .is-style-bsr-outline .wp-block-button__link:hover, .bsr-hero .is-style-bsr-outline .wp-block-button__link:hover, .bsr-phero .is-style-bsr-outline .wp-block-button__link:hover, .bsr-cta .is-style-bsr-outline .wp-block-button__link:hover { border-color: var(--bsr-white); color: var(--bsr-white); }
.is-style-bsr-whatsapp .wp-block-button__link, .bsr-btn-wa .wp-block-button__link { background: var(--bsr-wa); }
.wp-block-buttons { gap: 12px; }

/* ---------- top bar ---------- */
.bsr-topbar { background: var(--bsr-deep); color: #B9C7E4; font-size: 14px; }
.bsr-topbar__in { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 24px; padding-top: 9px; padding-bottom: 9px; }
.bsr-topbar__group { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; }
.bsr-topbar__item { display: inline-flex; align-items: center; gap: 7px; color: #B9C7E4; text-decoration: none; }
.bsr-topbar__item .bsr-svg { width: 15px; height: 15px; color: var(--bsr-sky); }
a.bsr-topbar__item:hover { color: var(--bsr-white); }
.bsr-topbar__item strong { color: var(--bsr-white); }
.bsr-topbar__profile { color: var(--bsr-gold); font-weight: 700; }
.bsr-topbar__profile .bsr-svg { color: var(--bsr-gold); }

/* ---------- header ---------- */
.bsr-header { position: sticky; top: 0; z-index: 50; background: var(--bsr-white); border-bottom: 1px solid var(--bsr-line); transition: box-shadow .2s; }
.admin-bar .bsr-header { top: 32px; }
.bsr-header.is-scrolled { box-shadow: 0 10px 30px rgba(14, 26, 58, 0.08); }
.bsr-header__in { display: flex; align-items: center; justify-content: space-between; gap: 16px 28px; padding-top: 10px; padding-bottom: 10px; max-width: 1340px; }
.bsr-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--bsr-navy); }
.bsr-brand__logo { height: 76px; width: auto; display: block; }
.bsr-brand__text { display: grid; line-height: 1.1; }
.bsr-brand__name { font-family: var(--bsr-display); font-weight: 800; font-size: 26px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--bsr-navy); }
.bsr-brand__tag { font-size: 13px; font-weight: 600; color: var(--bsr-royal); }
.bsr-nav { display: flex; align-items: center; gap: 8px 26px; }
.bsr-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px 24px; }
.bsr-menu > li { position: relative; }
.bsr-menu a { font-family: var(--bsr-display); font-size: 18px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none; color: var(--bsr-navy); display: inline-flex; align-items: center; gap: 6px; padding: 12px 0; border-bottom: 2px solid transparent; }
.bsr-menu > li > a:hover, .bsr-menu > .current-menu-item > a, .bsr-menu > .current-menu-ancestor > a, .bsr-menu > .current-menu-parent > a, .bsr-menu > .current_page_parent > a { border-color: var(--bsr-royal); color: var(--bsr-navy); }
.bsr-menu .menu-item-has-children > a::after { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-3px); margin-left: 2px; }
.bsr-menu .sub-menu { list-style: none; margin: 0; padding: 8px; position: absolute; top: 100%; left: -16px; min-width: 300px; background: var(--bsr-white); border: 1px solid var(--bsr-line); border-top: 3px solid var(--bsr-royal); border-radius: 0 0 var(--bsr-r) var(--bsr-r); box-shadow: var(--bsr-shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; z-index: 60; }
.bsr-menu li:hover > .sub-menu, .bsr-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.bsr-menu .sub-menu a { display: flex; padding: 12px 14px; border: 0; border-radius: 4px; font-family: var(--bsr-body); font-size: 16px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.bsr-menu .sub-menu a:hover, .bsr-menu .sub-menu .current-menu-item > a { background: var(--bsr-light); color: var(--bsr-royal); }
.bsr-sub-toggle { display: none; }
.bsr-nav__cta { min-height: 48px; padding: 0 20px; font-size: 17px; }
.bsr-menu-toggle { display: none; width: 50px; height: 50px; border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); background: var(--bsr-white); color: var(--bsr-navy); align-items: center; justify-content: center; cursor: pointer; }
.bsr-menu-toggle .bsr-svg { width: 24px; height: 24px; }
.bsr-menu-toggle__close { display: none; }
.bsr-menu-toggle[aria-expanded="true"] .bsr-menu-toggle__open { display: none; }
.bsr-menu-toggle[aria-expanded="true"] .bsr-menu-toggle__close { display: inline-flex; }

/* ---------- main content & sections ---------- */
.bsr-main { min-height: 40vh; }
.bsr-main.is-layout-constrained > * { margin-block-start: 0; margin-block-end: 0; }
.bsr-main.is-layout-constrained > .alignfull { max-width: none; }
.bsr-section { box-sizing: border-box; padding-top: clamp(64px, 8vw, 104px) !important; padding-bottom: clamp(64px, 8vw, 104px) !important; padding-left: var(--bsr-gutter) !important; padding-right: var(--bsr-gutter-r) !important; }
.bsr-section.is-tight { padding-top: clamp(44px, 5vw, 64px) !important; padding-bottom: clamp(44px, 5vw, 64px) !important; }
.bsr-section.is-tint { background: var(--bsr-light); }
.bsr-section.is-dark { background: var(--bsr-navy); color: #C3CFE6; }
.bsr-section.is-deep { background: var(--bsr-deep); color: #C3CFE6; }
.is-dark h1, .is-dark h2, .is-dark h3, .is-dark h4, .is-deep h1, .is-deep h2, .is-deep h3, .is-deep h4, .is-dark strong, .is-deep strong { color: var(--bsr-white); }
.is-dark a:not(.wp-block-button__link), .is-deep a:not(.wp-block-button__link) { color: var(--bsr-sky); }
.bsr-section > * + * { margin-block-start: 1.25rem; }
.bsr-section > .bsr-head, .bsr-section > .bsr-center-head { margin-bottom: clamp(32px, 4vw, 48px); }
.bsr-section > .bsr-head + *, .bsr-section > .bsr-center-head + * { margin-block-start: 0; }

.bsr-eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--bsr-display); font-size: 16px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--bsr-royal); }
.bsr-eyebrow::before { content: ""; width: 30px; height: 2px; background: currentColor; flex-shrink: 0; }
.has-text-align-center.bsr-eyebrow { justify-content: center; }
.is-dark .bsr-eyebrow, .is-deep .bsr-eyebrow, .bsr-hero .bsr-eyebrow, .bsr-phero .bsr-eyebrow, .bsr-cta .bsr-eyebrow { color: var(--bsr-sky); }
.bsr-lead { font-size: clamp(17px, 1.5vw, 19.5px); line-height: 1.6; color: var(--bsr-ink); max-width: 66ch; }
.is-dark .bsr-lead, .is-deep .bsr-lead { color: #C3CFE6; }
.has-text-align-center.bsr-lead { margin-left: auto; margin-right: auto; }
.bsr-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 56px; }
.bsr-head > .wp-block-group { max-width: 720px; display: grid; gap: 14px; }
.bsr-head > .wp-block-group > * { margin: 0 !important; }
.bsr-head > p { flex: 1 1 360px; max-width: 520px; }
.bsr-center-head { display: grid; justify-items: center; text-align: center; gap: 14px; max-width: 820px !important; margin-left: auto !important; margin-right: auto !important; }
.bsr-center-head > * { margin: 0 !important; }
.bsr-stack { display: grid; gap: 18px; align-content: start; }
.bsr-stack > * { margin: 0 !important; }

/* split (columns) */
.wp-block-columns.bsr-split { gap: clamp(32px, 5vw, 64px); align-items: center !important; }
.wp-block-columns.bsr-split.is-top { align-items: flex-start !important; }
.bsr-split .wp-block-column > * + * { margin-block-start: 18px; }
.bsr-split .wp-block-column > .bsr-eyebrow + * { margin-block-start: 12px; }

/* images */
.wp-block-image img { border-radius: var(--bsr-r); }
.bsr-img-tall img { width: 100%; height: clamp(320px, 42vw, 540px); object-fit: cover; }
.bsr-img-wide img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.bsr-img-portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; }
.bsr-frame { position: relative; }
.bsr-frame img { box-shadow: var(--bsr-shadow); }
.bsr-collage { display: grid !important; grid-template-columns: 1.15fr 1fr; gap: 14px !important; }
.bsr-collage > * { margin: 0 !important; }
.bsr-collage .wp-block-image { height: 100%; }
.bsr-collage .wp-block-image img { width: 100%; height: 100%; object-fit: cover; min-height: 220px; display: block; }
.bsr-collage > .wp-block-image:first-child { grid-row: span 2; }
.bsr-collage > .wp-block-image:first-child img { min-height: 460px; }

/* icons (CSS mask from icons.css) */
.bsr-ic::before { content: ""; display: block; flex-shrink: 0; width: 26px; height: 26px; background-color: currentColor; -webkit-mask: var(--bsr-icon) center / contain no-repeat; mask: var(--bsr-icon) center / contain no-repeat; }
h1.bsr-ic::before, h2.bsr-ic::before, h3.bsr-ic::before, h4.bsr-ic::before { width: 54px; height: 54px; border-radius: 12px; background-color: var(--bsr-royal); -webkit-mask: none; mask: none; background-image: var(--bsr-icon-white, none); margin-bottom: 18px; }
h3.bsr-ic { position: relative; }
h3.bsr-ic::after { content: ""; position: absolute; left: 13px; top: 13px; width: 28px; height: 28px; background: var(--bsr-white); -webkit-mask: var(--bsr-icon) center / contain no-repeat; mask: var(--bsr-icon) center / contain no-repeat; }
.is-dark h3.bsr-ic::before, .is-deep h3.bsr-ic::before { background-color: rgba(65, 168, 237, 0.16); }
.is-dark h3.bsr-ic::after, .is-deep h3.bsr-ic::after { background: var(--bsr-sky); }

/* cards */
.bsr-grid { gap: 20px !important; }
.bsr-grid > * { margin: 0 !important; }
.bsr-card, .is-style-bsr-card { background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); padding: 28px !important; display: flex; flex-direction: column; gap: 10px; box-sizing: border-box; transition: border-color .2s, box-shadow .2s, transform .2s; }
.bsr-card > * { margin: 0 !important; }
.bsr-card:hover { border-color: #C3D3EA; box-shadow: var(--bsr-shadow); transform: translateY(-3px); }
.bsr-card h3 { font-size: 24px; }
.bsr-card p { font-size: 16px; }
.is-dark .bsr-card, .is-deep .bsr-card { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.12); color: #C3CFE6; }
.is-dark .bsr-card:hover, .is-deep .bsr-card:hover { box-shadow: none; border-color: var(--bsr-sky); }
.bsr-card.is-accent { border-top: 4px solid var(--bsr-royal); }

/* vertical (service) cards with image */
.bsr-vert { background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.bsr-vert:hover { box-shadow: var(--bsr-shadow); transform: translateY(-4px); }
.bsr-vert > * { margin: 0 !important; }
.bsr-vert > .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; display: block; }
.bsr-vert__body { padding: 26px 28px 30px !important; display: flex; flex-direction: column; gap: 12px; flex-grow: 1; }
.bsr-vert__body > * { margin: 0 !important; }
.bsr-vert__body > .wp-block-buttons { margin-top: auto !important; padding-top: 6px; }
.bsr-tag { font-family: var(--bsr-display); font-size: 15px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--bsr-royal); }
.is-dark .bsr-tag, .is-deep .bsr-tag { color: var(--bsr-sky); }

/* lists */
ul.bsr-checks, .is-style-bsr-checks { list-style: none; padding: 0 !important; margin-left: 0; display: grid; gap: 10px; }
ul.bsr-checks li, .is-style-bsr-checks li { position: relative; padding-left: 32px; font-weight: 600; color: var(--bsr-navy); }
ul.bsr-checks li::before, .is-style-bsr-checks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--bsr-royal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 13px no-repeat; }
.is-dark ul.bsr-checks li, .is-deep ul.bsr-checks li { color: var(--bsr-white); }
.bsr-vert ul.bsr-checks { gap: 8px; font-size: 15.5px; }
ul.bsr-chips { list-style: none; padding: 0 !important; margin-left: 0; display: flex; flex-wrap: wrap; gap: 8px; }
ul.bsr-chips li { background: var(--bsr-light); border: 1px solid var(--bsr-line); color: var(--bsr-navy); border-radius: 999px; padding: 6px 14px; font-size: 15px; font-weight: 600; }
.bsr-hero ul.bsr-chips, .bsr-phero ul.bsr-chips { justify-content: center; }
.bsr-hero ul.bsr-chips li, .bsr-phero ul.bsr-chips li { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.25); color: var(--bsr-white); backdrop-filter: blur(4px); }

/* home hero (core/cover) */
.wp-block-cover.bsr-hero { min-height: 0; padding: clamp(96px, 11vw, 150px) var(--bsr-gutter-r) clamp(150px, 15vw, 200px) var(--bsr-gutter) !important; text-align: center; }
.bsr-hero .wp-block-cover__inner-container { max-width: 1080px; display: grid; justify-items: center; gap: 22px; }
.bsr-hero .wp-block-cover__inner-container > * { margin: 0 !important; }
.bsr-hero h1, .bsr-hero p { text-align: center; }
.bsr-hero h1 { color: var(--bsr-white); font-size: clamp(48px, 7.6vw, 108px); }
.bsr-hero h1 mark, .bsr-phero h1 mark { background: none; color: var(--bsr-sky); }
.bsr-hero .bsr-lead { color: #D5DEEF; max-width: 62ch; }
.bsr-kicker { font-family: var(--bsr-display); font-size: 16px; font-weight: 700; letter-spacing: 0.32em; text-transform: uppercase; color: #E2E9F7; }
.bsr-kicker::before, .bsr-kicker::after { content: "\2605"; color: var(--bsr-gold); margin: 0 14px; letter-spacing: 0; }
.bsr-hero .wp-block-buttons { justify-content: center; }
.wp-block-cover.bsr-hero .wp-block-cover__image-background, .wp-block-cover.bsr-phero .wp-block-cover__image-background { object-position: center 30%; }

/* hero shortcut cards (overlap the hero) */
.bsr-vcards-wrap { padding-left: var(--bsr-gutter) !important; padding-right: var(--bsr-gutter-r) !important; margin-top: -110px !important; position: relative; z-index: 2; }
.bsr-vcards { gap: 18px !important; }
.bsr-vcard { position: relative; background: var(--bsr-white); border-radius: var(--bsr-r); border-top: 4px solid var(--bsr-royal); box-shadow: 0 24px 50px rgba(8, 18, 43, 0.18); padding: 26px 28px !important; display: flex; flex-direction: column; gap: 8px; transition: transform .2s; }
.bsr-vcard > * { margin: 0 !important; }
.bsr-vcard:hover { transform: translateY(-4px); }
.bsr-vcard h3 { display: flex; align-items: center; gap: 14px; font-size: 25px; }
.bsr-vcard h3.bsr-ic::before { margin-bottom: 0; flex-shrink: 0; }
.bsr-vcard h3.bsr-ic::after { top: 13px; }
.bsr-vcard h3 a { color: var(--bsr-navy); text-decoration: none; }
.bsr-vcard h3 a::after { content: ""; position: absolute; inset: 0; }
.bsr-vcard p { font-size: 16px; }
.bsr-vcard .bsr-more { font-family: var(--bsr-display); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bsr-royal); font-size: 16px; }

/* page header (core/cover) */
.wp-block-cover.bsr-phero { min-height: 0; padding: clamp(64px, 8vw, 104px) var(--bsr-gutter-r) clamp(64px, 8vw, 96px) var(--bsr-gutter) !important; }
.bsr-phero .wp-block-cover__inner-container { display: grid; gap: 16px; width: 100%; max-width: 1240px !important; margin-left: auto !important; margin-right: auto !important; }
.bsr-phero .wp-block-cover__inner-container > * { margin: 0 !important; max-width: none; }
.bsr-phero h1 { color: var(--bsr-white); font-size: clamp(42px, 6.2vw, 86px); max-width: 16ch; }
.bsr-phero .bsr-lead { color: #D5DEEF; }
.bsr-phero .wp-block-buttons { margin-top: 8px !important; }
p.bsr-crumbs { font-size: 14.5px; font-weight: 600; color: #B9C7E4; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
p.bsr-crumbs a { color: var(--bsr-white); text-decoration: none; }
p.bsr-crumbs a:hover { color: var(--bsr-sky); }
p.bsr-crumbs .sep { color: #7F93B3; }

/* trust strip */
.bsr-trust { background: var(--bsr-royal); padding: 0 var(--bsr-gutter-r) 0 var(--bsr-gutter) !important; }
.bsr-trust > .bsr-grid { gap: 0 !important; }
.bsr-trust p { display: flex; align-items: center; gap: 12px; padding: 20px 16px; color: var(--bsr-white); font-family: var(--bsr-display); font-size: 19px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; border-left: 1px solid rgba(255,255,255,0.18); }
.bsr-trust p:first-child { border-left: 0; }
.bsr-trust p::before { color: var(--bsr-gold); }
.bsr-trust a { color: var(--bsr-white); text-decoration: none; }

/* industries */
p.bsr-ind { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); background: var(--bsr-white); font-family: var(--bsr-display); font-size: 20px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--bsr-navy); line-height: 1.1; }
p.bsr-ind::before { width: 46px; height: 46px; border-radius: 10px; background-color: var(--bsr-light); -webkit-mask: none; mask: none; position: relative; }
p.bsr-ind { position: relative; }
p.bsr-ind::after { content: ""; position: absolute; left: 30px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--bsr-royal); -webkit-mask: var(--bsr-icon) center / contain no-repeat; mask: var(--bsr-icon) center / contain no-repeat; }

/* steps */
.bsr-steps { counter-reset: bsr-step; gap: 16px !important; }
.bsr-step { counter-increment: bsr-step; background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); padding: 26px 24px !important; display: flex; flex-direction: column; gap: 10px; position: relative; overflow: hidden; }
.bsr-step > * { margin: 0 !important; }
.bsr-step::before { content: "0" counter(bsr-step); font-family: var(--bsr-display); font-size: 46px; font-weight: 800; line-height: 1; color: var(--bsr-sky); opacity: 0.9; }
.bsr-step h3 { font-size: 23px; }
.bsr-step p { font-size: 15.5px; }
.is-dark .bsr-step, .is-deep .bsr-step { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.12); }

/* stats */
.bsr-stats-band { padding-left: var(--bsr-gutter) !important; padding-right: var(--bsr-gutter-r) !important; background: var(--bsr-royal); color: var(--bsr-white); }
.bsr-stats { gap: 0 !important; }
.bsr-stat { padding: 36px 26px !important; border-left: 1px solid rgba(255,255,255,0.2); display: grid; gap: 4px; }
.bsr-stat:first-child { border-left: 0; }
.bsr-stat > * { margin: 0 !important; }
p.bsr-stat__num { font-family: var(--bsr-display); font-size: clamp(44px, 5vw, 64px); font-weight: 800; line-height: 1; color: var(--bsr-white); font-variant-numeric: tabular-nums; }
.bsr-stat p:not(.bsr-stat__num) { color: #D8E2F8; font-weight: 600; }

/* quote / chairman */
.wp-block-quote.bsr-quote { border: 0; margin: 0; padding: 0; }
.wp-block-quote.bsr-quote::before { content: "\201C"; display: block; font-family: Georgia, serif; font-size: 96px; line-height: 0.6; color: var(--bsr-sky); margin-bottom: 8px; }
.wp-block-quote.bsr-quote p { font-family: var(--bsr-display); font-size: clamp(26px, 2.8vw, 38px); line-height: 1.15; font-weight: 700; text-transform: uppercase; color: var(--bsr-white); }
.wp-block-quote.bsr-quote cite { display: block; margin-top: 18px; font-style: normal; font-size: 16px; color: #B9C7E4; }
.wp-block-quote.bsr-quote cite strong { display: block; font-size: 20px; color: var(--bsr-white); }
.is-tint .wp-block-quote.bsr-quote p, .bsr-section:not(.is-dark):not(.is-deep) .wp-block-quote.bsr-quote p { color: var(--bsr-navy); }
.bsr-section:not(.is-dark):not(.is-deep) .wp-block-quote.bsr-quote cite strong { color: var(--bsr-navy); }

/* values */
.bsr-value { border-left: 3px solid var(--bsr-sky); padding: 6px 0 6px 18px !important; display: grid; gap: 4px; }
.bsr-value > * { margin: 0 !important; }
.bsr-value h3 { font-size: 24px; color: var(--bsr-white); }

/* panels (manpower categories) */
.bsr-panel { background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); overflow: hidden; display: flex; flex-direction: column; }
.bsr-panel > * { margin: 0 !important; }
.bsr-panel > .wp-block-image img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: 0; display: block; }
.bsr-panel__body { padding: 28px 30px 30px !important; display: grid; gap: 4px; }
.bsr-panel__body > * { margin: 0 !important; }
.bsr-panel__body > h3 { margin-bottom: 8px !important; font-size: 30px; }
.bsr-panel__body h4 { color: var(--bsr-royal); font-size: 17px; letter-spacing: 0.12em; padding-top: 16px; margin-top: 12px !important; border-top: 1px solid var(--bsr-line); }
.bsr-panel__body h4:first-of-type { border-top: 0; margin-top: 0 !important; padding-top: 4px; }
.bsr-panel__body ul.bsr-chips { margin-top: 8px !important; }

/* gallery */
.wp-block-gallery.bsr-gallery { gap: 12px !important; }
.wp-block-gallery.bsr-gallery .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--bsr-r); transition: transform .3s, filter .3s; }
.wp-block-gallery.bsr-gallery .wp-block-image:hover img { filter: brightness(1.05); }
.wp-block-gallery.bsr-gallery figcaption { font-size: 13px; }
.bsr-filter .wp-block-button__link { min-height: 42px; padding: 0 16px; font-size: 15px; background: var(--bsr-white); color: var(--bsr-navy); border: 1px solid var(--bsr-line); }
.bsr-filter .wp-block-button__link:hover { border-color: var(--bsr-royal); color: var(--bsr-royal); background: var(--bsr-white); }
.bsr-gallery-group h2 { font-size: clamp(28px, 3vw, 40px); }

/* FAQ (core/details) */
.bsr-faq { display: grid; gap: 12px; max-width: 900px !important; }
.bsr-faq > * { margin: 0 !important; }
.wp-block-details.bsr-faq-item { background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); padding: 0 24px; }
.wp-block-details.bsr-faq-item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 20px 0; font-weight: 700; font-size: 18px; color: var(--bsr-navy); }
.wp-block-details.bsr-faq-item summary::-webkit-details-marker { display: none; }
.wp-block-details.bsr-faq-item summary::after { content: "+"; font-size: 28px; font-weight: 400; color: var(--bsr-royal); line-height: 1; }
.wp-block-details.bsr-faq-item[open] summary::after { content: "\2013"; }
.wp-block-details.bsr-faq-item > p { padding-bottom: 20px; margin: 0; }

/* CTA band */
.bsr-cta { background: linear-gradient(110deg, var(--bsr-royal) 0%, #1F63C9 60%, var(--bsr-sky) 100%); color: var(--bsr-white); padding: 56px var(--bsr-gutter-r) 56px var(--bsr-gutter) !important; }
.bsr-cta > .wp-block-group { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.bsr-cta h2 { color: var(--bsr-white); font-size: clamp(30px, 3.6vw, 48px); max-width: 22ch; }
.bsr-cta p { color: #E1EAFB; margin-top: 8px; }

/* contact cards & locations */
.bsr-ccard { background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); padding: 24px !important; display: grid; gap: 6px; align-content: start; }
.bsr-ccard > * { margin: 0 !important; }
.bsr-ccard h3 { font-size: 16px; letter-spacing: 0.14em; color: var(--bsr-ink-2); display: flex; align-items: center; gap: 12px; }
.bsr-ccard h3.bsr-ic::before { width: 46px; height: 46px; margin: 0; border-radius: 10px; background-color: var(--bsr-light); }
.bsr-ccard h3.bsr-ic::after { left: 11px; top: 11px; width: 24px; height: 24px; background: var(--bsr-royal); }
.bsr-ccard p { font-size: 19px; font-weight: 700; color: var(--bsr-navy); }
.bsr-ccard p a { color: var(--bsr-navy); text-decoration: none; }
.bsr-ccard.is-wa h3.bsr-ic::before { background-color: #E3F5EA; }
.bsr-ccard.is-wa h3.bsr-ic::after { background: var(--bsr-wa); }
.bsr-loc { background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); padding: 28px !important; display: grid; gap: 10px; align-content: start; }
.bsr-loc > * { margin: 0 !important; }
.bsr-loc.is-hq { border: 2px solid var(--bsr-royal); }
.bsr-loc h3 { font-size: 26px; }
.bsr-map { border-radius: var(--bsr-r); overflow: hidden; border: 1px solid var(--bsr-line); background: var(--bsr-light); }
.bsr-map iframe { display: block; width: 100%; height: 440px; border: 0; }

/* forms */
.bsr-form-card { background: var(--bsr-white); border: 1px solid var(--bsr-line); border-top: 4px solid var(--bsr-royal); border-radius: var(--bsr-r); box-shadow: var(--bsr-shadow); padding: clamp(22px, 3vw, 36px) !important; }
.bsr-form-card > * + * { margin-block-start: 14px; }
.bsr-form-card h3 { font-size: 30px; }
.bsr-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 16px; }
.bsr-field { display: grid; gap: 6px; }
.bsr-field.is-full { grid-column: 1 / -1; }
.bsr-label { font-size: 14px; font-weight: 700; color: var(--bsr-navy); }
.bsr-field input:not([type="submit"]):not([type="file"]), .bsr-field select, .bsr-field textarea {
	width: 100%; min-height: 50px; box-sizing: border-box; border: 1.5px solid var(--bsr-line); border-radius: var(--bsr-r);
	padding: 0 14px; font: 500 16px var(--bsr-body); color: var(--bsr-navy); background: var(--bsr-white); transition: border-color .15s, box-shadow .15s;
}
.bsr-field textarea { padding: 12px 14px; min-height: 110px; resize: vertical; }
.bsr-field input:focus, .bsr-field select:focus, .bsr-field textarea:focus { outline: none; border-color: var(--bsr-royal); box-shadow: 0 0 0 4px rgba(35, 64, 176, 0.12); }
.bsr-field input[type="file"] { width: 100%; box-sizing: border-box; padding: 14px; border: 1.5px dashed #B8C8E0; border-radius: var(--bsr-r); background: var(--bsr-light); font: 500 15px var(--bsr-body); color: var(--bsr-ink); }
.bsr-form-actions { margin-top: 18px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.wpcf7-submit { min-width: 220px; }
.wpcf7-not-valid-tip { font-size: 13.5px; margin-top: 4px; color: #C0262D; }
.wpcf7 form .wpcf7-response-output { margin: 18px 0 0; padding: 14px 16px; border-radius: var(--bsr-r); font-weight: 600; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #1E9E57; background: #E9F7EF; color: #0F5132; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #E3A008; background: #FFF8E6; color: #6B4A00; }
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-color: #C0262D; background: #FDECEC; color: #7A1A1E; }
.wpcf7-spinner { margin: 0 8px; }
.bsr-note { font-size: 14px; color: var(--bsr-ink-2); }

/* jobs */
.bsr-jobs { display: grid; gap: 12px; }
.bsr-job { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 20px 24px; background: var(--bsr-white); border: 1px solid var(--bsr-line); border-radius: var(--bsr-r); }
.bsr-job__main { display: grid; gap: 6px; min-width: 0; }
.bsr-job__title { font-size: 26px; }
.bsr-job__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 15px; font-weight: 600; color: var(--bsr-ink-2); }
.bsr-job__meta span { display: inline-flex; align-items: center; gap: 6px; }
.bsr-job__meta span::before { width: 16px; height: 16px; color: var(--bsr-royal); background-color: var(--bsr-royal); }
.bsr-job__summary { font-size: 15.5px; }
.bsr-jobs-empty { padding: 20px 24px; border: 1px dashed var(--bsr-line); border-radius: var(--bsr-r); background: var(--bsr-white); }

/* footer */
.bsr-footer { background: var(--bsr-deep); color: #AEBBD3; font-size: 15.5px; }
.bsr-footer__cols { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 40px; padding-top: 72px; padding-bottom: 48px; }
.bsr-footer .bsr-brand { margin-bottom: 18px; }
.bsr-footer .bsr-brand__logo { height: 84px; }
.bsr-footer .bsr-brand__name { color: var(--bsr-white); }
.bsr-footer .bsr-brand__tag { color: var(--bsr-sky); }
.bsr-footer__about p { max-width: 38ch; }
.bsr-footer__title { font-family: var(--bsr-display); font-size: 19px; letter-spacing: 0.1em; color: var(--bsr-white); margin: 0 0 16px; }
.bsr-footer__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.bsr-footer a { color: #AEBBD3; text-decoration: none; }
.bsr-footer a:hover { color: var(--bsr-white); }
.bsr-footer__contact p { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; }
.bsr-footer__contact .bsr-svg { color: var(--bsr-sky); margin-top: 4px; }
.bsr-footer__directions { display: inline-flex !important; align-items: center; gap: 8px; color: var(--bsr-sky) !important; font-weight: 700; }
.bsr-social { display: flex; gap: 10px; margin-top: 20px; }
.bsr-social a { width: 42px; height: 42px; border-radius: 50%; border: 1px solid #22305A; display: grid; place-items: center; color: var(--bsr-white); }
.bsr-social a:hover { background: var(--bsr-royal); border-color: var(--bsr-royal); }
.bsr-footer__legal { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; padding-top: 22px; padding-bottom: 26px; border-top: 1px solid #1C2A4D; font-size: 14px; }
.bsr-footer__tagline { font-family: var(--bsr-display); letter-spacing: 0.18em; text-transform: uppercase; color: #DCE6F7; }
.bsr-footer__tagline .star { color: var(--bsr-gold); }

/* floating buttons */
.bsr-fab { position: fixed; right: max(20px, calc(env(safe-area-inset-right, 0px) + 12px)); bottom: calc(20px + env(safe-area-inset-bottom, 0px)); display: grid; gap: 10px; z-index: 70; }
.bsr-fab a { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; color: var(--bsr-white); box-shadow: 0 12px 28px rgba(8, 18, 43, 0.3); transition: transform .2s; }
.bsr-fab a:hover { transform: scale(1.06); color: var(--bsr-white); }
.bsr-fab .bsr-svg { width: 28px; height: 28px; }
.bsr-fab__wa { background: var(--bsr-wa); }
.bsr-fab__call { background: var(--bsr-royal); }

/* fallback pages */
.bsr-page-title { background: var(--bsr-navy); padding: 64px 0; }
.bsr-page-title h1 { color: var(--bsr-white); font-size: clamp(38px, 5vw, 64px); }
.bsr-prose { padding-top: 48px; padding-bottom: 72px; max-width: 860px; }
.bsr-prose > * + * { margin-top: 1em; }
.bsr-prose h2 { font-size: 34px; margin-top: 1.4em; }
.bsr-post-item { padding: 24px 0; border-bottom: 1px solid var(--bsr-line); }
.bsr-post-item h2 { font-size: 30px; }
.bsr-post-item h2 a { color: var(--bsr-navy); text-decoration: none; }
.bsr-post-item__date { font-size: 14px; color: var(--bsr-ink-2); margin: 6px 0 10px !important; }
.bsr-404 { padding: 110px 0; text-align: center; }
.bsr-404 h1 { margin: 10px 0 16px; }
.bsr-404 .bsr-eyebrow { justify-content: center; }
.bsr-404__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 26px; }

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
	.bsr-menu-toggle { display: inline-flex; }
	.bsr-nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--bsr-white); border-bottom: 1px solid var(--bsr-line); box-shadow: var(--bsr-shadow); flex-direction: column; align-items: stretch; padding: 8px var(--bsr-gutter-r) 22px var(--bsr-gutter); max-height: calc(100vh - 140px); overflow-y: auto; display: none; }
	.bsr-nav.is-open { display: flex; }
	.bsr-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.bsr-menu > li { border-bottom: 1px solid var(--bsr-line); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
	.bsr-menu > li > a { padding: 15px 0; border: 0; flex: 1; }
	.bsr-menu .menu-item-has-children > a::after { display: none; }
	.bsr-sub-toggle { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: transparent; color: var(--bsr-navy); cursor: pointer; }
	.bsr-sub-toggle[aria-expanded="true"] .bsr-svg { transform: rotate(180deg); }
	.bsr-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; min-width: 0; width: 100%; padding: 0 0 10px 10px; display: none; }
	.bsr-menu li.is-open > .sub-menu { display: block; }
	.bsr-nav__cta { margin-top: 16px; }
	.bsr-footer__cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 782px) {
	.admin-bar .bsr-header { top: 0; }
	.bsr-header { position: relative; }
	.bsr-brand__logo { height: 58px; }
	.bsr-brand__name { font-size: 21px; }
	.bsr-brand__tag { font-size: 11.5px; }
	.is-hide-sm { display: none !important; }
	.bsr-collage { grid-template-columns: 1fr; }
	.bsr-collage > .wp-block-image:first-child { grid-row: auto; }
	.bsr-collage > .wp-block-image:first-child img { min-height: 280px; }
	.bsr-trust p, .bsr-stat { border-left: 0; border-top: 1px solid rgba(255,255,255,0.18); }
	.bsr-vcards-wrap { margin-top: -70px !important; }
	.bsr-footer__cols { grid-template-columns: 1fr; padding-top: 52px; }
	.bsr-map iframe { height: 340px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.bsr-card, .bsr-vert, .bsr-vcard, .bsr-fab a, .bsr-menu .sub-menu { transition: none; }
	.bsr-card:hover, .bsr-vert:hover, .bsr-vcard:hover { transform: none; }
}

.bsr-signature { color: #C3CFE6; }
.bsr-signature strong { font-size: 19px; }
