/* Site-wide primitives: Figma Button 2175:3418, Input 2477:10084,
   Checkbox 2431:9819. Important declarations bridge immutable legacy styles. */
:root {
  --es-control-height-shared: 64px;
  --es-control-padding-shared: 24px;
  --es-control-label-gap: 12px;
  --es-button-primary-hover: #b0ff1c;
  --es-button-primary-pressed: #82cf00;
  --es-button-secondary-hover: #ececea;
  --es-button-secondary-pressed: #dcdcda;
}
body .es-button {
  box-sizing: border-box !important;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: var(--es-button-height, 62px) !important;
  height: var(--es-button-height, auto) !important;
  padding: var(--es-button-pad-y, 22px) var(--es-button-pad-x, 40px) !important;
  border: 0 !important;
  border-radius: 100px !important;
  font-family: var(--es-headers-font), Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  font-style: normal !important;
  line-height: 18px !important;
  letter-spacing: 0 !important;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase !important;
  white-space: normal !important;
  overflow-wrap: break-word;
  background-color: var(--es-surface-accent, #a5f50f) !important;
  color: rgba(33,33,33,.8) !important;
  cursor: pointer;
  transition: background-color 180ms, color 180ms;
}
body .es-button:is(.button--dark, .es-subscription__button--included) {
  background-color: var(--es-surface-dark-gray, #2f323a) !important;
  color: var(--es-surface-accent, #a5f50f) !important;
}
body .es-button:is(.button--gray, .button--light) {
  --es-button-height: 65px;
  --es-button-pad-y: 24px;
  background-color: var(--es-surface-secondary, #f6f6f5) !important;
}
body .es-button.button--small { --es-button-height: 53px; --es-button-pad-y: 17.5px; --es-button-pad-x: 22px; }
body .es-button:hover {
  background-color: var(--es-button-primary-hover) !important;
  color: rgba(33,33,33,.8) !important;
  opacity: 1;
}
body .es-button:active {
  background-color: var(--es-button-primary-pressed) !important;
  color: rgba(33,33,33,.8) !important;
}
body .es-button:is(.button--gray, .button--light):hover { background-color: var(--es-button-secondary-hover) !important; }
body .es-button:is(.button--gray, .button--light):active { background-color: var(--es-button-secondary-pressed) !important; }
body .es-button:focus-visible { outline: 2px solid var(--es-focus-color, #212121) !important; outline-offset: 3px; opacity: 1; }
body .es-button:is(:disabled, [aria-disabled="true"]) {
  background-color: rgba(165,245,15,.35) !important;
  color: rgba(33,33,33,.35) !important;
  cursor: not-allowed;
  pointer-events: none;
  opacity: 1;
}
body .es-button:is(.button--dark, .button--gray, .button--light, .es-subscription__button--included):is(:disabled, [aria-disabled="true"]) {
  background-color: rgba(246,246,245,.45) !important;
}
/* Compact component slots retain their intentional widths and spacing. */
.es-subscription .es-subscription__button--included { --es-button-pad-x: 24px; }
.es-subscription .es-subscription__button--calculate { --es-button-pad-x: 20px; }
.service-card .es-button { --es-button-pad-x: 24px; }
.hero__form, .footer-form { --es-focus-color: #a5f50f; }

body .es-control {
  box-sizing: border-box !important;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: var(--es-control-height-shared) !important;
  height: var(--es-control-height-shared) !important;
  padding: 0 var(--es-control-padding-shared) !important;
  border: 0 !important;
  border-radius: 8px !important;
  background-color: #f6f6f5 !important;
  color: #212121 !important;
  font-family: var(--es-regular-font), Garet, Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  font-style: normal;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none;
}
body textarea.es-control { height: auto !important; min-height: 128px !important; padding-block: 20px !important; resize: vertical; }
body select.es-control { padding-right: 44px !important; text-overflow: ellipsis; }
body .es-control::placeholder { color: rgba(33,33,33,.4) !important; opacity: 1 !important; font: inherit !important; }
body .es-control:focus-visible { outline: 2px solid var(--es-surface-accent, #a5f50f) !important; outline-offset: 2px; box-shadow: none !important; }
body .es-control:disabled { opacity: .5; cursor: not-allowed; }
body .es-control-label {
  display: block !important;
  margin: 0 0 var(--es-control-label-gap) !important;
  font-family: var(--es-regular-font), Garet, Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 19px !important;
  color: rgba(33,33,33,.35) !important;
}
body .es-control-group { display: block !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
body form:has(.es-control), body .d-flex-col:has(> .es-control) { min-width: 0; max-width: 100%; }
body .type-grid:has(> form .es-control) > * { min-width: 0; }
body .d-flex-col:has(> .es-control-label + .es-control) { gap: 0 !important; }
/* Dark form variant uses the same geometry and font. */
body .hero__form .es-control { background-color: rgba(246,246,245,.09) !important; color: #fff !important; }
body .hero__form .es-control::placeholder { color: rgba(255,255,255,.4) !important; }
body .hero__form .es-control-label { color: rgba(255,255,255,.35) !important; }
body .footer-form .es-control { border-radius: 0 !important; padding-inline: 0 !important; background-color: transparent !important; color: #fff !important; }
body .footer-form .es-control::placeholder { color: rgba(255,255,255,.4) !important; }
body .footer-form .es-control-label { color: rgba(255,255,255,.35) !important; }

body .es-checkbox-row {
  display: grid !important;
  grid-template-columns: 24px minmax(0,1fr) !important;
  align-items: start !important;
  gap: 16px !important;
}
body .es-checkbox {
  appearance: none !important;
  -webkit-appearance: none !important;
  box-sizing: border-box !important;
  display: block !important;
  flex: 0 0 24px !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1.5px solid #e3e3e3 !important;
  border-radius: 4px !important;
  background: transparent !important;
  cursor: pointer;
}
body .es-checkbox::after { content: none !important; }
body .es-checkbox:checked {
  border-color: #a5f50f !important;
  background-color: #a5f50f !important;
  background-image: url("assets/checkbox-check.svg") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 14px 14px !important;
}
body .es-checkbox:focus-visible { outline: 2px solid var(--es-focus-color, #212121) !important; outline-offset: 3px; }
body .es-checkbox:disabled { opacity: .45; cursor: not-allowed; }
body .es-checkbox-row > :is(label, span) { min-width: 0; margin: 0; color: inherit !important; font-family: var(--es-regular-font), Garet, Arial, sans-serif !important; font-size: 16px !important; font-weight: 400 !important; line-height: 1.4 !important; }
@media (max-width: 1199px) {
  :root { --es-control-height-shared: 56px; --es-control-padding-shared: 16px; --es-control-label-gap: 8px; }
}
@media (max-width: 639px) {
  body .es-checkbox-row > :is(label, span) { font-size: 15px !important; }
}
@media (max-width: 992px) {
  body .type-grid:has(> form .es-control) { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { body .es-button { transition: none; } }
