.twl-public-budget-calculator {
    --calc-primary: var(--twl-sage, #0d120f);
    --calc-primary-dark: var(--twl-sage-dark, #1b2a1f);
    --calc-ink: var(--twl-ink, #0d120f);
    --calc-body: var(--twl-body, #566158);
    --calc-ivory: var(--twl-ivory, #f4f5ef);
    --calc-white: #fff;
    --calc-border: var(--twl-sand, #d7ddd2);
    --calc-sage-soft: var(--twl-secondary-soft, #edf3e5);
    color: var(--calc-ink);
    font-family: var(--twl-font-body, var(--e-global-typography-text-font-family, Arial, sans-serif));
    margin: 0 auto;
    max-width: 1180px;
    width: 100%;
}
.twl-public-budget-calculator * { box-sizing: border-box; }
.twl-budget-calculator__intro { margin: 0 auto 36px; max-width: 780px; text-align: center; }
.twl-budget-calculator__eyebrow { color: var(--calc-primary); display: block; font-size: 12px; font-weight: 750; letter-spacing: .12em; margin-bottom: 10px; text-transform: uppercase; }
.twl-budget-calculator__intro h2,
.twl-budget-calculator__breakdown-heading h3,
.twl-budget-calculator__cta h3 { color: var(--calc-ink); font-family: var(--twl-font-display, Georgia, serif); font-weight: 600; line-height: 1.06; margin: 0; }
.twl-budget-calculator__intro h2 { font-size: clamp(38px, 5vw, 60px); }
.twl-budget-calculator__intro p { color: var(--calc-body); font-size: 17px; line-height: 1.7; margin: 18px auto 0; }
.twl-budget-calculator__layout { align-items: stretch; display: grid; gap: 28px; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .75fr); }
.twl-budget-calculator__controls,
.twl-budget-calculator__summary,
.twl-budget-calculator__breakdown-wrap,
.twl-budget-calculator__cta { background: var(--calc-white); border: 1px solid var(--calc-border); border-radius: 22px; box-shadow: 0 18px 48px rgba(13,18,15,.07); }
.twl-budget-calculator__controls { display: grid; gap: 24px; grid-template-columns: repeat(2, minmax(0,1fr)); padding: 30px; }
.twl-budget-calculator__field label,
.twl-budget-calculator__style legend,
.twl-budget-calculator__addons legend { color: var(--calc-ink); display: block; font-size: 14px; font-weight: 700; margin: 0 0 9px; }
.twl-budget-calculator__field select,
.twl-budget-calculator__field input { background: #fff; border: 1px solid var(--calc-border); border-radius: 10px; color: var(--calc-ink); font: inherit; height: 52px; outline: none; padding: 0 14px; width: 100%; }
.twl-budget-calculator__field select:focus,
.twl-budget-calculator__field input:focus { border-color: var(--calc-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--calc-primary) 15%, transparent); }
.twl-budget-calculator__style,
.twl-budget-calculator__addons { border: 0; grid-column: 1/-1; margin: 0; padding: 0; }
.twl-budget-calculator__style-grid { display: grid; gap: 12px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.twl-budget-calculator__style-grid label { cursor: pointer; display: block; margin: 0; position: relative; }
.twl-budget-calculator__style-grid input { opacity: 0; position: absolute; }
.twl-budget-calculator__style-grid span { border: 1px solid var(--calc-border); border-radius: 13px; display: block; min-height: 88px; padding: 17px; transition: .2s ease; }
.twl-budget-calculator__style-grid strong { display: block; font-size: 16px; margin-bottom: 5px; }
.twl-budget-calculator__style-grid small { color: var(--calc-body); display: block; font-size: 12px; line-height: 1.45; }
.twl-budget-calculator__style-grid input:checked + span { background: color-mix(in srgb, var(--calc-primary) 9%, white); border-color: var(--calc-primary); box-shadow: inset 0 0 0 1px var(--calc-primary); }
.twl-budget-calculator__addon-grid { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.twl-budget-calculator__addon-grid label { align-items: center; border: 1px solid var(--calc-border); border-radius: 10px; cursor: pointer; display: flex; font-size: 14px; gap: 9px; margin: 0; padding: 12px 13px; }
.twl-budget-calculator__addon-grid input { accent-color: var(--calc-primary); height: 17px; width: 17px; }
.twl-budget-calculator__summary { align-items: center; background: linear-gradient(150deg, var(--calc-ink), #1b2a1f); color: #fff; display: flex; flex-direction: column; justify-content: center; padding: 36px 28px; text-align: center; }
.twl-budget-calculator__summary > span { font-size: 13px; font-weight: 700; letter-spacing: .08em; opacity: .76; text-transform: uppercase; }
.twl-budget-total { font-family: var(--twl-font-display, Georgia, serif); font-size: clamp(46px,5vw,68px); font-weight: 600; line-height: 1; margin: 14px 0 11px; }
.twl-budget-range { font-size: 14px; margin: 0; opacity: .75; }
.twl-budget-calculator__mini-stats { border-bottom: 1px solid rgba(255,255,255,.18); border-top: 1px solid rgba(255,255,255,.18); display: grid; gap: 10px; grid-template-columns: 1fr 1fr; margin: 27px 0 20px; padding: 18px 0; width: 100%; }
.twl-budget-calculator__mini-stats div { display: flex; flex-direction: column; gap: 5px; }
.twl-budget-calculator__mini-stats span { font-size: 12px; opacity: .68; }
.twl-budget-calculator__mini-stats strong { font-size: 17px; }
.twl-budget-calculator__note { font-size: 12px; line-height: 1.6; margin: 0; opacity: .68; }
.twl-budget-calculator__breakdown-wrap { margin-top: 28px; padding: 30px; }
.twl-budget-calculator__breakdown-heading { align-items: end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 24px; }
.twl-budget-calculator__breakdown-heading h3 { font-size: clamp(30px,3.5vw,42px); }
.twl-budget-breakdown { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.twl-budget-breakdown__item { background: var(--calc-ivory); border-radius: 11px; padding: 15px; }
.twl-budget-breakdown__item.is-addon { background: var(--calc-sage-soft); }
.twl-budget-breakdown__row { align-items: center; display: flex; font-size: 14px; gap: 15px; justify-content: space-between; }
.twl-budget-breakdown__row span { color: var(--calc-body); }
.twl-budget-breakdown__row strong { color: var(--calc-ink); }
.twl-budget-breakdown__track { background: rgba(13,18,15,.09); border-radius: 99px; height: 5px; margin-top: 11px; overflow: hidden; }
.twl-budget-breakdown__track span { background: var(--calc-primary); border-radius: inherit; display: block; height: 100%; }
.twl-budget-breakdown__item.is-addon .twl-budget-breakdown__track span { background: var(--twl-secondary, #a7cb5a); }
.twl-budget-calculator__cta { align-items: center; background: linear-gradient(135deg, #e8f0da, #f4f5ef); display: flex; gap: 32px; justify-content: space-between; margin-top: 28px; padding: 32px; }
.twl-budget-calculator__cta h3 { font-size: clamp(28px,3vw,38px); }
.twl-budget-calculator__cta p { color: var(--calc-body); line-height: 1.65; margin: 10px 0 0; max-width: 680px; }
.twl-budget-calculator__cta .twl-button { flex: 0 0 auto; white-space: nowrap; }
.twl-budget-calculator__disclaimer { color: var(--calc-body); font-size: 12px; line-height: 1.6; margin: 17px auto 0; max-width: 900px; text-align: center; }
@media (max-width: 850px) {
    .twl-budget-calculator__layout { grid-template-columns: 1fr; }
    .twl-budget-calculator__summary { min-height: 350px; }
    .twl-budget-calculator__cta { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 620px) {
    .twl-budget-calculator__controls { grid-template-columns: 1fr; padding: 20px; }
    .twl-budget-calculator__style,
    .twl-budget-calculator__addons { grid-column: auto; }
    .twl-budget-calculator__style-grid,
    .twl-budget-calculator__addon-grid,
    .twl-budget-breakdown { grid-template-columns: 1fr; }
    .twl-budget-calculator__breakdown-wrap,
    .twl-budget-calculator__cta { padding: 22px; }
    .twl-budget-calculator__breakdown-heading { align-items: flex-start; flex-direction: column; }
    .twl-budget-print { width: 100%; }
}
@media print {
    body * { visibility: hidden !important; }
    .twl-public-budget-calculator,
    .twl-public-budget-calculator * { visibility: visible !important; }
    .twl-public-budget-calculator { left: 0; max-width: none; position: absolute; top: 0; }
    .twl-budget-calculator__controls,
    .twl-budget-calculator__cta,
    .twl-budget-print { display: none !important; }
    .twl-budget-calculator__layout { grid-template-columns: 1fr; }
    .twl-budget-calculator__summary { min-height: auto; }
}

/* v1.6 Forest & Lime budget calculator */
.twl-public-budget-calculator {
    --calc-primary: #A7CB5A;
    --calc-primary-dark: #B8DA70;
    --calc-ink: #0D120F;
    --calc-body: #566158;
    --calc-ivory: #F4F5EF;
    --calc-border: #D7DDD2;
    --calc-sage-soft: #EDF3E5;
}
.twl-budget-calculator__summary { background:linear-gradient(150deg,#0D120F,#1B2A1F); color:#F4F5EF; }
.twl-budget-calculator__style-grid input:checked + span { background:#E8F0DA; border-color:#A7CB5A; box-shadow:inset 0 0 0 1px #A7CB5A; }
.twl-budget-breakdown__item.is-addon { background:#EDF3E5; }
.twl-budget-breakdown__item.is-addon .twl-budget-breakdown__track span { background:#1B2A1F; }
.twl-budget-calculator__cta { background:linear-gradient(135deg,#EDF3E5,#F4F5EF); }
