/*
Theme Name: Boomslang Dynamics Child
Theme URI: https://boomslangdy.com
Description: Divi 5 child theme for the Boomslang Dynamics multipage website. Strict four colour industrial palette with South African gold accents, Poppins typography, scroll animations, enquiry endpoint with reCAPTCHA v3 and code module styling.
Author: Boomslang Dynamics
Author URI: https://boomslangdy.com
Template: Divi
Version: 2.6.1
*/

/* ==========================================================================
   BOOMSLANG DYNAMICS — Site styles
   Palette (strict): Industrial White #F4F4F4 · Titanium Silver #A8A9AD ·
   Matte Black #1A1A1A · South African Gold #FFB612 (buttons and accents)
   Only these four colours appear; every tint is an rgba of one of them.
   Type: Poppins (headings and tagline) · Source Sans 3 (body) ·
   Poppins (technical labels)
   All classes are prefixed bsd- to avoid collisions with Divi.
   ========================================================================== */

:root {
  --bsd-white: #F4F4F4;
  --bsd-carbon: #1A1A1A; /* legacy alias, resolves to matte black */
  --bsd-silver: #A8A9AD;
  --bsd-black: #1A1A1A;
  --bsd-orange: #FFB612;
  --bsd-panel: rgba(168, 169, 173, 0.08);
  --bsd-line-light: rgba(26, 26, 26, 0.14);
  --bsd-line-dark: rgba(168, 169, 173, 0.22);
  --bsd-font-head: 'Poppins', sans-serif;
  --bsd-font-body: 'Source Sans 3', sans-serif;
  --bsd-font-serif: 'Poppins', sans-serif;
  --bsd-font-mono: 'Poppins', sans-serif;
  --bsd-header-h: 76px;
  --bsd-container: 1240px;
  --bsd-gutter: clamp(1.25rem, 4vw, 3rem);
  --bsd-section-pad: clamp(4.5rem, 10vw, 8.5rem);
  --bsd-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Sideways scrolling is never legitimate on this site. hidden is the iOS
   fallback, clip the modern value. */
html { overflow-x: hidden; overflow-x: clip; }

/* ------- Base (scoped to bsd wrappers so Divi styles stay untouched) ---- */

.bsd-scope,
.bsd-scope *,
.bsd-scope *::before,
.bsd-scope *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.bsd-scope {
  overflow-x: clip;
  font-family: var(--bsd-font-body);
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  line-height: 1.65;
  color: var(--bsd-black, #1A1A1A);
  background: var(--bsd-white, #F4F4F4);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.bsd-scope :where(img) { max-width: 100%; display: block; height: auto; }
.bsd-scope :where(a) { color: inherit; text-decoration: none; }
.bsd-scope :where(ul) { list-style: none; }
.bsd-scope :where(button) { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }
.bsd-scope ::selection { background: var(--bsd-orange, #FFB612); color: var(--bsd-black, #1A1A1A); }
.bsd-scope :focus-visible { outline: 2px solid var(--bsd-black, #1A1A1A); outline-offset: 3px; }
.bsd-dark :focus-visible,
.bsd-hero :focus-visible,
.bsd-menu-overlay :focus-visible,
.bsd-header :focus-visible,
.bsd-footer :focus-visible { outline-color: var(--bsd-orange, #FFB612); }

.bsd-container {
  width: 100%;
  max-width: var(--bsd-container);
  margin-inline: auto;
  padding-inline: var(--bsd-gutter);
}

.bsd-section { padding-block: var(--bsd-section-pad); position: relative; }

/* Dark sections */
.bsd-dark {
  background: var(--bsd-black, #1A1A1A);
  color: var(--bsd-white, #F4F4F4);
}

/* Subtle grain on dark sections */
.bsd-grain::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
  z-index: 1;
}
.bsd-grain > .bsd-container { position: relative; z-index: 2; }

/* ------- Typography ------------------------------------------------------ */

.bsd-eyebrow {
  font-family: var(--bsd-font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--bsd-black, #1A1A1A);
  display: inline-flex;
  align-items: center;
  gap: 0.9em;
}
.bsd-eyebrow::before {
  content: "";
  width: 2.4em;
  height: 2px;
  background: var(--bsd-orange, #FFB612);
  flex: none;
}
.bsd-dark .bsd-eyebrow,
.bsd-hero .bsd-eyebrow { color: var(--bsd-orange, #FFB612); }

.bsd-h1 {
  font-family: var(--bsd-font-head);
  font-weight: 600;
  font-size: clamp(2.3rem, 1.4rem + 4.4vw, 4.6rem);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

.bsd-h2 {
  font-family: var(--bsd-font-head);
  font-weight: 600;
  font-size: clamp(1.85rem, 1.3rem + 2.6vw, 3.2rem);
  line-height: 1.12;
  letter-spacing: -0.015em;
}

.bsd-h3 {
  font-family: var(--bsd-font-head);
  font-weight: 600;
  font-size: clamp(1.15rem, 1rem + 0.7vw, 1.45rem);
  line-height: 1.25;
}

.bsd-serif {
  font-family: var(--bsd-font-head);
  font-style: italic;
  font-weight: 600;
  letter-spacing: 0.005em;
}

.bsd-lead {
  font-size: clamp(1.1rem, 1rem + 0.5vw, 1.3rem);
  line-height: 1.6;
  color: var(--bsd-carbon, #1A1A1A);
}
.bsd-dark .bsd-lead { color: var(--bsd-silver, #A8A9AD); }

.bsd-body-muted { color: rgba(26, 26, 26, 0.74); }
.bsd-dark .bsd-body-muted { color: rgba(244, 244, 244, 0.72); }

.bsd-mono {
  font-family: var(--bsd-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

/* Section heading block */
.bsd-section-head { max-width: 46em; margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.bsd-section-head .bsd-h2 { margin-top: 1.1rem; }
.bsd-section-head .bsd-lead { margin-top: 1.2rem; }

/* ------- Buttons ---------------------------------------------------------- */

.bsd-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  font-family: var(--bsd-font-head);
  font-weight: 600;
  font-size: 0.86rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 1.05em 1.9em;
  border: 1px solid transparent;
  transition: transform 0.35s var(--bsd-ease), background 0.35s, color 0.35s, border-color 0.35s;
  position: relative;
}
.bsd-btn svg { width: 1em; height: 1em; transition: transform 0.35s var(--bsd-ease); }
.bsd-btn:hover svg { transform: translateX(0.3em); }

.bsd-btn--solid { background: var(--bsd-orange, #FFB612); color: var(--bsd-black, #1A1A1A); }
.bsd-btn--solid:hover {
  background: var(--bsd-black, #1A1A1A);
  color: var(--bsd-orange, #FFB612);
  box-shadow: inset 0 0 0 1px var(--bsd-orange, #FFB612);
  transform: translateY(-2px);
}

.bsd-btn--ghost { border-color: var(--bsd-silver, #A8A9AD); color: var(--bsd-white, #F4F4F4); }
.bsd-btn--ghost:hover { border-color: var(--bsd-white, #F4F4F4); background: rgba(244, 244, 244, 0.08); transform: translateY(-2px); }

.bsd-btn--ghost-dark { border-color: var(--bsd-carbon, #1A1A1A); color: var(--bsd-black, #1A1A1A); }
.bsd-btn--ghost-dark:hover { background: var(--bsd-black, #1A1A1A); color: var(--bsd-white, #F4F4F4); transform: translateY(-2px); }

/* ------- Header / Navigation --------------------------------------------- */

.bsd-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 99990;
  /* Fixed bar height with flex centering: logo and nav sit dead centre
     between the top and bottom edges. Solid matte black from the first
     frame, no dependency on scroll state. */
  height: var(--bsd-header-h, 76px);
  display: flex;
  align-items: center;
  background: var(--bsd-black, #1A1A1A);
  transition: box-shadow 0.4s, transform 0.4s;
}
/* The header spans the full viewport: logo hugs the left edge, navigation
   hugs the right, instead of floating inside the 1240px content column. */
.bsd-header .bsd-container {
  max-width: none;
  width: 100%;
  padding-inline: clamp(1.25rem, 2.5vw, 2.75rem);
}
.bsd-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.bsd-header.is-scrolled {
  box-shadow: 0 1px 0 rgba(168, 169, 173, 0.18);
}

.bsd-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--bsd-white, #F4F4F4);
}
.bsd-logo svg { width: 44px; height: 44px; flex: none; }
.bsd-logo img {
  height: 48px;
  width: auto;
  display: block;
}
.bsd-footer .bsd-logo img { height: 56px; }
.bsd-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.bsd-logo__name {
  font-family: var(--bsd-font-head);
  font-weight: 700;
  font-size: 1.02rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.bsd-logo__name em { font-style: normal; color: var(--bsd-orange, #FFB612); }
@media (max-width: 480px) {
  :root { --bsd-header-h: 62px; }
  .bsd-logo svg { width: 36px; height: 36px; }
  .bsd-logo img { height: 42px; }
  .bsd-logo__name { font-size: 0.82rem; letter-spacing: 0.1em; white-space: nowrap; }
  .bsd-logo__tag { font-size: 0.5rem; letter-spacing: 0.26em; }
}

/* Emblem colour mapping. Custom properties pierce the svg use shadow DOM,
   classes do not, so every colour in the mark is var() driven. */
.bsd-mark--ondark {
  --mk-africa: var(--bsd-silver, #A8A9AD);
  --mk-s1: var(--bsd-silver, #A8A9AD);
  --mk-s2: var(--bsd-silver, #A8A9AD);
  --mk-s3: var(--bsd-white, #F4F4F4);
  --mk-head: var(--bsd-white, #F4F4F4);
  --mk-tongue: var(--bsd-orange, #FFB612);
  --mk-eye: var(--bsd-black, #1A1A1A);
}
.bsd-mark--onlight {
  --mk-africa: var(--bsd-carbon, #1A1A1A);
  --mk-s1: var(--bsd-silver, #A8A9AD);
  --mk-s2: var(--bsd-carbon, #1A1A1A);
  --mk-s3: var(--bsd-black, #1A1A1A);
  --mk-head: var(--bsd-black, #1A1A1A);
  --mk-tongue: var(--bsd-orange, #FFB612);
  --mk-eye: var(--bsd-white, #F4F4F4);
}
.bsd-logo__tag {
  font-family: var(--bsd-font-mono);
  font-size: 0.56rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--bsd-silver, #A8A9AD);
  margin-top: 0.3em;
}

.bsd-nav { display: flex; align-items: center; gap: clamp(1.2rem, 2.4vw, 2.4rem); }
.bsd-nav__link {
  font-family: var(--bsd-font-head);
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bsd-white, #F4F4F4);
  position: relative;
  padding-block: 0.4em;
}
.bsd-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: var(--bsd-orange, #FFB612);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s var(--bsd-ease);
}
.bsd-nav__link:hover::after,
.bsd-nav__link.is-active::after { transform: scaleX(1); transform-origin: left; }

.bsd-nav .bsd-btn { padding: 0.75em 1.4em; font-size: 0.76rem; }

/* Burger */
.bsd-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 46px;
  height: 46px;
  padding: 10px;
  z-index: 960;
}
.bsd-burger span {
  display: block;
  height: 2px;
  width: 100%;
  background: var(--bsd-white, #F4F4F4);
  transition: transform 0.4s var(--bsd-ease), opacity 0.3s, width 0.4s var(--bsd-ease);
}
.bsd-burger span:nth-child(2) { width: 70%; }
.bsd-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.bsd-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.bsd-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Mobile menu overlay */
.bsd-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 99994;
  background: var(--bsd-black, #1A1A1A);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6rem var(--bsd-gutter) 3rem;
  clip-path: inset(0 0 100% 0);
  visibility: hidden;
  transition: clip-path 0.6s var(--bsd-ease), visibility 0s 0.6s;
}
.bsd-menu-overlay.is-open {
  clip-path: inset(0 0 0% 0);
  visibility: visible;
  transition: clip-path 0.6s var(--bsd-ease), visibility 0s 0s;
}
.bsd-menu-overlay::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: var(--bsd-orange, #FFB612);
}
.bsd-menu-overlay__link {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  font-family: var(--bsd-font-head);
  font-weight: 600;
  font-size: clamp(1.7rem, 6.5vw, 2.6rem);
  color: var(--bsd-white, #F4F4F4);
  padding-block: 0.42em;
  border-bottom: 1px solid var(--bsd-line-dark);
  transform: translateY(26px);
  transition: transform 0.5s var(--bsd-ease), color 0.3s;
}
.bsd-menu-overlay__link:hover { color: var(--bsd-orange, #FFB612); }
.bsd-menu-overlay__link .bsd-mono { color: var(--bsd-orange, #FFB612); font-size: 0.66rem; }
.bsd-menu-overlay.is-open .bsd-menu-overlay__link { transform: translateY(0); }
.bsd-menu-overlay__close {
  position: absolute;
  top: 1.4rem;
  right: var(--bsd-gutter);
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bsd-line-dark);
  color: var(--bsd-white, #F4F4F4);
  transition: border-color 0.3s, color 0.3s, transform 0.4s var(--bsd-ease);
}
.bsd-menu-overlay__close svg { width: 20px; height: 20px; }
.bsd-menu-overlay__close:hover {
  border-color: var(--bsd-orange, #FFB612);
  color: var(--bsd-orange, #FFB612);
  transform: rotate(90deg);
}
.bsd-menu-overlay__meta {
  margin-top: 2.4rem;
  color: var(--bsd-silver, #A8A9AD);
  font-family: var(--bsd-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.bsd-menu-overlay__meta a { color: var(--bsd-white, #F4F4F4); }
.bsd-menu-overlay__meta a:hover { color: var(--bsd-orange, #FFB612); }

@media (max-width: 980px) {
  .bsd-nav { display: none; }
  .bsd-burger { display: flex; }
}

/* ------- Hero ------------------------------------------------------------- */

.bsd-hero {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  overflow: hidden;
  background: var(--bsd-black, #1A1A1A);
  color: var(--bsd-white, #F4F4F4);
}
.bsd-hero__bg {
  position: absolute;
  inset: -6% 0;
  background-size: cover;
  background-position: center 30%;
  filter: saturate(0.55) contrast(1.06) brightness(0.72);
  will-change: transform;
}
@keyframes bsd-kenburns {
  from { transform: scale(1) translateY(0); }
  to { transform: scale(1.08) translateY(-1.5%); }
}
.bsd-hero__bg--image { animation: bsd-kenburns 22s var(--bsd-ease) both alternate infinite; }

/* Hero video: fills the frame, drifts with the pointer for a light 3D feel */
.bsd-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (prefers-reduced-motion: reduce) {
  .bsd-hero__video { display: none; }
}

.bsd-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(26,26,26,0.55) 0%, rgba(26,26,26,0.18) 40%, rgba(26,26,26,0.88) 92%),
    linear-gradient(100deg, rgba(26,26,26,0.72) 0%, rgba(26,26,26,0.05) 60%);
  z-index: 1;
}
.bsd-hero > .bsd-container { position: relative; z-index: 2; }

.bsd-hero__content { padding-top: 9rem; padding-bottom: clamp(2.5rem, 6vh, 4rem); max-width: 56rem; }
.bsd-hero__content .bsd-h1 { margin-top: 1.4rem; }
.bsd-hero__tagline {
  font-size: clamp(1.5rem, 1rem + 2.6vw, 2.7rem);
  margin-top: 1.6rem;
  color: var(--bsd-white, #F4F4F4);
}
.bsd-hero__tagline .bsd-dot { color: var(--bsd-orange, #FFB612); font-style: normal; }
.bsd-hero__sub {
  margin-top: 1.6rem;
  max-width: 38em;
  color: rgba(244, 244, 244, 0.82);
  font-size: clamp(1.02rem, 0.95rem + 0.4vw, 1.2rem);
}
.bsd-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.4rem; }

/* Flight data strip */
.bsd-hero__strip {
  position: relative;
  z-index: 2;
  border-top: 1px solid var(--bsd-line-dark);
  background: rgba(26, 26, 26, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.bsd-hero__stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.bsd-stat {
  padding: 1.6rem 1.4rem;
  border-left: 1px solid var(--bsd-line-dark);
}
.bsd-stat:first-child { border-left: 0; }
.bsd-stat__value {
  font-family: var(--bsd-font-mono);
  font-weight: 600;
  font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.3rem);
  color: var(--bsd-white, #F4F4F4);
  line-height: 1;
}
.bsd-stat__value sup { font-size: 0.5em; color: var(--bsd-orange, #FFB612); }
.bsd-stat__label {
  margin-top: 0.55rem;
  font-family: var(--bsd-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--bsd-silver, #A8A9AD);
}

@media (max-width: 760px) {
  .bsd-hero__stats { grid-template-columns: repeat(2, 1fr); }
  .bsd-stat:nth-child(3) { border-left: 0; }
  .bsd-stat { border-top: 1px solid var(--bsd-line-dark); padding: 1.15rem 1.1rem; }
  .bsd-stat:nth-child(-n+2) { border-top: 0; }
}

/* Scroll cue */
.bsd-scrollcue {
  position: absolute;
  right: var(--bsd-gutter);
  bottom: 8.5rem;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  color: var(--bsd-silver, #A8A9AD);
}
.bsd-scrollcue .bsd-mono { writing-mode: vertical-rl; font-size: 0.6rem; }
.bsd-scrollcue__line { width: 1px; height: 56px; background: var(--bsd-line-dark); position: relative; overflow: hidden; }
.bsd-scrollcue__line::after {
  content: "";
  position: absolute;
  top: -40%;
  left: 0;
  width: 100%;
  height: 40%;
  background: var(--bsd-orange, #FFB612);
  animation: bsd-cue 2.2s var(--bsd-ease) infinite;
}
@keyframes bsd-cue { to { top: 110%; } }
@media (max-width: 980px) { .bsd-scrollcue { display: none; } }

/* ------- About ------------------------------------------------------------ */

.bsd-about__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: center;
}
.bsd-about__copy .bsd-h2 { margin-top: 1.1rem; }
.bsd-about__copy p { margin-top: 1.3rem; }
.bsd-about__quote {
  margin-top: 2.2rem;
  padding: 1.6rem 1.8rem;
  border-left: 3px solid var(--bsd-orange, #FFB612);
  background: rgba(26, 26, 26, 0.05);
  font-size: clamp(1.15rem, 1rem + 0.8vw, 1.5rem);
  color: var(--bsd-black, #1A1A1A);
}
.bsd-figure { position: relative; }
.bsd-figure__frame { position: relative; overflow: hidden; }
.bsd-figure__frame img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.2s var(--bsd-ease);
  filter: saturate(0.85);
}
.bsd-figure:hover .bsd-figure__frame img { transform: scale(1); }
.bsd-figure::before {
  content: "";
  position: absolute;
  inset: 1.4rem -1.4rem -1.4rem 1.4rem;
  border: 1px solid var(--bsd-silver, #A8A9AD);
  z-index: -1;
}
.bsd-figure__badge {
  position: absolute;
  left: -1px;
  bottom: -1px;
  background: var(--bsd-black, #1A1A1A);
  color: var(--bsd-white, #F4F4F4);
  padding: 1rem 1.4rem;
  font-family: var(--bsd-font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  border-top: 3px solid var(--bsd-orange, #FFB612);
}
@media (max-width: 900px) {
  .bsd-about__grid { grid-template-columns: 1fr; }
  .bsd-figure { margin-top: 1rem; }
  .bsd-figure::before { inset: 1rem -0.8rem -0.8rem 1rem; }
}

/* ------- Capability -------------------------------------------------------- */

.bsd-cap__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: start;
}
.bsd-cap__intro { position: sticky; top: 7rem; }
.bsd-cap__intro .bsd-h2 { margin-top: 1.1rem; }
.bsd-cap__intro .bsd-lead { margin-top: 1.3rem; }
.bsd-cap__media { margin-top: 2.2rem; position: relative; overflow: hidden; }
.bsd-cap__media img {
  aspect-ratio: 16 / 10;
  object-fit: cover;
  width: 100%;
  filter: saturate(0.6) contrast(1.05);
}
.bsd-cap__media::after {
  content: "AS9100 QUALITY SYSTEM";
  position: absolute;
  right: 0;
  bottom: 0;
  background: var(--bsd-orange, #FFB612);
  color: var(--bsd-black, #1A1A1A);
  font-family: var(--bsd-font-mono);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  padding: 0.7em 1.2em;
}

.bsd-cap__list { display: grid; gap: 1px; background: var(--bsd-line-dark); border: 1px solid var(--bsd-line-dark); }
.bsd-cap-item {
  background: var(--bsd-black, #1A1A1A);
  padding: clamp(1.6rem, 3.5vw, 2.4rem);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.6rem;
  align-items: start;
  position: relative;
  overflow: hidden;
  transition: background 0.45s;
}
.bsd-cap-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 3px;
  background: var(--bsd-orange, #FFB612);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.5s var(--bsd-ease);
}
.bsd-cap-item:hover { background: var(--bsd-panel); }
.bsd-cap-item:hover::before { transform: scaleY(1); }
.bsd-cap-item__num {
  font-family: var(--bsd-font-mono);
  font-size: 0.78rem;
  color: var(--bsd-orange, #FFB612);
  padding-top: 0.35em;
}
.bsd-cap-item__body p { margin-top: 0.7rem; color: rgba(244, 244, 244, 0.72); font-size: 1rem; }
@media (max-width: 900px) {
  .bsd-cap__layout { grid-template-columns: 1fr; }
  .bsd-cap__intro { position: static; }
}

/* ------- Aircraft / Product family ---------------------------------------- */

.bsd-aircraft { background:
    linear-gradient(rgba(168,169,173,0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168,169,173,0.09) 1px, transparent 1px),
    var(--bsd-white, #F4F4F4);
  background-size: 56px 56px;
}
.bsd-fleet {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.2rem, 2.5vw, 2rem);
}
.bsd-craft {
  background: var(--bsd-white, #F4F4F4);
  border: 1px solid var(--bsd-line-light);
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.5s var(--bsd-ease), box-shadow 0.5s var(--bsd-ease), border-color 0.4s;
}
.bsd-craft:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 60px -30px rgba(26, 26, 26, 0.35);
  border-color: var(--bsd-carbon, #1A1A1A);
}
.bsd-craft__tag {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.4rem;
  border-bottom: 1px solid var(--bsd-line-light);
  font-family: var(--bsd-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bsd-carbon, #1A1A1A);
}
.bsd-craft__tag i {
  font-style: normal;
  color: var(--bsd-orange, #FFB612);
}
.bsd-craft__art {
  padding: 1.4rem;
  border-bottom: 1px solid var(--bsd-line-light);
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(168,169,173,0.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168,169,173,0.14) 1px, transparent 1px);
  background-size: 28px 28px;
}
.bsd-craft__art svg { width: 100%; height: auto; display: block; }
.bsd-craft__art::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 -20%;
  width: 18%;
  background: linear-gradient(90deg, transparent, rgba(255, 79, 0, 0.14), transparent);
  transform: skewX(-12deg);
  transition: none;
}
.bsd-craft:hover .bsd-craft__art::after { animation: bsd-scan 1.1s var(--bsd-ease); }
@keyframes bsd-scan { to { left: 120%; } }

.bsd-craft__body { padding: 1.6rem 1.4rem; flex: 1; display: flex; flex-direction: column; }
.bsd-craft__body p { margin-top: 0.8rem; color: rgba(26, 26, 26, 0.74); font-size: 0.98rem; flex: 1; }
.bsd-craft__specs {
  margin-top: 1.4rem;
  border-top: 1px solid var(--bsd-line-light);
}
.bsd-craft__specs li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--bsd-line-light);
  font-size: 0.86rem;
}
.bsd-craft__specs .k {
  font-family: var(--bsd-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bsd-silver, #A8A9AD);
  padding-top: 0.25em;
}
.bsd-craft__specs .v { font-weight: 600; color: var(--bsd-black, #1A1A1A); text-align: right; }

.bsd-payload {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  background: var(--bsd-black, #1A1A1A);
  color: var(--bsd-white, #F4F4F4);
  padding: clamp(1.8rem, 4vw, 2.8rem);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.8rem;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.bsd-payload::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--bsd-orange, #FFB612);
}
.bsd-payload__icon { width: 54px; height: 54px; color: var(--bsd-orange, #FFB612); }
.bsd-payload__icon svg { width: 100%; height: 100%; }
.bsd-payload p { color: rgba(244, 244, 244, 0.78); margin-top: 0.5rem; }
@media (max-width: 980px) { .bsd-fleet { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; } }
@media (max-width: 600px) { .bsd-payload { grid-template-columns: 1fr; gap: 1rem; } }

/* ------- Industries -------------------------------------------------------- */

.bsd-ind__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.1rem;
}
.bsd-ind-card {
  position: relative;
  overflow: hidden;
  min-height: 300px;
  grid-column: span 2;
  display: flex;
  align-items: flex-end;
  background: var(--bsd-panel);
  border: 1px solid var(--bsd-line-dark);
}
.bsd-ind-card--wide { grid-column: span 3; }
.bsd-ind-card__img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: saturate(0.55) brightness(0.66);
  transform: scale(1.02);
  transition: transform 0.9s var(--bsd-ease), filter 0.6s;
}
.bsd-ind-card:hover .bsd-ind-card__img { transform: scale(1.09); filter: saturate(0.85) brightness(0.75); }
.bsd-ind-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(185deg, rgba(26,26,26,0) 30%, rgba(26,26,26,0.88) 88%);
}
.bsd-ind-card__body { position: relative; z-index: 2; padding: 1.5rem 1.5rem 1.4rem; width: 100%; }
.bsd-ind-card__num {
  font-family: var(--bsd-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.24em;
  color: var(--bsd-orange, #FFB612);
}
.bsd-ind-card__body h3 { margin-top: 0.5rem; }
.bsd-ind-card__body p {
  margin-top: 0.55rem;
  font-size: 0.92rem;
  color: rgba(244, 244, 244, 0.75);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.6s var(--bsd-ease), opacity 0.5s 0.08s;
}
.bsd-ind-card:hover .bsd-ind-card__body p,
.bsd-ind-card:focus-within .bsd-ind-card__body p { max-height: 9em; opacity: 1; }
.bsd-ind-card__line {
  width: 2.4rem;
  height: 2px;
  background: var(--bsd-orange, #FFB612);
  margin-top: 0.9rem;
  transform-origin: left;
  transform: scaleX(0.4);
  transition: transform 0.5s var(--bsd-ease);
}
.bsd-ind-card:hover .bsd-ind-card__line { transform: scaleX(1); }

/* Text tiles */
.bsd-ind-card--text { background: var(--bsd-panel); min-height: 220px; align-items: stretch; }
.bsd-ind-card--text::after { display: none; }
.bsd-ind-card--text .bsd-ind-card__body { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.bsd-ind-card--text p { max-height: none; opacity: 1; overflow: visible; }
.bsd-ind-card--text:hover { border-color: var(--bsd-silver, #A8A9AD); }

@media (max-width: 1080px) {
  .bsd-ind__grid { grid-template-columns: repeat(2, 1fr); }
  .bsd-ind-card, .bsd-ind-card--wide { grid-column: span 1; min-height: 260px; }
  .bsd-ind-card__body p { max-height: none; opacity: 1; }
}
@media (max-width: 640px) {
  .bsd-ind__grid { grid-template-columns: 1fr; }
}

/* ------- Training ----------------------------------------------------------- */

.bsd-train__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: center;
}
.bsd-train__copy .bsd-h2 { margin-top: 1.1rem; }
.bsd-train__copy > p { margin-top: 1.3rem; }
.bsd-checklist { margin-top: 1.8rem; display: grid; gap: 0.4rem; }
.bsd-checklist li {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 0.9rem 1rem;
  border: 1px solid var(--bsd-line-light);
  background: rgba(26, 26, 26, 0.03);
  transition: border-color 0.35s, transform 0.35s var(--bsd-ease);
}
.bsd-checklist li:hover { border-color: var(--bsd-carbon, #1A1A1A); transform: translateX(6px); }
.bsd-checklist .tick {
  flex: none;
  width: 1.3em;
  height: 1.3em;
  margin-top: 0.15em;
  color: var(--bsd-orange, #FFB612);
}
.bsd-checklist .tick svg { width: 100%; height: 100%; }
.bsd-checklist strong { font-family: var(--bsd-font-head); font-weight: 600; }
.bsd-train__closing { margin-top: 1.8rem; color: rgba(26, 26, 26, 0.74); }
@media (max-width: 900px) { .bsd-train__grid { grid-template-columns: 1fr; } }

/* ------- Contact ------------------------------------------------------------- */

.bsd-contact { overflow: hidden; }
.bsd-contact__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: start;
}
.bsd-contact__tagline {
  font-size: clamp(2.1rem, 1.4rem + 3.4vw, 3.8rem);
  line-height: 1.15;
  margin-top: 1.4rem;
}
.bsd-contact__tagline .bsd-dot { color: var(--bsd-orange, #FFB612); font-style: normal; }
.bsd-contact__intro { margin-top: 1.4rem; color: rgba(244, 244, 244, 0.78); max-width: 30em; }
.bsd-contact__meta { margin-top: 2.4rem; display: grid; gap: 1.2rem; }
.bsd-contact__meta-item { border-left: 2px solid var(--bsd-orange, #FFB612); padding-left: 1.2rem; }
.bsd-contact__meta-item .bsd-mono { color: var(--bsd-silver, #A8A9AD); display: block; margin-bottom: 0.35rem; }
.bsd-contact__meta-item a { font-family: var(--bsd-font-head); font-weight: 600; font-size: 1.1rem; }
.bsd-contact__meta-item a:hover { color: var(--bsd-orange, #FFB612); }

.bsd-form {
  background: var(--bsd-panel);
  border: 1px solid var(--bsd-line-dark);
  padding: clamp(1.6rem, 4vw, 2.6rem);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.3rem;
  position: relative;
}
.bsd-form::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--bsd-orange, #FFB612);
}
.bsd-field { display: flex; flex-direction: column; gap: 0.5rem; }
.bsd-field--full { grid-column: 1 / -1; }
.bsd-field label {
  font-family: var(--bsd-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--bsd-silver, #A8A9AD);
}
.bsd-field input,
.bsd-field select,
.bsd-field textarea {
  font-family: var(--bsd-font-body);
  font-size: 1rem;
  color-scheme: dark;
  color: #F4F4F4 !important;
  background: #1A1A1A !important;
  border: 1px solid var(--bsd-line-dark);
  padding: 0.9em 1em;
  transition: border-color 0.3s, background 0.3s;
  border-radius: 0;
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
}
.bsd-field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23A8A9AD' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1em center;
  padding-right: 2.6em;
}
.bsd-field select option { color: #F4F4F4; background: #1A1A1A; }
.bsd-field textarea { min-height: 9em; resize: vertical; }
.bsd-field input:focus,
.bsd-field select:focus,
.bsd-field textarea:focus { border-color: var(--bsd-orange, #FFB612); background: #1A1A1A !important; outline: none; }
.bsd-form__actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.bsd-form__note { font-size: 0.85rem; color: var(--bsd-silver, #A8A9AD); }
.bsd-form__status {
  grid-column: 1 / -1;
  font-family: var(--bsd-font-mono);
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  color: var(--bsd-orange, #FFB612);
  display: none;
}
.bsd-form__status.is-visible { display: block; }
@media (max-width: 640px) { .bsd-form { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .bsd-contact__grid { grid-template-columns: 1fr; } }

/* ------- Footer --------------------------------------------------------------- */

.bsd-footer {
  background: var(--bsd-black, #1A1A1A);
  color: var(--bsd-white, #F4F4F4);
  border-top: 3px solid var(--bsd-orange, #FFB612);
  padding-top: clamp(3rem, 7vw, 5rem);
}
.bsd-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
}
.bsd-footer__brand p { margin-top: 1.2rem; color: rgba(244, 244, 244, 0.65); font-size: 0.95rem; max-width: 26em; }
.bsd-footer__col h4 {
  font-family: var(--bsd-font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--bsd-silver, #A8A9AD);
  margin-bottom: 1.1rem;
}
.bsd-footer__col li { margin-bottom: 0.6rem; }
.bsd-footer__col a { color: rgba(244, 244, 244, 0.8); font-size: 0.95rem; transition: color 0.3s, padding-left 0.3s; }
.bsd-footer__col a:hover { color: var(--bsd-orange, #FFB612); padding-left: 4px; }
.bsd-footer__bottom {
  border-top: 1px solid var(--bsd-line-dark);
  padding-block: 1.4rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  font-family: var(--bsd-font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bsd-silver, #A8A9AD);
}
.bsd-footer__bottom .bsd-dot { color: var(--bsd-orange, #FFB612); }
@media (max-width: 900px) { .bsd-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .bsd-footer__grid { grid-template-columns: 1fr; } }

/* ------- Reveal animation system ------------------------------------------
   Motion lives in transform only. Text is NEVER hidden behind an opacity
   fade: if a hostile webview freezes the transition mid flight, the worst
   case is slightly offset copy, still fully readable. */

[data-bsd-reveal] {
  transform: translateY(28px);
  transition: transform 0.9s var(--bsd-ease);
  transition-delay: var(--bsd-d, 0ms);
  will-change: transform;
}
[data-bsd-reveal="scale"] { transform: scale(0.96); }
[data-bsd-reveal].is-inview { transform: none; }

/* ------- Utility / motion preferences ------------------------------------------ */

.bsd-skip {
  position: absolute;
  left: -999px;
  top: 0;
  z-index: 999;
  background: var(--bsd-orange, #FFB612);
  color: var(--bsd-black, #1A1A1A);
  padding: 0.8em 1.4em;
  font-family: var(--bsd-font-head);
}
.bsd-skip:focus { left: 0; }

@media (prefers-reduced-motion: reduce) {
  .bsd-scope *,
  .bsd-scope *::before,
  .bsd-scope *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-bsd-reveal] { transform: none; }
  .bsd-hero__bg { animation: none; }
}

/* ------- Hard colour guarantees --------------------------------------------
   Literal values, no custom properties. Even if the variable block above
   fails to load or resolve, every piece of text on a dark surface is white
   and every piece on a light surface is matte black. */

.bsd-hero,
.bsd-hero .bsd-h1,
.bsd-pagehero,
.bsd-pagehero .bsd-h1,
.bsd-pagehero__lead,
.bsd-hero__tagline,
.bsd-hero__sub,
.bsd-dark,
.bsd-dark .bsd-h2,
.bsd-dark .bsd-h3,
.bsd-stat__value,
.bsd-menu-overlay__link,
.bsd-menu-overlay__meta a,
.bsd-ind-card__body h3,
.bsd-payload h3,
.bsd-contact__tagline,
.bsd-footer,
.bsd-nav__link { color: #F4F4F4; }

.bsd-about__copy .bsd-h2,
.bsd-train__copy .bsd-h2,
.bsd-aircraft .bsd-h2,
.bsd-craft__body .bsd-h3,
.bsd-checklist strong { color: #1A1A1A; }
.bsd-payload .bsd-h3 { color: #F4F4F4; }

/* ------- Divi integration for the header module -----------------------------
   Divi wraps code modules in section, row and column containers with their
   own padding, which shows as a white strip under the fixed header. These
   rules collapse that spacing and reserve exactly the header's height so
   page content starts flush beneath the bar. */

.et_pb_section:has(.bsd-header),
.et_pb_row:has(.bsd-header),
.et_pb_column:has(.bsd-header),
.et_pb_module:has(.bsd-header),
.et_pb_code:has(.bsd-header) {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  background: transparent !important;
}
.et-l--header:has(.bsd-header),
.et_builder_layout_container:has(.bsd-header) {
  height: var(--bsd-header-h, 76px);
  overflow: visible;
  position: relative;
  z-index: 99990;
}

/* ------- Multipage components ---------------------------------------------- */

/* Page hero: compact dark banner with a faded background photo */
.bsd-pagehero {
  position: relative;
  padding: calc(var(--bsd-header-h, 76px) + clamp(4rem, 9vw, 7rem)) 0 clamp(3rem, 7vw, 5rem);
  background-size: cover;
  background-position: center;
  color: #F4F4F4;
}
.bsd-pagehero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(26,26,26,0.82) 0%, rgba(26,26,26,0.72) 55%, rgba(26,26,26,0.92) 100%);
}
.bsd-pagehero > .bsd-container { position: relative; z-index: 2; }
.bsd-pagehero .bsd-h1 { max-width: 16em; font-size: clamp(2.1rem, 1.3rem + 3.4vw, 3.8rem); margin-top: 1.2rem; }
.bsd-pagehero .bsd-eyebrow a { color: inherit; }
.bsd-pagehero .bsd-eyebrow a:hover { color: #F4F4F4; }
.bsd-pagehero__lead {
  margin-top: 1.2rem;
  max-width: 36em;
  color: rgba(244, 244, 244, 0.82);
  font-size: clamp(1.02rem, 0.95rem + 0.4vw, 1.2rem);
}

/* Landing pillars: three linked cards */
.bsd-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.1rem, 2.4vw, 1.8rem);
}
.bsd-pillar {
  display: flex;
  flex-direction: column;
  background: var(--bsd-panel, rgba(168, 169, 173, 0.08));
  border: 1px solid var(--bsd-line-dark, rgba(168, 169, 173, 0.22));
  overflow: hidden;
  transition: transform 0.5s var(--bsd-ease), border-color 0.4s;
}
.bsd-pillar:hover { transform: translateY(-8px); border-color: var(--bsd-silver, #A8A9AD); }
.bsd-pillar__img {
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  filter: saturate(0.55) brightness(0.8);
  transition: filter 0.5s, transform 0.7s var(--bsd-ease);
}
.bsd-pillar:hover .bsd-pillar__img { filter: saturate(0.85) brightness(0.9); }
.bsd-pillar__body { padding: 1.5rem 1.5rem 1.7rem; display: flex; flex-direction: column; gap: 0.7rem; flex: 1; }
.bsd-pillar__body .bsd-mono { color: var(--bsd-orange, #FFB612); font-size: 0.64rem; }
.bsd-pillar__body h3 { color: #F4F4F4; }
.bsd-pillar__body p { color: rgba(244, 244, 244, 0.72); font-size: 0.97rem; flex: 1; }
.bsd-pillar__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  font-family: var(--bsd-font-head);
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bsd-orange, #FFB612);
}
.bsd-pillar__cta svg { width: 1em; height: 1em; transition: transform 0.35s var(--bsd-ease); }
.bsd-pillar:hover .bsd-pillar__cta svg { transform: translateX(0.35em); }
@media (max-width: 980px) { .bsd-pillars { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; } }

/* Landing CTA band */
.bsd-ctaband {
  background: var(--bsd-black, #1A1A1A);
  color: #F4F4F4;
  text-align: center;
  padding-block: clamp(4rem, 9vw, 7rem);
  position: relative;
  border-top: 3px solid var(--bsd-orange, #FFB612);
}
.bsd-ctaband__tagline { font-size: clamp(2.2rem, 1.4rem + 3.8vw, 4.2rem); color: #F4F4F4; }
.bsd-ctaband__tagline .bsd-dot { color: var(--bsd-orange, #FFB612); font-style: normal; }
.bsd-ctaband__sub { margin-top: 1.2rem; color: rgba(244, 244, 244, 0.75); max-width: 38em; margin-inline: auto; }
.bsd-ctaband__actions { margin-top: 2.2rem; display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* Next page band at the foot of each inner page */
.bsd-next {
  background: var(--bsd-black, #1A1A1A);
  color: #F4F4F4;
  border-top: 3px solid var(--bsd-orange, #FFB612);
  padding-block: clamp(2.2rem, 5vw, 3.4rem);
}
.bsd-next__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  flex-wrap: wrap;
}
.bsd-next__link { display: flex; flex-direction: column; gap: 0.5rem; }
.bsd-next__link .bsd-mono { color: var(--bsd-orange, #FFB612); }
.bsd-next__title {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  font-family: var(--bsd-font-head);
  font-weight: 600;
  font-size: clamp(1.3rem, 1rem + 1.6vw, 2rem);
  color: #F4F4F4;
}
.bsd-next__title svg { width: 0.8em; height: 0.8em; color: var(--bsd-orange, #FFB612); transition: transform 0.35s var(--bsd-ease); }
.bsd-next__link:hover .bsd-next__title svg { transform: translateX(0.35em); }

/* Page hero eyebrow sits on a dark banner */
.bsd-pagehero .bsd-eyebrow { color: var(--bsd-orange, #FFB612); }

/* ------- Expanded inner page components -------------------------------------- */

/* Numbered text tiles on dark sections */
.bsd-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.1rem, 2.4vw, 1.6rem);
}
.bsd-tiles:has(> :nth-child(4)) { grid-template-columns: repeat(2, 1fr); }
.bsd-tile {
  background: var(--bsd-panel, rgba(168, 169, 173, 0.08));
  border: 1px solid var(--bsd-line-dark, rgba(168, 169, 173, 0.22));
  padding: clamp(1.5rem, 3vw, 2.1rem);
  position: relative;
  overflow: hidden;
  transition: border-color 0.4s, transform 0.5s var(--bsd-ease);
}
.bsd-tile:hover { border-color: var(--bsd-silver, #A8A9AD); transform: translateY(-6px); }
.bsd-tile::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 100%;
  background: var(--bsd-orange, #FFB612);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.5s var(--bsd-ease);
}
.bsd-tile:hover::before { transform: scaleY(1); }
.bsd-tile .bsd-mono { color: var(--bsd-orange, #FFB612); }
.bsd-tile h3 { color: #F4F4F4; margin-top: 0.8rem; }
.bsd-tile p { color: rgba(244, 244, 244, 0.72); margin-top: 0.6rem; font-size: 0.98rem; }
@media (max-width: 900px) { .bsd-tiles, .bsd-tiles:has(> :nth-child(4)) { grid-template-columns: 1fr; } }

/* Standalone stat band */
.bsd-statband {
  background: var(--bsd-black, #1A1A1A);
  color: #F4F4F4;
  border-block: 1px solid var(--bsd-line-dark, rgba(168, 169, 173, 0.22));
  padding-block: clamp(1.6rem, 4vw, 2.6rem);
}
.bsd-statband__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.bsd-statband .bsd-stat { border-left: 1px solid var(--bsd-line-dark, rgba(168, 169, 173, 0.22)); }
.bsd-statband .bsd-stat:first-child { border-left: 0; }
@media (max-width: 760px) {
  .bsd-statband__grid { grid-template-columns: repeat(2, 1fr); }
  .bsd-statband .bsd-stat:nth-child(3) { border-left: 0; }
}

/* Specification comparison table */
.bsd-spectable__wrap { overflow-x: auto; border: 1px solid var(--bsd-line-dark, rgba(168, 169, 173, 0.22)); }
.bsd-spectable { width: 100%; border-collapse: collapse; min-width: 720px; }
.bsd-spectable th,
.bsd-spectable td {
  padding: 1rem 1.2rem;
  text-align: left;
  border-bottom: 1px solid var(--bsd-line-dark, rgba(168, 169, 173, 0.22));
  border-left: 1px solid var(--bsd-line-dark, rgba(168, 169, 173, 0.22));
  font-size: 0.95rem;
  color: rgba(244, 244, 244, 0.82);
}
.bsd-spectable th:first-child,
.bsd-spectable td:first-child { border-left: 0; }
.bsd-spectable thead th {
  font-family: var(--bsd-font-head);
  font-weight: 600;
  color: #F4F4F4;
  background: var(--bsd-panel, rgba(168, 169, 173, 0.08));
  border-bottom: 2px solid var(--bsd-orange, #FFB612);
}
.bsd-spectable tbody th {
  font-family: var(--bsd-font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--bsd-silver, #A8A9AD);
}
.bsd-spectable tbody tr:last-child th,
.bsd-spectable tbody tr:last-child td { border-bottom: 0; }
.bsd-spectable tbody tr:hover td { background: rgba(168, 169, 173, 0.06); }

/* Centered checklist block on light sections */
.bsd-checkwrap { max-width: 52em; }
.bsd-checkwrap .bsd-h2 { margin-top: 1.1rem; }
.bsd-checkwrap .bsd-lead { margin-top: 1.1rem; }
.bsd-checkwrap .bsd-checklist { margin-top: 2rem; }

/* ------- Enquiry form: reCAPTCHA ------------------------------------------- */

/* Google's badge may be hidden because the attribution text below is shown
   inside the form instead. */
.grecaptcha-badge { visibility: hidden; }
.bsd-form__recaptcha {
  grid-column: 1 / -1;
  font-size: 0.78rem;
  color: var(--bsd-silver, #A8A9AD);
}
.bsd-form__recaptcha a { text-decoration: underline; }
.bsd-form__recaptcha a:hover { color: var(--bsd-orange, #FFB612); }

/* ------- Form field text: immune to Divi input styling ---------------------
   Divi colours inputs dark for its own light forms; these fields live on a
   matte black panel, so the text is pinned white at high specificity, and
   browser autofill is repainted to match. */

.bsd-scope .bsd-form .bsd-field input,
.bsd-scope .bsd-form .bsd-field select,
.bsd-scope .bsd-form .bsd-field textarea {
  color: #F4F4F4 !important;
  -webkit-text-fill-color: #F4F4F4;
  caret-color: #FFB612;
}
.bsd-scope .bsd-form .bsd-field input::placeholder,
.bsd-scope .bsd-form .bsd-field textarea::placeholder {
  color: rgba(244, 244, 244, 0.4);
  -webkit-text-fill-color: rgba(244, 244, 244, 0.4);
}
.bsd-scope .bsd-form .bsd-field input:-webkit-autofill,
.bsd-scope .bsd-form .bsd-field input:-webkit-autofill:hover,
.bsd-scope .bsd-form .bsd-field input:-webkit-autofill:focus,
.bsd-scope .bsd-form .bsd-field input:-webkit-autofill:active,
.bsd-scope .bsd-form .bsd-field select:-webkit-autofill,
.bsd-scope .bsd-form .bsd-field textarea:-webkit-autofill {
  -webkit-text-fill-color: #F4F4F4 !important;
  -webkit-box-shadow: 0 0 0 1000px #1A1A1A inset !important;
  box-shadow: 0 0 0 1000px #1A1A1A inset !important;
  background-color: #1A1A1A !important;
  background-image: none !important;
  caret-color: #FFB612 !important;
  border: 1px solid rgba(168, 169, 173, 0.22) !important;
  transition: background-color 999999s ease-in-out 0s !important;
}
.bsd-scope .bsd-form .bsd-field input:autofill,
.bsd-scope .bsd-form .bsd-field select:autofill,
.bsd-scope .bsd-form .bsd-field textarea:autofill {
  -webkit-text-fill-color: #F4F4F4 !important;
  color: #F4F4F4 !important;
  box-shadow: 0 0 0 1000px #1A1A1A inset !important;
  background-color: #1A1A1A !important;
}

/* Autofill detection hook: browsers fire animationstart for this keyframe
   the instant they autofill a field, letting the script normalise it. */
@keyframes bsdAutofillIn {
  from { opacity: 1; }
  to { opacity: 1; }
}
.bsd-scope .bsd-form .bsd-field input:-webkit-autofill,
.bsd-scope .bsd-form .bsd-field select:-webkit-autofill,
.bsd-scope .bsd-form .bsd-field textarea:-webkit-autofill {
  animation-name: bsdAutofillIn;
  animation-duration: 0.01s;
}
