:root{--cream:#f7f1e7;--navy:#16253d;--plum:#5a2447;--maroon:#7b2e3b;--gold:#b8903b;--line:#ded4c6;--muted:#667085;--shadow:0 18px 45px rgba(22,37,61,.09);--radius:8px}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--cream);color:var(--navy);line-height:1.58}a{color:var(--plum);text-decoration:none}a:hover{text-decoration:underline}.site-header{position:sticky;top:0;z-index:5;background:rgba(247,241,231,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.nav-wrap{max-width:1180px;margin:auto;padding:14px 22px;display:flex;justify-content:space-between;gap:18px}.brand{font:700 1.35rem Georgia,serif;color:var(--navy)}.nav{display:flex;gap:18px;flex-wrap:wrap}.nav a{font-weight:700;color:var(--navy);font-size:.94rem}.container{max-width:1180px;margin:auto;padding:0 22px}.hero{padding:58px 0 36px;background:linear-gradient(180deg,#fffaf1 0%,var(--cream) 100%)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:34px;align-items:center}.eyebrow{font-weight:800;color:var(--plum);text-transform:uppercase;font-size:.76rem;letter-spacing:.12em}.hero h1{font:700 clamp(2.6rem,6vw,5.4rem)/.98 Georgia,serif;margin:10px 0 18px;letter-spacing:0}.inner-hero{padding:48px 0 20px}.inner-hero h1{font:700 clamp(1.9rem,4.5vw,2.9rem)/1.08 Georgia,serif;margin:8px 0 13px;letter-spacing:0;max-width:920px}.subhead{font-size:1.18rem;max-width:720px;color:#314159}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--navy);background:var(--navy);color:white;padding:11px 16px;font-weight:800;cursor:pointer;font-size:.95rem}.btn:hover{text-decoration:none;background:#0f1a2d}.btn.alt{background:white;color:var(--navy)}.btn.gold{background:var(--gold);border-color:var(--gold);color:#1d1720}.btn.small{padding:8px 11px;font-size:.86rem}.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:24px 0}.trust span,.card{background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:0 10px 28px rgba(22,37,61,.05)}.section{padding:38px 0}.section h2{font:700 clamp(1.7rem,3vw,2.35rem)/1.15 Georgia,serif;margin:0 0 16px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid.two{grid-template-columns:repeat(2,1fr)}.ad{border:1px solid #d9caa7;background:#fffaf1;color:#6c5b31;min-height:92px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin:28px 0}.ad.sidebar{min-height:260px;position:sticky;top:88px}.promo{background:#22182d;color:white;border-radius:var(--radius);padding:22px;border:1px solid #4a355b;margin-top:20px}.promo .label{color:#e8c46b;font-weight:800;text-transform:uppercase;font-size:.75rem;letter-spacing:.12em}.promo a{color:white}.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;align-items:start}.article{background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:var(--radius);padding:28px}.article p{text-align:justify}.article li{margin:7px 0}.faq details{background:white;border:1px solid var(--line);border-radius:6px;margin:10px 0;padding:13px}.faq summary{font-weight:800;cursor:pointer}.affiliate{border:1px dashed var(--gold);background:#fffaf1;padding:16px;border-radius:6px;margin:22px 0}.affiliate strong{display:block;color:var(--plum);margin-bottom:6px}.hero-visual{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.paper-mini{background:#fffdf8;border:1px solid #ddd3c3;padding:22px;min-height:330px}.paper-mini-head{display:flex;justify-content:space-between;border-bottom:3px solid var(--navy);padding-bottom:12px;margin-bottom:14px}.paper-line{height:10px;background:#ebe4d8;margin:10px 0;border-radius:2px}.paper-table{display:grid;grid-template-columns:1fr 70px 70px;gap:8px;margin-top:18px}.paper-table span{height:11px;background:#eee7db;border-radius:2px}.tool-shell{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tool-tabs{display:flex;background:#f3eadc;border-bottom:1px solid var(--line)}.tool-tabs button,.tool-tabs .tool-tab-link{flex:1;padding:14px 10px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--navy);font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}.tool-tabs button.active,.tool-tabs .tool-tab-link.active{background:white;color:var(--plum);box-shadow:inset 0 -3px 0 var(--gold)}.tool-tabs .tool-tab-link:hover{text-decoration:none}.tool-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.92fr)}.form-panel{padding:20px;border-right:1px solid var(--line)}.preview-panel{padding:20px;background:#f8f3ea}.privacy-note{font-size:.9rem;color:#4b5563;background:#f8f3ea;border:1px solid var(--line);padding:10px;border-radius:6px;margin:0 0 14px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}label{display:block;font-weight:800;font-size:.82rem;margin-bottom:5px}input,textarea{width:100%;border:1px solid #cfc5b7;border-radius:6px;padding:9px 10px;font:inherit;background:#fff;color:var(--navy)}textarea{min-height:74px;resize:vertical}.line-item{display:grid;grid-template-columns:1.6fr .55fr .75fr .8fr 34px;gap:8px;align-items:end;margin:8px 0}.icon-btn{border:1px solid var(--line);background:white;border-radius:6px;height:38px;cursor:pointer;color:var(--maroon);font-weight:900}.totals-box{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.total-row{display:flex;justify-content:space-between;margin:7px 0}.total-row.balance{font-weight:900;font-size:1.18rem;color:var(--plum);border-top:1px solid var(--line);padding-top:8px}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px}.doc-preview{background:white;color:#1d2939;min-height:640px;border:1px solid #ddd;padding:32px;box-shadow:0 8px 24px rgba(0,0,0,.08);font-size:13px}.doc-head{display:flex;justify-content:space-between;gap:24px;border-bottom:3px solid #16253d;padding-bottom:16px;margin-bottom:20px}.doc-logo{max-width:120px;max-height:70px;margin-bottom:8px}.doc-title{text-align:right}.doc-title h2{font:700 28px Georgia,serif;margin:0;color:#16253d}.doc-meta{font-size:12px;color:#475467}.bill-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0}.doc-table{width:100%;border-collapse:collapse;margin:16px 0}.doc-table th{background:#f4f0e8;text-align:left;font-size:12px;padding:8px;border-bottom:1px solid #d7d0c4}.doc-table td{padding:8px;border-bottom:1px solid #eee}.num{text-align:right}.doc-totals{margin-left:auto;width:min(360px,100%)}.doc-note{margin-top:20px;border-top:1px solid #eee;padding-top:12px}.site-footer{background:#111d31;color:white;margin-top:42px}.footer-grid{max-width:1180px;margin:auto;padding:34px 22px;display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:22px}.site-footer a{display:block;color:#f4e7cf;margin:6px 0}.fine{color:#c7d0df;font-size:.88rem}.error-page{text-align:center;padding:70px 0}@media(max-width:900px){.hero-grid,.tool-body,.content-wrap,.footer-grid{grid-template-columns:1fr}.form-panel{border-right:0;border-bottom:1px solid var(--line)}.trust,.grid,.grid.two{grid-template-columns:1fr 1fr}.article p{text-align:left}.ad.sidebar{position:static;min-height:110px}.nav-wrap{align-items:flex-start}.nav{gap:10px}}@media(max-width:620px){.nav-wrap{display:block}.nav{margin-top:10px}.trust,.grid,.grid.two,.form-grid,.bill-row{grid-template-columns:1fr}.line-item{grid-template-columns:1fr 70px 86px 86px 34px}.doc-preview{padding:18px;font-size:12px}.doc-head{display:block}.doc-title{text-align:left;margin-top:12px}.actions .btn{flex:1 1 44%}}@media print{body{background:white}.site-header,.site-footer,.form-panel,.tool-tabs,.privacy-note,.actions,.ad,.promo{display:none!important}.tool-shell,.preview-panel{border:0;box-shadow:none;padding:0;background:white}.tool-body{display:block}.doc-preview{box-shadow:none;border:0;min-height:0;padding:0}.container{max-width:none;padding:0}.section{padding:0}@page{margin:.55in}}
.generator-fallback{background:#fffaf1;border:1px solid var(--line);border-radius:6px;padding:14px;color:#475467}.pdf-note{flex-basis:100%;font-size:.86rem;color:#667085;margin:0}.ad{min-height:96px;contain-intrinsic-size:96px;background:#fffaf1;color:#7a6a45}.site-footer .fine a{color:#f4e7cf;text-decoration:underline}@media(max-width:620px){.line-item{grid-template-columns:1fr 1fr 42px}.line-item label:first-child{grid-column:1/-1}.line-item label:nth-child(4){grid-column:1/3}.line-item .icon-btn{grid-column:3;grid-row:2;height:38px}.tool-tabs button,.tool-tabs .tool-tab-link{font-size:.9rem;padding:12px 6px}}


/* V8 performance, monetization, and accessibility refinements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-radius: 6px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.ad-slot,
.ad {
  width: 100%;
  border: 1px solid #d9caa7;
  background: #fffaf1;
  color: #7a6a45;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 28px 0;
  overflow: hidden;
}

.ad-slot--leaderboard {
  min-height: 100px;
  contain-intrinsic-size: 100px;
}

.ad-slot--incontent,
.ad:not(.sidebar) {
  min-height: 280px;
  contain-intrinsic-size: 280px;
}

.ad-slot--sidebar,
.ad.sidebar {
  min-height: 250px;
  contain-intrinsic-size: 250px;
  position: sticky;
  top: 88px;
}

@media(max-width:900px) {
  .ad-slot--sidebar,
  .ad.sidebar {
    position: static;
  }
}

@media(max-width:620px) {
  .ad-slot--leaderboard {
    min-height: 100px;
    contain-intrinsic-size: 100px;
  }

  .ad-slot--incontent,
  .ad-slot--sidebar,
  .ad:not(.sidebar),
  .ad.sidebar {
    min-height: 250px;
    contain-intrinsic-size: 250px;
  }
}

@media print {
  .ad-slot,
  .ad {
    display: none !important;
  }
}


/* V8.9.2 warm paper trust card refinement
   Replaces the temporary purple treatment with the CPW paper/gold/navy palette. */
.container.trust {
  margin: 24px auto 0;
  gap: 14px;
}

.trust span {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: linear-gradient(180deg, #fffdf8 0%, #fff8ea 100%);
  color: var(--navy);
  border: 1px solid #e0cfa8;
  border-top: 4px solid #b8862f;
  border-radius: var(--radius);
  padding: 15px 14px 14px;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(22, 37, 61, .06);
}

.workflow-card {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}

.workflow-kicker {
  color: var(--plum);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .75rem;
}

.workflow-card h2 {
  margin: 0;
  font: 700 clamp(1.7rem, 3vw, 2.5rem)/1.08 Georgia, serif;
  color: var(--navy);
}

.workflow-chain {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 0 8px;
}

.workflow-chain span {
  border: 1px solid var(--line);
  background: #fffaf1;
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 900;
  color: var(--navy);
}

.workflow-chain strong {
  color: var(--gold);
  font-size: 1.15rem;
}

.workflow-steps {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.workflow-steps li {
  border-left: 4px solid var(--gold);
  background: #fffdf8;
  padding: 10px 12px;
  border-radius: 6px;
}

.workflow-steps strong,
.workflow-steps span {
  display: block;
}

.workflow-steps span {
  color: #4b5563;
  font-size: .93rem;
}

.workflow-privacy,
.convert-helper {
  color: #4b5563;
  font-size: .88rem;
  margin: 0;
}

.convert-helper {
  flex-basis: 100%;
  background: #fffaf1;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 9px 10px;
}

.doc-reference {
  color: #5a2447;
  font-weight: 800;
  margin-top: 6px;
}

button[hidden],
[hidden] {
  display: none !important;
}

@media(max-width:900px) {
  .container.trust {
    margin-top: 18px;
  }
}

/* V8.2 global currency, logo/address header rebuild, and discount-row refinements */
select {
  width: 100%;
  border: 1px solid #cfc5b7;
  border-radius: 6px;
  padding: 9px 10px;
  font: inherit;
  background: #fff;
  color: var(--navy);
}

.field-hint {
  margin: 4px 0 0;
  color: #667085;
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.35;
}

.doc-brand {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  max-width: 52%;
}

.doc-brand.no-logo {
  display: block;
}

.doc-business {
  min-width: 0;
  padding-top: 2px;
}

.doc-logo {
  width: 76px;
  max-width: 76px;
  max-height: 76px;
  object-fit: contain;
  flex: 0 0 76px;
  margin-bottom: 0;
}

.doc-title {
  flex: 0 0 auto;
}

.doc-totals {
  width: min(280px, 100%);
}

.total-row {
  gap: 18px;
}

.total-row[hidden],
.custom-currency-field[hidden] {
  display: none !important;
}

@media(max-width:620px) {
  .doc-brand {
    max-width: 100%;
  }
}


/* V8.4 invoice/document output refinements */
.bill-row-single{grid-template-columns:1fr}.doc-table{table-layout:fixed}.doc-table .col-desc{width:52%}.doc-table .col-qty{width:10%}.doc-table .col-rate{width:18%}.doc-table .col-amount{width:20%}.doc-table th.num,.doc-table td.num{text-align:right}.doc-table td{vertical-align:top}.doc-note{break-inside:avoid}


/* V8.5 generator sidebar and standalone business calculators */
.preview-panel {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.generator-sidebar {
  background: #fffdf8;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(22,37,61,.05);
  padding: 18px;
  color: var(--navy);
}

.generator-sidebar h3 {
  margin: 4px 0 12px;
  font: 700 1.15rem/1.2 Georgia, serif;
}

.sidebar-kicker {
  margin: 0;
  color: var(--plum);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
}

.sidebar-steps {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  counter-reset: sidebar-step;
}

.sidebar-steps li {
  counter-increment: sidebar-step;
  display: grid;
  grid-template-columns: 30px minmax(0,1fr);
  gap: 10px;
  align-items: start;
}

.sidebar-steps li::before {
  content: counter(sidebar-step);
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: #f3eadc;
  color: var(--plum);
  border: 1px solid var(--line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}

.sidebar-steps strong,
.sidebar-steps span {
  display: block;
}

.sidebar-steps strong {
  font-size: .92rem;
}

.sidebar-steps span,
.utility-link small,
.sidebar-disclosure {
  color: #4b5563;
  font-size: .84rem;
  line-height: 1.45;
}

.utility-card {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #f8f3ea;
}

.utility-link {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  margin-top: 10px;
  border: 1px solid #d8cbbd;
  border-radius: 8px;
  background: #fff;
  color: var(--navy);
  text-decoration: none;
}

.utility-link:hover {
  text-decoration: none;
  border-color: var(--gold);
  box-shadow: 0 10px 22px rgba(22,37,61,.08);
}

.utility-link > span {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #fffaf1;
  border: 1px solid var(--line);
}

.utility-link strong,
.utility-link small {
  display: block;
}

.sidebar-disclosure {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.calculator-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 310px;
  gap: 26px;
  align-items: start;
}

.calculator-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 24px;
}

.calculator-card h2 {
  margin-top: 0;
}

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

.calc-grid .full {
  grid-column: 1 / -1;
}

.choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

.choice-pill {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  background: #fffaf1;
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 800;
  cursor: pointer;
}

.choice-pill input {
  width: auto;
}

.result-panel {
  margin-top: 18px;
  padding: 18px;
  border-radius: var(--radius);
  background: #f8f3ea;
  border: 1px solid var(--line);
  display: grid;
  gap: 10px;
}

.result-row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid rgba(222,212,198,.7);
  padding-bottom: 10px;
}

.result-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.result-row strong {
  font-size: 1.25rem;
  color: var(--plum);
  text-align: right;
}

.formula-note,
.disclaimer-note {
  margin-top: 16px;
  padding: 14px;
  border-radius: 6px;
  background: #fffaf1;
  border: 1px solid var(--line);
  color: #4b5563;
  font-size: .93rem;
}

.calculator-aside .ad-slot,
.calculator-aside .ad {
  margin-top: 0;
}

.resource-grid,
.affiliate-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
  margin-top: 16px;
}

.resource-card,
.affiliate-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 15px;
  color: var(--navy);
  text-decoration: none;
}

.resource-card:hover,
.affiliate-card:hover {
  text-decoration: none;
  border-color: var(--gold);
  box-shadow: 0 10px 22px rgba(22,37,61,.08);
}

.resource-card strong,
.affiliate-card strong,
.resource-card span,
.affiliate-card span {
  display: block;
}

.resource-card span,
.affiliate-card span {
  color: #4b5563;
  font-size: .9rem;
  margin-top: 4px;
}

.site-footer a[rel~="external"]::after {
  content: "";
}

@media(max-width:900px) {
  .calculator-layout {
    grid-template-columns: 1fr;
  }
  .resource-grid,
  .affiliate-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media(max-width:620px) {
  .calc-grid,
  .resource-grid,
  .affiliate-grid {
    grid-template-columns: 1fr;
  }
  .result-row {
    display: block;
  }
  .result-row strong {
    display: block;
    text-align: left;
    margin-top: 4px;
  }
}

@media print {
  .generator-sidebar,
  .calculator-aside,
  .resource-grid,
  .affiliate-grid {
    display: none !important;
  }
}


/* V8.6 sidebar layout repair
   Fixes the right-column helper panel where step descriptions and calculator descriptions
   were auto-placing into the narrow icon/number column and wrapping one word per line. */
.sidebar-steps li {
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 12px;
  row-gap: 2px;
}

.sidebar-steps li::before {
  grid-column: 1;
  grid-row: 1 / span 2;
}

.sidebar-steps li > strong {
  grid-column: 2;
  grid-row: 1;
  padding-top: 4px;
  white-space: normal;
}

.sidebar-steps li > span {
  grid-column: 2;
  grid-row: 2;
  max-width: 62ch;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

.utility-link {
  grid-template-columns: 38px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 12px;
  row-gap: 2px;
  align-items: start;
}

.utility-link > span {
  grid-column: 1;
  grid-row: 1 / span 2;
  margin-top: 0;
}

.utility-link > strong {
  grid-column: 2;
  grid-row: 1;
  padding-top: 2px;
  white-space: normal;
}

.utility-link > small {
  grid-column: 2;
  grid-row: 2;
  max-width: 56ch;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

/* V8.7 generator sidebar content balance
   Fills the lower right-column whitespace with compact, useful utility/SEO content
   without allowing the helper area to visually overpower the form column. */
.generator-sidebar {
  padding: 16px;
}

.generator-sidebar h3 {
  font-size: 1.04rem;
  margin-bottom: 10px;
}

.sidebar-steps {
  gap: 8px;
}

.sidebar-steps li::before,
.utility-link > span {
  width: 30px;
  height: 30px;
  font-size: .92rem;
}

.sidebar-steps li {
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 10px;
}

.sidebar-steps strong {
  font-size: .88rem;
}

.sidebar-steps span,
.utility-link small,
.sidebar-disclosure,
.sidebar-mini-card p,
.sidebar-mini-card a,
.template-mini-grid a {
  font-size: .8rem;
  line-height: 1.4;
}

.utility-card {
  margin-top: 16px;
  padding: 12px;
}

.utility-link {
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 10px;
  padding: 10px;
  margin-top: 8px;
}

.utility-link > strong {
  font-size: .88rem;
}

.sidebar-mini-card {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fffdf8;
}

.sidebar-mini-card h3 {
  margin: 4px 0 6px;
  font-size: 1rem;
}

.sidebar-mini-card p {
  margin: 0;
  color: #4b5563;
}

.sidebar-mini-card a {
  display: inline-block;
  margin-top: 7px;
  color: var(--plum);
  font-weight: 800;
  text-decoration: none;
}

.sidebar-mini-card a:hover {
  text-decoration: underline;
}

.template-helper {
  background: #f8f3ea;
}

.template-mini-grid {
  margin-top: 8px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.template-mini-grid a {
  margin: 0;
  padding: 7px 8px;
  border: 1px solid #d8cbbd;
  border-radius: 8px;
  background: #fff;
  color: var(--navy);
  font-weight: 800;
  text-align: center;
}

.sidebar-disclosure {
  margin-top: 12px;
  padding-top: 10px;
}

@media(max-width:620px) {
  .template-mini-grid {
    grid-template-columns: 1fr;
  }
}


/* V8.8 footer restructuring
   Rebalances the footer into four equal utility columns and moves the ClearPaperwork
   positioning statement into a centered footer-bottom line with copyright. */
.site-footer {
  background: #111d31;
  color: white;
  margin-top: 42px;
}

.footer-grid {
  max-width: 1180px;
  margin: auto;
  padding: 34px 22px 18px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  align-items: start;
}

.site-footer strong {
  display: block;
  color: #fff;
  font-size: 1rem;
  margin: 0 0 8px;
}

.site-footer a {
  display: block;
  color: #f4e7cf;
  margin: 6px 0;
  line-height: 1.45;
}

.footer-bottom {
  max-width: 1180px;
  margin: 0 auto;
  padding: 16px 22px 24px;
  border-top: 1px solid rgba(244,231,207,.16);
  text-align: center;
}

.footer-tagline {
  color: #d8dfec;
  font-size: .92rem;
  margin: 0 0 7px;
}

.footer-copy {
  color: #b9c4d4;
  font-size: .84rem;
  margin: 0;
}

@media(max-width:900px) {
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media(max-width:620px) {
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .footer-bottom {
    text-align: left;
  }
}

/* V8.9.5 taxable line-item, clean-row, and print-orphan controls */
.item-tax-hint {
  margin: -4px 0 10px;
}

.item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 10px;
}

.line-item {
  grid-template-columns: minmax(150px, 1.6fr) minmax(64px, .5fr) minmax(82px, .7fr) minmax(88px, .75fr) minmax(74px, .56fr) 34px;
}

.tax-toggle {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
  justify-content: flex-end;
  min-height: 58px;
}

.tax-toggle span {
  font-weight: 800;
  font-size: .82rem;
}

.tax-toggle input[type="checkbox"] {
  width: auto;
  min-width: 22px;
  height: 22px;
  margin: 0;
  accent-color: var(--plum);
}

.doc-line-desc {
  display: inline;
}

.amount-with-tax {
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 4px;
  width: 100%;
  white-space: nowrap;
}

.tax-marker {
  display: inline;
  color: var(--plum);
  font-size: .72em;
  font-weight: 900;
  line-height: 1;
  vertical-align: baseline;
  background: transparent;
}

.tax-legend {
  display: flex;
  align-items: baseline;
  gap: 5px;
  margin: -4px 0 8px;
  color: #475467;
  font-size: .82rem;
}

.doc-table thead {
  display: table-header-group;
}

.doc-table tr,
.doc-totals,
.doc-note {
  break-inside: avoid;
  page-break-inside: avoid;
}

.continued-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  border-bottom: 2px solid #16253d;
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.continued-header > .doc-meta {
  text-align: right;
}

.continued-note {
  color: #475467;
  font-size: .86rem;
  text-align: right;
  margin: 8px 0 0;
  font-style: italic;
}

.print-page {
  break-after: page;
  page-break-after: always;
}

.print-page.last-page {
  break-after: auto;
  page-break-after: auto;
}

@media(max-width:900px) {
  .line-item {
    grid-template-columns: 1fr 1fr 1fr 42px;
  }

  .line-item label:first-child {
    grid-column: 1 / -1;
  }

  .line-item label:nth-child(4) {
    grid-column: span 2;
  }

  .tax-toggle {
    min-height: 0;
  }

  .line-item .icon-btn {
    height: 38px;
  }
}

@media(max-width:620px) {
  .line-item {
    grid-template-columns: 1fr 1fr 42px;
  }

  .line-item label:first-child,
  .line-item label:nth-child(4) {
    grid-column: 1 / -1;
  }

  .tax-toggle {
    grid-column: 1 / 3;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
  }

  .line-item .icon-btn {
    grid-column: 3;
    grid-row: 4;
  }
}

@media print {
  .doc-table thead {
    display: table-header-group;
  }

  .doc-table tr,
  .doc-totals,
  .doc-note {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}


/* V8.9.2 global card color system
   Keeps ClearPaperwork aligned to a utility-friendly paper, navy, and warm-gold palette.
   Short action/badge cards are centered; reading-heavy cards remain left-aligned. */
:root {
  --cpw-card-bg: #fffdf8;
  --cpw-card-bg-soft: #fff8ea;
  --cpw-card-border: #e0cfa8;
  --cpw-card-accent: #b8862f;
  --cpw-card-shadow: 0 10px 24px rgba(22, 37, 61, .06);
  --cpw-card-shadow-hover: 0 14px 30px rgba(22, 37, 61, .09);
}

.card,
.hero-visual,
.generator-sidebar,
.calculator-card,
.resource-card,
.affiliate-card,
.sidebar-mini-card,
.utility-card,
.article,
.faq details,
.formula-note,
.disclaimer-note,
.result-panel,
.convert-helper,
.privacy-note {
  background: var(--cpw-card-bg);
  border-color: var(--cpw-card-border);
  color: var(--navy);
  box-shadow: var(--cpw-card-shadow);
}

.card,
.resource-card,
.affiliate-card,
.sidebar-mini-card,
.utility-card,
.calculator-card,
.generator-sidebar,
.article {
  border-top: 3px solid rgba(184, 134, 47, .75);
}

.card:hover,
.resource-card:hover,
.affiliate-card:hover,
.utility-link:hover,
.template-mini-grid a:hover {
  border-color: var(--cpw-card-accent);
  box-shadow: var(--cpw-card-shadow-hover);
}

.workflow-steps li,
.workflow-chain span,
.choice-pill,
.utility-link,
.template-mini-grid a,
.doc-table th {
  background: var(--cpw-card-bg-soft);
  border-color: var(--cpw-card-border);
}

.sidebar-steps li::before,
.utility-link > span,
.workflow-steps {
  background: var(--cpw-card-bg-soft);
  border-color: var(--cpw-card-border);
  color: var(--cpw-card-accent);
}

/* Center only compact, scannable cards. Keep article/template/blog paragraphs left-aligned. */
.trust span,
.resource-card,
.affiliate-card,
.template-mini-grid a,
#generator + .section .grid .card,
#generator + .section + .section .grid .card {
  text-align: center;
}

#generator + .section .grid .card,
#generator + .section + .section .grid .card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#generator + .section + .section .grid .card {
  font-weight: 800;
  min-height: 72px;
}

.card h3,
.resource-card strong,
.affiliate-card strong {
  color: var(--navy);
}

.resource-card span,
.affiliate-card span,
.card p,
.sidebar-mini-card p {
  color: #4b5563;
}

.promo {
  background: #111d31;
  border-color: rgba(224, 207, 168, .35);
  box-shadow: var(--cpw-card-shadow);
}

.promo .label {
  color: #e6c06a;
}


/* V8.9.5 shared print/PDF compacting for protected totals and measured print layout. */
@media print {
  @page { size: letter; margin: .45in; }
  body { font-size: 11.6px; line-height: 1.24; }
  .doc-head { padding-bottom: 10px; margin-bottom: 13px; }
  .doc-logo { width: 68px; max-width: 68px; max-height: 68px; object-fit: contain; }
  .doc-title h2 { font-size: 25px; }
  .doc-meta { font-size: 10.8px; line-height: 1.24; }
  .bill-row { margin: 11px 0; }
  .doc-table { table-layout: fixed; margin: 10px 0 5px; }
  .doc-table th { padding: 4px 7px; font-size: 11.1px; }
  .doc-table td { padding: 4px 7px; }
  .doc-totals { width: min(360px, 100%); margin-top: 8px; }
  .total-row { margin: 2px 0; line-height: 1.2; }
  .total-row span:first-child,
  .total-row span:last-child { white-space: nowrap; }
  .total-row span:last-child { text-align: right; }
  .total-row.balance { font-size: 1.05rem; padding-top: 6px; margin-top: 5px; }
  .doc-note { margin-top: 12px; padding-top: 9px; }
  .continued-header { padding-bottom: 8px; margin-bottom: 9px; }
}


/* V8.9.5 automatic line-number column and dynamic pagination support */
.doc-table .col-line { width: 7%; }
.doc-table .col-desc { width: 45%; }
.doc-table .col-qty { width: 10%; }
.doc-table .col-rate { width: 18%; }
.doc-table .col-amount { width: 20%; }
.doc-table th.line-no,
.doc-table td.line-no {
  text-align: center;
  color: #475467;
  white-space: nowrap;
}
.doc-table td.line-no {
  font-size: .92em;
}
@media print {
  .doc-table .col-line { width: 7%; }
  .doc-table .col-desc { width: 45%; }
  .doc-table .col-qty { width: 10%; }
  .doc-table .col-rate { width: 18%; }
  .doc-table .col-amount { width: 20%; }
  .doc-table th.line-no,
  .doc-table td.line-no {
    text-align: center;
    color: #475467;
  }
}


/* V9.0 production SEO and security-support content blocks */
.seo-copy p,
.seo-copy li { max-width: 78ch; }
.seo-copy .grid.two { margin-top: 16px; }
.info-list { margin: 14px 0 0; padding-left: 20px; }
.info-list li { margin: 8px 0; }
.tool-callout { border: 1px solid var(--cpw-card-border); background: var(--cpw-card-bg-soft); border-left: 5px solid var(--cpw-card-accent); border-radius: var(--radius); padding: 16px; margin: 22px 0; box-shadow: var(--cpw-card-shadow); }
.tool-callout strong { display: block; color: var(--plum); margin-bottom: 6px; }
.tool-callout p { margin: 0 0 12px; text-align: left; }
.checklist-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 14px; }
.checklist-grid .card { text-align: left; }
.template-box { background: #fff; border: 1px solid var(--cpw-card-border); border-radius: var(--radius); padding: 18px; margin: 18px 0; white-space: pre-line; }
@media(max-width:900px){ .checklist-grid { grid-template-columns: 1fr; } }
@media print { .seo-copy, .tool-callout { display: none !important; } }


/* V9.0 home live preview clarification */
.preview-demo-note {
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid #e0cfa8;
  border-left: 4px solid var(--gold);
  border-radius: var(--radius);
  background: linear-gradient(180deg, #fffdf8 0%, #fff8ea 100%);
  box-shadow: 0 8px 18px rgba(22, 37, 61, .05);
  color: var(--navy);
}

.preview-demo-note strong {
  display: block;
  color: var(--plum);
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.preview-demo-note span {
  display: block;
  color: #4b5563;
  font-size: .9rem;
  line-height: 1.45;
}

@media print {
  .preview-demo-note {
    display: none !important;
  }
}


/* V9.0.1: generator preview note rollout and refined Convert to Invoice action */
.btn.convert {
  background: #22182d;
  border-color: #22182d;
  color: #ffffff;
}

.btn.convert:hover {
  background: #15101d;
  border-color: #15101d;
  color: #ffffff;
}

.btn.convert:focus-visible {
  outline: 3px solid rgba(90, 36, 71, .32);
  outline-offset: 2px;
}


/* ============================================================
   V9.1.0 — Pre-monetization ad-slot gate.
   Ad slots stay in the DOM (structure preserved for AdSense
   insertion later) but are hidden until ads are live.
   TO ACTIVATE ADS: delete the single rule below, nothing else.
   ============================================================ */
.ad-slot{display:none!important}

/* V9.2.6 header navigation anti-orphan patch.
   Keeps the full desktop menu on one line at normal desktop widths and uses
   controlled wrapping below the tighter breakpoint instead of leaving a lone item. */
.site-header .nav-wrap {
  align-items: center;
  gap: 14px;
  padding-left: 16px;
  padding-right: 16px;
}

.site-header .brand {
  flex: 0 0 auto;
  white-space: nowrap;
  line-height: 1.1;
  font-size: clamp(1.22rem, 1.8vw, 1.35rem);
}

.site-header .nav {
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 10px 14px;
}

.site-header .nav a {
  white-space: nowrap;
  line-height: 1.2;
  font-size: clamp(.84rem, .76rem + .22vw, .9rem);
}

@media(max-width:1060px) {
  .site-header .nav-wrap {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .site-header .nav {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px 13px;
  }

  .site-header .nav a {
    font-size: .88rem;
  }
}

@media(max-width:620px) {
  .site-header .nav-wrap {
    display: block;
    padding: 12px 16px;
  }

  .site-header .nav {
    margin-top: 10px;
    gap: 8px 12px;
  }
}


/* ============================================================
   V9.4.7 - Sample document figures (tool screenshots)
   ============================================================ */
.doc-figure{margin:24px 0;text-align:center}
.doc-figure img{max-width:100%;height:auto;border:1px solid var(--border,#d9d9d9);border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.doc-figure figcaption{margin-top:10px;font-size:.9rem;color:var(--muted,#666)}

.sample-explainer{max-width:860px;margin:20px auto 24px;padding:18px 20px;border:1px solid var(--cpw-card-border,#e0cfa8);border-top:3px solid var(--cpw-card-accent,#b8862f);border-radius:var(--radius);background:var(--cpw-card-bg,#fffdf8);box-shadow:var(--cpw-card-shadow);text-align:left}.sample-explainer p{max-width:none;margin:0 0 12px}.sample-explainer p:last-child{margin-bottom:0}@media(max-width:620px){.sample-explainer{margin:16px 0 20px;padding:15px}}

/* Print/PDF cleanup: protect currency amounts on long receipt credit-balance rows. */
.doc-totals .total-row.balance {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: baseline;
  column-gap: 14px;
}

.doc-totals .total-row.balance > :first-child {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

.doc-totals .total-row.balance > :last-child {
  text-align: right;
  white-space: nowrap;
}

@media print {
  .doc-totals .total-row.balance {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    column-gap: 14px;
  }

  .doc-totals .total-row.balance > :first-child {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .doc-totals .total-row.balance > :last-child {
    text-align: right;
    white-space: nowrap;
  }
}


/* ============================================================
   V9.5.3 - Generator sample-section presentation and mobile polish
   Applies only to the four generator sample sections marked with .sample-section.
   Clean Paperwork System figures intentionally keep their existing article styling.
   ============================================================ */
.sample-section {
  padding-top: 46px;
}

.sample-section > .container {
  max-width: 1120px;
}

.sample-section h2 {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.sample-section .doc-figure {
  max-width: 920px;
  margin: 28px auto 20px;
  padding: 18px;
  background: linear-gradient(180deg, #fffdf8 0%, #fff8ea 100%);
  border: 1px solid var(--cpw-card-border, #e0cfa8);
  border-radius: 14px;
  box-shadow: var(--cpw-card-shadow, 0 10px 24px rgba(22, 37, 61, .06));
}

.sample-section .doc-figure img {
  display: block;
  width: min(100%, 860px);
  margin: 0 auto;
  border-radius: 9px;
  box-shadow: 0 4px 14px rgba(22, 37, 61, .08);
}

.sample-section .doc-figure figcaption {
  max-width: 760px;
  margin: 12px auto 0;
  line-height: 1.45;
}

.sample-section .sample-explainer {
  max-width: 920px;
  margin-top: 18px;
  margin-bottom: 22px;
}

.sample-section .sample-explainer p {
  line-height: 1.62;
}

.sample-section .grid.two {
  max-width: 980px;
  margin: 18px auto 0;
  align-items: stretch;
}

.sample-section .grid.two .card {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  text-align: left;
}

.sample-section .grid.two .card h3 {
  margin-top: 0;
  margin-bottom: 8px;
}

.sample-section .grid.two .card p {
  margin-bottom: 0;
}

@media(max-width:900px) {
  .sample-section {
    padding-top: 38px;
  }

  .sample-section .doc-figure {
    max-width: 860px;
    padding: 14px;
  }

  .sample-section .grid.two .card {
    min-height: 136px;
  }
}

@media(max-width:620px) {
  .sample-section {
    padding-top: 32px;
  }

  .sample-section > .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .sample-section h2 {
    font-size: clamp(1.72rem, 8vw, 2.15rem);
    line-height: 1.14;
    margin-bottom: 14px;
  }

  .sample-section .doc-figure {
    margin: 18px auto 16px;
    padding: 9px;
    border-radius: 12px;
  }

  .sample-section .doc-figure img {
    border-radius: 8px;
  }

  .sample-section .doc-figure figcaption {
    font-size: .84rem;
    line-height: 1.42;
  }

  .sample-section .sample-explainer {
    margin: 14px 0 18px;
    padding: 14px 15px;
  }

  .sample-section .sample-explainer p {
    line-height: 1.55;
  }

  .sample-section .grid.two {
    gap: 13px;
  }

  .sample-section .grid.two .card {
    min-height: 0;
    padding: 15px;
  }
}


/* V9.5.4: keep adjacent affiliate/tool buttons separated on narrow mobile article cards. */
.affiliate > .btn + .btn {
  margin-left: 8px;
}

@media(max-width:620px) {
  .affiliate > .btn {
    width: 100%;
    margin-top: 10px;
  }

  .affiliate > .btn + .btn {
    margin-left: 0;
    margin-top: 10px;
  }
}
