/* ==========================================================================
   BoussoleOS — Home
   Editorial enterprise system for the Fortinet hierarchy.
   Palette: red #DA291C · blue #307FE2 · turquoise #2CCCD3 · violet #9063CD
            green #3CB17E · silver #A2B2C8 · ink #171A1F
   ========================================================================== */

.bh-home {
  --bh-red: #DA291C;
  --bh-blue: #307FE2;
  --bh-turquoise: #2CCCD3;
  --bh-violet: #9063CD;
  --bh-green: #3CB17E;
  --bh-silver: #A2B2C8;
  --bh-ink: #171A1F;
  --bh-blackgray: #20242A;
  --bh-gray-900: #30353B;
  --bh-gray-700: #59616A;
  --bh-gray-500: #7C8791;
  --bh-gray-300: #D7DDE2;
  --bh-gray-200: #E8ECEF;
  --bh-gray-100: #F5F7F8;
  --bh-paper: #FBFCFD;
  --bh-white: #FFFFFF;
  --bh-radius: 8px;
  --bh-wrap: min(1280px, calc(100% - 64px));
  --bh-shadow: 0 18px 42px rgba(23, 26, 31, .09);
  --bh-shadow-sm: 0 8px 22px rgba(23, 26, 31, .08);
  margin: 0;
  color: var(--bh-ink);
  background: var(--bh-white);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.bh-home *,
.bh-home *::before,
.bh-home *::after {
  box-sizing: border-box;
}

.bh-home img,
.bh-home svg,
.bh-home video {
  display: block;
  max-width: 100%;
}

.bh-home button,
.bh-home input,
.bh-home select,
.bh-home textarea {
  font: inherit;
}

.bh-home button,
.bh-home a {
  -webkit-tap-highlight-color: transparent;
}

.bh-home a {
  color: inherit;
  text-decoration: none;
}

.bh-home button {
  border: 0;
}

.bh-home :where(h1, h2, h3, h4, p, figure, ul, ol) {
  margin: 0;
}

.bh-home :where(ul, ol) {
  padding: 0;
  list-style: none;
}

.bh-home [hidden] {
  display: none !important;
}

.bh-home :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--bh-turquoise);
  outline-offset: 3px;
}

.bh-wrap {
  width: var(--bh-wrap);
  max-width: 1280px;
  margin-inline: auto;
  padding-block: 32px;
}

/* Utility bar and sticky two-row masthead */
.bh-utility {
  min-height: 34px;
  color: rgba(255, 255, 255, .78);
  background: var(--bh-blackgray);
  font-size: 11px;
  letter-spacing: .055em;
}

.bh-utility .bh-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 34px;
  padding-block: 7px;
}

.bh-utility p:last-child {
  color: var(--bh-white);
  text-transform: uppercase;
  font-weight: 700;
}

.bh-header {
  position: sticky;
  z-index: 20;
  top: 0;
  color: var(--bh-ink);
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--bh-gray-200);
  backdrop-filter: blur(14px);
}

.bh-brand-row,
.bh-nav-row {
  width: var(--bh-wrap);
  max-width: 1280px;
  margin-inline: auto;
}

.bh-brand-row {
  display: flex;
  align-items: center;
  min-height: 86px;
  gap: 28px;
  padding-block: 17px;
}

.bh-logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 11px;
  min-width: 196px;
}

.bh-mark {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
}

.bh-mark :where(path, circle, rect, polygon) {
  vector-effect: non-scaling-stroke;
}

.bh-wordmark {
  display: grid;
  gap: 1px;
  line-height: 1.04;
}

.bh-wordmark strong {
  color: var(--bh-ink);
  font-size: 21px;
  letter-spacing: -.035em;
}

.bh-wordmark small {
  color: var(--bh-gray-700);
  font-size: 9px;
  letter-spacing: .15em;
  text-transform: uppercase;
  font-weight: 700;
}

.bh-search {
  position: relative;
  width: 300px;
  margin-left: auto;
}

.bh-search form {
  display: flex;
  align-items: stretch;
  min-height: 44px;
  border: 1px solid var(--bh-gray-300);
  border-radius: 5px;
  background: var(--bh-white);
  overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.bh-search form:focus-within {
  border-color: var(--bh-blue);
  box-shadow: 0 0 0 3px rgba(48, 127, 226, .14);
}

.bh-search input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  padding: 10px 13px;
  color: var(--bh-ink);
  background: transparent;
  font-size: 13px;
}

.bh-search input::placeholder {
  color: var(--bh-gray-500);
}

.bh-search button {
  width: 44px;
  min-height: 44px;
  color: var(--bh-white);
  background: var(--bh-ink);
  cursor: pointer;
  font-size: 17px;
  transition: background .2s ease;
}

.bh-search button:hover {
  background: var(--bh-red);
}

.bh-search-results {
  position: absolute;
  z-index: 3;
  top: calc(100% + 8px);
  right: 0;
  left: 0;
  padding: 6px;
  border: 1px solid var(--bh-gray-200);
  border-radius: 6px;
  background: var(--bh-white);
  box-shadow: var(--bh-shadow);
}

.bh-search-results a,
.bh-result {
  display: block;
  padding: 10px 12px;
  color: var(--bh-gray-700);
  border-radius: 4px;
  font-size: 13px;
}

.bh-search-results a:hover,
.bh-result:hover {
  color: var(--bh-ink);
  background: var(--bh-gray-100);
}

.bh-account-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 700;
}

.bh-account-actions a {
  position: relative;
  color: var(--bh-gray-700);
}

.bh-account-actions a:hover {
  color: var(--bh-red);
}

.bh-account-actions .bh-text-link {
  color: var(--bh-red);
}

.bh-nav-row {
  display: flex;
  align-items: center;
  min-height: 55px;
  border-top: 1px solid var(--bh-gray-200);
}

.bh-nav-links {
  display: flex;
  align-items: center;
  align-self: stretch;
  gap: 0;
}

.bh-nav-links > a,
.bh-services-menu > summary {
  position: relative;
  display: inline-flex;
  align-items: center;
  align-self: stretch;
  min-height: 55px;
  padding: 0 17px;
  color: var(--bh-gray-700);
  cursor: pointer;
  list-style: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.bh-nav-links > a:first-child {
  padding-left: 0;
}

.bh-nav-links > a::after,
.bh-services-menu > summary::after {
  position: absolute;
  right: 17px;
  bottom: 0;
  left: 17px;
  height: 2px;
  content: '';
  background: var(--bh-red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}

.bh-nav-links > a:first-child::after {
  left: 0;
}

.bh-nav-links > a:hover,
.bh-nav-links > a[aria-current='page'],
.bh-services-menu > summary:hover,
.bh-services-menu[open] > summary {
  color: var(--bh-ink);
}

.bh-nav-links > a:hover::after,
.bh-nav-links > a[aria-current='page']::after,
.bh-services-menu[open] > summary::after {
  transform: scaleX(1);
}

.bh-services-menu {
  position: relative;
}

.bh-services-menu > summary {
  gap: 9px;
}

.bh-services-menu > summary::-webkit-details-marker {
  display: none;
}

.bh-services-menu > summary::before {
  width: 6px;
  height: 6px;
  content: '';
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s ease;
}

.bh-services-menu[open] > summary::before {
  transform: translateY(2px) rotate(225deg);
}

.bh-mega-menu {
  position: absolute;
  z-index: 4;
  top: calc(100% + 1px);
  left: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  width: min(620px, calc(100vw - 40px));
  gap: 4px;
  padding: 16px;
  border: 1px solid var(--bh-gray-200);
  border-top: 2px solid var(--bh-red);
  background: var(--bh-white);
  box-shadow: var(--bh-shadow);
}

.bh-mega-menu a {
  min-height: 43px;
  padding: 11px 12px;
  color: var(--bh-gray-700);
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
}

.bh-mega-menu a:hover {
  color: var(--bh-ink);
  background: var(--bh-gray-100);
}

.bh-mobile-toggle {
  display: none;
  width: 44px;
  height: 44px;
  color: var(--bh-white);
  background: var(--bh-ink);
  border-radius: 4px;
  cursor: pointer;
}

.bh-mobile-toggle:hover {
  background: var(--bh-red);
}

.bh-mobile-menu {
  display: none;
  border-top: 1px solid var(--bh-gray-200);
  background: var(--bh-white);
}

.bh-mobile-links {
  display: grid;
  gap: 2px;
  padding: 12px 20px 18px;
}

.bh-mobile-links a {
  padding: 12px 0;
  color: var(--bh-gray-700);
  border-bottom: 1px solid var(--bh-gray-200);
  font-size: 13px;
  font-weight: 700;
}

.bh-mobile-links a:hover {
  color: var(--bh-red);
}

.bh-mobile-links .bh-mobile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  padding-top: 15px;
  color: var(--bh-gray-700);
  font-size: 12px;
  font-weight: 700;
}

.bh-mobile-actions a:last-child {
  color: var(--bh-red);
}

.bh-header.is-scrolled .bh-brand-row {
  min-height: 68px;
  padding-block: 9px;
}

.bh-header.is-scrolled .bh-mark {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
}

/* Hero */
.bh-hero {
  position: relative;
  background: var(--bh-paper);
  border-bottom: 1px solid var(--bh-gray-200);
}

.bh-hero .bh-wrap {
  padding-block: 78px 58px;
}

.bh-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 55fr) minmax(300px, 45fr);
  align-items: center;
  gap: clamp(40px, 7vw, 110px);
}

.bh-hero-copy {
  max-width: 690px;
}

.bh-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--bh-gray-700);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.2;
  text-transform: uppercase;
}

.bh-eyebrow::before {
  width: 23px;
  height: 2px;
  content: '';
  background: var(--bh-red);
}

.bh-eyebrow::after {
  width: 5px;
  height: 5px;
  margin-left: -5px;
  content: '';
  border-radius: 50%;
  background: var(--bh-red);
}

.bh-hero h1 {
  max-width: 650px;
  margin-top: 20px;
  color: var(--bh-ink);
  font-size: clamp(44px, 5.3vw, 68px);
  font-weight: 750;
  letter-spacing: -.058em;
  line-height: 1.06;
}

.bh-accent-text {
  color: var(--bh-red);
}

.bh-hero-copy > p:not(.bh-eyebrow) {
  max-width: 590px;
  margin-top: 24px;
  color: var(--bh-gray-700);
  font-size: 17px;
  line-height: 1.65;
}

.bh-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 30px;
}

.bh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 19px;
  color: var(--bh-white);
  background: var(--bh-red);
  border: 1px solid var(--bh-red);
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-align: center;
  text-transform: uppercase;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.bh-btn:hover {
  color: var(--bh-white);
  background: #B91F16;
  border-color: #B91F16;
  transform: translateY(-1px);
}

.bh-btn-outline {
  color: var(--bh-ink);
  background: transparent;
  border-color: var(--bh-ink);
}

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

.bh-text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--bh-ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.bh-text-link::after {
  width: 28px;
  height: 1px;
  margin-left: 10px;
  content: '';
  background: currentColor;
  transition: width .2s ease;
}

.bh-text-link:hover {
  color: var(--bh-red);
}

.bh-text-link:hover::after {
  width: 38px;
}

.bh-hero-footnote {
  margin-top: 24px;
  color: var(--bh-gray-500);
  font-size: 11px;
  line-height: 1.5;
}

.bh-hero-media {
  position: relative;
  min-height: 500px;
  overflow: hidden;
  background: var(--bh-gray-200);
}

.bh-hero-media img {
  width: 100%;
  height: 500px;
  object-fit: cover;
  filter: grayscale(1) contrast(1.08);
}

.bh-image-caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 38px 18px 16px;
  color: var(--bh-white);
  background: linear-gradient(to bottom, transparent, rgba(23, 26, 31, .82));
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.bh-capabilities {
  color: var(--bh-white);
  background: var(--bh-ink);
}

.bh-capabilities .bh-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 15px 28px;
  padding-block: 21px;
}

.bh-capabilities span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, .72);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.bh-capabilities span::before {
  width: 6px;
  height: 6px;
  content: '';
  border-radius: 50%;
  background: var(--bh-red);
}

.bh-capabilities span:nth-child(2)::before { background: var(--bh-blue); }
.bh-capabilities span:nth-child(3)::before { background: var(--bh-turquoise); }
.bh-capabilities span:nth-child(4)::before { background: var(--bh-violet); }
.bh-capabilities span:nth-child(5)::before { background: var(--bh-green); }

/* Shared sections */
.bh-section {
  padding-block: 90px;
}

.bh-section-intro h2 {
  max-width: 720px;
  margin-top: 13px;
  color: var(--bh-ink);
  font-size: clamp(34px, 4vw, 50px);
  font-weight: 750;
  letter-spacing: -.052em;
  line-height: 1.08;
}

.bh-section-intro > p:not(.bh-eyebrow) {
  max-width: 620px;
  margin-top: 19px;
  color: var(--bh-gray-700);
  line-height: 1.7;
}

/* Services with editorial rail */
.bh-services {
  background: var(--bh-white);
}

.bh-services-layout {
  display: grid;
  grid-template-columns: minmax(220px, 30fr) minmax(0, 70fr);
  align-items: start;
  gap: clamp(38px, 7vw, 94px);
}

.bh-services-rail {
  position: sticky;
  top: 160px;
}

.bh-services-rail .bh-section-intro {
  padding-bottom: 28px;
  border-bottom: 1px solid var(--bh-gray-300);
}

.bh-services-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 23px;
}

.bh-services-filter button {
  min-height: 36px;
  padding: 7px 11px;
  color: var(--bh-gray-700);
  background: transparent;
  border: 1px solid var(--bh-gray-300);
  border-radius: 99px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}

.bh-services-filter button:hover,
.bh-services-filter button.is-active,
.bh-services-filter button[aria-selected='true'] {
  color: var(--bh-white);
  background: var(--bh-ink);
  border-color: var(--bh-ink);
}

.bh-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 17px;
}

.bh-service-card {
  --service-color: var(--bh-blue);
  display: flex;
  min-height: 280px;
  flex-direction: column;
  padding: 24px;
  border: 1px solid var(--bh-gray-300);
  border-radius: var(--bh-radius);
  background: var(--bh-white);
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

.bh-service-card:hover {
  border-color: var(--bh-silver);
  box-shadow: var(--bh-shadow-sm);
  transform: translateY(-4px);
}

.bh-service-card[data-color='turquoise'] { --service-color: var(--bh-turquoise); }
.bh-service-card[data-color='violet'] { --service-color: var(--bh-violet); }
.bh-service-card[data-color='green'] { --service-color: var(--bh-green); }
.bh-service-card[data-color='red'] { --service-color: var(--bh-red); }

.bh-service-card .bh-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  margin-bottom: 20px;
  color: var(--service-color);
  background: color-mix(in srgb, var(--service-color) 13%, white);
  border-radius: 5px;
}

.bh-icon svg {
  width: 24px;
  height: 24px;
}

.bh-card-category {
  align-self: flex-start;
  margin-bottom: 10px;
  color: var(--service-color);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.bh-service-card h3 {
  color: var(--bh-ink);
  font-size: 20px;
  letter-spacing: -.025em;
  line-height: 1.16;
}

.bh-service-card p {
  margin-top: 10px;
  color: var(--bh-gray-700);
  font-size: 13px;
  line-height: 1.65;
}

.bh-discover {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: auto;
  padding-top: 20px;
  color: var(--bh-red);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.bh-discover::after {
  content: '→';
  font-size: 17px;
  line-height: 1;
  transition: transform .2s ease;
}

.bh-discover:hover::after {
  transform: translateX(4px);
}

/* Dark solutions / process */
.bh-solutions {
  color: var(--bh-white);
  background: var(--bh-ink);
}

.bh-solutions .bh-section-intro h2 {
  color: var(--bh-white);
}

.bh-solutions .bh-section-intro > p:not(.bh-eyebrow) {
  color: rgba(255, 255, 255, .68);
}

.bh-solutions .bh-eyebrow {
  color: rgba(255, 255, 255, .65);
}

.bh-solution-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 48px;
  border-top: 1px solid #3A4047;
  border-left: 1px solid #3A4047;
}

.bh-solution {
  min-height: 250px;
  padding: 28px;
  border-right: 1px solid #3A4047;
  border-bottom: 1px solid #3A4047;
}

.bh-step-num {
  display: block;
  margin-bottom: 48px;
  color: var(--bh-red);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
}

.bh-solution h3 {
  max-width: 250px;
  color: var(--bh-white);
  font-size: 24px;
  letter-spacing: -.035em;
  line-height: 1.14;
}

.bh-solution p {
  max-width: 280px;
  margin-top: 13px;
  color: rgba(255, 255, 255, .65);
  font-size: 13px;
  line-height: 1.65;
}

/* Admin / governance statement */
.bh-admin-section {
  background: var(--bh-paper);
}

.bh-admin-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 1fr);
  gap: clamp(40px, 9vw, 145px);
  align-items: start;
}

.bh-admin-grid h2 {
  max-width: 500px;
  margin-top: 15px;
  color: var(--bh-ink);
  font-size: clamp(34px, 4.2vw, 52px);
  font-weight: 750;
  letter-spacing: -.055em;
  line-height: 1.05;
}

.bh-admin-grid > div:first-child > p:last-child {
  max-width: 490px;
  margin-top: 24px;
  color: var(--bh-gray-700);
  line-height: 1.7;
}

.bh-admin-summary {
  padding: 30px;
  border: 1px solid var(--bh-gray-300);
  background: var(--bh-white);
  box-shadow: 8px 8px 0 rgba(162, 178, 200, .22);
}

.bh-admin-summary > p {
  color: var(--bh-gray-700);
  font-size: 13px;
  line-height: 1.7;
}

.bh-check-list {
  display: grid;
  gap: 14px;
  margin-top: 25px;
}

.bh-check-list li {
  position: relative;
  padding-left: 27px;
  color: var(--bh-ink);
  font-size: 13px;
  line-height: 1.45;
}

.bh-check-list li::before {
  position: absolute;
  top: 2px;
  left: 0;
  display: grid;
  width: 17px;
  height: 17px;
  place-items: center;
  content: '✓';
  color: var(--bh-white);
  background: var(--bh-green);
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
}

/* About / typographic visual */
.bh-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  align-items: center;
  gap: clamp(42px, 9vw, 140px);
}

.bh-statement {
  position: relative;
  min-height: 360px;
  padding: 42px 35px;
  overflow: hidden;
  color: var(--bh-white);
  background: var(--bh-blackgray);
}

.bh-statement::before,
.bh-statement::after {
  position: absolute;
  width: 180px;
  height: 180px;
  content: '';
  border: 1px solid rgba(255, 255, 255, .13);
  transform: rotate(45deg);
}

.bh-statement::before {
  right: -85px;
  bottom: -88px;
}

.bh-statement::after {
  right: -120px;
  bottom: -54px;
}

.bh-statement > * {
  position: relative;
  z-index: 1;
}

.bh-statement-label {
  color: var(--bh-turquoise);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.bh-statement strong {
  display: block;
  max-width: 520px;
  margin-top: 35px;
  color: var(--bh-white);
  font-size: clamp(42px, 5.1vw, 72px);
  font-weight: 750;
  letter-spacing: -.075em;
  line-height: .94;
}

.bh-about-copy h2 {
  margin-top: 14px;
  color: var(--bh-ink);
  font-size: clamp(34px, 4vw, 49px);
  font-weight: 750;
  letter-spacing: -.055em;
  line-height: 1.06;
}

.bh-about-copy > p:last-child {
  margin-top: 22px;
  color: var(--bh-gray-700);
  line-height: 1.7;
}

/* Contact / brief form */
.bh-contact-section {
  background: var(--bh-gray-100);
}

.bh-contact-grid {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(38px, 8vw, 122px);
}

.bh-contact-copy h2 {
  margin-top: 14px;
  color: var(--bh-ink);
  font-size: clamp(34px, 4.1vw, 52px);
  font-weight: 750;
  letter-spacing: -.06em;
  line-height: 1.04;
}

.bh-contact-copy > p:last-child {
  max-width: 390px;
  margin-top: 22px;
  color: var(--bh-gray-700);
  line-height: 1.7;
}

.bh-brief-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
  padding: clamp(22px, 4vw, 38px);
  border: 1px solid var(--bh-gray-200);
  border-radius: var(--bh-radius);
  background: var(--bh-white);
  box-shadow: var(--bh-shadow-sm);
}

.bh-field {
  display: grid;
  gap: 7px;
}

.bh-field label {
  color: var(--bh-gray-700);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.bh-field :where(input, select, textarea) {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  color: var(--bh-ink);
  background: var(--bh-white);
  border: 1px solid var(--bh-gray-300);
  border-radius: 4px;
  outline: 0;
  font-size: 13px;
}

.bh-field :where(input, select, textarea):focus {
  border-color: var(--bh-blue);
  box-shadow: 0 0 0 3px rgba(48, 127, 226, .14);
}

.bh-field textarea {
  min-height: 124px;
  resize: vertical;
}

.bh-field.bh-full {
  grid-column: 1 / -1;
}

.bh-notice {
  grid-column: 1 / -1;
  padding: 11px 13px;
  color: var(--bh-gray-700);
  border: 1px solid var(--bh-gray-300);
  background: var(--bh-gray-100);
  font-size: 11px;
  line-height: 1.5;
}

.bh-form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
  grid-column: 1 / -1;
  padding-top: 4px;
}

.bh-status {
  color: var(--bh-gray-700);
  font-size: 12px;
}

.bh-status.is-success {
  color: var(--bh-green);
}

.bh-status.is-error {
  color: var(--bh-red);
}

/* Footer */
.bh-footer {
  color: rgba(255, 255, 255, .72);
  background: var(--bh-blackgray);
}

.bh-footer .bh-wrap {
  padding-block: 60px 24px;
}

.bh-footer-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 50px;
}

.bh-footer .bh-wordmark strong {
  color: var(--bh-white);
}

.bh-footer .bh-wordmark small {
  color: var(--bh-silver);
}

.bh-footer-grid > div > p {
  max-width: 280px;
  margin-top: 20px;
  color: rgba(255, 255, 255, .58);
  font-size: 12px;
  line-height: 1.65;
}

.bh-footer h3 {
  margin-bottom: 14px;
  color: var(--bh-white);
  font-size: 11px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.bh-footer ul {
  display: grid;
  gap: 8px;
}

.bh-footer li,
.bh-footer li a {
  color: rgba(255, 255, 255, .58);
  font-size: 12px;
}

.bh-footer li a:hover {
  color: var(--bh-white);
}

.bh-footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px 24px;
  padding-top: 20px;
  border-top: 1px solid #3A4047;
  color: rgba(255, 255, 255, .42);
  font-size: 10px;
}

/* Native service dialog */
.bh-service-dialog {
  width: min(680px, calc(100% - 40px));
  max-height: 80vh;
  padding: 0;
  color: var(--bh-ink);
  border: 0;
  border-radius: var(--bh-radius);
  background: var(--bh-white);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .3);
  overflow-y: auto;
}

.bh-service-dialog::backdrop {
  background: rgba(23, 26, 31, .72);
  backdrop-filter: blur(3px);
}

.bh-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 26px 28px 20px;
  border-bottom: 1px solid var(--bh-gray-200);
}

.bh-dialog-head h2 {
  font-size: 26px;
  letter-spacing: -.035em;
  line-height: 1.15;
}

.bh-close {
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  color: var(--bh-ink);
  background: var(--bh-gray-100);
  border-radius: 4px;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}

.bh-close:hover {
  color: var(--bh-white);
  background: var(--bh-red);
}

.bh-dialog-body {
  padding: 26px 28px 32px;
}

.bh-dialog-body h2 {
  color: var(--bh-ink);
  font-size: 28px;
  letter-spacing: -.04em;
}

.bh-dialog-body p {
  margin-top: 14px;
  color: var(--bh-gray-700);
  line-height: 1.7;
}

.bh-modal-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}

.bh-modal-tags span,
.bh-modal-tags a {
  padding: 7px 10px;
  color: var(--bh-gray-700);
  border: 1px solid var(--bh-gray-300);
  border-radius: 99px;
  font-size: 11px;
  font-weight: 700;
}

/* Progressive reveal: no hidden content until JS explicitly enables motion. */
.bh-home.bh-motion-enabled .bh-reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .55s ease, transform .55s ease;
}

.bh-home.bh-motion-enabled .bh-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.bh-home.bh-motion-enabled .bh-service-card:nth-child(2),
.bh-home.bh-motion-enabled .bh-solution:nth-child(2) {
  transition-delay: .06s;
}

.bh-home.bh-motion-enabled .bh-service-card:nth-child(3),
.bh-home.bh-motion-enabled .bh-solution:nth-child(3) {
  transition-delay: .12s;
}

.bh-home.bh-motion-enabled .bh-service-card:nth-child(4) {
  transition-delay: .18s;
}

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

  .bh-home.bh-motion-enabled .bh-reveal,
  .bh-home.bh-motion-enabled .bh-reveal.is-visible {
    opacity: 1;
    transform: none;
  }
}

@media (min-width: 1200px) {
  .bh-service-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1050px) {
  .bh-brand-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px 20px;
  }

  .bh-logo {
    min-width: 0;
  }

  .bh-search {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    margin-left: 0;
  }

  .bh-desktop-only,
  .bh-header .bh-account-actions {
    display: none;
  }

  .bh-mobile-toggle {
    display: grid;
    place-items: center;
    grid-column: 2;
    grid-row: 1;
  }

  .bh-nav-row {
    display: none;
  }

  .bh-mobile-menu:not([hidden]) {
    display: block;
  }

  .bh-hero-grid {
    gap: 45px;
  }

  .bh-hero h1 {
    font-size: clamp(43px, 6vw, 60px);
  }

  .bh-services-layout {
    gap: 42px;
  }

  .bh-services-rail {
    top: 130px;
  }
}

@media (max-width: 800px) {
  .bh-wrap,
  .bh-brand-row,
  .bh-nav-row {
    width: calc(100% - 40px);
  }

  .bh-hero .bh-wrap {
    padding-block: 55px 45px;
  }

  .bh-services-layout,
  .bh-admin-grid,
  .bh-about-grid,
  .bh-contact-grid {
    grid-template-columns: 1fr;
  }

  .bh-services-rail {
    position: static;
  }

  .bh-services-rail .bh-section-intro {
    max-width: 650px;
  }

  .bh-solution-grid {
    grid-template-columns: 1fr;
  }

  .bh-solution {
    min-height: 0;
  }

  .bh-step-num {
    margin-bottom: 26px;
  }

  .bh-admin-grid {
    gap: 35px;
  }

  .bh-about-grid,
  .bh-contact-grid {
    gap: 35px;
  }

  .bh-footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .bh-footer-grid > div:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .bh-section {
    padding-block: 62px;
  }

  .bh-utility .bh-wrap {
    gap: 10px;
    font-size: 9px;
  }

  .bh-utility p:first-child {
    max-width: 56%;
  }

  .bh-brand-row {
    min-height: 0;
    padding-block: 12px 15px;
  }

  .bh-wordmark strong {
    font-size: 18px;
  }

  .bh-mark {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  .bh-hero-grid {
    grid-template-columns: 1fr;
    gap: 31px;
  }

  .bh-hero h1 {
    max-width: 600px;
    margin-top: 16px;
    font-size: 42px;
    letter-spacing: -.06em;
  }

  .bh-hero-copy > p:not(.bh-eyebrow) {
    margin-top: 18px;
    font-size: 16px;
  }

  .bh-hero-media,
  .bh-hero-media img {
    min-height: 280px;
    height: 280px;
  }

  .bh-capabilities .bh-wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 14px 18px;
  }

  .bh-capabilities span {
    font-size: 9px;
  }

  .bh-section-intro h2,
  .bh-admin-grid h2,
  .bh-about-copy h2,
  .bh-contact-copy h2 {
    font-size: 36px;
  }

  .bh-service-grid {
    grid-template-columns: 1fr;
  }

  .bh-service-card {
    min-height: 248px;
  }

  .bh-statement {
    min-height: 280px;
    padding: 30px 24px;
  }

  .bh-statement strong {
    margin-top: 28px;
    font-size: 52px;
  }

  .bh-brief-form {
    grid-template-columns: 1fr;
    padding: 20px;
  }

  .bh-field.bh-full,
  .bh-notice,
  .bh-form-actions {
    grid-column: auto;
  }

  .bh-footer-grid {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-bottom: 35px;
  }

  .bh-footer-grid > div:first-child {
    grid-column: auto;
  }

  .bh-footer .bh-wrap {
    padding-block: 45px 22px;
  }

  .bh-dialog-head,
  .bh-dialog-body {
    padding-right: 20px;
    padding-left: 20px;
  }
}

@media print {
  .bh-utility,
  .bh-header,
  .bh-mobile-menu,
  .bh-actions,
  .bh-capabilities,
  .bh-footer,
  .bh-service-dialog {
    display: none !important;
  }

  .bh-home,
  .bh-hero,
  .bh-section,
  .bh-contact-section,
  .bh-admin-section {
    color: #000;
    background: #fff;
  }

  .bh-wrap {
    width: auto;
    max-width: none;
    padding: 20px 0;
  }
}

/* Raccordement au HTML serveur de la Home uniquement. */
.bh-home { --bh-ink:#000000; --bh-blackgray:#171717; --bh-gray-700:#464646; --bh-gray-100:#F0F0F0; --bh-paper:#FFFFFF; }
.bh-home .bh-btn { color:#FFFFFF; gap:14px; }
.bh-home .bh-btn-outline { color:#000000; }
.bh-home .bh-btn-outline:hover { color:#FFFFFF; }
.bh-home svg.bh-icon { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.bh-service-icon { width:48px;height:48px;display:grid;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--service-color) 10%,white);color:var(--service-color);margin-bottom:16px; }
.bh-home .bh-service-icon svg.bh-icon { margin:0;background:none;border-radius:0; }
.bh-service-card[data-color='silver'] { --service-color:#697C96; }
.bh-card-category { color:#464646!important; }
.bh-card-details { margin-top:auto; }
.bh-discover { cursor:pointer;min-height:44px;list-style:none; }
.bh-discover::-webkit-details-marker { display:none; }
.bh-discover::after { content:none; }
.bh-service-grid { margin-top:22px; }
.bh-services-filter { padding-top:0; }
.bh-services-filter button { min-height:44px; }
.bh-full { grid-column:1 / -1; }
.bh-brief-form h3 { font-size:24px;letter-spacing:-.03em; }
.bh-brief-form .bh-full > p { font-size:13px;line-height:1.6;color:#464646;margin-top:8px; }
.bh-form-actions button.bh-text-link { background:none;cursor:pointer; }
.bh-status { min-height:1.5em; }
.bh-result strong,.bh-result span { display:block; }
.bh-result span { margin-top:3px;font-size:11px; }
.bh-result-caption,#bh-result-status { padding:8px 12px;font-size:11px;color:#464646; }
.bh-search-page-results { max-width:700px;margin-top:20px; }
.bh-search-page-results .bh-result { border-bottom:1px solid #E8ECEF; }
.bh-mega-menu .bh-eyebrow,.bh-mega-menu>.bh-text-link { grid-column:1 / -1; }
.bh-mega-menu { max-height:70vh;overflow-y:auto; }
.bh-services-menu>summary>span { display:none; }
.bh-nav-row>.bh-btn { margin-left:auto; }
.bh-nav-row { padding-block:0; }
.bh-wordmark strong>span { color:#DA291C;margin-left:6px; }
.bh-image-caption small { display:block;font-weight:400;font-size:9px;letter-spacing:.05em;margin-top:5px; }
.bh-solutions .bh-text-link { color:#FFFFFF;line-height:1.5;font-size:11px;margin-top:14px; }
.bh-admin-grid .bh-btn { margin-top:22px; }
.bh-admin-summary h3 { margin-top:15px;font-size:27px;letter-spacing:-.035em;line-height:1.2; }
.bh-admin-summary .bh-notice { margin-top:22px; }
.bh-admin-summary>small { display:block;margin-top:16px;font-size:11px;color:#464646; }
.bh-contact-details { margin-top:24px; }
.bh-footer-grid>div>a:not(.bh-logo) { display:block;min-height:36px;font-size:13px;line-height:1.6; }
.bh-footer-grid>div>a:hover { color:#FFFFFF; }
.bh-footer .bh-footer-bottom { padding-block:22px; }
.bh-future-note { max-width:300px;margin-top:32px; }
.bh-statement strong { font-size:clamp(100px,13vw,185px);line-height:1.0; }
.bh-statement strong>span { color:#DA291C; }
.bh-statement>span { font-size:11px;letter-spacing:.18em; }
.bh-statement>p { color:#D7DDE2;font-size:15px;margin-top:22px; }
.bh-about .bh-text-link { margin-top:18px; }
.bh-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.bh-skip-link { position:fixed;top:8px;left:8px;z-index:100;background:#fff;padding:12px;transform:translateY(-160%); }
.bh-skip-link:focus { transform:translateY(0); }
.bh-home button:disabled { opacity:.55;cursor:not-allowed; }
.bh-home .bh-contact-panel { min-width:0; }
@media(min-width:1051px) and (max-width:1200px) {
 .bh-nav-links>a,.bh-services-menu>summary { padding-inline:11px;font-size:11px; }
 .bh-nav-row>.bh-btn { padding-inline:12px;font-size:11px; }
}
@media(max-width:1050px) { .bh-mobile-menu { max-height:calc(100dvh - 142px);overflow-y:auto;-webkit-overflow-scrolling:touch; } }
@media(max-width:800px) { .bh-future-note { max-width:none; } }
@media(max-width:700px) { .bh-hero .bh-wrap { padding-block:36px; } .bh-statement { min-height:300px; } .bh-hero-footnote { font-size:12px!important; } .bh-utility .bh-wrap>span { max-width:56%; } .bh-footer-bottom { flex-direction:column; } }

@keyframes bh-intro { from { opacity:0;transform:translateY(10px); } to { opacity:1;transform:translateY(0); } }
@keyframes bh-menu-enter { from { opacity:0;transform:translateY(-4px); } to { opacity:1;transform:translateY(0); } }
.bh-hero-copy { animation:bh-intro .45s ease-out both; }
.bh-hero-media { animation:bh-intro .55s ease-out both; }
.bh-services-menu[open] .bh-mega-menu,.bh-mobile-menu:not([hidden]) { animation:bh-menu-enter .18s ease-out both; }
.bh-nav-links > a,.bh-mobile-links a { transition:color .18s ease; }

/* Réorganisation Home/Contact : mêmes palette, typo, cartes et boutons. */
.bh-section-intro h1,.bh-saas-intro h1 { margin-top:18px;color:var(--bh-ink);font-size:clamp(38px,4.6vw,62px);font-weight:750;letter-spacing:-.055em;line-height:1.06; }
.bh-home[data-page='home'] #services { padding-top:64px; }
.bh-home[data-page='home'] .bh-service-card>a.bh-discover { margin-top:auto; }
.bh-home[data-page='home'] .bh-services-rail { top:145px; }
.bh-home[data-page='home'] .bh-future-note { font-size:12px; }
.bh-home[data-page='contact'] .bh-contact-section { padding-top:64px; }
.bh-preparation { display:table;background:#F0F0F0;color:#464646;border:1px solid #D7DDE2;border-radius:30px;padding:7px 12px;font-size:12px;margin-top:24px!important; }
.bh-saas-intro { max-width:1100px; }
.bh-saas-intro>.bh-lead { font-size:20px;line-height:1.6;max-width:800px; }
.bh-saas-intro>p { margin-top:20px;max-width:850px;line-height:1.7; }
.bh-saas-intro>.bh-notice { margin-top:28px;max-width:850px; }
.bh-saas-intro>h2 { margin-top:50px;font-size:32px;letter-spacing:-.04em; }
.bh-saas-vision { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px; }
.bh-saas-vision article { border:1px solid #D7DDE2;border-radius:8px;padding:26px; }
.bh-saas-vision article>span { color:#DA291C;font-size:12px; }
.bh-saas-vision h3 { font-size:22px;margin-top:18px;letter-spacing:-.03em; }
.bh-saas-vision p { color:#464646;margin-top:12px;font-size:14px;line-height:1.7; }
.bh-home article[id] { scroll-margin-top:175px; }
@media(max-width:800px) { .bh-home[data-page='home'] .bh-services-rail { position:static; } }
@media(max-width:700px) { .bh-home[data-page='home'] #services,.bh-home[data-page='contact'] .bh-contact-section { padding-top:36px; } .bh-saas-vision { grid-template-columns:1fr; } .bh-saas-intro>.bh-lead { font-size:17px; } }
