/* Property taxes page (Business > Real estate, /business/real-estate/property-taxes/). Everything is scoped to .ptx so it cannot change the rest of the site. Data: /data/property-taxes.json (pipeline/property_tax_refresh.py). Script: /property-taxes.js */
.page:has(.ptx){max-width:1120px}
.ptx{--navy:#15395B; --teal:#2A8C82; --seafoam:#7FD1C7;
  --paper:#FBF9F5; --sand:#F4EFE6; --panel:#FFFFFF; --ink:#1C2430; --ink-2:#3E4A56; --muted:#5A6672; --line:#DDD6C9; --line-2:#ECE6DB;
  --accent:#1F6F67; --accent-soft:#E3F1EF; --warn:#8A5A00; --warn-bg:#FFF4DB;
  --tG:#1D5F99; --tR:#1E9384; --tE:#C9742A; --tM:#A2559A;
  --biz:#B9A98E;
  --f-display:"Lora", Georgia, "Times New Roman", serif;
  --f-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.ptx *{box-sizing:border-box}
.ptx h2,.ptx h3{font-family:var(--f-display);color:var(--ink);line-height:1.2;text-wrap:balance;margin:0}
.ptx button{margin-top:0;width:auto} .ptx input[type=text],.ptx select{width:auto;margin:0} .ptx label{margin:0}
.ptx :focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.ptx a{color:var(--navy)}
.ptx .num, .ptx table, .ptx .big{font-variant-numeric:tabular-nums}
.ptx .phead{padding-bottom:14px;border-bottom:3px solid var(--navy)}
.ptx .kicker{font:700 12px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.ptx .kicker a{color:inherit;text-decoration:none}
.ptx .dek{color:var(--ink-2);max-width:64ch;margin:10px 0 0;font-size:18px}
.ptx .asof{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 18px;padding-top:12px}
.ptx .asof b{color:var(--ink-2);font-weight:600}
.ptx nav.sec{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--paper);display:flex;gap:6px;overflow-x:auto;padding:10px 0;border-bottom:1px solid var(--line);scrollbar-width:none}
.ptx nav.sec a{flex:none;font-size:13px;font-weight:600;text-decoration:none;color:var(--navy);padding:4px 11px;border-radius:99px;background:var(--sand)}
.ptx nav.sec a:hover{background:var(--accent-soft);color:var(--accent)}
.ptx .ptx-body{padding-bottom:24px}
.ptx section.desk{margin-top:28px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px clamp(16px,3vw,26px) 18px;scroll-margin-top:60px}
.ptx .dh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 20px;margin-bottom:14px}
.ptx .dh h2{font-size:clamp(22px,3vw,27px)}
.ptx .dh p{margin:6px 0 0;color:var(--ink-2);max-width:66ch}
.ptx .q{font:700 11.5px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ptx .src{margin-top:14px;padding-top:10px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--muted)}
.ptx .src a{color:var(--muted)}
.ptx .note{font-size:13.5px;color:var(--ink-2);background:var(--sand);border-radius:8px;padding:10px 12px;margin-top:12px;max-width:80ch}
.ptx .ctrls{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-end;margin-bottom:14px}
.ptx .ctl{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.ptx select, .ptx input[type=text]{font:inherit;font-size:15px;color:var(--ink);background:#fff;border:1px solid #C9C0B0;border-radius:8px;padding:7px 10px}
.ptx input[type=text]{width:12ch}
.ptx .seg{display:inline-flex;border:1px solid #C9C0B0;border-radius:8px;overflow:hidden;background:#fff}
.ptx .seg button{font:inherit;font-size:14px;font-weight:600;border:0;background:transparent;color:var(--ink-2);padding:7px 12px;cursor:pointer}
.ptx .seg button+button{border-left:1px solid #C9C0B0}
.ptx .seg button[aria-pressed=true]{background:var(--navy);color:#fff}
.ptx .money{position:relative;display:inline-block}
.ptx .money input{padding-left:22px;width:14ch}
.ptx .money::before{content:"$";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px}
.ptx .presets{display:flex;gap:6px;flex-wrap:wrap}
.ptx .presets button{font:inherit;font-size:12.5px;font-weight:600;border:1px solid var(--line);background:var(--sand);color:var(--navy);border-radius:99px;padding:4px 10px;cursor:pointer}
.ptx .est{display:grid;gap:10px}
.ptx .erow{display:grid;grid-template-columns:minmax(110px,170px) minmax(0,1fr) auto;gap:12px;align-items:center}
.ptx .erow .tn{font-weight:600;font-size:15px}
.ptx .erow .tn small{display:block;font-weight:400;color:var(--muted);font-size:12.5px}
.ptx .track{height:26px;background:var(--line-2);border-radius:0 4px 4px 0;position:relative}
.ptx .fill{height:100%;border-radius:0 4px 4px 0;transition:width .35s ease}
.ptx .erow .amt{font-family:var(--f-display);font-weight:700;font-size:20px;text-align:right;min-width:7.5ch}
.ptx .erow .amt small{display:block;font:400 12.5px var(--f-body);color:var(--muted)}
@media (max-width:560px){.ptx .erow{grid-template-columns:1fr auto}.ptx .erow .track{grid-column:1/-1;grid-row:2}}
.ptx .tw{overflow-x:auto}
.ptx table{border-collapse:collapse;width:100%;font-size:14.5px;margin:0}
.ptx th, .ptx td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line-2);white-space:nowrap}
.ptx th:first-child, .ptx td:first-child{text-align:left}
.ptx thead th{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);vertical-align:bottom;background:none}
.ptx tbody tr:hover{background:#FCFAF6}
.ptx tfoot td{font-weight:700;border-top:1px solid var(--line);border-bottom:0}
.ptx .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:0}
.ptx .tname{font-weight:600}
.ptx .rank{display:inline-block;min-width:3.4ch;text-align:center;font-weight:700;font-size:12.5px;border-radius:99px;padding:1px 8px;background:var(--sand);color:var(--navy)}
.ptx .sub{color:var(--muted);font-size:12.5px}
.ptx .chart{position:relative;width:100%}
.ptx .chart svg{display:block;width:100%;height:auto;overflow:visible}
.ptx .chart text{font-family:var(--f-body)}
.ptx .ax{fill:var(--muted);font-size:12px}
.ptx .grid{stroke:var(--line-2);stroke-width:1}
.ptx .base{stroke:#C9C0B0;stroke-width:1}
.ptx .tip{position:absolute;pointer-events:none;background:#fff;border:1px solid var(--line);box-shadow:0 6px 18px rgba(21,57,91,.12);border-radius:8px;padding:8px 10px;font-size:13px;min-width:150px;z-index:5}
.ptx .tip b{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.ptx .tip div{display:flex;justify-content:space-between;gap:14px;white-space:nowrap}
.ptx .tip span.v{font-weight:700;font-variant-numeric:tabular-nums}
.ptx .legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13.5px;color:var(--ink-2);margin:2px 0 8px}
.ptx .legend .ln{display:inline-block;width:18px;height:0;border-top:2px solid;margin-right:6px;vertical-align:4px}
.ptx .townpick{display:flex;flex-wrap:wrap;gap:6px}
.ptx .townpick button{font:inherit;font-size:14px;font-weight:600;border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:99px;padding:5px 12px;cursor:pointer;display:inline-flex;align-items:center}
.ptx .townpick button[aria-pressed=true]{border-color:var(--navy);background:var(--navy);color:#fff}
.ptx .townpick button[aria-pressed=true] .sw{outline:2px solid #fff}
.ptx .ledger{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:12px}
.ptx .ledger>div{background:#fff;padding:12px 14px;min-width:0}
.ptx .ledger .lab{font-size:13px;font-weight:600;color:var(--ink-2)}
.ptx .ledger .big{font-family:var(--f-display);font-size:28px;font-weight:700;line-height:1.15}
.ptx .ledger .sub{font-size:12.5px}
.ptx .up{color:var(--warn)}
.ptx .down{color:var(--accent)}
@media (max-width:520px){.ptx .ledger{grid-template-columns:1fr}}
.ptx .say{font-size:16.5px;max-width:68ch;margin:0 0 10px}
.ptx .split{display:grid;gap:14px}
.ptx .split .row{display:grid;grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:12px;align-items:center}
.ptx .sbar{display:flex;height:28px;border-radius:4px;overflow:hidden;gap:2px;background:#fff}
.ptx .sbar span{display:flex;align-items:center;padding:0 8px;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden}
.ptx .sbar .res{background:var(--navy);color:#fff}
.ptx .sbar .bz{background:var(--biz);color:#2B2418}
.ptx .split .cap{grid-column:2;font-size:12.5px;color:var(--muted);margin-top:-8px}
@media (max-width:560px){.ptx .split .row{grid-template-columns:1fr}.ptx .split .cap{grid-column:1}}
.ptx .keyrow{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink-2);margin-bottom:10px}
.ptx .gauge{height:12px;background:var(--line-2);border-radius:99px;position:relative;min-width:90px}
.ptx .gauge i{position:absolute;inset:0 auto 0 0;border-radius:99px}
.ptx .pt td.c{min-width:120px}
.ptx .cell{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.ptx .mini{height:5px;border-radius:0 3px 3px 0;align-self:stretch;background:var(--line-2);position:relative}
.ptx .mini i{position:absolute;left:0;top:0;bottom:0;border-radius:0 3px 3px 0}
.ptx .pt td:first-child small{display:block;color:var(--muted);font-size:12px;font-weight:400}
.ptx .cgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:900px){.ptx .cgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.ptx .cgrid{grid-template-columns:1fr}}
.ptx .ccard{border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0;border-top:4px solid}
.ptx .ccard h3{font-size:18px;margin-bottom:8px}
.ptx .ccard dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:6px 10px;font-size:14px}
.ptx .ccard dt{color:var(--ink-2)}
.ptx .ccard dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.ptx .ccard dd small{display:block;font-weight:400;color:var(--muted);font-size:11.5px}
.ptx .ccard .hl{grid-column:1/-1;border-top:1px solid var(--line-2);padding-top:8px;margin-top:2px;font-size:13.5px;color:var(--ink-2)}
.ptx .ccard .hl b{font-family:var(--f-display);font-size:20px;color:var(--ink)}
.ptx .faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}
@media (max-width:760px){.ptx .faq{grid-template-columns:1fr}}
.ptx .faq h3{font-size:17px;margin-bottom:4px}
.ptx .faq p{margin:0;font-size:14.5px;color:var(--ink-2)}
@media (prefers-reduced-motion:reduce){.ptx .fill{transition:none}}
/* Real estate landing page (/business/real-estate/) */
.ptx .tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:20px}
.ptx .tool{display:block;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;text-decoration:none;color:var(--ink)}
.ptx .tool:hover{border-color:var(--navy)}
.ptx .tool h2{font-size:22px;margin-bottom:6px}
.ptx .tool p{margin:0;color:var(--ink-2);font-size:15px}
.ptx .tool .go{display:inline-block;margin-top:10px;font-weight:700;color:var(--accent)}
