/* ---------------------------------------------------------------
   Adeia — the Approach page

   Layout for approach.html only. Every selector is scoped under
   .page-approach, which sits on the page's <body>, so nothing here can
   reach another page's markup. Colour, type, spacing and easing come
   from tokens.css; .display, .h2, .h3, .lead, .body, .label, .mono,
   .quiet, .plus-link and .visually-hidden come from base.css and are
   not restated.

   The masthead and the footer are the exceptions. Their rules live in
   styles/hero.css and styles/closing.css, which this page does not
   load, so the parts of them this page needs are restated here under
   the page scope rather than pulled in wholesale.

   Contrast, measured against the ground each element sits on:
     hero        --orchid on --ink        6.40:1   display heading
                 --mist on --ink         11.90:1   lead copy
                 --on-ink-quiet on --ink  5.77:1   10px eyebrow
     money       --on-bone on --bone     11.79:1   headings and copy
                 --on-bone-quiet          6.04:1   secondary copy
     refusal     --on-paper on --paper   15.35:1   headings and copy
                 --on-paper-quiet         6.69:1   secondary copy
     loudness    --mist on --ink         11.90:1   headings
                 --on-ink-quiet           5.77:1   note copy
     footer      --orchid on --forest     5.61:1   links on hover
                 --on-forest             11.96:1   the disclosure note
   Every one clears WCAG AA at the size it is used.

   This page has no colour-coded states, so nothing here depends on hue
   to be understood. The two accent rules — on the callout and on the
   footer disclosure — mark emphasis that the surrounding type already
   carries.
   --------------------------------------------------------------- */

/* =====================================================================
   Masthead — restated, scoped. See the note at the top of this file.
   ===================================================================== */

.page-approach .masthead {
  --rule: var(--rule-on-ink);

  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gap);
  padding: 1.375rem var(--pad-x);
  color: var(--mist);
}

/* An ink scrim under the bar. Invisible over the hero; over the pale
   grounds further down it is what keeps the wordmark above 4.5:1. */
.page-approach .masthead::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    to bottom,
    rgba(34, 34, 34, 0.92),
    rgba(34, 34, 34, 0.62) 55%,
    rgba(34, 34, 34, 0)
  );
  pointer-events: none;
}

.page-approach .masthead__mark {
  font-size: var(--t-body);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1;
  text-decoration: none;
  color: var(--mist);
}

/* A <button> needs its own reset before .plus-link's flexbox applies. */
.page-approach .masthead__menu {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--sans);
  color: var(--mist);
  cursor: pointer;
}

.page-approach .masthead__menu-label {
  font-size: var(--t-small);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

/* =====================================================================
   Shared marks
   ===================================================================== */

/* An identifier or an error string quoted inside a sentence. */
.page-approach .app-code {
  font-family: var(--mono);
  font-size: 0.875em;
  letter-spacing: -0.01em;
  word-break: break-word;
  padding: 0.1em 0.32em;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: rgba(34, 34, 34, 0.04);
}

.page-approach .ground--ink .app-code,
.page-approach .ground--forest .app-code {
  background: rgba(237, 223, 238, 0.08);
}

/* =====================================================================
   Hero — ink
   ===================================================================== */

.page-approach .app-hero {
  display: flex;
  align-items: flex-end;
  min-height: min(72svh, 40rem);
  padding-block: clamp(8rem, 18vh, 12rem) clamp(3rem, 7vw, 5.5rem);
}

.page-approach .app-hero__inner {
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2rem);
}

.page-approach .app-hero__eyebrow {
  margin: 0;
}

.page-approach .app-hero__title {
  margin: 0;
  max-width: 16ch;
  color: var(--orchid);
}

.page-approach .app-hero__body {
  margin: 0;
  max-width: 58ch;
}

/* =====================================================================
   Section scaffold — shared by all four parts
   ===================================================================== */

.page-approach .app-part__head {
  display: grid;
  gap: clamp(0.75rem, 1.5vw, 1.25rem);
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}

.page-approach .app-part__head > * {
  margin: 0;
}

.page-approach .app-part__title {
  max-width: 20ch;
}

.page-approach .app-part__intro {
  max-width: 60ch;
  color: var(--quiet);
}

.page-approach .app-part__lead {
  margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
  max-width: 54ch;
}

.page-approach .app-part__copy {
  margin: 0 0 clamp(1rem, 2vw, 1.5rem);
  max-width: 64ch;
}

.page-approach .app-part__copy:last-child {
  margin-bottom: 0;
}

.page-approach .app-part__more {
  margin: clamp(2rem, 4vw, 3rem) 0 0;
}

/* =====================================================================
   Callout — one claim per page that is a warning rather than a note
   ===================================================================== */

.page-approach .app-callout {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
  border-left: 1px solid var(--orchid);
  padding-left: clamp(0.875rem, 2vw, 1.5rem);
}

.page-approach .app-callout__title {
  margin: 0 0 0.625rem;
}

.page-approach .app-callout__copy {
  margin: 0;
  max-width: 60ch;
}

/* =====================================================================
   Note grid
   ===================================================================== */

.page-approach .app-notes {
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.5rem);
}

@media (min-width: 54rem) {
  .page-approach .app-notes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(2rem, 4vw, 4rem);
  }
}

.page-approach .app-note {
  padding-top: clamp(1rem, 2vw, 1.25rem);
  border-top: 1px solid var(--rule);
}

.page-approach .app-note__title {
  margin: 0 0 0.625rem;
  max-width: 26ch;
}

.page-approach .app-note__copy {
  margin: 0;
  max-width: 54ch;
}

/* =====================================================================
   The limits list — a set, not a sequence, so no ordinals
   ===================================================================== */

.page-approach .app-limits {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

@media (min-width: 46rem) {
  .page-approach .app-limits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(2rem, 4vw, 3.5rem);
  }
}

@media (min-width: 72rem) {
  .page-approach .app-limits {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.page-approach .app-limit {
  padding-top: clamp(0.875rem, 1.8vw, 1.125rem);
  border-top: 1px solid var(--rule);
}

.page-approach .app-limit__title {
  margin: 0 0 0.5rem;
  max-width: 22ch;
}

.page-approach .app-limit__copy {
  margin: 0;
  max-width: 44ch;
}

/* =====================================================================
   Footer — restated, scoped
   ===================================================================== */

.page-approach .site-footer__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 2.5vw, 2rem);
  padding-block: clamp(2rem, 4vw, 3.5rem);
  border-top: 1px solid var(--rule);
}

.page-approach .site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.page-approach .site-footer__link {
  text-decoration: none;
  font-size: var(--t-body);
  line-height: 1.4;
  padding-block: 0.25rem;
  border-bottom: 1px solid transparent;
  transition:
    color var(--d-hover) var(--ease-out),
    border-color var(--d-hover) var(--ease-out);
}

.page-approach .site-footer__link:hover,
.page-approach .site-footer__link:focus-visible {
  color: var(--orchid);
  border-bottom-color: var(--orchid);
}

.page-approach .site-footer__meta {
  margin: 0;
  color: var(--quiet);
}

/* A disclosure rather than a description. Accent rule and full-contrast
   ink, so it cannot be read as fine print. */
.page-approach .site-footer__note {
  margin: 0;
  max-width: 62ch;
  font-size: var(--t-body);
  line-height: var(--lh-body);
  border-left: 1px solid var(--orchid);
  padding-left: clamp(0.75rem, 1.5vw, 1.25rem);
}

/* =====================================================================
   Motion off
   ===================================================================== */

@media (prefers-reduced-motion: reduce) {
  .page-approach .site-footer__link {
    transition: none;
  }
}
