/* Derrick Johnston — The Mortgage Coach
   Design tokens
   ------------------------------------------------------------------ */
:root{
  --ink:#101C19;          /* deep pine-black, body text + dark sections */
  --ink-70:#41524D;
  --ink-45:#6E7C77;
  --sage:#7A9E8E;         /* existing brand accent */
  --pine:#1F463B;         /* deep saturated brand green */
  --chalk:#EDF0EA;        /* page background, cool green-cast off-white */
  --chalk-2:#E2E7DE;
  --paper:#FBFCFA;        /* cards */
  --ochre:#C8892F;        /* single warm accent, used sparingly */
  --rule:#C6CFC5;

  --display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;
  --body:"Source Serif 4",Georgia,"Times New Roman",serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:1180px;
  --measure:68ch;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--chalk);color:var(--ink);
  font-family:var(--body);font-size:1.0625rem;line-height:1.65;
  font-optical-sizing:auto;
}
img{max-width:100%;display:block}
a{color:var(--pine);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--ochre)}
:focus-visible{outline:3px solid var(--ochre);outline-offset:3px;border-radius:2px}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:24px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--paper);padding:10px 16px;z-index:99}

/* Type ------------------------------------------------------------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.08;letter-spacing:-0.02em;margin:0 0 .5em}
h1{font-size:clamp(2.3rem,5.2vw,3.9rem);font-variation-settings:"wdth" 92}
h2{font-size:clamp(1.65rem,3.1vw,2.35rem);margin-top:2.2em}
h3{font-size:clamp(1.15rem,1.9vw,1.4rem);margin-top:1.9em}
p{margin:0 0 1.15em;max-width:var(--measure)}
ul,ol{max-width:var(--measure);padding-left:1.15em}
li{margin-bottom:.45em}
strong{font-weight:700}
.lede{font-size:1.2rem;color:var(--ink-70)}

.eyebrow{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-45);margin:0 0 1rem;display:flex;align-items:center;gap:.7rem;
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--rule);max-width:120px}

/* Header ----------------------------------------------------------- */
.masthead{border-bottom:1px solid var(--rule);background:var(--chalk);position:sticky;top:0;z-index:50}
.masthead .wrap{display:flex;align-items:center;gap:1.5rem;min-height:74px;flex-wrap:wrap}
.brand{font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;text-decoration:none;color:var(--ink);line-height:1.15}
.brand span{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-45);font-weight:400;margin-top:3px}
.nav{margin-left:auto;display:flex;gap:1.35rem;flex-wrap:wrap;align-items:center}
.nav a{font-family:var(--display);font-size:.9rem;text-decoration:none;color:var(--ink-70);font-weight:500}
.nav a:hover,.nav a[aria-current]{color:var(--pine)}
.btn{
  display:inline-block;font-family:var(--display);font-weight:600;font-size:.92rem;
  background:var(--pine);color:#fff;padding:.72em 1.3em;border-radius:2px;text-decoration:none;
  border:1px solid var(--pine);transition:background .15s ease,color .15s ease;
}
.btn:hover{background:var(--ochre);border-color:var(--ochre);color:#fff}
.btn--ghost{background:transparent;color:var(--pine)}
.btn--ghost:hover{background:var(--pine);color:#fff;border-color:var(--pine)}

/* Hero ------------------------------------------------------------- */
.hero{padding:clamp(2.5rem,5vw,4.25rem) 0 clamp(2.25rem,4vw,3.25rem);border-bottom:1px solid var(--rule)}
.hero h1{max-width:16ch}
.hero .lede{max-width:52ch}
.hero-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:clamp(2rem,4vw,3.5rem);align-items:center}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.6rem}

/* Signature: the Direct Answer block ------------------------------- */
.answer{
  background:var(--paper);border:1px solid var(--rule);border-left:5px solid var(--sage);
  padding:1.5rem 1.6rem;border-radius:2px;
}
.answer .label{
  font-family:var(--mono);font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--pine);margin:0 0 .7rem;font-weight:700;
}
.answer p{margin:0;max-width:none;font-size:1.02rem}
.answer p + p{margin-top:.8rem}

/* Sections --------------------------------------------------------- */
section{padding:clamp(2.75rem,5.5vw,4.25rem) 0}
.section--rule{border-top:1px solid var(--rule)}
.section--dark{background:var(--ink);color:var(--chalk)}
.section--dark h2,.section--dark h3{color:#fff}
.section--dark p,.section--dark li{color:#C9D3CE}
.section--dark .eyebrow{color:var(--sage)}
.section--dark .eyebrow::after{background:#33443E}
.section--dark a{color:var(--sage)}

/* Cards ------------------------------------------------------------ */
.grid{display:grid;gap:1.25rem}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.card{
  background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:1.5rem;
  display:flex;flex-direction:column;
}
.card h3{margin-top:0;font-size:1.16rem}
.card p{font-size:.97rem;color:var(--ink-70);flex:1}
.card .more{font-family:var(--display);font-weight:600;font-size:.88rem;text-decoration:none}
.card .more::after{content:" →"}
.section--dark .card{background:#16241F;border-color:#2C3B36}

/* Fact table ------------------------------------------------------- */
table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.96rem;background:var(--paper)}
caption{text-align:left;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);padding-bottom:.6rem}
th,td{border:1px solid var(--rule);padding:.7rem .85rem;text-align:left;vertical-align:top}
th{font-family:var(--display);font-weight:600;font-size:.9rem;background:var(--chalk-2)}
td .num{font-family:var(--mono);font-size:.9rem}

/* FAQ -------------------------------------------------------------- */
.faq{border-top:1px solid var(--rule);max-width:var(--measure)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{
  cursor:pointer;padding:1.05rem 0;font-family:var(--display);font-weight:600;font-size:1.03rem;
  list-style:none;display:flex;gap:1rem;align-items:baseline;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";font-family:var(--mono);color:var(--sage);font-weight:700}
.faq details[open] summary::before{content:"–"}
.faq details p{padding-bottom:1.1rem;margin:0;color:var(--ink-70)}
.faq details p + p{padding-bottom:0;margin-bottom:1.1rem}

/* Two-column article layout ---------------------------------------- */
.doc{display:grid;grid-template-columns:220px 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;padding-top:2.5rem}
.toc{position:sticky;top:98px;font-size:.9rem}
.toc p{font-family:var(--mono);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);margin-bottom:.8rem}
.toc ul{list-style:none;padding:0;margin:0;border-left:1px solid var(--rule)}
.toc li{margin:0}
.toc a{display:block;padding:.4rem 0 .4rem .9rem;text-decoration:none;color:var(--ink-70);font-family:var(--display);font-size:.88rem;border-left:2px solid transparent;margin-left:-1px}
.toc a:hover{border-left-color:var(--sage);color:var(--pine)}

/* Meta / trust bar -------------------------------------------------- */
.trustbar{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--chalk-2)}
.trustbar .wrap{display:flex;gap:2rem;flex-wrap:wrap;padding-block:1rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-70)}
.trustbar b{color:var(--pine)}

.stamp{font-family:var(--mono);font-size:.72rem;color:var(--ink-45);border-top:1px solid var(--rule);padding-top:1rem;margin-top:2.5rem;max-width:var(--measure)}

/* Calculator ------------------------------------------------------- */
.calc{background:var(--paper);border:1px solid var(--rule);padding:1.6rem;border-radius:2px}
.calc label{display:block;font-family:var(--display);font-weight:600;font-size:.86rem;margin:1rem 0 .3rem}
.calc input{width:100%;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:2px;font-family:var(--mono);font-size:.95rem;background:#fff;color:var(--ink)}
.calc .out{margin-top:1.4rem;border-top:1px solid var(--rule);padding-top:1.1rem}
.calc .out dl{display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;margin:0}
.calc .out dt{font-size:.92rem;color:var(--ink-70)}
.calc .out dd{margin:0;font-family:var(--mono);font-weight:700;text-align:right}
.calc .headline{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--pine);margin-top:.9rem}

/* Footer ----------------------------------------------------------- */
.foot{background:var(--ink);color:#C9D3CE;padding:3.5rem 0 2.5rem;font-size:.93rem}
.foot h4{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin:0 0 .9rem}
.foot a{color:#C9D3CE;text-decoration:none}
.foot a:hover{color:#fff}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin-bottom:.4rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.legal{border-top:1px solid #2C3B36;margin-top:2.5rem;padding-top:1.5rem;font-size:.8rem;color:#8B9A94;max-width:none}

/* Motion ----------------------------------------------------------- */
.rise{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.rise.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rise{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* Responsive ------------------------------------------------------- */
@media (max-width:900px){
  .hero-grid,.doc{grid-template-columns:1fr}
  .grid--3,.grid--2{grid-template-columns:1fr}
  .toc{position:static;border-bottom:1px solid var(--rule);padding-bottom:1rem}
  .foot-grid{grid-template-columns:1fr 1fr}
  .masthead{position:static}
}
@media (max-width:560px){
  .nav{gap:.9rem}
  .nav a{font-size:.84rem}
  .foot-grid{grid-template-columns:1fr}
}

/* Portrait + byline ------------------------------------------------ */
.byline{
  display:flex;align-items:center;gap:.95rem;margin-top:2rem;padding-top:1.4rem;
  border-top:1px solid var(--rule);max-width:var(--measure);
}
.byline img{
  width:62px;height:62px;flex:none;border-radius:50%;object-fit:cover;
  object-position:center 16%;border:1px solid var(--rule);
}
.byline strong{
  display:block;font-family:var(--display);font-weight:600;font-size:1rem;letter-spacing:-.01em;
}
.byline span{
  display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-45);margin-top:.25rem;line-height:1.5;
}

/* Large portrait — About page rail only */
.portrait{
  width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 16%;
  border:1px solid var(--rule);border-radius:2px;margin-bottom:1.6rem;
}
@media (max-width:900px){
  .portrait{aspect-ratio:16/9;height:auto;object-position:center 20%;max-height:260px}
  .byline{margin-top:1.6rem}
}
