/* ZAPPHIRE public site — built from ZAPPHIRE_DESIGN_SYSTEM.md (DSN tokens cited inline).
   No colour/spacing invented. Marketing+legal page macro-pattern composed from DS primitives
   (DS §8: absent pattern flagged to Foreman; composed, not approximated). */

:root {
  /* DSN-CLR-001..010 */
  --sapphire:#1A4FA0; --sapphire-deep:#133B78; --sapphire-light:#2460BF;
  --sapphire-pale:#E8EFF9; --sapphire-wash:#F2F6FC;
  --coral:#E07A5F; --coral-deep:#C4614A; --coral-pale:#FDF0EC;
  --bg:#FDFDFD; --surface:#FFFFFF;
  --border-light:#E8E8F0; --border-soft:#EEEFF4;
  --text-dark:#1A1A2E; --text-body:#3D3D56; --text-secondary:#5C5C78; --text-muted:#8E8EA8;
  --status-success:#2D8A56; --status-success-bg:#E8F5EE;
  --status-error:#C4444A; --status-error-bg:#FDE8E8;
  /* DSN-TYP-001/002 */
  --font-display:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body:'Outfit', system-ui, -apple-system, sans-serif;
  /* DSN-TYP-006 spacing */
  --space-xs:4px; --space-sm:8px; --space-md:16px; --space-lg:24px; --space-xl:32px;
  --space-2xl:48px; --space-3xl:64px;
  /* radius */
  --radius-sm:4px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-pill:100px;
  /* layout */
  --container-max:1020px; --content-max:680px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--bg); color:var(--text-body);
  font-family:var(--font-body); font-weight:400;
  font-size:1.02rem; line-height:1.8;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}

/* ---- Layout ---- */
.container{max-width:var(--container-max); margin:0 auto; padding:0 var(--space-xl);}
.content{max-width:var(--content-max); margin:0 auto; padding:0 var(--space-xl);}
.section{padding:var(--space-3xl) 0;}
.section--tight{padding:var(--space-2xl) 0;}

/* ---- Typography (DSN-TYP-003/004/005) ---- */
h1,h2,h3,.display{font-family:var(--font-display); color:var(--text-dark); line-height:1.2; margin:0 0 var(--space-md);}
h1{font-weight:600; font-size:clamp(1.7rem,3.5vw,2.5rem);}          /* Page title */
h2{font-weight:600; font-size:clamp(1.35rem,2.4vw,1.7rem); margin-top:var(--space-2xl);} /* Section head */
h3{font-weight:600; font-size:1.08rem;}                              /* Subtitle */
p{margin:0 0 var(--space-md);}
a{color:var(--sapphire); text-decoration:none;}
a:hover{color:var(--sapphire-deep); text-decoration:underline;}
strong{color:var(--text-dark); font-weight:600;}
.eyebrow{font-family:var(--font-body); font-weight:600; font-size:0.72rem; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--coral); margin:0 0 var(--space-sm);}
.lede{font-family:var(--font-display); font-weight:500; font-size:clamp(1.25rem,2.4vw,1.7rem);
  color:var(--sapphire); line-height:1.35; margin:0 0 var(--space-lg);}
.muted{color:var(--text-muted);}

/* ---- Header ---- */
.site-header{border-bottom:1px solid var(--border-soft); background:var(--surface);}
.site-header .container{display:flex; align-items:center; justify-content:space-between;
  padding-top:var(--space-md); padding-bottom:var(--space-md);}
.wordmark{font-family:var(--font-display); font-weight:600; font-size:1.55rem; letter-spacing:0.03em;
  color:var(--sapphire);}
.wordmark:hover{text-decoration:none; color:var(--sapphire-deep);}
.header-nav a{font-family:var(--font-body); font-weight:500; font-size:0.9rem; color:var(--text-secondary);
  margin-left:var(--space-lg);}
.header-nav a:hover{color:var(--text-dark); text-decoration:none;}

/* ---- Hero ---- */
.hero{padding:var(--space-3xl) 0 var(--space-2xl);}
.hero h1{font-size:clamp(2rem,4.5vw,3rem);}

/* ---- Prose (About + legal) ---- */
.prose{max-width:var(--content-max); margin:0 auto;}
.prose p{color:var(--text-body);}
.prose h2{color:var(--text-dark);}
.prose ul{padding-left:var(--space-lg); margin:0 0 var(--space-md);}
.prose li{margin-bottom:var(--space-sm);}
.legal .updated{color:var(--text-muted); font-size:0.9rem; margin-bottom:var(--space-xl);}
.legal h2{font-size:1.2rem; margin-top:var(--space-xl);}

/* ---- Card (DSN-CMP-002) ---- */
.card{background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--radius-lg);
  padding:28px; box-shadow:0 1px 3px rgba(0,0,0,0.04),0 4px 12px rgba(0,0,0,0.03);}
.card--info{background:var(--sapphire-wash); border:none; padding:36px 32px;}

/* ---- Buttons (DSN-CMP-001) ---- */
.btn{display:inline-block; font-family:var(--font-body); font-weight:500; font-size:0.88rem;
  letter-spacing:0.04em; border-radius:var(--radius-sm); min-height:44px; line-height:1.4;
  cursor:pointer; border:1.5px solid transparent; text-align:center;}
.btn-primary{background:var(--sapphire); color:#fff; padding:14px 44px;
  box-shadow:0 2px 12px rgba(26,79,160,0.15);}
.btn-primary:hover{background:var(--sapphire-deep); color:#fff; text-decoration:none;}
.btn:focus-visible{outline:2px solid var(--sapphire); outline-offset:2px;}
.btn[disabled]{opacity:0.5; cursor:not-allowed;}

/* ---- Waitlist form (DSN-CMP-003) ---- */
.waitlist{margin-top:var(--space-lg);}
.waitlist label{display:block; font-family:var(--font-body); font-weight:500; font-size:0.88rem;
  color:var(--text-dark); margin-bottom:var(--space-sm);}
.waitlist .field-row{display:flex; gap:var(--space-md); flex-wrap:wrap; align-items:flex-start;}
.waitlist input[type=email]{flex:1 1 260px; padding:14px 16px; font-family:var(--font-body);
  font-size:0.95rem; color:var(--text-dark); background:var(--surface);
  border:1.5px solid var(--border-light); border-radius:var(--radius-md);}
.waitlist input[type=email]:focus{outline:none; border-color:var(--sapphire);
  box-shadow:0 0 0 3px rgba(26,79,160,0.1);}
.waitlist input.error{border-color:var(--status-error);}
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.help{font-size:0.82rem; color:var(--text-muted); margin-top:var(--space-sm);}
.form-status{margin-top:var(--space-md); font-size:0.92rem; min-height:1.2em;}
.form-status.success{color:var(--status-success);}
.form-status.error{color:var(--status-error);}

/* ---- Footer ---- */
.site-footer{border-top:1px solid var(--border-soft); background:var(--surface);
  margin-top:var(--space-3xl); padding:var(--space-2xl) 0;}
.site-footer .container{display:flex; flex-wrap:wrap; gap:var(--space-md) var(--space-lg);
  align-items:center; justify-content:space-between;}
.footer-links a{color:var(--text-secondary); font-size:0.9rem; margin-right:var(--space-lg);}
.footer-links a:hover{color:var(--sapphire);}
.footer-meta{color:var(--text-muted); font-size:0.82rem;}

/* ---- Motion (DSN-ANM-001) ---- */
@keyframes fadeUp{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;}}
.fade-up{animation:fadeUp 0.3s ease-out both;}
@media (prefers-reduced-motion:reduce){.fade-up{animation:none;}}

/* ---- Responsive (DSN-RSP) ---- */
@media (max-width:768px){
  .container,.content{padding:0 var(--space-md);}
  .section{padding:var(--space-2xl) 0;}
  .btn-primary{padding:16px 44px; min-height:48px; width:100%;}
  .waitlist input[type=email]{flex:1 1 100%;}
}
