/*
 * Launch-ready public-site refinements.
 *
 * This file is intentionally loaded last. It standardises small details that
 * should be consistent across legacy and CMS-rendered pages without replacing
 * the distinctive layouts owned by their page-specific stylesheets.
 */

:root {
  --bc-launch-ink: #102344;
  --bc-launch-muted: #5f6d83;
  --bc-launch-border: rgba(16, 35, 68, 0.12);
  --bc-launch-focus: #fecb07;
}

html {
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  color: var(--bc-launch-ink);
  font-family: "Open Sans", Arial, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6,
button,
input,
select,
textarea {
  font-family: "Open Sans", Arial, sans-serif;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

p,
li {
  text-wrap: pretty;
}

img,
svg,
video {
  max-width: 100%;
}

img {
  height: auto;
}

section[id] {
  scroll-margin-top: 120px;
}

a,
button,
input,
select,
textarea,
[tabindex]:not([tabindex="-1"]) {
  transition-duration: 180ms;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  border-radius: 4px;
  outline: 3px solid var(--bc-launch-focus) !important;
  outline-offset: 3px;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  min-height: 48px;
}

textarea {
  min-height: 132px;
  resize: vertical;
}

/* The generic CMS breadcrumb hero previously inherited dark paragraph text. */
.cms-section--hero > .bc-impact-hero.bc-impact {
  min-height: clamp(430px, 42vw, 560px);
  padding: clamp(64px, 7vw, 92px) 0;
}

.cms-section--hero > .bc-impact-hero.bc-impact h1 {
  font-size: clamp(44px, 4.05vw, 64px);
  line-height: 1.08;
}

.cms-section--hero > .bc-impact-hero.bc-impact p,
.cms-section--hero > .bc-impact-hero.bc-impact .bc-impact-hero__content p {
  color: rgba(255, 255, 255, 0.86) !important;
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.7;
}

/* Shared content containers keep generous desktop width and safe edge space. */
.bc-programme-container,
.bc-downloads-container,
.bc-container {
  padding-left: 0;
  padding-right: 0;
}

/* Motion remains subtle and is removed for visitors who request it. */
.bc-contact-card,
.bc-download-card,
.bc-faq-item,
.bc-about-strategy-card {
  transition-timing-function: ease;
}

@media (max-width: 767px) {
  section[id] {
    scroll-margin-top: 84px;
  }

  .cms-section--hero > .bc-impact-hero.bc-impact {
    min-height: 360px;
    padding: 54px 0;
  }

  .cms-section--hero > .bc-impact-hero.bc-impact h1 {
    font-size: clamp(36px, 11vw, 44px);
  }

  .bc-programme-container,
  .bc-downloads-container,
  .bc-container {
    width: min(100% - 40px, 1660px);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
