/* ==========================================================================
   Inside The Home Loan — design system v3, Direction C "The Bridge"
   Light, calm, precise. Reassuring for a first-time buyer, still crisp
   for the loan officers. Keeps the teal accent from v2; sets it on a
   light ground with one warm accent reserved for the conversion CTA.
   Deliberately distinct from CTC (navy #1B2A4A / gold #D4A843).
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root{
  /* canvas — Direction C, light ground */
  --bg:#EFF4F3;
  --bg-2:#E6EEEC;
  --card:#FFFFFF;
  --card-2:#F4FAF8;
  --line:#DBE6E3;
  --line-2:#C6D6D1;

  /* ink */
  --fg:#0F1C22;
  --fg-2:#495B5C;
  --fg-3:#7B8F8F;

  /* accent — kept teal, tuned for a light ground */
  --teal:#0C9A83;
  --mint:#12A88F;
  --teal-dim:rgba(12,154,131,.09);
  --teal-line:rgba(12,154,131,.22);

  /* warm — reserved for the one conversion CTA */
  --warm:#E5813F;
  --warm-2:#CF6E28;

  /* semantic */
  --amber:#C08A3A;
  --rose:#CE5945;
  --violet:#7458C8;
  --slate:#5A7280;

  --r:15px;
  --r-sm:10px;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  font-feature-settings:'cv11','ss01';
  -webkit-font-smoothing:antialiased;
  /* one soft light source, top-left. no mesh, no noise. */
  background-image:radial-gradient(900px 500px at 12% -8%, rgba(20,184,166,.07), transparent 60%);
  background-attachment:fixed;
}

.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
a{color:var(--teal);text-decoration:none}
a:hover{color:var(--fg)}

h1,h2,h3{line-height:1.15;letter-spacing:-.025em;font-weight:600}
h1{font-size:clamp(2rem,4vw,2.9rem);letter-spacing:-.035em}
h2{font-size:1.4rem;margin-bottom:.6em}
h3{font-size:1.05rem}
p{margin-bottom:1rem}

.num{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:50;
  background:rgba(11,14,16,.72);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:20px;height:68px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;color:var(--fg);font-weight:600;
  font-size:.95rem;letter-spacing:-.01em}
.brand:hover{color:var(--fg)}
.brand .mark{
  width:30px;height:30px;border-radius:9px;flex:none;
  background:linear-gradient(145deg,var(--teal),#0D8A7C);
  display:grid;place-items:center;
  font-size:.78rem;font-weight:700;color:#04211E;letter-spacing:-.02em;
}
.brand small{display:block;font-weight:400;color:var(--fg-3);font-size:.72rem;
  letter-spacing:0;line-height:1.2;margin-top:1px}
.site-nav{display:flex;gap:6px;font-size:.875rem;flex-wrap:wrap}
.site-nav a{color:var(--fg-2);padding:7px 12px;border-radius:8px;font-weight:500}
.site-nav a:hover{color:var(--fg);background:var(--card)}
.site-nav a[aria-current]{color:var(--mint);background:var(--teal-dim)}

/* ---------- market strip ---------- */
.strip{border-bottom:1px solid var(--line);background:rgba(18,23,26,.6)}
.strip .wrap{display:flex;gap:28px;flex-wrap:wrap;align-items:center;
  padding:10px 24px;font-size:.8rem;color:var(--fg-3)}
.strip b{color:var(--fg);font-weight:600;margin-left:6px}
.strip .src{margin-left:auto;font-size:.72rem;color:var(--fg-3)}
.strip .up{color:var(--amber)}
.strip .down{color:var(--mint)}

/* ---------- page head ---------- */
.page-head{padding:56px 0 8px;max-width:44rem}
.crumb{font-size:.78rem;color:var(--fg-3);margin-bottom:14px;letter-spacing:.01em}
.crumb a{color:var(--fg-3)}
.crumb a:hover{color:var(--mint)}
.lede{font-size:1.12rem;color:var(--fg-2);line-height:1.6;margin-top:18px}

/* ---------- calculator shell ---------- */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:36px 0 0;align-items:start}
@media(max-width:900px){.calc{grid-template-columns:1fr}}

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:26px;
}
.card > h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.11em;
  color:var(--fg-3);font-weight:600;margin-bottom:20px}
.card > h2 + h2{margin-top:30px}

/* inputs */
.field{margin-bottom:16px}
.field label{display:block;font-size:.83rem;font-weight:500;color:var(--fg-2);margin-bottom:7px}
.field .hint{color:var(--fg-3);font-weight:400}
.inp{position:relative;display:flex;align-items:center}
.inp .pre,.inp .post{position:absolute;color:var(--fg-3);font-size:.95rem;pointer-events:none}
.inp .pre{left:14px}
.inp .post{right:14px}
.inp input,.field input,.field select{
  width:100%;height:46px;padding:0 14px;
  font-family:var(--sans);font-size:1.02rem;font-weight:500;
  font-variant-numeric:tabular-nums;
  color:var(--fg);
  background:var(--bg-2);
  border:1px solid var(--line-2);
  border-radius:var(--r-sm);
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.inp.has-pre input{padding-left:28px}
.inp.has-post input{padding-right:34px}
.inp input:hover,.field select:hover{border-color:#3E4C56}
.inp input:focus,.field select:focus{
  outline:none;background:#0E1416;
  border-color:var(--teal);
  box-shadow:0 0 0 3px var(--teal-dim);
}
.field select{
  appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2364757F' stroke-width='1.8'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;
}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* segmented control */
.toggle{display:flex;gap:3px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:11px;padding:4px;margin-bottom:20px}
.toggle button{
  flex:1;padding:9px 8px;font-family:var(--sans);font-size:.82rem;font-weight:500;
  border:0;background:transparent;color:var(--fg-3);border-radius:8px;cursor:pointer;
  transition:.15s;white-space:nowrap;
}
.toggle button:hover{color:var(--fg-2)}
.toggle button[aria-pressed="true"]{background:var(--card-2);color:var(--mint);
  box-shadow:0 1px 3px rgba(0,0,0,.35)}

/* ---------- result panel ---------- */
.result{
  background:linear-gradient(165deg,#F1FAF7 0%,var(--card) 62%);
  border:1px solid var(--teal-line);
  position:relative;overflow:hidden;
}
.result::before{
  content:'';position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,transparent,var(--teal),transparent);
}
.result > h2{color:var(--mint);opacity:.75}

.big{
  font-size:clamp(2.6rem,6vw,3.5rem);
  font-weight:700;letter-spacing:-.04em;line-height:1;
  font-variant-numeric:tabular-nums;
  color:var(--fg);
  margin:0 0 8px;
}
.big.teal{
  background:linear-gradient(135deg,var(--mint),var(--teal));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.sub{color:var(--fg-3);font-size:.86rem;margin-bottom:24px;line-height:1.5}

.rows{border-top:1px solid var(--line)}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:11px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.row span{color:var(--fg-2);display:flex;align-items:center}
.row b{font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}
.row.total{border-bottom:0;padding-top:14px}
.row.total span,.row.total b{color:var(--fg);font-weight:700}
.key{width:8px;height:8px;border-radius:3px;margin-right:9px;flex:none}

.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:6px}
.donut{position:relative;flex:none}
.donut .center{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.donut .center small{display:block;font-size:.6rem;text-transform:uppercase;
  letter-spacing:.1em;color:var(--fg-3)}
.donut .center strong{font-size:.98rem;font-weight:600;color:var(--fg);
  font-variant-numeric:tabular-nums}

/* highlight slab inside result */
.slab{
  margin-top:20px;padding:15px 17px;border-radius:11px;
  background:var(--teal-dim);border:1px solid var(--teal-line);
  font-size:.9rem;line-height:1.55;color:var(--fg);
}
.slab b{color:var(--mint);font-weight:600}
.slab.bad{background:rgba(240,132,107,.1);border-color:rgba(240,132,107,.28)}
.slab.bad b{color:var(--rose)}

/* ---------- callouts ---------- */
.callout,.warnbox{
  border-radius:var(--r);padding:18px 20px;margin:26px 0;font-size:.92rem;
  line-height:1.6;border:1px solid;
}
.callout{background:var(--teal-dim);border-color:var(--teal-line);color:var(--fg-2)}
.callout b{color:var(--mint)}
.warnbox{background:rgba(240,179,107,.08);border-color:rgba(240,179,107,.25);color:var(--fg-2)}
.warnbox b{color:var(--amber)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:44px;padding:0 20px;border-radius:var(--r-sm);
  font-family:var(--sans);font-weight:600;font-size:.88rem;
  border:1px solid transparent;cursor:pointer;transition:.15s;white-space:nowrap;
}
.btn-primary{background:var(--teal);color:#04211E}
.btn-primary:hover{background:var(--mint);color:#04211E;transform:translateY(-1px)}
.btn-ghost{background:transparent;border-color:var(--line-2);color:var(--fg-2)}
.btn-ghost:hover{border-color:var(--teal);color:var(--mint);background:var(--teal-dim)}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}

/* ---------- capture ---------- */
.capture{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:28px;margin:24px 0;
  display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;
}
@media(max-width:760px){.capture{grid-template-columns:1fr}}
.capture h3{margin-bottom:5px;letter-spacing:-.015em}
.capture p{color:var(--fg-2);font-size:.9rem;margin:0;max-width:44ch}
.capture form{display:flex;gap:10px;flex-wrap:wrap}
.capture-status{font-size:.88rem;margin:12px 0 0;min-height:1.2em}
.capture-status.ok{color:var(--teal);font-weight:600}
.capture-status.err{color:var(--rose)}
.capture input[type=email]{
  flex:1;min-width:230px;height:44px;padding:0 14px;font-size:.95rem;
  font-family:var(--sans);color:var(--fg);
  background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-sm);
}
.capture input[type=email]::placeholder{color:var(--fg-3)}
.capture input[type=email]:focus{outline:none;border-color:var(--teal);
  box-shadow:0 0 0 3px var(--teal-dim)}
.fine{grid-column:1/-1;font-size:.75rem;color:var(--fg-3);margin:0}

/* ---------- table ---------- */
.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;margin:24px 0}
.table-head{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:20px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.table-head h3{margin:0}
.table-head .btn{height:38px;padding:0 14px;font-size:.82rem}
.scroll{max-height:440px;overflow:auto}
.scroll::-webkit-scrollbar{width:10px}
.scroll::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:6px;
  border:3px solid var(--card)}
table{width:100%;border-collapse:collapse;font-size:.86rem;
  font-variant-numeric:tabular-nums}
th,td{padding:11px 24px;text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left;color:var(--fg-3)}
thead th{position:sticky;top:0;background:var(--card-2);border-bottom:1px solid var(--line);
  color:var(--fg-3);font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;
  font-weight:600}
tbody td{border-bottom:1px solid rgba(36,45,51,.5);color:var(--fg-2)}
tbody td:nth-child(3){color:var(--mint)}
tbody tr:hover td{background:var(--card-2);color:var(--fg)}
tbody tr.year-end td{background:rgba(20,184,166,.05)}

/* ---------- hub tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
  gap:18px;margin:40px 0}
.tile{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:26px;color:var(--fg);position:relative;overflow:hidden;transition:.18s;
}
.tile:hover{border-color:var(--teal-line);background:var(--card-2);
  transform:translateY(-2px);color:var(--fg)}
.tile h3{margin:0 0 7px;letter-spacing:-.015em}
.tile p{margin:0;font-size:.89rem;color:var(--fg-2);line-height:1.55}
.tile .tag{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--mint);background:var(--teal-dim);
  border:1px solid var(--teal-line);
  padding:4px 9px;border-radius:6px;margin-bottom:14px}
.tile .go{color:var(--fg-3);font-size:.85rem;margin-top:14px;display:inline-block;
  font-weight:500}
.tile:hover .go{color:var(--mint)}

/* ---------- prose ---------- */
.prose{max-width:44rem;margin:56px 0}
.prose h2{margin-top:2.4rem;letter-spacing:-.02em}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--fg-2);line-height:1.75}
.prose strong{color:var(--fg);font-weight:600}
.prose em{color:var(--fg);font-style:italic}
.prose ul{padding-left:18px;margin-bottom:1rem}
.prose li{margin-bottom:9px;color:var(--fg-2);line-height:1.7}
.prose li::marker{color:var(--teal)}

.faq{margin-top:1.2rem}
.faq details{border:1px solid var(--line);border-radius:var(--r-sm);
  padding:16px 18px;margin-bottom:10px;background:var(--card);transition:.15s}
.faq details:hover{border-color:var(--line-2)}
.faq details[open]{border-color:var(--teal-line);background:var(--card-2)}
.faq summary{font-weight:500;cursor:pointer;color:var(--fg);list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--teal);font-size:1.2rem;font-weight:400;flex:none}
.faq details[open] summary::after{content:'−'}
.faq p{margin:12px 0 0;color:var(--fg-2);font-size:.92rem}

/* ---------- footer ---------- */
.site-foot{border-top:1px solid var(--line);margin-top:80px;padding:44px 0 56px;
  background:var(--bg-2)}
.site-foot .wrap{display:grid;gap:18px;max-width:1120px}
.site-foot .legal{font-size:.78rem;color:var(--fg-3);line-height:1.7;margin:0;
  max-width:70rem}
.site-foot strong{color:var(--fg-2);font-weight:600}
.eho{display:flex;align-items:center;gap:9px;color:var(--fg-2);font-weight:600;
  font-size:.82rem}
.eho svg{flex:none;color:var(--teal)}
.foot-links{display:flex;gap:20px;flex-wrap:wrap;padding-top:6px;font-size:.84rem}
.foot-links a{color:var(--fg-3)}
.foot-links a:hover{color:var(--mint)}
.foot-contact{font-size:.9rem;color:var(--fg-2);margin:0}
.foot-contact a{color:var(--teal);font-weight:600;text-decoration:none}
.foot-contact a:hover{color:var(--mint);text-decoration:underline}

/* ---------- draft banner ---------- */
.draft{background:var(--amber);color:#2A1B08;text-align:center;padding:11px 24px;
  font-size:.82rem;font-weight:600}

/* ---------- error ---------- */
.err{margin-top:12px;padding:13px 15px;border-radius:11px;
  background:rgba(240,132,107,.1);border:1px solid rgba(240,132,107,.28);
  font-size:.87rem;color:#F5A793;line-height:1.55}

/* ---------- print ---------- */
@media print{
  body{background:#fff;color:#000;background-image:none}
  .site-head,.strip,.capture,.btn-row,.table-head .btn,.faq,.draft{display:none!important}
  .card,.result,.table-wrap,.tile{background:#fff!important;border:1px solid #ccc!important;
    color:#000!important;break-inside:avoid}
  .big,.big.teal{color:#000!important;-webkit-text-fill-color:#000!important;
    background:none!important}
  .row span,.row b,.sub,.prose p,.prose li,h1,h2,h3{color:#000!important}
  .slab{background:#f4f4f4!important;border-color:#ccc!important}
  .slab b{color:#000!important}
  .scroll{max-height:none;overflow:visible}
  .site-foot{background:#fff;border-top:1px solid #ccc}
  .site-foot .legal,.site-foot strong,.eho,.site-foot .foot-contact,.site-foot .foot-contact a{color:#000!important}
}
