/*
Theme Name: GoSpend Ledger Desk
Template: generatepress
Description: GoSpend's custom child theme implementing the Ledger Desk design system.
Version: 1.0.0
Author: Nicholas Bulgin
*/

:root{
  --ink:#0A1A2F; --blue:#14417A; --blue-tint:#E8EEF7; --gold:#C9A227;
  --gold-light:#F0DFA0; --paper:#FAF8F3; --slate:#41505F; --ember:#DD6317;
  --rule: rgba(10,26,47,0.14);
  --rule-strong: rgba(10,26,47,0.28);
  --ember-text:#A8480C; /* darker than --ember; passes WCAG AA (5.8:1) on white for small/bold text. --ember itself is 3.58:1 and only safe as a background, border, or icon fill, never as small text on a light surface. */
  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --body: "Public Sans", -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", "SF Mono", Consolas, monospace;
}

*{box-sizing:border-box;}
html{background:var(--paper);}
body{
  margin:0; background:var(--paper); color:var(--slate);
  font-family:var(--body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; height:auto;}
.wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

/* ---- header ---- */
header.gs-top{position:sticky; top:0; z-index:20; background:rgba(250,248,243,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--rule-strong);}
.gs-top-inner{max-width:1160px; margin:0 auto; padding:16px 32px; display:flex; align-items:center; gap:32px;}
.gs-brand{display:flex; align-items:center; flex-shrink:0;}
.gs-brand svg{display:block; height:28px; width:auto;}
.gs-search{flex:1; max-width:360px; background:#fff; border:1px solid var(--rule); padding:0; display:flex; align-items:center; gap:10px;}
.gs-search svg{opacity:0.5; flex-shrink:0; margin-left:15px;}
.gs-search input{border:none; background:transparent; padding:9px 15px 9px 0; font-family:var(--mono); font-size:0.85rem; color:var(--ink); width:100%; outline:none;}
.gs-search input::placeholder{color:var(--slate);}
nav.gs-nav{display:flex; gap:26px; margin-left:auto; align-items:center; font-size:0.88rem; font-weight:600; color:var(--ink);}
nav.gs-nav ul{list-style:none; display:flex; gap:26px; margin:0; padding:0;}
nav.gs-nav a{color:var(--ink);}
nav.gs-nav a:hover{color:var(--blue);}

/* ---- statement meta bar ---- */
.gs-meta-bar{border-bottom:1px solid var(--rule); font-family:var(--mono); font-size:0.75rem; color:var(--slate);}
.gs-meta-bar .wrap{padding:9px 32px; display:flex; justify-content:space-between; text-transform:uppercase; letter-spacing:0.02em; flex-wrap:wrap; gap:6px;}

/* ---- hero ---- */
.gs-hero{padding:68px 0 60px; border-bottom:1px solid var(--rule-strong);}
.gs-hero-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start;}
.gs-eyebrow{font-family:var(--mono); font-size:0.75rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--blue); margin:0 0 16px; display:flex; align-items:center; gap:10px;}
.gs-eyebrow::before{content:""; width:20px; height:1px; background:var(--gold); display:inline-block;}
h1.gs-thesis{font-family:var(--display); font-weight:500; font-size:clamp(2.3rem,4.2vw,3.5rem); line-height:1.06; color:var(--ink); margin:0 0 22px; letter-spacing:-0.01em; text-wrap:balance;}
h1.gs-thesis i{font-style:italic; color:var(--blue);}
.gs-hero-sub{font-size:1.06rem; max-width:46ch; margin:0 0 30px; color:var(--slate);}
.gs-hero-actions{display:flex; gap:14px; margin-bottom:30px; flex-wrap:wrap;}
.gs-btn{font-family:var(--body); font-weight:700; font-size:0.92rem; padding:13px 24px; display:inline-block; border:1px solid transparent; cursor:pointer;}
.gs-btn-primary{background:var(--ink); color:var(--paper);}
.gs-btn-primary:hover{background:var(--blue); color:var(--paper);}
.gs-btn-ghost{border-color:var(--rule-strong); color:var(--ink); background:transparent;}
.gs-btn-ghost:hover{border-color:var(--ink);}
.gs-trust-row{display:flex; align-items:center; gap:12px; font-size:0.85rem; color:var(--slate);}
.gs-trust-row .av{width:28px; height:28px; border-radius:50%; background:var(--blue-tint); display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:0.62rem; color:var(--blue); flex-shrink:0;}
.gs-trust-row a{color:var(--blue); text-decoration:underline; text-underline-offset:2px;}

/* ---- statement strip ---- */
.gs-strip-wrap{position:relative;}
.gs-strip{background:#fff; border:1px solid var(--rule-strong); box-shadow:0 1px 0 var(--rule), 0 22px 44px -26px rgba(10,26,47,0.38); font-family:var(--mono); font-size:0.86rem;}
.gs-strip-head{background:var(--ink); color:var(--paper); padding:13px 20px; display:flex; justify-content:space-between; align-items:baseline;}
.gs-strip-head .label{font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; opacity:0.75;}
.gs-strip-head .calc-name{font-family:var(--body); font-weight:700; font-size:0.94rem;}
.gs-strip-body{padding:20px;}
.gs-strip-row{display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--rule); font-variant-numeric:tabular-nums;}
.gs-strip-row .k{color:var(--slate);}
.gs-strip-row .v{color:var(--ink); font-weight:500;}
.gs-strip-row .v.neg{color:var(--ember-text);}
.gs-strip-total{display:flex; justify-content:space-between; padding-top:15px; margin-top:5px; border-top:2px solid var(--gold); font-variant-numeric:tabular-nums;}
.gs-strip-total .k{font-family:var(--body); font-weight:700; color:var(--ink); font-size:0.86rem;}
.gs-strip-total .v{font-size:1.28rem; font-weight:700; color:var(--ink);}
.gs-strip-foot{padding:11px 20px; border-top:1px solid var(--rule); font-size:0.72rem; color:var(--slate); display:flex; justify-content:space-between;}
.gs-strip-foot a{color:var(--blue);}
.gs-float-chip{position:absolute; top:-16px; right:-18px; background:#fff; border:1px solid var(--rule-strong); box-shadow:0 12px 26px -12px rgba(10,26,47,0.35); padding:10px 14px; font-family:var(--mono); font-size:0.74rem;}
.gs-float-chip .cap{display:block; font-family:var(--body); font-size:0.62rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--slate); margin-bottom:2px;}
.gs-float-chip .val{color:var(--ember-text); font-weight:700;}

/* ---- catalog / ledger ---- */
.gs-catalog{padding:60px 0 88px;}
.gs-catalog-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:10px; flex-wrap:wrap; gap:16px;}
h2.gs-section-title{font-family:var(--display); font-weight:500; font-size:1.9rem; color:var(--ink); margin:0;}
.gs-section-sub{font-size:0.9rem; color:var(--slate);}
.gs-filters{display:flex; gap:8px; flex-wrap:wrap; margin-top:26px; border-top:2px solid var(--ink); padding-top:22px;}
.gs-filter{font-family:var(--mono); font-size:0.76rem; font-weight:500; padding:7px 14px; border:1px solid var(--rule-strong); color:var(--slate); text-transform:uppercase; letter-spacing:0.03em; background:transparent; cursor:pointer;}
.gs-filter.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}

.gs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong); margin-top:22px;}
.gs-card{background:#fff; padding:24px; transition:background .15s;}
.gs-card:hover{background:var(--blue-tint);}
.gs-card-top{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:16px;}
.gs-card-num{font-family:var(--mono); font-size:0.76rem; color:var(--rule-strong);}
.gs-card-badge{font-family:var(--mono); font-size:0.64rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--blue); background:var(--blue-tint); padding:3px 8px;}
.gs-card:hover .gs-card-badge{background:#fff;}
.gs-card h3{font-size:1.04rem; margin:0 0 8px; color:var(--ink); font-weight:700;}
.gs-card p{font-size:0.86rem; margin:0; color:var(--slate);}
.gs-card .go{display:block; margin-top:14px; font-family:var(--mono); font-size:0.74rem; color:var(--blue); font-weight:500;}
.gs-empty{padding:40px; text-align:center; color:var(--slate); background:#fff; grid-column:1/-1;}

/* ---- trust band ---- */
.gs-trust{background:var(--ink); color:var(--paper); padding:56px 0;}
.gs-trust-grid{display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:center;}
.gs-trust-avatar{width:64px; height:64px; border-radius:50%; overflow:hidden; background:var(--blue-tint); display:flex; align-items:center; justify-content:center; font-family:var(--display); font-size:1.4rem; color:var(--ink); font-weight:600; flex-shrink:0;}
.gs-trust-avatar img{width:100%; height:100%; object-fit:cover;}
.gs-trust-copy h3{font-family:var(--display); font-weight:500; font-size:1.3rem; margin:0 0 6px; color:#fff;}
.gs-trust-copy p{margin:0; font-size:0.94rem; color:rgba(250,248,243,0.75); max-width:56ch;}
.gs-trust-links{display:flex; flex-direction:column; gap:8px; font-size:0.85rem;}
.gs-trust-links a{color:var(--gold-light);}
.gs-trust-links a:hover{text-decoration:underline;}

/* ---- footer ---- */
footer.gs-footer{padding:40px 0 56px;}
.gs-footer-grid{display:flex; justify-content:space-between; align-items:flex-start; border-top:1px solid var(--rule); padding-top:26px; flex-wrap:wrap; gap:18px;}
.gs-footer-links{display:flex; gap:20px; flex-wrap:wrap;}
.gs-footer-links a{color:var(--slate); font-size:0.84rem;}
.gs-footer-links a:hover{color:var(--ink);}
.gs-footer-meta{font-family:var(--mono); font-size:0.74rem; color:var(--slate);}

/* ---- article ---- */
.gs-crumb-bar{border-bottom:1px solid var(--rule); font-family:var(--mono); font-size:0.75rem; color:var(--slate);}
.gs-crumb-bar .wrap{padding:11px 32px;}
.gs-crumb-bar a{color:var(--blue);}
.gs-crumb-bar .sep{margin:0 8px; opacity:0.5;}

.gs-article-head{padding:48px 0 36px; border-bottom:1px solid var(--rule-strong);}
.gs-article-head .inner{max-width:78ch;}
h1.gs-headline{font-family:var(--display); font-weight:500; font-size:clamp(2.1rem,4vw,3rem); color:var(--ink); margin:0 0 18px; letter-spacing:-0.01em; line-height:1.08; text-wrap:balance;}
.gs-dek{font-family:var(--display); font-style:italic; font-size:1.2rem; color:var(--slate); margin:0 0 26px; line-height:1.5; font-weight:400;}
.gs-byline{display:flex; align-items:center; gap:12px; font-size:0.86rem; color:var(--slate); padding-top:20px; border-top:1px solid var(--rule);}
.gs-byline .av{width:38px; height:38px; border-radius:50%; overflow:hidden; background:var(--blue-tint); color:var(--ink); display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:0.72rem; flex-shrink:0;}
.gs-byline .av img{width:100%; height:100%; object-fit:cover;}
.gs-byline b{color:var(--ink); font-weight:700;}
.gs-byline .sep{opacity:0.5;}

.gs-article-shell{padding:48px 0 60px;}
.gs-article-grid{display:grid; grid-template-columns:1fr 280px; gap:56px;}
.gs-article-body{max-width:66ch;}
.gs-article-body p{font-size:1.06rem; color:var(--slate); margin:0 0 20px;}
.gs-article-body h2{font-family:var(--display); font-weight:500; font-size:1.55rem; color:var(--ink); margin:38px 0 16px;}
.gs-article-body h2:first-child{margin-top:0;}
.gs-article-body a{color:var(--blue); text-decoration:underline;}
.gs-article-body ul, .gs-article-body ol{margin:0 0 20px; padding-left:22px;}
.gs-article-body li{margin-bottom:8px; font-size:1.02rem;}
.gs-article-body img{margin:8px 0 20px;}

.gs-disclaimer-note{margin-top:24px; padding-top:20px; border-top:1px solid var(--rule); font-size:0.86rem; color:var(--slate); font-style:italic;}
.gs-disclaimer-note a{color:var(--blue); font-style:normal;}

/* ---- reference table (quick "how much is X" answer table) ---- */
.gs-ref-table-wrap{margin:0 0 20px; border:1px solid var(--rule-strong); overflow-x:auto;}
.gs-ref-table{width:100%; border-collapse:collapse; font-size:0.92rem;}
.gs-ref-table th{font-family:var(--mono); font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--paper); background:var(--ink); padding:11px 14px; text-align:left; white-space:nowrap;}
.gs-ref-table td{padding:10px 14px; border-top:1px solid var(--rule); color:var(--slate); white-space:nowrap; font-variant-numeric:tabular-nums;}
.gs-ref-table tr:nth-child(even) td{background:var(--blue-tint);}
.gs-ref-table td:first-child, .gs-ref-table th:first-child{color:var(--ink); font-weight:700;}

/* ---- field glossary (per-input explainer list) ---- */
.gs-glossary{margin:0 0 20px; border-left:3px solid var(--gold);}
.gs-glossary-item{padding:14px 0 14px 20px; border-bottom:1px solid var(--rule);}
.gs-glossary-item:last-child{border-bottom:none;}
.gs-glossary-item h3{font-family:var(--display); font-weight:600; font-size:1.05rem; color:var(--ink); margin:0 0 6px;}
.gs-glossary-item p{font-size:0.96rem; color:var(--slate); margin:0;}

/* ---- FAQ (also schema-marked as FAQPage in wp_head) ---- */
.gs-faq{margin:0 0 20px;}
.gs-faq-item{padding:18px 0; border-bottom:1px solid var(--rule);}
.gs-faq-item:first-child{padding-top:0;}
.gs-faq-item:last-child{border-bottom:none;}
.gs-faq-q{font-family:var(--display); font-weight:600; font-size:1.08rem; color:var(--ink); margin:0 0 8px; position:relative; padding-left:22px;}
.gs-faq-q::before{content:"Q"; position:absolute; left:0; top:1px; font-family:var(--mono); font-size:0.72rem; font-weight:700; color:var(--gold-light); background:var(--ink); width:16px; height:16px; line-height:16px; text-align:center; border-radius:2px;}
.gs-faq-a{font-size:0.98rem; color:var(--slate); line-height:1.6;}
.gs-faq-a p{margin:0 0 10px;}
.gs-faq-a p:last-child{margin-bottom:0;}

/* ---- worked example (narrative "let's say..." callout, distinct from a data table) ---- */
.gs-worked-example{margin:0 0 20px; padding:20px 22px; border:1px solid var(--ink); background:var(--blue-tint);}
.gs-worked-example .eyebrow{display:block; font-family:var(--mono); font-size:0.68rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold-text, #7d6210); margin:0 0 10px;}
.gs-worked-example p{font-size:0.98rem; color:var(--slate); margin:0 0 10px;}
.gs-worked-example p:last-child{margin-bottom:0;}
.gs-worked-example strong{color:var(--ink);}

/* ---- pros/cons (or side-by-side A-vs-B) two column comparison ---- */
.gs-pros-cons-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; margin:0 0 20px; border:1px solid var(--rule-strong);}
.gs-pros-cons-col{padding:20px 22px;}
.gs-pros-cons-col + .gs-pros-cons-col{border-left:1px solid var(--rule-strong);}
.gs-pros-cons-col h3{font-family:var(--display); font-weight:600; font-size:1.05rem; color:var(--ink); margin:0 0 12px;}
.gs-pros-cons-col ul{list-style:none; margin:0; padding:0;}
.gs-pros-cons-col li{font-size:0.92rem; color:var(--slate); margin:0 0 10px; padding-left:20px; position:relative; line-height:1.45;}
.gs-pros-cons-col li:last-child{margin-bottom:0;}
.gs-pros-cons-col li.good::before{content:"+"; position:absolute; left:0; top:0; color:var(--blue); font-weight:700;}
.gs-pros-cons-col li.bad::before{content:"\2212"; position:absolute; left:0; top:0; color:var(--ember-text, #A8480C); font-weight:700;}
@media (max-width:640px){.gs-pros-cons-grid{grid-template-columns:1fr;} .gs-pros-cons-col + .gs-pros-cons-col{border-left:none; border-top:1px solid var(--rule-strong);}}

/* ---- "on this page" jump nav ---- */
.gs-jump-nav{margin:0 0 28px; padding:14px 18px; background:var(--ink); display:flex; flex-wrap:wrap; gap:6px 18px; align-items:baseline;}
.gs-jump-nav .label{font-family:var(--mono); font-size:0.66rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold-light); flex-basis:100%; margin-bottom:4px;}
.gs-jump-nav a{font-size:0.85rem; color:rgba(250,248,243,0.85); text-decoration:none; border-bottom:1px solid rgba(250,248,243,0.3);}
.gs-jump-nav a:hover{color:var(--paper); border-color:var(--gold);}

.gs-sidebar{position:sticky; top:90px; align-self:start;}
.gs-side-box{border:1px solid var(--rule-strong); background:#fff; padding:22px; margin-bottom:20px;}
.gs-side-box h4{font-family:var(--mono); font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--blue); margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--rule);}
.gs-side-link{display:block; padding:9px 0; border-bottom:1px solid var(--rule); font-size:0.88rem; font-weight:600; color:var(--ink);}
.gs-side-link:last-child{border-bottom:none;}
.gs-side-link:hover{color:var(--blue);}
.gs-side-link .d{display:block; font-size:0.78rem; font-weight:400; color:var(--slate); margin-top:2px;}
.gs-side-box.calc-box{background:var(--ink); border-color:var(--ink);}
.gs-side-box.calc-box h4{color:var(--gold-light); border-color:rgba(250,248,243,0.2);}
.gs-side-box.calc-box p{color:rgba(250,248,243,0.75); font-size:0.86rem; margin:0 0 14px;}
.gs-side-box.calc-box a.gs-btn{background:var(--gold); color:var(--ink); display:block; text-align:center; padding:11px; font-weight:700; font-size:0.85rem;}

/* ---- generic page (policy pages etc) ---- */
.gs-page{padding:56px 0 80px;}
.gs-page .inner{max-width:70ch;}
.gs-page h1.gs-headline{margin-bottom:30px;}
.gs-page .gs-article-body h2{margin-top:34px;}

/* ---- calculator ---- */
.gs-page-head-calc{padding:44px 0 8px;}
.gs-page-head-calc .gs-headline{margin-bottom:14px;}

.gs-calc-shell{padding:36px 0 60px; border-bottom:1px solid var(--rule-strong);}
.gs-calc-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:0; border:1px solid var(--rule-strong); background:#fff;}

.gs-inputs{padding:32px; border-right:1px solid var(--rule-strong);}
.gs-inputs h2{font-family:var(--mono); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--blue); margin:0 0 22px; padding-bottom:12px; border-bottom:1px solid var(--rule);}
.gs-field{margin-bottom:20px;}
.gs-field label{display:block; font-size:0.82rem; font-weight:600; color:var(--ink); margin-bottom:7px;}
.gs-field .hint{font-size:0.74rem; color:var(--slate); font-weight:400;}
.gs-field-input{display:flex; align-items:center; border:1px solid var(--rule-strong); background:var(--paper);}
.gs-field-input .prefix{font-family:var(--mono); padding:0 12px; color:var(--slate); border-right:1px solid var(--rule-strong); font-size:0.9rem;}
.gs-field-input input{border:none; background:transparent; padding:11px 12px; font-family:var(--mono); font-size:0.95rem; color:var(--ink); width:100%; font-variant-numeric:tabular-nums; outline:none;}
.gs-field-input input:focus-visible{outline:2px solid var(--blue); outline-offset:-2px;}
.gs-field-input .suffix{font-family:var(--mono); padding:0 12px; color:var(--slate); border-left:1px solid var(--rule-strong); font-size:0.85rem;}
.gs-field-input select{border:none; background:transparent; padding:11px 12px; font-family:var(--body); font-size:0.92rem; color:var(--ink); width:100%; outline:none; appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2341505F' stroke-width='1.5' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:32px;}
.gs-field-input select:focus-visible{outline:2px solid var(--blue); outline-offset:-2px;}
.gs-field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.gs-toggle-row{display:flex; gap:8px; margin-top:6px;}
.gs-toggle{font-family:var(--mono); font-size:0.78rem; padding:8px 14px; border:1px solid var(--rule-strong); background:var(--paper); color:var(--slate); flex:1; text-align:center; cursor:pointer;}
.gs-toggle.active{background:var(--ink); color:#fff; border-color:var(--ink);}
.gs-calc-error{color:var(--ember-text); font-size:0.85rem; margin-top:12px; margin-bottom:0;}

.gs-results{padding:32px; background:var(--paper);}
.gs-results .gs-strip-head{margin:-32px -32px 0; padding-left:32px; padding-right:32px;}
.gs-results .gs-strip-body{padding-top:22px; padding-left:0; padding-right:0;}
.gs-share-row{display:flex; gap:10px; margin-top:24px; padding-top:20px; border-top:1px solid var(--rule); flex-wrap:wrap;}
.gs-share-btn{font-family:var(--mono); font-size:0.76rem; padding:9px 14px; border:1px solid var(--rule-strong); color:var(--ink); background:#fff; flex:1; text-align:center; cursor:pointer; min-width:120px;}
.gs-share-btn:hover{border-color:var(--ink);}
.gs-share-btn-primary{background:var(--ink); color:#fff; border-color:var(--ink);}
.gs-copy-confirm{margin:10px 0 0; font-size:0.8rem; color:var(--blue);}

.gs-amort{padding:56px 0; border-bottom:1px solid var(--rule-strong);}
.gs-amort-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; flex-wrap:wrap; gap:8px;}
.gs-table-scroll{overflow-x:auto;}
table.gs-amort-table{width:100%; border-collapse:collapse; margin-top:24px; font-family:var(--mono); font-size:0.85rem;}
table.gs-amort-table th{text-align:right; font-family:var(--body); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--blue); padding:10px 12px; border-bottom:2px solid var(--ink);}
table.gs-amort-table th:first-child, table.gs-amort-table td:first-child{text-align:left;}
table.gs-amort-table td{padding:12px; text-align:right; border-bottom:1px solid var(--rule); font-variant-numeric:tabular-nums; color:var(--ink);}
table.gs-amort-table tr:hover td{background:var(--blue-tint);}
.gs-table-note{font-size:0.82rem; color:var(--slate); margin-top:14px;}

/* ---- debt payoff: multi-row inputs + side-by-side comparison ---- */
.gs-debt-row{border:1px solid var(--rule); padding:16px; margin-bottom:14px; position:relative; background:var(--paper);}
.gs-debt-row-grid{display:grid; grid-template-columns:1.3fr 1fr 0.7fr 1fr auto; gap:10px; align-items:end;}
.gs-debt-row-grid .gs-field{margin-bottom:0;}
.gs-debt-row-grid label{font-size:0.72rem; margin-bottom:4px;}
.gs-debt-remove{background:none; border:1px solid var(--rule-strong); color:var(--ember-text); width:32px; height:42px; font-size:1.1rem; cursor:pointer; line-height:1;}
.gs-debt-remove:hover{border-color:var(--ember-text); background:#fff;}
.gs-add-debt{width:100%; background:transparent; border:1px dashed var(--rule-strong); color:var(--blue); font-family:var(--mono); font-size:0.82rem; font-weight:600; padding:12px; cursor:pointer; margin-bottom:4px;}
.gs-add-debt:hover{border-color:var(--blue); background:var(--blue-tint);}
.gs-calc-warning{color:var(--ember-text); font-size:0.83rem; margin-top:12px; margin-bottom:0; padding:10px 12px; background:#fff; border:1px solid var(--ember-text); border-left-width:3px;}

.gs-calc-grid-debt{grid-template-columns:1.15fr 0.85fr;}
.gs-results-debt{display:flex; flex-direction:column;}
.gs-compare-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong);}
.gs-compare-col{background:#fff;}
.gs-compare-col .gs-strip-head{margin:0;}
.gs-compare-col .gs-strip-head .label{color:var(--gold-light); font-family:var(--body); font-weight:700; text-transform:none; font-size:0.7rem; opacity:1;}
.gs-compare-col .gs-strip-body{padding:18px 16px;}
.gs-compare-col .gs-strip-row{padding:8px 0; font-size:0.8rem;}
.gs-compare-col .gs-strip-total{padding-top:12px;}
.gs-compare-col .gs-strip-total .v{font-size:1.1rem;}

@media (max-width:600px){
	.gs-debt-row-grid{grid-template-columns:1fr 1fr; row-gap:10px;}
	.gs-debt-remove{grid-column:2; justify-self:end;}
	.gs-compare-grid{grid-template-columns:1fr;}
}

body.gs-embed{background:#fff; padding:0; margin:0;}
body.gs-embed .gs-calc-shell{padding:16px; border-bottom:none;}
body.gs-embed .wrap{max-width:100%; padding:0;}
body.gs-embed .gs-calc-grid{border:1px solid var(--rule-strong);}

@media (max-width:880px){
	.gs-calc-grid{grid-template-columns:1fr;}
	.gs-inputs{border-right:none; border-bottom:1px solid var(--rule-strong);}
	.gs-results .gs-strip-head{margin:-32px -32px 0;}
}

/* ---- 404 / search ---- */
.gs-notfound{padding:80px 0; text-align:center;}
.gs-notfound h1{font-family:var(--display); font-size:2.2rem; color:var(--ink);}

@media (max-width:900px){
  .gs-hero-grid{grid-template-columns:1fr;}
  .gs-grid{grid-template-columns:repeat(2,1fr);}
  .gs-search{display:none;}
  .gs-trust-grid{grid-template-columns:1fr; text-align:left;}
  .gs-article-grid{grid-template-columns:1fr;}
  .gs-sidebar{position:static;}
}
@media (max-width:600px){
  .gs-grid{grid-template-columns:1fr;}
  nav.gs-nav ul{gap:16px;}
}

/* ---- ledger topic filter (chips are links; assets/ledger-filter.js filters in place) ---- */
a.gs-filter{display:inline-block; text-decoration:none; transition:border-color .15s, color .15s;}
a.gs-filter:hover{border-color:var(--ink); color:var(--ink);}
a.gs-filter.active, a.gs-filter.active:hover{background:var(--ink); color:var(--paper); border-color:var(--ink);}
a.gs-filter:focus-visible{outline:2px solid var(--blue); outline-offset:2px;}
.gs-grid[aria-busy="true"]{opacity:.45; transition:opacity .15s;}
.gs-filter-more{margin:22px 0 0; font-family:var(--mono); font-size:0.8rem;}
.gs-filter-more a{color:var(--blue); text-decoration:underline; text-underline-offset:2px;}
.gs-sr{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
@media (prefers-reduced-motion: reduce){ a.gs-filter, .gs-grid{transition:none;} }

/* ---- accessibility + header (skip link, search toggle for small screens, <main> landmark) ---- */
.gs-skip{position:absolute; left:-9999px; top:8px; z-index:100; background:var(--ink); color:var(--paper); padding:10px 16px; font-weight:600; text-decoration:none;}
.gs-skip:focus{left:8px;}
.gs-main:focus{outline:none;}
.gs-search-toggle{display:none; align-items:center; justify-content:center; width:40px; height:40px; margin-left:auto; color:var(--ink); border:1px solid var(--rule-strong); background:#fff; text-decoration:none; flex-shrink:0;}
.gs-search-toggle:hover{border-color:var(--ink);}
.gs-search-toggle:focus-visible{outline:2px solid var(--blue); outline-offset:2px;}
.gs-search-toggle[aria-expanded="true"]{background:var(--ink); color:var(--paper); border-color:var(--ink);}
@media (max-width:900px){
  .gs-search-toggle{display:inline-flex;}
  nav.gs-nav{margin-left:0;}
  .gs-top-inner{gap:16px; padding:12px 16px; position:relative;}
  .gs-search.is-open{display:flex; position:absolute; top:100%; left:0; right:0; max-width:none; margin:0; border-width:0 0 1px; border-color:var(--rule-strong); padding:6px 16px; box-shadow:0 10px 24px -14px rgba(10,26,47,0.35);}
  .gs-search.is-open input{font-size:1rem; padding:12px 8px 12px 0;}
}

/* In-article ad: collapse the whole box (label included) when Google has nothing to serve */
.gs-ad:has(> ins.adsbygoogle[data-ad-status="unfilled"]) { display: none; }
.gs-ad { clear: both; }
