/**
 * Shaw Tower — Design System
 * ============================================================================
 *
 * Scoped, isolated stylesheet for the redesign. Loads alongside the legacy CSS
 * but is fully sandboxed from it in both directions.
 */


/* ==========================================================================
   1. SCOPE ROOT + DESIGN TOKENS
   ========================================================================== */

.stds {

  /* ---- Primitives : brand --------------------------------------------- */

  --stds-c-terracotta:        #B96346;  /* peak 85.7% — Smart & Sustainable  */
  --stds-c-terracotta-dark:   #BD603E;  /* [UNCONFIRMED] present in desktop
                                           (Location 0.60%) AND mobile (0.04%);
                                           reads as a hover/active state       */
  --stds-c-terracotta-t1:     #DAA78C;  /* [UNCONFIRMED] table header tint     */
  --stds-c-terracotta-t2:     #EED6CA;  /* [UNCONFIRMED] table row stripe      */

  /* ---- Primitives : warm neutrals -------------------------------------- */

  --stds-c-paper:             #F8F6F3;  /* peak 95.9% — primary background     */
  --stds-c-white:             #FFFFFF;  /* peak 95.6% — table pages, cards     */
  --stds-c-sand:              #D1C0AB;  /* peak  9.5% — secondary surface      */
  --stds-c-sand-dark:         #D4BB9D;  /* [UNCONFIRMED] may be compression
                                           drift off --stds-c-sand             */
  --stds-c-black:             #000000;  /* Community body copy — not the same as
                                           --stds-c-ink; see
                                           block-specs/workspace-showcase.md §3 */
  --stds-c-ink:               #2E2E2D;  /* peak 20.0% — body text, dark bands  */
  --stds-c-grey-700:          #4E4E4E;  /* lead copy on a light surface        */
  --stds-c-ink-soft:          #333333;  /* [UNCONFIRMED] neutral grey, distinct
                                           from the warm ink; mobile 0.78%     */

  /* ---- Primitives : greys ---------------------------------------------- */

  --stds-c-grey-600:          #535251;  /* mid warm grey                       */
  --stds-c-ink-deep:          #2D2D2C;  /* table band; below --stds-c-ink  n=2  */
  --stds-c-grey-750:          #4D4D4D;  /* bus badge; below --stds-c-grey-700   */
  --stds-c-grey-150:          #EBEBEC;  /* zoom capsule; cool, between --stds-c-mist
                                           #EEEFF0 and --stds-c-grey-100 #E9E8E5 */
  --stds-c-grey-500:          #878785;  /* [UNCONFIRMED] muted meta text. JPEG
                                           spread #858583–#8C8C8C on one value;
                                           confirm exact hex with designer      */
  --stds-c-grey-300:          #CAC9C6;  /* warm divider / hairline             */
  --stds-c-grey-250:          #CBCACA;  /* cool border (Location screens)      */
  --stds-c-grey-200:          #DDDDDD;  /* light border                        */
  --stds-c-grey-100:          #E9E8E5;  /* subtle warm surface                 */
  --stds-c-mist:              #EEEFF0;  /* cool light grey — map canvas only,
                                           peak 9.6% across the 7 Location
                                           screens; not a general surface      */

  /* ---- Semantic : surfaces --------------------------------------------- */

  --stds-bg:                  var(--stds-c-paper);
  --stds-bg-alt:              var(--stds-c-white);
  --stds-bg-brand:            var(--stds-c-terracotta);
  --stds-bg-sand:             var(--stds-c-sand);
  --stds-bg-sand-tint:        rgb(209 192 171 / 0.15);
  --stds-bg-ink:              var(--stds-c-ink);
  --stds-bg-map:              var(--stds-c-mist);
  --stds-bg-subtle:           var(--stds-c-grey-100);
  --stds-bg-control:          var(--stds-c-grey-150);   /* map zoom capsule */

  /* ---- Semantic : foreground ------------------------------------------- */

  --stds-fg:                  var(--stds-c-ink);
  --stds-fg-muted:            var(--stds-c-grey-500);
  --stds-fg-soft:             var(--stds-c-grey-600);
  --stds-fg-brand:            var(--stds-c-terracotta);
  --stds-fg-on-brand:         var(--stds-c-white);
  --stds-fg-on-ink:           var(--stds-c-paper);

  /* ---- Semantic : borders ---------------------------------------------- */

  --stds-border:              var(--stds-c-grey-300);
  --stds-border-cool:         var(--stds-c-grey-250);
  --stds-border-light:        var(--stds-c-grey-200);

  /* ---- Semantic : interactive ------------------------------------------ */

  --stds-link:                var(--stds-c-terracotta);
  --stds-link-hover:          var(--stds-c-terracotta-dark);
  --stds-focus-ring:          var(--stds-c-ink);   /* [UNCONFIRMED] no focus
                                                      treatment in the XD      */

/* ---- Typography ------------------------------------------------------ */

  --stds-font-body:           classico-urw, Georgia, serif;
  --stds-font-display:        Baskerville, "Libre Baskerville", Georgia, serif;
  --stds-font-legend:         Optima, "Segoe UI", Candara, sans-serif;

  /* ---- Typography : weights -------------------------------------------- */

  --stds-fw-regular:          400;
  --stds-fw-medium:           500;
  --stds-fw-bold:             700;

/* ---- Fluid interpolation -------------------------------------------- */

  --stds-fluid: calc((100vw - 375px) / 1545);

  --stds-gutter: clamp(36px, calc(36px + 147 * var(--stds-fluid)), 183px);
  --stds-container-max: 1554px;

/* ---- Typography : type scale ---------------------------------------- */

  /* Display — hero numerals and single-word statements */
  --stds-text-display-1:  clamp(110px, calc(110px + 140 * var(--stds-fluid)), 250px); /* 0.44  n=2  "ICON"   */
  --stds-text-display-2:  clamp( 80px, calc( 80px + 140 * var(--stds-fluid)), 220px); /* 0.36  n=3  "LEGACY" */
  --stds-text-display-4:  clamp( 80px, calc( 80px + 120 * var(--stds-fluid)), 200px); /* 0.40  n=3  "PREMIER ADDRESS" / "FUTURE" */
  --stds-text-display-3:  clamp( 55px, calc( 55px +  65 * var(--stds-fluid)), 120px); /* 0.46  n=2  "IN THE SPOTLIGHT" */

  /* Headings */
  --stds-text-h1:         clamp( 28px, calc( 28px +  37 * var(--stds-fluid)),  65px); /* 0.43  n=13 */
  --stds-text-h2:         clamp( 24px, calc( 24px +  36 * var(--stds-fluid)),  60px); /* 0.40  n= 9 */
  --stds-text-h3:         clamp( 18px, calc( 18px +  22 * var(--stds-fluid)),  40px); /* 0.45  n=10  Classico, intro/lead */
  --stds-text-h4:         clamp( 16px, calc( 16px +  15 * var(--stds-fluid)),  31px); /* 0.52  n= 2 */
  --stds-text-h5:         clamp( 16px, calc( 16px +  12 * var(--stds-fluid)),  28px); /* 0.57  n=69  card/article title */

  /* UI + labels */
  --stds-text-eyebrow:    clamp( 12px, calc( 12px +  10 * var(--stds-fluid)),  22px); /* 0.55  n=14  uppercase */
  --stds-text-eyebrow-sm: clamp( 11px, calc( 11px +   7 * var(--stds-fluid)),  18px); /* 0.61  n=44  section eyebrow */
  --stds-text-label:      clamp( 14px, calc( 14px +   8 * var(--stds-fluid)),  22px); /* 0.64  n=11 */
  --stds-text-nav:        clamp( 15px, calc( 15px +   7 * var(--stds-fluid)),  22px); /* 0.68  n=10 */
  --stds-text-button:     clamp( 15px, calc( 15px +   5 * var(--stds-fluid)),  20px); /* 0.75  n= 8 */

  /* Body */
  --stds-text-body:       clamp( 12px, calc( 12px +   6 * var(--stds-fluid)),  18px); /* 0.67  n=88  DOMINANT */
  --stds-text-meta:       clamp( 10px, calc( 10px +   6 * var(--stds-fluid)),  16px); /* 0.63  n=41  dates, italic */
  --stds-text-body-sm:    clamp( 12px, calc( 12px +   3 * var(--stds-fluid)),  15px); /* 0.80  n=15  fine print */
  --stds-text-stat:       clamp( 11px, calc( 11px +   4 * var(--stds-fluid)),  15px); /* 0.73  n=13  stat numerals */
  --stds-text-caption:    clamp(  7px, calc(  7px +   7 * var(--stds-fluid)),  14px); /* 0.50  n= 2 */
  --stds-text-nano:       clamp(  8px, calc(  8px +   4 * var(--stds-fluid)),  12px); /* 0.67  n= 3 */
  --stds-text-legend:     clamp( 10px, calc( 10px +   2 * var(--stds-fluid)),  12px); /* 0.83  n= 2  legend + footnote */

  --stds-text-form-heading:  clamp( 24px, calc( 24px + 44 * var(--stds-fluid)),  68px); /* n=1 */
  --stds-text-contact-label: clamp( 12px, calc( 12px + 22 * var(--stds-fluid)),  34px); /* n=2 */
  --stds-text-contact-phone: clamp( 18px, calc( 18px + 32 * var(--stds-fluid)),  50px); /* n=1 */
  --stds-text-form-label:    clamp( 11px, calc( 11px +  7 * var(--stds-fluid)),  18px); /* n=5 */
  --stds-text-form-legal:    clamp(  8px, calc(  8px +  7 * var(--stds-fluid)),  15px); /* n=2 */
  --stds-text-form-submit:   clamp( 12px, calc( 12px + 10 * var(--stds-fluid)),  22px); /* n=1 */

/* ---- Typography : line heights (px) ---------------------------------- */

  --stds-lh-display-1:    clamp(110px, calc(110px + 140 * var(--stds-fluid)), 250px); /* [derived] 1.00 */
  --stds-lh-display-2:    clamp( 95px, calc( 95px + 145 * var(--stds-fluid)), 240px); /* 1.19 -> 1.09 */
  --stds-lh-display-3:    clamp( 50px, calc( 50px +  60 * var(--stds-fluid)), 110px); /* 0.91 -> 0.92, tracks the 55px mobile size */
  --stds-lh-display-4:    clamp( 87px, calc( 87px + 131 * var(--stds-fluid)), 218px); /* [derived] 1.09, mirrors display-2 */
  --stds-lh-h1:           clamp( 30px, calc( 30px +  40 * var(--stds-fluid)),  70px); /* 1.07 -> 1.08  (6 samples) */
  --stds-lh-h2:           clamp( 29px, calc( 29px +  36 * var(--stds-fluid)),  65px); /* 1.20 -> 1.08 */
  --stds-lh-h3:           clamp( 24px, calc( 24px +  28 * var(--stds-fluid)),  52px); /* 1.33 -> 1.30  (10 samples) */
  --stds-lh-h4:           clamp( 20px, calc( 20px +  11 * var(--stds-fluid)),  31px); /* [derived] */
  --stds-lh-h5:           clamp( 20px, calc( 20px +  12 * var(--stds-fluid)),  32px); /* 1.25 -> 1.14  (57 samples) */
  --stds-lh-eyebrow:      clamp( 16px, calc( 16px +  14 * var(--stds-fluid)),  30px); /* [derived] */
  --stds-lh-eyebrow-sm:   clamp( 16px, calc( 16px +  10 * var(--stds-fluid)),  26px); /* [derived] 1.45 -> 1.44 */
  --stds-lh-label:        clamp( 18px, calc( 18px +  10 * var(--stds-fluid)),  28px); /* [derived] */
  --stds-lh-nav:          clamp( 20px, calc( 20px +  10 * var(--stds-fluid)),  30px); /* [derived] */
  --stds-lh-button:       28px;                                                       /* 28 at BOTH ends — measured, not derived */
  --stds-lh-body:         clamp( 22px, calc( 22px +   6 * var(--stds-fluid)),  28px); /* 1.83 -> 1.56  (111 samples) */
  --stds-lh-meta:         clamp( 16px, calc( 16px +  10 * var(--stds-fluid)),  26px); /* [derived] */
  --stds-lh-body-sm:      clamp( 18px, calc( 18px +   0 * var(--stds-fluid)),  18px); /* 1.50 -> 1.20  (9 samples) */
  --stds-lh-body-sm-loose: clamp(18px, calc( 18px +   7 * var(--stds-fluid)),  25px); /* 1.50 -> 1.67 */
  --stds-lh-legend:       clamp( 14px, calc( 14px +   6 * var(--stds-fluid)),  20px); /* 1.40 -> 1.67 */
  --stds-lh-note:         clamp( 12px, calc( 12px +   3 * var(--stds-fluid)),  15px); /* 1.20 -> 1.25 */
  --stds-lh-body-loose:   clamp( 22px, calc( 22px +   8 * var(--stds-fluid)),  30px); /* 1.83 -> 1.67  (2 samples) */

  /* Contact-form roles — see the sizes above. */
  --stds-lh-form-heading:  clamp( 24.91px, calc( 24.91px + 65.09 * var(--stds-fluid)),  90px);
  --stds-lh-contact-label: clamp( 24.91px, calc( 24.91px + 30.09 * var(--stds-fluid)),  55px);
  --stds-lh-contact-addr:  clamp( 17px,    calc( 17px    + 13    * var(--stds-fluid)),  30px);
  --stds-lh-contact-phone: clamp( 15px,    calc( 15px    + 15    * var(--stds-fluid)),  30px);
  --stds-lh-form-legal:    clamp( 10px,    calc( 10px    +  8    * var(--stds-fluid)),  18px);
  --stds-lh-form-submit:   clamp( 14.4px,  calc( 14.4px  + 13.2  * var(--stds-fluid)),  27.6px);
  --stds-lh-stat:         clamp( 15px, calc( 15px +   5 * var(--stds-fluid)),  20px); /* [derived] */
  --stds-lh-caption:      clamp( 10px, calc( 10px +   8 * var(--stds-fluid)),  18px); /* [derived] */
  --stds-lh-nano:         clamp( 11px, calc( 11px +   5 * var(--stds-fluid)),  16px); /* [derived] */

/* ---- Typography : letter spacing (px) -------------------------------- */

  --stds-ls-display-1:    clamp(-5.00px,  calc(-2.75px + -2.25 * var(--stds-fluid)), -2.75px); /* -20 -> -25 /1000em */
  --stds-ls-display-2:    clamp(-4.40px,  calc(-2.00px + -2.40 * var(--stds-fluid)), -2.00px);
  --stds-ls-display-3:    clamp(-1.375px, calc(-1.375px + 1.375 * var(--stds-fluid)), 0.00px); /* -25 -> 0 /1000em at 55px */
  --stds-ls-display-4:    clamp(-4.00px,  calc(-1.60px + -2.40 * var(--stds-fluid)), -1.60px); /* -20 /1000em both ends */
  --stds-ls-eyebrow:      clamp( 0.72px,  calc( 0.72px +  1.48 * var(--stds-fluid)),  2.20px); /* 100 -> 60 /1000em */
  --stds-ls-eyebrow-sm:   clamp( 1.10px,  calc( 1.10px +  0.70 * var(--stds-fluid)),  1.80px); /* 100 /1000em both */
  --stds-ls-label:        clamp( 0.00px,  calc( 0.70px + -0.70 * var(--stds-fluid)),  0.70px);
  --stds-ls-nav:          clamp( 0.22px,  calc( 0.75px + -0.53 * var(--stds-fluid)),  0.75px);
  --stds-ls-button:       clamp( 0.75px,  calc( 0.75px +  0.25 * var(--stds-fluid)),  1.00px); /* 50 /1000em both */
  --stds-ls-stat:         clamp(-0.30px,  calc(-0.22px + -0.08 * var(--stds-fluid)), -0.22px);
  --stds-ls-none:         normal;
  --stds-ls-form-label:   0.03em;
  --stds-ls-form-submit:  0.05em;

/* ---- Spacing --------------------------------------------------------- */

  --stds-space-xs:    clamp(10px, calc(10px +   5 * var(--stds-fluid)),  15px); /* m252 d206  label->value */
  --stds-space-sm:    clamp(20px, calc(20px +  10 * var(--stds-fluid)),  30px); /* m80  d82   icon->text   */
  --stds-space-md:    clamp(25px, calc(25px +  15 * var(--stds-fluid)),  40px); /* m318 d62   paragraphs   */
  --stds-space-lg:    clamp(30px, calc(30px +  20 * var(--stds-fluid)),  50px); /* m85  d228  heading->body*/
  --stds-space-xl:    clamp(45px, calc(45px +  20 * var(--stds-fluid)),  65px); /* m196 d262  element group*/
  --stds-space-2xl:   clamp(60px, calc(60px +  20 * var(--stds-fluid)),  80px); /* m68  d40   sub-section  */

  --stds-section-y:   clamp(70px, calc(70px + 110 * var(--stds-fluid)), 180px);

  /* 1.5x the default, for the "Large" editor preset. */
  --stds-section-y-lg: clamp(105px, calc(105px + 165 * var(--stds-fluid)), 270px);

  --stds-gap-grid:    clamp(10px, calc(10px +  20 * var(--stds-fluid)),  30px);

  /* ======================================================================
     ACCESSIBILITY NOTE — read before using terracotta as a text background
     ====================================================================== */

  --stds-c-terracotta-a11y:   #B25E42;  /* [PROPOSED — not in XD] 4.59:1 vs #fff */

  /* ======================================================================
     ACCESSIBILITY NOTE — mobile body size
     ====================================================================== */
}


/* ==========================================================================
   2. NEUTRALISE — stop legacy custom.css from reaching into this scope
   --------------------------------------------------------------------------
   Each rule below counters a specific bare-tag declaration. Do not delete
   without checking the corresponding legacy line still exists.

   Legacy source                                    Countered by
   custom.css:21   * { box-sizing }                 2.1
   custom.css:24   body { font-family/size/height } 2.2
   custom.css:34   h1-h6 { font-family }            2.3
   custom.css:44   h1-h6 { margin, font-weight }    2.3
   custom.css:55   p { margin }                     2.4
   custom.css:77   p:not(:last-child) { margin-bot }2.4  (0-1-1 tie, we load last)
   custom.css:80   img { max-width, height }        2.5
   custom.css:131  a { color }                      2.6
   custom.css:308  a { text-decoration }            2.6
   custom.css:303  option { text-transform }        2.7
   custom.css:2554 textarea { ...9 props }          2.8
   custom.css:2591 ::placeholder { color }          2.9
   (custom.css re-declares p:not(:last-child) and textarea inside 4 media
    queries; media queries add no specificity, so source order still wins.)
   ========================================================================== */

/* 2.1 — box model */
.stds,
.stds *,
.stds *::before,
.stds *::after {
  box-sizing: border-box;
}

/* 2.2 — terminate inherited typography from body{} */
.stds {
  font-family: var(--stds-font-body);
  font-size: var(--stds-text-body);
  line-height: var(--stds-lh-body);
  font-weight: var(--stds-fw-regular);
  letter-spacing: var(--stds-ls-none);
  color: var(--stds-fg);
  background-color: transparent;
}

/* 2.3 — headings */
.stds :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--stds-font-display);
  font-size: inherit;
  font-weight: var(--stds-fw-regular);
  line-height: inherit;
  letter-spacing: inherit;
  margin: 0;
}

/* 2.4 — paragraphs: kills both p{margin:0} and p:not(:last-child){margin-bottom} */
.stds p {
  margin: 0;
}

/* 2.5 — images */
.stds img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 2.6 — links: legacy forces #b96346 + no underline on every <a> */
.stds a {
  color: inherit;
  text-decoration: none;
}

/* 2.7 — legacy uppercases every <option> */
.stds option {
  text-transform: none;
}

/* 2.8 — form controls */
.stds :where(input, select, textarea, button) {
  font: inherit;
  color: inherit;
  margin: 0;
}

.stds textarea {
  background: none;
  border-color: var(--stds-border);
  padding: 0;
  max-height: none;
  resize: vertical;
  width: auto;
  outline: none;
}

/* 2.9 — legacy forces black placeholders */
.stds ::placeholder {
  color: var(--stds-fg-muted);
  opacity: 1;
}

/* 2.10 — long-word guard */
.stds {
  overflow-wrap: break-word;
}


/* ==========================================================================
   3. SURFACE CONTEXTS
   ========================================================================== */

.stds-surface--paper {
  background-color: var(--stds-bg);
  color: var(--stds-fg);
}

.stds-surface--white {
  background-color: var(--stds-bg-alt);
  color: var(--stds-fg);
}

.stds-surface--sand {
  background-color: var(--stds-bg-sand);
  color: var(--stds-fg);
}

/* Translucent, so it tints whatever is behind rather than replacing it. */
.stds-surface--sand-tint {
  background-color: var(--stds-bg-sand-tint);
  color: var(--stds-fg);
}

.stds-surface--brand {
  background-color: var(--stds-bg-brand);
  color: var(--stds-fg-on-brand);
  --stds-fg: var(--stds-fg-on-brand);
  --stds-fg-muted: var(--stds-c-sand);
  --stds-link: var(--stds-c-white);
  --stds-link-hover: var(--stds-c-sand);
  --stds-border: rgba(255, 255, 255, 0.32);
}

.stds-surface--ink {
  background-color: var(--stds-bg-ink);
  color: var(--stds-fg-on-ink);
  --stds-fg: var(--stds-fg-on-ink);
  --stds-fg-muted: var(--stds-c-grey-300);
  --stds-link: var(--stds-c-sand);
  --stds-link-hover: var(--stds-c-white);
  --stds-border: rgba(255, 255, 255, 0.24);
}

/* Location map canvas — the only place --stds-c-mist appears in the design. */
.stds-surface--map {
  background-color: var(--stds-bg-map);
  color: var(--stds-fg);
  --stds-border: var(--stds-border-cool);
}


/* ==========================================================================
   4. BASE ELEMENT DEFAULTS
   Minimal, colour-only. Layout/typography scale comes in a later pass.
   ========================================================================== */

.stds a:where(:any-link) {
  color: var(--stds-link);
  transition: color 0.2s ease;
}

.stds a:where(:any-link):hover,
.stds a:where(:any-link):focus-visible {
  color: var(--stds-link-hover);
}

.stds :focus-visible {
  outline: 2px solid var(--stds-focus-ring);
  outline-offset: 2px;
}

.stds hr {
  border: 0;
  border-top: 1px solid var(--stds-border);
  margin: 0;
}


/* ==========================================================================
   5. TYPE ROLES
   ========================================================================== */

.stds-t--display-1,
.stds-t--display-2,
.stds-t--display-3,
.stds-t--display-4,
.stds-t--h1,
.stds-t--h2,
.stds-t--h4,
.stds-t--h5 {
  font-family: var(--stds-font-display);
  font-weight: var(--stds-fw-regular);
}

.stds-t--display-1 { font-size: var(--stds-text-display-1); line-height: var(--stds-lh-display-1); letter-spacing: var(--stds-ls-display-1); }
.stds-t--display-2 { font-size: var(--stds-text-display-2); line-height: var(--stds-lh-display-2); letter-spacing: var(--stds-ls-display-2); }
.stds-t--display-3 { font-size: var(--stds-text-display-3); line-height: var(--stds-lh-display-3); letter-spacing: var(--stds-ls-display-3); text-transform: uppercase; }
.stds-t--display-4 { font-size: var(--stds-text-display-4); line-height: var(--stds-lh-display-4); letter-spacing: var(--stds-ls-display-4); }

.stds-t--h1 { font-size: var(--stds-text-h1); line-height: var(--stds-lh-h1); letter-spacing: var(--stds-ls-none); }
.stds-t--h2 { font-size: var(--stds-text-h2); line-height: var(--stds-lh-h2); letter-spacing: var(--stds-ls-none); }
.stds-t--h4 { font-size: var(--stds-text-h4); line-height: var(--stds-lh-h4); letter-spacing: var(--stds-ls-none); }
.stds-t--h5 { font-size: var(--stds-text-h5); line-height: var(--stds-lh-h5); letter-spacing: var(--stds-ls-none); }

/* h3 is the intro/lead paragraph style — Classico, not Baskerville */
.stds-t--h3 {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-h3);
  line-height: var(--stds-lh-h3);
  letter-spacing: var(--stds-ls-none);
}

.stds-t--eyebrow {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-medium);
  font-size: var(--stds-text-eyebrow);
  line-height: var(--stds-lh-eyebrow);
  letter-spacing: var(--stds-ls-eyebrow);
  text-transform: uppercase;
}

.stds-t--legend {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-legend);
  line-height: var(--stds-lh-legend);
  letter-spacing: var(--stds-ls-none);
}

.stds-t--note {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-legend);   /* same ramp, looser leading */
  line-height: var(--stds-lh-note);
  letter-spacing: var(--stds-ls-none);
}

.stds-t--eyebrow-sm {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-eyebrow-sm);
  line-height: var(--stds-lh-eyebrow-sm);
  letter-spacing: var(--stds-ls-eyebrow-sm);
  text-transform: uppercase;
}

.stds-t--label {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-medium);
  font-size: var(--stds-text-label);
  line-height: var(--stds-lh-label);
  letter-spacing: var(--stds-ls-label);
}

.stds-t--nav {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-nav);
  line-height: var(--stds-lh-nav);
  letter-spacing: var(--stds-ls-nav);
}

.stds-t--button {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-bold);
  font-size: var(--stds-text-button);
  line-height: var(--stds-lh-button);
  letter-spacing: var(--stds-ls-button);
  text-transform: uppercase;
}

.stds-t--body {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-body);
  line-height: var(--stds-lh-body);
  letter-spacing: var(--stds-ls-none);
}

.stds-t--meta {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-medium);
  font-style: italic;
  font-size: var(--stds-text-meta);
  line-height: var(--stds-lh-meta);
  letter-spacing: var(--stds-ls-none);
}

.stds-t--body-sm {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-body-sm);
  line-height: var(--stds-lh-body-sm);
  letter-spacing: var(--stds-ls-none);
}

.stds-t--stat {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-medium);
  font-size: var(--stds-text-stat);
  line-height: var(--stds-lh-stat);
  letter-spacing: var(--stds-ls-stat);
}

.stds-t--caption {
  font-family: var(--stds-font-body);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-caption);
  line-height: var(--stds-lh-caption);
  letter-spacing: var(--stds-ls-none);
}

/* Small legends only — the one place the design still uses Optima */
.stds-t--nano {
  font-family: var(--stds-font-legend);
  font-weight: var(--stds-fw-regular);
  font-size: var(--stds-text-nano);
  line-height: var(--stds-lh-nano);
  letter-spacing: var(--stds-ls-none);
}


/* ==========================================================================
   6. CONTAINER
   ========================================================================== */

.stds-container {
  width: calc(100% - 2 * var(--stds-gutter));
  max-width: var(--stds-container-max);
  margin-inline: auto;
}


/* ==========================================================================
   7. SPACING UTILITIES
   ========================================================================== */

.stds-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}


.stds-scroll-locked,
.stds-scroll-locked body {
  overflow: hidden;
}


.stds-section {
  padding-block-start: var(--stds-section-pt, var(--stds-section-y));
  padding-block-end: var(--stds-section-pb, var(--stds-section-y));
  position: relative;
}

@media (max-width: 1023.98px) {
  .stds-section {
    padding-block-start: var(--stds-section-pt-m, var(--stds-section-pt, var(--stds-section-y)));
    padding-block-end: var(--stds-section-pb-m, var(--stds-section-pb, var(--stds-section-y)));
  }
}

.stds-section + .stds-section:not(.stds-surface--sand-tint)::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset-block-start: -1px;
  inset-inline: 0;
  height: 2px;
  background-color: inherit;
}

/* Vertical stacking inside a block.
   Uses the owl selector rather than per-element margins because fields are
   conditionally rendered — with `margin-block-end` on each child, an empty
   eyebrow or heading leaves stray space behind. `* + *` only inserts space
   between elements that actually rendered.

   Override per block or per nesting level:  --stds-flow-space: var(--stds-space-xl);

   The class is DOUBLED deliberately. `.stds-flow > * + *` is specificity
   0-1-0, which loses to this file's own reset rules — `.stds p { margin: 0 }`
   and (before the :where() fix) the heading rule. Doubling gives 0-2-0
   so the flow wins, and it works whether `.stds-flow` sits on the `.stds`
   element itself or on a descendant. Do not "simplify" it back to one class. */
.stds-flow.stds-flow > * + * {
  margin-block-start: var(--stds-flow-space, var(--stds-space-lg));
}
