/* Shared text, button, and link variants.
   Existing component selectors are retained to preserve current pages.
   Layout, placement, and animation belong in component stylesheets. */
:root {
  --ui-brown: #5C1A1A;
  --ui-brown-visited: #381010;
  --ui-paper: #F1F1ED;
}

/* TEXT: reading, supporting copy, captions. */
/* Shared reading scale; display headings and metric numerals keep their hierarchy. */
:root { --text-body:clamp(16px, 1.2vw, 18px); --text-secondary:clamp(14px, 1.05vw, 16px); --text-small:clamp(12px, 0.95vw, 14px); --text-lead:clamp(18px, 1.6vw, 22px); }
.prose p, .prose li, .about-prose p, .cover .signature, .founder .left p, .timeline .phase p, .faq .answer, .offer .meta { font-size:var(--text-body); }
.versus .footnote, .fe .footnote, .form-note, .cta .book-aside, .offer .terms .q { font-size:var(--text-secondary); }
footer, .hiring .salary-source { font-size:var(--text-small); }
/* Underlines identify inline links; italics remain editorial emphasis. */
.prose p a, .prose li a, .about-prose p a, .faq .answer a, .footnote a, .form-note a { text-decoration:underline; text-underline-offset:3px; border-bottom:0; }


.text-body { font-size: var(--text-body); }
.text-secondary { font-size: var(--text-secondary); }
.text-lead { font-size: var(--text-lead); }
.text-small { font-size: var(--text-small); }

/* BUTTONS: cookie actions use the same primary and quiet variants. */
.button, .cookie-panel button { background:#F1F1ED; color:var(--ui-brown); border:1px solid #5C1A1A; padding:10px 16px; font:inherit; cursor:pointer; min-height:44px; }
.button--primary, .cookie-panel button[data-choice="accepted"] { background:#5C1A1A; color:#F1F1ED; }
.button--quiet, .cookie-panel button[data-choice="rejected"] { border-color:transparent; background:transparent; }

/* LINKS: editorial links can change after a visit; buttons, titles, and
   navigation retain their component colors. */
/* Shared text-link colors. Filled buttons and dark panels retain their contrast. */
a[href]:not(.button):not(.cta):not(.m-cta):not(.primary-cta):not(.book-cta):not(.book-email):not(.case-link):not(.seat-cta):not(.dossier-link):not(.back):not(.read-on):not(.read):not(.skip-link):not([role="button"]):not(.slide.cta a):not(.slide.faq a):not(.plate a):not(.site-footer--dark a):not(.navbar a):not(#nav a):not(.note .title a) { color:var(--ui-brown) !important; }
a[href]:visited:not(.button):not(.cta):not(.m-cta):not(.primary-cta):not(.book-cta):not(.book-email):not(.case-link):not(.seat-cta):not(.dossier-link):not(.back):not(.read-on):not(.read):not(.skip-link):not([role="button"]):not(.slide.cta a):not(.slide.faq a):not(.plate a):not(.site-footer--dark a):not(.navbar a):not(#nav a):not(.note .title a) { color:var(--ui-brown-visited) !important; }
.legal-links button { color:var(--ui-brown); }

/* Navigation owns its light/dark and selected states. */
body:not(.cta-active):not(.plate-active) .navbar .brand,
body:not(.cta-active):not(.plate-active) .navbar .links a { color:var(--ui-brown); }
body:not(.cta-active):not(.plate-active) .navbar .links a:visited { color:var(--ui-brown-visited); }

.cookie-panel strong, .button, .cookie-panel button { font-family:var(--serif, 'Libre Caslon Text', Georgia, serif); }

/* Opt-in button variants for new components. */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif, 'Libre Caslon Text', Georgia, serif);
  text-decoration: none;
  cursor: pointer;
}
.button--outline { background: transparent; border-color: var(--ui-brown); }
.button:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
a.button, a.button:visited { color: var(--ui-brown) !important; }
a.button--primary, a.button--primary:visited { color: var(--ui-paper) !important; }

/* Complete display and figure scale; relative tokens preserve nested units. */
:root {
  --text-wordmark: clamp(11px, 0.82vw, 13px);
  --text-heading-small: clamp(18px, 1.8vw, 26px);
  --text-heading-medium: clamp(22px, 2.4vw, 32px);
  --text-heading-large: clamp(26px, 3.4vw, 48px);
  --text-display-small: clamp(34px, 5vw, 64px);
  --text-display-medium: clamp(40px, 5.6vw, 80px);
  --text-display-large: clamp(40px, 6.7vw, 104px);
  --text-figure: clamp(80px, 9vw, 140px);
  --text-figure-xl: clamp(88px, 11vw, 200px);
  --text-figure-fit: min(104px, 19cqi);
  --text-relative-0-88: 0.88em;
  --text-relative-0-85: 0.85em;
  --text-relative-0-5: 0.5em;
  --text-relative-0-55: 0.55em;
  --text-relative-0-95: 0.95em;
  --text-relative-0-52: 0.52em;
  --text-relative-1-1: 1.1em;
}

.text-wordmark { font-size: var(--text-wordmark); }
.text-heading-small { font-size: var(--text-heading-small); }
.text-heading-medium { font-size: var(--text-heading-medium); }
.text-heading-large { font-size: var(--text-heading-large); }
.text-display-small { font-size: var(--text-display-small); }
.text-display-medium { font-size: var(--text-display-medium); }
.text-display-large { font-size: var(--text-display-large); }
.text-figure { font-size: var(--text-figure); }
.text-figure-xl { font-size: var(--text-figure-xl); }
.text-figure-fit { font-size: var(--text-figure-fit); }

/* Filled dark actions share a deeper brown hover state. */
:root { --ui-brown-hover:#381010; }
.button--primary:not([data-industry-prev]):not([data-industry-next]), .cookie-panel button[data-choice="accepted"] { transition:background-color 180ms ease, color 180ms ease; }
.button--primary:not([data-industry-prev]):not([data-industry-next]):hover,
.cover .primary-cta:hover,
.cookie-panel button[data-choice="accepted"]:hover { background:var(--ui-brown-hover); color:var(--ui-paper) !important; border-color:var(--ui-brown-hover); }
