@font-face { font-family:"IE Commercial"; src:url("manrope-variable.woff2") format("woff2"); font-style:normal; font-weight:200 800; font-display:swap; }
.iecc-shell {
  --iecc-ink: #13292b;
  --iecc-deep: #173f41;
  --iecc-teal: #238f94;
  --iecc-aqua: #6dbbbf;
  --iecc-soft: #f2f7f7;
  --iecc-line: #d4e2e2;
  --iecc-warm: #f6c95f;
  --iecc-white: #ffffff;
  box-sizing: border-box;
  color: var(--iecc-ink);
  display: grid;
  font-family: Inter, Arial, sans-serif;
  gap: 20px;
  grid-template-columns: minmax(0, 1fr) 310px;
  margin: 28px auto 56px;
  max-width: 1120px;
  padding: 0 20px;
  scroll-margin-top: 96px;
  width: 100%;
}

.iecc-shell *,
.iecc-shell *::before,
.iecc-shell *::after {
  box-sizing: border-box;
}

.iecc-panel {
  background: var(--iecc-white);
  border: 1px solid var(--iecc-line);
  border-radius: 8px;
  box-shadow: 0 18px 48px -38px rgba(19, 63, 65, 0.7);
  min-width: 0;
  overflow: hidden;
}

.iecc-intro {
  border-bottom: 1px solid var(--iecc-line);
  padding: clamp(24px, 4vw, 40px);
}

.iecc-intro > p {
  color: var(--iecc-teal);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  margin: 0 0 10px;
  text-transform: uppercase;
}

.iecc-intro h2 {
  color: var(--iecc-ink);
  font-family: "League Spartan", Inter, Arial, sans-serif;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.03;
  margin: 0;
  max-width: 720px;
}

.iecc-intro > span,
.iecc-intro-next {
  color: #496063;
  display: block;
  font-size: 16px;
  line-height: 1.55;
  margin-top: 14px;
  max-width: 690px;
}

.iecc-intro-next {
  color: var(--iecc-deep);
  font-size: 14px;
  font-weight: 700;
  margin-top: 8px;
}

.iecc-progress {
  counter-reset: iecc-step;
  display: grid;
  gap: 0;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 18px clamp(20px, 4vw, 40px) 16px;
}

.iecc-progress li {
  align-items: center;
  color: #708184;
  counter-increment: iecc-step;
  display: flex;
  font-size: 12px;
  font-weight: 700;
  gap: 7px;
  line-height: 1.2;
  min-width: 0;
  position: relative;
}

.iecc-progress li::before {
  align-items: center;
  background: var(--iecc-soft);
  border: 1px solid var(--iecc-line);
  border-radius: 50%;
  color: #617477;
  content: counter(iecc-step);
  display: inline-flex;
  flex: 0 0 28px;
  font-size: 12px;
  height: 28px;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.iecc-progress li:not(:last-child)::after {
  background: var(--iecc-line);
  content: "";
  height: 1px;
  left: 28px;
  position: absolute;
  right: 0;
  top: 14px;
}

.iecc-progress li.is-active {
  color: var(--iecc-deep);
}

.iecc-progress li.is-active::before {
  background: var(--iecc-teal);
  border-color: var(--iecc-teal);
  color: var(--iecc-white);
  box-shadow: 0 0 0 4px rgba(35, 143, 148, 0.12);
}

.iecc-progress li.is-complete::before {
  background: var(--iecc-deep);
  border-color: var(--iecc-deep);
  color: var(--iecc-white);
  content: "\2713";
}

.iecc-progress li.is-complete::after {
  background: var(--iecc-teal);
}

.iecc-form {
  padding: 8px clamp(20px, 4vw, 40px) clamp(24px, 4vw, 40px);
}

.iecc-step {
  animation: iecc-step-in 260ms ease both;
}

.iecc-step[hidden] {
  display: none !important;
}

.iecc-step h3 {
  color: var(--iecc-deep);
  font-family: "League Spartan", Inter, Arial, sans-serif;
  font-size: clamp(23px, 3vw, 31px);
  line-height: 1.1;
  margin: 14px 0 22px;
}

.iecc-grid,
.iecc-prompt-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.iecc-grid label,
.iecc-prompt-grid label {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.iecc-grid label > span,
.iecc-prompt-grid label > span {
  color: var(--iecc-deep);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.iecc-shell input,
.iecc-shell select {
  background-color: var(--iecc-white);
  border: 1px solid #b9cbcc;
  border-radius: 7px;
  color: var(--iecc-ink);
  font: inherit;
  font-size: 16px;
  line-height: 1.2;
  min-height: 52px;
  outline: none;
  padding: 13px 14px;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
  width: 100%;
}

.iecc-shell select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--iecc-deep) 50%),
    linear-gradient(135deg, var(--iecc-deep) 50%, transparent 50%);
  background-position:
    calc(100% - 19px) 22px,
    calc(100% - 13px) 22px;
  background-repeat: no-repeat;
  background-size: 6px 6px, 6px 6px;
  cursor: pointer;
  padding-right: 42px;
}

.iecc-shell input:hover,
.iecc-shell select:hover {
  border-color: #87a7a9;
}

.iecc-shell input:focus,
.iecc-shell select:focus {
  border-color: var(--iecc-teal);
  box-shadow: 0 0 0 4px rgba(35, 143, 148, 0.13);
}

.iecc-shell [aria-invalid="true"] {
  background-color: #fffafa;
  border-color: #b94a48;
  box-shadow: 0 0 0 3px rgba(185, 74, 72, 0.1);
}

.iecc-result,
.iecc-business-case,
.iecc-decision-brief {
  background: var(--iecc-line);
  border: 1px solid var(--iecc-line);
  border-radius: 8px;
  display: grid;
  gap: 1px;
  margin: 0 0 18px;
  overflow: hidden;
}

.iecc-result {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.iecc-business-case,
.iecc-decision-brief {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.iecc-result > div,
.iecc-business-case > div,
.iecc-decision-brief > div {
  background: var(--iecc-white);
  min-width: 0;
  padding: 16px;
}

.iecc-result span,
.iecc-business-case span,
.iecc-decision-brief span,
.iecc-stakeholder-summary > span,
.iecc-next > span {
  color: var(--iecc-teal);
  display: block;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
  margin-bottom: 7px;
  text-transform: uppercase;
}

.iecc-result strong,
.iecc-business-case strong,
.iecc-decision-brief strong,
.iecc-stakeholder-summary strong,
.iecc-next strong {
  color: var(--iecc-deep);
  display: block;
  font-size: 14px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.iecc-business-case small,
.iecc-next small {
  color: #64777a;
  display: block;
  font-size: 12px;
  line-height: 1.45;
  margin-top: 6px;
}

.iecc-stakeholder-summary,
.iecc-next {
  background: var(--iecc-soft);
  border: 1px solid var(--iecc-line);
  border-radius: 8px;
  margin: 0 0 18px;
  padding: 16px;
}

.iecc-disclaimer {
  color: #66787a;
  font-size: 12px;
  line-height: 1.5;
  margin: 0 0 18px;
}

.iecc-next {
  border-left: 4px solid var(--iecc-aqua);
  margin: 18px 0 0;
}

.iecc-nav {
  border-top: 1px solid var(--iecc-line);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(120px, 0.42fr) minmax(0, 1fr);
  margin-top: 26px;
  padding-top: 20px;
}

.iecc-button {
  align-items: center;
  background: var(--iecc-teal);
  border: 1px solid var(--iecc-teal);
  border-radius: 7px;
  color: var(--iecc-white);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 15px;
  font-weight: 800;
  justify-content: center;
  line-height: 1.2;
  min-height: 52px;
  padding: 14px 20px;
  text-align: center;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.iecc-button:hover {
  background: var(--iecc-deep);
  border-color: var(--iecc-deep);
  transform: translateY(-1px);
}

.iecc-button:focus-visible {
  box-shadow: 0 0 0 4px rgba(35, 143, 148, 0.2);
  outline: none;
}

.iecc-button:disabled {
  cursor: wait;
  opacity: 0.62;
  transform: none;
}

.iecc-button--secondary {
  background: var(--iecc-white);
  border-color: #afc3c4;
  color: var(--iecc-deep);
}

.iecc-button--secondary:hover {
  background: var(--iecc-soft);
  border-color: #89a6a8;
  color: var(--iecc-deep);
}

.iecc-button[hidden] {
  display: none !important;
}

.iecc-nav .iecc-button:not(.iecc-button--secondary) {
  grid-column: 2;
}

.iecc-nav .iecc-button--secondary[hidden] + .iecc-button {
  grid-column: 1 / -1;
}

.iecc-status {
  color: var(--iecc-deep);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
  margin: 12px 0 0;
  min-height: 20px;
}

.iecc-form.is-complete .iecc-nav {
  display: none;
}

.iecc-form.is-complete .iecc-status {
  background: #eaf7f2;
  border: 1px solid #b9ddcf;
  border-radius: 8px;
  color: #14543f;
  padding: 14px 16px;
}

.iecc-aside {
  align-self: start;
  background: var(--iecc-deep);
  border-radius: 8px;
  box-shadow: 0 18px 48px -38px rgba(19, 63, 65, 0.85);
  color: var(--iecc-white);
  display: grid;
  overflow: hidden;
  position: sticky;
  top: 112px;
}

.iecc-aside > div {
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  padding: 22px;
}

.iecc-aside > div:last-child {
  border-bottom: 0;
}

.iecc-aside span {
  color: var(--iecc-aqua);
  display: block;
  font-size: 11px;
  font-weight: 800;
  margin-bottom: 7px;
  text-transform: uppercase;
}

.iecc-aside strong {
  color: var(--iecc-white);
  display: block;
  font-size: 14px;
  line-height: 1.5;
}

.ie-reference-hero-calculator .iecc-shell {
  display: block;
  margin: 0;
  max-width: none;
  padding: 0;
  scroll-margin-top: 94px;
}

.ie-reference-hero-calculator .iecc-intro,
.ie-reference-hero-calculator .iecc-aside {
  display: none;
}

.ie-reference-hero-calculator .iecc-panel {
  border-color: rgba(255, 255, 255, 0.58);
  box-shadow: 0 28px 70px -42px rgba(0, 0, 0, 0.9);
}

.ie-reference-hero-calculator .iecc-progress {
  padding: 20px 24px 12px;
}

.ie-reference-hero-calculator .iecc-form {
  padding: 4px 24px 24px;
}

.ie-reference-hero-calculator .iecc-step h3 {
  font-size: clamp(22px, 2.1vw, 28px);
  margin: 12px 0 18px;
}

.ie-reference-hero-calculator .iecc-grid,
.ie-reference-hero-calculator .iecc-prompt-grid {
  gap: 14px;
}

.ie-reference-hero-calculator .iecc-shell input,
.ie-reference-hero-calculator .iecc-shell select {
  min-height: 50px;
}

.ie-reference-hero-calculator .iecc-nav {
  margin-top: 20px;
}

@keyframes iecc-step-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 920px) {
  .iecc-shell {
    grid-template-columns: 1fr;
    max-width: 760px;
  }

  .iecc-aside {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    position: static;
  }

  .iecc-aside > div {
    border-bottom: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
  }

  .iecc-aside > div:last-child {
    border-right: 0;
  }
}

@media (max-width: 640px) {
  .iecc-shell {
    gap: 14px;
    margin: 12px auto 36px;
    padding: 0 12px;
  }

  .iecc-intro {
    padding: 20px 18px 18px;
  }

  .iecc-intro > p {
    font-size: 11px;
    margin-bottom: 7px;
  }

  .iecc-intro h2 {
    font-size: 29px;
    line-height: 1.04;
  }

  .iecc-intro > span {
    font-size: 15px;
    line-height: 1.45;
    margin-top: 11px;
  }

  .iecc-intro-next {
    font-size: 13px;
    line-height: 1.4;
    margin-top: 6px;
  }

  .iecc-progress {
    padding: 15px 12px 10px;
  }

  .iecc-progress li {
    align-items: center;
    flex-direction: column;
    font-size: 10px;
    gap: 5px;
    text-align: center;
  }

  .iecc-progress li::before {
    flex-basis: 26px;
    height: 26px;
  }

  .iecc-progress li:not(:last-child)::after {
    left: 50%;
    right: -50%;
    top: 13px;
  }

  .iecc-form {
    padding: 4px 18px 22px;
  }

  .iecc-step h3 {
    font-size: 22px;
    margin: 12px 0 18px;
  }

  .iecc-grid,
  .iecc-prompt-grid,
  .iecc-result,
  .iecc-business-case,
  .iecc-decision-brief {
    grid-template-columns: 1fr;
  }

  .iecc-grid,
  .iecc-prompt-grid {
    gap: 15px;
  }

  .iecc-shell input,
  .iecc-shell select {
    min-height: 50px;
  }

  .iecc-result > div,
  .iecc-business-case > div,
  .iecc-decision-brief > div {
    padding: 14px;
  }

  .iecc-nav {
    grid-template-columns: minmax(92px, 0.38fr) minmax(0, 1fr);
    margin-top: 22px;
    padding-top: 16px;
  }

  .iecc-button {
    min-height: 50px;
    padding: 12px 14px;
  }

  .iecc-aside {
    grid-template-columns: 1fr;
  }

  .iecc-aside > div {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    border-right: 0;
    padding: 16px 18px;
  }

  .ie-reference-hero-calculator .iecc-progress {
    padding: 14px 10px 8px;
  }

  .ie-reference-hero-calculator .iecc-form {
    padding: 0 14px 16px;
  }

  .ie-reference-hero-calculator .iecc-step h3 {
    font-size: 20px;
    margin: 8px 0 13px;
  }

  .ie-reference-hero-calculator .iecc-grid,
  .ie-reference-hero-calculator .iecc-prompt-grid {
    gap: 11px;
  }

  .ie-reference-hero-calculator .iecc-shell input,
  .ie-reference-hero-calculator .iecc-shell select {
    min-height: 48px;
  }

  .ie-reference-hero-calculator .iecc-nav {
    margin-top: 16px;
    padding-top: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .iecc-step {
    animation: none;
  }

  .iecc-button,
  .iecc-shell input,
  .iecc-shell select {
    transition: none;
  }
}

/* Consultancy-led local candidate: scoped to the commercial calculator hero. */
.ie-page-hero--calculator-led { background:#f4f8f6 !important; color:#193c3e; }
.ie-page-hero--calculator-led > .ie-shell { display:block !important; max-width:1240px; }
.ie-page-hero--calculator-led .ie-shell > div:first-child { max-width:850px; margin:0 0 28px; }
.ie-page-hero--calculator-led h1 { color:#183b3d !important; font-size:clamp(2rem,4vw,3.5rem); }
.ie-page-hero--calculator-led .ie-page-intro { color:#486164 !important; max-width:72ch; }
.ie-page-hero--calculator-led .ie-reference-hero-calculator { width:100%; min-width:0; }
.ie-reference-hero-calculator .iecc-shell { display:block; width:100%; font-family:"IE Commercial",Arial,sans-serif; }
.iecc-shell [hidden] { display:none !important; }
.iecc-scenario { background:#fff; border:1px solid #d7e4df; border-radius:22px; overflow:hidden; box-shadow:0 20px 65px -45px #234c45; }
.iecc-scenario-heading { padding:32px 36px 26px; border-bottom:1px solid #dce7e2; }
.iecc-scenario-heading > p,.iecc-kicker { margin:0 0 10px; color:#296b67; font-size:.8rem; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.iecc-scenario-heading h2 { margin:0 0 13px; font:750 clamp(1.7rem,3vw,2.5rem)/1.15 "IE Commercial",Arial,sans-serif; letter-spacing:-.035em; color:#163c3d; }
.iecc-scenario-heading > span { display:block; max-width:75ch; color:#405a5c; font-size:1rem; line-height:1.6; }
.iecc-scenario-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
.iecc-contact-shortcut { padding:12px 36px; margin:0; font-size:.9rem; line-height:1.8; background:#f6faf7; border-bottom:1px solid #dce7e2; }
.iecc-contact-shortcut a { display:inline-block; padding:8px 0; min-height:44px; }
.iecc-scenario-inputs { padding:30px 36px; }
.iecc-scenario label { display:block; font-size:1rem; font-weight:700; line-height:1.5; margin:0 0 9px; }
.iecc-scenario label span { display:block; font-size:.875rem; font-weight:500; color:#526b6b; }
.iecc-scenario input,.iecc-scenario select { font-family:inherit; font-size:1rem; min-height:52px; width:100%; }
.iecc-scenario .iecc-help { color:#4b6263; font-size:.875rem; line-height:1.6; margin:9px 0 25px; }
.iecc-scenario a:not(.iecc-button) { color:#11665f; text-decoration:underline; text-underline-offset:3px; }
.iecc-assumptions { border-top:1px solid #dce6e2; padding-top:15px; }
.iecc-assumptions summary,.iecc-decision-questions summary { padding:8px 0; min-height:44px; cursor:pointer; font-size:1rem; font-weight:700; }
.iecc-assumptions[open] summary { margin-bottom:16px; }
.iecc-energy-summary { background:#edf5f0; border-left:1px solid #d5e3da; padding:32px; color:#183d3b; }
.iecc-energy-summary h3 { font:750 clamp(1.8rem,3.5vw,3.2rem)/1.15 "IE Commercial",Arial,sans-serif; letter-spacing:-.04em; margin:18px 0 8px; overflow-wrap:anywhere; }
.iecc-energy-summary h3 + p { color:#4f6863; margin:0 0 27px; font-size:1rem; }
.iecc-energy-summary dl { margin:0; }
.iecc-energy-summary dl > div { padding:18px 0; border-top:1px solid #cbded3; }
.iecc-energy-summary dt { font-size:.875rem; line-height:1.5; color:#3b5c56; }
.iecc-energy-summary dd { font-size:1.2rem; font-weight:750; line-height:1.4; margin:7px 0 0; }
.iecc-energy-warning { font-size:.875rem; line-height:1.65; border-top:1px solid #cadfd2; padding-top:18px; }
.iecc-energy-validation { color:#8e2727; font-size:.9rem; font-weight:700; }
.iecc-meeting { display:grid; grid-template-columns:1fr 1fr; gap:32px; padding:32px 36px; border-top:1px solid #dce6e1; }
.iecc-meeting h3 { font-size:1.7rem; line-height:1.2; letter-spacing:-.03em; color:#173e3e; margin:0 0 14px; }
.iecc-meeting p { font-size:1rem; line-height:1.6; color:#415c5c; }
.iecc-meeting-actions { display:grid; gap:11px; align-content:start; }
.iecc-meeting-actions .iecc-button { text-decoration:none; border-radius:9px; background:#146b67; border-color:#146b67; font-size:1rem; }
.iecc-meeting-actions .iecc-button--secondary { background:#fff; color:#175f5d; }
.iecc-meeting-actions small { color:#516b67; font-size:.8rem; line-height:1.5; }
.iecc-text-button { background:none; border:0; padding:12px 5px; color:#185e5b; cursor:pointer; font:650 .9rem/1.5 "IE Commercial",Arial,sans-serif; text-decoration:underline; min-height:44px; }
.iecc-decision-questions { padding:0 36px 25px; }
.iecc-decision-questions details { border-top:1px solid #dce6e1; padding:8px 0; }
.iecc-decision-questions p { font-size:1rem; line-height:1.65; color:#455f60; max-width:85ch; }
.iecc-scenario :focus-visible { outline:3px solid #145f5d; outline-offset:4px; }
.iecc-panel[data-iecc-intake] { margin:25px 0 0; scroll-margin-top:160px; }
.iecc-panel[data-iecc-intake] .iecc-intro { display:block; }
.iecc-panel[data-iecc-intake] .iecc-intro-next { display:none; }
.iecc-panel[data-iecc-intake] .iecc-progress li[data-iecc-progress="3"] { display:none; }
.iecc-panel[data-iecc-intake] .iecc-progress { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:780px) {
  .iecc-scenario-layout,.iecc-meeting { grid-template-columns:1fr; }
  .iecc-scenario-heading,.iecc-scenario-inputs,.iecc-energy-summary,.iecc-meeting { padding:24px 20px; }
  .iecc-contact-shortcut { padding:10px 20px; }
  .iecc-energy-summary { border-left:0; border-top:1px solid #d5e3da; }
  .iecc-decision-questions { padding:0 20px 22px; }
  .iecc-scenario-heading h2 { font-size:1.75rem; }
  .iecc-scenario { border-radius:16px; }
  .iecc-meeting { gap:12px; }
}
