:root{--ink:#13283b;--muted:#56687b;--blue:#164ed8;--navy:#102a43;--line:#d9e2ed;--paper:#f3f6fb;--green:#08765c;--cyan:#73deec;--orange:#fbba62}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:var(--blue);text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e99c29;outline-offset:3px}header{background:white;border-bottom:1px solid var(--line)}.header-inner{max-width:1280px;margin:auto;padding:22px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px;font-size:19px;font-weight:750;letter-spacing:-.5px}.logo{background:var(--navy);color:white;width:39px;height:39px;display:grid;place-items:center;border-radius:9px;font-size:14px;letter-spacing:1px}.header-note{font-size:14px;color:var(--muted)}main{max-width:1280px;margin:auto;padding:32px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:750;color:var(--blue);text-transform:uppercase}h1{font-size:clamp(28px,4vw,42px);line-height:1.15;letter-spacing:-1.4px;margin:12px 0}h2{font-size:22px;line-height:1.3;letter-spacing:-.5px}h3{font-size:17px;margin-bottom:8px}.intro p{color:var(--muted);margin:0 0 25px;max-width:720px}.nav{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:14px;flex-wrap:wrap}.nav a{text-decoration:none;font-size:15px;color:var(--muted);padding:10px 16px;border-radius:7px;font-weight:650}.nav a.active{background:var(--navy);color:white}.workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:26px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:26px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.panel-head h2{margin:0}.step{font-size:12px;color:var(--muted);letter-spacing:1px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:19px 16px;margin-top:24px}.field label{display:block;font-size:14px;font-weight:650;margin-bottom:7px}.input-wrap{position:relative}.input-wrap input,.field select{width:100%;height:48px;padding:10px 13px;border:1px solid #bccadb;border-radius:6px;color:var(--ink);background:white;min-width:0}.input-wrap:has(.prefix) input{padding-left:29px}.prefix{position:absolute;left:13px;top:11px;color:var(--muted)}.suffix{position:absolute;right:12px;top:11px;color:var(--muted);font-size:14px;pointer-events:none}.input-wrap:has(.suffix) input{padding-right:50px}.hint{font-size:13px;color:var(--muted);margin:5px 0 0;line-height:1.45}.full{grid-column:1/-1}details{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}summary{font-weight:650;font-size:15px;cursor:pointer}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.button{border:1px solid var(--line);background:white;padding:10px 16px;border-radius:6px;font-size:14px;font-weight:650;color:var(--ink)}.button.primary{background:var(--blue);border-color:var(--blue);color:white}.result{background:var(--navy);color:white;border:0;padding:28px;overflow:hidden}.result .eyebrow{color:var(--cyan);font-size:12px}.total{font-size:clamp(36px,4.5vw,54px);font-weight:650;letter-spacing:-2px;line-height:1.1;margin:15px 0 8px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.total small{font-size:16px;letter-spacing:0;font-weight:450;color:#c6d6e4}.result-sub{color:#c6d6e4;font-size:14px;margin:0 0 22px}.stack{height:12px;display:flex;border-radius:4px;overflow:hidden;margin-bottom:25px}.breakdown{margin:0}.row{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid #ffffff20;font-size:14px}.row span:first-child{display:flex;align-items:center;gap:8px}.row strong{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.dot{height:7px;width:7px;border-radius:2px;flex-shrink:0}.result-foot{font-size:13px;color:#c6d6e4;margin-top:18px}.print-button{background:#ffffff12;color:white;border-color:#ffffff30}.error{color:#ac2525;background:#fff0f0;padding:12px;border-radius:6px;margin:16px 0 0;font-size:14px}.status{font-size:14px;color:var(--green);min-height:22px;margin-top:10px}.below{margin-top:26px}.note{background:#e8efff;border-left:3px solid var(--blue);padding:16px 18px;border-radius:0 7px 7px 0;font-size:14px;margin-top:20px}.article{margin-top:35px;max-width:880px}.article p,.article li{color:var(--muted)}.article h2{margin-top:28px}.article a{font-size:14px}.sources{background:white;border:1px solid var(--line);padding:20px;border-radius:8px;margin-top:25px}.sources ul{margin-bottom:0;padding-left:20px}.compare table{width:100%;border-collapse:collapse;font-size:14px}.compare th,.compare td{padding:12px 8px;text-align:right;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.compare th:first-child,.compare td:first-child{text-align:left}.compare-scroll{overflow-x:auto}.saved{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}.saved select{min-width:0;max-width:100%;padding:9px;border:1px solid var(--line);background:white;border-radius:6px}.hidden{display:none!important}footer{max-width:1280px;margin:32px auto 0;padding:24px 32px 36px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:14px;color:var(--muted)}footer nav{display:flex;gap:18px;flex-wrap:wrap}.ad-slot{height:90px;margin-top:32px;display:flex;justify-content:center;align-items:center;background:#e9eef5;border:1px dashed #c1cede;border-radius:6px;color:var(--muted);font-size:12px;letter-spacing:1px}.prose{max-width:800px;margin:auto}.prose p{color:var(--muted)}@media(max-width:820px){.workspace{grid-template-columns:1fr}.header-inner,main{padding:20px}.header-note{display:none}.panel{padding:21px}.total{font-size:46px}.nav a{padding:9px 11px;font-size:14px}.intro p{font-size:15px}.result{position:static}footer{padding:22px 20px}.fields{gap:17px 12px}}@media(max-width:390px){.fields{grid-template-columns:1fr}.full{grid-column:auto}.total{font-size:40px}}@media print{body{background:white;color:black}header,.nav,.actions,.saved,.ad-slot,footer,.article,.status{display:none!important}main{padding:0}.workspace{display:block}.result{background:white;color:black;border:1px solid #aaa;margin-top:20px}.result *{color:black!important}.panel{break-inside:avoid}.row{border-color:#ddd}.fields{gap:6px}.field input,.field select{height:30px}.hint{display:none}.stack{display:none}details{display:block}details:not([open])>*:not(summary){display:block}.compare{break-inside:avoid}}
/* Agent profile: brokerage attribution remains prominent at every viewport. */
.header-agent{font-size:14px;font-weight:650;text-decoration:none;white-space:normal;text-align:right}.agent-card{margin-top:30px;display:grid;grid-template-columns:160px minmax(0,1fr);gap:28px;padding:30px;background:white;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:10px;scroll-margin-top:24px}.agent-photo{display:block;width:143px;height:150px;object-fit:cover;border-radius:8px;max-width:100%;background:#f2f5f8}.agent-content{min-width:0}.agent-card .eyebrow{margin:0 0 7px}.agent-invitation{font-size:17px;margin:0 0 18px;color:var(--muted)}.broker-name{display:inline-block;color:var(--navy);font-size:27px;line-height:1.2;font-weight:800;letter-spacing:-.7px;text-decoration:none}.broker-role{font-size:14px;margin:6px 0 20px;color:var(--muted)}.agent-card h2{font-size:21px;letter-spacing:-.4px;margin:0 0 6px}.agent-credentials{font-size:14px;color:var(--muted);margin:0 0 14px}.agent-bio{font-size:16px;max-width:700px;margin:0 0 10px}.agent-languages{font-size:14px;color:var(--muted);margin:0}.agent-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.agent-actions a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px}.agent-contact{display:flex;gap:8px 22px;flex-wrap:wrap;font-size:16px}.agent-office{font-size:16px;margin:9px 0}.agent-profile-link{font-size:16px;display:inline-block;margin:5px 0}.agent-disclosure{font-size:13px;color:var(--muted);margin:14px 0 0}.footer-broker{flex-basis:100%;display:flex;flex-direction:column;gap:5px}.footer-broker>a{font-weight:750;font-size:18px}.footer-broker>span{font-size:16px}@media(max-width:640px){.agent-card{padding:22px;grid-template-columns:1fr;gap:20px}.agent-photo{width:115px;height:121px}.broker-name{font-size:25px}.agent-card h2{font-size:20px}.header-agent{max-width:110px}.agent-contact{flex-direction:column;gap:8px}.agent-invitation{font-size:16px}.agent-actions a{flex:1;min-width:95px}}@media print{.agent-card{display:none}}

/* Focused calculators share the established input / estimate layout. */
.field input{width:100%;min-width:0;height:48px;border:1px solid #bccadb;border-radius:6px;padding:10px 13px;background:white;color:var(--ink);font-variant-numeric:tabular-nums}
.focused-workspace{max-width:1120px}.focused-workspace .result{min-height:270px}.focused-workspace .total{font-size:clamp(32px,4vw,48px);letter-spacing:-1.5px}.focused-workspace .result-foot{margin-bottom:0}.focused-help{max-width:1120px;margin:28px 0 0}.focused-help h2:first-child{margin-top:0}.focused-help p{max-width:850px}.related-tools{margin:36px 0 0;padding-top:24px;border-top:1px solid var(--line)}.related-tools h2{font-size:19px;margin:0 0 16px}.tool-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tool-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:8px;padding:14px 16px;font-size:14px;font-weight:650;color:var(--ink);text-decoration:none}.tool-links a:hover{border-color:var(--blue);color:var(--blue)}.tool-links a span{color:var(--blue)}@media(max-width:820px){.tool-links{grid-template-columns:repeat(2,minmax(0,1fr))}.focused-workspace .result{min-height:0}}@media(max-width:390px){.tool-links{grid-template-columns:1fr}}@media print{.related-tools{display:none}}

/* Print the estimate summary and itemized costs. */
.mobile-summary{display:none}
.estimate-guide,.tool-directory{margin-top:24px;padding:14px 0;border-top:1px solid var(--line)}
.estimate-guide>summary,.tool-directory>summary,.calculator-options>summary,.agent-details>summary{min-height:44px;display:list-item;align-content:center}
.estimate-guide .article,.estimate-guide .focused-help{margin-top:14px}
.tool-directory .related-tools{margin:0;padding:12px 0 0;border:0}
.tool-directory .related-tools h2{display:none}
.calculator-options .actions{margin-top:12px}
.agent-card-compact{grid-template-columns:80px minmax(0,1fr);padding:20px;gap:18px}
.agent-card-compact .agent-photo{width:72px;height:76px}
.agent-card-compact .broker-name{font-size:20px;letter-spacing:-.3px}
.agent-card-compact .broker-role{margin:4px 0 10px}
.agent-card-compact h2{font-size:18px}
.agent-card-compact .agent-credentials{margin:5px 0 10px}
.agent-card-compact .agent-actions{margin:12px 0;gap:8px}
.agent-card-compact .agent-actions a{padding:9px 12px;min-height:44px}
.agent-card-compact .agent-details{margin-top:10px;padding-top:8px}
.agent-card-compact .agent-disclosure{margin:10px 0 0;font-size:12px}
@media screen and (max-width:640px){
 html{scroll-padding-bottom:110px}
 .header-inner{padding:12px 16px;gap:12px}
 .brand{font-size:17px;gap:9px}.logo{width:34px;height:34px}
 .header-agent{font-size:13px;max-width:none;white-space:nowrap}
 main{padding:16px}
 .nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:16px;padding-bottom:12px}
 .nav a{font-size:13px;padding:10px 5px;text-align:center;align-content:center}
 .intro .eyebrow,.panel-head .step{display:none}
 h1{font-size:26px;line-height:1.18;letter-spacing:-.6px;margin:0 0 10px}
 .intro p{font-size:14px;margin-bottom:16px;line-height:1.45}
 .panel{padding:16px}.panel-head h2{font-size:19px}
 .fields{margin-top:16px;gap:14px 12px}
 .field label{font-size:13px;line-height:1.35;min-height:35px;margin-bottom:5px}
 .field input,.field select{font-size:16px;height:44px}
 .input-wrap input{font-size:16px;height:44px}
 .prefix,.suffix{top:9px}.hint{font-size:12px;line-height:1.4}
 .actions{margin-top:16px;gap:8px}.button{min-height:44px;padding:10px 12px}
 details{margin-top:16px;padding-top:12px}
 .status:empty{display:none}
 .workspace{gap:16px}
 .result{padding:18px}
 .result .total,.focused-workspace .total{font-size:36px;letter-spacing:-1px;margin:12px 0 8px}
 .result .result-sub{font-size:13px;margin-bottom:12px}
 .row{font-size:13px;padding:8px 0;gap:12px}.row span:first-child{min-width:0}
 .result-foot{font-size:12px;line-height:1.4}
 .note{margin-top:16px;padding:12px 14px;font-size:13px}
 .agent-card-compact{margin-top:20px;padding:16px;grid-template-columns:60px minmax(0,1fr);gap:12px}
 .agent-card-compact .agent-photo{width:56px;height:59px}
 .agent-card-compact .broker-name{font-size:18px;line-height:1.25}
 .agent-card-compact .broker-role{font-size:12px;margin-bottom:8px}
 .agent-card-compact h2{font-size:16px;line-height:1.3}
 .agent-card-compact .agent-credentials{font-size:12px}
 .agent-card-compact .agent-actions{margin-left:-72px}
 .agent-card-compact .agent-actions a{flex:1;min-width:0;padding:9px 6px;font-size:13px;white-space:nowrap}
 .agent-card-compact .agent-details,.agent-card-compact .agent-disclosure{margin-left:-72px}
 .agent-card-compact .agent-disclosure{font-size:11px;line-height:1.4}
 .estimate-guide>summary,.tool-directory>summary,.calculator-options>summary,.agent-details>summary{font-size:14px}
 .tool-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .tool-links a{padding:10px 12px;min-height:44px;font-size:13px}
 footer{padding:18px 16px 24px;margin-top:20px;font-size:12px;gap:12px}
 footer nav{gap:14px}.footer-broker>a{font-size:15px}.footer-broker>span{font-size:12px}
 body:has([data-mobile-summary]){padding-bottom:calc(82px + env(safe-area-inset-bottom))}
 .mobile-summary{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line);box-shadow:0 -3px 12px #102a4310}
 .mobile-summary>div{min-width:0}.mobile-summary-label{display:block;font-size:11px;color:var(--muted);line-height:1.3}
 .mobile-summary strong{display:block;font-size:21px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
 .mobile-summary small{font-size:11px;font-weight:400;white-space:nowrap}
 .mobile-summary .button{flex-shrink:0;font-size:13px;text-decoration:none}
}
@media print{
 @page{margin:20mm}
 body{background:#fff!important;color:#000!important}
 body>:not(main):not(.review-page){display:none!important}
 .review-page>:not(main){display:none!important}
 main{padding:0!important;max-width:none!important;margin:0!important}
 main>:not(.workspace){display:none!important}
 .workspace{display:block!important;max-width:none!important}
 .workspace>section:not(.result),.workspace>div>:not(.result){display:none!important}
 .result{display:block!important;background:#fff!important;color:#000!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important;min-height:0!important;overflow:visible!important}
 .result>:not(.eyebrow):not(.total):not(.result-sub):not(.breakdown):not(.result-foot){display:none!important}
 .result .eyebrow{color:#000!important;font-size:14pt!important;letter-spacing:0!important}
 .result .total{font-size:32pt!important;letter-spacing:0!important;color:#000!important;margin:12pt 0!important}
 .result .total small{font-size:14pt!important;color:#000!important}
 .result .result-sub,.result .result-foot{display:block!important;color:#000!important;font-size:10pt!important;line-height:1.4;margin:10pt 0!important}
 .result .breakdown{display:block!important;margin:16pt 0!important}
 .result .row{display:flex!important;justify-content:space-between;gap:18pt;border-bottom:1px solid #ddd!important;padding:8pt 0!important;font-size:11pt!important;break-inside:avoid}
 .result .row strong{white-space:nowrap}
 .result .dot{display:none!important}
}

.down-heading{position:relative;padding-right:90px;margin-bottom:7px}
.down-heading label{margin:0}
.down-toggle{position:absolute;right:0;bottom:0;display:flex;border:1px solid #bccadb;border-radius:6px;overflow:hidden;flex-shrink:0}
.down-toggle button{min-width:40px;min-height:44px;border:0;background:#fff;color:var(--ink);font:inherit;font-weight:650;cursor:pointer}
.down-toggle button[aria-pressed="true"]{background:var(--navy);color:#fff}
.down-toggle button+button{border-left:1px solid #bccadb}
.input-wrap:has([data-down-prefix][hidden]) input{padding-left:13px}
.input-wrap:has([data-down-suffix][hidden]) input{padding-right:13px}

@media(max-width:820px){.down-heading{margin-bottom:5px}}

@media(min-width:821px) and (max-width:1100px){.fields:has(.down-heading)>.field>label,.down-heading label{min-height:44px}}

[data-nonresident-field][hidden]{display:none!important}
