/* ==== 1. reset (Astro src/styles/reset.css) ==== */
/* Base reset + element defaults, ported from OceanWP style.min.css and
   pruned to the rules the rewritten pages actually use (Playwright CSS
   coverage across all routes x 3 viewports). Loads first; theme.css sets
   the site typography/colors on top of these base values. */

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;font:inherit;vertical-align:baseline;font-family:inherit;font-size:100%;font-style:inherit;font-weight:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}html{font-size:62.5%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,main,nav,section{display:block}table{border-collapse:collapse;border-spacing:0}caption,th,td{font-weight:normal;text-align:left}
a img{border:0}img{max-width:100%;height:auto}select{max-width:100%}em{font-style:italic}
html{-ms-overflow-x:hidden;overflow-x:hidden}body{font-family:"Open Sans",sans-serif;font-size:15.4px;line-height:1.8;color:#4a4a4a;overflow-wrap:break-word;word-wrap:break-word}body{background-color:#fff}
dfn,cite,em,i{font-style:italic}
::selection{color:#fff;background:#333;text-shadow:none}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}
[hidden],template{display:none}a{background-color:rgba(0,0,0,0)}
b,strong{font-weight:600}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}
img{border:0}svg:not(:root){overflow:hidden}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}
button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
input{line-height:normal}
textarea{overflow:auto}
table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
#main{position:relative}
figure>img{display:block;margin:0 auto}img{max-width:100%;height:auto;vertical-align:middle}
embed,iframe,object{width:100%;max-width:100%}
table{width:100%;margin-bottom:2.618em}table th,table td{padding:10px;text-align:left;vertical-align:top;border-bottom:1px solid #e9e9e9}table th{text-transform:uppercase}
a{color:#333}
a,a:hover{text-decoration:none;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}
h1,h2,h3,h4,h5,h6{font-weight:600;margin:0 0 20px;color:#333;line-height:1.4}h1{font-size:25.3px}h2{font-size:22px}h3{font-size:19.8px}
p{margin:0 0 20px}
ul,ol{margin:15px 0 15px 20px}
li ul,li ol{margin:0 0 0 25px}
hr{clear:both;height:1px;min-height:0;margin:20px 0;border-top:1px solid #e9e9e9;border-right:0;border-bottom:0;border-left:0}
form input[type=text],form input[type=password],form input[type=email],form input[type=url],form input[type=date],form input[type=month],form input[type=time],form input[type=datetime],form input[type=datetime-local],form input[type=week],form input[type=number],form input[type=search],form input[type=tel],form input[type=color],form select,form textarea{display:inline-block;min-height:40px;width:100%;font-size:15.4px;line-height:1.8;padding:6px 12px;vertical-align:middle;background-color:rgba(0,0,0,0);color:#333;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}form select{padding-top:0 !important;padding-bottom:0 !important}
input[type=text],input[type=password],input[type=email],input[type=url],input[type=search],textarea{-webkit-appearance:none}
form textarea{min-height:150px;line-height:1.5;resize:vertical}
select{width:100%;height:2.25em;min-height:auto;border:1px solid #ddd;background-color:#fff;cursor:pointer;padding:0 15px;margin:0}
form label{margin-bottom:3px}
input[type=button],input[type=reset],input[type=submit],button[type=submit]{display:inline-block;font-family:inherit;background-color:#13aff0;color:#fff;font-size:13.2px;font-weight:600;text-transform:uppercase;margin:0;padding:14px 20px;border:0;cursor:pointer;text-align:center;letter-spacing:.1em;line-height:1;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}
.site-footer{position:relative}

/* ==== 2. fonts (Astro src/styles/fonts.css) ==== */
/* Self-hosted fonts — replaces the WP child-theme @font-face rules and the
   Google Fonts Montserrat request. Family names must match the originals
   exactly; the entire cascade refers to them. */

@font-face {
  font-family: 'HCo Gotham Rounded Light SSm';
  src: url('../fonts/gotham/GothamRndSSm-Light_Web.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'HCo Gotham Rounded Light Italic SSm';
  src: url('../fonts/gotham/GothamRndSSm-LightItalic_Web.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'HCo Gotham Rounded Book SSm';
  src: url('../fonts/gotham/GothamRndSSm-Book_Web.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'HCo Gotham Rounded Book Italic SSm';
  src: url('../fonts/gotham/GothamRndSSm-BookItalic_Web.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'HCo Gotham Rounded Medium SSm';
  src: url('../fonts/gotham/GothamRndSSm-Medium_Web.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'HCo Gotham Rounded Medium Italic SSm';
  src: url('../fonts/gotham/GothamRndSSm-MediumItalic_Web.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'HCo Gotham Rounded Bold SSm';
  src: url('../fonts/gotham/GothamRndSSm-Bold_Web.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'HCo Gotham Rounded Bold Italic SSm';
  src: url('../fonts/gotham/GothamRndSSm-BoldItalic_Web.woff') format('woff');
  font-display: swap;
}

/* Montserrat 300/400/700 (Beaver Builder modules) */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/montserrat-300-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/montserrat-300-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/montserrat-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/montserrat-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* 600: the RESOLUTION hero h1 (live loads Google's Montserrat 600 there, 2026-10-18). The montserrat-*.woff2 files are one
   variable font (identical bytes), so this face reuses the 700 file and its URL (one download, cached) */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/montserrat-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/montserrat-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ==== 3. tokens + primitives (Astro src/styles/theme.css) ==== */
/* Site theme: design tokens, element defaults, and shared primitives.
 *
 * Load order (see Base.astro): reset.css → fonts.css → theme.css. Everything
 * else is per-component scoped <style>. The WordPress/OceanWP customizer and
 * custom-CSS sheets were retired in structure-cleanup Phase D; the handful of
 * rules the rewritten pages still relied on live here.
 *
 * Breakpoints (match the Beaver Builder originals so rewritten pages reflow
 * at the same widths): mobile ≤778px, tablet ≤992px, desktop-large ≥1201px.
 */
:root {
  --font-light: 'HCo Gotham Rounded Light SSm', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-book: 'HCo Gotham Rounded Book SSm', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-medium: 'HCo Gotham Rounded Medium SSm', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  --color-blue: rgb(0, 173, 239); /* Allogene brand blue */
  --color-teal: #0e686f; /* links, focus rings, nav */
  --color-heading-gray: #626469;

  --content-max: 1100px; /* fixed-width row content */
}

/* ---- Element defaults (formerly the OceanWP customizer output) ---- */
body {
  font-family: var(--font-book);
  font-size: 1.5em; /* html is 62.5% → 15px */
  line-height: 1.8;
  color: var(--color-heading-gray);
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-medium);
  font-weight: 500;
  line-height: 1.4;
}
h1 {
  font-size: 60.5px;
  line-height: 1.2;
  letter-spacing: 5.6px;
  color: #fff;
}
h2 {
  font-size: 33px;
  line-height: 1.2;
  letter-spacing: 2.4px;
  color: #fff;
}
h3 { font-size: 19.8px; }
h4 { font-size: 18.7px; }
h5 { font-size: 15.4px; }
h6 { font-size: 16.5px; }

/* Buttons carry a 1px white border (theme default; components override). */
button,
button[type="submit"] {
  border: 1px solid #fff;
}

/* Prose links are teal; components add their own underline treatment. */
p a {
  color: var(--color-teal);
}

/* In-page anchor targets clear the sticky header: pull the target up by
   the header height so the linked heading isn't hidden beneath it. */
:target::before {
  content: "";
  display: block;
  height: 100px;
  margin: -100px 0 0;
}

/* ---- Shared primitives ---- */

/* visually hidden, available to assistive tech (margin -1px: Font Awesome's sheet supplied it until phase 8; kept so nothing moves) */
.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;
}

/* icons (phase 8): inline SVGs from allogene_icon() (plugin content/icons/), 1em tall, as wide as the glyph. Placed inline,
   the SVG's em box sits where the icon font's glyph sat: Font Awesome's em box bottom is .125em under the baseline (descent
   64 of 512 units), Ultimate Icons' .0625em (64 of 1024). Colour comes from currentColor, like the font glyph. */
.al-icon {
  vertical-align: -0.125em;
}
.al-icon--ua {
  vertical-align: -0.0625em;
}

/* skip link: off-screen until focused */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
}
.skip-link:focus {
  left: 5px;
  top: 5px;
  width: auto;
  height: auto;
  padding: 15px 23px 14px;
  background: #ddd;
  color: #444;
  text-decoration: none;
}

/* Video lightbox dialog. The markup is built at runtime by
   src/scripts/widgets.js (openLightbox), so these rules must stay global. */
.allo-lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
}
.allo-lightbox-content {
  width: min(1080px, 100%);
}
.allo-lightbox-ratio {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
}
.allo-lightbox-content iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.allo-lightbox-close {
  position: absolute;
  top: 16px;
  right: 20px;
  font-size: 39.6px;
  line-height: 1;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1;
}
.allo-lightbox-close:hover {
  color: #75b6bc;
}

/* ==== 3b. WordPress neutralisers ==== */
/* Core adds padding/margins to a few blocks the ported CSS does not expect. */
.wp-block-image, figure.wp-block-image, .wp-block-table { margin: 0; }
.wp-block-image img { height: auto; }
.wp-block-group.plain-page { max-width: var(--content-max); margin: 0 auto; padding: 60px 20px; }
.plain-page h1 { color: var(--color-teal); font-size: 33px; letter-spacing: 2.4px; }

html { scroll-padding-top: 110px; } /* sticky header is 109px; keeps focused/targeted elements visible */

/* ==== 4. top bar (Astro header/TopBar.astro) ==== */
  .topbar {
    background: #1f757b;
    border-bottom: 1px solid #1f757b;
    position: relative;
    z-index: 101;
  }
  .topbar-inner {
    width: 90%;
    margin: 0 auto;
    padding: 8px 0;
  }
  .topbar-menu {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start; /* live: inline line boxes — text/social items sit 1px below the glyph items */
    justify-content: flex-end;
    gap: 15px;
    /* matches the original inline line-box (11px text on 1.8 line-height plus
       the baseline-aligned icon), so topbar height == 37.8/61.8 and pages
       below don't shift vertically */
    min-height: 20.8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .topbar-menu > li {
    display: flex;
    align-items: center;
    margin-top: 1px; /* live: text and LinkedIn/X items at y=9 (topbar padding 8px + 1px) */
  }
  .topbar-menu > li:has(> .tb-glyph) {
    margin-top: 0; /* live: envelope/print anchors (20.8px tall) start at y=8 */
  }
  .topbar-menu a,
  .tb-action {
    color: #fff;
    font-family: var(--font-medium, 'HCo Gotham Rounded Medium SSm');
    font-size: 11px; /* live: 11px (Astro 12.1px) */
    letter-spacing: 0.6px;
    line-height: 19.8px;
    text-transform: uppercase;
    text-decoration: none;
  }
  .tb-action {
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
  }
  .tb-social,
  .tb-glyph {
    display: inline-flex;
    align-items: center;
  }
  .tb-social {
    align-items: flex-start;
    height: 19.8px; /* live: 19.8px anchor around the 18px circle */
  }
  .tb-glyph {
    align-items: flex-start;
    height: 20.8px; /* live: 20.8px anchor, 16px glyph at its top */
    padding: 0;
    border: 0;
    background: none;
    color: #fff;
    cursor: pointer;
  }
  /* LinkedIn / X: white circle, teal glyph */
  .alg-tb-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 3px 4px 4px; /* the 11px glyph's em box sat 2.9px under the circle's top (live / FA metrics); the SVG keeps it there */
    border-radius: 16px;
    background: #fff;
    color: #1f757b;
    box-sizing: border-box;
    font-size: 11px; /* live: 11px (Astro 12.1px) */
  }
  .alg-tb-icon .al-icon,
  .alg-tb-ifs .al-icon {
    display: block;
    flex: none; /* the X glyph (11px) is wider than the circle's 10px content box, as the font glyph was */
  }
  /* the font glyph carried the link's .6px letter-spacing after it, which centred it .3px further left; the SVG keeps that */
  .topbar-menu a .al-icon {
    margin-right: 0.6px;
  }
  /* live turns the glyph red on its white circle (5.5:1) */
  .tb-social:hover .alg-tb-icon,
  .tb-social:focus-visible .alg-tb-icon { color: #bd242a; }
  .alg-tb-ifs {
    display: inline-flex;
    justify-content: center;
    width: 21.61px; /* live: 21.61px */
    font-size: 16px; /* live: 16px (Astro 17.6px) */
    color: #fff;
  }
  /* live: #bd242a on #1f757b ≈ 1.1:1 — WCAG 1.4.3; see docs/a11y-exceptions.md A3 */
  .topbar-menu a:hover,
  .topbar-menu a:focus-visible,
  .tb-action:hover,
  .tb-action:focus-visible {
    color: #fff;
    text-decoration: underline;
  }
  .tb-glyph:hover .alg-tb-ifs,
  .tb-glyph:focus-visible .alg-tb-ifs {
    color: #fff;
  }
  .topbar-menu a:focus-visible,
  .tb-action:focus-visible,
  .tb-glyph:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  /* ≤768 the original topbar widens to 98% and left-aligns (content stays
     right-aligned); ≤767 its padding grows to 20px */
  @media only screen and (max-width: 768px) {
    .topbar-inner {
      width: 98%;
      margin: 0;
    }
  }
  @media only screen and (max-width: 767px) {
    .topbar-inner {
      padding: 20px 0;
    }
    .topbar-menu {
      gap: 10px; /* live: 10px at 375 (Astro 15px) */
      /* live: text-align:center with a 10px margin-right on every <li>, so the row is
         centred including a trailing 10px (375: last glyph ends 32px from the edge;
         390: row starts at x=21.6) */
      justify-content: center;
      padding-right: 10px;
    }
  }

/* ==== 5. header + nav + mobile menu (Astro header/Header.astro) ==== */
  .site-header {
    position: relative;
    z-index: 100;
    background: #fff;
  }
  /* shadow only once the header block's view.js pins the header (live: .is-sticky #site-header) */
  .site-header.is-stuck {
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  }
  .site-header .header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 90%;
    height: 109px;
    margin: 0 auto;
  }
  .site-header .logo {
    display: inline-flex;
    line-height: 0;
  }
  .site-header .logo img {
    width: 200px;
    height: auto;
  }

  /* ---- desktop nav ---- */
  .site-header .main-nav {
    /* matches the original #site-navigation-wrap negative right margin so the
       menu items land on the same x-positions as the transplanted nav */
    margin-right: -15px;
  }
  .site-header .main-nav .menu {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .site-header .menu-item {
    position: relative;
  }
  .site-header .main-nav > .menu > .menu-item > .menu-link {
    display: block;
    padding: 0 12px;
    font-size: 15px; /* live: 15px (Astro 18px) */
    line-height: 109px;
  }
  .site-header .menu-link {
    color: #0e686f;
    font-family: var(--font-medium, 'HCo Gotham Rounded Medium SSm');
    font-size: 15px; /* live: 15px (Astro 16.5px) */
    letter-spacing: 0.6px;
    text-decoration: none;
  }
  .site-header .main-nav > .menu > .menu-item > .menu-link:hover,
  .site-header .main-nav > .menu > .menu-item > .menu-link:focus-visible,
  .site-header .main-nav > .menu > .menu-item > .menu-link.is-current {
    color: #bd242a;
  }

  /* flyout dropdowns — revealed on hover and keyboard focus-within */
  .site-header .submenu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 9999;
    display: none;
    min-width: 240px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #fff;
    box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);
  }
  .site-header .has-children:hover > .submenu,
  .site-header .has-children:focus-within > .submenu {
    display: block;
  }
  /* Esc sets data-flyout-closed to dismiss while focus stays in the item
     (WCAG 1.4.13); cleared on focusout by the header block's view.js */
  .site-header .has-children[data-flyout-closed]:hover > .submenu,
  .site-header .has-children[data-flyout-closed]:focus-within > .submenu {
    display: none;
  }
  .site-header .submenu .menu-link {
    display: block;
    padding: 12px 15px;
    line-height: 18px;
    white-space: nowrap;
  }
  .site-header .submenu .menu-link:hover,
  .site-header .submenu .menu-link:focus-visible {
    color: #fff;
    background: #0e686f;
  }

  /* INVESTORS mega: live's header container (90%, centred), 6 equal columns;
     every item is 13px and wraps inside its column (live: 216px columns at
     1440, two-line "COMMITTEE COMPOSITION"), so labels never run into the
     next column at narrower widths */
  .site-header .has-mega {
    position: static;
  }
  .site-header .submenu.mega {
    left: 5%;
    right: 5%;
    display: none;
  }
  .site-header .has-mega:hover > .submenu.mega,
  .site-header .has-mega:focus-within > .submenu.mega {
    display: flex;
  }
  .site-header .has-mega[data-flyout-closed]:hover > .submenu.mega,
  .site-header .has-mega[data-flyout-closed]:focus-within > .submenu.mega {
    display: none;
  }
  .site-header .mega-col {
    box-sizing: border-box;
    flex: 0 0 calc(100% / 6);
    min-width: 0;
  }
  .site-header .mega-col + .mega-col {
    padding-left: 1px; /* live: columns 2–6 start 1px into their 216px slot (215 wide) */
  }
  .site-header .mega-heading,
  .site-header .mega-list .menu-link {
    display: block;
    padding: 10px 5px;
    color: #0e686f;
    font-family: var(--font-medium, 'HCo Gotham Rounded Medium SSm');
    font-size: 13px; /* live: 13px (Astro 14.3px) */
    font-weight: 600;
    line-height: 15.6px;
    letter-spacing: 1px;
    white-space: normal;
    text-decoration: none;
  }
  .site-header a.mega-heading:hover {
    color: #0e686f;
  }
  .site-header a.mega-heading:focus-visible {
    color: #0e686f;
  }
  .site-header .mega-list {
    margin: -2px 0 0; /* live: first item 2px up into the heading's box */
    padding: 0;
    list-style: none;
  }
  .site-header .mega-list > li + li {
    margin-top: 1px; /* live: 36.6px pitch for 35.6px items */
  }

  .site-header .menu-link:focus-visible,
  .site-header .mega-heading:focus-visible {
    outline: 2px solid #0e686f;
    outline-offset: -2px;
  }

  /* ---- mobile ---- */
  .site-header .mobile-toggle {
    display: none;
    padding: 0;
    border: 0;
    background: none;
    color: #0e686f; /* live: rgb(14,104,111) (Astro #bd242a) */
    font-size: 15px; /* live: 15px (Astro 19.8px) */
    line-height: 1;
    height: 18px; /* live: 18px anchor, glyph 1px below its top */
    padding-top: 1px;
    margin-top: -1.5px; /* live: anchor top 1.5px above the centred position */
    cursor: pointer;
  }
  .site-header .mobile-toggle .al-icon {
    display: block;
    position: relative;
    top: -0.5px; /* the button centres the 15px glyph 2px under its top; live's glyph box is 1.5px under the anchor's top */
  }
  .site-header .mobile-toggle:focus-visible {
    outline: 2px solid #0e686f;
    outline-offset: 4px;
  }
  .site-header .mobile-menu {
    display: none;
    background: #fff;
  }
  .site-header .mobile-menu:not([hidden]) {
    display: block;
  }
  .site-header .mobile-list {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .site-header .mobile-list > li > a {
    display: block;
    padding: 12px 40px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.035);
    color: #333;
    font-family: var(--font-book, 'HCo Gotham Rounded Book SSm');
    font-size: 15px; /* live: 15px (Astro 16.5px) */
    text-decoration: none;
  }
  .site-header .mobile-list > li > a.is-current {
    color: #bd242a;
  }
  .site-header .mobile-list > li > a:hover,
  .site-header .mobile-list > li > a:focus-visible {
    color: #0e686f;
  }
  .site-header .mobile-search {
    padding: 20px 40px;
  }
  .site-header .mobile-search form {
    position: relative;
  }
  .site-header .mobile-search input {
    width: 100%;
    height: 40px;
    padding: 6px 45px 6px 12px;
    border: 1px solid #ddd;
    box-sizing: border-box;
    font-size: 14px; /* live: 14px (Astro 16.5px) */
  }
  .site-header .search-submit {
    position: absolute;
    top: 0;
    right: 0;
    height: 40px;
    width: 40px;
    border: 0;
    background: none;
    color: #333;
    cursor: pointer;
  }
  .site-header .search-submit:focus-visible,
  .site-header .mobile-search input:focus-visible {
    outline: 2px solid #0e686f;
    outline-offset: -2px;
  }

  @media only screen and (max-width: 1030px) {
    .site-header .main-nav {
      display: none;
    }
    .site-header .mobile-toggle {
      display: block;
    }
  }

/* ==== 6. footer (Astro footer/Footer.astro) ==== */
  .site-footer {
    color: #0e686f;
    font-size: 15px; /* live: 15px (Astro 15.4px) */
  }
  .site-footer a {
    color: #0e686f;
    text-decoration: none;
  }
  .site-footer .footer-main {
    background: #fff;
    padding: 40px 20px;
    border-bottom: 1px solid currentColor;
  }
  .site-footer .cols {
    max-width: 1640px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
  }
  .site-footer .connect {
    width: 20%;
    display: flex;
    flex-direction: column;
  }
  .site-footer .logo {
    display: block;
    width: 240px;
    height: auto;
    margin: 25px 20px 20px;
  }
  .site-footer .connect-h {
    margin: 20px 20px 4px 30px;
    font-family: var(--font-medium);
    font-size: 18px; /* live: 18px (Astro 19.8px) */
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    color: #0e686f;
  }
  .site-footer .connect-p {
    margin: 0 20px 20px 30px;
    font-size: 14px; /* live: 14px (Astro 15.4px) */
  }
  .site-footer .connect-links {
    display: flex;
    align-items: flex-start;
    /* nested BB col-group was flex-centered; cols totalled 99.5% */
    justify-content: center;
  }
  .site-footer .connect-links .viewmap {
    width: calc(79.5% - 30px); /* live: 192.6px box at 1440 (79.5% column, 30px padding on the wrapper) */
    margin: 0 0 20px 30px;
    font-size: 15px; /* live: 15px (Astro 16.5px) */
  }
  .site-footer .soc {
    font-size: 15px; /* live: 15px (Astro 16.5px) */
    line-height: 27px;
    display: inline-block;
    margin-top: 3px;
  }
  .site-footer .connect-links .soc-li,
  .site-footer .connect-links .soc-x {
    width: 10%;
    min-width: 24px; /* WCAG 2.5.8: 10% is under 24px below ~1240px (16.2px at 993) */
    margin-top: 2px;
    text-align: left;
  }

  .site-footer .menu-col {
    width: max-content;
    min-width: 175px;
  }
  .site-footer .fmenu,
  .site-footer .fmenu-sub {
    list-style: none;
    padding: 0;
  }
  .site-footer .fmenu {
    /* widget ul margin 15px 0 15px 20px + module content margin 0 10px 20px */
    margin: 15px 10px 35px 30px;
    font-family: var(--font-book);
    line-height: 19.5px;
  }
  .site-footer .fmenu-sub {
    margin: 0;
  }
  .site-footer .fmenu-top {
    padding: 15px 0 4px;
  }
  .site-footer .fmenu-top > a,
  .site-footer .fmenu-top-blank {
    font-size: 18px; /* live: 18px (Astro 19.8px) */
    font-weight: 600;
    line-height: 19.5px;
  }
  /* live: 4th column heading is white-on-white; we hide it accessibly */
  .site-footer .fmenu-top-blank {
    display: inline-block;
    visibility: hidden;
  }
  .site-footer .fmenu-sub li {
    /* 4.5px brings link pitch to 24px center-to-center (2.5.8 spacing exception) */
    padding: 0 0 4.5px;
  }
  .site-footer .fmenu-sub li:first-child {
    padding-top: 10px;
  }
  .site-footer .fmenu-sub a {
    font-size: 14px; /* live: 14px (Astro 15.4px) */
    font-weight: 500;
    line-height: 19.5px;
  }
  .site-footer .fmenu a[aria-current='page'] {
    color: #bd242a;
  }

  /* stacked (≤992px) main variant */
  .site-footer .footer-main--stacked {
    display: none;
    border-bottom: none;
  }
  .site-footer .connect--stacked {
    width: fit-content;
    max-width: 400px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    text-align: center;
  }
  .site-footer .connect--stacked .connect-p {
    margin: 0 0 20px 30px;
  }
  /* inline img centered by text-align, like the original fl-photo — a flex
     item at fractional x paints the logo 1px off the baseline screenshots */
  .site-footer .logo-wrap {
    margin: 25px 0 20px;
    text-align: center;
  }
  .site-footer .connect--stacked .logo {
    display: inline-block;
    width: 243px;
    margin: 0;
  }
  .site-footer .connect--stacked .connect-h {
    margin: 20px 0 4px 30px;
    text-align: center;
  }
  .site-footer .soc-row {
    display: flex;
    margin: 1px 0 6px;
  }
  .site-footer .soc-row .soc {
    margin: 3px auto 0;
  }
  /* live: the X glyph sits level with the LinkedIn glyph (FA brand glyph metrics put ours 1px low) and,
     stacked, the two icons are 2px further apart than the auto-margin layout gives */
  .site-footer .soc-x .al-icon {
    position: relative;
    top: -1px;
  }
  .site-footer .soc-row .soc-li {
    position: relative;
    left: -1px;
  }
  .site-footer .soc-row .soc-x {
    position: relative;
    left: 1px;
  }
  .site-footer .menu-col--stacked {
    width: auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .site-footer .menu-col--stacked .fmenu {
    margin: 15px 10px 15px 30px;
  }

  /* bottom bars */
  .site-footer .bottom-bar {
    display: flex;
    align-items: center;
    min-height: 50px;
    background: #fff;
    border-top: 1px solid #0e686f;
    border-bottom: 1px solid #0e686f;
    max-width: 1440px;
    margin: 0 auto;
    font-size: 12px; /* live: 12px (Astro 13.2px) */
  }
  .site-footer .bb-item {
    width: 25%;
  }
  .site-footer .bb-item p {
    margin: 20px;
    text-align: center;
  }
  .site-footer .bb-copy p {
    text-align: left;
  }
  .site-footer .bottom-bar--narrow {
    display: none;
  }

  @media (max-width: 992px) {
    .site-footer .footer-main--desktop {
      display: none;
    }
    .site-footer .footer-main--stacked {
      display: block;
    }
  }
  @media (max-width: 778px) {
    .site-footer .logo-wrap {
      margin-top: 20px;
    }
  }
  @media (max-width: 768px) {
    .site-footer .footer-main--stacked {
      padding-left: 0;
      padding-right: 0;
    }
    .site-footer .connect--stacked {
      padding: 5px 20px;
    }
    .site-footer .connect--stacked .connect-h {
      margin: 20px 0 4px 20px;
    }
    .site-footer .connect--stacked .connect-p {
      margin: 0 0 20px 20px;
    }
    .site-footer .menu-col--stacked {
      padding: 5px 20px;
    }
    .site-footer .menu-col--stacked .fmenu {
      margin: 0;
      text-align: center;
    }
  }
  @media (max-width: 778px) {
    .site-footer .bottom-bar--wide {
      display: none;
    }
    .site-footer .bottom-bar--narrow {
      display: block;
    }
    .site-footer .bb-group {
      display: flex;
    }
    .site-footer .bb-group .bb-item {
      width: auto;
      margin: 0 auto;
      padding: 5px 20px;
    }
    .site-footer .bb-group .bb-item p {
      margin: 2px 0 0;
    }
  }

/* ==== 7. share dialog (Astro footer/ShareModal.astro) ==== */
  .share-modal {
    position: fixed;
    inset: 0;
    z-index: 1000002;
    overflow-y: auto;
    display: flex;
  }
  .share-modal[hidden] {
    display: none;
  }
  .share-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.52);
  }
  .share-dialog {
    position: relative;
    margin: auto;
    width: 498px;
    max-width: 90%;
    background: #fff;
    border-radius: 2px;
    z-index: 1;
  }
  .share-close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 25px;
    height: 25px;
    padding: 0;
    border: 1px solid #fff;
    border-radius: 100px;
    background: none;
    cursor: pointer;
    z-index: 5;
  }
  .bar-wrap {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
  }
  .bar-wrap span {
    position: absolute;
    width: 100%;
    height: 2px;
    top: 49.5%;
    left: 0;
    margin-top: -1px;
    background: #494949;
  }
  .bar-1 {
    transform: rotate(225deg);
  }
  .bar-2 {
    transform: rotate(-225deg);
  }
  .share-body {
    padding: 20px;
  }
  .share-sentinel {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }

  /* sharingbuttons.io styles, moved from site.css */
  .resp-sharing-button__link,
  .resp-sharing-button__icon {
    display: inline-block;
  }
  /* .share-dialog in the selector: the dialog sits inside .site-footer, and `.site-footer a` (teal, 0,1,1) beat the bare class (0,1,0), printing the labels teal on the brand fills (1.05-3.28:1); live: white. Phase 9 B1 */
  .share-dialog .resp-sharing-button__link {
    text-decoration: none;
    color: #fff;
    margin: 0.5em;
  }
  .resp-sharing-button {
    display: inline-block;
    border-radius: 5px;
    transition: 25ms ease-out;
    padding: 0.5em 0.75em;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  }
  .resp-sharing-button__icon svg {
    width: 1em;
    height: 1em;
    margin-right: 0.4em;
    vertical-align: middle;
  }
  .resp-sharing-button__icon--solid {
    fill: #fff;
    stroke: none;
  }
  .resp-sharing-button--twitter { background-color: #55acee; }
  .resp-sharing-button--twitter:hover { background-color: #2795e9; }
  .resp-sharing-button--facebook { background-color: #3b5998; }
  .resp-sharing-button--facebook:hover { background-color: #2d4373; }
  .resp-sharing-button--tumblr { background-color: #35465c; }
  .resp-sharing-button--tumblr:hover { background-color: #222d3c; }
  .resp-sharing-button--reddit { background-color: #5f99cf; }
  .resp-sharing-button--reddit:hover { background-color: #3a80c1; }
  .resp-sharing-button--linkedin { background-color: #0077b5; }
  .resp-sharing-button--linkedin:hover { background-color: #046293; }
  .resp-sharing-button--email { background-color: #777; }
  .resp-sharing-button--email:hover { background-color: #5e5e5e; }
  .resp-sharing-button--whatsapp { background-color: #25d366; }
  .resp-sharing-button--whatsapp:hover { background-color: #1da851; }
  .resp-sharing-button--telegram { background-color: #54a9eb; }
  .resp-sharing-button--telegram:hover { background-color: #4b97d1; }

/* ==== 7b. inner-block paragraphs inside the CONNECT column keep the Astro spacing ==== */
.connect .connect-copy > p, .connect:not(.connect--stacked) > p.connect-p { margin: 0 20px 20px 30px; font-size: 14px; /* live: 14px (Astro 15.4px) */ }
.connect--stacked .connect-copy > p { margin: 0 0 20px 30px; }
@media (max-width: 768px) { .connect--stacked .connect-copy > p { margin: 0 0 20px 20px; } }

/* ==== 8. 404 page (live OceanWP error404 styles; values verified with scripts/dev/computed.mjs) ==== */
/* live: #content-wrap = 90% wide, centred, padding 50px 0; #primary margin-bottom 40px at <=959px (folded into the wrap padding) */
.error404-wrap { width: 90%; margin: 0 auto; padding: 50px 0; }
/* live: .error404-content has no padding or max-width of its own; text-align center, position relative */
.error404-content { position: relative; margin: 0; padding: 0; text-align: center; }
/* live: 46px / 55.2px "Gotham Rounded Medium" 500, letter-spacing 2.4px, margin 0 0 25px.
   live: #fff on white (invisible) — WCAG 1.4.3; teal per docs/a11y-exceptions.md */
.error404-content .error-title { font-family: "HCo Gotham Rounded Medium SSm", sans-serif; font-size: 46px; font-weight: 500; line-height: 1.2; letter-spacing: 2.4px; margin: 0 0 25px; color: #0e686f; }
/* live: 18px / 32.4px weight 300, colour rgb(98,100,105), margin 0 0 35px */
.error404-content .error-text { font-size: 18px; font-weight: 300; line-height: 1.8; margin: 0 0 35px; }
/* live: form max-width 390px, centred; field 40px tall, 14px/25.2px, padding 6px 12px, 1px solid #ddd, radius 3px, colour #333 */
.error404-content .searchform { position: relative; max-width: 390px; margin: 0 auto; }
.error404-content .searchform .field { display: inline-block; width: 100%; min-height: 0; height: 40px; font-size: 14px; line-height: 25.2px; padding: 6px 12px; color: #333; }
/* live: 13px/13px weight 600 uppercase, letter-spacing 1.3px, padding 14px 26px, 1px solid #fff, margin-top 60px (40px <=480px).
   live: #13aff0 (2.49:1) — WCAG 1.4.3; teal per docs/a11y-exceptions.md */
.error404-content .error-btn { display: inline-block; margin-top: 60px; padding: 14px 26px; font-size: 13px; font-weight: 600; line-height: 13px; letter-spacing: 1.3px; text-transform: uppercase; color: #fff; background-color: #0e686f; border: 1px solid #fff; text-align: center; }
.error404-content .error-btn:hover, .error404-content .error-btn:focus-visible { background-color: #0a4f54; }
.error404-content .error-btn:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 959px) { .error404-wrap { padding-bottom: 90px; } }
@media (max-width: 480px) { .error404-content .error-btn { margin-top: 40px; } }

/* ==== 9. focus visibility (a11y; outlines take no layout space) ==== */
.site-footer a:focus-visible,
.share-dialog a:focus-visible,
.site-header .mobile-list a:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; }
.share-dialog .share-close:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; }
/* Phase 9 K1-K3 (a11y A22): the same 2px ring, 2px away, on the header logo, the red pill buttons and the home pillar CTAs
   (live: no indicator, or only the hover underline). The red pill's 2px gap is filled white (box-shadow, no layout change), so
   the ring's inner edge is white against the red (6.07:1) and the teal outline sits on whatever band the pill is on. */
.site-header .logo:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; }
.btn-red-pill:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; box-shadow: 0 0 0 2px #fff; }
:is(main.home, .editor-styles-wrapper) .pillar-cta a:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; }

/* ==== 10. homepage bands (Astro index.astro, values from live 2026-10-10) ==== */
:is(main.home, .editor-styles-wrapper) .band { padding: 20px; font-family: var(--font-book, "HCo Gotham SSm", sans-serif); color: var(--color-heading-gray, #626469); }
:is(main.home, .editor-styles-wrapper) .inner { max-width: 960px; margin: 0 auto; display: flex; flex-direction: column; }
:is(main.home, .editor-styles-wrapper) .inner-wide { max-width: 1000px; }
:is(main.home, .editor-styles-wrapper) .inner-partners { max-width: 800px; }
/* live: 30px / 36px (Astro 33px) */
:is(main.home, .editor-styles-wrapper) .band-h2 { margin: 20px; padding: 0; font-family: var(--font-medium, "HCo Gotham Rounded Medium SSm", sans-serif); font-size: 30px; font-weight: 500; line-height: 36px; letter-spacing: 2.4px; text-align: center; }
:is(main.home, .editor-styles-wrapper) .teal { color: #0e686f; }
:is(main.home, .editor-styles-wrapper) .white { color: #fff; }
:is(main.home, .editor-styles-wrapper) .pillars { display: flex; align-items: stretch; margin-top: 50px; }
:is(main.home, .editor-styles-wrapper) .pillar-col { width: 33.33%; display: flex; flex-direction: column; }
:is(main.home, .editor-styles-wrapper) .why-col { width: 25%; display: flex; flex-direction: column; }
:is(main.home, .editor-styles-wrapper) .pillar-card { flex: 1; display: flex; flex-direction: column; margin: 0 10px; background: #fff; box-shadow: 0 0 10px 0 rgba(168, 168, 168, 0.7); text-align: center; }
/* core image block: the figure carries the class */
:is(main.home, .editor-styles-wrapper) .pillar-icon { width: 79px; height: 79px; margin: -40px auto 0; }
:is(main.home, .editor-styles-wrapper) .pillar-icon img { display: block; width: 79px; height: 79px; }
/* live: 17px (Astro 18.7px); h3 260px wide in the 300px card (margin 0 20px); Astro's 10px bottom margin dropped (live list starts 15px below via the list margin) */
:is(main.home, .editor-styles-wrapper) .pillar-title { margin: 30px 20px 0; padding: 0; font-family: var(--font-medium, "HCo Gotham Rounded Medium SSm", sans-serif); font-size: 17px; font-weight: 500; line-height: 23.8px; color: rgb(189, 37, 41); }
/* live: 14px (Astro 15.4px) */
:is(main.home, .editor-styles-wrapper) .pillar-list { margin: 15px 20px 15px 40px; padding: 0; text-align: left; font-size: 14px; line-height: 21px; }
:is(main.home, .editor-styles-wrapper) .pillar-list li { padding-bottom: 10px; }
/* live: why list inherits margin-left 40 (li x = card x + 40) */
/* live: why card list margin-bottom 35px (Astro 40px) - card 256.8px tall */
:is(main.home, .editor-styles-wrapper) .why-card .pillar-list { margin-bottom: 35px; }
/* live: platform cards are 420px tall with all three CTAs at the same y (band y+522): list area 204.2px */
:is(main.home, .editor-styles-wrapper) .pillars:not(.why-grid) .pillar-list { min-height: 204.2px; }
:is(main.home, .editor-styles-wrapper) .pillars:not(.why-grid) .pillar-cta { margin-bottom: 20px; }
/* live: 14px (Astro 14.3px) */
:is(main.home, .editor-styles-wrapper) .pillar-cta { margin: 13px 20px 20px; font-size: 14px; font-weight: 600; line-height: 18px; text-align: center; }
:is(main.home, .editor-styles-wrapper) .pillar-cta a { display: inline-block; padding: 12px 14px; text-decoration: none; /* live: none */ }
:is(main.home, .editor-styles-wrapper) .pillar-cta a:hover, :is(main.home, .editor-styles-wrapper) .pillar-cta a:focus-visible { text-decoration: underline; }
/* live: pill at card bottom + 50px (Astro 60px) */
:is(main.home, .editor-styles-wrapper) .report-row { margin: 50px 0 40px; text-align: center; }
/* live: platform pill is 44px tall / 707.4 wide (1px border) */
:is(main.home, .editor-styles-wrapper) .report-row .btn-red-pill { border: 1px solid rgb(189, 37, 41); }
/* live: 14px (Astro 14.3px) */
:is(main.home, .editor-styles-wrapper) .btn-red-pill { display: inline-block; padding: 12px 14px; border-radius: 20px; background: rgb(189, 37, 41); color: #fff; font-family: var(--font-book, "HCo Gotham SSm", sans-serif); font-size: 14px; line-height: 18px; text-align: center; text-decoration: none; /* live: none */ box-sizing: border-box; }
:is(main.home, .editor-styles-wrapper) .btn-red-pill:hover, :is(main.home, .editor-styles-wrapper) .btn-red-pill:focus-visible { text-decoration: underline; }
:is(main.home, .editor-styles-wrapper) .band-future, :is(main.home, .editor-styles-wrapper) .band-news { padding: 40px 20px; }
/* the group block supplies background-image/size/position inline (style.background) */
:is(main.home, .editor-styles-wrapper) .h2-tight-b { margin-bottom: 0; }
:is(main.home, .editor-styles-wrapper) .h2-tight-t { margin-top: 0; }
/* live: 15px, letter-spacing .31px (Astro 16.5px) */
:is(main.home, .editor-styles-wrapper) .future-p { margin: 20px 20px 10px; font-size: 15px; line-height: 24px; letter-spacing: .31px; color: #fff; text-align: center; }
:is(main.home, .editor-styles-wrapper) .future-cta { margin: 10px 20px 20px; text-align: center; }
:is(main.home, .editor-styles-wrapper) .band-why { padding: 20px 20px 40px; }
:is(main.home, .editor-styles-wrapper) .partners-row { display: flex; align-items: center; }
/* live: four 25% columns in 800px, logos 160px wide */
:is(main.home, .editor-styles-wrapper) .partners-row .partner { width: 25%; margin: 20px 0; text-align: center; }
:is(main.home, .editor-styles-wrapper) .partner img { width: 160px; max-width: 100%; height: auto !important; /* live: logo heights follow the aspect ratio (116.36 / 63.63 / 33.39 / 53.88), overriding the seed's integer inline heights; this is the fractional source of the 0.4px offset below the partners band */ vertical-align: middle; }
:is(main.home, .editor-styles-wrapper) .partner .wp-block-image { margin: 0; }
/* live: module at band y+76 = 20 + 36 + 20 */
:is(main.home, .editor-styles-wrapper) .band-news .band-h2 { margin-bottom: 20px; }
@media only screen and (max-width: 778px) {
	:is(main.home, .editor-styles-wrapper) .band { padding: 20px 0; }
	:is(main.home, .editor-styles-wrapper) .pillars { display: block; margin-top: 60px; }
	:is(main.home, .editor-styles-wrapper) .pillar-col, :is(main.home, .editor-styles-wrapper) .why-col { width: auto; max-width: 400px; margin: 0 auto 60px; }
	:is(main.home, .editor-styles-wrapper) .partners-row { display: block; }
	:is(main.home, .editor-styles-wrapper) .partners-row .partner { width: auto; }
	/* live (390): logos 170px wide, height follows the aspect ratio; overrides the inline desktop size */
	:is(main.home, .editor-styles-wrapper) .partner img { width: 170px !important; height: auto !important; }
}
@media only screen and (max-width: 768px) {
	/* live (390): headings 310 wide (x 40); pillar cards 360 wide at x 15 */
	:is(main.home, .editor-styles-wrapper) .inner { padding: 5px 0; }
	/* live (390): column 390 wide, card 320 wide (margin 0 35px), h3 flush, list margin-left 20 */
	/* live (390): the shadowed box is 360 wide (x 15) and extends 5px above the content (Beaver Builder col padding); content positions unchanged, so 20px side padding + 5px top (and bottom for the why cards) */
	:is(main.home, .editor-styles-wrapper) .pillar-card { margin: -5px 15px 5px; padding: 5px 20px; }
	:is(main.home, .editor-styles-wrapper) .pillar-col:last-child, :is(main.home, .editor-styles-wrapper) .why-col:last-child { margin-bottom: 0; }
	:is(main.home, .editor-styles-wrapper) .pillars:not(.why-grid) .pillar-card { padding-bottom: 0; } /* live: platform cards are 5px shorter at the bottom (same height, 5px higher) */
	/* live (390): the 2nd and 3rd platform CTAs sit 20px lower than the 1st */
	:is(main.home, .editor-styles-wrapper) .pillars:not(.why-grid) .pillar-col:nth-child(n+2) .pillar-cta { margin-top: 40px; }
	:is(main.home, .editor-styles-wrapper) .pillar-title { margin-left: 0; margin-right: 0; }
	:is(main.home, .editor-styles-wrapper) .pillar-list, :is(main.home, .editor-styles-wrapper) .why-card .pillar-list { margin-left: 20px; margin-right: 0; }
	:is(main.home, .editor-styles-wrapper) .pillars:not(.why-grid) .pillar-list { min-height: 0; }
	/* live (390): CTA links 12px; report pill and future CTA inset 20px / 40px */
	:is(main.home, .editor-styles-wrapper) .pillar-cta { margin-top: 20px; font-size: 12px; }
	:is(main.home, .editor-styles-wrapper) .pillars:not(.why-grid) .pillar-cta { margin-bottom: 25px; /* live (390): platform card box ends 5px higher; the card's bottom padding is 0 above */ }
	:is(main.home, .editor-styles-wrapper) .report-row { margin: 20px 20px 20px; }
	:is(main.home, .editor-styles-wrapper) .report-row .btn-red-pill { font-size: 12px; }
	:is(main.home, .editor-styles-wrapper) .band-future, :is(main.home, .editor-styles-wrapper) .band-news { padding: 40px 0; }
	:is(main.home, .editor-styles-wrapper) .band-why { padding: 20px 0 40px; }
	/* live (390): logos stacked at a 50px pitch */
	:is(main.home, .editor-styles-wrapper) .partners-row .partner { margin: 50px 0; }
	:is(main.home, .editor-styles-wrapper) .partners-row .partner:first-child { margin-top: 30px; }
	:is(main.home, .editor-styles-wrapper) .partners-row .partner:last-child { margin-bottom: 20px; }
	:is(main.home, .editor-styles-wrapper) .band-news .news-carousel { margin-left: 20px; margin-right: 20px; }
	:is(main.home, .editor-styles-wrapper) .future-cta, :is(main.home, .editor-styles-wrapper) .future-p { margin-left: 40px; margin-right: 40px; }
	:is(main.home, .editor-styles-wrapper) .band-h2 { margin: 20px 40px; font-size: 20px; /* live (390): 20px, measured Task 7 (was 22px) */ line-height: 24px; }
	:is(main.home, .editor-styles-wrapper) .h2-tight-b { margin-bottom: 0; }
	:is(main.home, .editor-styles-wrapper) .h2-tight-t { margin-top: 0; }
	:is(main.home, .editor-styles-wrapper) .btn-red-pill { font-size: 12px; /* live (390): 12px, measured Task 7 (was 13.2px) */ }
}

/* ==== 11. trial pages — ALPHA3 / RESOLUTION bands (Astro alpha3.astro + resolution.astro, values from live 2026-10-10) ==== */
/* The hero and info-box row are blocks with their own styles; this section styles the core-block bands between them. */
.page-trial .band { padding: 20px; font-family: var(--font-book); color: var(--color-heading-gray); }
.page-trial .inner { max-width: var(--content-max); /* live: 1100px, content 1060 at x 190 */ margin: 0 auto; display: flex; flex-direction: column; }
.page-resolution .band-main .inner { max-width: 960px; }
.page-trial .band-btn1 { padding-bottom: 0; }
.page-trial .band-pt0 { padding-top: 0; }
.page-resolution .band-ftn { padding-top: 0; }
.page-trial .h2-block { margin: 20px; }
/* live: 30px (Astro 33px) */
.page-trial .h2-block h2 { margin: 0 0 15px; padding: 0; font-family: var(--font-medium); font-size: 30px; font-weight: 500; line-height: 36px; letter-spacing: 2.4px; color: #0e686f; text-align: center; }
.page-trial .h2-cema { margin-top: 50px; } /* live: h2 at band + 70, text at h2 + 15 + 40 (Astro margin-bottom 0) */
.page-trial .h2-tight { margin-top: 10px; } /* live (1440): STUDY DETAILS h2 at band + 30 (2608.8), text at h2 + 15 + 40 (Astro margin-bottom 0) */
.page-resolution .h2-upper h2 { text-transform: uppercase; } /* live: "Clinical Trial Resources" renders uppercase */
/* live: 15px (Astro 16.5px) */
.page-trial .rich { margin: 20px; font-size: 15px; line-height: 27px; }
.page-trial .rich p { margin: 0 0 20px; }
.page-trial .rich p:last-child { margin-bottom: 0; } /* live: the module margin absorbs the last paragraph's (BB margins collapse; our flex items do not) */
.page-trial .rich-center { text-align: center; }
.page-trial .rich-tight { margin-bottom: 0; }
.page-trial .rich-tight p:last-child { margin-bottom: 20px; } /* live: 20px below the last line (BB paragraph margin) */
.page-trial .btn-row { margin: 10px 20px 20px; text-align: center; }
.page-trial .btn-row-first { margin-top: 30px; }
/* live: 14px (Astro 14.3px); red pill 707.4×44 with a 1px rgb(177,25,29) border */
.page-trial .btn-red-pill, .page-trial .btn-teal-pill { display: inline-block; box-sizing: border-box; padding: 12px 14px; border: 1px solid rgb(177, 25, 29); border-radius: 20px; background: rgb(189, 37, 41); color: #fff; font-family: var(--font-book); font-size: 14px; line-height: 18px; text-align: center; text-decoration: none; }
.page-trial .btn-red-pill:hover, .page-trial .btn-red-pill:focus-visible, .page-trial .btn-teal-pill:hover, .page-trial .btn-teal-pill:focus-visible { text-decoration: underline; }
.page-trial .btn-teal-pill { background: #0e686f; border-color: rgb(2, 92, 99); /* live: rgb(2,92,99) (Astro #0e686f) */ }
.page-trial .btn-w250 { width: 250px; }
.page-trial .btn-w310 { width: 310px; } /* live: 310×62, two lines */
.page-trial .btn-w250, .page-trial .btn-w310 { max-width: 100%; } /* reflow: the fixed widths never exceed the column at 320px (WCAG 1.4.10) */
.page-trial .btn-broch { width: 340px; padding: 12px 40px; }
.page-trial .photo-center { margin: 20px; text-align: center; line-height: 0; }
.page-trial .photo-center .wp-block-image { margin: 0; }
.page-trial .photo-center img { max-width: 100%; height: auto; }
.page-alpha3 .photo-center img { max-width: 1044px; width: 100%; aspect-ratio: 1044 / 346; } /* live: pie chart 1044×346 at x 198; 310×102.74 at 390 (its width/height attributes' ratio; our 768×255 srcset file gave 102.93) */
/* bullet card: the background image comes from the group's inline style (repeat-y) */
.page-trial .bullet-card { margin: 40px; box-shadow: 3px 3px 5px 0 #e8e8e8; } /* live: card x 210 w 1020 (alpha3) / x 280 w 880 (resolution); li x 210 w 1000 / x 280 w 860 (measured 1440, 2026-10-10) */
.page-trial .bullet-list { margin: 30px 20px 25px 0; padding: 0; list-style: none; } /* live (1440): alpha3 li y 1848.8 / 1895.8 / 1996.8 / 2070.8 = h2 bottom 1743.8 + 15 + 30 + 40 + 20 gaps; resolution li y 2503.3 / 2577.3 / 2705.3; band bottoms equal (plan said 25px top) */
/* the bullet image URL is added by functions.php (wp_add_inline_style) so it follows the Media Library copy */
.page-trial .bullet-list li { margin: 0; padding: 0 0 0 45px; /* live: li padding 25px + .bullet-text margin-left 20px → text 955 wide at x 255 */ font-size: 15px; /* live: 15px (Astro 16.5px) */ line-height: 27px; background-position: 3px 5px; background-size: 40px auto; background-repeat: no-repeat; }
.page-trial .bullet-list li + li { margin-top: 20px; } /* live: li gaps 20px (Astro .bullet-text margin) */
.page-trial .bullet-heading { color: #105d64; font-family: 'HCo Gotham Rounded Bold SSm', var(--font-book); }
/* live: 18px (Astro 19.8px) */
.page-trial .h3-teal { margin: 20px 20px 5px; padding: 0; font-family: var(--font-medium); font-size: 18px; font-weight: 500; line-height: 1.4; /* live: OceanWP h3 1.4 (unitless lays out at 25.19px; 25.2px lays out at 25.20 and rounds half-pixel rows 1px lower) */ color: #0e686f; text-align: center; }
.page-trial .video-block { line-height: 0; }
.page-alpha3 .video-db { margin: 36px 50px 20px; } /* live: module at p + 56 → 1000×562.5 at x 220 (Astro 16px) */
.page-alpha3 .video-pv { margin: 10px 50px 20px; } /* live: video 30px below the text (the paragraph keeps 20px) */
.page-resolution .video-main { margin: 20px; } /* live: 1060×596.3 at x 190 */
.page-trial .sep { width: calc((100% - 40px) * .6); height: 0; margin: 20px auto; border: 0; border-top: 1px solid #0e686f; } /* live: .fl-separator 60% of the 20px-inset module, 1px tall: 636×1 at x 402 (1440), 186×1 at x 102 (390); was 60% of the band (660×2) */
.page-trial .sep-tight { margin-bottom: 10px; }
.page-trial .res-cols { display: flex; }
.page-trial .res-col { width: 50%; display: flex; flex-direction: column; }
/* live: 18px (Astro 19.8px) */
.page-trial .res-h3 { margin: 20px 20px 10px; padding: 0; font-size: 18px; font-weight: 500; line-height: 1.4; /* live: OceanWP h3 1.4 (unitless lays out at 25.19px; 25.2px lays out at 25.20 and rounds half-pixel rows 1px lower) */ text-align: center; }
.page-trial .res-h3 a { font-family: var(--font-medium); color: #0e686f; text-decoration: none; } /* live: text-decoration none (the whole heading is the link; was underline) */
.page-trial .res-h3 a:hover, .page-trial .res-h3 a:focus-visible { text-decoration: underline; }
.page-trial .res-photo { margin: 14px 20px 20px; text-align: center; line-height: 0; }
.page-trial .res-photo img { height: auto; }
.page-alpha3 .res-photo-info img, .page-alpha3 .res-photo-poster img { width: 37.21%; } /* live: 189.8 of 510 */
.page-alpha3 .res-photo-brochure img { width: 36%; } /* live: 183.6 of 510 (Astro 47.61%) */
.page-alpha3 .res-photo-site img { width: 47.61%; } /* live: 242.8 of 510 */
.page-resolution .res-photo { margin: 8px 20px 20px; } /* live (1440): image 18px below the teal box (factsheet img y 3981.5) */
.page-resolution .res-photo-fact img { aspect-ratio: 510 / 568; } /* live: 510×568 / 310×345.2 (its 508×566 srcset file); ours 568.2 */
.page-resolution .res-photo-pocket img { aspect-ratio: 510 / 344.5; } /* live: 510×344.5 (ours 343.9 left the clinicaltrials.gov band 0.44px high → 1px rows) */
.page-resolution .res-photo-broch img { aspect-ratio: 510 / 790.3; } /* live renders its 508×788 srcset file at 510×790.3; our 636×987 original would be 791.5 */
@media only screen and (min-width: 779px) { .page-resolution .ib-row .ib-col-1 .ib-card { margin-left: 10px; } } /* live (1440, RESOLUTION only): card 1 margin 50px 20px 20px 10px → box x 200 w 296.7 (ALPHA3 keeps 20px: x 210 w 286.7) */
.page-resolution .res-photo img { width: 100%; }
.page-resolution .res-col .btn-row { margin: 10px 20px; }
/* live: 10px/12px (Astro 11px) */
.page-trial .footnotes { margin: 0 20px 20px; font-size: 10px; line-height: 12px; }
.page-trial .footnotes p { margin: 0 0 20px; }
.page-trial .footnotes p:last-child { margin-bottom: 0; }
.page-resolution .footnotes { margin: 20px; } /* live: band 92 tall (Astro 20px 20px 0) */
/* RESOLUTION main band */
/* live: 17px/30.6px (Astro 18.7px) */
.page-resolution .basket-box { margin: -12px 20px 0; padding: 20px; background: rgb(223, 222, 219); } /* live (1440): grey .fl-col-content [260,1268.8,920,70.6], text inset 20 (text position unchanged: was p margin 8px 40px 20px) */
.page-resolution .basket-head { margin: 0; font-size: 17px; line-height: 30.6px; color: #0e686f; text-align: center; }
.page-resolution .basket-head strong { font-weight: 700; }
.page-resolution .prev-label { margin: 25px 20px 5px; font-size: 15px; /* live: 15px (Astro 16.5px) */ line-height: 27px; text-align: center; }
.page-resolution .prev-grid { display: flex; }
.page-resolution .prev-col { width: 50%; }
/* live: 400×54, uppercase 15px/27px (Astro 16.5px, mixed case) */
.page-resolution .prev-box { margin: 18px 20px 0; /* live (1440): text p at y 1424.4 / 1514.4, box = p − 10 (was 19px, 1px low) */ padding: 10px 20px; background: #0e686f; color: #fff; font-size: 15px; line-height: 27px; text-align: center; text-transform: uppercase; }
.page-resolution .prev-col > .prev-box + .prev-box { margin-top: 16px; } /* live: boxes y 1424.4 / 1514.4 */
.page-resolution .rich-after-grid { margin-top: 28px; } /* live: diagram 40px below the text (Astro margin-bottom 0) */
.page-resolution .band-main .h2-block + .rich { margin-bottom: 40px; } /* live: basket heading at text + 48 */
.page-resolution .bullet-card { margin-top: 20px; } /* live: first bullet at text + 75 */
/* live: 15px (Astro 16.5px) */
.page-resolution .sets-block { margin: 20px 20px 5px; font-size: 15px; line-height: 27px; }
/* live: 18px (Astro 19.8px) */
.page-resolution .sets-block h3 { margin: 0 0 20px; padding: 0; font-family: var(--font-medium); font-size: 18px; font-weight: 500; line-height: 1.4; /* live: OceanWP h3 1.4 (unitless lays out at 25.19px; 25.2px lays out at 25.20 and rounds half-pixel rows 1px lower) */ color: #0e686f; }
.page-resolution .sets-block a, .page-resolution .ftn a { color: #0e686f; text-decoration: underline; }
.page-resolution .ftn { margin: 20px; /* live: p at band + 20 (Astro 0 20px 20px) */ font-size: 15px; /* live: 15px (Astro 16.5px) */ line-height: 27px; }
.page-resolution .ftn-small { font-size: smaller; }
/* live: 15px (Astro 16.5px) */
.page-resolution .teal-band { margin: 10px 20px; padding: 10px 20px; background: #0e686f; color: #fff; font-size: 15px; line-height: 27px; text-align: center; } /* live: no text-transform — the video label is mixed case ("VIDEO: Learn more…"); FACTSHEET / POCKET CARD / BROCHURES are uppercase in the source */
.page-resolution .teal-video { margin-top: -11px; margin-bottom: 8px; } /* live (1440): label box at y 3176.3 (separator col 1px + col-content 8px), video 28px below it (was -12 / 10) */
.page-resolution .teal-first { margin-top: 8px; } /* live (1440): FACTSHEET / BROCHURES box at column + 8 (y 3916.5, text 3926.5); was 2px with the old 2px separator */
.page-resolution .teal-second { margin-top: 8px; } /* live (1440): POCKET CARD box 28px below the factsheet image (text 4587.5) */
.page-resolution .teal-band b { font-weight: 700; }
.page-resolution .prev-box p, .page-resolution .teal-band p { margin: 0; } /* live: the text p sits inside the coloured column (FACTSHEET p 470×27 at x 210, 1440) */
/* ---- BB structure breakpoint ---- */
@media only screen and (max-width: 778px) {
	.page-trial .band { padding: 20px 0; }
	.page-trial .band-pt0 { padding-top: 0; }
	.page-trial .band-btn1 { padding-bottom: 0; } /* live (390): red-pill band [0,820.7,390,122] pad 20/0 */
	.page-resolution .band-ftn { padding-top: 0; } /* live (390): footnote band pad 0 top */
	.page-alpha3 .bullet-card { margin: 5px -20px -5px; padding: 5px 0; } /* full-bleed like the BB column; live (390): card [·,1949.6,·,692] ends 30px below the last li and 20px above the band end (was margin-bottom 5px: band 10px taller) */
	.page-resolution .bullet-card { margin: -15px -20px -5px; padding: 5px 0; } /* live (390): card [·,3269.3,·,699] ends 30px below the last li, band 20px below the card (was margin-bottom 0 / card 694) */
	.page-trial .res-cols { display: block; margin: 0 -20px; }
	.page-trial .res-col { width: auto; max-width: 400px; margin: 0 auto; padding: 5px 20px; }
	.page-resolution .prev-grid { display: block; }
	.page-resolution .prev-col { width: auto; max-width: 400px; margin: 0 auto; }
}
/* ---- child-theme text/inset breakpoint ---- */
@media only screen and (max-width: 768px) {
	.page-trial .inner { padding: 5px 20px; }
	.page-trial .h2-block { margin: 20px 0; }
	.page-trial .h2-block h2 { font-size: 18px; /* live (390): 18px (Astro 19.8px) */ line-height: 21.6px; }
	.page-trial .rich { margin: 20px 20px 0; }
	.page-alpha3 .rich-study { margin-bottom: 20px; }
	.page-trial .h2-cema { margin-top: 40px; } /* live (390): h2 at band + 65 (band pad 20 + inner 5 + 40), the band above has no bottom padding */
	.page-alpha3 .h2-mrd { margin-top: 30px; } /* live (390): MRD h2 at band + 55 */
	.page-alpha3 .h2-mrd + .rich { margin-bottom: 20px; } /* live (390): band ends 45px below the text */
	.page-trial .h2-tight { margin-top: 0; } /* live (390): STUDY DETAILS band pad 10 + 5 + 10 → h2 at band + 25 (ours band pad 20 + inner 5) */
	.page-alpha3 .res-cols { margin-top: 5px; margin-bottom: -5px; } /* live (390): first resource h3 50px below the separator, band ends 45px below the last image */
	.page-trial .sep-tight { margin: 10px auto; } /* live (390): separator at band + 35 on ALPHA3 (band pad 10 + 5 + 20 there), heading 30px below it (was 9px bottom for our former 2px hr) */
	.page-resolution .sep-tight { margin-top: 20px; } /* live (390): RESOLUTION separator at band + 45 (y 4100.3) */
	.page-trial .btn-row { margin: 10px 0 20px; }
	.page-trial .btn-red-pill, .page-trial .btn-teal-pill { font-size: 12px; /* live (390): 12px (Astro 13.2px) */ }
	.page-alpha3 .h3-teal { margin: 10px 20px 30px; }
	.page-alpha3 .band-db .inner { padding: 10px 40px; }
	.page-alpha3 .video-db { margin: 30px 20px 20px; } /* live (390): video box 30px below the text (y 4485.3 = p bottom 4455.3 + 30; was 10px) */
	.page-alpha3 .video-pv { margin: 10px 20px 20px; }
	.page-resolution .band-main .h2-block + .rich { margin-top: 0; margin-bottom: 20px; } /* live (390): basket heading at text + 50 (was 40px → +20) */
	.page-resolution .rich { margin: 5px 20px 20px; }
	.page-resolution .rich-tight { margin: 20px 20px 0; } /* live (390): text 76.6px below the h2 top (y 4207.9); video label box 45px below the text (y 4360.9) */
	.page-resolution .prev-label { margin: 20px 20px 5px; }
	.page-resolution .prev-box { margin: 6px 0 4px; padding: 15px 40px; }
	.page-resolution .prev-col > .prev-box:first-child { margin-top: 15px; }
	.page-resolution .prev-col > .prev-box + .prev-box { margin-top: 10px; }
	.page-resolution .prev-col + .prev-col > .prev-box:first-child { margin-top: 11px; }
	.page-resolution .basket-box { margin: 5px -20px; padding: 25px 40px; } /* live (390): grey column [0,1706.7,390,111.2], text [40,1731.7,310,61.2] (was p margin 30px 20px) */
	.page-resolution .rich-after-grid { margin-top: 16px; margin-bottom: 30px; }
	.page-trial .photo-center { margin: 20px 20px 10px; }
	.page-alpha3 .photo-center { margin-bottom: 20px; } /* live (390): pie band ends 45px below the image (was 35) */
	.page-resolution .teal-band { margin: 10px 0; padding: 15px 40px; }
	.page-resolution .teal-video { margin: -5px 0 10px; }
	.page-resolution .video-main { margin: 15px 20px 20px; }
	.page-resolution .res-col > .teal-first { margin-top: 10px; } /* live (390): FACTSHEET text 50px below the separator (y 4762.2); was 7px with the old 2px separator */
	.page-resolution .teal-second { margin-top: 5px; } /* live (390): POCKET CARD text at y 5204.4 */
	.page-resolution .res-col + .res-col > .teal-first { margin-top: 5px; } /* live (390): BROCHURES text 50px below the pocket-card image (y 5521.1) */
	.page-resolution .res-photo { margin: 5px 20px 20px; }
	.page-resolution .res-photo-broch { margin: 10px 40px 20px; }
	.page-resolution .res-photo-pocket img { aspect-ratio: 310 / 209.7; } /* live (390): 310×209.7 (a different srcset file than at 1440) */
	.page-resolution .res-photo-broch img { aspect-ratio: 270 / 417.9; } /* live (390): 270×417.9 */
	.page-resolution .sets-block { margin: 20px 20px 0; }
	.page-resolution .ftn { margin: 5px 20px; } /* live (390): band 67 tall, pad 0/20, p at band + 10 */
	.page-resolution .btn-broch { width: 100%; }
	.page-resolution .bullet-list { margin: 30px 20px 25px 0; } /* live (390): main band ends 50px below the last li (was 5px → 35) */
}
@media only screen and (min-width: 641px) and (max-width: 778px) {
	.page-resolution .prev-box { margin-left: 20px; margin-right: 20px; }
}

/* ==== 12. careers + contact (Astro careers.astro, contact-us.astro; live 2026-10-10) ==== */
/* The page hero is a block with its own styles; this section styles the core-block body below it. */
.page-careers .careers-body, .page-contact .contact-body { padding: 20px; font-family: var(--font-book); color: var(--color-heading-gray); }
.page-careers .inner, .page-contact .inner { max-width: 960px; margin: 0 auto; display: flex; flex-direction: column; } /* flex column keeps sibling margins from collapsing (BB had wrappers) */
/* live: 15px (Astro 16.5px) */
.page-careers .intro { margin: 20px; font-size: 15px; line-height: 27px; }
.page-careers .intro p { margin: 0 0 20px; }
.page-careers .split { display: flex; }
.page-careers .photo { width: 33.33%; }
.page-careers .photo-inner { margin: 20px; text-align: center; line-height: 0; }
.page-careers .photo .wp-block-image { margin: 0; }
.page-careers .photo img { max-width: 100%; height: auto; } /* live: 280×280 */
.page-careers .text { width: 66.67%; display: flex; flex-direction: column; }
.page-careers .job-block { margin: 20px; }
/* live: 30px/36px (Astro 33px) */
.page-careers .job-block h2 { margin: 0 0 25px; padding: 0; font-family: var(--font-medium); font-size: 30px; font-weight: 500; line-height: 36px; letter-spacing: 2.4px; text-align: left; color: rgb(189, 37, 41); }
/* live: 15px (Astro 16.5px) */
.page-careers .sub { margin: 15px 0 0; font-size: 15px; line-height: 27px; }
.page-careers .sub p { margin: 0; }
.page-careers .sub a { color: #0e686f; text-decoration: underline; } /* a11y: links distinguishable without colour (1.4.1) */
.page-careers .btn-row { margin: 10px 20px 20px; }
/* live: 14px/18px (Astro 14.3px); 310.3×42, no border */
.page-careers .btn-red-pill { display: inline-block; box-sizing: border-box; padding: 12px 14px; border-radius: 20px; background: rgb(189, 37, 41); color: #fff; font-family: var(--font-book); font-size: 14px; line-height: 18px; text-decoration: none; }
.page-careers .btn-red-pill:hover, .page-careers .btn-red-pill:focus-visible { text-decoration: underline; }
/* contact */
.page-contact .map-frame { margin: 20px 20px 0; line-height: 0; }
.page-contact .map-frame iframe { width: 100%; height: 480px; border: 0; }
.page-contact .addresses { display: flex; margin-top: 9px; }
.page-contact .addr-col { width: 33.33%; }
/* live: 15px (Astro 16.5px) */
.page-contact .addr-col p { margin: 10px 20px 20px; font-size: 15px; line-height: 27px; }
.page-contact .addr-col b, .page-contact .addr-col strong { font-weight: 600; }
.page-contact .form-block { margin: 40px 20px 20px; position: relative; }
/* live: the form column #request-information (fl-node-30uocysrapvi) carries box-shadow rgba(0,0,0,.24) 0 0 20px 3px; its border box is [240,1296.8,960,1168.4] @1440
   (margin-top 20px; the measured [..,1276.8,..,1188.4] includes it) and [0,1589.8,390,1672.9] @390 — 20px around this block, down to the bottom of .inner
   (decorative, drawn by a transparent pseudo-box) */
.page-contact .form-block::before { content: ""; position: absolute; inset: -20px; box-shadow: rgba(0, 0, 0, .24) 0 0 20px 3px; pointer-events: none; }
.page-contact .gf-box { padding: 20px; }
/* live: 20px/24px (Astro 22px) */
.page-contact .form-title { margin: 0; padding: 0; font-family: var(--font-medium); font-size: 20px; font-weight: 500; line-height: 24px; letter-spacing: 2.4px; text-align: left; color: var(--color-heading-gray); }
.page-contact .gform-placeholder { margin: 20px 0; padding: 20px; border: 1px dashed #ccc; } /* local stand-in until Gravity Forms is imported (phase 6) */
/* ---- BB structure breakpoint ---- */
@media only screen and (max-width: 778px) {
	.page-careers .split { flex-direction: column; }
	.page-careers .photo { width: auto; max-width: 400px; margin: 0 auto; }
	.page-careers .text { width: auto; }
}
/* ---- child-theme text/inset breakpoint ---- */
@media only screen and (max-width: 768px) {
	.page-careers .careers-body, .page-contact .contact-body { padding: 20px 0; }
	.page-careers .inner, .page-contact .inner { padding: 5px 20px; }
	.page-careers .intro { margin: 20px 0; }
	.page-careers .photo { padding: 5px 20px; }
	.page-careers .photo-inner { margin: 20px 0; }
	.page-careers .text { padding: 5px 20px; }
	.page-careers .job-block { margin: 20px 0; }
	.page-careers .job-block h2 { font-size: 18px; /* live (390): 18px (Astro 19.8px) */ line-height: 21.6px; }
	.page-careers .btn-row { margin: 10px 0 20px; }
	.page-careers .btn-red-pill { font-size: 12px; /* live (390): 12px (Astro 13.2px) */ }
	.page-contact .map-frame { margin: 20px 20px 0; }
	.page-contact .addresses { display: block; }
	.page-contact .addr-col { width: auto; max-width: 400px; margin: 0 auto; padding: 5px 20px; }
	.page-contact .form-block { margin: 30px 0 20px; }
	.page-contact .form-block::before { inset: -25px -20px; /* live (390): column padding 5px 20px + module margin → the shadow box is the full 390 width, 25px above / below this block */ }
}

/* ==== 13. perspective pages (Astro PerspectiveVideo.astro; live 2026-10-10) ==== */
/* The video is the allogene/video block (facade / gallery styles in its own stylesheet); the h1 follows it. */
.page-perspective .pv-inner { max-width: var(--content-max); /* live: 1100px */ margin: 0 auto; display: flex; flex-direction: column; } /* flex column keeps sibling margins from collapsing */
.page-perspective .al-video { margin: 20px; } /* live: module margin 20px → 1060 wide at x 190, y 166.8 */
/* live: 30px/36px (Astro 33px); live renders the heading as h2, here it is the page h1 */
.page-perspective .video-heading { padding: 0; font-family: var(--font-medium); font-size: 30px; font-weight: 500; line-height: 36px; letter-spacing: 2.4px; text-align: start; text-transform: none; }
.page-perspective .heading-standalone { margin: 20px; color: var(--color-heading-gray); } /* live: rgb(98,100,105) on the h2 */
.page-perspective .heading-module { margin: 0 20px 20px; color: #333; } /* live: rgb(51,51,51) on span.fl-heading-text (the h2 itself is white) */
@media only screen and (max-width: 768px) {
	.page-perspective .pv-inner { padding: 5px 20px; }
	.page-perspective .al-video { margin: 20px 0; }
	.page-perspective .video-heading { font-size: 20px; /* live: 20px (Astro 22px) */ line-height: 24px; }
	.page-perspective .heading-module { margin-left: 0; margin-right: 0; }
}

/* ==== 14. legal pages (Astro LegalPage.astro; live 2026-10-10) ==== */
.page-legal .legal-body { padding: 20px; }
.page-legal .inner { max-width: var(--content-max); /* live: 1100px */ margin: 0 auto; width: 100%; display: flex; flex-direction: column; }
/* live: 25px/30px (Astro 27.5px); colour #0e686f on the h2 (privacy) / span.fl-heading-text (terms) */
.page-legal .effective, .page-legal .lead { margin: 20px; padding: 0; font-family: var(--font-medium); font-size: 25px; font-weight: 500; line-height: 30px; letter-spacing: 2.4px; color: #0e686f; text-align: center; }
.page-legal .effective { text-transform: uppercase; }
/* live: 18px/21.6px (Astro 19.8px); rgb(189,37,41) on span.fl-heading-text */
.page-legal .subtitle { margin: 20px 20px 5px; padding: 0; font-family: var(--font-medium); font-size: 18px; font-weight: 500; line-height: 21.6px; letter-spacing: 2.4px; text-transform: uppercase; color: rgb(189, 37, 41); }
.page-legal .legal-embed { margin: 20px; } /* empty OneTrust container: 0 tall → 40px gap as live */
/* live: 15px (Astro 16.5px) */
.page-legal .prose { margin: 20px; font-family: var(--font-book); font-size: 15px; line-height: 27px; color: var(--color-heading-gray); }
.page-legal .prose.after-subtitle { margin-top: 10px; }
.page-legal .prose p { margin: 0 0 20px; }
/* live: 18px/25.2px (Astro 19.8px), rgb(187,38,47) */
.page-legal .prose h3 { margin: 0 0 20px; padding: 0; font-family: var(--font-medium); font-size: 18px; font-weight: 500; line-height: 1.4; /* live: OceanWP h3 1.4 (unitless lays out at 25.19px; 25.2px lays out at 25.20 and rounds half-pixel rows 1px lower) */ color: rgb(187, 38, 47); }
.page-legal .prose .h-gap { margin: 0 0 20px; } /* keeps live's 20px gap where live had an empty heading (an empty h3 is 0 tall; its bottom margin remains) */
.page-legal .prose ul { margin: 15px 0 15px 20px; padding: 0; list-style-type: disc; }
.page-legal .prose li { margin: 0; padding: 0; }
.page-legal .prose a { color: #0e686f; text-decoration: underline; } /* a11y: links distinguishable without colour (1.4.1) */
/* child-theme mobile block (768px): column padding 5px 20px folded into each block's vertical margins */
@media only screen and (max-width: 768px) {
	.page-legal .legal-body { padding: 20px 0; }
	.page-legal .inner { padding: 0 20px; }
	.page-legal .effective { margin: 25px 20px; }
	.page-legal .lead { margin: 25px 0; font-size: 30px; /* live (390): 30px (Astro 33px) */ line-height: 36px; }
	.page-legal .subtitle { margin: 25px 0 10px; }
	.page-legal .prose { margin: 25px 0; }
	.page-legal .prose.after-subtitle { margin-top: 15px; }
	.page-legal .legal-embed { margin: 25px 0; }
}

/* ==== 15. corporate-page primitives (.page-corp: about, pipeline, science, locations; live 2026-10-12) ==== */
/* DOM (content-helpers.php): section.band > div.inner > div.h2-block > h2, div.rich > p, div.corp-cards > div.corp-card (al_card).
   The bands are flex columns so sibling margins add up like Beaver Builder's module margins (no collapsing). */
.page-corp .band { padding: 20px; font-family: var(--font-book); color: var(--color-heading-gray); } /* live: .fl-row-content-wrap 20px */
.page-corp .inner { max-width: 960px; margin: 0 auto; display: flex; flex-direction: column; } /* live: .fl-row-fixed-width 960 (Astro .inner) */
.page-corp .inner-wide, .page-corp .band-wide > .inner { max-width: 1100px; } /* live: 1100 rows (h2 x 190 w 1060 at 1440) */
.page-corp .h2-block { margin: 20px; } /* live: heading module margin 20px */
.page-corp .h2-block h2 { margin: 0 0 15px; padding: 0; font-family: var(--font-medium); font-size: 30px; /* live: 30px (Astro 33px) */ font-weight: 500; line-height: 36px; letter-spacing: 2.4px; color: #0e686f; text-align: center; }
.page-corp .h2-white h2 { color: #fff; }
.page-corp .h2-red h2 { color: rgb(189, 37, 41); }
.page-corp .h2-upper h2 { text-transform: uppercase; } /* live: mixed-case source rendered uppercase ("Corporate Responsibility"), as phase 3 .page-resolution .h2-upper */
/* live: 15px/27px (Astro 16.5px) */
.page-corp .rich { margin: 20px; font-size: 15px; line-height: 27px; }
.page-corp .rich p { margin: 0 0 20px; }
.page-corp .rich p:last-child { margin-bottom: 0; }
.page-corp .h2-block + .rich { margin-top: -20px; } /* live: the intro is the heading module's subheading, 15px under the h2 (h2 margin only) */
.page-corp .rich-fine { font-size: 12px; line-height: 21.6px; } /* live: 12px/21.6px (Astro 13.2px) */
/* teal photo band: the overview-bg image URL comes from functions.php / blocks.php (Media Library copy once imported) */
.page-corp .band-teal { padding: 20px 20px 40px; background-color: #0e686f; background-position: 50% 50%; background-size: cover; background-repeat: no-repeat; } /* live: overview-bg.png 50% 50% / cover, row padding 20/40 */
/* icon cards (al_card): white, the 79px icon 40px over the top edge */
.page-corp .corp-cards { display: flex; align-items: stretch; }
.page-corp .corp-cards > .corp-card { flex: 1 1 0; min-width: 0; margin: 50px 10px 0; } /* live: equal-width, equal-height columns; .fl-col-content margin 50/10 (child selector: outranks the editor's flow-layout :first-child reset) */
.page-corp .corp-card { display: flex; flex-direction: column; padding: 0 20px 20px; background: #fff; box-shadow: 0 0 10px 0 rgba(168, 168, 168, .7); } /* live: info-box module margin -45/20/20 */
.page-corp .corp-card__icon { width: 79px; margin: -40px auto 0; line-height: 0; } /* live: icon top = card top − 40 (module −45 + icon wrap 5) */
.page-corp .corp-card__icon img { display: block; width: 79px; height: 79px; }
.page-corp .corp-card__title { margin: 30px 0 10px; padding: 0; font-family: var(--font-medium); font-size: 17px; /* live: 17px (Astro 22px) */ font-weight: 500; line-height: 23.8px; letter-spacing: normal; color: rgb(189, 37, 41); text-align: center; }
.page-corp .corp-card p { margin: 0; padding-bottom: 10px; font-size: 14px; /* live: 14px (Astro 16.5px) */ line-height: 21px; text-align: left; } /* live: p padding-bottom 10, style="text-align: left" */
/* pills (phase 3 trial values) */
.page-corp .btn-row { margin: 20px; text-align: center; }
.page-corp .btn-red-pill, .page-corp .btn-teal-pill { display: inline-block; box-sizing: border-box; padding: 12px 14px; border: 1px solid rgb(177, 25, 29); border-radius: 20px; background: rgb(189, 37, 41); color: #fff; font-family: var(--font-book); font-size: 14px; /* live: 14px (Astro 14.3px) */ line-height: 18px; text-align: center; text-decoration: none; }
.page-corp .btn-red-pill:hover, .page-corp .btn-red-pill:focus-visible, .page-corp .btn-teal-pill:hover, .page-corp .btn-teal-pill:focus-visible { text-decoration: underline; }
.page-corp .btn-teal-pill { background: #0e686f; border-color: rgb(2, 92, 99); }
.page-corp .pill-r30 { border-radius: 30px; } /* live: pipeline "LEARN HOW ALLOGENE IS REDEFINING…" r=30px */
/* ---- BB structure breakpoint ---- */
@media only screen and (max-width: 778px) {
	.page-corp .band { padding: 20px 0; } /* live (390): rows pad 20/0 */
	.page-corp .band-teal { padding: 20px 0 40px; }
	.page-corp .corp-cards { flex-direction: column; align-items: center; margin: 5px -20px -5px; } /* live (390): each card is its own column (5px padding) spanning the row, 400px max */
	.page-corp .corp-cards > .corp-card { flex: none; box-sizing: border-box; width: 100%; max-width: 400px; margin: 50px 0 10px; padding: 5px 20px 25px; } /* live (390): card margin 50/0/10, padding 5/20 + module margin-bottom 20 */
}
/* ---- child-theme text/inset breakpoint ---- */
@media only screen and (max-width: 768px) {
	.page-corp .inner { padding: 5px 20px; } /* live (390): .fl-col-content padding 5px 20px */
	.page-corp .h2-block { margin: 20px 0; }
	.page-corp .h2-block h2 { font-size: 18px; /* live (390): 18px (Astro 22px) */ line-height: 21.6px; }
	.page-corp .h2-block + .rich { margin: -20px 0 20px; } /* live (390): subheading 350 wide at x 20, 15px under the h2 */
	.page-corp .btn-row { margin: 20px 0; }
	.page-corp .btn-red-pill, .page-corp .btn-teal-pill { font-size: 12px; /* live (390): 12px */ }
}

/* ==== 16. About Us (Astro about-us.astro; live 2026-10-12, docs/parity/phase4/live-{1440,390}.txt) ==== */
/* team bands: Astro layout (parity exception #1); the team-section block styles its grid */
.page-about .band-advisors { padding-bottom: 70px; } /* Astro .band-advisors: extra whitespace between the advisor cards and the partners band, as on live */
.page-about .page-hero .page-hero__cta { width: 142px; } /* live: custom button width 142×60 at 1440 and 390 (the text alone is 140.5 / 124.5 wide) */
.page-about .band-glance { padding-bottom: 0; } /* live: row pad 20/0 */
.page-about .ag-video { width: 100%; max-width: 780px; margin: 20px auto; } /* live: video module 780×438.8 at x 330, 40px below the text (rich margin 20 + module 20) */
.page-about .ag-video .al-video--facade { box-sizing: border-box; border: 1px solid rgb(98, 100, 105); } /* live: .wp-video 1px rgb(98,100,105) frame, video 778×436.8 inside */
.page-about .band-glance .rich-fine { margin-top: 0; } /* live: fine print module margin 0 20 20 */
.page-about .band-mission { padding-top: 0; } /* live: row pad 0/20 */
.page-about .values-sub { margin: -20px 20px 20px; font-size: 15px; line-height: 27px; color: #fff; text-align: left; } /* live: subheading 920 at x 260, 15px under the h2, white 15px/27px, left (Astro centred 16.5px) */
.page-about .values-sub strong { font-weight: 600; } /* live: <strong> 600 (synthesised from Book) */
/* live (1440): value cards 220 wide at x 250 / 490 / 730 / 970, text 180 at x 270 / 510 / 750 / 990 */
.page-about .memoriam { display: flex; align-items: center; } /* live: photo column 320 + caption column 640, caption centred vertically */
.page-about .memoriam-photo { flex: none; width: 280px; margin: 20px; } /* live: 280×280 at x 260 */
.page-about .memoriam-photo img { display: block; width: 100%; height: auto; box-shadow: 0 0 15px 0 rgba(0, 0, 0, .3); }
.page-about .memoriam-caption { flex: 1; margin: 20px; font-size: 15px; line-height: 27px; } /* live: 600 at x 580, grey 15px/27px (Astro teal 16.5px) */
.page-about .partners { display: flex; flex-direction: column; }
.page-about .partner { margin: 10px; padding: 0 20px; background: #fff; box-shadow: 0 0 10px 0 rgba(168, 168, 168, .7); } /* live: .allogene-partner-box 940 at x 250 */
.page-about .partner-logo { margin: 40px 20px 20px; line-height: 0; text-align: center; } /* live: logo module margin 40/20/20 */
.page-about .partner-logo img { display: inline-block; max-width: 100%; height: auto; }
.page-about .partner-text { margin: 0 20px 20px; font-size: 15px; line-height: 27px; } /* live: text 860 at x 290, grey, left */
.page-about .band-resp { padding: 60px 20px; } /* live: row pad 60, 1100 row (h2 x 190 w 1060) */
.page-about .band-dei { padding-bottom: 60px; }
.page-about .band-dei > .inner { padding: 20px 0 40px; box-shadow: 0 0 7px 0 rgba(168, 168, 168, .5); } /* live: column padding 20/40 with a soft shadow */
.page-about .dei-logo { margin: 20px 20px 20px 0; line-height: 0; text-align: center; } /* live: logo module margin 20/20/20/0 */
.page-about .dei-logo img { width: 450px; max-width: 100%; height: auto; } /* live: 450×202.5 at x 485 */
.page-about .band-dei .rich { margin: 20px 0 0 20px; } /* live: text 940 at x 260 */
@media only screen and (max-width: 778px) {
	.page-about .band-glance { padding-bottom: 0; }
	.page-about .band-mission { padding-top: 0; }
	.page-about .band-advisors { padding-bottom: 20px; } /* Astro: the 778px .band rule wins over .band-advisors */
	.page-about .band-values { padding: 20px 10px 40px; } /* live (390): values row pad 20/40/10/10 */
	.page-about .memoriam { flex-direction: column; align-items: stretch; margin-top: 10px; } /* live (390): photo and caption columns stacked (5px column paddings) */
	.page-about .memoriam-photo { width: auto; }
	.page-about .memoriam-caption { flex: none; margin-top: 30px; }
	.page-about .partners { margin: 5px 0 -5px; }
	.page-about .partner { margin: 50px 0 10px; padding: 5px 20px; } /* live (390): card 350 at x 20, margin 50/10, padding 5/20 */
	.page-about .partner-logo { margin: 20px; }
	.page-about .band-resp { padding: 60px 0; }
	.page-about .band-dei { padding: 20px 0 60px; }
}
@media only screen and (max-width: 768px) {
	.page-about .page-hero__title { letter-spacing: -0.05px; } /* live (390): the About h1 alone has letter-spacing -0.05px (pipeline/science 5.6px) */
	.page-about .values-sub { margin: -20px 0 20px; } /* live (390): 330 at x 30 */
	.page-about .ag-video { width: auto; margin: 30px 20px; } /* live (390): video 310 at x 40, 50px below the text and 30px above the fine print (two 5px column paddings) */
	.page-about .band-dei > .inner { padding: 5px 20px; }
	.page-about .dei-logo { margin: 25px 40px 20px 20px; } /* live (390): nested column padding 5/20 → logo 290 at x 40 */
	.page-about .band-dei .rich { margin: 30px 20px 5px 40px; } /* live (390): text 290 at x 60 */
}

/* ==== 17. Pipeline (Astro pipeline.astro; live 2026-10-12, docs/parity/phase4/live-{1440,390}.txt) ==== */
/* Live's page is one 970px column at x 235 (1440): the table, DataBrief card and expanded-access text share it. */
.page-pipeline .page-hero .page-hero__cta { width: 142px; } /* live: custom button width 142×78 at 1440 and 390 (three lines) */
@media only screen and (min-width: 769px) { .page-pipeline .page-hero__title { width: min(900px, calc(100% - 60px)); margin-inline: auto; } } /* live: h1 module 900 wide, centred ([270,367.8,900,66] at 1440; 800 at x 50 at 900; 700 at 800) */
.page-pipeline .inner { max-width: 970px; }
.page-pipeline .pl-table-wrap { width: 100%; max-width: 970px; margin: 0 auto; } /* live: chart 970×585.9 at x 235, 20px under the heading block */
.page-pipeline .pl-footnote { margin: 0 20px 20px; font-family: "HCo Gotham Rounded Book SSm"; font-size: 15px; line-height: 27px; } /* live: 930 at x 255, directly under the chart. Font with no fallback stack, as live: Gotham has no "¹", so the browser's default font draws it (4.5px wide at 15px; our stack's Helvetica Neue drew 5px and shifted the line 0.5px) */
.page-pipeline .band-db { padding-top: 0; padding-bottom: 0; } /* live: one row with the table and expanded access; the card's own margins space it */
.page-pipeline .band-access { padding-top: 0; } /* live: heading 20px under the card's bottom margin; row padding 20 below the fine print */
/* DataBrief card: white, soft shadow, 20px above and below (live .fl-col-content margin 20/0) */
.page-pipeline .db-box { display: flex; flex-direction: column; margin: 20px 0; background: #fff; box-shadow: 0 0 7px 0 rgba(168, 168, 168, .5); } /* flex column, as .inner: module margins add up (no collapsing) */
.page-pipeline .db-sub { width: calc(71.02% - 40px); margin: 20px 0 20px calc(14% + 20px); font-size: 15px; line-height: 27px; text-align: center; } /* live: middle of three columns (BB widths 14% / 71.02% / rest) → 648.891 at x 390.797, 40px under the heading block */
.page-pipeline .db-sub strong { font-weight: 600; } /* live: <strong> 600 (synthesised from Book) */
.page-pipeline .db-box .al-tabs { margin: 20px 0; } /* live: tabs 970 wide, 40px under the intro; the card ends 20px under the last panel row */
/* Panel content. The panel is block flow: vertical margins between siblings collapse (values are the collapsed live gaps). */
.page-pipeline .db-subhead { margin: 0; padding: 0; font-family: var(--font-medium); font-size: 17px; font-weight: 500; line-height: 23.8px; letter-spacing: normal; color: #0e686f; text-align: left; } /* live: h4.fl-heading 17px/23.8px teal, x 255 w 930 (TRAVERSE) */
.page-pipeline .db-btn-row + .db-subhead { margin-top: 60px; } /* live: next sub-heading 60px under the button (collapses with the row's 20px) */
.page-pipeline .db-rich { margin: 10px 20px 40px; font-size: 15px; line-height: 27px; } /* live (ALPHA3, ALPHA tabs): text 890 at x 275, 30px into the panel, gallery 40px below */
.page-pipeline .db-subhead + .db-rich { margin: 5px 20px 20px; } /* live (TRAVERSE): text 5px under the sub-heading, gallery 20px below */
.page-pipeline .db-rich p { margin: 0; }
.page-pipeline .db-rich a { color: #0e686f; text-decoration: underline; } /* a11y: links distinguishable without colour (1.4.1; live: no underline) */
.page-pipeline .tabpanel .vg-list { margin: 0 20px; } /* live: gallery 890 at x 275 */
.page-pipeline .db-btn-row { margin: 30px 20px 20px; } /* live: button 30px under the gallery (its last row keeps the 2% margin) */
/* PDF and CTA pills: live's pipeline buttons have no border (42px tall) */
.page-pipeline .btn-red-pill { border: 0; }
/* expanded access */
.page-pipeline .rich-intro p { margin: 0; } /* live: the two opening paragraphs touch */
.page-pipeline .contact-row { display: flex; gap: 40px; margin: 20px 20px 0; } /* live: two 445 columns at x 255 / 740, 40px under the text */
.page-pipeline .contact-row > .contact { flex: 1 1 0; min-width: 0; margin: 0; font-size: 15px; line-height: 27px; }
.page-pipeline .contact b { font-weight: 600; } /* live: <b> 600 */
.page-pipeline .contact a, .page-pipeline .rich a { color: #0e686f; text-decoration: underline; } /* a11y: underlined (1.4.1; live: teal, no underline) */
.page-pipeline .rich-after { margin-top: 20px; }
/* closing CTA (#publications): live 540×42 pill, 30px into the 112px row */
.page-pipeline .band-pub .pub-row { margin: 10px 0 20px; }
.page-pipeline .pub-row .btn-red-pill { width: 540px; max-width: 100%; }
@media only screen and (max-width: 778px) {
	.page-pipeline .band-db .inner { padding: 0; } /* live (390): the card spans the viewport (x 0, w 390) */
	.page-pipeline .db-box { padding: 5px 20px; } /* live (390): column padding 5/20 */
	.page-pipeline .db-sub { width: auto; margin: 25px 40px; } /* live (390): the side columns are hidden → 270 at x 60, 45px above the tabs */
	.page-pipeline .db-rich { margin: 15px 20px 40px; } /* live (390): text 310 at x 40, 35px under the header */
	.page-pipeline .db-subhead { margin: 5px 20px 0; } /* live (390, TRAVERSE): 310 at x 40, 25px under the header */
	.page-pipeline .db-btn-row + .db-subhead { margin-top: 70px; } /* live (390): 70px under the button (collapses with the row's 25px) */
	.page-pipeline .db-subhead + .db-rich { margin: 5px 40px 20px; } /* live (390, TRAVERSE): text 270 at x 60 */
	.page-pipeline .db-btn-row { margin: 40px 20px 25px; } /* live (390): button 40px under the gallery, panel ends 45px under it */
	.page-pipeline .contact-row { flex-direction: column; gap: 50px; margin: 30px 20px 0; } /* live (390): stacked 310 at x 40, 50px apart */
	.page-pipeline .rich-after { margin: 30px 20px 20px; } /* live (390): 310 at x 40, 30px under the email */
	.page-pipeline .band-pub .pub-row { margin: 10px 20px 20px; } /* live (390): 310×60 at x 40 */
}
@media only screen and (max-width: 768px) {
	.page-pipeline .pl-table-wrap { margin-top: 10px; } /* live (390): chart 30px under the heading block */
	.page-pipeline .pl-footnote { margin: 10px 20px 20px; } /* live (390): 310 at x 40, 10px under the chart */
}

/* ==== 18. Science (Astro science.astro; live 2026-10-12, docs/parity/phase4/live-{1440,390}.txt + BB structure probes) ==== */
/* Live rows: intro 1100 (h2 1020 at x 210), teal bands 1000, diagrams 960, statement / publications 1100. */
.page-science .page-hero .page-hero__cta { width: 135px; } /* live: custom button width 135×78 at 1440 (three lines), 135×60 at 390 */
@media only screen and (min-width: 769px) { .page-science .page-hero__title { width: min(740px, calc(100% - 60px)); margin-inline: auto; } } /* live: h1 module 740 wide, centred ([350,377.8,740,66] at 1440; 740 at x 80 at 900; 700 at 800) */
.page-science .nobr { white-space: nowrap; } /* live: <span class="nobr">AlloCAR T</span> */
.page-science :where(.wp-block-image) { margin: 0; line-height: 0; text-align: center; } /* zero specificity: the card icons and the per-figure margins below win */
.page-science :where(.wp-block-image) img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; }
/* intro: a plain BB heading (no 15px subheading gap): h2 and text 40px apart, both 1020 wide at x 210 */
.page-science .band-intro > .inner { max-width: 1060px; }
.page-science .band-intro .h2-block h2 { margin-bottom: 0; }
.page-science .band-intro .h2-block + .rich { margin-top: 20px; }
/* advantages + quality: 1000 rows, 250 columns (cards 230 at x 230 / 480 / 730 / 980) */
.page-science .band-adv > .inner, .page-science .band-journey > .inner, .page-science .band-quality > .inner { max-width: 1000px; }
.page-science .corp-card__list { margin: 5px 0 15px 20px; padding: 0; list-style: disc outside; font-size: 14px; line-height: 21px; text-align: left; } /* live: ul margin 15/0/15/20, its 15px top collapsing with the h3's 10px (the card is a flex column, so 5 here) */
.page-science .corp-card__list li { margin: 0; padding: 0 0 10px; }
.page-science .adv-row { margin: 40px 20px 10px; } /* live: button module margin 40/20/10, 40px under the cards */
.page-science .btn-red-pill { border: 0; } /* live: 42px tall, no border */
/* statement: 1100 row, 20px above, none below; text 1060 at x 190, left as live */
.page-science .band-statement { padding-bottom: 0; }
.page-science .band-statement .rich { margin-bottom: 0; }
/* white diagram boxes (soft shadow, as the DataBrief card) */
.page-science .diagram-box { display: flex; flex-direction: column; background: #fff; box-shadow: 0 0 7px 0 rgba(168, 168, 168, .5); }
.page-science .diagram-box .h2-block { margin: 20px 10px 5px; } /* live: heading module margin 20/10/5 → h2 940 at x 250 */
/* donors: one 960 image under the heading above 778px; the stacked steps at ≤778 (live BB visibility switch at max-width 778) */
.page-science .band-donors { padding-top: 0; }
.page-science .donor-desktop, .page-science .donor-mobile { margin: 40px 0; } /* live: column + column-content margins 20 + 20 */
.page-science .donor-desktop img { width: 100%; } /* live: Layer_19 960×345.2 */
.page-science .donor-mobile { display: none; }
/* journey: 1000 image, white 12px source line */
.page-science .sci-journey img { width: 100%; } /* live: 1000×485.8 at x 220 */
.page-science .rich-source { margin: 5px 20px 20px 0; color: #fff; } /* live: 980 at x 220, 5px under the image */
/* platform: heading, then three boxes */
.page-science .band-platform { padding-top: 0; }
.page-science .platform-box { margin: 0 0 20px; } /* live: directly under the heading block */
.page-science .platform-box figure { margin: 20px; } /* live: 920×421.6 at x 260 */
.page-science .platform-box img { width: 100%; }
.page-science .dagger-box { margin: 40px 0 30px; }
.page-science .dagger-box .dagger-logo { margin: 20px 20px 5px; } /* live: 167×64 centred, 20px into the box */
.page-science .dagger-box .h2-block { margin: 5px 10px 10px; }
.page-science .dagger-box .dagger-img { margin: 20px 40px; } /* live: 880 at x 280 */
.page-science .dagger-box .dagger-img img { width: 100%; }
.page-science .lad-box { margin: 40px 0; }
.page-science .lad-box .lad img { width: 340px; } /* live: lad1 / lad2 stacked, 340 wide at x 550 */
.page-science .lad-box .lad-2 { margin: 20px 20px 40px; }
/* on-demand: the building photo 680 wide (x 380) between the heading and the text */
.page-science .sci-building { margin: 20px; }
.page-science .sci-building img { width: 680px; }
/* publications: white box (1100 at x 170) with the heading and the tabs */
.page-science .pub-box { display: flex; flex-direction: column; margin: 20px 0; background: #fff; box-shadow: 0 0 7px 0 rgba(168, 168, 168, .5); }
.page-science .pub-box .pub-tabs { margin: 20px 0; } /* live: tabs module margin 20/0, the tabs 1100 wide */
@media only screen and (max-width: 778px) {
	.page-science .band-adv, .page-science .band-journey { padding: 20px 20px 40px; } /* live (390): teal rows keep 20px sides */
	.page-science .band-quality { margin: 20px 0; padding: 20px 20px 40px; } /* live (390): the row wrap has 20px white margins */
	.page-science .band-statement { padding: 20px 0 0; }
	.page-science .band-donors, .page-science .band-platform { padding: 0 0 20px; }
	.page-science .donor-desktop { display: none; }
	.page-science .donor-mobile { display: flex; padding: 5px 20px; } /* live (390): box 350 at x 20, column padding 5/20 */
	.page-science .diagram-box .h2-block { margin: 20px 0 5px; }
	.page-science .donor-steps { display: flex; flex-direction: column; padding: 5px 20px; } /* live (390): nested column padding 5/20 */
	.page-science .donor-steps figure { margin: 20px; } /* live (390): steps 230 at x 80 */
	.page-science .donor-step img { width: 100%; }
}
@media only screen and (max-width: 768px) {
	.page-science .band-intro .h2-block { margin: 20px; } /* live (390): h2 and text 310 at x 40 */
	.page-science .band-intro .h2-block h2 { font-size: 20px; line-height: 24px; } /* live (390): this BB heading is 20/24 (the others 18/21.6) */
	.page-science .band-intro .h2-block + .rich { margin: 20px; }
	.page-science .adv-row { margin: 30px 20px 10px; } /* live (390): button 270 wide at x 60, 25px under the last card's column */
	.page-science .adv-row .btn-red-pill { width: 100%; }
	.page-science .band-quality .corp-cards { margin-top: -5px; } /* no heading above: the first card 50px under the row padding */
	.page-science .sci-journey { margin-top: 10px; } /* live (390): heading and image columns each pad 5px */
	.page-science .platform-box { margin: 5px -20px 0; padding: 5px 20px; } /* live (390): box spans the viewport (x 0, w 390) */
	.page-science .dagger-box { margin: 45px 0; padding: 5px 20px; } /* live (390): 350 at x 20, column + column-content margins and paddings */
	.page-science .dagger-box .h2-block { margin: 5px 0 10px; }
	.page-science .dagger-box .dagger-img { margin: 20px; } /* live (390): 270 at x 60 */
	.page-science .lad-box { margin: 45px 0 40px; padding: 5px 20px; }
	.page-science .lad-box .lad-2 { margin: 20px; }
	.page-science .band-pubs .inner { padding: 0; } /* live (390): the box spans the viewport */
	.page-science .pub-box { padding: 5px 20px; }
}

/* ==== 19. Trial locations (/alpha3-locations/, /resolution-locations/; live 2026-10-12, docs/parity/phase4/live-{1440,390}.txt + BB structure probes) ==== */
/* Hero (trial-hero `locations` preset): live's two columns (660 + 440 in the 1100 row) are equal height and top-aligned, the
   pair centred in the 460px content box. ALPHA3 (1440): brand [170,238.8,660,117], h1 [850,278.8,400,72], CTA [980,390.8,140,114];
   RESOLUTION: brand [170,239.8,660,90], h1 [850,259.8,400,72], CTA [980,371.8,140,132]. */
.page-locations .th-locations .th-inner { align-self: center; align-items: stretch; }
.page-locations .th-locations .th-left { justify-content: flex-start; padding-bottom: 40px; } /* live: .fl-col-content padding-bottom 40, brand at the column top */
.page-locations .th-locations .th-right { justify-content: flex-start; }
.page-locations .th-locations .th-loc-brand { overflow-wrap: break-word; } /* live: BB rich text breaks "RESOLUTION" over two lines at 390 */
.page-locations .th-locations .th-loc-h1 { margin: 40px 20px 20px; } /* live (ALPHA3): h2 margin 40/20/20 */
.page-locations-resolution .th-locations .th-loc-h1 { margin-top: 20px; } /* live (RESOLUTION): h2 margin 20 */
.page-locations .th-locations .th-btnrow { margin: 20px 20px 50px; } /* live: button module margin 20/20/50 → CTA 40px under the h1 */
/* live: the 140px button (.allogene-circle-btn) is drawn as a disc by clip-path: circle(60%) over an 800px box-shadow, so the red
   disc is 1.2 × √((w² + h²) / 2) across: 153px on ALPHA3's 140×114 box, 163px on RESOLUTION's 140×132. Drawn here as a ::before
   disc (as phase 3's .th-cta-disc) so the focus ring can follow it. */
.page-locations .th-locations .th-cta { --d: 153px; position: relative; isolation: isolate; background: none; }
.page-locations-resolution .th-locations .th-cta { --d: 163px; }
.page-locations .th-locations .th-cta::before { content: ""; position: absolute; z-index: -1; top: 50%; left: 50%; width: var(--d); height: var(--d); transform: translate(-50%, -50%); border-radius: 50%; background: #bd2529; }
.page-locations .th-locations .th-cta:focus-visible { outline: 3px solid transparent; } /* invisible normally; forced-colours modes paint it, so High Contrast users keep an indicator */
.page-locations .th-locations .th-cta:focus-visible::before { box-shadow: 0 0 0 3px #fff, 0 0 0 6px #0e686f; }
/* Search heading + accordion: one 1100 row on live (heading module, then the accordion module, 20px module margins); here two bands
   with the facing paddings removed, so the first region header sits 55px under the h2 (15 + 20 + 20) at x 190, 1060 wide. */
.page-locations .band-search { padding-bottom: 0; }
.page-locations .band-acc { padding-top: 0; }
.page-locations .band-acc .accordion { margin: 20px; } /* live: accordion module margin 20 */
/* ---- BB structure breakpoint ---- */
@media only screen and (max-width: 778px) {
	/* live (390 / 700): the columns stack, the pair still centred in the hero; the brand column spans the row (two nested 5/20
	   column paddings → brand at x 40), the heading column is 400px max, centred (5/20 padding, h2 margin 0/20/20). */
	.page-locations .trial-hero.th-locations { background-image: var(--th-bg); } /* live (390, 700): the hero keeps alpha-header-bottom.png, 50% 50% / cover (the trial pages drop theirs) */
	.page-locations .th-locations .th-inner { display: block; }
	.page-locations .th-locations .th-left { max-width: none; padding: 10px 40px; }
	.page-locations .th-locations .th-right { display: flex; box-sizing: border-box; max-width: 400px; padding: 5px 20px; } /* flex column: the h1's 20px and the button row's 20px add up (live: 40) */
	.page-locations .th-locations .th-loc-h1, .page-locations-resolution .th-locations .th-loc-h1 { margin: 0 20px 20px; }
	.page-locations .th-locations .th-btnrow { margin: 20px 0; } /* live (390): CTA [125,466.3,140,114] = h2 bottom + 40 */
}
/* ---- child-theme text/inset breakpoint ---- */
@media only screen and (max-width: 768px) {
	.page-locations .band-search > .inner { padding-bottom: 0; }
	.page-locations .band-acc > .inner { padding-top: 0; }
	.page-locations .band-acc .accordion { margin: 20px 0; } /* live (390): accordion module margin 20/0, items 350 wide at x 20 */
}

/* ==== 20. News Center (/news-center/; live 2026-10-14, .superpowers/research/phase5 probe-news-{1440,390}.json, docs/parity/phase5/live-{1440,390}.txt) ==== */
/* Live rows: hero / press / events 960, perspectives / posts / guidelines 1100 (.band-wide). The .page-corp primitives (§15)
   give the band padding, heading sizes and the teal photo band; this section adds the module spacing live's rows have. */
.page-news .page-hero .page-hero__cta { width: 142px; } /* live: custom button width 142×78 at 1440 and 390 (three lines) */
@media only screen and (min-width: 769px) { .page-news .page-hero__title { width: min(900px, calc(100% - 60px)); margin-inline: auto; } } /* live: h1 module 900 wide, centred ([270,367.8,900,66] at 1440) */
/* press releases: module 960 at x 240, items 920 at x 260 starting 20px into it; SEE ALL pill 10px under the module, 20px above the row padding */
.page-news .band-press .press-list { padding: 20px; } /* live: module 404.8 = 20 + 3 × 121.6 + 20, items 920 at x 260 */
.page-news .press-all { margin: 10px 0 20px; } /* live: button module margin-top 10, centred; column ends 20px under the 42px pill */
.page-news .press-all .btn-red-pill { border: 0; font-weight: 600; } /* live (computed): 253.2×42, border 0 (none), 14px/18px 600; radius 20 and padding 12/14 from §15 */
.page-news .press-all .btn-red-pill .al-icon { margin-right: 8px; font-size: 14px; vertical-align: middle; } /* live: icon 14px, margin 0 8px 0 0, vertical-align middle (.allo-da; 1px lower than baseline). Live's glyph is Font Awesome 6 Pro Regular (far), ours the inline SVG of FA 6 Free Solid angles-right (Pro is licensed) — same box, heavier strokes */
/* events: teal photo band, white heading 20px into the row, live's no-events message 40px under it */
.page-news .band-events { padding: 40px 20px; background-position: 0% 0%; } /* live: overview-bg left top / cover, row padding 40px 20px */
.page-news .band-events .h2-block h2 { margin-bottom: 0; } /* live: BB h2.fl-heading margin 20px (h2 920 at x 260, 60px into the row): the block's 20px margins, and the message's 20px below */
.page-news .band-events .news-empty { margin: 20px 20px 40px; } /* live: 920 at x 260, 40px under the h2; p margin-bottom 20 + module margin 20 to the row padding */
/* perspectives / posts / guidelines: live's rows are fixed 1100 wide *including* their 20px padding (row [170,…,1100], content 1060 at
   x 190), so the modules sit 1020 wide at x 210 — not the 1100 content of §15's .band-wide (Science: h2 1060 at x 190) */
.page-news :is(.band-persp, .band-posts, .band-guidelines) > .inner { max-width: 1060px; } /* live: .fl-row-content 1060; h2s, slider list, feed and text 1020 at x 210 */
/* perspectives: slider 1020 at x 210 (list 1056 at x 192, cards 316), cards 40px under the h2 */
.page-news .band-persp .persp-slider { margin: 5px 20px; } /* live: module content 1020 at x 210, margin 5px 20px (.fl-module-content; list top 1603.6, 5px under the heading module) */
/* X feed: 1020 at x 210, 45px under the h2 */
.page-news .band-posts .x-feed { margin: 10px 20px 20px; } /* live: #ctf [210,2147.6,1020,320], row content ends 20px under it */
/* community guidelines: heading at the row top, rich text 40px under it */
.page-news .band-guidelines .h2-block { margin-top: 0; } /* live: h2 at the row content top (2527.6) */
.page-news .band-guidelines .h2-block h2 { margin-bottom: 0; } /* live: UABB heading margin-bottom 0 */
.page-news .band-guidelines .h2-block + .rich { margin: 20px; } /* live: text 1020 at x 210, first h3 40px under the h2 */
.page-news .band-guidelines h3 { margin: 0 0 20px; padding: 0; font-family: var(--font-medium); font-size: 18px; line-height: 1.4; font-weight: 500; letter-spacing: normal; color: #bd2529; text-align: left; } /* live: h3 style="color: #bd2529", Gotham Medium 18px/1.4 500 (computed 25.2px, laid out 25.1875 per line: two-line h3s are 50.375 at 390; 25.2px drew the text below 1px low), margin-bottom 20 */
.page-news .band-guidelines .rich a { color: #0e686f; text-decoration: underline; } /* live: #0e686f, no underline — in-prose links underlined (A7, WCAG 1.4.1) */
.page-news .band-guidelines .rich a:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; } /* a11y: visible focus (live: none) */
/* ---- child-theme text/inset breakpoint ---- */
@media only screen and (max-width: 768px) {
	.page-news .band-press .press-list { padding: 20px 0; } /* live (390): module 350 at x 20, margin 20px 0; items 350 at x 20 (text 300 at x 45, item 350×163.6) */
	.page-news .press-all { margin: 20px 0; } /* live (390): pill 20px under the module (two 5px column paddings + 10), 25px above the row padding */
	.page-news .band-events { padding: 40px 0; } /* live (390): row padding 40px 0 */
	.page-news .band-events .h2-block { margin: 20px; } /* live (390): h2 310 at x 40, 25px into the row content */
	.page-news .band-events .h2-block h2 { font-size: 20px; line-height: 24px; } /* live (390): global h2.fl-heading 20px/24px at ≤768 (the UABB h2s are 18/21.6) */
	.page-news .band-events .news-empty { margin: 20px 0 40px; } /* live (390): 350 at x 20, 40px under the h2 */
	.page-news .band-persp .persp-slider { margin: 5px 0; } /* live (390): module 350 at x 20 (column padding), margin 5px 0 (list top 1747.8) */
	.page-news .band-guidelines .h2-block { margin: 0 0 20px; } /* live (390): h2 5px into the row content (column padding) */
}

/* ==== 21. Single post + archive (live: OceanWP single, measured 2026-10-14 on a rendered SEC-filing post) ==== */
/* core's body_class also puts .single-post on <body> for every post single, so the rules are scoped to main.single-post */
main.single-post { padding: 50px 0; /* live: #content-wrap 50px 0 */ }
main.single-post .single-post-title { box-sizing: border-box; max-width: 700px; margin: 22.5px auto 15px; padding: 0 20px 20px; font-family: var(--font-medium); font-size: 34px; line-height: 47.6px; letter-spacing: .6px; font-weight: 500; color: #333; text-align: center; /* live: h2.single-post-title (ours is the page h1) */ }
main.single-post .entry-content > * { box-sizing: border-box; max-width: 700px; margin: 22.5px auto; padding: 0 20px; font-family: var(--font-book); font-size: 15px; line-height: 27px; color: #626469; /* live: 700px column, 15/27 Book #626469 */ }
main.single-post .entry-content a { color: #0e686f; text-decoration: underline; /* live: no underline — in-prose links underlined per A7 */ }
@media (max-width: 768px) { main.single-post .single-post-title { font-size: 26px; line-height: 36.4px; /* live 390 */ } }
.archive-list { max-width: 1100px; margin: 0 auto; padding: 50px 20px; /* live: #content-wrap 50px 0 */ }
.archive-list h1 { font-family: var(--font-medium); font-size: 30px; line-height: 36px; letter-spacing: 2.4px; color: #0e686f; text-align: center; margin: 0 0 30px; }
.archive-list .archive-items { list-style: none; margin: 0; padding: 0; }
.archive-list .archive-item { display: grid; grid-template-columns: 300px 1fr; gap: 0 30px; padding: 0 0 30px; margin: 0 0 30px; border-bottom: 1px solid #e9e9e9; }
.archive-list .archive-thumb { grid-row: span 2; margin: 0; }
.archive-list .archive-title { margin: 0 0 10px; font-family: var(--font-medium); font-size: 18px; line-height: 25.2px; }
.archive-list .archive-title a { color: #333; text-decoration: none; }
.archive-list .archive-title a:hover, .archive-list .archive-title a:focus-visible { text-decoration: underline; }
.archive-list .archive-date { margin: 0; font-size: 13px; color: #626469; }
.archive-list .archive-item:not(:has(.archive-thumb)) { grid-template-columns: 1fr; } /* an entry without a featured image: the title takes the full row */
@media (max-width: 778px) { .archive-list .archive-item { grid-template-columns: 1fr; } .archive-list .archive-thumb { grid-row: auto; margin-bottom: 15px; } }
/* Visible keyboard focus (the theme reset removes link outlines): in-prose links, archive titles, pagination */
main.single-post .entry-content a:focus-visible, .archive-list .archive-title a:focus-visible, .archive-list .wp-block-query-pagination a:focus-visible { outline: 2px solid #0e686f; outline-offset: 2px; }

/* ==== 22. Gravity Forms (live 2026-10-16: .superpowers/research/phase6/live.md §6, raw/matched-rules-<slug>-<w>.txt, raw/css-form-rules-<slug>.txt) ==== */
/* GF's own "gravity-theme" markup, styled (never replaced). Contact (/contact-us/, form 1) = live's UABB "Gravity Form" styler over OceanWP + GF theme;
   inquiry (/trial-site-consideration/, /resolution-inquiry/, forms 2/3) = live's PowerPack module, i.e. OceanWP + GF theme defaults.
   Every selector carries .gform_wrapper.gravity-theme so it outranks GF's theme.min.css, which loads after this file.
   A11y deviations (docs/a11y-exceptions.md): A15 inquiry submit colour, A16 focus ring on every control, A17 control borders ≥3:1.
   Error state as live's module CSS leaves it: contact = GF theme defaults (#c02b0a) with UABB's #ce0000 12px messages; inquiry = PowerPack's
   #790000 on a #ffdfe0 field (raw/css-form-rules-trial-site-consideration.txt). */

/* -- shared: labels, legend, borders, focus -- */
.al-form--contact .gform_wrapper.gravity-theme .gfield_label,
.al-form--inquiry .gform_wrapper.gravity-theme .gfield_label { display: block; /* live: UABB / PowerPack .gfield_label { display: block } (GF: inline-block) */ }
/* GF 3.1 moved the label-to-marker gap: 2.10 pads each .gfield_required span by .125em (13.008px → 1.626px, twice in a label: outer + inner span);
   3.1 pads the new .gform-field-label__text span instead (.125em of 16px = 2px, once) and makes the marker inline, so the * / "(Required)" drew 1.25px left
   of live (1.63px in the contact HTML field). Restored as 2.10; GF's own .gform_required_legend rule (0 padding) still wins in the required legend. */
.al-form--contact .gform_wrapper.gravity-theme .gfield_required,
.al-form--inquiry .gform_wrapper.gravity-theme .gfield_required,
.al-form--contact .gform_wrapper.gravity-theme .gform-field-label > .gfield_required,
.al-form--inquiry .gform_wrapper.gravity-theme .gform-field-label > .gfield_required { display: inline-block; padding-inline-start: .125em; /* live: GF 2.10 theme .gfield_required */ }
.al-form--contact .gform_wrapper.gravity-theme .gform-field-label .gform-field-label__text,
.al-form--inquiry .gform_wrapper.gravity-theme .gform-field-label .gform-field-label__text { padding-inline-end: 0; /* live: GF 2.10 has no label-text span (3.1: .125em) */ }
.al-form--contact .gform_wrapper.gravity-theme legend.gfield_label,
.al-form--inquiry .gform_wrapper.gravity-theme legend.gfield_label { width: 100%; /* live: OceanWP form legend width 100% */ color: #333; /* live: OceanWP form legend rgb(51,51,51) */ }
.al-form--contact .gform_wrapper.gravity-theme .gfield :is(input[type=text], input[type=email], input[type=tel], select, textarea),
.al-form--inquiry .gform_wrapper.gravity-theme .gfield :is(input[type=text], input[type=email], input[type=tel], select, textarea) {
	border: 1px solid #8a8a8a; /* live: 1px solid #ccc (contact, 1.61:1) / #ddd (inquiry, 1.36:1); A17: #8a8a8a = 3.45:1 on white (#949494, 3.03:1, is the lightest grey reaching 3:1) */
}
.al-form--contact .gform_wrapper.gravity-theme .gfield :is(input, select, textarea):focus,
.al-form--inquiry .gform_wrapper.gravity-theme .gfield :is(input, select, textarea):focus,
.al-form--contact .gform_wrapper.gravity-theme .gform_footer .gform_button:focus-visible,
.al-form--inquiry .gform_wrapper.gravity-theme .gform_footer .gform_button:focus-visible {
	outline: 2px solid #0e686f; /* live: outline none (fields: border #ccc→#bbb / #ddd→#719ece only; submit: UA auto ring); A16: teal 6.5:1 on white */
	outline-offset: 2px;
}
/* contact error state (live: GF theme; UABB's #790000 label / li rules lose to it or target legacy markup) — re-asserted over the colours above */
.al-form--contact .gform_wrapper.gravity-theme .gfield.gfield_error :is(input, select, textarea)[aria-invalid=true] { border-color: #c02b0a; /* live: GF theme .gfield_error [aria-invalid=true] (5.85:1 on white) */ }
.al-form--contact .gform_wrapper.gravity-theme .gfield_error legend.gfield_label { color: #c02b0a; /* live: GF theme .gfield_error legend */ }
.al-form--contact .gform_wrapper.gravity-theme .validation_message { color: #ce0000; font-size: 12px; /* live: UABB .validation_message (GF's #fff9f9 bg + 1px #c02b0a border stay; 5.57:1) */ }
/* inquiry error state (live: PowerPack module CSS) */
.al-form--inquiry .gform_wrapper.gravity-theme .gfield.gfield_error { width: 100%; background-color: #ffdfe0; /* live: PowerPack .gfield.gfield_error */ }
.al-form--inquiry .gform_wrapper.gravity-theme .gfield.gfield_error .gfield_label { margin-left: 0; color: #790000; /* live: PowerPack .gfield.gfield_error .gfield_label (label + legend; 9.31:1 on #ffdfe0) */ }
.al-form--inquiry .gform_wrapper.gravity-theme .gfield_error .validation_message { color: #790000; border-color: #790000; /* live: PowerPack (GF's #fff9f9 bg stays; 11.1:1) */ }
.al-form--inquiry .gform_wrapper.gravity-theme .gfield.gfield_error :is(input[type=text], input[type=email], input[type=tel], select, textarea) { border-color: #790000; /* live: PowerPack .gfield_error input / select / textarea — every control, so the name sub-inputs too (9.31:1 on #ffdfe0) */ }
.al-form--inquiry .gform_wrapper.gravity-theme .gform_validation_errors,
.al-form--inquiry .gform_wrapper.gravity-theme .gform_validation_errors > h2 { color: #790000; border-color: #790000; /* live: PowerPack !important (its list items and links keep GF's #c02b0a, 5.62:1 on #fff9f9) */ }

/* -- contact: UABB look -- */
.al-form--contact .gform_wrapper.gravity-theme .gfield_label { line-height: 3; /* live: UABB .gform_wrapper .top_label .gfield_label { line-height: 3 } → 48px */ text-align: left; /* live: UABB form .gform_body .gfield_label */ }
.al-form--contact .gform_wrapper.gravity-theme legend.gfield_label { border-bottom: 1px solid #e5e5e5; /* live: OceanWP form legend (decorative rule, h 49) */ }
.al-form--contact .gform_wrapper.gravity-theme .gfield_required { margin-left: 4px; /* live: UABB .gform_wrapper .gfield_required (its #790000 loses to GF's #c02b0a) */ }
.al-form--contact .gform_wrapper.gravity-theme .ginput_complex label { margin-bottom: 3px; /* live: OceanWP form label */ font-size: .813em; /* live: UABB → 12.195px */ line-height: 1.8; /* live: 21.951px */ }
.al-form--contact .gform_wrapper.gravity-theme .gfield :is(input[type=text], input[type=email], input[type=tel], textarea) {
	margin: 10px 0 15px; /* live: UABB margin-top 10px / margin-bottom 15px !important (textarea keeps GF's .medium height 192) */
	padding: 15px; /* live: UABB */
	font-size: 15px; /* live: GF theme */
	line-height: 1.3; /* live: UABB → 19.5px; h 51.5 (GF's <641px rule makes inputs 2 → h 62, below) */
	color: #626469; /* live: UABB rgb(98,100,105) */
	text-align: left; /* live: UABB */
	background-color: transparent; /* live: OceanWP */
	border-radius: 3px; /* live: OceanWP Customizer */
}
.al-form--contact .gform_wrapper.gravity-theme .gfield select {
	height: auto; min-height: 40px; /* live: UABB height auto, OceanWP form select min-height 40px → h 40 */
	margin: 10px 0 15px; /* live: UABB */
	padding: 0 15px; /* live: OceanWP select */
	font-size: 15px; /* live: GF theme */
	line-height: 1.3; /* live: UABB */
	color: #626469; /* live: UABB */
	text-align: left; /* live: UABB */
	background-color: transparent; /* live: computed rgba(0,0,0,0) — OceanWP `form select` (0,0,2) beats its `select { #fff }` */
	border-radius: 3px; /* live: OceanWP Customizer */
	appearance: none; /* live: UABB (no native arrow; the chevron below sits at the container's right edge) */
}
.al-form--contact .gform_wrapper.gravity-theme .ginput_container_select { position: relative; /* live: UABB */ }
.al-form--contact .gform_wrapper.gravity-theme .ginput_container_select::after { /* live: UABB chevron (Font Awesome solid chevron-down, decorative; ours draws the bundled SVG as a mask, so it has no text) */
	content: "";
	position: absolute; top: 45%; right: .5em; z-index: 5; transform: translateY(-45%); pointer-events: none;
	font-size: .7em; line-height: 1; /* live: UABB */
	width: 1em; height: 1em; background-color: currentColor; /* the glyph's em box (10.5px), in the text colour */
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M233 407Q243 416 256 416Q269 416 279 407L471 215Q480 205 480 192Q480 179 471 169Q461 160 448 160Q435 160 425 169L256 339L87 169Q77 160 64 160Q51 160 41 169Q32 179 32 192Q32 205 41 215Z'/%3E%3C/svg%3E") 50% calc(50% - 1.5px) / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M233 407Q243 416 256 416Q269 416 279 407L471 215Q480 205 480 192Q480 179 471 169Q461 160 448 160Q435 160 425 169L256 339L87 169Q77 160 64 160Q51 160 41 169Q32 179 32 192Q32 205 41 215Z'/%3E%3C/svg%3E") 50% calc(50% - 1.5px) / contain no-repeat; /* plugin content/icons/chevron-down.svg, 1.5px up: the font drew this glyph about 1.5px above its em box (measured on screenshots) */
}
.al-form--contact .gform_wrapper.gravity-theme .gform_footer { justify-content: center; text-align: center; /* live: UABB */ }
.al-form--contact .gform_wrapper.gravity-theme .gform_footer .gform_button {
	display: block; /* live: computed display block (OceanWP input[type=submit]) */
	width: 60%; /* live: inline div.uabb-gf-style form div.gform_footer input[type=submit] { width: 60% } → 528 / 186 */
	margin: 0 0 8px; /* live: GF theme */
	padding: 14px 20px; /* live: OceanWP */
	font-family: inherit; font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: 1.2px; text-transform: uppercase; /* live: OceanWP 12px/12px 600, .1em, UABB uppercase */
	color: #fff; /* live: UABB */
	background-color: #bd2529; /* live: UABB rgb(189,37,41), 6.1:1 with white */
	border: 1px solid #fff; /* live: OceanWP Customizer */
	border-radius: 25px; /* live: UABB */
	transition: all .3s; /* live: UABB .3s */
}
.al-form--contact .gform_wrapper.gravity-theme .gform_footer .gform_button:hover { background-color: #0e686f; /* live: UABB hover rgb(14,104,111), 6.5:1 with white */ }
/* the AJAX confirmation replaces .gform_wrapper inside .al-form--contact; by class, as form ids differ per install */
.al-form--contact .gform_confirmation_message { margin-top: 10px; font-family: inherit; font-size: 15px; color: #3c763d; /* live: UABB #gform_confirmation_message_1 (5.45:1 on white) */ }

/* -- inquiry: PowerPack / OceanWP look (labels 16/28.8, inputs 15/27 #333 padding 8 and textarea 288 are GF theme + the OceanWP base in §1) -- */
.al-form--inquiry .gform_wrapper.gravity-theme .ginput_complex label { margin-bottom: 0; /* live: PowerPack .field_sublabel_below .ginput_complex label { margin-bottom: 0 } */ }
.al-form--inquiry .gform_wrapper.gravity-theme .gform_footer .gform_button {
	margin: 0 0 8px; /* live: GF theme */
	padding: 14px 20px; /* live: OceanWP */
	font-family: inherit; font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: 1.2px; text-transform: uppercase; /* live: OceanWP 12px/12px 600, .1em, uppercase */
	color: #fff; /* live: OceanWP button colour */
	background-color: #0b7bb0; /* live: OceanWP #13aff0 (2.49:1 with white); A15: #0b7bb0, 4.69:1 */
	border: 1px solid #fff; /* live: OceanWP Customizer */
	border-radius: 0; /* live: OceanWP */
}
.al-form--inquiry .gform_wrapper.gravity-theme .gform_footer .gform_button:hover { background-color: #06577e; /* live hover #0b7cac = #13aff0 × (.58, .71, .72) per channel; the same relation on #0b7bb0 → #06577e, 7.9:1 */ }

/* -- GF's small-screen rules (live: GF basic @media (max-width: 641px)) that the rules above would otherwise outrank -- */
@media only screen and (max-width: 641px) {
	.al-form--contact .gform_wrapper.gravity-theme .gfield textarea.textarea { line-height: 1.5; /* live: GF basic textarea 1.5 → 22.5px */ }
	/* live: GF basic input { line-height: 2 } also reached the submit, an <input> in GF 2.10 (h 54); GF 3.1's submit is a <button>, so it is set here */
	.al-form--contact .gform_wrapper.gravity-theme .gform_footer .gform_button,
	.al-form--inquiry .gform_wrapper.gravity-theme .gform_footer .gform_button { line-height: 2; }
}

/* ==== 23. Inquiry pages (/trial-site-consideration/, /resolution-inquiry/; live 2026-10-16, docs/parity/phase6/live-{1440,390}.txt, .superpowers/research/phase6/live.md §5) ==== */
/* The form's own look (fields, labels, submit) is §22; this section is the page frame: hero row + the 1060px form column. */
/* Hero row: 500px (live: [0,146.8,1440,500], pad 20) with the title block (p 90px + 20px margin + 40px column padding) centred in it. */
.page-inquiry .inquiry-hero { box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; min-height: 500px; /* live: 500 */ padding: 20px; /* live: pad 20 */ background-repeat: no-repeat; }
/* live: Montserrat 300 50px/90px, ls 5px, #fff, centred; box [170,321.8,1100,90] (RESOLUTION [170,331.8,…]: no 20px margin) */
.page-inquiry .inquiry-title { box-sizing: border-box; width: 100%; max-width: 1100px; /* live: 1100 */ margin: 0 auto 60px; /* live: p margin-bottom 20 + column padding-bottom 40 */ padding: 0; font-family: 'Montserrat', sans-serif; font-size: 50px; /* live: 50px */ font-weight: 300; /* live: 300 */ line-height: 90px; /* live: 90px */ letter-spacing: 5px; /* live: 5px */ color: #fff; text-align: center; }
.page-inquiry-resolution .inquiry-title { margin-bottom: 40px; } /* live (RESOLUTION): p margin-bottom 0 → 40px column padding only */
/* live: the brand word is a bold span with a teal 1px outline ×4 + white 10px glow */
.page-inquiry .inquiry-title strong { font-weight: 700; text-shadow: -1px 0 #75b6bc, 0 1px #75b6bc, 1px 0 #75b6bc, 0 -1px #75b6bc, 0 0 10px #fff; }
/* Form row: pad 20 (live: [0,646.8,1440,874.2]); the form column is 1060 wide, centred, 20px module margin (wrapper [190,686.8,1060,…]),
   and keeps the 56px live's invisible white h2.gform_title (36 + 20 margin) took above the first field. */
.page-inquiry .inquiry-form { padding: 20px; }
.page-inquiry .al-form--inquiry { box-sizing: border-box; width: calc(100% - 40px); max-width: 1060px; /* live: 1060 */ margin: 20px auto; /* live: module margin 20 */ padding-top: 56px; /* live: h2 36 + 20 */ }
/* ---- BB structure breakpoint ---- */
@media only screen and (max-width: 778px) {
	.page-inquiry .inquiry-title { margin-right: 40px; margin-left: 40px; width: auto; } /* live (390): title [40,·,310] */
}
/* ---- child-theme text/inset breakpoint ---- */
@media only screen and (max-width: 768px) {
	.page-inquiry .inquiry-hero { padding: 60px 0 20px; } /* live (390): hero rows pad 20/20/0/0; title block centred 40px lower than in the 20px frame (title [40,388.3] / RESOLUTION [40,375.8]) */
	.page-inquiry .inquiry-title { font-size: 25px; /* live (390): 25px */ line-height: 45px; /* live (390): 45px */ }
	.page-inquiry .inquiry-form { padding: 25px 0; } /* live (390): form wrapper [20,715.8,350] = row top + 45 */
}
