/* ──────────────────────────────────────────────────────────────────
   Monterey Financial — Base design tokens + fonts.
   Imported by any modernized page. Contains:
     • @font-face (only the weights currently shipped in /fonts/inter/)
     • :root color / spacing / radius / shadow / type tokens
     • Minimal reset + helper classes (.h-display-*, .t-*, .eyebrow, a.link)

   Shipping new weights? Copy the TTF into /fonts/inter/ and add its
   @font-face here. Don't pull in weights a page doesn't use.
   ──────────────────────────────────────────────────────────────────*/

/* ===== Fonts (local, subset) ===== */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("../../fonts/inter/Inter_24pt-Regular.ttf") format("truetype"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("../../fonts/inter/Inter_24pt-Medium.ttf") format("truetype"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("../../fonts/inter/Inter_24pt-SemiBold.ttf") format("truetype"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("../../fonts/inter/Inter_24pt-Bold.ttf") format("truetype"); }
@font-face { font-family: "Inter Display"; font-style: normal; font-weight: 700; font-display: swap; src: url("../../fonts/inter/Inter_28pt-Bold.ttf") format("truetype"); }
@font-face { font-family: "Inter Small"; font-style: normal; font-weight: 400; font-display: swap; src: url("../../fonts/inter/Inter_18pt-Regular.ttf") format("truetype"); }

:root {
  /* ===== Color primitives ===== */
  --cerulean-5:   #f3f7fa;
  --cerulean-10:  #e7f0f5;
  --cerulean-20:  #cfe1eb;
  --cerulean-40:  #9fc3d7;
  --cerulean-60:  #6fa5c3;
  --cerulean-80:  #4088af;
  --cerulean-100: #007f9c;

  --midnight-5:   #f3f3f4;
  --midnight-10:  #e6e8e9;
  --midnight-20:  #cdd1d3;
  --midnight-40:  #9ca3a6;
  --midnight-60:  #68767b;
  --midnight-80:  #36484f;
  --midnight-100: #181d27;

  --aegean-5:   #f4f6f8;
  --aegean-10:  #e6edf1;
  --aegean-20:  #ccdde2;
  --aegean-40:  #99b9c6;
  --aegean-60:  #6695a9;
  --aegean-80:  #32728d;
  --aegean-100: #06304d;

  --error-10:    #fef3f2;
  --error-20:    #fee4e2;
  --error-40:    #fecdca;
  --error-60:    #fda29b;
  --error-100:   #f04437;
  --fg-error:    #b42318;  /* readable error text on light surfaces */

  --warning-100: #fdb022;
  --success-100: #46cd89;

  --white: #ffffff;

  /* ===== Semantic tokens ===== */
  --fg-primary:     var(--midnight-100);
  --fg-secondary:   #535862;
  --fg-tertiary:    #414651;
  --fg-quaternary:  #768592;
  --fg-brand:       var(--cerulean-100);
  --fg-brand-dark:  #0a4366;
  --fg-on-brand:    var(--white);
  --fg-on-dark:     var(--white);
  --fg-on-dark-dim: #94c0d6;

  --bg-primary:      var(--white);
  --bg-secondary:    #f5fafc;
  --bg-tertiary:     var(--cerulean-20);
  --bg-inverse:      var(--aegean-100);
  --bg-brand-subtle: var(--cerulean-10);
  --bg-brand:        var(--cerulean-100);
  --bg-brand-hover:  #1a6a92;
  --bg-brand-deep:   #08558b;
  --bg-hero-wash:    radial-gradient(ellipse at center,
                       rgba(74,148,181,0.25) 0%,
                       rgba(177,226,237,0.25) 67%,
                       rgba(255,255,255,0.5) 89%);

  --border-primary:   #e9eaeb;
  --border-secondary: #d5d7da;
  --border-brand:     var(--cerulean-100);

  /* ===== Button tokens ===== */
  --btn-primary-bg:        var(--cerulean-100);
  --btn-primary-bg-hover:  var(--bg-brand-hover);
  --btn-primary-bg-active: #04507a;
  --btn-primary-fg:        var(--white);

  --btn-secondary-bg:       var(--white);
  --btn-secondary-bg-hover: var(--cerulean-5);
  --btn-secondary-fg:       var(--fg-tertiary);
  --btn-secondary-border:   var(--border-secondary);

  --btn-shadow:
    0 1px 2px 0 rgba(10,13,18,0.05),
    inset 0 -2px 0 0 rgba(10,13,18,0.05),
    inset 0 0 0 1px rgba(10,13,18,0.18);

  /* ===== Spacing (4px base) ===== */
  --space-1: 4px;   --space-2: 8px;   --space-3: 12px;  --space-4: 16px;
  --space-5: 20px;  --space-6: 24px;  --space-8: 32px;  --space-10: 40px;
  --space-12: 48px; --space-16: 64px; --space-20: 80px; --space-24: 96px;

  /* ===== Radii ===== */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-2xl:  24px;
  --radius-pill: 9999px;
  --radius-full: 9999px;

  /* ===== Shadows ===== */
  --shadow-xs:  0 1px 2px 0 rgba(10,13,18,0.05);
  --shadow-sm:  0 1px 3px 0 rgba(10,13,18,0.10), 0 1px 2px -1px rgba(10,13,18,0.10);
  --shadow-md:  0 4px 6px -1px rgba(10,13,18,0.08), 0 2px 4px -2px rgba(10,13,18,0.08);
  --shadow-lg:  0 10px 15px -3px rgba(10,13,18,0.08), 0 4px 6px -4px rgba(10,13,18,0.08);
  --shadow-xl:  0 20px 25px -5px rgba(10,13,18,0.08), 0 8px 10px -6px rgba(10,13,18,0.08);

  --focus-ring:
    0 0 0 2px var(--white),
    0 0 0 4px rgba(0,127,156,0.6);

  /* ===== Typography ===== */
  --font-sans:    "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Inter Display", "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-small:   "Inter Small", "Inter", ui-sans-serif, system-ui, sans-serif;

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

  --text-display-2xl: 700 72px/90px var(--font-display);
  --text-display-xl:  700 60px/72px var(--font-display);
  --text-display-lg:  700 48px/60px var(--font-display);
  --text-display-md:  700 36px/44px var(--font-display);
  --text-display-sm:  700 30px/38px var(--font-display);
  --text-display-xs:  700 24px/32px var(--font-display);

  --text-xl: 400 20px/30px var(--font-sans);
  --text-lg: 400 18px/28px var(--font-sans);
  --text-md: 400 16px/24px var(--font-sans);
  --text-sm: 400 14px/20px var(--font-small);
  --text-xs: 400 12px/18px var(--font-small);

  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
}

/* ===== Minimal reset (scoped to the body — does not stomp legacy pages) ===== */
html { font-family: var(--font-sans); color: var(--fg-primary); background: var(--bg-primary); }
*, *::before, *::after { box-sizing: border-box; }

/* ===== Helper classes ===== */
.h-display-2xl { font: var(--text-display-2xl); letter-spacing: var(--tracking-tight); color: var(--fg-primary); margin: 0; }
.h-display-xl  { font: var(--text-display-xl);  letter-spacing: var(--tracking-tight); color: var(--fg-primary); margin: 0; }
.h-display-lg  { font: var(--text-display-lg);  letter-spacing: var(--tracking-tight); color: var(--fg-primary); margin: 0; }
.h-display-md  { font: var(--text-display-md);  letter-spacing: var(--tracking-tight); color: var(--fg-primary); margin: 0; }
.h-display-sm  { font: var(--text-display-sm);  letter-spacing: var(--tracking-tight); color: var(--fg-primary); margin: 0; }
.h-display-xs  { font: var(--text-display-xs);  letter-spacing: var(--tracking-tight); color: var(--fg-primary); margin: 0; }

.t-xl { font: var(--text-xl); color: var(--fg-primary); }
.t-lg { font: var(--text-lg); color: var(--fg-primary); }
.t-md { font: var(--text-md); color: var(--fg-primary); }
.t-sm { font: var(--text-sm); color: var(--fg-secondary); }
.t-xs { font: var(--text-xs); color: var(--fg-secondary); }

.eyebrow {
  font: var(--fw-bold) 16px/24px var(--font-sans);
  color: var(--fg-brand);
  letter-spacing: 0;
  text-transform: none;
  margin: 0;
}

a.link, .link {
  color: var(--fg-brand);
  text-decoration: none;
  font-weight: var(--fw-bold);
}
a.link:hover, .link:hover { color: var(--fg-brand-dark); text-decoration: underline; }

/* ===== Buttons (shared across pages) ===== */
.btn {
  all: unset;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 12px 22px;
  border-radius: var(--radius-pill);
  font: var(--fw-bold) 16px/24px var(--font-sans);
  cursor: pointer;
  box-shadow: var(--btn-shadow);
  transition: background-color 150ms ease, border-color 150ms ease;
  text-align: center;
  white-space: nowrap;
}
.btn-primary { background: var(--btn-primary-bg); color: var(--btn-primary-fg); }
.btn-primary:hover  { background: var(--btn-primary-bg-hover); }
.btn-primary:active { background: var(--btn-primary-bg-active); }
.btn-primary:focus-visible { box-shadow: var(--btn-shadow), var(--focus-ring); }

.btn-secondary {
  background: var(--btn-secondary-bg);
  color: var(--btn-secondary-fg);
}
.btn-secondary:hover { background: var(--btn-secondary-bg-hover); }
.btn-secondary:focus-visible { box-shadow: var(--btn-shadow), var(--focus-ring); }

.btn-sm    { padding: 8px 14px; font-size: 14px; }
.btn-xl    { padding: 14px 24px; font-size: 18px; }
.btn-block { width: 100%; }

/* ===== Form primitives (shared) ===== */
.field { display: flex; flex-direction: column; gap: var(--space-2); }
.field-label {
  font: var(--fw-medium) 14px/20px var(--font-sans);
  color: var(--fg-tertiary);
}
.field-input {
  font: 400 16px/24px var(--font-sans);
  color: var(--fg-primary);
  background: var(--white);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-md);
  padding: 10px 14px;
  box-shadow: var(--shadow-xs);
  transition: border-color 120ms ease, box-shadow 120ms ease;
  width: 100%;
}
.field-input::placeholder { color: #717680; }
.field-input:focus {
  outline: none;
  border-color: var(--cerulean-100);
  box-shadow: var(--focus-ring);
}
.field-input:disabled,
.field-input[readonly] {
  background: var(--bg-secondary);
  color: var(--fg-secondary);
  cursor: default;
}

/* ===== Form card (shared) ===== */
.form-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  background: var(--white);
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  box-shadow: var(--shadow-sm);
}
.form-card__legend {
  font: var(--fw-semibold) 14px/20px var(--font-sans);
  color: var(--fg-tertiary);
  margin: 0 0 var(--space-1) 0;
  padding: 0;
}
.form-card--narrow { max-width: 480px; }

/* ===== Alert (shared) ===== */
.alert {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  margin-bottom: var(--space-5);
  font: var(--fw-semibold) 15px/22px var(--font-sans);
}
.alert--error {
  background: var(--error-10);
  border: 1px solid var(--error-40);
  color: var(--fg-error);
}
.alert--success {
  background: #ecfdf3;
  border: 1px solid #abefc6;
  color: #067647;
}
.alert--success .alert__icon { color: var(--success-100); }
.alert__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  color: var(--error-100);
}

/* ===== Back link (shared) ===== */
.back-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--fg-secondary);
  font: var(--fw-medium) 14px/20px var(--font-sans);
  text-decoration: none;
  margin-bottom: var(--space-6);
  transition: color 120ms ease;
}
.back-link:hover { color: var(--fg-brand); }
.back-link svg { width: 16px; height: 16px; display: block; }
