/* ==========================================================================
   HUMTAL MINING LOGISTICS — DESIGN SYSTEM
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. FONT FACES (self-hosted — no CDN dependency)
   -------------------------------------------------------------------------- */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/fraunces-variable.woff2") format("woff2");
}
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/fraunces-variable.woff2") format("woff2");
}
@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/public-sans-variable.woff2") format("woff2");
}
@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/public-sans-variable.woff2") format("woff2");
}
@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/public-sans-variable.woff2") format("woff2");
}
@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/public-sans-variable.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2");
}

/* --------------------------------------------------------------------------
   2. DESIGN TOKENS
   -------------------------------------------------------------------------- */
:root {
  /* ---- Color: brand (sampled from logo.jpeg) ---- */
  --color-primary:        #14263D; /* deep navy — sampled from wordmark */
  --color-primary-light:  #24405F; /* hover/active states, links on light bg */
  --color-primary-pale:   #E9EDF2; /* tinted section backgrounds, badges */
  --color-dark:            #0A1420; /* ink navy — footer, dark sections */

  --color-accent:          #AD7F35; /* bronze/gold — sampled from monogram */
  --color-accent-deep:     #8A652A; /* AA-safe accent for body text on light bg (4.85:1) */
  --color-accent-pale:     #F2E6D0; /* tinted badges, subtle highlight backgrounds */
  --color-accent-rgb:      173, 127, 53; /* same as --color-accent, as r,g,b for rgba() washes */

  --color-light:           #F7F5F0; /* warm off-white — page background */
  --color-surface:         #FFFFFF; /* cards, elevated panels */

  --color-neutral:         #5C574C; /* warm stone — secondary text */
  --color-neutral-light:   #E1DBCA; /* borders, rules, dividers */
  --color-neutral-pale:    #F0ECE1; /* alternate section background */

  /* ---- Color: semantic ---- */
  --color-text:            var(--color-primary);
  --color-text-muted:      var(--color-neutral);
  --color-text-on-dark:    var(--color-light);
  --color-text-on-dark-muted: #B9C2CC; /* 8.48:1 on --color-primary */
  --color-border:          var(--color-neutral-light);
  --color-link:            var(--color-primary);
  --color-link-hover:      var(--color-accent-deep);

  /*
    WCAG AA verification (body text, 4.5:1 minimum):
    navy        on light bg   14.02:1  PASS
    stone       on light bg    6.59:1  PASS
    primary-lt  on light bg    9.77:1  PASS
    accent-deep on light bg    4.85:1  PASS  (plain --color-accent is 3.29:1 — large text/icons/borders only)
    light       on navy bg    14.02:1  PASS
    light       on ink bg     17.00:1  PASS
    accent      on ink bg      5.17:1  PASS  (plain --color-accent on --color-primary is 4.27:1 — large text/UI only)
    text-muted-dark on navy    8.48:1  PASS
    Rule of thumb: --color-accent (raw) is for icons, rules, buttons ≥14px bold, and large headings only.
    Use --color-accent-deep any time bronze needs to carry body-copy-sized text on a light background.
  */

  /* ---- Typography: families ---- */
  --font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --font-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* ---- Typography: fluid scale (clamp: min, preferred, max) ---- */
  --fs-h1:      clamp(2.25rem, 1.95rem + 1.5vw, 3.5rem);    /* 36px  → 56px */
  --fs-h2:      clamp(1.75rem, 1.55rem + 1vw, 2.5rem);      /* 28px  → 40px */
  --fs-h3:      clamp(1.375rem, 1.25rem + 0.6vw, 1.75rem);  /* 22px  → 28px */
  --fs-h4:      clamp(1.125rem, 1.05rem + 0.35vw, 1.375rem);/* 18px  → 22px */
  --fs-h5:      clamp(1.0625rem, 1.02rem + 0.2vw, 1.1875rem);/* 17px → 19px */
  --fs-h6:      0.9375rem;                                   /* 15px, used as overline/small heading */
  --fs-body-lg: clamp(1.0625rem, 1.02rem + 0.2vw, 1.1875rem);/* 17px → 19px, intros/leads */
  --fs-body:    1rem;                                        /* 16px, base */
  --fs-small:   0.875rem;                                    /* 14px */
  --fs-caption: 0.8125rem;                                   /* 13px */
  --fs-eyebrow: 0.75rem;                                     /* 12px, uppercase label */

  /* ---- Typography: line-height & weight ---- */
  --lh-display: 1.15;
  --lh-heading: 1.25;
  --lh-body: 1.65;
  --lh-tight: 1.4;

  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  --tracking-eyebrow: 0.09em;
  --tracking-wide: 0.02em;

  /* ---- Spacing scale (8px base unit) ---- */
  --space-3xs: 0.25rem;  /* 4px */
  --space-2xs: 0.5rem;   /* 8px */
  --space-xs:  0.75rem;  /* 12px */
  --space-sm:  1rem;     /* 16px */
  --space-md:  1.5rem;   /* 24px */
  --space-lg:  2rem;     /* 32px */
  --space-xl:  3rem;     /* 48px */
  --space-2xl: 4.5rem;   /* 72px */
  --space-3xl: 6rem;     /* 96px */
  --space-4xl: 8rem;     /* 128px */

  /* fluid section padding — scales between tablet and desktop */
  --space-section: clamp(3.5rem, 3rem + 2.5vw, 6.5rem);

  /* ---- Radius (subtle — formal brand, not playful) ---- */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-pill: 999px;

  /* ---- Shadow (soft, understated) ---- */
  --shadow-sm: 0 1px 2px rgba(10, 20, 32, 0.06);
  --shadow-md: 0 4px 16px rgba(10, 20, 32, 0.08);
  --shadow-lg: 0 12px 32px rgba(10, 20, 32, 0.10);
  --shadow-focus: 0 0 0 3px rgba(173, 127, 53, 0.35);

  /* ---- Motion ---- */
  --duration-fast: 150ms;
  --duration-base: 250ms;
  --duration-slow: 450ms;
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);

  /* ---- Layout ---- */
  --container-max: 1280px;
  --container-padding: clamp(1.25rem, 4vw, 3rem);
  --header-height: 84px;

  /* ---- Z-index scale ---- */
  --z-header: 100;
  --z-mega-menu: 90;
  --z-subnav: 80;
  --z-modal: 200;
  --z-toast: 210;
}

/*
  BREAKPOINTS (reference — media queries require literal values, not custom properties)
  mobile:  0–575px    (default, mobile-first base styles)
  tablet:  576–991px  @media (min-width: 576px)
  desktop: 992–1439px @media (min-width: 992px)
  large:   1440px+    @media (min-width: 1440px)
*/

/* --------------------------------------------------------------------------
   3. RESET
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

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

body {
  min-height: 100vh;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  font-weight: var(--fw-regular);
  line-height: var(--lh-body);
  color: var(--color-text);
  background: var(--color-light);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  background: none;
  border: none;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
  padding: 0;
}

table {
  border-collapse: collapse;
  width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --------------------------------------------------------------------------
   4. BASE TYPOGRAPHY
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-display);
  color: var(--color-primary);
  text-wrap: balance;
}

h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); line-height: var(--lh-heading); }
h3 { font-size: var(--fs-h3); line-height: var(--lh-heading); }
h4 { font-size: var(--fs-h4); line-height: var(--lh-heading); font-weight: var(--fw-semibold); }
h5 { font-size: var(--fs-h5); line-height: var(--lh-heading); font-weight: var(--fw-semibold); }
h6 { font-size: var(--fs-h6); line-height: var(--lh-heading); font-weight: var(--fw-semibold); }

p {
  max-width: 68ch;
}

p.lead {
  font-size: var(--fs-body-lg);
  color: var(--color-text-muted);
}

small, .text-small { font-size: var(--fs-small); }
.text-caption { font-size: var(--fs-caption); color: var(--color-text-muted); }

.eyebrow {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-accent-deep);
}

.eyebrow.on-dark {
  color: var(--color-accent);
}

a.link {
  color: var(--color-link);
  border-bottom: 1px solid var(--color-neutral-light);
  transition: color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
}
a.link:hover {
  color: var(--color-link-hover);
  border-color: var(--color-accent-deep);
}

:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-sm);
}

/* --------------------------------------------------------------------------
   5. LAYOUT UTILITIES
   -------------------------------------------------------------------------- */
/* anchor targets (in-page sub-nav on Copper / Gold / Mining Partners) land
   below the sticky header + sticky sub-nav instead of underneath them */
[id] {
  scroll-margin-top: calc(var(--header-height) + var(--subnav-height, 0px) + var(--space-md));
}

.subnav {
  position: sticky;
  top: var(--header-height);
  z-index: var(--z-subnav);
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}

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

.container-narrow {
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.section {
  padding-block: var(--space-section);
}

.section-tight {
  padding-block: var(--space-xl);
}

.section-alt {
  background: var(--color-neutral-pale);
}

.section-dark {
  background: var(--color-dark);
  color: var(--color-text-on-dark);
}
.section-dark h1, .section-dark h2, .section-dark h3,
.section-dark h4, .section-dark h5, .section-dark h6 {
  color: var(--color-text-on-dark);
}
.section-dark p {
  color: var(--color-text-on-dark-muted);
}

.flex {
  display: flex;
}
.flex-col {
  display: flex;
  flex-direction: column;
}
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.flex-wrap { flex-wrap: wrap; }

.grid {
  display: grid;
  gap: var(--space-lg);
}
.grid-2 { grid-template-columns: repeat(1, 1fr); }
.grid-3 { grid-template-columns: repeat(1, 1fr); }
.grid-4 { grid-template-columns: repeat(1, 1fr); }

@media (min-width: 576px) {
  .grid-2 { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
}

.gap-xs { gap: var(--space-xs); }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }

.stack > * + * {
  margin-top: var(--space-md);
}
.stack-sm > * + * {
  margin-top: var(--space-sm);
}
.stack-lg > * + * {
  margin-top: var(--space-lg);
}

.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;
}

/* --------------------------------------------------------------------------
   6. COMPONENTS (base — buttons, badges, cards)
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  padding: 0.85em 1.6em;
  font-family: var(--font-body);
  font-size: var(--fs-small);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  white-space: nowrap;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  transition: background var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard),
              transform var(--duration-fast) var(--ease-standard);
}
.btn:active {
  transform: translateY(1px);
}

.btn-primary {
  background: var(--color-primary);
  color: var(--color-text-on-dark);
}
.btn-primary:hover {
  background: var(--color-primary-light);
}

.btn-accent {
  background: var(--color-accent);
  color: var(--color-dark);
}
.btn-accent:hover {
  background: var(--color-accent-deep);
  color: var(--color-text-on-dark);
}

.btn-outline {
  background: transparent;
  border-color: currentColor;
  color: var(--color-primary);
}
.btn-outline:hover {
  background: var(--color-primary);
  color: var(--color-text-on-dark);
}

.btn-outline.on-dark {
  color: var(--color-text-on-dark);
}
.btn-outline.on-dark:hover {
  background: var(--color-text-on-dark);
  color: var(--color-dark);
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 0.3em 0.75em;
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  letter-spacing: var(--tracking-wide);
  border-radius: var(--radius-pill);
  background: var(--color-accent-pale);
  color: var(--color-accent-deep);
}

.card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--duration-base) var(--ease-standard),
              transform var(--duration-base) var(--ease-standard);
}
.card:hover {
  box-shadow: var(--shadow-md);
}

.rule {
  border: none;
  border-top: 1px solid var(--color-border);
  margin-block: var(--space-lg);
}

.rule-accent {
  width: 56px;
  height: 2px;
  background: var(--color-accent);
  border: none;
}

/* --------------------------------------------------------------------------
   7. SKIP LINK
   -------------------------------------------------------------------------- */
.skip-link {
  position: absolute;
  top: -48px;
  left: var(--space-sm);
  z-index: var(--z-modal);
  background: var(--color-primary);
  color: var(--color-text-on-dark);
  padding: 0.75em 1.25em;
  border-radius: var(--radius-md);
  font-size: var(--fs-small);
  font-weight: var(--fw-semibold);
  transition: top var(--duration-fast) var(--ease-standard);
}
.skip-link:focus {
  top: var(--space-sm);
}

/* --------------------------------------------------------------------------
   8. HEADER
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-header);
  background: var(--color-light);
  border-bottom: 1px solid var(--color-border);
}

.site-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding-block: var(--space-md);
  transition: padding-block var(--duration-base) var(--ease-standard);
}

.site-header.is-scrolled .site-header__bar {
  padding-block: var(--space-xs);
}

.site-header__logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  line-height: 0;
}
.site-header__logo img {
  height: 42px;
  width: auto;
  transition: height var(--duration-base) var(--ease-standard);
}
.site-header.is-scrolled .site-header__logo img {
  height: 34px;
}

/* ---- desktop nav (mega menu) ---- */
.site-nav {
  display: none;
}

.site-nav__list {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

.site-nav__item {
  position: relative;
}

.site-nav__item > a,
.site-nav__trigger {
  display: flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.6em 0.1em;
  font-family: var(--font-body);
  font-size: var(--fs-small);
  font-weight: var(--fw-medium);
  color: var(--color-primary);
  white-space: nowrap;
}

.site-nav__trigger .chevron {
  width: 9px;
  height: 9px;
  transition: transform var(--duration-fast) var(--ease-standard);
}
.site-nav__trigger[aria-expanded="true"] .chevron {
  transform: rotate(180deg);
}

.site-nav__item > a:hover,
.site-nav__trigger:hover {
  color: var(--color-accent-deep);
}

.mega-panel {
  position: absolute;
  top: 100%;
  left: 0;
  padding-top: var(--space-sm); /* visual gap kept inside the hoverable area — no dead zone */
  width: max-content;
}

.mega-panel__inner {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: var(--space-sm);
  min-width: 240px;
  max-width: calc(100vw - 2 * var(--container-padding));
}

.mega-panel--wide .mega-panel__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md) var(--space-lg);
  min-width: 300px;
  padding: var(--space-md);
}

.mega-panel--right {
  left: auto;
  right: 0;
}

.mega-panel__group-label {
  padding: 0.35em 0.75em;
  display: block;
}

.mega-panel a {
  display: flex;
  align-items: center;
  gap: 0.6em;
  padding: 0.65em 0.75em;
  border-radius: var(--radius-sm);
  font-size: var(--fs-small);
  color: var(--color-primary);
  min-height: 44px;
}

.mega-panel a:hover,
.mega-panel a:focus-visible {
  background: var(--color-primary-pale);
  color: var(--color-accent-deep);
}

.mega-panel a .icon-wrap {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--color-accent);
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.site-header__cta {
  display: none;
}

/* ---- burger button ---- */
.site-header__burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.site-header__burger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--color-primary);
  transition: transform var(--duration-base) var(--ease-standard),
              opacity var(--duration-base) var(--ease-standard);
}
.site-header__burger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.site-header__burger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.site-header__burger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.site-header__cta-icon {
  display: inline-flex;
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}
.site-header__cta-icon svg {
  width: 100%;
  height: 100%;
}

@media (min-width: 768px) {
  .site-nav { display: block; }
  .site-header__burger { display: none; }
  .site-header__cta { display: inline-flex; }
  .site-nav__list { gap: var(--space-3xs); }
  .site-nav__item > a,
  .site-nav__trigger { font-size: var(--fs-caption); }
  .site-header__bar { gap: var(--space-sm); }

  /* CTA goes icon-only in the tight 768–1023 band; full label returns at 1024+ */
  .site-header__cta { padding: 0.7em; }
  .site-header__cta-text {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

@media (min-width: 1024px) {
  .site-nav__list { gap: var(--space-2xs); }
  .site-header__cta { padding: 0.85em 1.4em; font-size: var(--fs-caption); }
  .site-header__cta-text {
    position: static; width: auto; height: auto; padding: 0; margin: 0;
    overflow: visible; clip: auto; white-space: nowrap; border: 0;
  }
}

@media (min-width: 1280px) {
  .site-nav__list { gap: var(--space-md); }
  .site-nav__item > a,
  .site-nav__trigger { font-size: var(--fs-small); }
  .site-header__cta { padding: 0.85em 1.6em; font-size: var(--fs-small); }
  .site-header__bar { gap: var(--space-md); }
  .mega-panel--wide .mega-panel__inner {
    grid-template-columns: 1fr 1fr;
    min-width: 460px;
  }
}

/* --------------------------------------------------------------------------
   9. MOBILE NAV DRAWER
   -------------------------------------------------------------------------- */
.mobile-nav-scrim {
  position: fixed;
  inset: 0;
  background: rgba(10, 20, 32, 0.5);
  z-index: var(--z-header);
}

.mobile-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(88vw, 380px);
  background: var(--color-light);
  z-index: calc(var(--z-header) + 1);
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-lg);
}

.mobile-nav__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-sm) var(--space-md);
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
}
.mobile-nav__head img {
  height: 34px;
}
.mobile-nav__close {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: 1.1rem;
  color: var(--color-primary);
}

.mobile-nav__body {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-sm) var(--space-md) var(--space-lg);
}

.mobile-nav__list > li + li {
  border-top: 1px solid var(--color-border);
}

.mobile-nav__list > li > a {
  display: flex;
  align-items: center;
  min-height: 52px;
  font-size: var(--fs-body-lg);
  font-weight: var(--fw-medium);
  color: var(--color-primary);
}

.mobile-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 52px;
  font-size: var(--fs-body-lg);
  font-weight: var(--fw-medium);
  color: var(--color-primary);
}
.mobile-accordion__trigger .chevron {
  width: 11px;
  height: 11px;
  color: var(--color-accent);
  transition: transform var(--duration-base) var(--ease-standard);
  flex-shrink: 0;
}
.mobile-accordion__trigger[aria-expanded="true"] .chevron {
  transform: rotate(180deg);
}

.mobile-accordion__panel {
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
  transition: grid-template-rows var(--duration-base) var(--ease-standard),
              visibility 0s linear var(--duration-base);
}
.mobile-accordion__panel > ul {
  overflow: hidden;
}
.mobile-accordion[data-open="true"] .mobile-accordion__panel {
  grid-template-rows: 1fr;
  visibility: visible;
  transition: grid-template-rows var(--duration-base) var(--ease-standard),
              visibility 0s linear 0s;
}

.mobile-accordion__panel a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding-left: var(--space-md);
  font-size: var(--fs-body);
  color: var(--color-text-muted);
}
.mobile-accordion__panel a:hover,
.mobile-accordion__panel a:focus-visible {
  color: var(--color-accent-deep);
}

.mobile-nav__cta {
  width: 100%;
  justify-content: center;
  margin-top: var(--space-md);
}

@media (min-width: 768px) {
  .mobile-nav-scrim,
  .mobile-nav {
    display: none;
  }
}

/* --------------------------------------------------------------------------
   10. FOOTER
   -------------------------------------------------------------------------- */
.site-footer {
  background: var(--color-dark);
  color: var(--color-text-on-dark-muted);
}

.site-footer a {
  color: var(--color-text-on-dark-muted);
}
.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--color-accent);
}

.site-footer__top {
  padding-block: var(--space-2xl) var(--space-xl);
  display: grid;
  gap: var(--space-xl) var(--space-lg);
  grid-template-columns: 1fr;
}

.site-footer__mark {
  height: 40px;
  width: auto;
  margin-bottom: var(--space-sm);
}

.site-footer__wordmark {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-h5);
  color: var(--color-text-on-dark);
  letter-spacing: 0.04em;
}
.site-footer__wordmark span {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  font-weight: var(--fw-regular);
  letter-spacing: 0.14em;
  color: var(--color-accent);
  margin-top: 0.35em;
}

.site-footer__blurb {
  margin-top: var(--space-md);
  font-size: var(--fs-small);
  max-width: 34ch;
}

.site-footer__links h3 {
  margin-bottom: var(--space-sm);
}

.site-footer__links li + li {
  margin-top: var(--space-xs);
}

.site-footer__links a {
  font-size: var(--fs-small);
}

.site-footer__contact address {
  font-style: normal;
  font-size: var(--fs-small);
  margin-top: var(--space-sm);
  line-height: var(--lh-tight);
}

.site-footer__contact p {
  font-size: var(--fs-small);
  margin-top: var(--space-xs);
}

.site-footer__contact .text-caption {
  color: var(--color-text-on-dark-muted);
  opacity: 0.75;
}

.site-footer__bottom {
  border-top: 1px solid rgba(247, 245, 240, 0.12);
  padding-block: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  font-size: var(--fs-caption);
}

.site-footer__motto {
  font-family: var(--font-mono);
  letter-spacing: 0.04em;
  color: var(--color-accent);
}

@media (min-width: 576px) {
  .site-footer__top {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 992px) {
  .site-footer__top {
    grid-template-columns: 1.3fr 1fr 1fr 1fr 1.1fr;
  }
  .site-footer__bottom {
    flex-direction: row;
    justify-content: space-between;
  }
}

/* --------------------------------------------------------------------------
   11. HOMEPAGE — HERO
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--color-dark);
}

.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__media video,
.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
}
.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(10,20,32,0.95) 0%, rgba(10,20,32,0.82) 40%, rgba(10,20,32,0.62) 75%, rgba(10,20,32,0.5) 100%);
}

.hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-block: var(--space-3xl) var(--space-2xl);
  color: var(--color-text-on-dark);
}

.hero__eyebrow {
  color: var(--color-accent);
}

.hero__headline {
  color: var(--color-text-on-dark);
  font-size: clamp(2.25rem, 1.7rem + 3vw, 4.25rem);
  max-width: 16ch;
  margin-top: var(--space-sm);
}

.hero__lead {
  margin-top: var(--space-md);
  max-width: 52ch;
  font-size: var(--fs-body-lg);
  color: var(--color-text-on-dark-muted);
}

.hero__ctas {
  margin-top: var(--space-lg);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.hero__scroll {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: var(--space-lg);
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2xs);
  color: var(--color-text-on-dark-muted);
}
.hero__scroll span {
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}
.hero__scroll svg {
  width: 16px;
  height: 22px;
  animation: scroll-bob 2.2s var(--ease-standard) infinite;
}

@media (min-width: 768px) {
  .hero__content { padding-block: var(--space-3xl) var(--space-3xl); }
}

/* --------------------------------------------------------------------------
   12. HOMEPAGE — TRUST STRIP
   -------------------------------------------------------------------------- */
.trust-strip {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}

.trust-strip__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg) var(--space-md);
  padding-block: var(--space-lg);
}

.trust-item {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
.trust-item .icon-chip {
  flex-shrink: 0;
}
.trust-item span {
  font-size: var(--fs-small);
  font-weight: var(--fw-semibold);
  color: var(--color-primary);
  line-height: var(--lh-tight);
}

@media (min-width: 768px) {
  .trust-strip__grid { grid-template-columns: repeat(4, 1fr); gap: var(--space-md); }
}

/* --------------------------------------------------------------------------
   13. HOMEPAGE — SECTION HEAD (shared)
   -------------------------------------------------------------------------- */
.section-head-center {
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
}
.section-head-center .lead {
  margin-inline: auto;
}

/* --------------------------------------------------------------------------
   14. HOMEPAGE — ABOUT PREVIEW
   -------------------------------------------------------------------------- */
.about-preview {
  display: grid;
  gap: var(--space-lg);
  align-items: center;
}
.about-preview__media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4 / 5;
}
.about-preview__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 768px) {
  .about-preview {
    grid-template-columns: 0.85fr 1.15fr;
    gap: var(--space-2xl);
  }
  .about-preview__media { aspect-ratio: 3 / 4; }
}

/* --------------------------------------------------------------------------
   14b. ICON CHIP — shared treatment for every content-area icon on the
   homepage (Trust Strip, Commodities, Services, How We Work). One
   component, one visual language: soft bronze-wash circle, thin bronze
   ring, icon capped well below the ring so it never dominates the card.
   (Nav/mega-menu icons are a separate, smaller utility pattern and are
   intentionally not part of this component.)
   -------------------------------------------------------------------------- */
.icon-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  flex-shrink: 0;
  border-radius: 50%;
  background-color: rgba(var(--color-accent-rgb), 0.08);
  border: 1px solid rgba(var(--color-accent-rgb), 0.35);
  color: var(--color-accent-deep);
  opacity: 0;
  transform: scale(0.85);
  transition: transform var(--duration-base) var(--ease-standard),
              background-color var(--duration-base) var(--ease-standard),
              border-color var(--duration-base) var(--ease-standard),
              opacity var(--duration-slow) var(--ease-out);
  transition-delay: var(--reveal-delay, 0ms);
}
.icon-chip svg {
  width: 42%;
  height: 42%;
}

/* revealed once the ancestor card's own .reveal has fired */
.reveal.is-visible .icon-chip {
  opacity: 1;
  transform: scale(1);
}

/* hover/focus — the whole card is the interactive target on cards that are links */
a:hover > .icon-chip,
a:focus-visible > .icon-chip,
.icon-chip:hover {
  transform: scale(1.07);
  background-color: rgba(var(--color-accent-rgb), 0.16);
  border-color: var(--color-accent);
}

/* compact variant — Trust Strip sits icon-beside-text in a single line,
   so it takes the same visual language at a smaller, proportionate size */
.icon-chip--sm {
  width: 52px;
  height: 52px;
}
.icon-chip--sm svg {
  width: 44%;
  height: 44%;
}

@media (prefers-reduced-motion: reduce) {
  .icon-chip {
    opacity: 1;
    transform: none;
    transition: background-color var(--duration-base) var(--ease-standard),
                border-color var(--duration-base) var(--ease-standard);
  }
  a:hover > .icon-chip,
  a:focus-visible > .icon-chip,
  .icon-chip:hover {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   15. HOMEPAGE — COMMODITY CARDS
   -------------------------------------------------------------------------- */
.commodity-cards {
  display: grid;
  gap: var(--space-md);
}
@media (min-width: 768px) {
  .commodity-cards { grid-template-columns: 1fr 1fr; gap: var(--space-lg); }
}

.commodity-card {
  display: block;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  transition: transform var(--duration-base) var(--ease-standard),
              box-shadow var(--duration-base) var(--ease-standard),
              border-color var(--duration-base) var(--ease-standard);
}
.commodity-card:hover,
.commodity-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--color-accent);
}
.commodity-card h3 { margin-top: var(--space-md); }
.commodity-card p { margin-top: var(--space-2xs); color: var(--color-text-muted); font-size: var(--fs-small); max-width: none; }
.commodity-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  margin-top: var(--space-md);
  font-size: var(--fs-small);
  font-weight: var(--fw-semibold);
  color: var(--color-accent-deep);
}
.commodity-card__link svg { width: 14px; height: 14px; transition: transform var(--duration-fast) var(--ease-standard); }
.commodity-card:hover .commodity-card__link svg { transform: translateX(3px); }

/* --------------------------------------------------------------------------
   16. HOMEPAGE — SERVICES GRID
   -------------------------------------------------------------------------- */
.services-grid {
  display: grid;
  gap: var(--space-md);
}
@media (min-width: 576px) {
  .services-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
  .services-grid { grid-template-columns: repeat(4, 1fr); }
}

.service-card {
  display: block;
  padding: var(--space-md);
  border-radius: var(--radius-md);
  transition: background var(--duration-base) var(--ease-standard);
}
.service-card:hover,
.service-card:focus-visible {
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}
.service-card h3 { font-size: var(--fs-h4); margin-top: var(--space-md); }
.service-card p { margin-top: var(--space-3xs); font-size: var(--fs-small); color: var(--color-text-muted); max-width: none; }

/* --------------------------------------------------------------------------
   17. HOMEPAGE — MINE-TO-MARKET FLOW DIAGRAM
   -------------------------------------------------------------------------- */
.flow-diagram {
  display: grid;
  gap: 0;
  counter-reset: flow-step;
}

.flow-step {
  position: relative;
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: var(--space-md);
  padding-block: var(--space-md);
}
.flow-step:not(:last-child) {
  padding-bottom: var(--space-lg);
}
.flow-step__icon {
  position: relative;
  z-index: 1;
}
.flow-step:not(:last-child) .flow-step__icon::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: calc(100% + var(--space-lg) - 8px);
  background: var(--color-neutral-light);
}
.flow-step__label {
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-accent-deep);
}
.flow-step h3 { font-size: var(--fs-h4); margin-top: 0.2em; }
.flow-step p { margin-top: 0.3em; font-size: var(--fs-small); color: var(--color-text-muted); max-width: 40ch; }

@media (min-width: 992px) {
  .flow-diagram {
    grid-template-columns: repeat(6, 1fr);
    align-items: start;
  }
  .flow-step {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    padding-inline: var(--space-2xs);
  }
  .flow-step:not(:last-child) .flow-step__icon::after {
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
    width: calc(100% + var(--space-md) - 8px);
    height: 2px;
  }
  .flow-step p { max-width: 22ch; }
}

/* --------------------------------------------------------------------------
   18. HOMEPAGE — GLOBAL PRESENCE PREVIEW
   -------------------------------------------------------------------------- */
.global-preview {
  display: grid;
  gap: var(--space-2xl);
  align-items: center;
}
@media (min-width: 992px) {
  .global-preview { grid-template-columns: 1fr 1fr; }
}

.location-map {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.location-map img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4/3;
}
.location-map::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,20,32,0.15) 0%, rgba(10,20,32,0.75) 100%);
}
.location-map__pins {
  position: absolute;
  inset: 0;
  z-index: 1;
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--space-xs);
}
.location-pin {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
  font-size: var(--fs-small);
  font-weight: var(--fw-semibold);
  color: var(--color-text-on-dark);
}
.location-pin .dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--color-accent);
  border: 2px solid var(--color-text-on-dark);
  flex-shrink: 0;
}
.location-pin .role {
  font-weight: var(--fw-regular);
  color: var(--color-text-on-dark-muted);
}

/* --------------------------------------------------------------------------
   19. LEADERSHIP AVATAR — used on homepage preview and leadership.html
   -------------------------------------------------------------------------- */
.avatar-monogram {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--color-primary);
  border: 2px solid var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: 1.6rem;
  color: var(--color-accent);
  flex-shrink: 0;
}

.leadership-preview {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
  max-width: 720px;
  margin-inline: auto;
}
.leadership-preview blockquote {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  line-height: var(--lh-heading);
  color: var(--color-primary);
  font-weight: var(--fw-medium);
}
.leadership-preview blockquote::before { content: "\201C"; color: var(--color-accent); }
.leadership-preview blockquote::after { content: "\201D"; color: var(--color-accent); }
.leadership-preview cite {
  font-style: normal;
  font-size: var(--fs-small);
}
.leadership-preview cite strong { display: block; color: var(--color-primary); }
.leadership-preview cite span { color: var(--color-text-muted); }

/* --------------------------------------------------------------------------
   20. HOMEPAGE — CTA BANNER
   -------------------------------------------------------------------------- */
.cta-banner {
  background: var(--color-dark);
  color: var(--color-text-on-dark);
  text-align: center;
}
.cta-banner .eyebrow { color: var(--color-accent); }
.cta-banner h2 {
  color: var(--color-text-on-dark);
  max-width: 22ch;
  margin-inline: auto;
}
.cta-banner p {
  margin-top: var(--space-sm);
  color: var(--color-text-on-dark-muted);
  max-width: 56ch;
  margin-inline: auto;
}
.cta-banner .btn { margin-top: var(--space-lg); }

/* --------------------------------------------------------------------------
   21. HOMEPAGE — CONTACT STRIP
   -------------------------------------------------------------------------- */
.contact-strip {
  display: grid;
  gap: var(--space-lg);
  align-items: center;
  text-align: center;
}
.contact-strip__numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-lg);
}
.contact-strip__numbers a {
  font-family: var(--font-mono);
  font-size: var(--fs-body-lg);
  font-weight: var(--fw-medium);
  color: var(--color-primary);
}
.contact-strip__numbers a:hover { color: var(--color-accent-deep); }
.contact-strip__numbers .text-caption { display: block; margin-bottom: 0.2em; }

@media (min-width: 768px) {
  .contact-strip { text-align: left; grid-template-columns: 1fr auto; }
  .contact-strip__numbers { justify-content: flex-end; }
}

/* --------------------------------------------------------------------------
   22. INTERIOR PAGE TEMPLATE — banner, breadcrumb, prose body, closing CTA
   -------------------------------------------------------------------------- */
.page-banner {
  position: relative;
  min-height: 280px;
  height: 38vh;
  max-height: 420px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--color-dark);
}
.page-banner img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
}
.page-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(10,20,32,0.94) 0%, rgba(10,20,32,0.78) 45%, rgba(10,20,32,0.55) 100%);
}
.page-banner__content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-block: var(--space-lg) var(--space-lg);
  color: var(--color-text-on-dark);
}

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-text-on-dark-muted);
  margin-bottom: var(--space-sm);
}
.breadcrumb a { color: var(--color-text-on-dark-muted); }
.breadcrumb a:hover { color: var(--color-accent); }
.breadcrumb [aria-current="page"] { color: var(--color-accent); }

.page-banner__title {
  color: var(--color-text-on-dark);
  font-size: clamp(1.9rem, 1.6rem + 1.6vw, 3rem);
  max-width: 22ch;
}
.page-banner__tagline {
  margin-top: var(--space-xs);
  font-size: var(--fs-body-lg);
  color: var(--color-text-on-dark-muted);
  max-width: 60ch;
}

/* ---- prose body ---- */
.prose {
  max-width: 74ch;
}
.prose > * + * { margin-top: 1em; }
.prose > h2 { margin-top: 2.75em; }
.prose > h2:first-child { margin-top: 0; }
.prose > h3 { margin-top: 2em; }
.prose > h4 { margin-top: 1.75em; }
.prose p { max-width: 70ch; color: var(--color-text); }
.prose p.lead { color: var(--color-text-muted); }

.prose ul.bullet-list,
.prose ol.step-list {
  margin-top: 1.25em;
  display: flex;
  flex-direction: column;
  gap: 0.85em;
}
.prose ul.bullet-list li {
  position: relative;
  padding-left: 1.5em;
  max-width: 68ch;
}
.prose ul.bullet-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 7px;
  height: 7px;
  background: var(--color-accent);
  border-radius: 1px;
}
.prose ul.bullet-list li strong {
  color: var(--color-primary);
  font-weight: var(--fw-semibold);
}

.prose ol.step-list {
  counter-reset: step;
}
.prose ol.step-list li {
  position: relative;
  padding-left: 2.4em;
  max-width: 66ch;
}
.prose ol.step-list li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: -0.1em;
  width: 1.7em;
  height: 1.7em;
  border-radius: 50%;
  border: 1.5px solid var(--color-accent);
  color: var(--color-accent-deep);
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  display: flex;
  align-items: center;
  justify-content: center;
}
.prose ol.step-list li strong {
  display: block;
  color: var(--color-primary);
  font-weight: var(--fw-semibold);
  margin-bottom: 0.2em;
}

.prose .feature-block + .feature-block { margin-top: 1.5em; }
.prose .feature-block h3,
.prose .feature-block h4 {
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  color: var(--color-primary);
  margin-top: 0;
}
.prose .feature-block p { margin-top: 0.3em; color: var(--color-text-muted); }

.prose blockquote {
  margin-top: 1.5em;
  padding-left: var(--space-md);
  border-left: 3px solid var(--color-accent);
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: var(--fw-medium);
  line-height: var(--lh-heading);
  color: var(--color-primary);
}

.prose .core-values {
  margin-top: 1.25em;
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: var(--tracking-wide);
  color: var(--color-accent-deep);
}

.prose .flow-line {
  margin-top: 1.5em;
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
  line-height: 1.9;
}

.prose .callout {
  margin-top: 1.5em;
  padding: var(--space-md) var(--space-lg);
  background: var(--color-primary-pale);
  border-radius: var(--radius-md);
  font-family: var(--font-display);
  font-size: var(--fs-h5);
  color: var(--color-primary);
}

.prose hr.rule { margin-block: 2em; }

/* ---- anchor sections within prose (Copper / Gold / Mining Partners) ---- */
.prose section.anchor-section + section.anchor-section {
  margin-top: 3.5em;
  padding-top: 3em;
  border-top: 1px solid var(--color-border);
}

/* ---- closing CTA ---- */
.page-cta {
  text-align: center;
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-xl);
  margin-top: var(--space-2xl) !important;
}
.page-cta p {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: var(--tracking-wide);
  color: var(--color-accent-deep);
  text-transform: uppercase;
}
.page-cta .btn { margin-top: var(--space-md); }

@media (min-width: 768px) {
  .page-banner__title { max-width: 28ch; }
}
