.uee-estimator{--uee-navy:#18253E;--uee-cream:#FEF9EE;--uee-border:rgba(24,37,62,.22);font-family:Poppins,Arial,sans-serif;color:#18253E;background:var(--uee-cream);padding:clamp(24px,5vw,56px);border-radius:20px;max-width:980px;margin:0 auto;box-sizing:border-box}.uee-estimator *{box-sizing:border-box}.uee-loading,.uee-error{text-align:center;padding:28px}.uee-error{border:1px solid #a00;background:#fff;color:#700;border-radius:12px}.uee-progress{display:flex;align-items:center;gap:18px;margin-bottom:42px}.uee-progress-label{font-weight:600;min-width:40px}.uee-progress-track{height:4px;flex:1;background:rgba(24,37,62,.12);border-radius:99px;overflow:hidden}.uee-progress-fill{height:100%;background:#18253E;transition:width .25s ease}.uee-kicker{font-size:12px;letter-spacing:.16em;font-weight:600;margin:0 0 12px}.uee-step h2{font-family:"Noe Display",Georgia,serif;font-size:clamp(34px,5vw,62px);line-height:1.02;margin:0 0 18px;max-width:780px}.uee-help{font-size:15px;opacity:.75;margin:0 0 26px}.uee-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}.uee-option{appearance:none;border:1px solid var(--uee-border);background:transparent;color:#18253E;border-radius:0 !important;padding:20px;text-align:left;font:inherit;font-weight:500;display:flex;align-items:center;gap:12px;cursor:pointer;transition:.18s ease}.uee-option:hover{transform:translateY(-1px);border-color:#18253E}.uee-option.is-selected{background:#18253E;color:var(--uee-cream);border-color:#18253E}.uee-option-mark{font-size:12px;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 auto}.uee-nav{display:flex;justify-content:space-between;gap:16px;margin-top:36px}.uee-btn{border-radius:0 !important;padding:13px 24px;font:inherit;font-weight:600;cursor:pointer}.uee-btn-primary{background:#18253E;color:var(--uee-cream);border:1px solid #18253E}.uee-btn-secondary{background:transparent;color:#18253E;border:1px solid var(--uee-border)}.uee-btn:disabled{opacity:.35;cursor:not-allowed}.uee-result{padding:28px 0}.uee-result h3{font-family:"Noe Display",Georgia,serif;font-size:38px;margin:0 0 10px}.uee-debug{margin-top:38px;background:#fff;border:1px solid var(--uee-border);border-radius:12px;overflow:hidden}.uee-debug-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--uee-border)}.uee-debug-head button{border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer}.uee-debug pre{margin:0;padding:16px;white-space:pre-wrap;word-break:break-word;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.uee-empty{grid-column:1/-1;padding:18px;border:1px dashed var(--uee-border);border-radius:12px}@media(max-width:680px){.uee-estimator{padding:24px 18px;border-radius:14px}.uee-options{grid-template-columns:1fr}.uee-nav{position:sticky;bottom:8px;background:rgba(254,249,238,.95);padding:10px 0}.uee-btn{flex:1}.uee-step h2{font-size:40px}}

/* Urban Extensions hardcoded brand overrides — intentionally high-specificity to beat theme button styles. */
.uee-estimator .uee-option, .uee-estimator button.uee-option { color:#18253E !important; border-radius:0 !important; }
.uee-estimator .uee-option:hover, .uee-estimator button.uee-option:hover { border-color:#18253E !important; }
.uee-estimator .uee-option.is-selected, .uee-estimator button.uee-option.is-selected { background:#18253E !important; border-color:#18253E !important; color:#FEF9EE !important; }
.uee-estimator .uee-btn, .uee-estimator button.uee-btn { border-radius:0 !important; }
.uee-estimator .uee-btn-primary, .uee-estimator button.uee-btn-primary { background:#18253E !important; border-color:#18253E !important; color:#FEF9EE !important; }
.uee-estimator .uee-btn-secondary, .uee-estimator button.uee-btn-secondary { background:transparent !important; color:#18253E !important; }
.uee-estimator .uee-progress-fill { background:#18253E !important; }
/* Hardcoded choice hover state — prevents theme hover colours from bleeding through. */
.uee-estimator .uee-option:hover:not(.is-selected),
.uee-estimator button.uee-option:hover:not(.is-selected) {
  background:#FFFFFF !important;
  color:#18253E !important;
  border-color:#18253E !important;
}

/* Mobile density overrides — keep up to 8 choices visible without oversized theme spacing. */
@media (max-width:680px){
  .uee-estimator{
    padding:14px 12px !important;
    margin:0 auto !important;
    border-radius:0 !important;
  }
  .uee-estimator .uee-progress{
    gap:10px !important;
    margin:0 0 16px !important;
  }
  .uee-estimator .uee-progress-label{
    min-width:32px !important;
    font-size:12px !important;
  }
  .uee-estimator .uee-kicker{
    font-size:10px !important;
    line-height:1.2 !important;
    margin:0 0 7px !important;
  }
  .uee-estimator .uee-step h2{
    font-size:28px !important;
    line-height:1.04 !important;
    margin:0 0 9px !important;
  }
  .uee-estimator .uee-help{
    font-size:12px !important;
    line-height:1.35 !important;
    margin:0 0 12px !important;
  }
  .uee-estimator .uee-options{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    margin-top:12px !important;
  }
  .uee-estimator .uee-option,
  .uee-estimator button.uee-option{
    min-height:48px !important;
    padding:9px 9px !important;
    gap:7px !important;
    font-size:12px !important;
    line-height:1.22 !important;
    margin:0 !important;
  }
  .uee-estimator .uee-option-mark{
    width:16px !important;
    height:16px !important;
    font-size:9px !important;
  }
  .uee-estimator .uee-nav{
    position:static !important;
    gap:8px !important;
    margin-top:16px !important;
    padding:0 !important;
    background:transparent !important;
  }
  .uee-estimator .uee-btn,
  .uee-estimator button.uee-btn{
    min-height:42px !important;
    padding:9px 14px !important;
    font-size:13px !important;
    line-height:1.2 !important;
    margin:0 !important;
  }
}

@media (max-width:360px){
  .uee-estimator{padding:10px 9px !important;}
  .uee-estimator .uee-step h2{font-size:25px !important;}
  .uee-estimator .uee-options{gap:6px !important;}
  .uee-estimator .uee-option,
  .uee-estimator button.uee-option{
    min-height:44px !important;
    padding:7px !important;
    font-size:11px !important;
  }
}


/* v1.4.0 FINAL THEME-ISOLATION OVERRIDES
   These rules intentionally use high specificity + !important and appear last.
   They also neutralise theme gradients/shadows that can make a white hover look coloured. */
html body .uee-estimator button.uee-option,
html body .uee-estimator .uee-option,
html body .uee-estimator button.uee-btn,
html body .uee-estimator .uee-btn {
  -webkit-appearance:none !important;
  appearance:none !important;
  border-radius:0 !important;
  background-image:none !important;
  box-shadow:none !important;
  text-shadow:none !important;
}

html body .uee-estimator button.uee-option:not(.is-selected):hover,
html body .uee-estimator button.uee-option:not(.is-selected):focus-visible,
html body .uee-estimator .uee-option:not(.is-selected):hover,
html body .uee-estimator .uee-option:not(.is-selected):focus-visible {
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  background-image:none !important;
  color:#18253E !important;
  border-color:#18253E !important;
  box-shadow:none !important;
}

html body .uee-estimator button.uee-option.is-selected,
html body .uee-estimator button.uee-option.is-selected:hover,
html body .uee-estimator button.uee-option.is-selected:focus-visible,
html body .uee-estimator .uee-option.is-selected,
html body .uee-estimator .uee-option.is-selected:hover,
html body .uee-estimator .uee-option.is-selected:focus-visible {
  background:#18253E !important;
  background-color:#18253E !important;
  background-image:none !important;
  color:#FEF9EE !important;
  border-color:#18253E !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

html body .uee-estimator button.uee-btn-primary,
html body .uee-estimator button.uee-btn-primary:hover,
html body .uee-estimator button.uee-btn-primary:focus-visible,
html body .uee-estimator .uee-btn-primary,
html body .uee-estimator .uee-btn-primary:hover,
html body .uee-estimator .uee-btn-primary:focus-visible {
  background:#18253E !important;
  background-color:#18253E !important;
  background-image:none !important;
  color:#FEF9EE !important;
  border:1px solid #18253E !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

html body .uee-estimator button.uee-btn-secondary,
html body .uee-estimator button.uee-btn-secondary:hover,
html body .uee-estimator button.uee-btn-secondary:focus-visible,
html body .uee-estimator .uee-btn-secondary,
html body .uee-estimator .uee-btn-secondary:hover,
html body .uee-estimator .uee-btn-secondary:focus-visible {
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  color:#18253E !important;
  border:1px solid rgba(24,37,62,.22) !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

/* v1.4.0 compact mobile layout. 8 choices = 4 rows in the 2-column grid. */
@media screen and (max-width:680px) {
  html body .uee-estimator {
    width:100% !important;
    max-width:100% !important;
    padding:10px 10px 12px !important;
    margin:0 !important;
    border-radius:0 !important;
  }
  html body .uee-estimator .uee-progress {
    gap:8px !important;
    margin:0 0 10px !important;
  }
  html body .uee-estimator .uee-progress-label {
    min-width:30px !important;
    font-size:11px !important;
    line-height:1 !important;
  }
  html body .uee-estimator .uee-progress-track { height:3px !important; }
  html body .uee-estimator .uee-kicker {
    font-size:9px !important;
    line-height:1.1 !important;
    letter-spacing:.12em !important;
    margin:0 0 5px !important;
  }
  html body .uee-estimator .uee-step h2 {
    font-size:24px !important;
    line-height:1.02 !important;
    margin:0 0 6px !important;
  }
  html body .uee-estimator .uee-help {
    font-size:11px !important;
    line-height:1.25 !important;
    margin:0 0 8px !important;
  }
  html body .uee-estimator .uee-options {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:6px !important;
    margin:8px 0 0 !important;
  }
  html body .uee-estimator button.uee-option,
  html body .uee-estimator .uee-option {
    width:100% !important;
    min-width:0 !important;
    min-height:40px !important;
    padding:6px 7px !important;
    margin:0 !important;
    gap:5px !important;
    font-size:10.5px !important;
    line-height:1.15 !important;
    border-radius:0 !important;
  }
  html body .uee-estimator .uee-option-mark {
    width:14px !important;
    height:14px !important;
    min-width:14px !important;
    font-size:8px !important;
    line-height:1 !important;
  }
  html body .uee-estimator .uee-nav {
    position:static !important;
    display:flex !important;
    gap:6px !important;
    margin:10px 0 0 !important;
    padding:0 !important;
    background:transparent !important;
  }
  html body .uee-estimator button.uee-btn,
  html body .uee-estimator .uee-btn {
    min-height:36px !important;
    padding:7px 10px !important;
    margin:0 !important;
    font-size:11px !important;
    line-height:1 !important;
    border-radius:0 !important;
  }
}

@media screen and (max-width:360px) {
  html body .uee-estimator { padding:8px !important; }
  html body .uee-estimator .uee-step h2 { font-size:21px !important; }
  html body .uee-estimator .uee-options { gap:5px !important; }
  html body .uee-estimator button.uee-option,
  html body .uee-estimator .uee-option {
    min-height:36px !important;
    padding:5px 6px !important;
    font-size:9.5px !important;
  }
}


/* v1.5.0 mobile layout refinement
   One-column choices prevent truncation. Navigation is visually separated
   from the choices by a subtle divider and additional spacing. */
@media screen and (max-width:680px) {
  html body .uee-estimator .uee-options {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:6px !important;
    margin:8px 0 0 !important;
  }

  html body .uee-estimator button.uee-option,
  html body .uee-estimator .uee-option {
    min-height:38px !important;
    padding:6px 8px !important;
    font-size:10.5px !important;
    line-height:1.15 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  html body .uee-estimator .uee-nav {
    margin:16px 0 0 !important;
    padding:12px 0 0 !important;
    border-top:1px solid #D7D7D2 !important;
    gap:6px !important;
  }
}

@media screen and (max-width:360px) {
  html body .uee-estimator .uee-options {
    grid-template-columns:minmax(0,1fr) !important;
    gap:5px !important;
  }

  html body .uee-estimator button.uee-option,
  html body .uee-estimator .uee-option {
    min-height:34px !important;
    padding:5px 7px !important;
    font-size:9.75px !important;
  }

  html body .uee-estimator .uee-nav {
    margin-top:14px !important;
    padding-top:10px !important;
  }
}

/* v2.0.0 production contact + status styles */
.uee-estimator .uee-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px!important}
.uee-estimator .uee-contact-grid label{display:flex;flex-direction:column;gap:6px;color:#18253E!important;font-size:13px!important;font-weight:600!important}
.uee-estimator .uee-contact-grid input[type="text"],.uee-estimator .uee-contact-grid input[type="email"],.uee-estimator .uee-contact-grid input[type="tel"]{width:100%!important;box-sizing:border-box!important;border:1px solid rgba(24,37,62,.28)!important;border-radius:0!important;background:#FFFFFF!important;color:#18253E!important;padding:12px 13px!important;min-height:46px!important;box-shadow:none!important;outline-offset:2px!important;font:inherit!important}
.uee-estimator .uee-contact-grid input:focus{border-color:#18253E!important;box-shadow:0 0 0 1px #18253E!important}
.uee-estimator .uee-contact-wide{grid-column:1/-1}
.uee-estimator .uee-consent{display:grid!important;grid-template-columns:auto 1fr!important;align-items:start!important;gap:9px!important;font-weight:400!important;line-height:1.4!important}
.uee-estimator .uee-consent input{margin-top:3px!important}
.uee-estimator .uee-honeypot{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.uee-estimator .uee-form-error{margin:12px 0 0!important;padding:10px 12px!important;border:1px solid #9f2d2d!important;background:#fff!important;color:#7d1717!important;font-size:13px!important}
.uee-estimator .uee-result{padding:20px 0!important;color:#18253E!important}
.uee-estimator .uee-result h2{color:#18253E!important;margin:0 0 8px!important}
.uee-estimator .uee-result p{margin:4px 0!important}
.uee-estimator .uee-debug{margin-top:20px!important;padding-top:16px!important;border-top:1px solid #D7D7D2!important;color:#18253E!important}
.uee-estimator .uee-debug pre{white-space:pre-wrap!important;overflow-wrap:anywhere!important;background:#fff!important;border:1px solid #D7D7D2!important;padding:12px!important;font-size:11px!important;line-height:1.45!important}
@media screen and (max-width:680px){.uee-estimator .uee-contact-grid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important;margin-top:12px!important}.uee-estimator .uee-contact-wide{grid-column:auto!important}.uee-estimator .uee-contact-grid input[type="text"],.uee-estimator .uee-contact-grid input[type="email"],.uee-estimator .uee-contact-grid input[type="tel"]{min-height:42px!important;padding:9px 10px!important;font-size:13px!important}}


/* v2.0.1 progress + consent fixes */
html body .uee-estimator .uee-progress-track {
  position:relative !important;
  display:block !important;
  overflow:hidden !important;
}
html body .uee-estimator .uee-progress-fill {
  display:block !important;
  width:20%;
  height:100% !important;
  background:#18253E !important;
  background-color:#18253E !important;
  transition:width .25s ease !important;
}
html body .uee-estimator .uee-consent {
  grid-template-columns:28px minmax(0,1fr) !important;
  gap:12px !important;
  align-items:start !important;
}
html body .uee-estimator .uee-consent input[type="checkbox"] {
  -webkit-appearance:auto !important;
  appearance:auto !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  margin:0 !important;
  padding:0 !important;
  accent-color:#18253E !important;
  cursor:pointer !important;
}
html body .uee-estimator .uee-consent input[type="checkbox"]:checked {
  accent-color:#18253E !important;
}
@media screen and (max-width:680px) {
  html body .uee-estimator .uee-consent {
    grid-template-columns:28px minmax(0,1fr) !important;
    gap:10px !important;
  }
  html body .uee-estimator .uee-consent input[type="checkbox"] {
    width:24px !important;
    height:24px !important;
    min-width:24px !important;
    min-height:24px !important;
  }
}


/* v2.0.2 configurable question-heading sizes + consent alignment */
html body .uee-estimator .uee-step h2 { font-size:var(--uee-heading-desktop, 62px) !important; }
html body .uee-estimator .uee-consent { align-items:center !important; }
html body .uee-estimator .uee-consent > span { display:flex !important; align-items:center !important; min-height:24px !important; margin:0 !important; padding:0 !important; line-height:1.35 !important; }
@media screen and (max-width:680px) { html body .uee-estimator .uee-step h2 { font-size:var(--uee-heading-mobile, 21px) !important; } }

/* v2.1.0 postcode service-area validation */
html body .uee-estimator .uee-postcode-field .uee-postcode-error{display:block!important;margin:2px 0 0!important;color:#8a1f1f!important;font-size:12px!important;font-weight:500!important;line-height:1.35!important}
html body .uee-estimator .uee-postcode-field .uee-postcode-error[hidden]{display:none!important}
html body .uee-estimator .uee-postcode-field input[aria-invalid="true"]{border-color:#8a1f1f!important;box-shadow:0 0 0 1px #8a1f1f!important}
