/* Benchmarking landing pages: closed-session enrolment, built from the shared institutional tokens. */
.route-benchmarking main h1,.route-benchmarking main h2 { font-family:var(--serif); font-weight:300; letter-spacing:-.015em; }
.route-benchmarking main a:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.route-benchmarking .bm-kicker { font-family:var(--sans); font-size:12px; font-weight:var(--weight-action); letter-spacing:.18em; text-transform:uppercase; color:var(--gold); }

/* Hero */
.bm-hero { background:var(--dark); color:var(--paper); overflow:hidden; }
/* Two explicit columns: auto-fit would collapse the portrait whenever the text column grows. */
.bm-hero>.wrap { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:40px 56px; align-items:end; padding-top:56px; padding-bottom:0; }
@media (max-width:860px) { .bm-hero>.wrap { grid-template-columns:minmax(0,1fr); } }
.bm-hero-text { max-width:620px; padding-bottom:72px; }
.bm-hero .bm-kicker { font-size:13px; color:var(--gold-mid); }
.bm-hero h1 { font-size:clamp(46px,6.4vw,84px); line-height:1; margin:18px 0 0; color:var(--paper); }
.bm-hero h1 em { font-style:italic; color:var(--gold-mid); }
.bm-hero-role { font-family:var(--sans); font-size:16px; font-weight:var(--weight-action); margin:16px 0 0; }
.bm-hero-lead { font-family:var(--serif); font-size:clamp(19px,1.9vw,23px); line-height:1.4; max-width:30em; margin:28px 0 0; }
.bm-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:32px; }
.bm-hero-note { font-size:14px; margin:18px 0 0; max-width:36em; }
.bm-hero-facts { display:flex; flex-wrap:wrap; gap:10px; margin-top:36px; padding-top:18px; border-top:1px solid rgba(255,255,255,.25); font-size:14px; list-style:none; }
.bm-hero-facts li+li::before { content:"|"; color:rgba(255,255,255,.4); margin-right:10px; }
.bm-hero-figure { position:relative; width:100%; max-width:560px; height:640px; overflow:hidden; justify-self:end; }
.bm-hero-figure img { position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:100%; height:100%; object-fit:cover; object-position:50% 12%; }
@media (max-width:860px) {
  /* Stacked, the portrait follows the text: full width, its own aspect ratio, framed on
     the face. A fixed height here left a gap under the text and cropped mid-forehead. */
  .bm-hero>.wrap { align-items:start; gap:0; }
  .bm-hero-text { padding-bottom:40px; }
  /* Bleed by the wrap's own padding: --gutter and .wrap can resolve to different values. */
  .bm-hero>.wrap { --bm-bleed:24px; }
  /* Full-bleed keeps 4/5 on a phone, but on a tablet that ratio becomes a tower, so the
     height is capped and the crop stays on the face. */
  .bm-hero-figure { max-width:none; height:auto; aspect-ratio:4/5; max-height:70vh; justify-self:stretch; margin-inline:calc(var(--bm-bleed) * -1); width:calc(100% + var(--bm-bleed) * 2); }
  .bm-hero-figure img { object-position:50% 8%; }
}
@media (max-width:480px) { .bm-hero-figure { aspect-ratio:1/1; } }

/* Touch targets: the mobile audit of 2026-09-08 set comfortable tap areas across the
   site, so these controls carry the same minimum without changing how they look. Keyed
   to width rather than pointer type, so narrow windows get it too. */
@media (max-width:860px) {
  .bm-section-nav>a,.bm-languages a,.bm-text-link { min-height:44px; display:inline-flex; align-items:center; }
  .bm-hero-actions { gap:16px 24px; }
  .bm-consent { padding-block:6px; grid-template-columns:22px 1fr; }
  .bm-consent input { width:22px; height:22px; }
  .bm-form :is(input,select) { min-height:46px; }
  .bm-pill { min-height:46px; display:inline-flex; align-items:center; }
}

/* Shared pill used for the enrolment calls to action */
.bm-pill { display:inline-block; font-family:var(--sans); font-size:15px; font-weight:var(--weight-action); padding:12px 24px; border-radius:999px; background:var(--blue); color:var(--ink); text-decoration:none; border:0; cursor:pointer; }
.bm-pill:hover { background:#8fcbeb; }
.bm-text-link { font-family:var(--sans); font-size:14px; font-weight:var(--weight-action); color:var(--paper); text-decoration:none; border-bottom:1px solid var(--gold-mid); padding-bottom:2px; }

/* Section navigation and the three-language selector, on ink below the hero */
.bm-section-nav { background:var(--dark); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 26px; padding-top:18px; padding-bottom:18px; }
.bm-section-nav>a { font-family:var(--sans); font-size:14px; font-weight:var(--weight-action); color:var(--paper); text-decoration:none; margin-right:26px; }
.bm-section-nav>a:hover,.bm-section-nav>a:focus-visible { border-bottom:1px solid var(--gold-mid); }
.bm-languages { display:flex; align-items:center; gap:8px; margin:0 0 0 auto; padding:0; list-style:none; }
.bm-languages a { display:inline-block; font-family:var(--sans); font-size:12px; font-weight:var(--weight-action); letter-spacing:.06em; color:rgba(255,255,255,.7); text-decoration:none; padding:6px 12px; border:1px solid rgba(255,255,255,.35); border-radius:999px; }
.bm-languages a:hover { border-color:var(--paper); color:var(--paper); }
.bm-languages a[aria-current="page"] { color:var(--blue); border-color:var(--blue); }

/* Client marquee */
.bm-clients { border-bottom:1px solid var(--footer-rule); }
.bm-clients .bm-kicker { display:block; padding-top:22px; }
.bm-marquee { overflow:hidden; padding:18px 0 24px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.bm-marquee ul { display:flex; width:max-content; margin:0; padding:0; list-style:none; animation:bm-marquee 60s linear infinite; }
.bm-marquee li { font-family:var(--sans); font-size:17px; font-weight:var(--weight-action); padding:0 28px; border-right:1px solid var(--footer-rule); white-space:nowrap; }
@keyframes bm-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) { .bm-marquee ul { animation:none; } .bm-marquee { overflow-x:auto; } }

/* Numbered statement blocks, shared by the context and case sections */
.bm-figures { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:24px 32px; margin-top:8px; padding:0; list-style:none; }
.bm-figures li { border-top:1px solid var(--footer-rule); padding-top:14px; }
.bm-figures b { display:block; font-family:var(--serif); font-size:48px; font-weight:300; line-height:1; letter-spacing:-.01em; }
.bm-figures span { display:block; font-family:var(--sans); font-size:14px; font-weight:var(--weight-action); margin-top:8px; }
.bm-source { font-size:12px; color:#5b5f63; margin-top:18px; }

.bm-section { padding-block:80px; }
.bm-section h2 { font-size:clamp(30px,3.4vw,42px); line-height:1.1; margin:0; }
.bm-section h2 em { font-style:normal; background:linear-gradient(135deg,#5f401f,#9c6e42,#c49e74); -webkit-background-clip:text; background-clip:text; color:transparent; }
.bm-prose { font-family:var(--sans); font-size:17px; line-height:1.6; max-width:34em; margin:22px 0 0; }

/* Case section, reversed out on ink */
.bm-case { background:var(--dark); color:var(--paper); }
.bm-case .bm-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:40px 64px; }
.bm-case h2,.bm-case .bm-prose { color:var(--paper); }
.bm-case .bm-figures { grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:28px 24px; }
.bm-case .bm-figures li { border-top-color:rgba(255,255,255,.25); }
.bm-case .bm-figures b { font-size:40px; }
.bm-case .bm-figures span { font-weight:400; font-size:13px; line-height:1.4; }
.bm-case .bm-kicker { color:var(--gold-mid); }
.bm-case-foot { margin-top:64px; padding-top:28px; border-top:1px solid rgba(255,255,255,.25); display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:32px 64px; }
.bm-case-question { font-family:var(--serif); font-size:clamp(22px,2.4vw,28px); line-height:1.25; max-width:22em; margin:12px 0 0; }
.bm-themes { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0 24px; margin:12px 0 0; padding:0; list-style:none; }
.bm-themes li { font-family:var(--sans); font-size:15px; font-weight:var(--weight-action); padding:12px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.bm-case .bm-source { color:#9a9da0; margin-top:28px; }

/* Format section */
.bm-format .bm-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:40px 64px; }
.bm-host { display:flex; align-items:center; gap:18px; margin-top:32px; padding-top:20px; border-top:1px solid var(--footer-rule); }
.bm-host-portrait { position:relative; width:64px; height:64px; border-radius:50%; overflow:hidden; background:#f1f0ed; flex:none; }
/* The source photo is a half-body portrait; crop to the face rather than the torso. */
.bm-host-portrait img { position:absolute; left:50%; top:0; transform:translateX(-50%); width:260%; max-width:none; height:auto; margin-top:-34px; }
.bm-host-name { font-family:var(--sans); font-size:16px; font-weight:var(--weight-action); margin:4px 0 0; }
.bm-host-role { font-size:14px; color:#5b5f63; margin:2px 0 0; }
.bm-agenda { border-top:2px solid var(--ink); margin:0; }
.bm-agenda>div { display:grid; grid-template-columns:96px 1fr; gap:24px; padding:22px 0; border-bottom:1px solid var(--footer-rule); }
.bm-agenda dt { font-family:var(--serif); font-size:40px; font-weight:300; line-height:1; }
.bm-agenda dt span { font-size:18px; margin-left:3px; }
.bm-agenda dd { margin:0; }
.bm-agenda dd b { display:block; font-family:var(--sans); font-size:16px; font-weight:var(--weight-action); }
.bm-agenda dd span { display:block; font-size:15px; line-height:1.5; margin-top:4px; }
.bm-agenda-foot { font-size:13px; color:#5b5f63; padding-top:18px; margin:0; }

/* Criteria — the single travertine band of the page */
.bm-criteria { background:var(--gold-soft); padding-block:64px; }
.bm-criteria .bm-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:40px 64px; }
.bm-chips { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0 0; padding:0; list-style:none; }
.bm-chips li { font-family:var(--sans); font-size:13px; font-weight:var(--weight-action); padding:7px 14px; border:1px solid var(--ink); border-radius:999px; }

/* Enrolment */
.bm-enrol { border-top:1px solid var(--footer-rule); padding-block:80px 96px; }
.bm-enrol .bm-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:40px 64px; align-items:start; }
.bm-facts { display:grid; grid-template-columns:110px 1fr; gap:12px 16px; margin-top:28px; padding-top:18px; border-top:1px solid var(--footer-rule); font-size:15px; }
.bm-facts dt { color:#5b5f63; margin:0; }
.bm-facts dd { font-family:var(--sans); font-weight:var(--weight-action); margin:0; }
.bm-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; max-width:640px; }
.bm-form-group { grid-column:1/-1; display:flex; align-items:center; gap:12px; padding-bottom:4px; border-bottom:1px solid var(--footer-rule); }
.bm-form-group::before { content:""; display:inline-block; width:20px; height:2px; background:var(--ink); }
.bm-field { display:flex; flex-direction:column; gap:6px; }
.bm-field-wide { grid-column:1/-1; }
.bm-field label { font-family:var(--sans); font-size:13px; font-weight:var(--weight-action); }
.bm-field :is(input,select) { font:inherit; font-size:15px; padding:12px 14px; border:1px solid #d8d6d2; border-radius:0; background:var(--paper); color:var(--ink); }
.bm-field :is(input,select):focus { border-color:var(--ink); outline:none; }
.bm-field input::placeholder { color:#9a9da0; }
.bm-consents { grid-column:1/-1; border-top:1px solid var(--footer-rule); padding-top:18px; display:grid; gap:14px; }
.bm-consent { display:grid; grid-template-columns:18px 1fr; gap:12px; align-items:start; font-size:14px; line-height:1.5; }
.bm-consent input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--ink); }
.bm-form-foot { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:8px; }
.bm-form-note { font-size:13px; color:#5b5f63; margin:0; }
.bm-form-error { grid-column:1/-1; font-size:14px; margin:0; }
.bm-success { max-width:640px; border-top:2px solid var(--ink); padding-top:24px; }
.bm-success p { font-family:var(--serif); font-size:clamp(24px,2.6vw,32px); line-height:1.25; margin:12px 0 0; }
/* The message above uses the display face; this summary must stay a quiet metadata line,
   so it has to outrank the `.bm-success p` rule it also matches. */
.bm-success p.bm-success-summary { font-family:var(--sans); font-size:14px; line-height:1.5; color:#5b5f63; border-top:1px solid var(--footer-rule); padding-top:14px; margin-top:20px; }
@media (max-width:480px) { .bm-form { grid-template-columns:1fr; } }
