/* ==========================================================================
 * xBoom — Shared design system for editorial pages
 *   · Used by: home, about, contact, drones, robots, underwater,
 *              drone-shows, services
 *   · Scope: anything wrapped in <div class="xbpage">
 *   · Themes: default dark, [data-theme="light"] on <html> flips it
 *   · Note: does NOT touch .xbm-woo (WooCommerce cards) — those have their
 *          own token set. Both coexist on the same site.
 * ========================================================================== */

/* -- Fonts ----------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Inter:wght@400;500;600&display=swap');

/* -- Tokens (scoped to .xbpage so Salient isn't affected) ------------------ */
.xbpage {
	--bg:       #0a0a0a;
	--bg-1:     #111;
	--bg-2:     #161616;
	--bg-3:     #1c1c1c;
	--line:     rgba(245,245,242,0.08);
	--line-2:   rgba(245,245,242,0.16);
	--line-3:   rgba(245,245,242,0.28);
	--fg:       #f5f5f2;
	--fg-mute:  #a3a39b;
	--fg-dim:   #6b6b63;
	--accent:   #ff4a1c;
	--accent-2: #ff7a4a;
	--accent-dim: rgba(255,74,28,0.12);
	--ok:       #9cffb0;
	--maxw:     1440px;
	--pad:      clamp(20px, 3vw, 40px);
	--mono:     'JetBrains Mono', ui-monospace, monospace;
	--display:  'Space Grotesk', sans-serif;
	--body:     'Inter', system-ui, sans-serif;

	background: var(--bg);
	color: var(--fg);
	font-family: var(--body);
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	font-feature-settings: "ss01", "cv11";
	min-height: 100vh;
	overflow-x: hidden;
}

html[data-theme="light"] .xbpage,
.xbpage[data-theme="light"] {
	--bg:      #f4f3ee;
	--bg-1:    #eceae3;
	--bg-2:    #e4e1d8;
	--bg-3:    #dcd9cf;
	--line:    rgba(10,10,10,0.12);
	--line-2:  rgba(10,10,10,0.22);
	--line-3:  rgba(10,10,10,0.36);
	--fg:      #0a0a0a;
	--fg-mute: #4a4a42;
	--fg-dim:  #7a7a72;
	--accent:  #d63a10;
	--accent-2: #ff7a4a;
	--accent-dim: rgba(214,58,16,0.12);
}

.xbpage * { box-sizing: border-box; margin: 0; padding: 0; }
.xbpage a { color: inherit; text-decoration: none; }
.xbpage img { max-width: 100%; display: block; }
.xbpage button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }

/* -- Typography ------------------------------------------------------------
 * Salient ships aggressive h1..h6 colour rules; force legible colour to win. */
.xbpage h1, .xbpage h2, .xbpage h3,
.xbpage h4, .xbpage h5, .xbpage h6 { color: var(--fg) !important; }
.xbpage p            { color: inherit; }
.xbpage .mono        { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-mute) !important; }
.xbpage .h1          { font-family: var(--display); font-weight: 500; font-size: clamp(52px, 9vw, 148px); letter-spacing: -.045em; line-height: .9; color: var(--fg) !important; }
.xbpage .h2          { font-family: var(--display); font-weight: 500; font-size: clamp(36px, 5vw, 72px); letter-spacing: -.03em; line-height: .98; color: var(--fg) !important; }
.xbpage .h3          { font-family: var(--display); font-weight: 500; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -.02em; line-height: 1.05; color: var(--fg) !important; }
.xbpage .eyebrow     { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute) !important; display: inline-flex; align-items: center; gap: 8px; }
.xbpage .eyebrow::before { content: ''; width: 6px; height: 6px; background: var(--accent); border-radius: 50%; }
.xbpage .lead        { font-size: clamp(16px, 1.3vw, 19px); line-height: 1.55; color: var(--fg-mute) !important; max-width: 60ch; }
.xbpage .em-orange   { color: var(--accent) !important; font-style: italic; font-weight: 400; }

/* -- Layout ---------------------------------------------------------------- */
.xbpage .wrap         { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }
.xbpage .section      { padding: clamp(72px, 10vh, 120px) 0; border-top: 1px solid var(--line); position: relative; }
.xbpage .section-head { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; margin-bottom: 64px; align-items: end; }
@media (max-width: 760px) { .xbpage .section-head { grid-template-columns: 1fr; gap: 20px; margin-bottom: 40px; } }

/* -- Nav ------------------------------------------------------------------- */
.xbpage .xbpage-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; backdrop-filter: blur(12px); background: color-mix(in oklab, var(--bg), transparent 20%); border-bottom: 1px solid var(--line); }
.xbpage .xbpage-nav-inner { max-width: var(--maxw); margin: 0 auto; padding: 14px var(--pad); display: flex; align-items: center; gap: 32px; }
.xbpage .xbpage-logo { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-weight: 600; letter-spacing: -.02em; font-size: 20px; color: var(--fg); }
.xbpage .xbpage-logo-mark { width: 22px; height: 22px; position: relative; display: inline-block; }
.xbpage .xbpage-logo-mark::before,
.xbpage .xbpage-logo-mark::after { content: ''; position: absolute; inset: 0; border: 1.5px solid var(--fg); }
.xbpage .xbpage-logo-mark::after { transform: rotate(45deg); border-color: var(--accent); }
.xbpage .xbpage-nav-links { display: flex; gap: 24px; margin-left: auto; }
.xbpage .xbpage-nav-links a { font-size: 13px; color: var(--fg-mute); transition: color .15s; }
.xbpage .xbpage-nav-links a:hover,
.xbpage .xbpage-nav-links a.active { color: var(--fg); }
.xbpage .xbpage-nav-cta { padding: 9px 16px; background: var(--accent); color: #fff !important; font-size: 13px; font-weight: 500; border-radius: 2px; }
@media (max-width: 1000px) { .xbpage .xbpage-nav-links { display: none; } }

/* We now use Salient's native header + footer, so no custom top pad needed */
.xbpage .xbpage-main { padding-top: 0; }

/* -- Buttons --------------------------------------------------------------- */
.xbpage .btn           { display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; font-size: 13px; font-weight: 500; border-radius: 2px; transition: all .15s; font-family: inherit; }
.xbpage .btn-primary   { background: var(--accent); color: #fff; }
.xbpage .btn-primary:hover  { background: var(--accent-2); color: #fff; }
.xbpage .btn-ghost     { color: var(--fg); border: 1px solid var(--line-2); }
.xbpage .btn-ghost:hover { border-color: var(--fg); }

/* -- Page hero ------------------------------------------------------------- */
.xbpage .page-hero { padding: 80px var(--pad) 60px; border-bottom: 1px solid var(--line); position: relative; overflow: hidden; }
.xbpage .page-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 50%, rgba(255,74,28,.12), transparent 60%); pointer-events: none; }
.xbpage .page-hero .wrap { position: relative; }
.xbpage .page-hero h1 { font-family: var(--display); font-weight: 500; font-size: clamp(48px, 8vw, 112px); letter-spacing: -.04em; line-height: .92; margin-top: 24px; max-width: 16ch; color: var(--fg) !important; }
.xbpage .page-hero h1 em { font-style: italic; color: var(--accent) !important; font-weight: 400; }
.xbpage .page-hero .sub { max-width: 54ch; margin-top: 28px; color: var(--fg-mute) !important; font-size: 17px; line-height: 1.5; }
.xbpage .breadcrumb { display: flex; gap: 10px; font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); }
.xbpage .breadcrumb a, .xbpage .breadcrumb span { color: var(--fg-mute) !important; }
.xbpage .breadcrumb a:hover { color: var(--fg) !important; }
.xbpage .breadcrumb .sep { color: var(--fg-dim) !important; }

/* -- Placeholders / image frames ------------------------------------------- */
.xbpage .ph { position: relative; overflow: hidden; background: repeating-linear-gradient(135deg, transparent 0 14px, rgba(245,245,242,.03) 14px 15px), var(--bg-1); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-dim); }
.xbpage .ph-label { position: relative; z-index: 2; padding: 6px 10px; background: var(--bg); border: 1px solid var(--line); }
.xbpage .img-frame { background: var(--bg-1); border: 1px solid var(--line); overflow: hidden; position: relative; }
.xbpage .img-frame img { width: 100%; height: 100%; object-fit: cover; }

.xbpage .pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid var(--line-2); border-radius: 99px; font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-mute); }

/* -- Footer ---------------------------------------------------------------- */
.xbpage .xbpage-footer        { border-top: 1px solid var(--line); padding: 80px 0 32px; margin-top: 80px; background: var(--bg); }
.xbpage .xbpage-footer-grid   { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 64px; padding: 0 var(--pad); max-width: var(--maxw); margin-left: auto; margin-right: auto; }
@media (max-width: 800px) { .xbpage .xbpage-footer-grid { grid-template-columns: 1fr 1fr; } }
.xbpage .xbpage-footer h4 { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); margin-bottom: 16px; font-weight: 500; }
.xbpage .xbpage-footer ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.xbpage .xbpage-footer ul a { font-size: 14px; }
.xbpage .xbpage-footer ul a:hover { color: var(--accent); }
.xbpage .xbpage-footer-bottom { display: flex; justify-content: space-between; padding: 32px var(--pad) 0; border-top: 1px solid var(--line); font-size: 12px; color: var(--fg-dim); font-family: var(--mono); letter-spacing: .08em; text-transform: uppercase; max-width: var(--maxw); margin: 0 auto; gap: 20px; flex-wrap: wrap; }

/* ==========================================================================
 *  CONTACT PAGE (page-xboom-contact.php)
 * ========================================================================== */
.xbpage .contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; }
@media (max-width: 900px) { .xbpage .contact-grid { grid-template-columns: 1fr; } }

.xbpage .info-card   { padding: 28px; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 14px; background: var(--bg); }
.xbpage .info-card .k { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent) !important; }
.xbpage .info-card h3 { font-family: var(--display); font-size: 22px; font-weight: 500; letter-spacing: -.02em; color: var(--fg) !important; }
.xbpage .info-card p, .xbpage .info-card a { color: var(--fg-mute) !important; font-size: 14px; line-height: 1.5; }
.xbpage .info-card strong { color: var(--fg) !important; }
.xbpage .info-card a:hover { color: var(--accent) !important; }
.xbpage .info-stack  { display: flex; flex-direction: column; gap: 16px; }

.xbpage .quick-row  { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 32px; }
.xbpage .quick      { background: var(--bg); padding: 20px; min-height: 140px; display: flex; flex-direction: column; gap: 8px; cursor: pointer; transition: background .2s; text-decoration: none !important; }
.xbpage .quick:hover { background: var(--bg-1); }
.xbpage .quick .n   { font-family: var(--mono); font-size: 10px; color: var(--accent) !important; letter-spacing: .14em; }
.xbpage .quick h5   { font-family: var(--display); font-size: 16px; font-weight: 500; letter-spacing: -.01em; color: var(--fg) !important; }
.xbpage .quick p    { font-size: 12px; color: var(--fg-mute) !important; line-height: 1.5; }
@media (max-width: 900px) { .xbpage .quick-row { grid-template-columns: 1fr 1fr; } }

/* Compact map strip (was full 3/2, user said too big) */
.xbpage .map-card   { height: 140px; background: linear-gradient(135deg, var(--bg-1), var(--bg-2)); border: 1px solid var(--line); position: relative; overflow: hidden; }
.xbpage .map-card::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 32px 32px; opacity: .5; }
.xbpage .map-card .pin { position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(255,74,28,.2), 0 0 0 9px rgba(255,74,28,.08); }
.xbpage .map-card .lbl { position: absolute; font-family: var(--mono); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg); background: var(--bg); padding: 3px 7px; border: 1px solid var(--line); white-space: nowrap; }

/* Base [xbm_form] layout (mobile-first, works on light or dark background) */
.xbm-form              { display: flex; flex-direction: column; gap: 20px; width: 100%; }
.xbm-form-head h3      { font-size: 20px; font-weight: 500; letter-spacing: -.01em; margin-bottom: 4px; }
.xbm-form-head p       { font-size: 14px; color: inherit; opacity: .7; }
.xbm-form-grid         { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.xbm-field             { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.xbm-field--textarea,
.xbm-field--select,
.xbm-field--full       { grid-column: 1 / -1; }
.xbm-field-label       { font-size: 12px; letter-spacing: .06em; }
.xbm-field-label em    { color: #ff4a1c; font-style: normal; }
.xbm-field input,
.xbm-field select,
.xbm-field textarea    { width: 100%; font: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid currentColor; background: transparent; border-radius: 0; color: inherit; }
.xbm-field textarea    { min-height: 120px; resize: vertical; }
.xbm-hp                { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }
.xbm-form-foot         { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.xbm-form-submit       { appearance: none; border: none; cursor: pointer; padding: 13px 22px; font-size: 14px; font-weight: 500; background: #ff4a1c; color: #fff; border-radius: 2px; }
.xbm-form-submit:disabled { opacity: .5; cursor: not-allowed; }
.xbm-form-status       { font-size: 13px; opacity: .8; }
.xbm-form-status.is-ok { color: #2b9c55; }
.xbm-form-status.is-err{ color: #c0392b; }

/* Force 2-col grid → 1-col on narrow screens */
@media (max-width: 640px) { .xbm-form-grid { grid-template-columns: 1fr; } }

/* Dark-theme overrides for the form when inside .xbpage */
.xbpage .xbm-form              { color: var(--fg); font-family: var(--body); }
.xbpage .xbm-form-head h3      { font-family: var(--display); color: var(--fg) !important; }
.xbpage .xbm-field-label       { font-family: var(--mono); color: var(--fg-mute) !important; letter-spacing: .14em; font-size: 10px; text-transform: uppercase; }
.xbpage .xbm-field input,
.xbpage .xbm-field select,
.xbpage .xbm-field textarea    { background: var(--bg-1); color: var(--fg); border: 1px solid var(--line); border-radius: 0; padding: 14px 16px; font-size: 16px; }
.xbpage .xbm-field input:focus,
.xbpage .xbm-field select:focus,
.xbpage .xbm-field textarea:focus { border-color: var(--accent); outline: none; }
.xbpage .xbm-form-submit       { background: var(--accent); color: #fff; }
.xbpage .xbm-form-submit:hover { background: var(--accent-2); }

/* ==========================================================================
 *  ABOUT PAGE (page-xboom-about.php)
 * ========================================================================== */
.xbpage .story { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.xbpage .story h2 { font-family: var(--display); font-size: clamp(32px, 4vw, 56px); font-weight: 500; letter-spacing: -.03em; line-height: 1.02; color: var(--fg); }
.xbpage .story p  { color: var(--fg-mute); font-size: 16px; line-height: 1.6; margin-top: 20px; max-width: 56ch; }
.xbpage .story p + p { margin-top: 16px; }
@media (max-width: 900px) { .xbpage .story { grid-template-columns: 1fr; gap: 40px; } }

.xbpage .timeline  { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .milestone { background: var(--bg); padding: 28px; min-height: 220px; display: flex; flex-direction: column; gap: 10px; }
.xbpage .milestone .yr { font-family: var(--display); font-size: 36px; font-weight: 500; letter-spacing: -.03em; color: var(--accent); }
.xbpage .milestone h4 { font-family: var(--display); font-size: 16px; font-weight: 500; letter-spacing: -.01em; color: var(--fg); }
.xbpage .milestone p  { font-size: 12px; color: var(--fg-mute); line-height: 1.5; }
@media (max-width: 900px) { .xbpage .timeline { grid-template-columns: 1fr 1fr; } }

.xbpage .brand-wall { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .brand-card { background: var(--bg); padding: 28px; min-height: 180px; display: flex; flex-direction: column; gap: 12px; transition: background .2s; }
.xbpage .brand-card:hover { background: var(--bg-1); }
.xbpage .brand-card .name { font-family: var(--display); font-size: 28px; font-weight: 500; letter-spacing: -.02em; color: var(--fg); }
.xbpage .brand-card p     { font-size: 12px; color: var(--fg-mute); line-height: 1.5; }
.xbpage .brand-card .tag  { font-family: var(--mono); font-size: 9px; letter-spacing: .14em; color: var(--accent); text-transform: uppercase; }
@media (max-width: 900px) { .xbpage .brand-wall { grid-template-columns: 1fr 1fr; } }

.xbpage .offices { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .office  { background: var(--bg); padding: 40px; min-height: 280px; display: flex; flex-direction: column; gap: 14px; }
.xbpage .office .city { font-family: var(--display); font-size: 48px; font-weight: 500; letter-spacing: -.03em; line-height: 1; color: var(--fg); }
.xbpage .office .role { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; color: var(--accent); }
.xbpage .office p     { color: var(--fg-mute); font-size: 14px; line-height: 1.55; }
.xbpage .office .addr { margin-top: auto; font-family: var(--mono); font-size: 11px; color: var(--fg-dim); letter-spacing: .06em; line-height: 1.7; }
@media (max-width: 900px) { .xbpage .offices { grid-template-columns: 1fr; } }

/* -- Moments gallery (real photos on About) -------------------------------- */
.xbpage .moments { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .moment { background: var(--bg); display: flex; flex-direction: column; overflow: hidden; transition: background .2s; position: relative; margin: 0; }
.xbpage .moment:hover { background: var(--bg-1); }
.xbpage .moment-img { position: relative; aspect-ratio: 4/5; overflow: hidden; background: var(--bg-1); }
.xbpage .moment-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease, filter .3s ease; filter: saturate(.9); }
.xbpage .moment:hover .moment-img img { transform: scale(1.04); filter: saturate(1); }
.xbpage .moment figcaption { padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.xbpage .moment .tag { font-family: var(--mono); font-size: 9px; letter-spacing: .14em; color: var(--accent) !important; text-transform: uppercase; }
.xbpage .moment .cap { font-size: 12px; color: var(--fg-mute) !important; line-height: 1.4; }
@media (max-width: 1100px) { .xbpage .moments { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .xbpage .moments { grid-template-columns: repeat(2, 1fr); } .xbpage .moment-img { aspect-ratio: 1/1; } .xbpage .moment figcaption { padding: 10px 12px 14px; } .xbpage .moment .cap { font-size: 11px; } }

.xbpage .values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .val    { background: var(--bg); padding: 28px; min-height: 220px; display: flex; flex-direction: column; gap: 12px; }
.xbpage .val .n { font-family: var(--mono); font-size: 10px; color: var(--accent); letter-spacing: .14em; }
.xbpage .val h4 { font-family: var(--display); font-size: 20px; font-weight: 500; letter-spacing: -.02em; color: var(--fg); }
.xbpage .val p  { font-size: 13px; color: var(--fg-mute); line-height: 1.55; }
@media (max-width: 900px) { .xbpage .values { grid-template-columns: 1fr 1fr; } }

/* ==========================================================================
 *  Keep Salient's native header + footer — user wants the base chrome
 *  on every page, the templates only provide the editorial body.
 *  We also hide Salient's default .page-header (the big title banner)
 *  because our template ships its own hero section.
 * ========================================================================== */
body.xbpage-template #page-header-bg,
body.xbpage-template .container-wrap > .page-header,
body.xbpage-template .nectar-page-header { display: none !important; }
body.xbpage-template .container-wrap { padding: 0 !important; background: transparent !important; }
body.xbpage-template #ajax-content-wrap,
body.xbpage-template #wrap-inner { background: transparent !important; }
/* Let our dark hero flow tight against the site header */
body.xbpage-template .xbpage { padding-top: 0 !important; }

/* ==========================================================================
 *  Mobile tightening — <= 640px (phones)
 * ========================================================================== */
@media (max-width: 640px) {
	.xbpage { font-size: 14px; }
	.xbpage .section      { padding: 48px 0; }
	.xbpage .section-head { margin-bottom: 28px; }
	.xbpage .page-hero    { padding: 40px var(--pad) 36px; }
	.xbpage .page-hero h1 { font-size: clamp(34px, 11vw, 54px) !important; line-height: .95; margin-top: 18px; max-width: 18ch; }
	.xbpage .page-hero .sub { font-size: 15px; margin-top: 18px; }
	.xbpage .h1           { font-size: clamp(38px, 11vw, 60px) !important; }
	.xbpage .h2           { font-size: clamp(28px, 8vw, 44px) !important; }
	.xbpage .h3           { font-size: clamp(20px, 5vw, 26px) !important; }
	.xbpage .breadcrumb   { font-size: 9px; }
	.xbpage .eyebrow      { font-size: 10px; }
	.xbpage .lead         { font-size: 14px; }
	.xbpage .contact-grid { gap: 32px; }
	.xbpage .info-card    { padding: 20px; }
	.xbpage .info-card h3 { font-size: 18px !important; }
	.xbpage .map-card     { height: 110px; }
	.xbpage .map-card .lbl { font-size: 8px; padding: 2px 5px; }
	.xbpage .quick-row    { grid-template-columns: 1fr; }
	.xbpage .quick        { min-height: 110px; padding: 18px; }
	.xbpage .quick h5     { font-size: 15px !important; }
	.xbpage .story        { gap: 28px; }
	.xbpage .story h2     { font-size: clamp(28px, 8vw, 40px) !important; }
	.xbpage .story p      { font-size: 14px; margin-top: 14px; }
	.xbpage .timeline,
	.xbpage .brand-wall,
	.xbpage .values       { grid-template-columns: 1fr !important; }
	.xbpage .milestone,
	.xbpage .brand-card,
	.xbpage .val          { min-height: 0; padding: 22px; }
	.xbpage .milestone .yr{ font-size: 28px; }
	.xbpage .office       { padding: 24px; min-height: 0; }
	.xbpage .office .city { font-size: 34px; }
	.xbpage .btn          { padding: 12px 18px; font-size: 13px; }
	.xbpage .xbm-form-submit { width: 100%; padding: 15px 22px; font-size: 15px; }
	.xbpage .xbm-form-foot { flex-direction: column; align-items: stretch; }
	.xbpage .xbm-form-status { text-align: center; }
}

/* Tablet / small-laptop band — 641..900 */
@media (min-width: 641px) and (max-width: 900px) {
	.xbpage .quick-row { grid-template-columns: 1fr 1fr; }
	.xbpage .page-hero { padding: 60px var(--pad) 50px; }
	.xbpage .section   { padding: 64px 0; }
}

/* ==========================================================================
 *  HOME PAGE (page-xboom-home.php)
 *  Scoped under .xbhome so the rest of the editorial pages are untouched.
 * ========================================================================== */

/* ---- 01 · HERO ---------------------------------------------------------- */
.xbpage .xbhome-hero            { position: relative; padding: clamp(80px, 12vh, 140px) 0 clamp(60px, 10vh, 120px); overflow: hidden; border-bottom: 1px solid var(--line); }
.xbpage .xbhome-hero-bg         { position: absolute; inset: 0; pointer-events: none; }
.xbpage .xbhome-hero-grid       { position: absolute; inset: 0; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 64px 64px; mask-image: radial-gradient(ellipse at 50% 40%, #000 20%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 20%, transparent 75%); opacity: .7; }
.xbpage .xbhome-hero-glow       { position: absolute; inset: -20%; background: radial-gradient(ellipse at 70% 30%, rgba(255,74,28,.18), transparent 55%), radial-gradient(ellipse at 20% 70%, rgba(74,156,255,.08), transparent 55%); }
.xbpage .xbhome-hero-inner      { position: relative; display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.xbpage .xbhome-hero-eyebrow    { display: inline-flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); margin-bottom: 24px; flex-wrap: wrap; }
.xbpage .xbhome-hero-eyebrow span { display: inline-flex; align-items: center; gap: 6px; }
.xbpage .xbhome-hero-eyebrow .dot     { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); display: inline-block; }
.xbpage .xbhome-hero-eyebrow .dot.air   { background: #4a9cff; }
.xbpage .xbhome-hero-eyebrow .dot.land  { background: var(--accent); }
.xbpage .xbhome-hero-eyebrow .dot.water { background: #4af0ff; }
.xbpage .xbhome-hero-eyebrow .bar     { width: 22px; height: 1px; background: var(--line-2); }
.xbpage .xbhome-hero h1         { font-family: var(--display); font-weight: 500; font-size: clamp(44px, 9vw, 120px); letter-spacing: -.04em; line-height: .92; color: var(--fg) !important; }
.xbpage .xbhome-hero h1 em      { font-style: italic; color: var(--accent) !important; font-weight: 400; }
.xbpage .xbhome-hero-sub        { font-size: clamp(15px, 1.4vw, 19px); color: var(--fg-mute) !important; line-height: 1.55; max-width: 52ch; margin-top: 28px; }
.xbpage .xbhome-hero-ctas       { display: flex; gap: 12px; margin-top: 32px; flex-wrap: wrap; }

.xbpage .xbhome-hero-side       { display: flex; flex-direction: column; gap: 18px; padding-top: 8px; }
.xbpage .xbhome-hero-side .pill { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--line-2); border-radius: 99px; font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-mute); }
.xbpage .xbhome-hero-side .dot-live { width: 6px; height: 6px; border-radius: 50%; background: #52d36c; box-shadow: 0 0 0 3px rgba(82,211,108,.2); animation: xbhome-pulse 2s ease-in-out infinite; }
@keyframes xbhome-pulse { 0%,100% { box-shadow: 0 0 0 3px rgba(82,211,108,.2); } 50% { box-shadow: 0 0 0 8px rgba(82,211,108,0); } }

.xbpage .xbhome-hero-stats      { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .xbhome-hero-stats > div{ background: var(--bg); padding: 20px; display: flex; flex-direction: column; gap: 4px; }
.xbpage .xbhome-hero-stats .n   { font-family: var(--display); font-size: clamp(28px, 3vw, 40px); font-weight: 500; letter-spacing: -.03em; color: var(--fg); line-height: 1; }
.xbpage .xbhome-hero-stats .plus{ color: var(--accent); }
.xbpage .xbhome-hero-stats .l   { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); }

.xbpage .xbhome-hero-domains    { display: flex; flex-direction: column; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .xbhome-hero-domains .dom { background: var(--bg); padding: 14px 18px; display: grid; grid-template-columns: 18px auto 1fr; gap: 12px; align-items: center; font-size: 13px; transition: background .2s; }
.xbpage .xbhome-hero-domains .dom:hover { background: var(--bg-1); }
.xbpage .xbhome-hero-domains .dom strong { font-family: var(--display); font-weight: 500; color: var(--fg); letter-spacing: -.01em; }
.xbpage .xbhome-hero-domains .dom span   { color: var(--fg-mute); font-size: 12px; justify-self: end; }
.xbpage .xbhome-hero-domains .sw         { width: 12px; height: 12px; border-radius: 2px; display: inline-block; }
.xbpage .xbhome-hero-domains .sw.air     { background: #4a9cff; }
.xbpage .xbhome-hero-domains .sw.land    { background: var(--accent); }
.xbpage .xbhome-hero-domains .sw.water   { background: #4af0ff; }

/* ---- 02 · TRUST STRIP ---------------------------------------------------- */
.xbpage .xbhome-trust            { padding: 48px 0 0; border-bottom: 1px solid var(--line); }
.xbpage .xbhome-trust-label      { font-family: var(--mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-mute); margin-bottom: 24px; text-align: center; }
.xbpage .xbhome-marquee          { overflow: hidden; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--bg-1); }
.xbpage .xbhome-marquee-track    { display: inline-flex; white-space: nowrap; animation: xbhome-marquee 45s linear infinite; }
.xbpage .xbhome-marquee .brand   { display: inline-flex; align-items: center; gap: 24px; padding: 0 28px; font-family: var(--display); font-size: clamp(18px, 2vw, 24px); font-weight: 500; letter-spacing: -.02em; color: var(--fg-mute); }
.xbpage .xbhome-marquee .brand .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); }
@keyframes xbhome-marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.xbpage .xbhome-counter-row      { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line); border-left: 1px solid var(--line); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 0; }
.xbpage .xbhome-counter-row .cell{ background: var(--bg); padding: 32px 24px; display: flex; flex-direction: column; gap: 8px; }
.xbpage .xbhome-counter-row .n   { font-family: var(--display); font-size: clamp(28px, 3.5vw, 44px); font-weight: 500; letter-spacing: -.03em; color: var(--fg); line-height: 1; }
.xbpage .xbhome-counter-row .plus{ color: var(--accent); }
.xbpage .xbhome-counter-row .unit{ color: var(--fg-mute); font-size: .55em; font-family: var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.xbpage .xbhome-counter-row .l   { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); }

/* ---- 03 · DOMAIN PILLARS ------------------------------------------------- */
.xbpage .domains-grid            { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .domain-card             { background: var(--bg); padding: 0; display: flex; flex-direction: column; color: inherit; text-decoration: none !important; transition: background .2s; position: relative; overflow: hidden; }
.xbpage .domain-card:hover       { background: var(--bg-1); }
.xbpage .domain-card .pic        { aspect-ratio: 4/3; overflow: hidden; background: var(--bg-1); border-bottom: 1px solid var(--line); position: relative; }
.xbpage .domain-card .pic::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(10,10,10,.4) 100%); pointer-events: none; }
.xbpage .domain-card .pic img    { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.xbpage .domain-card:hover .pic img { transform: scale(1.04); }
.xbpage .domain-card .top        { display: flex; justify-content: space-between; padding: 20px 24px 8px; }
.xbpage .domain-card .num        { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; color: var(--accent) !important; text-transform: uppercase; }
.xbpage .domain-card .body       { padding: 8px 24px 28px; display: flex; flex-direction: column; gap: 14px; }
.xbpage .domain-card h3          { font-family: var(--display); font-size: clamp(22px, 2.4vw, 32px); font-weight: 500; letter-spacing: -.02em; line-height: 1.05; color: var(--fg) !important; }
.xbpage .domain-card p           { font-size: 13px; color: var(--fg-mute) !important; line-height: 1.55; }
.xbpage .domain-card .go         { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent) !important; margin-top: auto; }

/* ---- 04 · INDUSTRIES ---------------------------------------------------- */
.xbpage .industry-grid           { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .ind-tile                { background: var(--bg); padding: 28px 24px; min-height: 180px; display: flex; flex-direction: column; gap: 10px; transition: background .2s; }
.xbpage .ind-tile:hover          { background: var(--bg-1); }
.xbpage .ind-tile .num           { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent) !important; }
.xbpage .ind-tile h4             { font-family: var(--display); font-size: 18px; font-weight: 500; letter-spacing: -.01em; color: var(--fg) !important; }
.xbpage .ind-tile p              { font-size: 13px; color: var(--fg-mute) !important; line-height: 1.5; }

/* ---- 05 · FEATURED PRODUCTS --------------------------------------------- */
.xbpage .products-grid           { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .product-card            { background: var(--bg); display: flex; flex-direction: column; color: inherit !important; text-decoration: none !important; transition: background .2s; }
.xbpage .product-card:hover      { background: var(--bg-1); }
.xbpage .product-card .pic       { position: relative; aspect-ratio: 1/1; overflow: hidden; background: var(--bg-1); border-bottom: 1px solid var(--line); }
.xbpage .product-card .pic img   { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.xbpage .product-card:hover .pic img { transform: scale(1.05); }
.xbpage .product-card .tag       { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 4px 8px; background: var(--bg); border: 1px solid var(--line-2); font-family: var(--mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent) !important; }
.xbpage .product-card .body      { padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.xbpage .product-card .brand     { font-family: var(--mono); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute) !important; }
.xbpage .product-card h4         { font-family: var(--display); font-size: 18px; font-weight: 500; letter-spacing: -.01em; color: var(--fg) !important; margin-top: 2px; }
.xbpage .product-card .spec      { font-size: 12px; color: var(--fg-mute) !important; line-height: 1.5; flex: 1; }
.xbpage .product-card .foot      { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); padding-top: 12px; margin-top: 8px; }
.xbpage .product-card .price     { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: var(--accent) !important; text-transform: uppercase; }
.xbpage .product-card .cart      { color: var(--fg-mute); font-size: 16px; }
.xbpage .section-foot            { text-align: center; margin-top: 40px; }

/* ---- 06 · ECOSYSTEM ------------------------------------------------------ */
.xbpage .eco-row                 { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .eco-cell                { background: var(--bg); padding: 28px 20px; min-height: 140px; display: flex; flex-direction: column; gap: 8px; transition: background .2s; }
.xbpage .eco-cell:hover          { background: var(--bg-1); }
.xbpage .eco-cell h5             { font-family: var(--display); font-size: 15px; font-weight: 500; letter-spacing: -.01em; color: var(--fg) !important; }
.xbpage .eco-cell p              { font-size: 12px; color: var(--fg-mute) !important; line-height: 1.5; }

/* ---- 07 · DRONE LIGHT SHOWS --------------------------------------------- */
.xbpage .xbhome-shows            { position: relative; min-height: 520px; overflow: hidden; background: linear-gradient(180deg, #05050a 0%, #0a0a0f 60%, var(--bg) 100%); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; align-items: center; padding: clamp(72px, 10vh, 120px) 0; }
.xbpage .xbhome-shows-visual     { position: absolute; inset: 0; pointer-events: none; }
.xbpage .xbhome-shows-sky        { position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 40%, rgba(74,156,255,.1), transparent 55%), radial-gradient(ellipse at 75% 30%, rgba(255,74,28,.12), transparent 50%); }
.xbpage .xbhome-shows-dots       { position: absolute; inset: 0; }
.xbpage .xbhome-shows-dots .d    { position: absolute; border-radius: 50%; animation: xbhome-twinkle 2.8s ease-in-out infinite; }
@keyframes xbhome-twinkle { 0%,100% { opacity: .3; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.1); } }
.xbpage .xbhome-shows-body       { position: relative; z-index: 2; max-width: 600px; }
.xbpage .xbhome-shows-body .eyebrow { color: var(--accent) !important; }
.xbpage .xbhome-shows-body .eyebrow::before { background: #fff; }
.xbpage .xbhome-shows-body h2    { color: var(--fg) !important; }
.xbpage .xbhome-shows-body p     { font-size: 16px; color: var(--fg-mute) !important; line-height: 1.55; margin-top: 20px; max-width: 52ch; }
.xbpage .xbhome-shows-bullets    { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-direction: column; gap: 10px; }
.xbpage .xbhome-shows-bullets li { position: relative; padding-left: 22px; font-size: 14px; color: var(--fg) !important; }
.xbpage .xbhome-shows-bullets li::before { content: ''; position: absolute; left: 0; top: 7px; width: 10px; height: 1px; background: var(--accent); }
.xbpage .xbhome-shows-ctas       { display: flex; gap: 12px; margin-top: 32px; flex-wrap: wrap; }

/* ---- 08 · PARTNERS ------------------------------------------------------- */
.xbpage .partners-grid           { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.xbpage .partner-cell            { background: var(--bg); padding: 28px 18px; min-height: 100px; display: flex; align-items: center; justify-content: center; text-align: center; font-family: var(--display); font-size: 17px; font-weight: 500; letter-spacing: -.01em; color: var(--fg-mute); transition: background .2s, color .2s; }
.xbpage .partner-cell:hover      { background: var(--bg-1); color: var(--fg); }

/* ---- 09 · FINAL CTA ----------------------------------------------------- */
.xbpage .xbhome-final            { position: relative; padding: clamp(80px, 12vh, 140px) 0; text-align: center; border-top: 1px solid var(--line); overflow: hidden; }
.xbpage .xbhome-final::before    { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, rgba(255,74,28,.15), transparent 60%); pointer-events: none; }
.xbpage .xbhome-final .wrap      { position: relative; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.xbpage .xbhome-final h2         { font-family: var(--display); font-size: clamp(32px, 5.5vw, 72px); font-weight: 500; letter-spacing: -.03em; line-height: 1.02; color: var(--fg) !important; max-width: 22ch; }
.xbpage .xbhome-final p          { color: var(--fg-mute) !important; font-size: 16px; max-width: 52ch; }
.xbpage .xbhome-final-ctas       { display: flex; gap: 12px; margin-top: 12px; flex-wrap: wrap; justify-content: center; }

/* ---- TABLET & MOBILE breakpoints for HOME only -------------------------- */
@media (max-width: 1100px) {
	.xbpage .xbhome-counter-row    { grid-template-columns: repeat(3, 1fr); }
	.xbpage .xbhome-counter-row .cell:nth-child(4),
	.xbpage .xbhome-counter-row .cell:nth-child(5) { grid-column: span 1; }
	.xbpage .industry-grid         { grid-template-columns: repeat(2, 1fr); }
	.xbpage .products-grid         { grid-template-columns: repeat(3, 1fr); }
	.xbpage .eco-row               { grid-template-columns: repeat(3, 1fr); }
	.xbpage .partners-grid         { grid-template-columns: repeat(4, 1fr); }
	.xbpage .domains-grid          { grid-template-columns: 1fr; }
	.xbpage .domain-card .pic      { aspect-ratio: 16/9; }
}

@media (max-width: 900px) {
	.xbpage .xbhome-hero-inner     { grid-template-columns: 1fr; gap: 40px; }
	.xbpage .xbhome-hero-side      { padding-top: 0; }
	.xbpage .products-grid         { grid-template-columns: repeat(2, 1fr); }
	.xbpage .eco-row               { grid-template-columns: repeat(2, 1fr); }
	.xbpage .partners-grid         { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
	.xbpage .xbhome-hero           { padding: 48px 0 40px; }
	.xbpage .xbhome-hero h1        { font-size: clamp(38px, 12vw, 56px) !important; }
	.xbpage .xbhome-hero-sub       { font-size: 14px; margin-top: 20px; }
	.xbpage .xbhome-hero-ctas      { flex-direction: column; align-items: stretch; gap: 10px; margin-top: 24px; }
	.xbpage .xbhome-hero-ctas .btn { justify-content: center; }
	.xbpage .xbhome-hero-stats .n  { font-size: 26px !important; }
	.xbpage .xbhome-hero-stats > div { padding: 16px; }
	.xbpage .xbhome-hero-eyebrow   { font-size: 10px; gap: 8px; margin-bottom: 18px; }
	.xbpage .xbhome-hero-eyebrow .bar { width: 14px; }

	.xbpage .xbhome-trust          { padding: 32px 0 0; }
	.xbpage .xbhome-trust-label    { font-size: 9px; margin-bottom: 16px; }
	.xbpage .xbhome-marquee        { padding: 14px 0; }
	.xbpage .xbhome-marquee .brand { font-size: 16px; padding: 0 18px; gap: 16px; }
	.xbpage .xbhome-counter-row    { grid-template-columns: repeat(2, 1fr); }
	.xbpage .xbhome-counter-row .cell { padding: 20px 16px; }
	.xbpage .xbhome-counter-row .n { font-size: 24px !important; }
	.xbpage .xbhome-counter-row .l { font-size: 9px; }

	.xbpage .industry-grid         { grid-template-columns: 1fr 1fr; }
	.xbpage .ind-tile              { padding: 20px 16px; min-height: 130px; }
	.xbpage .ind-tile h4           { font-size: 15px !important; }
	.xbpage .ind-tile p            { font-size: 12px; }

	.xbpage .products-grid         { grid-template-columns: 1fr 1fr; }
	.xbpage .product-card .body    { padding: 12px 12px 14px; gap: 4px; }
	.xbpage .product-card h4       { font-size: 15px !important; }
	.xbpage .product-card .spec    { font-size: 11px; }
	.xbpage .product-card .price   { font-size: 10px; }
	.xbpage .product-card .tag     { top: 8px; left: 8px; font-size: 8px; padding: 3px 6px; }

	.xbpage .eco-row               { grid-template-columns: 1fr 1fr; }
	.xbpage .eco-cell              { padding: 20px 14px; min-height: 110px; }
	.xbpage .eco-cell h5           { font-size: 14px !important; }

	.xbpage .partners-grid         { grid-template-columns: repeat(2, 1fr); }
	.xbpage .partner-cell          { min-height: 72px; font-size: 14px; padding: 18px 10px; }

	.xbpage .domain-card .top      { padding: 16px 18px 4px; }
	.xbpage .domain-card .body     { padding: 6px 18px 22px; gap: 10px; }
	.xbpage .domain-card h3        { font-size: 22px !important; }
	.xbpage .domain-card p         { font-size: 13px; }

	.xbpage .xbhome-shows          { min-height: 0; padding: 48px 0; }
	.xbpage .xbhome-shows-body     { max-width: none; }
	.xbpage .xbhome-shows-body h2  { font-size: clamp(28px, 8vw, 40px) !important; }
	.xbpage .xbhome-shows-body p   { font-size: 14px; }
	.xbpage .xbhome-shows-ctas     { flex-direction: column; align-items: stretch; }
	.xbpage .xbhome-shows-ctas .btn{ justify-content: center; }

	.xbpage .xbhome-final          { padding: 56px 0; }
	.xbpage .xbhome-final h2       { font-size: clamp(26px, 8vw, 40px) !important; line-height: 1.05; }
	.xbpage .xbhome-final p        { font-size: 14px; }
	.xbpage .xbhome-final-ctas     { flex-direction: column; align-items: stretch; width: 100%; }
	.xbpage .xbhome-final-ctas .btn{ justify-content: center; }
}

/* Tablet band fine-tune */
@media (min-width: 641px) and (max-width: 900px) {
	.xbpage .xbhome-hero-stats     { grid-template-columns: repeat(4, 1fr); }
	.xbpage .xbhome-counter-row    { grid-template-columns: repeat(3, 1fr); }
	.xbpage .industry-grid         { grid-template-columns: repeat(2, 1fr); }
}
