/* BSW header postcode search.  Every selector is namespaced bsw-pc.  Nothing existing is affected. */
.bsw-pc{display:flex;align-items:stretch;position:relative;margin:0;flex:0 1 auto;min-width:0;max-width:100%}

/* One white pill holding a pin, the field, and a pink inner pill button. */
.bsw-pc__field{display:flex;align-items:center;min-width:0;
  background:#fff;border:2px solid #E50571;border-radius:999px;
  padding:.2rem .2rem .2rem .78rem;
  box-shadow:0 1px 3px rgba(0,0,0,.22),0 0 0 1px rgba(255,255,255,.14);
  transition:border-color .15s ease,box-shadow .15s ease}
.bsw-pc__field:focus-within{border-color:#ff2f90;
  box-shadow:0 0 0 3px rgba(229,5,113,.42),0 1px 3px rgba(0,0,0,.22)}

.bsw-pc__pin{flex:none;display:block;color:#E50571;opacity:.7;margin-right:.42rem}

.bsw-pc__input{font:inherit;font-size:.82rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase;
  width:8.7rem;min-width:0;padding:.42rem 0;margin:0;
  color:#14100f;background:transparent;border:0;outline:none;box-shadow:none;appearance:none}
.bsw-pc__input::placeholder{text-transform:none;letter-spacing:0;font-weight:500;color:#9a8f94;opacity:1}
.bsw-pc__input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px #fff inset}

.bsw-pc__btn{font:inherit;font-size:.79rem;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;
  margin-left:.5rem;padding:.56rem 1.1rem;color:#fff;background:#E50571;border:0;border-radius:999px;
  transition:background .15s ease}
.bsw-pc__btn:hover{background:#c40462}
.bsw-pc__btn:active{background:#a80354}
.bsw-pc__btn:focus-visible{outline:2px solid #fff;outline-offset:2px}

.bsw-pc__err{position:absolute;top:calc(100% + 8px);right:0;background:#9b1c1c;color:#fff;font-size:.74rem;
  font-weight:600;padding:.32rem .62rem;border-radius:7px;white-space:nowrap;z-index:60;
  box-shadow:0 3px 10px rgba(0,0,0,.28)}
.bsw-pc__err::before{content:"";position:absolute;bottom:100%;right:1.6rem;
  border:5px solid transparent;border-bottom-color:#9b1c1c}
.bsw-pc[hidden]{display:none}

/* Narrow screens: let the control take its own line inside whatever header it sits in.
   Direct parent wrap is not enough on this site: the form sits in .util-right inside a
   nowrap .util-inner, so the grandparent has to wrap too. */
@media (max-width:860px){
  *:has(> form.bsw-pc){flex-wrap:wrap;flex:1 0 100%;min-width:0;max-width:100%}
  *:has(> * > form.bsw-pc){flex-wrap:wrap}
  .bsw-pc{flex:1 0 100%;width:100%;max-width:100%;margin-top:.5rem;box-sizing:border-box}
  .bsw-pc__field{width:100%;box-sizing:border-box}
  .bsw-pc__input{flex:1 1 auto;width:auto}
}
/* Class added by the script when :has() is unavailable, or when the control still does not fit. */
.bsw-pc-wrap{flex-wrap:wrap!important}
.bsw-pc-wrap:has(> form.bsw-pc){flex:1 0 100%;min-width:0;max-width:100%}
@media (max-width:430px){
  .bsw-pc__btn{padding:.56rem .8rem;font-size:.75rem}
  .bsw-pc__field{padding-left:.6rem}
  .bsw-pc__pin{margin-right:.3rem}
}
