/* Simple, clean card styles */
.tmc-card {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 16px;
  margin: 16px 0;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
}
.tmc-card__title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 12px;
}
.tmc-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 640px) {
  .tmc-grid { grid-template-columns: 1fr; }
}
.tmc-field { display: flex; flex-direction: column; gap: 6px; }
.tmc-field > span { font-size: 13px; color: #334155; }
.tmc-field input {
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 16px;
  outline: none;
}
.tmc-field input:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.tmc-results { margin-top: 14px; display: grid; gap: 6px; }
.tmc-results hr { border: 0; border-top: 1px solid #e2e8f0; margin: 8px 0; }
.tmc-big { font-size: 18px; }
.tmc-sub { color: #475569; font-size: 14px; }

/* Down Payment layout */

.tmc-dp__pricebox{
  position:relative;
  display:flex;
  align-items:center;
  border:1px solid #e1e5ea;
  border-radius:10px;
  padding: 0.75rem 0.9rem 0.75rem 2.3rem;
  background:#f8f9fc;
}
.tmc-dp__currency{
  position:absolute; left:0.9rem; color:#6b7280; font-weight:600;
}
.tmc-dp__price input{
  border:0; background:transparent; width:100%; font-size:1.25rem;
}

.tmc-dp__label{ font-weight:600; margin: 1rem 0 0.5rem; display:flex; align-items:center; gap:.4rem; }
.tmc-help{
  border:1px solid #d1d5db; background:#fff; border-radius:999px; width:1.25rem; height:1.25rem; line-height:1.1rem; font-size:.75rem; color:#6b7280; cursor:help;
}

.tmc-dp__pills{ display:flex; flex-wrap:wrap; gap:.75rem; }
.tmc-pill{
  padding:.75rem 1.25rem; border:2px solid #e5e7eb; border-radius:999px; background:#fff; font-weight:700; cursor:pointer;
}
.tmc-pill[aria-selected="true"]{
  background:#eef2f7; border-color:#111827; box-shadow: 0 0 0 2px #111827 inset;
}

.tmc-dp__right{ text-align:center; align-content:start; }
.tmc-dp__title{ font-size:2rem; font-weight:800; color:#21242b; margin-top:.5rem; }
.tmc-dp__number{ font-size:4rem; font-weight:900; color:#128c2c; margin:.5rem 0 1rem; }
.tmc-dp__explainer{ font-size:1.25rem; line-height:1.6; color:#3a3f47; }
.tmc-dp__extras{ margin-top:1rem; color:#111827; }

.tmc-disclaimer{
  margin-top:1.25rem; font-size:.95rem; color:#111827; opacity:.9;
}

.tmc-req{ color:#ef4444; font-weight:800; }

/* Typography — default to Poppins for UI, Libre Baskerville for big headings */
.tmc-dp,
.tmc-card,
.tmc-field input,
.tmc-pill {
  font-family: "Poppins", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
}

.tmc-dp__result h1,
.tmc-amount--xl {
  font-family: "Libre Baskerville", ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
}

/* Layout */
.tmc-dp {
  display: block; /* prevent nested grid from creating extra columns */
}

.tmc-dp__form {
  display: grid;
  gap: 1rem;
}

.tmc-dp__pills {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
}

/* Result panel (right side) */
.tmc-dp__result {
  padding: 1.5rem 2rem;            /* add breathing room */
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(16,24,40,.04), 0 1px 2px rgba(16,24,40,.06);
}

/* Force the calculator to exactly two columns and prevent "phantom" columns */
.tmc-dp__grid{
  display: grid;
  grid-template-columns: minmax(0, 480px) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
  grid-auto-flow: row;
}
.tmc-dp__left, .tmc-dp__right { min-width: 0; }
.tmc-card.tmc-dp{ max-width: 1200px; margin: 0 auto; }
@media (max-width: 960px){
  .tmc-dp__grid{ grid-template-columns: 1fr; }
  .tmc-dp__right{ align-items:flex-start; text-align:left; }
}

.tmc-dp__result h1 {
  margin: 0 0 .5rem 0;
  line-height: 1.05;
  font-size: clamp(1.75rem, 2vw + 1rem, 2.75rem);
  letter-spacing: .2px;
}

.tmc-amount--xl {
  color: #17823a;                  /* green amount */
  font-weight: 700;
  font-size: clamp(2.25rem, 3.8vw + 1rem, 4rem);
}

/* Pills */
.tmc-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .9rem 1.25rem;
  min-width: 84px;
  border-radius: 999px;
  border: 1px solid #E5E7EB;
  background: #fff;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: all .15s ease;
}

.tmc-pill[aria-selected="true"] {
  outline: 3px solid #0F172A;      /* dark ring */
  outline-offset: 0;
  border-color: #0F172A;
}

/* Field */
.tmc-field {
  display: grid;
  gap: .4rem;
}

.tmc-field > span {
  font-weight: 600;
  color: #0F172A;
}

.tmc-field input {
  width: 100%;
  padding: 1.05rem 1.1rem;
  border-radius: 12px;
  border: 1px solid #E5E7EB;
  background: #F9FAFB;
  font-size: 1.05rem;
}

/* Custom % wrapper — starts hidden by [hidden] attribute from JS */
.tmc-dp__other[hidden] {
  display: none !important;
}

/* Meta text */
.tmc-muted {
  color: #475569;
  font-size: .975rem;
}

/* Responsive */
@media (max-width: 980px) {
  .tmc-dp {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .tmc-dp__result {
    padding: 1.25rem 1.25rem;
  }
}

/* --- Down Payment layout: exactly two columns --- */
/* make sure no extra column sneaks in */
/* right panel centering & spacing */
.tmc-dp__right{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 24px;
}

/* big number & title */
.tmc-dp__title{
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 700;
  font-size: clamp(20px, 2.2vw, 28px);
  margin-bottom: 6px;
}
.tmc-dp__number{
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 700;
  font-size: clamp(36px, 6vw, 72px);
  line-height: 1.05;
  color: #17842c; /* green from your mock */
  margin-bottom: 8px;
}
.tmc-dp__explainer,
.tmc-dp__extras,
.tmc-field span,
.tmc-pill,
.tmc-disclaimer{
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}

/* pills look/spacing (kept from before, tweak as needed) */
.tmc-dp__pills{ display:flex; flex-wrap:wrap; gap: 12px; }
.tmc-pill[aria-selected="true"]{ box-shadow: 0 0 0 3px #0b2239 inset; }

/* custom % stays hidden unless “Other” is active (JS already toggles) */
.tmc-dp__other[hidden]{ display:none !important; }

/* inputs */
.tmc-dp__pricebox{
  display:grid;
  grid-template-columns: auto 1fr;
  align-items:center;
  gap:10px;
}

/* BUY vs RENT ----------------------------------------------------------- */
.tmc-bvr { font-family: "Poppins", ui-sans-serif, system-ui; }

.tmc-bvr__grid {
  display: grid;
  grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

.tmc-bvr__left { min-width: 0; }
.tmc-bvr__right { min-width: 0; display: grid; gap: 16px; }

.tmc-bvr__panel {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 18px 22px;
  box-shadow: 0 1px 0 rgba(16,24,40,.04), 0 1px 2px rgba(16,24,40,.06);
}

.tmc-bvr__title {
  margin: 0 0 8px 0;
  font-family: "Libre Baskerville", ui-serif, Georgia, serif;
  font-size: clamp(18px, 2.1vw, 26px);
  line-height: 1.1;
}

.tmc-bvr__rows { display: grid; gap: 10px; }
.tmc-bvr__rows > div { display: flex; justify-content: space-between; gap: 12px; }
.tmc-bvr__rows hr { border: 0; border-top: 1px solid #e5e7eb; margin: 6px 0; }
.tmc-bvr__highlight strong { color: #17823a; font-family: "Libre Baskerville", ui-serif; }

.tmc-bvr__group { display: grid; gap: 14px; }
.tmc-bvr__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

@media (max-width: 960px) {
  .tmc-bvr__grid { grid-template-columns: 1fr; }
  .tmc-bvr__grid--2 { grid-template-columns: 1fr; }
}

/* ===== Debt-to-Income (DTI) ===== */
.tmc-dti {
  --gap: 16px;
  --radius: 14px;
  --card-shadow: 0 6px 24px rgba(0,0,0,.06);
  display:grid;
  gap:var(--gap);
  padding: 16px;
  border:1px solid #eef0f3;
  background:#fff;
  border-radius: 20px;
  box-shadow: var(--card-shadow);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

.tmc-dti__grid {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 24px;
}

.tmc-dti__field label {
  display:block;
  font-size:12px;
  font-weight:600;
  color:#556070;
  margin-bottom:6px;
}
.tmc-dti__input {
  display:flex;
  align-items:center;
  background:#f7f9fb;
  border:1px solid #e6eaef;
  border-radius: 12px;
  padding: 10px 12px;
}
.tmc-dti__input span {
  margin-right:8px;
  opacity:.7;
}
.tmc-dti__input input {
  width:100%;
  border:0;
  background:transparent;
  outline:none;
  font-size:16px;
}

.tmc-dti__right {
  border-top:1px solid #f0f2f5;
  margin-top:12px;
  padding-top:16px;
}
@media(min-width:900px){
  .tmc-dti { padding:24px 28px; }
  .tmc-dti__grid { grid-template-columns: 1fr 1fr; }
  .tmc-dti__right { grid-column: 1 / -1; }
}

.tmc-dti__title {
  font-size:20px;
  font-weight:700;
  margin:0 0 12px;
}

.tmc-dti__big {
  font-size:40px;
  line-height:1;
  font-weight:800;
  margin:2px 0 8px;
}

.tmc-dti__note {
  color:#6b7380;
  font-size:13px;
  margin-bottom:16px;
}

.tmc-dti__progress {
  position:relative;
  height:12px;
  background:#eef2f7;
  border-radius:999px;
  overflow:hidden;
}
.tmc-dti__progress-bar {
  height:100%;
  width:0%;
  transition:width .25s ease;
  background:#4f8cff; /* default */
}
.tmc-dti__progress[data-zone="good"]  .tmc-dti__progress-bar { background:#14b87a; }
.tmc-dti__progress[data-zone="warn"]  .tmc-dti__progress-bar { background:#f59e0b; }
.tmc-dti__progress[data-zone="bad"]   .tmc-dti__progress-bar { background:#ef4444; }

.tmc-dti__dot {
  position:absolute;
  top:50%;
  transform:translate(-50%, -50%);
  width:18px;height:18px;border-radius:50%;
  background:#1e56ff;
  box-shadow:0 0 0 3px rgba(30,86,255,.12);
}

.tmc-dti__rows { margin-top:14px; }
.tmc-dti__rows div { display:flex; justify-content:space-between; margin:8px 0; font-size:15px; }
.tmc-dti__rows strong { font-weight:700; }

.tmc-dti__foot {
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #f0f2f5;
  color:#6b7380;
  font-size:12px;
}

/* Home Equity — layout & styles */
.tmc-he__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.tmc-he__right {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 24px;
}
.tmc-he__title {
  font-size: 18px;
  font-weight: 600;
  color: #0f172a;
  margin-bottom: 8px;
}
.tmc-he__number {
  font-size: clamp(40px, 6vw, 88px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 4px 0 12px;
  color: #16a34a; /* default green */
}
.tmc-he__right[data-state="neg"] .tmc-he__number { color: #dc2626; } /* red */
.tmc-he__right[data-state="zero"] .tmc-he__number { color: #0f172a; } /* neutral */

.tmc-he__explainer {
  color: #475569;
  margin: 0 0 16px;
}

.tmc-he__rows {
  display: grid;
  gap: 8px;
  font-size: 16px;
}
.tmc-he__rows span { color: #475569; }
.tmc-he__rows strong { color: #0f172a; }

/* Refi layout */
.tmc-refi__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.tmc-refi__valwrap {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tmc-refi__prefix,
.tmc-refi__suffix {
  color: #334155;
  font-weight: 600;
  min-width: 16px;
}

.tmc-refi__range {
  width: 100%;
  margin-top: 10px;
}

.tmc-refi__minmax {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
}

/* Right panel */
.tmc-refi__right {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 24px;
}

.tmc-refi__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px dashed #e2e8f0;
}
.tmc-refi__row:last-of-type { border-bottom: 0; }
.tmc-refi__row span { color: #0f172a; font-weight: 600; }
.tmc-refi__row strong { font-size: 18px; color: #0f172a; }

.tmc-refi__savings {
  margin: 16px 0 8px;
}
.tmc-refi__savings-label {
  font-weight: 700;
  margin-bottom: 6px;
}
.tmc-refi__savings-big {
  font-size: clamp(36px, 6vw, 64px);
  line-height: 1.05;
  font-weight: 900;
  color: #16a34a;
  margin-top: -6px;
}
.tmc-refi__muted {
  color: #64748b;
}

.tmc-refi__cta {
  margin-top: 16px;
}
.tmc-refi__cta-title {
  font-size: 22px;
  font-weight: 800;
  margin-bottom: 6px;
}

/* Simple button */
.tmc-btn {
  display: inline-block;
  margin-top: 12px;
  padding: 12px 16px;
  border-radius: 10px;
  background: #0f172a;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  text-align: center;
}
.tmc-btn:hover { opacity: .9; }

/* Layout */
.tmc-aff__grid{display:grid;grid-template-columns:1fr 420px;gap:28px}
@media (max-width:900px){.tmc-aff__grid{grid-template-columns:1fr}}
.tmc-aff__left{display:grid;gap:28px}
.tmc-aff__panel{background:#f6f7fb;border-radius:14px;padding:20px}

/* Inputs */
.tmc-aff__valwrap{display:flex;align-items:center;gap:8px}
.tmc-aff__prefix,.tmc-aff__suffix{opacity:.6}
.tmc-aff__range{width:100%}
.tmc-aff__minmax{display:flex;justify-content:space-between;font-size:12px;opacity:.65;margin-top:6px}
.tmc-aff__help{margin:6px 0 0;font-size:12px;opacity:.7}

/* Right column */
.tmc-aff__panel-title{font-weight:800;margin-bottom:6px}
.tmc-aff__big{font-size:36px;font-weight:800;margin:4px 0 10px}
.tmc-aff__muted{font-size:13px;opacity:.75}
.tmc-aff__rows{margin-top:16px;display:grid;gap:12px}
.tmc-aff__rows > div{display:grid;grid-template-columns:1fr auto;align-items:end}
.tmc-aff__rowsub{grid-column:1/-1;font-size:12px;opacity:.6;margin-top:2px}
.tmc-aff__cta{margin-top:20px}
.tmc-aff__cta-title{font-weight:800;font-size:20px;margin-bottom:6px}
.tmc-btn{display:inline-block;padding:10px 16px;border-radius:10px;background:#0f172a;color:#fff;text-decoration:none}

.tmc-aff2__grid{display:grid;grid-template-columns:1fr 460px;gap:28px}
@media (max-width:960px){.tmc-aff2__grid{grid-template-columns:1fr}}
.tmc-aff2__left{display:grid;gap:18px}
.tmc-aff2__input{display:flex;align-items:center;gap:8px}
.tmc-aff2__input>span{opacity:.6}
.tmc-aff2__suffix{margin-left:6px;opacity:.6}
.tmc-check{display:flex;align-items:center;gap:8px;font-size:14px}
.tmc-aff2__subhead{font-weight:700;opacity:.7;margin-top:6px}
.tmc-aff2__headline{font-weight:700;margin-bottom:6px;opacity:.8}
.tmc-aff2__big{font-size:42px;font-weight:800;margin-bottom:6px}
.tmc-aff2__note{font-size:14px;opacity:.75;margin-bottom:14px}
.tmc-aff2__bar{position:relative;height:8px;margin:18px 0 26px}
.tmc-aff2__bar-track{position:absolute;inset:0;background:#e6ebf4;border-radius:999px}
.tmc-aff2__bar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:#16a34a}
.tmc-aff2__bar-dot{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:#1d4ed8;box-shadow:0 0 0 3px #eef2ff}
.tmc-aff2__bubble{position:absolute;top:-34px;transform:translateX(-50%);background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:4px 8px;font-size:12px;white-space:nowrap}
.tmc-aff2__rows{display:grid;gap:10px;margin-top:6px}
.tmc-aff2__rows>div{display:flex;justify-content:space-between}
.tmc-aff2__foot{font-size:12px;opacity:.65;margin-top:12px}
.tmc-aff2__smalllink{font-size:12px;text-decoration:underline;opacity:.7}

.tmc-compare__inputs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 20px;
  margin-bottom: 16px;
}
.tmc-compare__card { padding: 16px; border: 1px solid #e6e9ef; border-radius: 12px; background:#fff; }
.tmc-compare__note { margin: 8px 0 0; font-size: 12px; opacity: .75; }
.tmc-select { width: 100%; padding: 10px 12px; border: 1px solid #d9dee7; border-radius: 10px; background: #f8fafc; }
.tmc-compare__row--head { font-weight: 600; }
.tmc-compare__best { background: #f2faf4; border-left: 3px solid #2e7d32; }

/* --- Mortgage Comparison: results table --- */
.tmc-compare__results{
  margin-top:16px;
  border:1px solid #e6e9ef;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}

.tmc-compare__row{
  display:grid;
  grid-template-columns: 1.2fr repeat(3, 1fr); /* label + 3 loans */
  gap:12px;
  align-items:center;
  padding:10px 12px;
  border-bottom:1px solid #f0f2f7;
}
.tmc-compare__row:last-child{ border-bottom:0; }

.tmc-compare__row--head{
  background:#f6f8fb;
  font-weight:600;
}
.tmc-compare__row--head > div{
  padding:8px 10px;
}

.tmc-compare__row > div{ padding:6px 10px; }
.tmc-compare__row > div:first-child{ color:#475569; } /* left labels */

/* highlight best cells (set by JS) */
.tmc-compare__best{
  background:#f0fdf4;              /* soft green */
  box-shadow: inset 0 0 0 2px #22c55e20;
  border-radius:8px;
}

/* Small screen: allow horizontal scroll to keep columns aligned */
@media (max-width: 720px){
  .tmc-compare__results{
    overflow:auto;
    -webkit-overflow-scrolling: touch;
  }
  .tmc-compare__row{
    min-width:650px; /* keeps 4 cols visible; container can scroll */
  }
}