:root {
  color-scheme: light;
  --navy: #173656;
  --paper: #f6f1e7;
  --ink: #1e2328;
  --muted: #5f6871;
  --border: #d5d9dc;
  --focus: #006d8f;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--paper); color: var(--ink); font: 16px/1.55 system-ui, "Segoe UI", sans-serif; }
body { min-height: 100vh; margin: 0; }
a { color: var(--navy); text-underline-offset: .2em; }
a:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.gateway { min-height: 100vh; background: #fff; display: grid; grid-template-rows: auto 1fr auto; padding: 24px clamp(24px, 5vw, 72px); }
.language { justify-self: end; min-height: 44px; display: flex; align-items: center; gap: 12px; }
.gateway-main { width: min(100%, 960px); margin: auto; text-align: center; }
.wordmark { margin: 0 0 40px; color: var(--navy); font: clamp(2rem, 7vw, 3rem)/1.15 Georgia, "Times New Roman", serif; letter-spacing: .01em; }
.client-login { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 24px; border: 1px solid var(--navy); border-radius: 5px; background: var(--navy); color: #fff; font-weight: 700; text-decoration: none; }
.contact-line { margin: 24px 0 0; color: var(--muted); }
.gateway-footer { display: flex; justify-content: center; gap: 24px; padding-top: 32px; font-size: .875rem; }

.access-gateway { background: var(--paper); }
.access-main { width: min(100%, 760px); margin: auto; text-align: left; }
.access-wordmark { margin: 0 0 18px; color: var(--navy); font: 700 1rem/1.2 Georgia, "Times New Roman", serif; letter-spacing: .02em; }
.access-card { padding: clamp(32px, 7vw, 64px); border: 1px solid var(--border); background: #fff; }
.gateway-access-panel { display: none; width: min(100%, 760px); margin: clamp(2rem, 6vh, 4rem) auto 0; text-align: left; scroll-margin-top: 24px; }
.gateway-access-panel:target { display: block; }
.access-eyebrow { margin: 0 0 10px; color: var(--muted); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.access-card h1,
.access-card h2 { margin: 0; color: var(--navy); font: clamp(2rem, 6vw, 2.75rem)/1.12 Georgia, "Times New Roman", serif; }
.access-lead { max-width: 58ch; margin: 22px 0 0; font-size: 1.05rem; }
.access-security { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--border); color: var(--muted); font-size: .92rem; }
.access-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 22px; margin-top: 32px; }
.access-secondary { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; }
.access-back { margin: 22px 0 0; font-size: .9rem; }

@media (max-width: 520px) {
  .gateway { padding: 18px 24px 24px; }
  .client-login { width: min(100%, 320px); }
  .gateway-footer { align-items: center; flex-direction: column; gap: 8px; }
  .access-card { padding: 30px 24px; }
  .gateway-access-panel { margin-top: 1.5rem; }
  .access-actions { align-items: stretch; flex-direction: column; }
  .access-actions .client-login { width: 100%; }
  .access-secondary { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
