/* BondBeyond landing page — Version A.
   Two background tones alternate down the page (mauve / cream); the lemon
   accent is reserved for CTAs and highlights so nothing competes with them. */

:root {
  /* Paired with the color-scheme meta tag. "only light" refuses a browser's
     automatic dark repaint outright; a plain "light" merely states a
     preference and Chrome's Auto Dark Theme will still override it. */
  color-scheme: only light;

  --mauve: #a58298;
  --cream: #fffde6;
  --ink: #010020;
  --accent: #f9ed69;

  --card: #fffef2;
  --hairline: rgba(1, 0, 32, 0.12);

  --shell: 1240px;
  --gutter: 20px;
}

@media (min-width: 760px) { :root { --gutter: 40px; } }

@font-face {
  font-family: 'Outfit';
  src: url('fonts/Outfit-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Outfit';
  src: url('fonts/Outfit-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'Outfit';
  src: url('fonts/Outfit-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

h1, h2, h3 {
  margin: 0;
  font-weight: 700;
  letter-spacing: -0.8px;
  line-height: 1.06;
}

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

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  padding: 12px 18px;
  background: var(--ink);
  color: var(--cream);
  font-weight: 700;
}
.skip-link:focus { left: 0; }

:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: 3px;
  border-radius: 6px;
}

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

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 16px 34px;
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.btn--accent {
  /* The fill is a real raster image (a tiny yellow PNG), not a color and not
     a gradient. Forced-dark engines (Samsung Internet's website dark mode,
     Chromium Auto Dark on browsers that ignore the color-scheme opt-out)
     repaint background-color AND darken gradients, but they leave raster
     images alone to protect photos, so this is the one fill they cannot
     touch. -webkit-text-fill-color pins the ink the same way: engines
     rewrite `color`, not the fill override. */
  background-color: var(--accent);
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAE0lEQVR4nGP8+TaTAQaY4Cy8HAB1AgJXmTtUUAAAAABJRU5ErkJggg==");
  background-size: cover;
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
  box-shadow: 0 6px 18px rgba(1, 0, 32, 0.16);
}

.btn--accent:hover {
  background-color: #fdf59a;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAE0lEQVR4nGP8+3UWAwwwwVl4OQCAvwKUZWETBAAAAABJRU5ErkJggg==");
  background-size: cover;
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(1, 0, 32, 0.22);
}

.btn--accent:active { transform: translateY(0); }

/* ---------- Section heads ---------- */

.section-head h2 {
  font-size: clamp(1.95rem, 4.4vw, 3rem);
  max-width: 20ch;
}

.section-head p {
  margin-top: 14px;
  max-width: 62ch;
  font-size: 1.02rem;
}

/* Block 2's head is left-aligned like the comp; block 3's is centred per the
   blueprint, so the centring rides on a modifier rather than the base. */
.section-head--onMauve {
  color: var(--cream);
  text-align: center;
}
.section-head--onMauve h2 { margin-inline: auto; max-width: 24ch; }

/* ================= BLOCK 1 — HERO ================= */

.hero {
  position: relative;
  background: var(--mauve);
}

.hero__grid { display: grid; }

@media (min-width: 900px) {
  .hero__grid {
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }
}

.hero__copy {
  width: 100%;
  padding: 56px var(--gutter) 60px;
  text-align: center;
}

@media (min-width: 900px) {
  /* Capping the column at half the shell and pinning it to the grid's centre
     line makes the copy start exactly where a .shell would, at any width. */
  .hero__copy {
    max-width: calc(var(--shell) / 2);
    justify-self: end;
    padding-block: 104px;
    text-align: left;
  }
}

.hero h1 {
  color: var(--cream);
  font-size: clamp(2.6rem, 6.2vw, 4.3rem);
  letter-spacing: -1.6px;
}

@media (min-width: 900px) { .hero h1 { max-width: 12ch; } }

.hero__sub {
  margin-top: 22px;
  color: var(--cream);
  font-size: 1.04rem;
  line-height: 1.62;
}

@media (min-width: 900px) { .hero__sub { max-width: 46ch; } }

.hero .btn { margin-top: 36px; }

.hero__media {
  position: relative;
  min-height: 300px;
}

@media (min-width: 900px) {
  .hero__media { align-self: stretch; min-height: 560px; }
}

.hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 900px) {
  .hero__photo { position: absolute; inset: 0; }
}

/* On narrow screens the lockup leads the single column, on flat mauve rather
   than over a busy crop of the photo. From the 2-column breakpoint up it
   returns to the comp's top-right corner, floating above the image. */
.hero__logo {
  width: 150px;
  height: auto;
  margin: 26px auto 0;
}

@media (min-width: 900px) {
  .hero__logo {
    position: absolute;
    top: 28px;
    right: var(--gutter);
    z-index: 2;
    width: 168px;
    margin: 0;
  }
}

/* ================= BLOCK 2 — VALUE & SEGMENTATION ================= */

.traps { padding-block: 66px 74px; background: var(--cream); }

@media (min-width: 760px) { .traps { padding-block: 92px 104px; } }

.cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  margin-top: 42px;
}

@media (min-width: 700px) {
  .cards { grid-template-columns: repeat(2, 1fr); gap: 28px; margin-top: 54px; }
}

.card {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
  background: var(--card);
  border: 1px solid var(--hairline);
  border-radius: 20px;
  box-shadow: 0 6px 20px rgba(1, 0, 32, 0.07);
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(1, 0, 32, 0.12);
}

/* The arch is the one shape carried over from the comp; percentages keep the
   dome true at every card width. */
.card__art {
  flex: 0 0 auto;
  width: 122px;
  overflow: hidden;
  border-radius: 50% 50% 10px 10px / 40% 40% 10px 10px;
}

.card__art img { width: 100%; aspect-ratio: 1; object-fit: cover; }

@media (min-width: 700px) { .card__art { width: 138px; } }

.card__body { min-width: 0; }

.card h3 {
  font-size: 1.32rem;
  font-weight: 700;
  letter-spacing: -0.4px;
}

@media (min-width: 700px) { .card h3 { font-size: 1.45rem; } }

.shift {
  margin-top: 10px;
  font-size: 0.95rem;
  line-height: 1.7;
}

.shift__arrow { margin-inline: 4px; font-weight: 700; }

/* Accent as a marker highlight, not as type colour — #f9ed69 on the card
   would fail contrast badly as text. */
.shift__to {
  padding: 2px 8px;
  border-radius: 5px;
  background: var(--accent);
  box-shadow: 0 1px 0 rgba(1, 0, 32, 0.08);
  font-weight: 700;
  white-space: nowrap;
}

.traps__cta { margin-top: 44px; text-align: center; }

@media (min-width: 760px) { .traps__cta { margin-top: 56px; } }

/* ================= BLOCK 3 — CREDIBILITY ================= */

.credibility {
  padding-block: 64px 72px;
  background: var(--mauve);
  color: var(--cream);
}

@media (min-width: 760px) { .credibility { padding-block: 92px 100px; } }

.proof {
  display: grid;
  grid-template-columns: 1fr;
  gap: 46px;
  margin-top: 48px;
}

@media (min-width: 820px) {
  .proof { grid-template-columns: repeat(3, 1fr); gap: 34px; margin-top: 62px; }
}

.proof__col {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.proof__icon {
  width: 132px;
  height: 132px;
  margin-bottom: 22px;
  object-fit: contain;
}

.proof__stat {
  font-size: clamp(2.6rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: -1.4px;
  line-height: 1.04;
}

.proof__stat--text { font-size: clamp(1.85rem, 3.4vw, 2.3rem); letter-spacing: -0.9px; }

.proof__sub {
  margin-top: 10px;
  max-width: 24ch;
  font-size: 1rem;
}

.proof__label {
  margin-bottom: 20px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 2.4px;
  text-transform: uppercase;
}

/* Both press marks are dark artwork, so they need a light plate to stay
   legible on the mauve. */
.proof__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  height: 132px;
  margin-top: -20px;
}

.proof__logos img {
  width: auto;
  max-width: 128px;
  max-height: 62px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #fff;
  object-fit: contain;
}

/* ================= BLOCK 4 — FINAL CTA ================= */

.final { padding-block: 62px 78px; background: var(--cream); }

@media (min-width: 760px) { .final { padding-block: 88px 108px; } }

.final__box {
  max-width: 880px;
  margin-inline: auto;
  padding: 46px 24px 52px;
  border-radius: 28px;
  background: var(--mauve);
  color: var(--cream);
  box-shadow: 0 18px 44px rgba(1, 0, 32, 0.18);
  text-align: center;
}

@media (min-width: 760px) { .final__box { padding: 68px 64px 72px; } }

.final__box h2 {
  margin-inline: auto;
  max-width: 18ch;
  font-size: clamp(1.9rem, 4.2vw, 2.85rem);
}

.final__art {
  width: 100%;
  max-width: 520px;
  margin: 34px auto 0;
  border-radius: 16px;
}

.final__sub {
  margin: 30px auto 0;
  max-width: 46ch;
  font-size: 1.04rem;
  line-height: 1.6;
}

.final__box .btn { margin-top: 34px; }

.final__secondary {
  margin-top: 22px;
  font-size: 0.98rem;
}

.final__secondary a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.final__secondary a:hover { color: var(--accent); }

/* ================= FOOTER ================= */

.footer {
  padding-block: 38px 32px;
  background: var(--mauve);
  color: var(--cream);
}

.footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
}

.footer__brand img { width: 176px; height: auto; }

.social { text-align: right; }

.social__label { font-size: 1.24rem; }

.social__links {
  display: flex;
  justify-content: flex-end;
  gap: 18px;
  margin-top: 12px;
}

.social__links a {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: var(--cream);
  transition: transform 0.16s ease, color 0.16s ease;
}
.social__links a:hover { transform: translateY(-2px); color: var(--accent); }

.social__links svg { width: 26px; height: 26px; }

.footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  margin-top: 32px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 253, 230, 0.26);
  font-size: 0.86rem;
}

.footer__links { display: flex; flex-wrap: wrap; gap: 22px; }

.footer__links a { font-weight: 600; text-decoration: none; }
.footer__links a:hover { text-decoration: underline; }

@media (max-width: 639px) {
  .footer__inner { flex-direction: column; align-items: flex-start; }
  .social { text-align: left; }
  .social__links { justify-content: flex-start; }
}

/* ================= SECONDARY PAGES ================= */

/* ai-transparency.html shares this stylesheet but was written against the
   pre-Version-A markup, so it still asks for a topbar, a text brand lockup,
   a narrow shell and a stacked footer row. The rebuild dropped all four;
   these put them back in the current palette rather than leaving that page
   half-styled. */

.shell--narrow { max-width: 820px; }

.topbar {
  padding-block: 22px;
  background: var(--mauve);
}

.topbar__inner { display: flex; align-items: center; }

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.brand__mark { width: 40px; height: 40px; border-radius: 10px; }

.brand__name {
  color: var(--cream);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.3px;
}

.footer__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 28px;
}

.legal-page a { font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
