/* ============================================================
   PRICING CALCULATOR PAGE - page-specific layer (shared tokens above)
   ============================================================ */
.sec{padding:72px 0}

.sec-tight{padding:56px 0}

.hero-page{min-height:0;padding:66px 0 50px}

.hero-solo{max-width:56rem}

.hero-page h1{max-width:20ch;font-size:clamp(2rem,4vw,3.05rem)}

.hero-page .hero-sub{max-width:58ch;margin-bottom:0}

.toolband{padding:44px 0 68px}

/* -- cross-link to the other tool + the call line ------------- */
.after-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}

.after-grid > *{min-width:0}

.xcard{display:flex;flex-direction:column;color:var(--body);
  background:linear-gradient(180deg,var(--white) 0%,#fafcfb 100%);border:1px solid var(--hairline);
  border-radius:var(--r);padding:26px 24px;position:relative;overflow:hidden;
  box-shadow:0 1px 2px rgba(6,28,20,.045)}

.xcard:hover{color:var(--body)}

.xcard h2{font-size:1.12rem;margin:14px 0 .4em}

.xcard p{margin:0 0 16px;color:var(--muted);font-size:.94rem;line-height:1.6}

.xcard .tlink{margin-top:auto}

.xcta{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  background:linear-gradient(180deg,var(--tint-soft) 0%,#dff7ec 100%);border:1px solid #a9e8cf;
  border-radius:var(--r);padding:28px 26px;
  box-shadow:0 2px 4px rgba(6,28,20,.05),0 20px 46px rgba(5,150,105,.13)}

.xcta h2{font-size:1.12rem;margin:0 0 .4em}

.xcta p{margin:0 0 18px;font-size:.94rem;color:var(--body);line-height:1.6;max-width:44ch}

.xcta .cta-micro{margin:12px 0 0}

@media (max-width:860px){.after-grid{grid-template-columns:1fr}}

/* ============================================================
   THE TOOL - scoped under .tool-quote so it cannot bleed into the
   shell and the shell cannot break it. Every rule below is the
   source tool's own rule, re-tokenised to the MAC palette and to
   Libre Baskerville / Lora. Class names, ids and the JavaScript are
   the tool's, untouched; --leaf and --muted keep their source names
   because the tool's JS emits them in inline styles.
   Deliberately NO reveal hooks anywhere inside .tool-quote - the
   controls have to be usable the instant the page paints.
   ============================================================ */
.tool-quote{
  --tq-ink:#061c14; --tq-ink-2:#0b3b27;
  --sage:#059669; --leaf:#34d399;
  --tq-tint:#d1fae5; --tq-tint-lt:#e9fbf3;
  --tq-edit:#059669; --tq-edit-lt:#a9e8cf; --tq-edit-xlt:#e9fbf3;
  --body:#374151; --muted:#6b7280;
  --tq-line:#d7e3de; --tq-line-lt:#e2e8e6; --tq-surface:#fff;
  font-family:var(--sans);color:var(--forest);font-size:15px;line-height:1.65}

.tool-quote *,.tool-quote *::before,.tool-quote *::after{margin:0;padding:0}

.tool-quote .main{max-width:1060px;margin:0 auto;padding:0}

/* quote header row */
.tool-quote .qrow{background:var(--tq-surface);border:1px solid var(--tq-line);border-radius:12px;
  padding:24px 28px;margin-bottom:22px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}

.tool-quote .fl{display:block;font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:.07em;color:var(--muted);margin-bottom:6px}

.tool-quote .fi{width:100%;font-family:var(--sans);font-size:14px;color:var(--forest);
  background:var(--tq-tint-lt);border:1px solid var(--tq-line);border-radius:8px;padding:9px 12px;
  outline:none;transition:border-color .18s}

.tool-quote .fi:focus{border-color:var(--sage);background:var(--tq-surface)}

/* section card */
.tool-quote .sc{background:var(--tq-surface);border:1px solid var(--tq-line);border-radius:12px;
  margin-bottom:16px;overflow:hidden}

.tool-quote .sh{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:17px 24px;background:var(--tq-ink);cursor:pointer;user-select:none}

.tool-quote .sh-l{display:flex;align-items:center;gap:13px;min-width:0}

.tool-quote .ck{width:22px;height:22px;border-radius:6px;border:2px solid rgba(209,250,229,.36);
  background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background .15s,border-color .15s;cursor:pointer}

.tool-quote .ck.on{background:var(--leaf);border-color:var(--leaf)}

.tool-quote .ck.on::after{content:"";display:block;width:11px;height:7px;
  border-left:2.5px solid var(--tq-ink);border-bottom:2.5px solid var(--tq-ink);
  transform:rotate(-45deg) translateY(-1px)}

.tool-quote .st{font-family:var(--serif);font-size:15px;font-weight:700;color:#fff;line-height:1.3}

.tool-quote .ss{font-size:12px;color:rgba(255,255,255,.62);line-height:1.45}

.tool-quote .sa{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--leaf);
  min-width:90px;text-align:right}

.tool-quote .chv{width:18px;height:18px;margin-left:10px;color:rgba(209,250,229,.55);
  transition:transform .22s;flex-shrink:0}

.tool-quote .chv.open{transform:rotate(180deg)}

.tool-quote .sb{display:none;padding:4px 24px 20px}

.tool-quote .sb.open{display:block}

/* column key + service rows */
.tool-quote .ch{display:grid;gap:12px;padding:12px 0 8px;border-bottom:2px solid var(--tq-tint);
  margin-bottom:2px}

.tool-quote .ch span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted)}

.tool-quote .ch span:not(:first-child){text-align:center}

.tool-quote .ch .pen{display:inline-block;width:11px;height:11px;vertical-align:-1px;opacity:.75}

.tool-quote .sr{display:grid;gap:12px;align-items:center;padding:12px 0;
  border-bottom:1px solid var(--tq-line-lt)}

.tool-quote .sr:last-child{border-bottom:none}

/* a grid item's automatic minimum is its min-content, and a number input's
   min-content is ~20 characters wide: without this the four-column rows push
   the page past a phone viewport */
.tool-quote .sr > *{min-width:0}

.tool-quote .sn{font-size:14px;font-weight:500;color:var(--forest);line-height:1.4}

.tool-quote .sd{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45}

.tool-quote .sec-lbl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;
  color:var(--muted);padding:14px 0 4px;border-top:1px solid var(--tq-line-lt);margin-top:6px}

/* inputs */
.tool-quote input[type="number"],.tool-quote select{width:100%;font-family:var(--sans);font-size:13px;
  color:var(--forest);background:var(--tq-tint-lt);border:1px solid var(--tq-line);border-radius:8px;
  padding:8px 10px;outline:none;transition:border-color .18s;appearance:none;text-align:center}

.tool-quote input[type="number"]:focus,.tool-quote select:focus{border-color:var(--sage);
  background:var(--tq-surface)}

.tool-quote input[type="number"].left{text-align:left}

.tool-quote select{cursor:pointer;padding-right:28px;background-repeat:no-repeat;
  background-position:right 10px center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}

/* result cell + the custom-price override */
.tool-quote .rc-cell{display:flex;align-items:center;gap:5px;min-width:0}

.tool-quote .rc{flex:1;min-width:0;text-align:center;font-size:14px;font-weight:600;color:var(--sage);
  background:var(--tq-tint-lt);border:1px solid var(--tq-line);border-radius:8px;padding:8px 10px;
  min-height:36px;display:flex;align-items:center;justify-content:center}

.tool-quote .rc.val{background:var(--tq-tint);border-color:var(--sage);color:var(--forest)}

.tool-quote .rc.empty{color:var(--muted);font-weight:400;font-size:13px}

.tool-quote input.rc-ov{flex:1;min-width:0;font-family:var(--sans);font-size:13px;color:var(--forest);
  background:var(--tq-edit-xlt);border:1.5px solid var(--tq-edit);border-radius:8px;padding:8px 10px;
  outline:none;text-align:center;display:none}

.tool-quote .ov-btn{display:flex;align-items:center;justify-content:center;background:none;
  border:1px solid transparent;border-radius:6px;padding:5px;cursor:pointer;color:var(--muted);
  transition:color .15s,border-color .15s,background .15s;flex-shrink:0;line-height:0}

.tool-quote .ov-btn .pen{width:15px;height:15px;display:block}

.tool-quote .ov-btn:hover,.tool-quote .ov-btn.on{color:var(--tq-edit);border-color:var(--tq-edit-lt);
  background:var(--tq-edit-xlt)}

/* hints, packages, tier descriptions */
.tool-quote .hint{background:var(--tq-edit-xlt);border:1px solid var(--tq-edit-lt);border-radius:8px;
  padding:12px 16px;margin:12px 0;font-size:13px;color:var(--body);line-height:1.6}

.tool-quote .hint strong{color:var(--forest);font-weight:600}

.tool-quote .pkg-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0 18px}

.tool-quote .pkg-card{border:2px solid var(--tq-line);border-radius:10px;padding:18px;cursor:pointer;
  transition:border-color .18s,background .18s;background:var(--tq-tint-lt)}

.tool-quote .pkg-card:hover{border-color:var(--sage)}

.tool-quote .pkg-card.selected{border-color:var(--sage);background:rgba(52,211,153,.13)}

.tool-quote .pkg-card .pkg-name{font-family:var(--serif);font-size:14px;font-weight:700;
  color:var(--forest);margin-bottom:4px}

.tool-quote .pkg-card .pkg-price{font-size:12px;font-weight:600;color:var(--sage);margin-bottom:8px}

.tool-quote .pkg-card ul{list-style:none;padding:0}

.tool-quote .pkg-card ul li{font-size:12px;color:var(--body);padding:2px 0;display:flex;
  align-items:flex-start;gap:8px;line-height:1.5}

/* the source used a U+2713 in CSS content; a square rule keeps the palette
   and drops the glyph */
.tool-quote .pkg-card ul li::before{content:"";flex:0 0 6px;width:6px;height:6px;margin-top:6px;
  border-radius:2px;background:var(--sage)}

.tool-quote .tier-desc{background:var(--tq-tint-lt);border:1px solid var(--tq-line);border-radius:8px;
  padding:12px 16px;margin-top:8px;font-size:13px;color:var(--body);display:none;line-height:1.6}

.tool-quote .tier-desc.show{display:block}

.tool-quote .tier-desc strong{color:var(--forest);display:block;margin-bottom:3px;font-weight:600}

.tool-quote .tier-desc em{color:var(--muted);font-style:normal;font-size:12px}

.tool-quote .cu-sub{border-top:2px dashed var(--tq-line);margin-top:18px;padding-top:16px}

.tool-quote .cu-sub-title{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--forest);
  margin-bottom:4px}

.tool-quote .cu-sub-sub{font-size:12px;color:var(--muted);margin-bottom:12px;line-height:1.5}

/* reference tables */
.tool-quote .gb{display:inline-flex;align-items:center;gap:7px;background:none;
  border:1px solid var(--tq-line);border-radius:8px;padding:8px 14px;font-family:var(--sans);
  font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;margin:10px 0 12px;
  transition:border-color .15s,color .15s}

.tool-quote .gb:hover{border-color:var(--sage);color:var(--sage)}

.tool-quote .gt{display:none}

.tool-quote .gt.open{display:block}

.tool-quote .gg{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;
  margin-bottom:8px}

.tool-quote .gc{background:var(--tq-tint-lt);border:1px solid var(--tq-line);border-radius:10px;
  overflow:hidden;min-width:0}

.tool-quote .gct{background:var(--tq-ink-2);color:var(--tq-tint);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;padding:8px 13px}

.tool-quote .gc table{width:100%;border-collapse:collapse;font-size:13px}

.tool-quote .gc table th{background:var(--tq-tint);color:#3f5b50;font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;padding:7px 12px;text-align:left}

.tool-quote .gc table td{padding:7px 12px;border-top:1px solid var(--tq-line);color:var(--body)}

.tool-quote .gc table td:last-child{font-weight:600;color:var(--sage);text-align:right}

/* totals panel */
.tool-quote .tp{background:var(--tq-ink);border-radius:14px;padding:32px 34px;margin-top:28px}

.tool-quote .dl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;
  color:rgba(209,250,229,.66);margin-bottom:10px;display:block}

.tool-quote .dr{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:24px}

.tool-quote .dp{background:rgba(255,255,255,.07);border:1px solid rgba(209,250,229,.24);
  color:rgba(255,255,255,.80);border-radius:99px;padding:6px 16px;font-family:var(--sans);
  font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}

.tool-quote .dp:hover,.tool-quote .dp.on{background:var(--leaf);border-color:var(--leaf);
  color:var(--tq-ink);font-weight:700}

.tool-quote .cw{display:flex;align-items:center;gap:6px}

/* input.ci / input.rc-ov, not .ci / .rc-ov: the source's own class rules lost
   the cascade to its `input[type="number"]` rule, so the custom-discount box
   rendered as a near-white pill on the dark totals panel and the override box
   lost its accent border. Raising them to (0,2,1) lets them style as designed. */
.tool-quote input.ci{width:72px;background:rgba(255,255,255,.09);border:1px solid rgba(209,250,229,.26);
  border-radius:99px;padding:6px 10px;font-family:var(--sans);font-size:13px;color:#fff;outline:none;
  text-align:center}

.tool-quote input.ci:focus{border-color:var(--leaf)}

.tool-quote .cw span{font-size:13px;color:rgba(209,250,229,.66);white-space:nowrap}

.tool-quote .sg{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:26px}

.tool-quote .bx{background:rgba(255,255,255,.05);border:1px solid rgba(209,250,229,.16);
  border-radius:12px;padding:18px 20px;min-width:0}

.tool-quote .bx.hi{background:rgba(52,211,153,.10);border-color:rgba(52,211,153,.30)}

.tool-quote .bx.today{grid-column:1/-1;padding:22px 24px;border:1px solid rgba(52,211,153,.36);
  background:linear-gradient(135deg,rgba(5,150,105,.24),rgba(6,28,20,.42))}

.tool-quote .bl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(209,250,229,.66);margin-bottom:6px;display:block}

.tool-quote .ba{font-family:var(--serif);font-size:25px;font-weight:700;color:#fff;line-height:1.05}

.tool-quote .bx.today .ba{font-size:34px;color:var(--leaf)}

.tool-quote .bsub{font-size:12px;color:rgba(209,250,229,.66);margin-top:5px;line-height:1.45}

.tool-quote .sav{font-size:12px;color:#6ee7b7;margin-top:4px;display:none}

/* ROUND 14 - the live generation dropped the "One-Time Fees - Payment Plan
   Options" grid (.pl/.pg/.pb/.pn/.pamt/.psub and the four #p1/#p3/#p6/#p12
   writes in calc()). Its rules went with it; nothing in the ported markup
   or the ported script refers to them any more. */
.tool-quote .bdt{display:flex;align-items:center;gap:6px;background:none;border:none;
  color:rgba(209,250,229,.7);font-family:var(--sans);font-size:12px;cursor:pointer;margin-top:18px;
  padding:0;transition:color .15s}

.tool-quote .bdt:hover{color:#fff}

.tool-quote .bdl{display:none;margin-top:12px}

.tool-quote .bdl.open{display:block}

.tool-quote .bdi{display:flex;justify-content:space-between;gap:16px;padding:7px 0;font-size:13px;
  color:rgba(255,255,255,.66);border-bottom:1px solid rgba(255,255,255,.08)}

.tool-quote .bdi:last-child{border-bottom:none}

.tool-quote .bdi .bv{color:rgba(255,255,255,.90);font-weight:500}

.tool-quote .bdsh{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(52,211,153,.85);padding:10px 0 4px}

.tool-quote .acts{display:flex;gap:11px;margin-top:22px;flex-wrap:wrap;align-items:center}

.tool-quote .abtn{display:inline-flex;align-items:center;gap:8px;border-radius:var(--r-btn);
  border:1.5px solid transparent;padding:13px 26px;font-family:var(--serif);font-size:14px;
  font-weight:700;cursor:pointer;text-decoration:none;transition:background .18s,border-color .18s,color .18s}

.tool-quote .abtn.primary{background:var(--leaf);color:var(--tq-ink);border-color:var(--leaf)}

.tool-quote .abtn.primary:hover{background:#2bc78d;border-color:#2bc78d}

.tool-quote .abtn.ghost{background:rgba(255,255,255,.07);color:rgba(255,255,255,.88);
  border-color:rgba(209,250,229,.26)}

.tool-quote .abtn.ghost:hover{background:rgba(255,255,255,.13);color:#fff;border-color:#fff}

.tool-quote .pdf-tip{font-size:12px;color:rgba(209,250,229,.78);display:none;margin-top:10px;
  line-height:1.65}

.tool-quote .pdf-tip.show{display:block}

.tool-quote .pdf-tip .tick{display:inline-block;width:13px;height:13px;vertical-align:-2px;
  color:var(--leaf)}

.tool-quote .pdf-tip strong{color:#fff;font-weight:600}

.tool-quote .print-only,.tool-quote .pkg-selected-print{display:none}

/* the source set outline:none on its inputs and selects; the site's focus ring
   is restored here so every control stays keyboard-visible (WCAG 2.4.7) */
.tool-quote input[type="number"]:focus-visible,.tool-quote input[type="text"]:focus-visible,
.tool-quote select:focus-visible,.tool-quote button:focus-visible,
.tool-quote [role="button"]:focus-visible,.tool-quote a:focus-visible{
  outline:3px solid var(--emerald);outline-offset:2px;border-radius:6px}

/* -- tool responsive ------------------------------------------ */
@media (max-width:760px){
  /* the source's per-row inline grid-template-columns would push the
     four- and five-column rows past a phone viewport, so on phones the
     row label and the result each take the full width and the column key
     above the rows becomes a single readable line. */
  .tool-quote .ch{grid-template-columns:1fr !important;gap:0;padding:10px 0 6px}
  .tool-quote .ch span{text-align:left !important;display:inline;line-height:1.7}
  .tool-quote .ch span:not(:first-child)::before{content:" \00B7  "}
  .tool-quote .sr{grid-template-columns:1fr 1fr !important;gap:10px;padding:14px 0}
  .tool-quote .sr > *:first-child,.tool-quote .sr .rc-cell{grid-column:1/-1}
}

@media (max-width:660px){
  .tool-quote .qrow{grid-template-columns:1fr;padding:20px 18px}
  .tool-quote .sg{grid-template-columns:1fr}
  .tool-quote .bx.today{grid-column:1}
  .tool-quote .pkg-grid{grid-template-columns:1fr}
  .tool-quote .tp{padding:24px 20px}
  .tool-quote .sh{padding:15px 16px}
  .tool-quote .sb{padding:4px 16px 18px}
  .tool-quote .sa{min-width:0}
  .tool-quote .abtn{flex:1 1 100%;justify-content:center}
}

/* -- print: the live site's one-page Service Proposal ---------
   ROUND 14. This block is the live theme's assets/css/quote-tool.css
   `@media print` rules, re-tokenised to the MAC palette and scoped under
   .tool-quote, plus the round-13 WordPress hardening. The live sheet hides
   the entire calculator UI (nav,footer,.hero,.gold-line,.qrow,.sc,.tp) and
   prints ONLY the dedicated .print-only proposal that buildPrintBody()
   fills: header + client, prepared-by / date, the grouped line items, the
   discount line and the dark "Total Amount Due Today" row.
   The live palette already IS the MAC palette (#059669 / #34d399 / #061c14);
   the four remaining source hexes map to MAC tokens:
     #cfe3d6 -> #d7e3de (--hairline-2)   #f6faf7 -> #f4f7f6 (--cool)
     #eaf6ef -> #e9fbf3 (--tint-soft)    #354e3c -> #374151 (--body)
     #555    -> #4b5563                  #8a8a8a -> #6b7280 (--muted)
   and 'Libre Baskerville'/'Lora' become var(--serif)/var(--sans). */
/* the live sheet's two page-box rules, in its own order. The A4/14mm rule is
   overridden property-for-property by the @page inside @media print below
   (exactly as on the live site); the :first rule is not - a page selector
   outranks the bare one, so the FIRST page keeps a 14mm top margin. Dropping
   it would start our proposal ~3.5pt lower on the paper than the live one. */
@page{margin:14mm 16mm;size:A4}

@page :first{margin-top:14mm}

@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* LIVE: nav,footer,.hero,.gold-line,.qrow,.sc,.tp{display:none!important}
     - the shell chrome under our own class names, then the three tool
     regions. Everything the round-13 list named (.acts,.gb,.gt,.bdt,.cw,
     .dp,.dl,.ov-btn,.pdf-tip,.pkg-grid,.chv) lives inside .qrow/.sc/.tp,
     so the three parents carry it. */
  .site-head,.site-foot,.hero,.skip,.afterband,.orb-field,.tex{display:none !important}
  .tool-quote .qrow,.tool-quote .sc,.tool-quote .tp{display:none !important}
  /* ROUND 13 hardening, kept. The live sheet name-checks the embeds it knows
     (#main-nav, chat-widget, [class*="lc_"], iframe[src*="leadconnectorhq"]);
     a WordPress page carries more than that - the admin bar, block-editor
     sections rendered after the approved build, any plugin markup. The
     allow-list covers all of it, those named embeds included: nothing
     outside the page main element, and nothing inside it but the tool,
     may print. */
  #wpadminbar,.tp-added-sections{display:none !important}
  body > *:not(main){display:none !important}
  main > *:not(.toolband){display:none !important}
  body{background:#fff;color:#061c14;font-size:11pt;margin:0;padding:0 !important;
    font-family:var(--sans)}
  .toolband{padding:0;background:#fff}
  .toolband .wrap{padding:0;max-width:100%}
  .tool-quote{font-size:11pt;color:#061c14}
  .tool-quote .main{padding:0;max-width:100%;margin:0}
  /* the proposal */
  .tool-quote .print-only{display:block !important}
  .tool-quote .p-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;
    padding-bottom:14px;border-bottom:2px solid #059669;margin-bottom:18px}
  .tool-quote .p-head-l{flex:1;min-width:0}
  .tool-quote .p-head-r{text-align:right;font-size:10pt;color:#4b5563;line-height:1.55;
    white-space:nowrap}
  .tool-quote .p-head-r .p-meta-lbl{color:#6b7280;font-size:9pt;text-transform:uppercase;
    letter-spacing:.05em}
  .tool-quote .p-head-r strong{color:#061c14;font-weight:600}
  .tool-quote .pt{font-family:var(--serif);font-size:22pt;color:#061c14;font-weight:700;
    letter-spacing:-.01em;line-height:1.1;margin-bottom:4px}
  .tool-quote .p-client{font-family:var(--serif);font-size:15pt;color:#059669;font-weight:600}
  .tool-quote .p-top-totals{display:flex;gap:12px;margin-bottom:22px;page-break-inside:avoid}
  .tool-quote .p-top-tot{flex:1;border:1.5px solid #d7e3de;border-radius:6px;padding:12px 14px;
    background:#f4f7f6}
  .tool-quote .p-top-tot .p-tot-lbl{font-size:9pt;text-transform:uppercase;letter-spacing:.06em;
    color:#059669;font-weight:600;margin-bottom:4px}
  .tool-quote .p-top-tot .p-tot-val{font-family:var(--serif);font-size:16pt;font-weight:700;
    color:#061c14}
  .tool-quote .p-sec{margin-bottom:14px;page-break-inside:avoid}
  .tool-quote .p-sec-t{font-family:var(--serif);font-size:11pt;font-weight:700;color:#059669;
    text-transform:uppercase;letter-spacing:.06em;padding-bottom:5px;border-bottom:1.5px solid #d7e3de;
    margin-bottom:6px}
  .tool-quote .p-item{display:flex;justify-content:space-between;align-items:baseline;padding:7px 2px;
    font-size:11pt;color:#374151;border-bottom:1px solid #e9fbf3}
  .tool-quote .p-item:last-child{border-bottom:none}
  .tool-quote .p-item-n{flex:1;padding-right:20px}
  .tool-quote .p-item-v{font-weight:600;color:#061c14;white-space:nowrap}
  .tool-quote .p-disc{display:flex;justify-content:space-between;padding:9px 2px;font-size:11pt;
    color:#059669;font-style:italic}
  .tool-quote .p-totals{margin-top:18px;page-break-inside:avoid;border-top:2px solid #d7e3de;
    padding-top:8px}
  .tool-quote .p-total-row{display:flex;justify-content:space-between;padding:8px 4px;font-size:11pt;
    color:#061c14;border-bottom:1px solid #e9fbf3;font-weight:600}
  .tool-quote .p-total-row span:last-child{color:#059669}
  .tool-quote .p-today-row{display:flex;justify-content:space-between;align-items:center;
    padding:16px 18px;color:#fff;background:#061c14 !important;border-radius:6px;font-weight:700;
    margin-top:14px;page-break-inside:avoid}
  .tool-quote .p-today-row span:first-child{color:#fff !important;font-size:11pt;
    text-transform:uppercase;letter-spacing:.06em}
  .tool-quote .p-today-row span:last-child{color:#34d399 !important;font-size:18pt;
    font-family:var(--serif)}
  .tool-quote .p-empty{font-size:11pt;color:#6b7280;font-style:italic;padding:20px 0}
  @page{margin:.6in;size:letter}
}