
.kn-estimator *{margin:0;padding:0;box-sizing:border-box;}
.kn-estimator{
  --color-ink:#15181b;
  --color-ink-2:#4c5459;
  --color-ink-3:#5f676c;
  --color-ink-4:#7d868c;
  --color-paper:#ffffff;
  --color-paper-2:#f5f3f0;
  --color-paper-3:#e9e5df;
  --color-accent:#d93d27;
  --color-accent-2:#b32f1c;
  --color-accent-wash:#fbeeeb;
  --color-line:#ded9d3;
  --color-line-2:#c6bfb6;
  --color-dark:#101d35;
  --color-on-dark:#ffffff;
  --color-on-dark-2:#a9b1b6;
  --color-on-dark-line:#33383c;
  --color-chrome:#222528;
  --color-chrome-2:#33383c;
  --color-on-chrome:#e9eaeb;
  --color-on-chrome-2:#8d949a;

  --font-sans:"IBM Plex Sans","Noto Sans JP","Helvetica Neue",sans-serif;
  --font-jp:"Noto Sans JP","IBM Plex Sans",sans-serif;
  --font-mono:"IBM Plex Mono","Courier New",monospace;

  --fw-normal:400;
  --fw-medium:500;
  --fw-semi:600;
  --fw-bold:700;

  --fs-hero:54px;
  --fs-h2:34px;
  --fs-h3:19px;
  --fs-h4:16px;
  --fs-lead:19px;
  --fs-body:16px;
  --fs-sm:14px;
  --fs-xs:12px;
  --fs-eyebrow:12px;
  --fs-nav:15px;
  --fs-num:40px;
  --fs-glyph:26px;
  --fs-quote:19px;

  --lh-tight:1.06;
  --lh-head:1.22;
  --lh-body:1.6;
  --ls-eyebrow:0.14em;
  --ls-head:-0.02em;

  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:24px;
  --sp-6:32px;
  --sp-7:48px;
  --sp-8:64px;

  --pad-section-y:104px;
  --pad-section-x:40px;
  --gap-card:24px;
  --gap-subnav:32px;
  --gap-col:64px;
  --w-shell:1200px;
  --w-measure:620px;
  --w-card:44%;
  --w-card-3:30%;
  --w-full:100%;
  --w-half:48%;
  --w-panel:400px;
  --w-form:56%;
  --w-info:34%;
  --w-calc:54%;
  --w-result:40%;
  --fs-result:22px;
  --fs-result-lg:36px;
  --h-nav:104px;
  --h-tap:48px;
  --h-field:52px;
  --h-area:132px;
  --h-photo:300px;
  --h-photo-sm:200px;
  --h-map:340px;
  --h-glyph:56px;
  --h-mark:72px;
  --h-num:44px;
  --h-rule:3px;
  --bw-1:1px;
  --bw-2:2px;
  --bw-4:4px;
  --bw-6:7px;
  --radius:2px;
  --radius-pill:999px;

  --logo-box-w:203px;
  --logo-box-h:94px;
  --logo-img:249px;
  --logo-x:-22px;
  --logo-y:-84px;

  --frame-w:1440px;
  --frame-h:880px;
  --shadow-frame:0 18px 60px rgba(16,29,53,0.30);
}
.kn-estimator .stage *{box-sizing:border-box;}
.kn-estimator .stage{
  display:flex;
  flex-direction:column;
  gap:var(--sp-5);
  padding:var(--sp-5);
  background:var(--color-chrome);
  min-height:var(--w-full);
  font-family:var(--font-sans);
}
.kn-estimator .stage-scroll{
  display:flex;
  justify-content:flex-start;
  width:var(--w-full);
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:var(--sp-2);
}
.kn-estimator .toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:var(--sp-5);
  width:var(--w-full);
}
.kn-estimator .tool-group{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;}
.kn-estimator .tool-label{
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;
  color:var(--color-on-chrome-2);
  margin-right:var(--sp-2);
}
.kn-estimator .tool-tab{
  font-family:var(--font-sans);
  font-size:var(--fs-sm);
  font-weight:var(--fw-medium);
  color:var(--color-on-chrome);
  background:var(--color-chrome-2);
  border:var(--bw-1) solid var(--color-chrome-2);
  border-radius:var(--radius);
  padding:var(--sp-2) var(--sp-4);
  cursor:pointer;
}
.kn-estimator .tool-tab-on{
  background:var(--color-paper);
  color:var(--color-ink);
  border-color:var(--color-paper);
}
.kn-estimator .site-frame{
  width:var(--frame-w);
  height:var(--frame-h);
  flex:none;
  margin-left:auto;
  margin-right:auto;
  display:flex;
  background:var(--color-paper);
  box-shadow:var(--shadow-frame);
  overflow:hidden;
}
.kn-estimator .frame-scroll{
  width:var(--w-full);
  height:var(--w-full);
  overflow-y:auto;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
  color:var(--color-ink);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
}
/* nav */.kn-estimator .nav-bar{
  position:sticky;
  top:0;
  z-index:5;
  flex:none;
  display:flex;
  flex-direction:column;
  background:var(--color-paper);
  border-bottom:var(--bw-1) solid var(--color-line);
}
.kn-estimator .nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-5);
  height:var(--h-nav);
  width:var(--w-full);
  max-width:var(--w-shell);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--pad-section-x);
  padding-right:var(--pad-section-x);
}
.kn-estimator .logo-lock{
  width:var(--logo-box-w);
  height:var(--logo-box-h);
  flex:none;
  display:flex;
  overflow:hidden;
  cursor:pointer;
  background:var(--color-paper);
}
.kn-estimator .logo-lock img{
  width:var(--logo-img);
  height:var(--logo-img);
  flex:none;
  margin-left:var(--logo-x);
  margin-top:var(--logo-y);
}
.kn-estimator .logo-lg{--logo-box-w:182px;--logo-box-h:85px;--logo-img:223px;--logo-x:-20px;--logo-y:-76px;}
.kn-estimator .nav-links{display:flex;align-items:center;gap:var(--sp-6);}
.kn-estimator .nav-link{
  font-family:var(--font-sans);
  font-size:var(--fs-nav);
  font-weight:var(--fw-medium);
  color:var(--color-ink-2);
  background:none;
  border:none;
  border-bottom:var(--bw-2) solid transparent;
  padding-top:var(--sp-1);
  padding-bottom:var(--sp-1);
  cursor:pointer;
}
.kn-estimator .nav-link:hover{color:var(--color-ink);}
.kn-estimator .nav-link-on{color:var(--color-ink);border-bottom-color:var(--color-accent);}
.kn-estimator .nav-right{display:flex;align-items:center;gap:var(--sp-4);}
.kn-estimator .nav-phone{
  font-family:var(--font-mono);
  font-size:var(--fs-sm);
  color:var(--color-ink-2);
}
.kn-estimator .burger{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:var(--sp-1);
  width:var(--h-tap);
  height:var(--h-tap);
  flex:none;
  padding:var(--sp-3);
  background:var(--color-paper-2);
  border:var(--bw-1) solid var(--color-line);
  border-radius:var(--radius);
  cursor:pointer;
}
.kn-estimator .burger-line{display:block;width:var(--w-full);height:var(--bw-2);background:var(--color-ink);}
.kn-estimator .mobile-menu{display:flex;flex-direction:column;border-top:var(--bw-1) solid var(--color-line);}
.kn-estimator .mobile-link{
  display:flex;
  align-items:center;
  min-height:var(--h-tap);
  padding:var(--sp-3) var(--pad-section-x);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  font-weight:var(--fw-medium);
  color:var(--color-ink);
  background:var(--color-paper);
  border:none;
  border-bottom:var(--bw-1) solid var(--color-line);
  text-align:left;
  cursor:pointer;
}
.kn-estimator .mobile-link-on{background:var(--color-accent-wash);color:var(--color-accent-2);}
.kn-estimator .mobile-sublink{padding-left:var(--sp-7);font-size:var(--fs-sm);color:var(--color-ink-2);}
.kn-estimator .nav-drop-wrap{position:relative;display:flex;align-items:center;}
.kn-estimator .subnav{position:absolute;top:calc(100% + 12px);left:calc(var(--sp-4) * -1);display:flex;min-width:300px;background:var(--color-paper);border:var(--bw-1) solid var(--color-line);box-shadow:var(--shadow-frame);z-index:50;}
.kn-estimator .subnav-inner{display:flex;flex-direction:column;align-items:stretch;width:var(--w-full);padding:var(--sp-2) 0;}
.kn-estimator .subnav-link{display:flex;align-items:center;min-height:var(--sp-6);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-ink-2);background:none;border:none;border-left:var(--bw-2) solid transparent;padding:var(--sp-2) var(--sp-4);text-align:left;cursor:pointer;}
.kn-estimator .subnav-link:hover{color:var(--color-ink);background:var(--color-paper-2);}
.kn-estimator .subnav-link-on{color:var(--color-accent-2);border-left-color:var(--color-accent);background:var(--color-accent-wash);}
.kn-estimator .caret-down{width:var(--sp-1);height:var(--sp-1);flex:none;margin-left:var(--sp-2);border-right:var(--bw-2) solid var(--color-ink-3);border-bottom:var(--bw-2) solid var(--color-ink-3);transform:rotate(45deg);}
.kn-estimator .nav-link-drop{display:flex;align-items:center;}
.kn-estimator .mobile-cta{padding:var(--sp-4) var(--pad-section-x);display:flex;}
/* page shell */.kn-estimator .page{display:flex;flex-direction:column;flex:1 0 auto;}
.kn-estimator .section{
  display:flex;
  flex-direction:column;
  padding:var(--pad-section-y) var(--pad-section-x);
  background:var(--color-paper);
}
.kn-estimator .section-alt{background:var(--color-paper-2);}
.kn-estimator .section-dark{background:var(--color-dark);color:var(--color-on-dark);}
.kn-estimator .section-inner{
  display:flex;
  flex-direction:column;
  gap:var(--sp-7);
  width:var(--w-full);
  max-width:var(--w-shell);
  margin-left:auto;
  margin-right:auto;
}
.kn-estimator .row{display:flex;gap:var(--gap-col);}
.kn-estimator .row-wrap{display:flex;flex-wrap:wrap;gap:var(--gap-card);}
.kn-estimator .col{display:flex;flex-direction:column;gap:var(--sp-5);flex:1 1 var(--w-half);min-width:var(--sp-8);}
.kn-estimator .stack-2{display:flex;flex-direction:column;gap:var(--sp-2);}
.kn-estimator .stack-3{display:flex;flex-direction:column;gap:var(--sp-3);}
.kn-estimator .stack-4{display:flex;flex-direction:column;gap:var(--sp-4);}
.kn-estimator .stack-5{display:flex;flex-direction:column;gap:var(--sp-5);}
/* type */.kn-estimator .eyebrow{
  font-family:var(--font-mono);
  font-size:var(--fs-eyebrow);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;
  color:var(--color-accent-2);
}
.kn-estimator .eyebrow-quiet{color:var(--color-ink-3);}
.kn-estimator .eyebrow-light{color:var(--color-on-dark-2);}
.kn-estimator .h1{
  font-family:var(--font-sans);
  font-size:var(--fs-hero);
  font-weight:var(--fw-bold);
  line-height:var(--lh-tight);
  letter-spacing:var(--ls-head);
  color:var(--color-ink);
  margin:0;
  text-wrap:pretty;
}
.kn-estimator .h2{
  font-family:var(--font-sans);
  font-size:var(--fs-h2);
  font-weight:var(--fw-bold);
  line-height:var(--lh-head);
  letter-spacing:var(--ls-head);
  color:var(--color-ink);
  margin:0;
  max-width:var(--w-measure);
  text-wrap:pretty;
}
.kn-estimator .h3{
  font-family:var(--font-sans);
  font-size:var(--fs-h3);
  font-weight:var(--fw-semi);
  line-height:var(--lh-head);
  color:var(--color-ink);
  margin:0;
}
.kn-estimator .h4{
  font-family:var(--font-sans);
  font-size:var(--fs-h4);
  font-weight:var(--fw-semi);
  color:var(--color-ink);
  margin:0;
}
.kn-estimator .h1-light,.kn-estimator .h2-light,.kn-estimator .h3-light{color:var(--color-on-dark);}
.kn-estimator .lead{
  font-family:var(--font-sans);
  font-size:var(--fs-lead);
  line-height:var(--lh-body);
  color:var(--color-ink-2);
  max-width:var(--w-measure);
  margin:0;
  text-wrap:pretty;
}
.kn-estimator .lead-light{color:var(--color-on-dark-2);}
.kn-estimator .body-text{
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  color:var(--color-ink-2);
  max-width:var(--w-measure);
  margin:0;
  text-wrap:pretty;
}
.kn-estimator .body-text-light{color:var(--color-on-dark-2);}
.kn-estimator .fine{
  font-family:var(--font-sans);
  font-size:var(--fs-sm);
  line-height:var(--lh-body);
  color:var(--color-ink-3);
  margin:0;
}
.kn-estimator .mono-note{
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  color:var(--color-ink-3);
}
.kn-estimator .rule{width:var(--h-num);height:var(--h-rule);background:var(--color-accent);flex:none;}
/* buttons */.kn-estimator .button-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);}
.kn-estimator .button-primary{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:var(--h-tap);
  padding:var(--sp-3) var(--sp-6);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  font-weight:var(--fw-semi);
  color:var(--color-on-dark);
  background:var(--color-accent);
  border:var(--bw-2) solid var(--color-accent);
  border-radius:var(--radius);
  cursor:pointer;
}
.kn-estimator .button-primary:hover{background:var(--color-accent-2);border-color:var(--color-accent-2);}
.kn-estimator .button-ghost{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:var(--h-tap);
  padding:var(--sp-3) var(--sp-6);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  font-weight:var(--fw-semi);
  color:var(--color-ink);
  background:none;
  border:var(--bw-2) solid var(--color-line-2);
  border-radius:var(--radius);
  cursor:pointer;
}
.kn-estimator .button-ghost:hover{border-color:var(--color-ink);}
.kn-estimator .button-light{color:var(--color-on-dark);border-color:var(--color-on-dark-line);}
.kn-estimator .button-light:hover{border-color:var(--color-on-dark);}
/* hero */.kn-estimator .hero{
  display:flex;
  flex-direction:column;
  padding:var(--pad-section-y) var(--pad-section-x);
  background:var(--color-paper-2);
  border-bottom:var(--bw-1) solid var(--color-line);
}
.kn-estimator .hero-copy{display:flex;flex-direction:column;gap:var(--sp-5);flex:1 1 auto;max-width:var(--w-measure);}
.kn-estimator .hero-panel{
  display:flex;
  flex-direction:column;
  gap:var(--sp-4);
  flex:none;
  width:var(--w-panel);
  padding:var(--sp-6);
  background:var(--color-paper);
  border:var(--bw-1) solid var(--color-line);
  border-top:var(--bw-4) solid var(--color-accent);
}
.kn-estimator .panel-row{display:flex;flex-direction:column;gap:var(--sp-1);padding-bottom:var(--sp-4);border-bottom:var(--bw-1) solid var(--color-line);}
.kn-estimator .panel-row-last{border-bottom:none;padding-bottom:0;}
.kn-estimator .panel-label{
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;
  color:var(--color-ink-3);
}
.kn-estimator .panel-value{font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--color-ink);line-height:var(--lh-head);}
/* cards */.kn-estimator .card-service{
  display:flex;
  flex-direction:column;
  gap:var(--sp-4);
  flex:1 1 var(--w-card);
  min-width:var(--w-card);
  padding:var(--sp-6);
  background:var(--color-paper);
  border:var(--bw-1) solid var(--color-line);
}
.kn-estimator .card-service:hover{border-color:var(--color-line-2);}
.kn-estimator .card-tight{flex:1 1 var(--w-card-3);min-width:var(--w-card-3);}
.kn-estimator .card-head{display:flex;align-items:center;gap:var(--sp-4);}
.kn-estimator .card-glyph{
  display:flex;
  align-items:center;
  justify-content:center;
  width:var(--h-glyph);
  height:var(--h-glyph);
  flex:none;
  font-family:var(--font-jp);
  font-size:var(--fs-glyph);
  font-weight:var(--fw-bold);
  color:var(--color-paper);
  background:var(--color-ink);
}
.kn-estimator .card-glyph-accent{background:var(--color-accent);}
.kn-estimator .tag{
  display:flex;
  align-items:center;
  align-self:flex-start;
  padding:var(--sp-1) var(--sp-3);
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;
  color:var(--color-accent-2);
  background:var(--color-accent-wash);
  border-radius:var(--radius);
}
.kn-estimator .tag-quiet{color:var(--color-ink-2);background:var(--color-paper-3);}
.kn-estimator .list{display:flex;flex-direction:column;gap:var(--sp-3);margin:0;padding:0;list-style:none;}
.kn-estimator .list-item{display:flex;align-items:flex-start;gap:var(--sp-3);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--color-ink-2);}
.kn-estimator .bullet-dot{width:var(--sp-2);height:var(--sp-2);margin-top:var(--sp-2);flex:none;background:var(--color-accent);border-radius:var(--radius-pill);}
.kn-estimator .bullet-dot-quiet{background:var(--color-line-2);}
/* steps + facts */.kn-estimator .step-item{display:flex;flex-direction:column;gap:var(--sp-3);flex:1 1 var(--w-card-3);min-width:var(--w-card-3);padding-top:var(--sp-4);border-top:var(--bw-2) solid var(--color-ink);}
.kn-estimator .step-num{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-accent-2);}
.kn-estimator .timeline{display:flex;flex-direction:column;max-width:var(--w-shell);}
.kn-estimator .tl-item{display:grid;grid-template-columns:140px var(--sp-7) minmax(0,1fr);}
.kn-estimator .tl-when{display:flex;flex-direction:column;gap:var(--sp-1);padding:0 var(--sp-5) var(--sp-7) 0;text-align:right;}
.kn-estimator .tl-when-num{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-ink-3);}
.kn-estimator .tl-when-val{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--color-ink);}
.kn-estimator .tl-rail{position:relative;display:flex;justify-content:center;}
.kn-estimator .tl-rail::before{content:"";position:absolute;top:var(--sp-3);bottom:0;left:50%;width:var(--bw-1);margin-left:calc(var(--bw-1) * -0.5);background:var(--color-line-2);}
.kn-estimator .tl-item-last .tl-rail::before{display:none;}
.kn-estimator .tl-mark{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:var(--sp-6);height:var(--sp-6);flex:none;background:var(--color-accent);color:var(--color-on-dark);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-bold);}
.kn-estimator .tl-mark-you{background:var(--color-dark);}
.kn-estimator .tl-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:0 0 var(--sp-7) var(--sp-5);}
.kn-estimator .tl-item-last .tl-body,.kn-estimator .tl-item-last .tl-when{padding-bottom:0;}
.kn-estimator .tl-who{align-self:flex-start;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-ink-3);}
.kn-estimator .tl-who-you{color:var(--color-accent-2);}
.kn-estimator .fact-item{display:flex;flex-direction:column;gap:var(--sp-2);flex:1 1 var(--w-card-3);min-width:var(--w-card-3);}
.kn-estimator .row-wrap-4{--w-card-3:22%;}
.kn-estimator .fact-num{font-family:var(--font-sans);font-size:var(--fs-num);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-head);color:var(--color-on-dark);}
.kn-estimator .fact-text{font-family:var(--font-sans);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--color-on-dark-2);}
/* photo slots */.kn-estimator .photo-slot{
  display:flex;
  align-items:center;
  justify-content:center;
  width:var(--w-full);
  height:var(--h-photo);
  flex:none;
  border:var(--bw-1) solid var(--color-line);
  background-color:var(--color-paper-2);
  background-image:repeating-linear-gradient(45deg,var(--color-paper-3) 0,var(--color-paper-3) var(--sp-1),var(--color-paper-2) var(--sp-1),var(--color-paper-2) var(--sp-3));
}
.kn-estimator .photo-slot-sm{height:var(--h-photo-sm);}
/* org chart */.kn-estimator .org{display:flex;flex-direction:column;align-items:center;width:var(--w-full);}
.kn-estimator .org-parent{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-7);background:var(--color-dark);border:var(--bw-1) solid var(--color-dark);text-align:center;}
.kn-estimator .org-parent-jp{font-family:var(--font-jp);font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--color-paper);line-height:var(--lh-tight);}
.kn-estimator .org-parent-rom{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-on-dark);}
.kn-estimator .org-parent-note{max-width:420px;font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--color-on-dark);}
.kn-estimator .org-stem{width:var(--bw-1);height:var(--sp-6);background:var(--color-line-2);}
.kn-estimator .org-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-card);width:var(--w-full);}
.kn-estimator .org-branch{position:relative;display:flex;padding-top:var(--sp-6);}
.kn-estimator .org-branch::before{content:"";position:absolute;top:0;left:calc(var(--gap-card) * -0.5);right:calc(var(--gap-card) * -0.5);height:var(--bw-1);background:var(--color-line-2);}
.kn-estimator .org-branch:first-child::before{left:50%;}
.kn-estimator .org-branch:last-child::before{right:50%;}
.kn-estimator .org-branch::after{content:"";position:absolute;top:0;left:50%;width:var(--bw-1);height:var(--sp-6);margin-left:calc(var(--bw-1) * -0.5);background:var(--color-line-2);}
.kn-estimator .org-card{display:flex;flex-direction:column;gap:var(--sp-4);width:var(--w-full);padding:var(--sp-6);background:var(--color-paper);border:var(--bw-1) solid var(--color-line);}
.kn-estimator .org-card-here{border-color:var(--color-accent);box-shadow:inset var(--sp-1) 0 0 var(--color-accent);}
.kn-estimator .photo-fill{width:var(--w-full);height:var(--w-full);object-fit:cover;object-position:center;display:block;}
.kn-estimator .photo-slot-filled{background-image:none;border-style:solid;overflow:hidden;padding:0;}
.kn-estimator .photo-slot-map{height:var(--h-map);}
.kn-estimator .photo-slot-label{
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;
  color:var(--color-ink-2);
  background:var(--color-paper);
  border:var(--bw-1) solid var(--color-line);
  padding:var(--sp-2) var(--sp-3);
  text-align:center;
}
/* quotes */.kn-estimator .quote-card{display:flex;flex-direction:column;gap:var(--sp-4);flex:1 1 var(--w-half);min-width:var(--sp-8);padding:var(--sp-6);background:var(--color-paper);border-left:var(--bw-4) solid var(--color-accent);}
.kn-estimator .quote-text{font-family:var(--font-sans);font-size:var(--fs-quote);line-height:var(--lh-body);color:var(--color-ink);margin:0;}
.kn-estimator .quote-who{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-ink-3);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;}
/* blog */.kn-estimator .post-featured{display:flex;gap:var(--gap-col);padding:var(--sp-6);background:var(--color-paper);border:var(--bw-1) solid var(--color-line);}
.kn-estimator .post-list{display:flex;flex-direction:column;}
.kn-estimator .post-item{display:flex;gap:var(--gap-col);padding:var(--sp-6) 0;border-bottom:var(--bw-1) solid var(--color-line);cursor:pointer;}
.kn-estimator .post-item:hover{background:var(--color-paper-2);}
.kn-estimator .post-meta{display:flex;flex-direction:column;gap:var(--sp-2);flex:none;width:var(--w-info);}
.kn-estimator .post-body{display:flex;flex-direction:column;gap:var(--sp-2);flex:1 1 auto;}
/* form mockup */.kn-estimator .form-mock{display:flex;flex-direction:column;gap:var(--sp-5);flex:1 1 var(--w-form);min-width:var(--sp-8);padding:var(--sp-6);background:var(--color-paper);border:var(--bw-1) solid var(--color-line);}
.kn-estimator .mock-badge{
  display:flex;
  align-items:center;
  align-self:flex-start;
  gap:var(--sp-2);
  padding:var(--sp-2) var(--sp-3);
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;
  color:var(--color-ink);
  background:var(--color-paper-3);
  border:var(--bw-1) solid var(--color-line-2);
}
.kn-estimator .field-row{display:flex;gap:var(--sp-4);}
.kn-estimator .field{display:flex;flex-direction:column;gap:var(--sp-2);flex:1 1 var(--w-half);min-width:var(--sp-8);}
.kn-estimator .field-label{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-ink);}
.kn-estimator .field-input{
  display:flex;
  align-items:center;
  height:var(--h-field);
  padding:var(--sp-3) var(--sp-4);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  color:var(--color-ink-4);
  background:var(--color-paper-2);
  border:var(--bw-1) solid var(--color-line-2);
  border-radius:var(--radius);
}
.kn-estimator .field-area{height:var(--h-area);align-items:flex-start;padding-top:var(--sp-4);}
.kn-estimator .field-select{justify-content:space-between;background:var(--color-paper);}
.kn-estimator .caret{width:var(--sp-2);height:var(--sp-2);flex:none;border-right:var(--bw-2) solid var(--color-ink-2);border-bottom:var(--bw-2) solid var(--color-ink-2);transform:rotate(45deg);}
.kn-estimator .info-block{display:flex;flex-direction:column;gap:var(--sp-5);flex:1 1 var(--w-info);min-width:var(--sp-8);}
.kn-estimator .info-item{display:flex;flex-direction:column;gap:var(--sp-1);padding-bottom:var(--sp-4);border-bottom:var(--bw-1) solid var(--color-line);}
.kn-estimator .info-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-ink-3);}
.kn-estimator .info-value{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--color-ink);line-height:var(--lh-head);}
/* price + faq */.kn-estimator .price-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:var(--bw-1) solid var(--color-line);}
.kn-estimator .price-name{font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--color-ink);}
.kn-estimator .price-value{font-family:var(--font-mono);font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--color-accent-2);flex:none;}
.kn-estimator .faq-item{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5) 0;border-top:var(--bw-1) solid var(--color-line);}
/* calculators */.kn-estimator .gensen-shot{width:var(--w-full);height:auto;flex:none;border:var(--bw-1) solid var(--color-line);background:var(--color-paper);}
.kn-estimator .calc-row{display:flex;gap:var(--gap-col);align-items:flex-start;}
.kn-estimator .calc-form{display:flex;flex-direction:column;gap:var(--sp-5);flex:1 1 var(--w-calc);min-width:var(--sp-8);padding:var(--sp-6);background:var(--color-paper);border:var(--bw-1) solid var(--color-line);}
.kn-estimator .calc-result{display:flex;flex-direction:column;gap:var(--sp-4);flex:1 1 var(--w-result);min-width:var(--sp-8);padding:var(--sp-6);background:var(--color-dark);border-top:var(--bw-4) solid var(--color-accent);}
.kn-estimator .calc-block{display:flex;flex-direction:column;gap:var(--sp-4);padding-bottom:var(--sp-5);border-bottom:var(--bw-1) solid var(--color-line);}
.kn-estimator .calc-block-last{border-bottom:none;padding-bottom:0;}
.kn-estimator .calc-legend{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-accent-2);}
.kn-estimator .calc-field{display:flex;flex-direction:column;gap:var(--sp-2);flex:1 1 var(--w-half);min-width:var(--sp-8);}
.kn-estimator .calc-hint{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--color-ink-3);line-height:var(--lh-body);}
.kn-estimator .calc-input-wrap{display:flex;align-items:center;gap:var(--sp-2);height:var(--h-field);padding:0 var(--sp-4);background:var(--color-paper-2);border:var(--bw-1) solid var(--color-line-2);border-radius:var(--radius);}
.kn-estimator .calc-unit{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-ink-3);flex:none;}
.kn-estimator .calc-input{flex:1 1 auto;min-width:var(--sp-8);width:var(--w-full);height:var(--w-full);font-family:var(--font-mono);font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--color-ink);background:none;border:none;outline:none;}
.kn-estimator .calc-slider{width:var(--w-full);height:var(--sp-5);accent-color:var(--color-accent);cursor:pointer;}
.kn-estimator .toggle-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);}
.kn-estimator .toggle-btn{display:flex;align-items:center;min-height:var(--h-tap);padding:var(--sp-3) var(--sp-5);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-ink-2);background:var(--color-paper-2);border:var(--bw-1) solid var(--color-line-2);border-radius:var(--radius);cursor:pointer;}
.kn-estimator .toggle-btn:hover{border-color:var(--color-ink-3);}
.kn-estimator .toggle-btn-on{color:var(--color-paper);background:var(--color-ink);border-color:var(--color-ink);}
.kn-estimator .result-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:var(--bw-1) solid var(--color-on-dark-line);}
.kn-estimator .result-label{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--color-on-dark-2);}
.kn-estimator .result-value{font-family:var(--font-mono);font-size:var(--fs-result);font-weight:var(--fw-medium);color:var(--color-on-dark);flex:none;}
.kn-estimator .result-value-minus{color:var(--color-accent);}
.kn-estimator .result-total{display:flex;flex-direction:column;gap:var(--sp-1);padding-top:var(--sp-2);}
.kn-estimator .result-total-value{font-family:var(--font-sans);font-size:var(--fs-result-lg);font-weight:var(--fw-bold);letter-spacing:var(--ls-head);color:var(--color-on-dark);line-height:var(--lh-tight);}
.kn-estimator .result-note{font-family:var(--font-sans);font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--color-on-dark-2);}
.kn-estimator .compare-card{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);background:var(--color-chrome);border-left:var(--bw-4) solid var(--color-accent);}
.kn-estimator .compare-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-on-dark);}
.kn-estimator .compare-row{display:flex;align-items:center;gap:var(--sp-3);}
.kn-estimator .compare-side{display:flex;flex-direction:column;gap:var(--sp-1);flex:1 1 var(--w-half);min-width:var(--sp-7);}
.kn-estimator .compare-side-end{align-items:flex-end;}
.kn-estimator .compare-label{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--color-on-dark-2);}
.kn-estimator .compare-was{font-family:var(--font-mono);font-size:var(--fs-result);color:var(--color-on-dark-2);text-decoration:line-through;}
.kn-estimator .compare-now{font-family:var(--font-mono);font-size:var(--fs-result);font-weight:var(--fw-bold);color:var(--color-on-dark);}
.kn-estimator .compare-arrow{font-family:var(--font-sans);font-size:var(--fs-h3);color:var(--color-accent);flex:none;}
.kn-estimator .gain-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-3);border-top:var(--bw-1) solid var(--color-on-dark-line);}
.kn-estimator .result-eyebrow{align-self:flex-start;font-family:var(--font-mono);font-size:var(--fs-h4);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-on-dark);background:var(--color-accent);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);}
/* footer */.kn-estimator .site-footer{flex:none;display:flex;flex-direction:column;background:var(--color-dark);}
.kn-estimator .footer-inner{
  display:flex;
  flex-wrap:wrap;
  gap:var(--gap-col);
  width:var(--w-full);
  max-width:var(--w-shell);
  margin-left:auto;
  margin-right:auto;
  padding:var(--pad-section-y) var(--pad-section-x);
}
.kn-estimator .footer-brand{display:flex;flex-direction:column;gap:var(--sp-4);flex:1 1 var(--w-card);min-width:var(--sp-8);}
.kn-estimator .footer-col{display:flex;flex-direction:column;gap:var(--sp-3);flex:1 1 var(--w-card-3);min-width:var(--sp-8);}
.kn-estimator .footer-head{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--color-on-dark-2);margin-bottom:var(--sp-1);}
.kn-estimator .footer-link{
  display:flex;
  align-items:center;
  min-height:var(--sp-5);
  font-family:var(--font-sans);
  font-size:var(--fs-sm);
  color:var(--color-on-dark);
  background:none;
  border:none;
  padding:0;
  text-align:left;
  cursor:pointer;
}
.kn-estimator .footer-link:hover{color:var(--color-accent);}
.kn-estimator .footer-text{font-family:var(--font-sans);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--color-on-dark-2);}
.kn-estimator .footer-lockup{display:flex;align-items:center;gap:var(--sp-5);}
.kn-estimator .footer-mark{width:var(--h-mark);height:var(--h-mark);flex:none;}
.kn-estimator .footer-wordmark{display:flex;flex-direction:column;gap:var(--sp-1);align-items:stretch;}
.kn-estimator .lockup-bar{width:var(--w-full);height:var(--bw-6);background:var(--color-accent);flex:none;}
.kn-estimator .lockup-tag{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--color-on-dark);line-height:var(--lh-head);}
.kn-estimator .lockup-jp{font-family:var(--font-jp);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-accent);line-height:var(--lh-tight);}
.kn-estimator .lockup-en{font-family:var(--font-sans);font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--color-on-dark);line-height:var(--lh-tight);letter-spacing:var(--ls-head);}
.kn-estimator .footer-bottom{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-4);
  justify-content:space-between;
  width:var(--w-full);
  max-width:var(--w-shell);
  margin-left:auto;
  margin-right:auto;
  padding:var(--sp-5) var(--pad-section-x);
  border-top:var(--bw-1) solid var(--color-on-dark-line);
}
.kn-estimator .page{animation:knPageIn .5s cubic-bezier(.16,1,.3,1) both;}
.kn-estimator .mobile-menu,.kn-estimator .subnav{animation:knSlideDown .22s cubic-bezier(.16,1,.3,1) both;}
.kn-estimator .mock-badge{animation:knFadeIn .3s ease both;}
.kn-estimator .card-service,.kn-estimator .quote-card,.kn-estimator .step-item,.kn-estimator .fact-item,.kn-estimator .post-item,.kn-estimator .post-featured,.kn-estimator .form-mock,.kn-estimator .calc-form,.kn-estimator .calc-result,.kn-estimator .info-block,.kn-estimator .hero-panel,.kn-estimator .price-row,.kn-estimator .faq-item{
      animation:knRise .6s cubic-bezier(.16,1,.3,1) both;
      animation-timeline:view();
      animation-range:entry 0% cover 30%;
    }
.kn-estimator .button-primary,.kn-estimator .button-ghost,.kn-estimator .toggle-btn,.kn-estimator .nav-link,.kn-estimator .subnav-link,.kn-estimator .footer-link,.kn-estimator .mobile-link,.kn-estimator .card-service,.kn-estimator .post-item,.kn-estimator .logo-lock,.kn-estimator .calc-input-wrap,.kn-estimator .field-input{
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease,box-shadow .2s ease;
}
.kn-estimator .button-primary:active,.kn-estimator .button-ghost:active,.kn-estimator .toggle-btn:active{transform:translateY(1px);}
.kn-estimator .card-service:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(21,24,27,0.08);}
.kn-estimator .logo-lock:hover{transform:scale(1.03);}
.kn-estimator .calc-input-wrap:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-wash);}
.kn-estimator .button-primary:focus-visible,.kn-estimator .button-ghost:focus-visible,.kn-estimator .toggle-btn:focus-visible,.kn-estimator .nav-link:focus-visible,.kn-estimator .subnav-link:focus-visible,.kn-estimator .footer-link:focus-visible,.kn-estimator .mobile-link:focus-visible,.kn-estimator .logo-lock:focus-visible{
  outline:2px solid var(--color-accent);outline-offset:2px;
}
.kn-estimator .calc-input:focus-visible{outline:none;}

.kn-estimator{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;}
.kn-estimator a{color:var(--color-accent-2);}
.kn-estimator a:hover{color:var(--color-ink);}
.kn-estimator a.button-primary,.kn-estimator a.button-ghost{text-decoration:none;}
@media (max-width:900px){
.kn-estimator{--frame-w:834px;--frame-h:1040px;--fs-hero:40px;--fs-h2:28px;--fs-lead:17px;--fs-num:34px;--pad-section-y:72px;--pad-section-x:32px;--gap-col:40px;--gap-card:20px;--w-card:46%;--w-card-3:46%;--w-panel:300px;--h-nav:96px;--gap-subnav:var(--sp-4);--w-form:52%;--w-info:40%;--w-calc:100%;--w-result:100%;--fs-result-lg:30px;}
.kn-estimator .nav-links{gap:var(--sp-5);}
.kn-estimator .nav-phone{display:none;}
.kn-estimator .nav-right{display:none;}
.kn-estimator .nav-links{gap:var(--sp-4);}
.kn-estimator .row-hero{flex-direction:column;}
.kn-estimator .tl-item{grid-template-columns:110px var(--sp-6) minmax(0,1fr);}
.kn-estimator .row-wrap-4{--w-card-3:46%;}
.kn-estimator .org-branches{grid-template-columns:minmax(0,1fr);}
.kn-estimator .org-branch{padding-left:var(--sp-7);padding-top:var(--sp-5);}
.kn-estimator .org-branch::before{top:50%;left:0;right:auto;width:var(--sp-7);height:var(--bw-1);}
.kn-estimator .org-branch:first-child::before{left:0;}
.kn-estimator .org-branch:last-child::before{right:auto;}
.kn-estimator .org-branch::after{top:0;bottom:0;left:0;height:auto;margin-left:0;}
.kn-estimator .org-branch:last-child::after{bottom:50%;}
.kn-estimator .calc-row{flex-direction:column;}
}
@media (max-width:640px){
.kn-estimator{--frame-w:390px;--frame-h:844px;--fs-hero:33px;--fs-h2:25px;--fs-h3:18px;--fs-lead:16px;--fs-num:30px;--fs-quote:17px;--pad-section-y:52px;--pad-section-x:20px;--gap-col:28px;--gap-card:14px;--w-card:100%;--w-card-3:100%;--w-panel:100%;--w-half:100%;--h-nav:76px;--w-form:100%;--w-info:100%;--h-photo:220px;--h-map:260px;--w-calc:100%;--w-result:100%;--fs-result:19px;--fs-result-lg:28px;--gap-subnav:var(--sp-4);--logo-box-w:145px;--logo-box-h:67px;--logo-img:178px;--logo-x:-16px;--logo-y:-60px;}
.kn-estimator .nav-links{display:none;}
.kn-estimator .nav-right{display:none;}
.kn-estimator .burger{display:flex;}
.kn-estimator .row{flex-direction:column;}
.kn-estimator .button-primary,.kn-estimator .button-ghost{width:var(--w-full);}
.kn-estimator .tl-item{grid-template-columns:var(--sp-6) minmax(0,1fr);}
.kn-estimator .tl-rail{grid-row:1 / span 2;}
.kn-estimator .tl-when{grid-column:2;flex-direction:row;align-items:baseline;gap:var(--sp-2);padding:0 0 var(--sp-2) var(--sp-4);text-align:left;}
.kn-estimator .step-item{flex-direction:row;gap:var(--sp-4);align-items:flex-start;}
.kn-estimator .row-wrap-4{--w-card-3:100%;}
.kn-estimator .org-branches{grid-template-columns:minmax(0,1fr);}
.kn-estimator .org-branch{padding-left:var(--sp-7);padding-top:var(--sp-5);}
.kn-estimator .org-branch::before{top:50%;left:0;right:auto;width:var(--sp-7);height:var(--bw-1);}
.kn-estimator .org-branch:first-child::before{left:0;}
.kn-estimator .org-branch:last-child::before{right:auto;}
.kn-estimator .org-branch::after{top:0;bottom:0;left:0;height:auto;margin-left:0;}
.kn-estimator .org-branch:last-child::after{bottom:50%;}
.kn-estimator .post-featured{flex-direction:column;}
.kn-estimator .post-item{flex-direction:column;gap:var(--sp-3);}
.kn-estimator .post-meta{width:var(--w-full);flex-direction:row;gap:var(--sp-3);align-items:center;}
.kn-estimator .field-row{flex-direction:column;}
.kn-estimator .calc-row{flex-direction:column;}
.kn-estimator .compare-row{flex-direction:column;align-items:stretch;gap:var(--sp-4);}
.kn-estimator .compare-side{flex:1 1 var(--w-full);}
.kn-estimator .compare-side-end{align-items:flex-start;}
.kn-estimator .compare-arrow{align-self:flex-start;transform:rotate(90deg);}
.kn-estimator .footer-inner{gap:var(--sp-7);}
}


/* --- theme-conflict guards (Astra / Elementor global form + button styles) --- */
.kn-estimator input.calc-input,
.kn-estimator input[type="number"].calc-input{
  -webkit-appearance:none;appearance:none;-moz-appearance:textfield;
  padding:0;margin:0;min-height:0;height:100%;width:100%;line-height:normal;
  border:0;border-radius:0;background:none;box-shadow:none;outline:none;
  color:var(--color-ink);font-family:var(--font-mono);font-size:var(--fs-body);
  font-weight:var(--fw-medium);
}
.kn-estimator input.calc-input:focus,
.kn-estimator input.calc-input:focus-visible{
  border:0;background:none;box-shadow:none;outline:none;
}
.kn-estimator input[type="range"].calc-slider{
  -webkit-appearance:auto;appearance:auto;
  padding:0;margin:0;min-height:0;height:var(--sp-5);width:100%;
  border:0;border-radius:0;background:none;box-shadow:none;
  accent-color:var(--color-accent);cursor:pointer;
}
.kn-estimator button.toggle-btn{
  box-shadow:none;text-transform:none;letter-spacing:normal;text-decoration:none;
  border-radius:var(--radius);width:auto;line-height:normal;
}
.kn-estimator button.toggle-btn:hover,
.kn-estimator button.toggle-btn:focus{box-shadow:none;}
.kn-estimator a.button-primary,.kn-estimator a.button-ghost{
  text-decoration:none;box-shadow:none;width:auto;
}
.kn-estimator a.button-primary:hover{color:var(--color-on-dark);}
.kn-estimator ul.list{list-style:none;margin:0;padding:0;}
.kn-estimator ul.list li{margin:0;padding:0;list-style:none;}
.kn-estimator img{max-width:100%;height:auto;display:block;}
/* Links added for internal linking: the result panel is dark, so the site link
   colour (accent-2) would not carry enough contrast there. */
.kn-estimator .result-note a{color:var(--color-on-dark);text-decoration:underline;text-underline-offset:2px;}
.kn-estimator .result-note a:hover{color:var(--color-on-dark);text-decoration-thickness:2px;}
.kn-estimator .calc-hint a{color:var(--color-accent-2);text-decoration:underline;text-underline-offset:2px;}
.kn-estimator .calc-hint a:hover{color:var(--color-ink);}
