/* Shared identity, typography and visual foundation for every public and portal page. */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/assets/fonts/cormorant-garamond-latin.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 300 700; font-display: swap; src: url('/assets/fonts/cormorant-garamond-italic-latin.woff2') format('woff2'); }
@font-face { font-family: Inter; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/assets/fonts/inter-latin.woff2') format('woff2'); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }
:root {
  --ivory: #f7f5f0;
  --charcoal: #1f211f;
  --gold: #b38d57;
  --midnight: #1a2a36;
  --stone: #d8d0c2;
  --night: var(--charcoal);
  --night-2: #171b19;
  --night2: var(--night-2);
  --orange: var(--gold);
  --orange-2: #80613a;
  --orange2: var(--orange-2);
  --paper: var(--ivory);
  --cream: #fffefa;
  --sage: #e9e7df;
  --ink: var(--charcoal);
  --muted: #64685f;
  --line: var(--stone);
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: Inter, Arial, Helvetica, sans-serif;
  --student-night: var(--night);
  --student-orange: var(--gold);
  --student-orange2: var(--orange-2);
  --student-paper: var(--paper);
  --student-cream: var(--cream);
  --student-sage: var(--sage);
  --student-ink: var(--ink);
  --student-muted: var(--muted);
  --student-line: var(--line);
  --student-serif: var(--serif);
  --student-sans: var(--sans);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

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

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

button {
  cursor: pointer;
}

img {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
p {
  margin: 0;
}

:focus-visible {
  outline: 3px solid var(--orange-2);
  outline-offset: 3px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 800;
  letter-spacing: -0.05em;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--orange);
  border-radius: 50%;
  color: var(--orange);
  font: italic 23px var(--serif);
}

.brand small {
  display: block;
  margin-top: 4px;
  color: #bfc8bd;
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.brand-image {
  gap: 14px;
}

.brand-image img {
  width: 72px;
  height: 72px;
  padding: 0;
  object-fit: contain;
}

.brand-copy strong { display: block; color: var(--ink); font: 600 30px/1 var(--serif); letter-spacing: -.035em; }
.brand .brand-copy small { display: block; margin-top: 7px; color: var(--muted); font: 500 10px/1.2 var(--sans); letter-spacing: .15em; text-transform: uppercase; }

.brand-context {
  color: var(--orange);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  white-space: nowrap;
}

.header-link {
  color: #d3d7cc;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.header-link:hover {
  color: var(--orange);
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--orange-2);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.eyebrow::before {
  width: 30px;
  height: 1px;
  background: currentColor;
  content: '';
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.field.full {
  grid-column: 1 / -1;
}

.field label {
  color: #59635a;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

@media (max-width: 650px) {
  .brand-image img {
    width: 43px;
    height: 43px;
  }

  .brand-context {
    display: none;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .field.full {
    grid-column: auto;
  }
}
