.emrc {
  --emrc-ink: #14213d;
  --emrc-muted: #526070;
  --emrc-accent: #087e8b;
  --emrc-accent-dark: #05636d;
  --emrc-soft: #eef7f8;
  --emrc-border: #d8e1e8;
  box-sizing: border-box;
  max-width: 960px;
  margin: 2rem auto;
  color: var(--emrc-ink);
  font-family: inherit;
}

.emrc *, .emrc *::before, .emrc *::after { box-sizing: inherit; }
.emrc__header { margin-bottom: 1.5rem; }
.emrc__header h2 { margin: .2rem 0 .6rem; font-size: clamp(1.8rem, 4vw, 2.75rem); line-height: 1.1; }
.emrc__header p:last-child { max-width: 66ch; color: var(--emrc-muted); }
.emrc__required-note { color: #b42318 !important; font-size: .9rem; font-weight: 750; }
.emrc__eyebrow { margin: 0; color: var(--emrc-accent-dark); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.emrc__form { display: grid; gap: 1rem; }
.emrc__section { min-width: 0; margin: 0; padding: 1.25rem; border: 1px solid var(--emrc-border); border-radius: 14px; background: #fff; }
.emrc__section--required { border-color: #d6453d; box-shadow: inset 0 0 0 1px rgba(214,69,61,.08); }
.emrc__section--required.is-complete { border-color: var(--emrc-border); box-shadow: none; }
.emrc__section--required.is-attention { animation: emrc-attention .7s ease-out 2; }
.emrc__section legend { padding: 0 .35rem; font-size: 1.05rem; font-weight: 750; }
.emrc__asterisk { color: #c52f28; font-weight: 900; }
.emrc__step { display: inline-grid; width: 2rem; height: 2rem; margin-right: .4rem; place-items: center; border-radius: 50%; background: var(--emrc-soft); color: var(--emrc-accent-dark); font-size: .75rem; }
.emrc__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .6rem; }
.emrc__option { position: relative; display: flex; align-items: flex-start; gap: .7rem; padding: .85rem; border: 1px solid var(--emrc-border); border-radius: 9px; cursor: pointer; }
.emrc__option:hover { border-color: var(--emrc-accent); background: var(--emrc-soft); }
.emrc__option:has(input:checked) { border-color: var(--emrc-accent); background: var(--emrc-soft); box-shadow: inset 0 0 0 1px var(--emrc-accent); }
.emrc__option input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin: .1rem 0 0; accent-color: var(--emrc-accent); }
.emrc select { width: 100%; min-height: 48px; margin-top: .6rem; padding: .7rem 2.4rem .7rem .8rem; border: 1px solid var(--emrc-border); border-radius: 9px; background-color: #fff; color: var(--emrc-ink); font: inherit; }
.emrc input:focus-visible, .emrc select:focus-visible, .emrc button:focus-visible, .emrc__result:focus-visible { outline: 3px solid rgba(8, 126, 139, .3); outline-offset: 2px; }
.emrc__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding-top: .5rem; }
.emrc__actions button { min-height: 46px; padding: .7rem 1.2rem; border-radius: 9px; font: inherit; font-weight: 750; cursor: pointer; }
.emrc__reset { border: 1px solid var(--emrc-border); background: #fff; color: var(--emrc-ink); }
.emrc__result { display: grid; grid-template-columns: minmax(120px, .28fr) 1fr; gap: 1.5rem; margin-top: 1.5rem; padding: 1.5rem; border-radius: 16px; background: var(--emrc-ink); color: #fff; }
.emrc__result[hidden] { display: none; }
.emrc__score-wrap { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 1.2rem; border-radius: 12px; background: var(--emrc-accent); text-align: center; }
.emrc__score-wrap strong { font-size: 3.5rem; line-height: 1; }
.emrc__band { margin: 0; color: #a7e3e8; font-weight: 750; }
.emrc__result h3 { margin: .2rem 0 1rem; color: #fff; }
.emrc__recommendations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1rem; margin: 0; }
.emrc__recommendations div { padding-top: .6rem; border-top: 1px solid rgba(255,255,255,.18); }
.emrc__recommendations dt { color: #bfd0dc; font-size: .82rem; }
.emrc__recommendations dd { margin: .1rem 0 0; font-size: 1.05rem; font-weight: 750; }
.emrc__lead { grid-column: 1 / -1; margin-top: .5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.2); }
.emrc__lead[hidden] { display: none; }
.emrc__completion-note { grid-column: 1 / -1; margin: .5rem 0 0; padding: 1rem; border: 1px solid #ff8c85; border-radius: 9px; background: rgba(197,47,40,.18); color: #ffd2cf; font-weight: 650; }
.emrc__completion-note[hidden] { display: none; }
.emrc__completion-note p { margin: 0 0 .75rem; }
.emrc__completion-note button { min-height: 42px; padding: .6rem .9rem; border: 1px solid #ffd2cf; border-radius: 8px; background: transparent; color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.emrc__completion-note button:hover { background: rgba(255,255,255,.1); }
.emrc__lead h3 { margin: 0 0 .35rem; font-size: 1.45rem; }
.emrc__lead > p { margin: 0 0 1rem; color: #bfd0dc; }
.emrc__lead-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.emrc__lead-fields label { display: grid; gap: .35rem; color: #fff; font-weight: 650; }
.emrc__lead-fields input { width: 100%; min-height: 46px; padding: .7rem .8rem; border: 1px solid #9fb2c1; border-radius: 8px; background: #fff; color: var(--emrc-ink); font: inherit; }
.emrc__consent { display: flex; align-items: flex-start; gap: .6rem; margin: 1rem 0; color: #dce7ed; font-size: .9rem; cursor: pointer; }
.emrc__consent input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .1rem; accent-color: var(--emrc-accent); }
.emrc__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.emrc__send { min-height: 46px; padding: .7rem 1.2rem; border: 1px solid var(--emrc-accent); border-radius: 9px; background: var(--emrc-accent); color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.emrc__send:hover { border-color: #0aa0af; background: #0aa0af; }
.emrc__send:disabled { opacity: .6; cursor: wait; }
.emrc__send-status { min-height: 1.4em; margin: .75rem 0 0; font-weight: 650; }
.emrc__send-status.is-success { color: #a9efc3; }
.emrc__send-status.is-error { color: #ffb8b4; }
.emrc__disclaimer { margin-top: 1rem; padding-left: 1rem; border-left: 3px solid var(--emrc-accent); color: var(--emrc-muted); font-size: .88rem; }

@keyframes emrc-attention {
  0%, 100% { border-color: #d6453d; box-shadow: inset 0 0 0 1px rgba(214,69,61,.08); }
  50% { border-color: #a51f18; box-shadow: 0 0 0 5px rgba(214,69,61,.2); }
}

@media (prefers-reduced-motion: reduce) {
  .emrc__section--required.is-attention { animation: none; box-shadow: 0 0 0 4px rgba(214,69,61,.2); }
}

@media (max-width: 680px) {
  /* Elementor's page typography reduces these headings to 12–17px on the
     calculator page. Restore a clear mobile hierarchy without affecting the
     site header, footer, other pages, or the calculator's own headings. */
  [data-elementor-id="268"] .elementor-widget-text-editor h1,
  [data-elementor-id="268"] .elementor-widget-heading h1.elementor-heading-title {
    margin: 0 0 1rem;
    font-size: 1.875rem !important;
    line-height: 1.15 !important;
  }

  [data-elementor-id="268"] .elementor-widget-text-editor h2,
  [data-elementor-id="268"] .elementor-widget-heading h2.elementor-heading-title {
    margin-top: 1.5rem;
    margin-bottom: .75rem;
    font-size: 1.25rem !important;
    line-height: 1.3 !important;
  }

  [data-elementor-id="268"] .eael-infobox .title {
    margin: 0 0 .5rem;
    font-size: 1.05rem !important;
    line-height: 1.3 !important;
  }

  .emrc__options, .emrc__recommendations, .emrc__lead-fields { grid-template-columns: 1fr; }
  .emrc__result { grid-template-columns: 1fr; }
  .emrc__score-wrap { align-items: flex-start; }
}
