.budget-page,.budget-page *{box-sizing:border-box}
.budget-page{margin:0;background:#fffaf1;color:#063b46;font-family:"DM Sans",sans-serif}
.budget-page [hidden]{display:none!important}
.budget-hero{padding:85px 7vw 75px;background:linear-gradient(135deg,#063b46,#087f80);color:#fff}
.budget-hero>a{color:#fff;text-decoration:none;font-size:11px;font-weight:800}
.budget-hero>p{margin:50px 0 12px;color:#ffd166;font-size:10px;font-weight:800;letter-spacing:.17em}
.budget-hero h1{margin:0 0 28px;font:800 clamp(52px,8vw,96px)/.93 Manrope}
.budget-hero h1 em{color:#ffd166;font-family:Georgia,serif;font-weight:400}
.budget-hero>span{display:block;max-width:760px;color:#dcefeb;font-size:17px;line-height:1.7}
.budget-shell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.72fr);align-items:start;gap:28px;width:100%;max-width:1320px;margin:auto;padding:70px 5vw 110px}
.budget-form{display:grid;min-width:0;gap:22px}
.style-panel,.input-section,.budget-results{overflow:hidden;border:1px solid #e2ece8;border-radius:24px;background:#fff;box-shadow:0 14px 35px rgba(4,49,57,.09)}
.style-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:28px}
.style-panel p,.budget-results>header p,.smart-suggestions>span,.result-affiliates>span{margin:0;color:#b66b05;font-size:9px;font-weight:800;letter-spacing:.15em}
.style-panel h2,.input-section h2{margin:8px 0;font:800 25px/1.1 Manrope}
.style-panel>div>span,.input-section header p{color:#637d79;font-size:12px}
.style-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.style-buttons button,.calculator-actions button,.calculator-actions>a{border:0;border-radius:999px;padding:11px 14px;background:#eaf7f2;color:#075f63;font:800 10px "DM Sans";text-decoration:none;cursor:pointer}
.style-buttons button.active{background:#ff6956;color:#fff}
.input-section{padding:28px}
.input-section>header{display:flex;width:auto;margin:0 0 24px;padding:0;align-items:flex-start;gap:16px}
.input-section>header>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:#ffd166;color:#063b46;font-weight:800;font-size:11px}
.input-section h2{margin:2px 0 6px}
.input-section header p{margin:0}
.input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.input-grid label{display:grid;align-content:start;gap:8px;color:#315f5e;font-size:10px;font-weight:800;letter-spacing:.02em}
.input-grid label>small{color:#758b87;font-size:9px;font-weight:600}
.input-grid input,.input-grid select{width:100%;min-width:0;border:1px solid #cfe1da;border-radius:13px;padding:13px 14px;background:#fbfefc;color:#063b46;font:800 15px "DM Sans";outline:0}
.input-grid input:focus,.input-grid select:focus{border-color:#087f80;box-shadow:0 0 0 3px rgba(8,127,128,.12)}
.money-input{position:relative;display:block}
.money-input b{position:absolute;z-index:1;left:14px;top:50%;transform:translateY(-50%);color:#75908c}
.money-input input{padding-left:30px}
.choice-field{margin:0;padding:0;border:0}
.choice-field legend{margin-bottom:10px;color:#315f5e;font-size:10px;font-weight:800}
.choice-row{max-width:360px;margin-bottom:18px}
.choice-row label{display:grid;gap:8px;color:#315f5e;font-size:10px;font-weight:800}
.choice-row select{width:100%;border:1px solid #cfe1da;border-radius:13px;padding:12px 14px;background:#fbfefc;color:#063b46;font:800 14px "DM Sans"}
.segmented{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.segmented label{display:inline-flex;align-items:center;gap:7px;position:relative;cursor:pointer}
.segmented input{width:14px;height:14px;margin:0;accent-color:#087f80}
.segmented label{border:1px solid #cfe1da;border-radius:999px;padding:10px 15px;background:#fbfefc;color:#315f5e;font-size:10px;font-weight:800}
.segmented label:has(input:checked){border-color:#087f80;background:#087f80;color:#fff}
.segmented label:has(input:checked) input{accent-color:#fff}
.segmented label:has(input:focus-visible){outline:3px solid rgba(8,127,128,.2);outline-offset:2px}
.conditional-block,.top-gap{margin-top:4px}
.top-gap{margin-top:18px}
.field-status{min-height:17px;margin:14px 0 0;color:#087f80;font-size:10px;font-weight:800}
.budget-goal{grid-column:1/-1;border:1px solid #f0d58b;border-radius:17px;padding:18px;background:#fff8df}
.budget-goal .money-input{max-width:360px}
.calculator-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:5px 2px}
.calculator-actions .calculate{background:#087f80;color:#fff;padding-inline:22px}
.calculator-actions #saveStatus{flex:1 1 100%;color:#55746f;font-size:11px;font-weight:700}
.budget-results{position:sticky;top:20px}
.budget-results>header{width:auto;padding:30px;background:#063b46;color:#fff}
.budget-results>header p{color:#ffd166}
.budget-results>header h2{margin:10px 0 5px;font:800 clamp(42px,5vw,64px)/1 Manrope}
.budget-results>header span{color:#dcefeb;font-size:12px}
.result-list{padding:14px 25px}
.result-list>div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #e2ece8;padding:13px 0}
.result-list span{color:#5b7471;font-size:12px}
.result-list b{font:800 14px Manrope;text-align:right}
.result-highlights{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 25px 20px}
.result-highlights>div{border-radius:15px;padding:15px;background:#eaf7f2}
.result-highlights span{display:block;color:#55746f;font-size:9px;font-weight:800;text-transform:uppercase}
.result-highlights b{display:block;margin-top:5px;font:800 20px Manrope}
.budget-balance{margin:0 25px 18px;border-radius:16px;padding:18px;background:#eef3f1}
.budget-balance span{display:block;font-size:10px;font-weight:800;text-transform:uppercase}
.budget-balance b{display:block;margin-top:6px;font:800 27px Manrope}
.budget-balance.remaining{background:#e7f7eb;color:#176d3c}
.budget-balance.over{background:#fff0ee;color:#ae3d36}
.smart-suggestions{margin:0 25px 18px;border-radius:17px;padding:18px;background:#edf7f3}
.smart-suggestions h3,.result-affiliates h3{margin:6px 0 12px;font:800 18px/1.15 Manrope}
.smart-suggestions>div{display:flex;flex-wrap:wrap;gap:6px}
.smart-suggestions a{border-radius:999px;padding:8px 10px;background:#fff;color:#075f63;text-decoration:none;font-size:9px;font-weight:800}
.budget-results>p{margin:0;padding:0 25px 20px;color:#768d89;font-size:10px;line-height:1.55}
.result-affiliates{margin:0 25px 25px;border:1px solid #f0d58b;border-radius:17px;padding:19px;background:#fff8df}
.result-affiliates>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.result-affiliates>div>a{border-radius:12px;padding:10px 11px;background:#087f80;color:#fff;text-align:center;text-decoration:none;font-size:9px;font-weight:800}
.result-affiliates>small{display:block;margin-top:12px;color:#6c684f;font-size:9px;line-height:1.5}
.result-affiliates>small a{color:#075f63;font-weight:800}
@media(max-width:1000px){
  .budget-shell{grid-template-columns:1fr}
  .budget-results{position:static}
  .style-panel{grid-template-columns:1fr}
  .style-buttons{justify-content:flex-start}
}
@media(max-width:650px){
  .budget-hero{padding:65px 22px 52px}
  .budget-shell{padding:38px 15px 75px}
  .style-panel,.input-section{padding:22px}
  .input-grid{grid-template-columns:1fr}
  .budget-goal{grid-column:auto}
  .calculator-actions button,.calculator-actions>a{flex:1 1 45%;text-align:center}
  .result-affiliates>div{grid-template-columns:1fr}
  .directory-header .head-cta{display:none}
}
@media print{
  body{padding:0!important;background:#fff}
  .directory-header,.budget-hero,.style-panel,.calculator-actions,.smart-suggestions,.result-affiliates,.directory-footer,.mobile-dock{display:none!important}
  .budget-shell{display:block;max-width:none;padding:0}
  .budget-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .input-section{break-inside:avoid;border:1px solid #d7e4df;box-shadow:none;padding:14px}
  .input-section h2{font-size:16px}
  .input-section header p,.input-section>header>span{display:none}
  .input-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .input-grid input,.input-grid select{padding:6px;font-size:12px}
  .money-input input{padding-left:22px}
  .budget-results{break-inside:avoid;margin-top:16px;border:2px solid #063b46;box-shadow:none}
  .budget-results>header{padding:18px}
  .budget-results>header h2{font-size:40px}
}
.budget-page .input-section>header,.budget-page .budget-results>header{position:static;height:auto;min-height:0;width:auto;z-index:auto;border:0}.budget-page .input-section>header{color:inherit}
