/* Ask Mortgage messaging site (a2p-site/). Static, no build step, no web fonts, no animation.
   Constraints and launch blockers: docs/a2p-site-launch.md. Validate: node scripts/validate-a2p-site.mjs */

:root{
  --navy:#0D1B3D;
  --blue:#1D4ED8;
  --text:#111827;
  --body:#1F2937;
  --muted:#475569;
  --bg:#F7F9FB;
  --white:#FFFFFF;
  --soft:#EEF3F8;
  --border:#DDE5EF;
  --footer-text:#E2E8F0;
  --warn-bg:#FEF3C7;
  --warn-border:#B45309;
  --warn-text:#451A03;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:Inter,Arial,Helvetica,sans-serif;
  font-size:1rem;
  line-height:1.6;
  color:var(--text);
  background:var(--bg);
}
img,svg{max-width:100%;}

a{color:var(--blue);text-underline-offset:2px;}
a:hover{color:var(--navy);}
a:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:2px;}

.wrap{max-width:68rem;margin:0 auto;padding-inline:1.25rem;}

/* ---- header ---- */
.site-header{background:var(--white);border-bottom:1px solid var(--border);}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1.25rem;padding-block:1rem;}
.brand{display:inline-flex;align-items:center;gap:.625rem;color:var(--navy);text-decoration:none;font-weight:800;font-size:1.375rem;letter-spacing:-.01em;line-height:1.2;}
a.brand:hover{color:var(--navy);}
.brand svg{width:2.25rem;height:2.25rem;flex:0 0 2.25rem;}
.entity{margin:0;color:var(--muted);font-size:.9375rem;}

/* ---- sections ---- */
h1,h2,h3{color:var(--navy);line-height:1.25;}
h1{font-size:clamp(1.875rem,4.2vw,2.625rem);letter-spacing:-.02em;margin:0 0 1rem;}
h2{font-size:1.5rem;margin:0 0 1rem;}
h3{font-size:1.0625rem;margin:1.5rem 0 .5rem;}
p{margin:0 0 1rem;}

.hero{background:var(--white);border-bottom:1px solid var(--border);padding-block:3.5rem 3rem;}
.lede{font-size:1.125rem;color:var(--body);max-width:44rem;}
.chat-invite{max-width:44rem;margin:1.5rem 0 0;padding:.875rem 1rem;background:var(--soft);border-left:4px solid var(--navy);}

.section{padding-block:3rem;}
.section + .section{border-top:1px solid var(--border);}
.section-alt{background:var(--white);}
.prose{color:var(--body);}
.prose > *{max-width:44rem;}

.services{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));list-style:none;margin:0;padding:0;}
.service{background:var(--white);border:1px solid var(--border);border-radius:8px;padding:1.25rem;}
.service h3{margin-top:0;}
.service p{margin:0;color:var(--body);}

.contact-list{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.25rem;margin:0 0 1.5rem;}
.contact-list dt{font-weight:700;color:var(--navy);}
.contact-list dd{margin:0;}

/* ---- launch blockers: deliberately loud so an unfinished page cannot pass for a finished one ---- */
.blocker{display:block;margin:.75rem 0;padding:.625rem .875rem;background:var(--warn-bg);border:2px dashed var(--warn-border);color:var(--warn-text);font-size:.875rem;font-weight:600;line-height:1.5;}
.blocker::before{content:"LAUNCH BLOCKER: ";font-weight:800;}

/* ---- policy pages ---- */
.legal{max-width:48rem;padding-block:3rem;color:var(--body);}
.legal h2{margin-top:2.5rem;}
.legal ul{margin:0 0 1rem;padding-left:1.25rem;}
.legal li{margin-bottom:.375rem;}
.legal-meta{color:var(--muted);}
.legal-notice{margin:1.5rem 0 0;padding:1rem 1.25rem;background:var(--white);border:1px solid var(--border);border-left:4px solid var(--navy);}
.legal-notice h2{margin:0 0 .5rem;font-size:1.125rem;}
.legal-notice p{margin:0;}
.legal-contact{padding:1rem 1.25rem;background:var(--white);border:1px solid var(--border);}
.legal-contact p{margin:0 0 .25rem;}

/* ---- footer ---- */
.site-footer{background:var(--navy);color:var(--footer-text);padding-block:2.5rem 1.5rem;font-size:.9375rem;}
.site-footer a{color:var(--white);}
.site-footer a:focus-visible{outline-color:#93C5FD;}
.footer-grid{display:grid;gap:1.5rem 2rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));}
.footer-brand{font-weight:800;font-size:1.125rem;color:var(--white);margin-bottom:.5rem;}
.footer-heading{color:var(--white);font-size:.9375rem;margin:0 0 .5rem;}
.site-footer address{font-style:normal;}
.site-footer address p{margin:0 0 .25rem;}
.policy-links{list-style:none;margin:0;padding:0;}
.policy-links li{margin-bottom:.25rem;}
.copyright{margin:1.5rem 0 0;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2);font-size:.8125rem;}

@media (max-width:30rem){
  .hero{padding-block:2.5rem 2rem;}
  .section{padding-block:2.25rem;}
  .contact-list{grid-template-columns:1fr;gap:0 0;}
  .contact-list dd{margin-bottom:.625rem;}
}
