/* velocity.kuma.partners: base layer mirroring www.kuma.partners/styles.css (2026 palette).
   Every border is 1px. Calculator styles follow below the base layer. */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Lato:ital,wght@0,300;0,400;0,700;1,400&display=swap');

:root{
  --navy:#0B1523;          /* Midnight Navy: headings, primary buttons, dark panels */
  --teal:#1D6F8A;          /* Spruce Teal: accents, active states */
  --teal-hover:#155368;
  --graphite:#475569;      /* Slate Graphite: secondary text */
  --cream:#F8F9FA;         /* Gallery Chalk: page background */
  --surface:#FFFFFF;
  --ink:#1A1A1A;
  --amber:#B7791F;
  --crimson:#A3402F;
  --hairline: 1px;
  --hairline-color:#E2E8F0;
  --max:1120px;
  --radius-xs:2px; --radius-sm:4px; --radius-md:6px; --radius-lg:8px; --radius-pill:999px;
  --card-sheen: inset 0 1px 0 rgba(255,255,255,.9), 0 1px 3px rgba(11,21,35,.04);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; padding-top:79px; background:var(--cream); color:var(--ink); font-family:'Lato',Arial,sans-serif; font-size:17px; line-height:1.6;}
h1,h2,h3,h4{font-family:'Montserrat',Arial,sans-serif; color:var(--navy); margin:0 0 .5em; line-height:1.15; font-weight:600;}
h1{font-size:2.75rem;} h2{font-size:2rem;} h3{font-size:1.25rem;}
p{margin:0 0 1em;}
a{color:var(--navy);}
.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
[id]{scroll-margin-top:90px;}

/* Header */
header.site{position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(248,249,250,.9);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid var(--hairline-color); transition:box-shadow .25s ease;}
header.site.scrolled{box-shadow:0 8px 24px -20px rgba(11,21,35,.4);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0; gap:24px;}
.logo{display:flex; align-items:center; text-decoration:none;}
.logo img{height:37px; width:auto; display:block;}
.nav-links{display:flex; align-items:center; gap:32px; list-style:none; margin:0; padding:0;}
.nav-links a{text-decoration:none; color:var(--navy); font-size:.92rem;}
.nav-links a:hover{color:var(--teal);}
.nav-cta{display:flex; align-items:center;}
.nav-toggle{display:none; background:none; border:none; padding:6px; margin:-6px; cursor:pointer; color:var(--navy);}
.nav-toggle svg{width:24px; height:24px; display:block;}

/* Buttons and pills */
.btn{display:inline-flex; align-items:center; gap:8px; font-family:'Lato',Arial,sans-serif; font-weight:700; font-size:.92rem;
  padding:14px 26px; border-radius:var(--radius-xs); text-decoration:none; border:1px solid transparent; cursor:pointer; letter-spacing:.01em;}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:#16283D;}
.btn-secondary{background:transparent; color:var(--navy); border-color:var(--navy);}
.btn-secondary:hover{background:var(--navy); color:#fff;}
.btn-sm{padding:10px 18px; font-size:.82rem;}
.badge-pill{display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--teal); color:var(--teal);
  font-family:'Montserrat',Arial,sans-serif; font-weight:600; font-size:.78rem; padding:8px 16px; border-radius:var(--radius-pill);
  margin-bottom:22px; text-transform:uppercase; letter-spacing:.04em;}

/* Footer */
footer.site{background:var(--cream); padding:56px 0 36px; border-top:1px solid rgba(11,21,35,.12);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:36px;}
.footer-grid .logo img{height:40px;}
.footer-tag{margin:16px 0 0; font-size:.92rem; color:var(--graphite); max-width:320px;}
.footer-grid h4{font-family:'Lato',Arial,sans-serif; font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:rgba(11,21,35,.6); margin-bottom:14px;}
.footer-grid ul{list-style:none; margin:0; padding:0;}
.footer-grid li{margin-bottom:10px;}
.footer-grid a{color:var(--navy); text-decoration:none; font-size:.92rem;}
.footer-grid a:hover{color:var(--teal);}
.footer-email{display:inline-block; margin-top:16px; font-weight:700;}
.footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; border-top:1px solid var(--hairline-color); padding-top:22px; font-size:.82rem; color:rgba(26,26,26,.55);}

/* Slide-in booking modal (same pattern as www.kuma.partners) */
.scan-modal-overlay{position:fixed; inset:0; z-index:300; background:rgba(26,26,26,.4); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
  display:flex; justify-content:flex-end; opacity:0; pointer-events:none; transition:opacity .25s ease;}
.scan-modal-overlay.open{opacity:1; pointer-events:auto;}
.scan-modal{background:var(--cream); width:100%; max-width:480px; height:100%; overflow-y:auto; padding:44px 36px; position:relative;
  transform:translateX(100%); transition:transform .3s ease; box-shadow:-24px 0 60px -30px rgba(11,21,35,.4);}
.scan-modal-overlay.open .scan-modal{transform:translateX(0);}
.scan-modal-close{position:absolute; top:20px; right:20px; width:36px; height:36px; border-radius:50%; background:#fff; border:1px solid rgba(11,21,35,.15);
  color:var(--navy); font-size:1.3rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.scan-modal-close:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
.scan-modal-badge{display:inline-block; font-weight:700; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); margin-bottom:10px;}
.scan-modal h3{font-size:1.5rem; margin-bottom:10px; padding-right:40px;}
.scan-modal-subtitle{color:rgba(26,26,26,.75); margin-bottom:28px;}
.scan-modal .field{margin-bottom:18px;}
.scan-modal label{display:block; font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--navy); margin-bottom:6px;}
.scan-modal input{width:100%; padding:12px 14px; border:1px solid var(--hairline-color); border-radius:var(--radius-md); font-family:'Lato',Arial,sans-serif; font-size:.95rem; color:var(--navy); background:#fff;}
.scan-modal input:focus{outline:none; border-color:var(--navy);}
.scan-field-error{color:var(--crimson); font-size:.8rem; margin-top:6px; display:none;}
.scan-field-error.show{display:block;}
.scan-form-microcopy{font-size:.78rem; color:rgba(11,21,35,.55); text-align:center; margin:14px 0 0;}
.scan-form-error{font-size:.85rem; color:#b3261e; text-align:center; margin:14px 0 0;}
.scan-success{text-align:center; padding:40px 4px 8px;}
.scan-success-icon{width:40px; height:40px; border-radius:50%; border:1px solid var(--hairline-color); display:flex; align-items:center; justify-content:center; color:var(--navy); margin:0 auto 22px;}
.scan-success-icon svg{width:20px; height:20px;}
.scan-success p{color:rgba(26,26,26,.75);}
.scan-success-close{margin-top:24px; padding:11px 26px; font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--navy);
  background:#fff; border:1px solid var(--hairline-color); border-radius:var(--radius-sm); cursor:pointer;}
.scan-success-close:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
body.scan-modal-locked{overflow:hidden;}
.hp-field{position:absolute; left:-9999px;}

@media (max-width:860px){
  .nav-cta{display:none;}
  .nav-toggle{display:flex;}
  .nav-links{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0;
    background:var(--cream); border-bottom:1px solid var(--hairline-color); padding:6px 32px 22px; box-shadow:0 20px 40px -28px rgba(11,21,35,.35);}
  .nav-links.open{display:flex;}
  .nav-links li{border-bottom:1px solid var(--hairline-color);}
  .nav-links a{display:block; padding:14px 0;}
  .nav-links .nav-mobile-cta{border-bottom:0; padding-top:16px;}
  .nav-links .nav-mobile-cta .btn{width:100%; justify-content:center;}
  .footer-grid{grid-template-columns:1fr; gap:28px;}
}
@media (min-width:861px){ .nav-mobile-cta{display:none;} }
@media (max-width:640px){
  .wrap{padding:0 20px;}
  h1{font-size:2.1rem;}
  .scan-modal{padding:40px 22px;}
}
/* Slowness Tax Calculator (slowness-tax.html). Builds on styles.css tokens only:
   --navy, --teal, --cream, --ink, --hairline-color, radius scale. Every border is 1px. */

.st-page{--white:var(--surface);}

.st-hero{padding:72px 0 40px;}
.st-hero h1{max-width:820px;}
.st-lede{max-width:760px; font-size:1.12rem; color:var(--graphite); margin:0 0 14px;}
.st-context{font-family:'Montserrat',Arial,sans-serif; font-weight:600; font-size:.82rem; color:var(--teal); margin:0; letter-spacing:.02em;}

.st-engine{padding:24px 0 96px;}
.st-grid{display:grid; grid-template-columns:minmax(0,48fr) minmax(0,52fr); gap:32px; align-items:start;}

/* Input cards */
.st-inputs{display:grid; gap:20px;}
.st-card{background:var(--white); border:1px solid var(--hairline-color); border-radius:var(--radius-lg); padding:28px 28px 8px; box-shadow:var(--card-sheen);}
.st-card-head{display:flex; align-items:baseline; gap:12px; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--hairline-color);}
.st-card-head h2{font-size:1.05rem; margin:0; letter-spacing:.01em;}
.st-step{font-family:'Montserrat',Arial,sans-serif; font-weight:600; font-size:.78rem; color:var(--teal);}

.st-field{margin-bottom:22px;}
.st-field-top{display:flex; justify-content:space-between; align-items:center; gap:14px;}
.st-field label{font-weight:700; font-size:.92rem; color:var(--navy);}
.st-num{width:150px; text-align:right; padding:7px 10px; border:1px solid var(--hairline-color); border-radius:var(--radius-sm);
  font-family:'Montserrat',Arial,sans-serif; font-weight:600; font-size:.92rem; color:var(--navy); background:var(--cream);}
.st-num:focus{outline:none; border-color:var(--teal); background:#fff;}
.st-help{font-size:.82rem; line-height:1.45; color:var(--graphite); margin:6px 0 8px;}

.st-field input[type=range]{width:100%; margin:10px 0 0; height:22px; background:transparent; -webkit-appearance:none; appearance:none; cursor:pointer;}
.st-field input[type=range]:focus{outline:none;}
.st-field input[type=range]::-webkit-slider-runnable-track{height:4px; border-radius:var(--radius-pill);
  background:linear-gradient(to right, var(--teal) 0, var(--teal) var(--fill,50%), var(--hairline-color) var(--fill,50%));}
.st-field input[type=range]::-moz-range-track{height:4px; border-radius:var(--radius-pill); background:var(--hairline-color);}
.st-field input[type=range]::-moz-range-progress{height:4px; border-radius:var(--radius-pill); background:var(--teal);}
.st-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:18px; height:18px; margin-top:-7px; border-radius:50%;
  background:#fff; border:1px solid var(--navy); box-shadow:0 1px 3px rgba(11,21,35,.2);}
.st-field input[type=range]::-moz-range-thumb{width:18px; height:18px; border-radius:50%; background:#fff; border:1px solid var(--navy);}
.st-field input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(29,111,138,.2);}

/* Segmented controls */
.st-seg{border:0; padding:0; margin:0 0 22px;}
.st-seg legend{font-weight:700; font-size:.92rem; color:var(--navy); margin-bottom:10px; padding:0;}
.st-seg-options{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--hairline-color); border-radius:var(--radius-md); overflow:hidden; background:var(--cream);}
.st-seg-3{grid-template-columns:repeat(3,1fr);}
.st-seg-options label{position:relative; display:flex; cursor:pointer; border-left:1px solid var(--hairline-color);}
.st-seg-options label:first-child{border-left:0;}
.st-seg-options input{position:absolute; opacity:0; pointer-events:none;}
.st-seg-options span{flex:1; display:flex; align-items:center; justify-content:center; text-align:center; padding:10px 8px; font-size:.8rem; line-height:1.3; color:var(--graphite); transition:background .15s ease, color .15s ease;}
.st-seg-options input:checked + span{background:var(--navy); color:#fff; font-weight:700;}
.st-seg-options input:focus-visible + span{box-shadow:inset 0 0 0 1px var(--teal);}
.st-seg-options label:hover input:not(:checked) + span{background:#fff; color:var(--navy);}

/* Results */
.st-results{position:sticky; top:100px;}
.st-results-card{background:var(--white); border:1px solid var(--hairline-color); border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 20px 50px -30px rgba(11,21,35,.35);}
.st-results-head{background:radial-gradient(120% 120% at 0% 0%, #152740 0%, var(--navy) 70%); color:#fff; padding:30px 30px 26px;}
.st-eyebrow-light{font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(248,249,250,.7); margin-bottom:10px;}
.st-total{font-family:'Montserrat',Arial,sans-serif; font-weight:700; font-size:3rem; line-height:1.05; letter-spacing:-.01em; font-variant-numeric:tabular-nums;}
.st-total-meta{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:14px;}
.st-pct-pill{display:inline-flex; padding:5px 12px; border:1px solid rgba(248,249,250,.35); border-radius:var(--radius-pill); font-family:'Montserrat',Arial,sans-serif; font-weight:600; font-size:.8rem; color:#fff;}
.st-meta-note{font-size:.82rem; color:rgba(248,249,250,.7);}
.st-warn{margin:14px 0 0; font-size:.82rem; color:#F3C9C1;}
.st-results-body{padding:24px 30px 28px;}

.st-split{display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--hairline-color); border-radius:var(--radius-md);}
.st-split > div{padding:12px 14px; border-left:1px solid var(--hairline-color);}
.st-split > div:first-child{border-left:0;}
.st-split-label{display:block; font-size:.72rem; color:var(--graphite); text-transform:uppercase; letter-spacing:.06em; font-weight:700;}
.st-split-val{display:block; font-family:'Montserrat',Arial,sans-serif; font-weight:600; font-size:1.05rem; color:var(--navy); margin-top:4px; font-variant-numeric:tabular-nums;}

.st-formula{margin-top:14px; border:1px solid var(--hairline-color); border-radius:var(--radius-md); background:var(--cream);}
.st-formula summary{cursor:pointer; padding:10px 14px; font-weight:700; font-size:.84rem; color:var(--teal); list-style:none;}
.st-formula summary::-webkit-details-marker{display:none;}
.st-formula summary::after{content:"+"; float:right; color:var(--navy);}
.st-formula[open] summary::after{content:"\2212";}
.st-formula-body{padding:0 14px 12px; font-size:.84rem; color:var(--graphite);}
.st-formula-body p{margin:0 0 8px;}
.st-formula-body .f{display:block; font-family:'Montserrat',Arial,sans-serif; font-size:.78rem; color:var(--navy); background:#fff; border:1px solid var(--hairline-color); border-radius:var(--radius-sm); padding:8px 10px;}

.st-block{margin-top:26px;}
.st-block-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px;}
.st-block-head h3{font-size:.98rem; margin:0;}
.st-dli-label{font-family:'Montserrat',Arial,sans-serif; font-weight:600; font-size:.8rem; padding:3px 10px; border-radius:var(--radius-pill); border:1px solid currentColor;}
.st-scale-note{font-size:.76rem; color:var(--graphite);}

.st-gauge-track{position:relative; display:flex; height:10px; border-radius:var(--radius-pill); overflow:visible; margin:30px 0 12px;}
.st-gauge-track .z{height:100%;}
.st-gauge-track .z1{background:var(--teal); border-radius:var(--radius-pill) 0 0 var(--radius-pill);}
.st-gauge-track .z2{background:var(--graphite);}
.st-gauge-track .z3{background:var(--amber);}
.st-gauge-track .z4{background:var(--crimson); border-radius:0 var(--radius-pill) var(--radius-pill) 0;}
.st-marker{position:absolute; top:-8px; width:2px; height:26px; background:var(--navy); transform:translateX(-1px); transition:left .25s ease;}
.st-marker span{position:absolute; bottom:28px; left:50%; transform:translateX(-50%); white-space:nowrap; font-family:'Montserrat',Arial,sans-serif; font-weight:700; font-size:.76rem; color:var(--navy); background:#fff; border:1px solid var(--navy); border-radius:var(--radius-sm); padding:1px 7px;}
.st-target{position:absolute; top:-4px; width:0; height:18px; border-left:1px dashed var(--navy);}
.st-target span{position:absolute; top:22px; left:-4px; white-space:nowrap; font-size:.7rem; color:var(--graphite);}
.st-gauge-legend{display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:28px; font-size:.76rem; color:var(--graphite);}
.st-gauge-legend i{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; vertical-align:middle;}
.st-gauge-legend .l1{background:var(--teal);} .st-gauge-legend .l2{background:var(--graphite);}
.st-gauge-legend .l3{background:var(--amber);} .st-gauge-legend .l4{background:var(--crimson);}

.st-zone{padding:12px 0; border-top:1px solid var(--hairline-color);}
.st-zone:first-of-type{border-top:0; padding-top:0;}
.st-zone-top{display:flex; justify-content:space-between; font-size:.9rem; color:var(--navy); font-weight:700;}
.st-zone-top b{font-family:'Montserrat',Arial,sans-serif; font-variant-numeric:tabular-nums;}
.st-bar{height:6px; background:var(--cream); border:1px solid var(--hairline-color); border-radius:var(--radius-pill); margin:8px 0 6px; overflow:hidden;}
.st-bar span{display:block; height:100%; width:0; background:var(--teal); transition:width .25s ease, background .25s ease;}
.st-zone p{margin:0; font-size:.78rem; color:var(--graphite);}

.st-actions{margin-top:26px; display:grid; gap:10px;}
.st-actions .btn{justify-content:center; width:100%;}
.st-disclaimer{margin:4px 0 0; font-size:.76rem; color:var(--graphite); text-align:center;}

.st-mobile-bar, .st-print-only{display:none;}

@media (max-width:1024px){
  .st-total{font-size:2.5rem;}
}
@media (max-width:860px){
  .st-grid{grid-template-columns:1fr;}
  .st-results{position:static;}
  .st-engine{padding-bottom:110px;}
  .st-mobile-bar{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:150; align-items:center; gap:18px; justify-content:space-between;
    padding:12px 16px; background:var(--navy); color:#fff; border-top:1px solid rgba(248,249,250,.15);}
  .st-mobile-bar.is-hidden{display:none;}
  .st-mobile-bar b{display:block; font-family:'Montserrat',Arial,sans-serif; font-size:1.05rem; font-variant-numeric:tabular-nums;}
  .st-mobile-label{display:block; font-size:.66rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(248,249,250,.65);}
  .st-mobile-bar .btn{background:#fff; color:var(--navy); white-space:nowrap;}
}
@media (max-width:640px){
  .st-hero{padding:48px 0 24px;}
  .st-card{padding:22px 18px 4px;}
  .st-results-head, .st-results-body{padding-left:20px; padding-right:20px;}
  .st-total{font-size:2.2rem;}
  .st-num{width:128px;}
  .st-seg-options, .st-seg-3{grid-template-columns:1fr 1fr;}
  .st-seg-options label{border-top:1px solid var(--hairline-color);}
  .st-split{grid-template-columns:1fr;}
  .st-split > div{border-left:0; border-top:1px solid var(--hairline-color);}
  .st-split > div:first-child{border-top:0;}
}

/* Board memo print layout */
@media print{
  @page{margin:16mm;}
  body{background:#fff; padding-top:0; font-size:11pt;}
  header.site, footer.site, .cookie-banner, .st-inputs, .st-mobile-bar, .st-actions, .scan-modal-overlay, .st-formula summary, .st-context{display:none !important;}
  .st-hero{padding:0 0 10pt;}
  .st-hero .badge-pill{display:none;}
  .st-hero h1{font-size:20pt;}
  .st-lede{font-size:10pt;}
  .st-engine{padding:0;}
  .st-grid{display:block;}
  .st-results{position:static;}
  .st-results-card{box-shadow:none; border-color:#ccc;}
  .st-results-head{background:var(--navy) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact;}
  .st-formula{display:block;}
  .st-formula .st-formula-body{display:block !important;}
  .st-gauge-track .z, .st-bar span, .st-gauge-legend i{-webkit-print-color-adjust:exact; print-color-adjust:exact;}
  .st-block{break-inside:avoid;}
  .st-print-only{display:block; padding:14pt 0 0;}
  .st-print-only h2{font-size:13pt;}
  .st-print-table{width:100%; border-collapse:collapse; font-size:9.5pt;}
  .st-print-table td{border:1px solid #ddd; padding:4pt 6pt;}
  .st-print-table td:first-child{color:var(--navy); font-weight:700; width:55%;}
  .st-print-foot{font-size:8.5pt; color:var(--graphite); margin-top:10pt;}
}

/* Keep the marker label inside the card at either end of the gauge */
.st-marker.at-start span{left:0; transform:none;}
.st-marker.at-end span{left:auto; right:0; transform:none;}

/* Logo on the printed board memo only */
.st-print-brand{display:none;}
@media print{
  .st-print-brand{display:flex; justify-content:space-between; align-items:center; padding-bottom:10pt; margin-bottom:14pt; border-bottom:1px solid var(--hairline-color);}
  .st-print-brand img{height:30px;}
  .st-print-brand span{font-size:8.5pt; color:var(--graphite);}
}
