/* Walter downsizer calculator — shared base skin for the Phase 1 directions.
   Values from walter-tokens.css only. Fixes carried from the v3 audit:
   figure margin reset, no font-variation-settings pinning wght 300 on h3,
   width axis set on every text surface, 15px fine-print floor, 24px body. */

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
figure { margin: 0; }
img { max-width: 100%; height: auto; display: block; }
hr { margin: 0; }
a { color: var(--primary); text-decoration: underline; text-decoration-style: dotted; text-underline-offset: .4em; }
a:hover { color: var(--primary-hover); }

.w-calc {
  --w-alert: #7A2E1E;
  font-family: "acumin-variable", "Helvetica Neue", Arial, sans-serif;
  font-stretch: 67.5%;
  font-variation-settings: "wght" 300, "wdth" 67.5, "slnt" 0;
  font-size: var(--text-m);
  line-height: calc(6px + 2.2ex);
  color: var(--primary);
  background: var(--white);
}
.w-calc p { margin: 0; }
.w-calc .num { font-variant-numeric: tabular-nums; }
.w-calc .inner { max-width: var(--content-width); margin: 0 auto; padding: 0 var(--section-padding-x); }
.w-calc .fine { font-size: 1.5rem; }

/* display type: Aviano is caps-only, so lowercase renders as small caps.
   Weight 500 always. Acumin medium carries the sub-level headings so the
   page has two textures, not one. */
.w-calc h1, .w-calc h2, .w-calc .dsp {
  font-family: "aviano-didone", "Didot", Georgia, serif;
  font-weight: 500;
  font-variation-settings: normal;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--base);
  text-transform: lowercase;
  margin: 0;
}
.w-calc h3, .w-calc .sub-h {
  font-family: "acumin-variable", "Helvetica Neue", Arial, sans-serif;
  font-stretch: 67.5%;
  font-variation-settings: "wght" 500, "wdth" 67.5;
  font-weight: 500;
  font-size: 2.4rem;
  line-height: 1.25;
  letter-spacing: 0;
  color: var(--base);
  margin: 0;
}
.w-calc label {
  color: var(--primary);
  font-family: "acumin-variable", "Helvetica Neue", Arial, sans-serif;
  font-stretch: 67.5%;
  font-variation-settings: "wght" 300, "wdth" 67.5;
}

/* ---- header ------------------------------------------------------------- */
.w-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 2rem; background: var(--base); color: var(--white);
  padding: 1.6rem var(--section-padding-x);
}
.w-head img { height: 40px; width: auto; }
.w-head nav { display: flex; align-items: center; gap: 2.4rem; }
.w-head nav a { color: var(--white); font-size: 1.8rem; text-decoration: none; }
.w-head nav a:hover { color: var(--primary-light); }
.w-head .w-head-cta {
  background: var(--secondary); color: var(--base);
  padding: .9rem 2rem; text-decoration: none; font-size: 1.8rem;
}
.w-head .w-head-cta:hover { background: var(--secondary-hover); color: var(--base); }

/* ---- residence choice (contract ids res_2br / res_3br) ------------------ */
.wdz-res-seg { display: flex; gap: 2px; }
.wdz-res-seg button {
  appearance: none; border: 0; border-radius: 0; cursor: pointer;
  background: var(--white); color: var(--primary);
  padding: 1.6rem 2.4rem; min-width: 24rem; text-align: left;
  font-family: "acumin-variable", "Helvetica Neue", Arial, sans-serif;
  font-stretch: 67.5%; font-variation-settings: "wght" 500, "wdth" 67.5;
  font-size: 2rem; letter-spacing: 0; text-transform: none;
  transition: background .2s ease, color .2s ease;
}
.wdz-res-seg button:hover { background: var(--secondary-hover); }
.wdz-res-seg button.on { background: var(--primary); color: var(--primary-ultra-light); }
.wdz-res-seg button small {
  display: block; margin-top: .4rem; font-size: 1.5rem;
  font-variation-settings: "wght" 300, "wdth" 67.5; opacity: .85;
}
.wdz-res-seg button:focus-visible { outline: .2rem solid var(--primary-dark); outline-offset: .2rem; }

/* ---- eligibility ------------------------------------------------------- */
.w-calc .ex-section-lab {
  font-family: "aviano-didone", Georgia, serif; font-weight: 500;
  font-variation-settings: normal; text-transform: lowercase;
  font-size: 2.5rem; color: var(--base); margin: 0 0 .6rem;
}
.w-calc .ex-section-intro { font-size: 1.8rem; margin: 0 0 var(--space-m); }
.w-calc .fl-panel-divider { border: 0; border-top: 1px dotted var(--primary); margin: var(--space-l) 0; }

.w-calc .fl-elig-row {
  display: flex; justify-content: space-between; align-items: center;
  gap: var(--space-m); padding: var(--space-s) 0;
  border-bottom: 1px dotted rgba(78,42,10,.45);
}
.w-calc .fl-elig-label { display: block; font-size: 2rem; font-variation-settings: "wght" 500, "wdth" 67.5; }
.w-calc .fl-elig-hint { display: block; font-size: 1.5rem; color: rgba(78,42,10,.75); margin-top: .3rem; }
.w-calc .fl-seg { display: inline-flex; gap: 2px; flex-shrink: 0; }
.w-calc .fl-seg button {
  appearance: none; border: 0; border-radius: 0; cursor: pointer;
  background: var(--secondary); color: var(--base);
  padding: 1.1rem 2.2rem; min-width: 7rem;
  font-family: "acumin-variable", Arial, sans-serif; font-stretch: 67.5%;
  font-variation-settings: "wght" 300, "wdth" 67.5;
  font-size: 1.8rem; letter-spacing: 0; text-transform: none;
  transition: background .2s ease;
}
.w-calc .fl-seg button:hover { background: var(--secondary-hover); }
.w-calc .fl-seg button.on { background: var(--primary); color: var(--primary-ultra-light); font-variation-settings: "wght" 500, "wdth" 67.5; }
.w-calc .fl-seg button:focus-visible { outline: .2rem solid var(--primary-dark); outline-offset: .2rem; }

/* ---- sliders ----------------------------------------------------------- */
.w-calc .fl-slider-block { margin: var(--space-m) 0 var(--space-l); }
.w-calc .fl-slider-header { display: flex; justify-content: space-between; align-items: baseline; gap: 1.2rem; }
.w-calc .fl-slider-label { font-size: 2rem; }
.w-calc .fl-slider-val {
  font-family: "aviano-didone", Georgia, serif; font-weight: 500;
  font-variation-settings: normal; font-size: 2.6rem; color: var(--primary);
}
.w-calc .fl-slider-val.zero { color: var(--secondary-semi-light); }
.w-calc input[type=range] {
  -webkit-appearance: none; appearance: none;
  width: 100%; height: 2.8rem; margin: 1rem 0 .4rem;
  background: transparent; accent-color: var(--primary);
}
.w-calc input[type=range]::-webkit-slider-runnable-track { height: 2px; background: rgba(78,42,10,.35); }
.w-calc input[type=range]::-moz-range-track { height: 2px; background: rgba(78,42,10,.35); }
.w-calc input[type=range]::-moz-range-progress { height: 2px; background: var(--primary); }
.w-calc input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 2.6rem; height: 2.6rem; border-radius: 50%; margin-top: -1.2rem;
  background: var(--primary); border: 2px solid var(--primary-ultra-light);
}
.w-calc input[type=range]::-moz-range-thumb {
  width: 2.6rem; height: 2.6rem; border-radius: 50%;
  background: var(--primary); border: 2px solid var(--primary-ultra-light);
}
.w-calc input[type=range]:focus-visible { outline: .2rem solid var(--primary-dark); outline-offset: .3rem; }
.w-calc .fl-slider-range-labels { display: flex; justify-content: space-between; font-size: 1.5rem; color: rgba(78,42,10,.75); }

/* ---- costs drawer ------------------------------------------------------ */
.w-calc .fl-costs-toggle {
  appearance: none; background: none; border: 0; cursor: pointer;
  font-family: "acumin-variable", Arial, sans-serif; font-stretch: 67.5%;
  font-variation-settings: "wght" 500, "wdth" 67.5;
  font-size: 1.8rem; letter-spacing: 0; text-transform: none;
  color: var(--primary); padding: 0;
  text-decoration: underline; text-decoration-style: dotted; text-underline-offset: .5em;
}
.w-calc .fl-costs-body { display: none; }
.w-calc .fl-costs-body.open { display: block; }
.w-calc .fl-costs-inner { background: var(--secondary-ultra-light); padding: var(--space-m); margin-top: var(--space-m); }
.w-calc .fl-costs-note { font-size: 1.5rem; color: rgba(78,42,10,.75); margin: 0 0 1.2rem; }
.w-calc .fl-assump-row { display: flex; justify-content: space-between; align-items: center; gap: 1.2rem; margin: 1rem 0; font-size: 1.8rem; }
.w-calc .fl-input-wrap {
  display: inline-flex; align-items: center; gap: .4rem;
  border: 0; border-bottom: 1px dotted var(--primary);
  background: var(--secondary); padding: .5rem 1rem;
}
.w-calc .fl-input {
  border: 0; outline: none; width: 9rem; background: transparent;
  font-family: "acumin-variable", Arial, sans-serif; font-stretch: 67.5%;
  font-size: 1.8rem; text-align: right; color: var(--primary);
}
.w-calc .fl-input-wrap .pfx, .w-calc .fl-input-wrap .sfx { color: var(--primary); font-size: 1.8rem; }
.w-calc .fl-input-wrap:focus-within { outline: .2rem solid var(--primary-dark); outline-offset: .2rem; }

/* ---- result rows ------------------------------------------------------- */
.w-calc .fl-live-section { display: none; }
.w-calc .fl-live-section.show { display: block; }
.w-calc .fl-support-card { border: 0; border-top: 1px dotted var(--primary); padding: var(--space-m) 0 0; margin-top: var(--space-m); }
.w-calc .fl-card-eyebrow {
  font-family: "aviano-didone", Georgia, serif; font-weight: 500;
  font-variation-settings: normal; text-transform: lowercase;
  font-size: 2rem; color: var(--base); margin: 0 0 1rem;
}
.w-calc .fl-card-intro { font-size: 1.8rem; color: rgba(78,42,10,.75); margin: 0 0 1.2rem; }
.w-calc .fl-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1.2rem;
  padding: 1rem 0; font-size: 1.8rem; border-bottom: 1px dotted rgba(78,42,10,.3);
}
.w-calc .fl-row-lab small { display: block; font-size: 1.5rem; color: rgba(78,42,10,.65); }
.w-calc .fl-row-val { font-variation-settings: "wght" 500, "wdth" 67.5; }
.w-calc .fl-row-val.neg { color: var(--w-alert); }
.w-calc .fl-total {
  display: flex; justify-content: space-between; gap: 1.2rem;
  padding: 1.4rem 1.6rem; margin-top: 1.2rem; font-size: 2rem;
  font-variation-settings: "wght" 500, "wdth" 67.5;
}
.w-calc .fl-total.tint { background: var(--secondary-ultra-light); color: var(--primary); }
.w-calc .fl-total.pos { background: var(--primary); color: var(--primary-ultra-light); }
.w-calc .fl-total.neg { background: var(--w-alert); color: var(--primary-ultra-light); }

/* ---- verdict ----------------------------------------------------------- */
.w-calc .fl-verdict-initial { font-size: 1.8rem; color: rgba(78,42,10,.8); }
.w-calc .fl-verdict-initial.hidden { display: none; }
.w-calc .fl-verdict { display: none; margin-top: var(--space-m); padding: var(--space-s) var(--space-m); background: var(--white); gap: 1.2rem; border-left: 3px solid var(--secondary); }
.w-calc .fl-verdict.show { display: flex; }
.w-calc .fl-verdict.pass { border-left-color: var(--primary); }
.w-calc .fl-verdict.fail { border-left-color: var(--secondary-semi-light); }
.w-calc .fl-verdict .ico { display: none; }
.w-calc .fl-verdict-head { font-size: 2rem; font-variation-settings: "wght" 500, "wdth" 67.5; color: var(--base); margin: 0 0 .4rem; }
.w-calc .fl-verdict-body { font-size: 1.8rem; color: var(--primary); margin: 0; }

/* ---- shortfall --------------------------------------------------------- */
.w-calc .fl-shortfall-panel { border: 0; border-left: 3px solid var(--w-alert); background: var(--white); padding: var(--space-m); margin-top: var(--space-m); }
.w-calc .fl-shortfall-eyebrow {
  font-family: "aviano-didone", Georgia, serif; font-weight: 500;
  font-variation-settings: normal; text-transform: lowercase;
  font-size: 2rem; color: var(--w-alert); margin: 0 0 .6rem;
}
.w-calc .fl-shortfall-head { font-size: 2rem; font-variation-settings: "wght" 500, "wdth" 67.5; color: var(--base); margin: 0 0 1rem; }
.w-calc .fl-savings-result { font-size: 1.8rem; border-top: 1px dotted rgba(78,42,10,.45); padding-top: 1.2rem; }
.w-calc .fl-savings-result.covered { font-variation-settings: "wght" 500, "wdth" 67.5; color: var(--primary); }
.w-calc .fl-savings-result.gap-exists { color: var(--w-alert); }

/* ---- buttons ----------------------------------------------------------- */
.w-calc .fl-cta-row { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: var(--space-l); }
.w-calc .fl-btn {
  appearance: none; cursor: pointer; border: 0; border-radius: 0;
  background: var(--primary); color: var(--white);
  font-family: "acumin-variable", Arial, sans-serif; font-stretch: 67.5%;
  font-variation-settings: "wght" 300, "wdth" 67.5;
  font-size: 1.8rem; text-transform: none; letter-spacing: 0;
  padding: 1.2rem 2.4rem; min-width: 15rem; text-align: center;
  transition: opacity .2s ease;
}
.w-calc .fl-btn:hover { opacity: .8; }
.w-calc .fl-btn:focus-visible { outline: .2rem solid var(--primary-dark); outline-offset: .2rem; }
.w-calc .fl-btn-ghost { background: var(--secondary); color: var(--base); }
.w-calc .fl-btn-ghost:hover { opacity: 1; background: var(--secondary-hover); }

/* ---- register / faq / disclaimer -------------------------------------- */
.wdz-register .wdz-field input {
  width: 100%; border: 0; border-radius: 0; border-bottom: 1px dotted var(--primary);
  background: var(--secondary); padding: 1rem 1.2rem; margin-bottom: 1.2rem;
  font-family: "acumin-variable", Arial, sans-serif; font-stretch: 67.5%;
  font-variation-settings: "wght" 300, "wdth" 67.5;
  font-size: 2rem; color: var(--primary);
}
.wdz-register .wdz-field input::placeholder { color: var(--primary); opacity: 1; }
.wdz-register .wdz-field input:focus-visible { outline: .2rem solid var(--primary-dark); outline-offset: .2rem; }
.wdz-register .wdz-hp { position: absolute; left: -9999px; }
.wdz-register .wdz-submit {
  appearance: none; cursor: pointer; border: 0; border-radius: 0;
  background: var(--primary); color: var(--white);
  padding: 1.4rem 2.4rem; min-width: 100%;
  font-family: "acumin-variable", Arial, sans-serif; font-stretch: 67.5%;
  font-variation-settings: "wght" 300, "wdth" 67.5;
  font-size: 1.8rem; text-transform: uppercase; letter-spacing: 0;
  transition: opacity .2s ease;
}
.wdz-register .wdz-submit:hover { opacity: .8; }

.wdz-faq .item { border-top: 1px dotted var(--primary); padding: var(--space-m) 0; }
.wdz-faq .q { font-size: 2rem; font-variation-settings: "wght" 500, "wdth" 67.5; color: var(--base); margin: 0 0 .8rem; }
.wdz-faq .a { font-size: 2rem; margin: 0; }
.wdz-disc p { font-size: 1.5rem; color: rgba(78,42,10,.8); line-height: 1.7; }

/* ---- footer ------------------------------------------------------------ */
.w-foot { background: var(--base); color: var(--white); padding: var(--space-xl) var(--section-padding-x); }
.w-foot .inner { display: flex; flex-wrap: wrap; gap: var(--space-l); justify-content: space-between; align-items: flex-start; }
.w-foot img { height: 56px; width: auto; }
.w-foot a { color: var(--white); }
.w-foot .fine { color: var(--action-light); }

