:root{
  --jm-pink:#ff1493;
  --jm-text:#ffffff;
  --jm-focus:3px;
  --jm-radius:999px;
  --jm-font:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}
.jm-postcode-wrap{font-family:var(--jm-font);display:inline-block;}
.jm-postcode-form{display:flex;align-items:stretch;gap:0.5rem;background:var(--jm-pink);border-radius:var(--jm-radius);padding:0.5rem;}
#jm-postcode{flex:1;border:none;outline:none;background:transparent;color:var(--jm-text);font-size:1rem;padding:0.85em 1.1em;border-radius:var(--jm-radius);caret-color:var(--jm-text);}
#jm-postcode::placeholder{color:rgba(255,255,255,0.85);}
.jm-postcode-form button{border:none;border-radius:var(--jm-radius);background:rgba(255,255,255,0.15);color:var(--jm-text);font-weight:700;padding:0 1.1em;cursor:pointer;}
.jm-postcode-form button:hover{background:rgba(255,255,255,0.22);}
.jm-postcode-form:focus-within{box-shadow:0 0 0 var(--jm-focus) rgba(255,20,147,0.35);}
.jm-error{margin:0;margin-left:0.5rem;color:#fff;font-size:0.9rem;align-self:center;opacity:0;transition:opacity .2s ease;}
.jm-error.is-visible{opacity:1;}
.jm-visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}