@import url('https://fonts.googleapis.com/css2?family=Anton&family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  --black:#050505;
  --charcoal:#11140e;
  --soft:#171a13;
  --lime:#b7f000;
  --lime2:#8ec500;
  --white:#ffffff;
  --muted:rgba(255,255,255,.68);
  --line:rgba(183,240,0,.18);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 50% 0%, rgba(183,240,0,.15), transparent 30rem),
    radial-gradient(circle at 75% 35%, rgba(183,240,0,.07), transparent 24rem),
    radial-gradient(circle at 22% 72%, rgba(183,240,0,.055), transparent 28rem),
    linear-gradient(180deg,#050505 0%,#080a06 46%,#050505 100%);
  color:var(--white);
  font-family:Inter,system-ui,-apple-system,sans-serif;
  overflow-x:hidden;
}

.atmosphere{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(circle at 50% 30%, black, transparent 72%);
  z-index:0;
}

.site-header{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:14px clamp(18px,4vw,58px);
  background:rgba(5,5,5,.76);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(255,255,255,.07);
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:white;
  text-decoration:none;
  font-weight:900;
}

.brand img{
  width:60px;
  height:60px;
  object-fit:contain;
  filter:drop-shadow(0 0 12px rgba(183,240,0,.28));
}

.brand span{
  font-family:Anton,sans-serif;
  font-size:1.45rem;
  letter-spacing:.01em;
}

nav{display:flex;gap:24px}
nav a{
  color:rgba(255,255,255,.72);
  text-decoration:none;
  font-weight:900;
  font-size:.92rem;
}
nav a:hover{color:var(--lime)}

main{position:relative;z-index:1}

.hero{
  min-height:calc(88vh - 89px);
  display:grid;
  place-items:center;
  text-align:center;
  padding:clamp(42px,6vw,74px) clamp(18px,5vw,72px);
}

.hero-mark{
  width:min(470px,78vw);
  margin:0 auto clamp(20px,4vw,34px);
  position:relative;
}

.hero-mark::before{
  content:"";
  position:absolute;
  inset:12%;
  background:var(--lime);
  opacity:.18;
  filter:blur(72px);
  z-index:-1;
}

.hero-mark img{
  width:100%;
  display:block;
  filter:
    drop-shadow(0 0 26px rgba(183,240,0,.22))
    drop-shadow(0 38px 58px rgba(0,0,0,.58));
}

.eyebrow{
  margin:0 0 14px;
  color:var(--lime);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:950;
  font-size:.78rem;
  text-shadow:0 0 16px rgba(183,240,0,.24);
}

h1,h2{
  margin:0;
  font-family:Anton,sans-serif;
  line-height:.9;
  letter-spacing:.01em;
}

h1{
  font-size:clamp(4rem,11vw,9rem);
  max-width:1000px;
  margin-inline:auto;
}

h2{
  font-size:clamp(3.2rem,8vw,6.4rem);
}

.hero-copy p:not(.eyebrow){
  max-width:690px;
  margin:18px auto 0;
  color:var(--muted);
  line-height:1.7;
  font-size:clamp(1.05rem,1.45vw,1.22rem);
}

.hero-actions{
  margin:26px 0 16px;
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}

.button,
.postcode-line button,
.booking-form button{
  border:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:0 26px;
  border-radius:999px;
  font-weight:950;
  text-decoration:none;
  cursor:pointer;
  transition:transform .24s ease, box-shadow .24s ease, background-color .24s ease;
}

.primary,
.postcode-line button,
.booking-form button{
  color:#101010;
  background:var(--lime);
  box-shadow:0 18px 40px rgba(183,240,0,.23),0 0 26px rgba(183,240,0,.13);
}

.secondary{
  color:white;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.045);
}

.button:hover,
.postcode-line button:hover,
.booking-form button:hover{
  transform:translateY(-3px);
}

.rating{
  color:var(--lime);
  font-weight:950;
  letter-spacing:.08em;
}
.rating span{
  color:var(--muted);
  letter-spacing:0;
  font-weight:800;
  margin-left:8px;
}

.coverage,
.quote,
.process,
.reviews,
.book{
  padding:clamp(56px,7vw,96px) clamp(18px,5vw,72px);
}

.section-title{
  max-width:860px;
  margin:0 auto 26px;
  text-align:center;
}

.section-title p:not(.eyebrow){
  color:var(--muted);
  line-height:1.7;
  font-size:1.05rem;
}

.postcode-form{
  max-width:760px;
  margin:0 auto;
}

.postcode-form label{
  display:block;
  color:rgba(255,255,255,.82);
  font-weight:950;
  margin:0 0 10px;
}

.postcode-line{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
}

input,select{
  width:100%;
  min-height:56px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(183,240,0,.20);
  background:rgba(0,0,0,.20);
  color:white;
  font:inherit;
  outline:none;
  box-shadow:inset 0 0 22px rgba(183,240,0,.025);
}

select{appearance:auto}

input:focus,select:focus{
  border-color:var(--lime);
  box-shadow:0 0 0 4px rgba(183,240,0,.12),0 0 28px rgba(183,240,0,.12);
}

.result{
  margin:16px auto 0;
  max-width:620px;
  border-radius:22px;
  overflow:hidden;
  max-height:0;
  transition:max-height .32s ease, padding .32s ease;
}

.result.show{
  max-height:160px;
  padding:18px 20px;
  background:rgba(183,240,0,.08);
  border:1px solid rgba(183,240,0,.18);
  color:rgba(255,255,255,.84);
}

.result strong{
  display:block;
  color:white;
  margin-bottom:4px;
}

.quote-card,
.book-card{
  width:min(100%,980px);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
  padding:clamp(24px,4vw,44px);
  border-radius:36px;
  background:
    linear-gradient(145deg, rgba(183,240,0,.055), rgba(255,255,255,.035)),
    rgba(13,16,10,.74);
  border:1px solid rgba(183,240,0,.20);
  box-shadow:0 34px 100px rgba(0,0,0,.42),0 0 42px rgba(183,240,0,.07);
  backdrop-filter:blur(18px);
}

.quote-card{
  grid-template-columns:1fr minmax(300px,390px);
  align-items:end;
}

.quote-card > div:first-child{
  grid-column:1 / -1;
  text-align:center;
}

.muted{
  color:var(--muted);
  line-height:1.7;
}

.quote-controls{
  display:grid;
  grid-template-columns:repeat(2, minmax(160px,1fr));
  gap:14px;
}

.quote-controls label{
  color:rgba(255,255,255,.78);
  font-weight:900;
}

.quote-controls select{
  margin-top:8px;
}

.tick{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:10px;
}
.tick input{
  width:auto;
  min-height:auto;
}

.price-panel{
  min-height:260px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:6px;
  text-align:center;
  border-radius:32px;
  background:radial-gradient(circle at 50% 0%, rgba(183,240,0,.09), transparent 70%), #050505;
  border:1px solid rgba(183,240,0,.24);
  box-shadow:inset 0 0 34px rgba(183,240,0,.045),0 0 38px rgba(183,240,0,.08);
}

.price-panel span,
.price-panel small{
  color:var(--muted);
  font-weight:900;
}

.price-panel strong{
  color:var(--lime);
  font-family:Anton,sans-serif;
  font-size:clamp(5rem,10vw,8rem);
  line-height:.86;
  text-shadow:0 0 22px rgba(183,240,0,.34);
}

.price-panel .button{
  margin-top:14px;
}

.timeline{
  max-width:1060px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  position:relative;
}

.timeline::before{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  top:39px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(183,240,0,.45), transparent);
  box-shadow:0 0 20px rgba(183,240,0,.18);
}

.timeline article{
  text-align:center;
  position:relative;
}

.timeline span{
  width:72px;
  height:72px;
  margin:0 auto 18px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#080a06;
  border:1px solid rgba(183,240,0,.30);
  color:var(--lime);
  font-family:Anton,sans-serif;
  font-size:1.6rem;
  box-shadow:0 0 0 8px rgba(183,240,0,.035),0 0 30px rgba(183,240,0,.12);
}

.timeline h3{
  margin:0 0 10px;
  font-size:1.2rem;
}

.timeline p{
  margin:0 auto;
  max-width:220px;
  color:var(--muted);
  line-height:1.6;
}

.review-grid{
  width:min(100%,1080px);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  align-items:start;
}

.review-grid blockquote{
  margin:0;
  padding:22px;
  border-radius:30px;
  background:linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.025));
  border:1px solid rgba(183,240,0,.16);
  box-shadow:0 24px 70px rgba(0,0,0,.32),0 0 28px rgba(183,240,0,.045);
}

.review-grid blockquote:nth-child(2){margin-top:18px}
.review-grid blockquote:nth-child(3){margin-top:6px}

.review-grid span{
  color:var(--lime);
  font-weight:950;
  letter-spacing:.08em;
}

.review-grid p{
  color:rgba(255,255,255,.84);
  line-height:1.6;
  font-size:1.05rem;
}

.review-grid cite{
  color:var(--muted);
  font-style:normal;
  font-weight:900;
}

.book-card{
  grid-template-columns:1fr minmax(300px,420px);
  align-items:center;
}

.booking-form{
  display:grid;
  gap:12px;
}

.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .72s ease, transform .72s ease;
}
.reveal.visible{
  opacity:1;
  transform:none;
}

@media(max-width:900px){
  nav{display:none}
  .quote-card,.book-card{grid-template-columns:1fr}
  .quote-card > div:first-child{text-align:left}
  .timeline{grid-template-columns:1fr}
  .timeline::before{display:none}
  .timeline article{
    display:grid;
    grid-template-columns:78px 1fr;
    gap:0 20px;
    text-align:left;
    align-items:start;
  }
  .timeline span{grid-row:1 / 3;margin:0}
  .timeline p{margin:0;max-width:none}
  .review-grid{grid-template-columns:1fr}
  .review-grid blockquote,
  .review-grid blockquote:nth-child(2),
  .review-grid blockquote:nth-child(3){margin-top:0}
}

@media(max-width:560px){
  .postcode-line{grid-template-columns:1fr}
  .quote-controls{grid-template-columns:1fr}
  h1{font-size:clamp(3.8rem,17vw,5.8rem)}
}


/* ================================
   Made by Fox Design System v2.1 Clean
   Fully clickable footer + dock
================================ */

.mbf-v2-footer,
.mbf-v2-footer *,
.mbf-v2-dock,
.mbf-v2-dock * {
  box-sizing: border-box;
}

.mbf-v2-footer,
.mbf-v2-dock {
  font-family: "Montserrat", "Outfit", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
}

/* Footer */

.mbf-v2-footer {
  display: block;
  width: 100%;
  background: #101010;
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 82px clamp(18px, 5vw, 72px) 28px;
  color: inherit !important;
  text-decoration: none !important;
}

.mbf-v2-footer:visited,
.mbf-v2-footer:hover,
.mbf-v2-footer:focus,
.mbf-v2-footer:active {
  color: inherit !important;
  text-decoration: none !important;
}

.mbf-v2-footer-card {
  width: min(100%, 940px);
  margin: 0 auto;
  background: #171717;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 22px;
  padding: 24px 42px;
  display: grid;
  grid-template-columns: 76px 1fr;
  align-items: center;
  column-gap: 44px;
  box-shadow: 0 20px 60px rgba(0,0,0,.18);
  transition: transform .26s ease, box-shadow .26s ease, background-color .26s ease, border-color .26s ease;
}

.mbf-v2-footer:hover .mbf-v2-footer-card {
  transform: translateY(-3px);
  background: #191919;
  border-color: rgba(255,139,44,.34);
  box-shadow: 0 26px 76px rgba(0,0,0,.24), 0 0 42px rgba(255,139,44,.12);
}

.mbf-v2-footer-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  transition: transform .24s ease;
}

.mbf-v2-footer-icon img {
  width: 76px !important;
  height: 76px !important;
  max-width: 76px !important;
  max-height: 76px !important;
  object-fit: contain;
  display: block;
  transition: filter .26s ease;
}

.mbf-v2-footer:hover .mbf-v2-footer-icon {
  transform: translateY(-2px) scale(1.04);
}

.mbf-v2-footer:hover .mbf-v2-footer-icon img { filter: none !important; }

.mbf-v2-footer-copy {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.mbf-v2-footer-copy strong {
  color: #ffffff;
  font-size: clamp(1.42rem, 2vw, 1.82rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.055em;
}

.mbf-v2-footer-copy span {
  color: rgba(255,255,255,.78);
  font-size: clamp(1rem, 1.18vw, 1.1rem);
  line-height: 1.45;
  font-weight: 500;
}

/* Floating Dock */

.mbf-v2-dock {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%) translateY(120px);
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(23,23,23,.9);
  backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  padding: 10px 22px 10px 14px;
  box-shadow: 0 20px 50px rgba(0,0,0,.28);
  z-index: 9999;
  color: inherit !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: transform .35s ease, opacity .28s ease, border-color .28s ease, box-shadow .28s ease, background-color .28s ease;
}

.mbf-v2-dock:visited,
.mbf-v2-dock:hover,
.mbf-v2-dock:focus,
.mbf-v2-dock:active {
  color: inherit !important;
  text-decoration: none !important;
}

.mbf-v2-dock.show {
  transform: translateX(-50%) translateY(0);
}

.mbf-v2-dock.hide {
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(120px);
}

.mbf-v2-dock.show:hover {
  background: rgba(25,25,25,.94);
  border-color: rgba(255,139,44,.34);
  box-shadow: 0 24px 62px rgba(0,0,0,.34), 0 0 34px rgba(255,139,44,.16);
  transform: translateX(-50%) translateY(-2px);
}

.mbf-v2-dock-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  transition: transform .24s ease;
}

.mbf-v2-dock-icon img {
  width: 38px !important;
  height: 38px !important;
  max-width: 38px !important;
  max-height: 38px !important;
  object-fit: contain;
  display: block;
  transition: filter .24s ease;
}

.mbf-v2-dock:hover .mbf-v2-dock-icon {
  transform: translateY(-1px) scale(1.05);
}

.mbf-v2-dock:hover .mbf-v2-dock-icon img { filter: none !important; }

.mbf-v2-dock-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  min-width: 128px;
}

.mbf-v2-dock-copy strong {
  color: #fff;
  font-size: .92rem;
  font-weight: 900;
}

.mbf-v2-dock-copy span {
  color: rgba(255,255,255,.65);
  font-size: .74rem;
  font-weight: 700;
}

@media(max-width:760px){
  .mbf-v2-footer {
    padding: 70px 22px 94px;
  }

  .mbf-v2-footer-card {
    grid-template-columns: 64px 1fr;
    gap: 18px 22px;
    padding: 24px;
    border-radius: 20px;
  }

  .mbf-v2-footer-icon,
  .mbf-v2-footer-icon img {
    width: 64px !important;
    height: 64px !important;
    max-width: 64px !important;
    max-height: 64px !important;
  }

  .mbf-v2-dock {
    left: 16px;
    right: 16px;
    transform: translateY(120px);
    width: auto;
    justify-content: center;
  }

  .mbf-v2-dock.show {
    transform: translateY(0);
  }

  .mbf-v2-dock.show:hover {
    transform: translateY(-2px);
  }

  .mbf-v2-dock.hide {
    transform: translateY(120px);
    opacity: 0;
  }
}

@media(max-width:430px){
  .mbf-v2-footer-card {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
}


/* Made by Fox no-purple hover lock */
.mbf-v2-footer,
.mbf-v2-footer:link,
.mbf-v2-footer:visited,
.mbf-v2-footer:hover,
.mbf-v2-footer:active,
.mbf-v2-footer:focus,
.mbf-v2-dock,
.mbf-v2-dock:link,
.mbf-v2-dock:visited,
.mbf-v2-dock:hover,
.mbf-v2-dock:active,
.mbf-v2-dock:focus {
  color: #ffffff !important;
  text-decoration: none !important;
  outline-color: #ff8b2c !important;
  -webkit-tap-highlight-color: transparent;
}

.mbf-v2-footer *,
.mbf-v2-footer:link *,
.mbf-v2-footer:visited *,
.mbf-v2-footer:hover *,
.mbf-v2-footer:active *,
.mbf-v2-footer:focus *,
.mbf-v2-dock *,
.mbf-v2-dock:link *,
.mbf-v2-dock:visited *,
.mbf-v2-dock:hover *,
.mbf-v2-dock:active *,
.mbf-v2-dock:focus * {
  text-decoration: none !important;
}

.mbf-v2-footer-copy strong,
.mbf-v2-footer:hover .mbf-v2-footer-copy strong,
.mbf-v2-footer:visited .mbf-v2-footer-copy strong,
.mbf-v2-dock-copy strong,
.mbf-v2-dock:hover .mbf-v2-dock-copy strong,
.mbf-v2-dock:visited .mbf-v2-dock-copy strong {
  color: #ffffff !important;
}

.mbf-v2-footer-copy span,
.mbf-v2-footer:hover .mbf-v2-footer-copy span,
.mbf-v2-footer:visited .mbf-v2-footer-copy span {
  color: rgba(255,255,255,.78) !important;
}

.mbf-v2-dock-copy span,
.mbf-v2-dock:hover .mbf-v2-dock-copy span,
.mbf-v2-dock:visited .mbf-v2-dock-copy span {
  color: rgba(255,255,255,.65) !important;
}

.mbf-v2-footer-card,
.mbf-v2-dock {
  transition-property: transform, box-shadow, background-color, border-color, opacity !important;
}


/* Made by Fox v2.2 glow-only hover — no colour flash */
.mbf-v2-footer-icon img,
.mbf-v2-dock-icon img,
.mbf-v2-footer:hover .mbf-v2-footer-icon img,
.mbf-v2-dock:hover .mbf-v2-dock-icon img,
.mbf-v2-footer:visited .mbf-v2-footer-icon img,
.mbf-v2-dock:visited .mbf-v2-dock-icon img {
  filter: none !important;
}

.mbf-v2-footer-card {
  transition: transform .26s ease, box-shadow .26s ease, background-color .26s ease, border-color .26s ease !important;
}

.mbf-v2-footer:hover .mbf-v2-footer-card {
  transform: translateY(-3px) !important;
  background: #191919 !important;
  border-color: rgba(255,139,44,.42) !important;
  box-shadow:
    0 26px 76px rgba(0,0,0,.24),
    0 0 0 1px rgba(255,139,44,.14),
    0 0 34px rgba(255,139,44,.13) !important;
}

.mbf-v2-dock {
  transition: transform .35s ease, opacity .28s ease, border-color .28s ease, box-shadow .28s ease, background-color .28s ease !important;
}

.mbf-v2-dock.show:hover {
  background: rgba(25,25,25,.94) !important;
  border-color: rgba(255,139,44,.42) !important;
  box-shadow:
    0 24px 62px rgba(0,0,0,.34),
    0 0 0 1px rgba(255,139,44,.14),
    0 0 30px rgba(255,139,44,.14) !important;
  transform: translateX(-50%) translateY(-2px) !important;
}

.mbf-v2-footer:hover .mbf-v2-footer-icon,
.mbf-v2-dock:hover .mbf-v2-dock-icon {
  transform: translateY(-1px) scale(1.03) !important;
}

.mbf-v2-footer,
.mbf-v2-footer *,
.mbf-v2-dock,
.mbf-v2-dock * {
  color: inherit;
  text-decoration: none !important;
}

.mbf-v2-footer-copy strong,
.mbf-v2-dock-copy strong {
  color: #ffffff !important;
}

.mbf-v2-footer-copy span {
  color: rgba(255,255,255,.78) !important;
}

.mbf-v2-dock-copy span {
  color: rgba(255,255,255,.65) !important;
}

@media(max-width:760px){
  .mbf-v2-dock.show:hover {
    transform: translateY(-2px) !important;
  }
}


/* Made by Fox v2.1 final polish */
.mbf-v2-dock {
  padding: 8px 18px 8px 12px !important;
  gap: 13px !important;
  bottom: 20px !important;
}

.mbf-v2-dock-icon,
.mbf-v2-dock-icon img {
  width: 34px !important;
  height: 34px !important;
  max-width: 34px !important;
  max-height: 34px !important;
}

.mbf-v2-dock-copy {
  min-width: 118px !important;
}

.mbf-v2-dock-copy strong {
  font-size: .84rem !important;
}

.mbf-v2-dock-copy span {
  font-size: .68rem !important;
}

.mbf-v2-footer {
  background:
    radial-gradient(circle at 50% 0%, rgba(255,139,44,.045), transparent 34rem),
    #0d0d0d !important;
}

.mbf-v2-footer-card {
  border-radius: 24px !important;
  box-shadow:
    0 24px 76px rgba(0,0,0,.24),
    0 1px 0 rgba(255,255,255,.04) inset !important;
}

.mbf-v2-footer:hover .mbf-v2-footer-card {
  box-shadow:
    0 32px 88px rgba(0,0,0,.30),
    0 0 0 1px rgba(255,139,44,.15),
    0 0 38px rgba(255,139,44,.14),
    0 1px 0 rgba(255,255,255,.05) inset !important;
}

@media(max-width:760px){
  .mbf-v2-dock {
    left: 18px !important;
    right: 18px !important;
    bottom: 16px !important;
    padding: 9px 14px !important;
  }
}


/* Bostin' Bins lime polish */
:root {
  --lime-glow: rgba(183,240,0,.28);
  --lime-glow-soft: rgba(183,240,0,.14);
}

.brand img {
  background: transparent !important;
  border-radius: 0 !important;
  filter:
    drop-shadow(0 0 10px rgba(183,240,0,.30))
    drop-shadow(0 12px 22px rgba(0,0,0,.42)) !important;
}

.hero-logo img {
  background: transparent !important;
  filter:
    drop-shadow(0 0 24px rgba(183,240,0,.24))
    drop-shadow(0 34px 58px rgba(0,0,0,.62)) !important;
}

.hero-copy h1,
.section-heading h2 {
  text-shadow:
    0 0 22px rgba(183,240,0,.08),
    0 2px 0 rgba(0,0,0,.35);
}

.postcode-card,
.quote-grid,
.booking,
.steps article,
.review-grid blockquote {
  border-color: rgba(183,240,0,.26) !important;
  box-shadow:
    0 24px 70px rgba(0,0,0,.38),
    0 0 0 1px rgba(183,240,0,.08),
    0 0 34px rgba(183,240,0,.08) !important;
}

.postcode-card:hover,
.quote-grid:hover,
.booking:hover,
.steps article:hover,
.review-grid blockquote:hover {
  border-color: rgba(183,240,0,.42) !important;
  box-shadow:
    0 28px 82px rgba(0,0,0,.44),
    0 0 0 1px rgba(183,240,0,.14),
    0 0 44px rgba(183,240,0,.13) !important;
}

input,
select {
  border-color: rgba(183,240,0,.22) !important;
  box-shadow: inset 0 0 22px rgba(183,240,0,.025);
}

input:focus,
select:focus {
  border-color: var(--lime) !important;
  box-shadow:
    0 0 0 4px rgba(183,240,0,.14),
    0 0 28px rgba(183,240,0,.18) !important;
}

.button.primary,
.postcode-row button,
.booking-card button {
  box-shadow:
    0 18px 40px rgba(183,240,0,.24),
    0 0 24px rgba(183,240,0,.18) !important;
}

.button.primary:hover,
.postcode-row button:hover,
.booking-card button:hover {
  box-shadow:
    0 22px 48px rgba(183,240,0,.30),
    0 0 34px rgba(183,240,0,.25) !important;
}

.quote-total {
  border-color: rgba(183,240,0,.32) !important;
  box-shadow:
    inset 0 0 34px rgba(183,240,0,.045),
    0 0 38px rgba(183,240,0,.10) !important;
}

.quote-total strong {
  text-shadow:
    0 0 18px rgba(183,240,0,.36),
    0 0 34px rgba(183,240,0,.18);
}

.eyebrow {
  text-shadow: 0 0 14px rgba(183,240,0,.28);
}

.trust-row span {
  box-shadow: 0 0 22px rgba(183,240,0,.08);
}

/* Make the logo areas breathe better */
.hero-logo {
  max-width: 540px;
  margin-inline: auto;
}

.brand img {
  width: 62px !important;
  height: 62px !important;
  object-fit: contain !important;
}

@media(max-width:900px){
  .brand img {
    width: 54px !important;
    height: 54px !important;
  }
}


/* Postcode checker character moment */
.postcode-checker-card{
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(220px,300px);
  gap:clamp(18px,2.8vw,34px);
  align-items:center;
  padding:clamp(20px,2.6vw,30px);
  border:1px solid rgba(183,240,0,.16);
  border-radius:34px;
  background:
    radial-gradient(circle at 74% 50%,rgba(183,240,0,.10),transparent 32%),
    linear-gradient(135deg,rgba(183,240,0,.075),rgba(255,255,255,.025));
  box-shadow:0 26px 80px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.06);
  overflow:hidden;
}

.postcode-checker-card .postcode-form{
  max-width:none;
  margin:0;
  position:relative;
  z-index:2;
}

.postcode-mascot{
  min-height:190px;
  display:grid;
  align-content:center;
  gap:18px;
  justify-items:center;
  position:relative;
}

.speech-bubble{
  position:relative;
  width:min(100%,310px);
  padding:18px 20px;
  border-radius:24px;
  background:rgba(0,0,0,.30);
  border:1px solid rgba(183,240,0,.22);
  box-shadow:0 18px 40px rgba(0,0,0,.22), 0 0 30px rgba(183,240,0,.08);
  color:white;
  text-align:center;
  z-index:2;
  transition:transform .32s ease, box-shadow .32s ease, border-color .32s ease;
}

.speech-bubble::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-10px;
  width:20px;
  height:20px;
  background:inherit;
  border-right:1px solid rgba(183,240,0,.22);
  border-bottom:1px solid rgba(183,240,0,.22);
  transform:translateX(-50%) rotate(45deg);
}

.postcode-mascot.is-idle .speech-bubble::after{
  display:none;
}

.speech-bubble strong,
.speech-bubble span{
  display:block;
}

.speech-bubble strong{
  font-size:1.05rem;
  line-height:1.1;
}

.speech-bubble span{
  margin-top:6px;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.45;
}

.bin-stage{
  position:relative;
  width:min(100%,190px);
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  border-radius:24px;
  background:radial-gradient(circle at 50% 58%,rgba(183,240,0,.14),rgba(183,240,0,.04) 38%,transparent 70%);
  opacity:0;
  transform:translateY(14px) scale(.96);
  pointer-events:none;
  transition:opacity .34s ease, transform .34s ease;
}

.postcode-mascot.show-bin .bin-stage,
.postcode-mascot.is-checking .bin-stage{
  opacity:1;
  transform:translateY(0) scale(1);
}

.bin-stage::before,
.bin-stage::after{
  content:"✦";
  position:absolute;
  color:var(--lime);
  text-shadow:0 0 18px rgba(183,240,0,.85);
  animation:sparklePulse 2.2s ease-in-out infinite;
  opacity:0;
}

.postcode-mascot.is-covered .bin-stage::before,
.postcode-mascot.is-covered .bin-stage::after,
.postcode-mascot.is-not-covered .bin-stage::before,
.postcode-mascot.is-not-covered .bin-stage::after{
  opacity:1;
}

.bin-stage::before{
  left:3%;
  top:34%;
  font-size:2rem;
}

.bin-stage::after{
  right:4%;
  bottom:22%;
  font-size:1.35rem;
  animation-delay:.65s;
}

.bin-character{
  position:absolute;
  width:86%;
  opacity:0;
  transform:translateY(14px) scale(.92);
  transition:opacity .34s ease, transform .34s ease, filter .34s ease;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.42));
}

.bin-character img{
  display:block;
  width:100%;
  height:auto;
}

.postcode-mascot.is-covered.show-bin .happy-bin,
.postcode-mascot.is-not-covered.show-bin .sad-bin{
  opacity:1;
  transform:translateY(0) scale(1);
}

.postcode-mascot.is-checking .happy-bin{
  opacity:.55;
  transform:translateY(0) scale(.96);
  animation:checkingWiggle .45s ease-in-out infinite alternate;
}

.postcode-mascot.is-idle .bin-stage{
  display:none;
}

.postcode-mascot.is-checking .speech-bubble{
  animation:checkingBubble .55s ease-in-out infinite alternate;
}

.postcode-mascot.is-covered .speech-bubble,
.postcode-mascot.is-not-covered .speech-bubble{
  opacity:0;
  transform:translateY(10px) scale(.96);
}

.postcode-mascot.show-bubble .speech-bubble{
  opacity:1;
  transform:translateY(2px) scale(1);
}

.postcode-mascot.is-covered.show-bubble .speech-bubble{
  border-color:rgba(183,240,0,.46);
  box-shadow:0 20px 48px rgba(0,0,0,.28), 0 0 36px rgba(183,240,0,.18);
}

.postcode-mascot.is-not-covered.show-bubble .speech-bubble{
  border-color:rgba(255,255,255,.22);
}

.postcode-mascot.is-covered,
.postcode-mascot.is-not-covered,
.postcode-mascot.is-checking{
  min-height:270px;
}


.collection-card{
  grid-column:1 / -1;
  width:100%;
  display:grid;
  grid-template-columns:minmax(220px,.9fr) minmax(360px,1.4fr);
  gap:18px;
  align-items:center;
  padding:18px 20px;
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(183,240,0,.035));
  border:1px solid rgba(183,240,0,.20);
  box-shadow:0 20px 45px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06);
  opacity:0;
  transform:translateY(16px) scale(.98);
  max-height:0;
  overflow:hidden;
  pointer-events:none;
  transition:opacity .34s ease, transform .34s ease, max-height .34s ease, margin-top .34s ease;
}

.collection-card.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  max-height:180px;
  pointer-events:auto;
  margin-top:-6px;
}

.collection-card-header{
  min-width:0;
}

.collection-title{
  margin:0 0 6px;
  font-weight:900;
  color:white;
  letter-spacing:-.02em;
  font-size:1.05rem;
}

.collection-card-header p:last-child{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.45;
}

.collection-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.collection-grid div{
  padding:13px 14px;
  border-radius:18px;
  background:rgba(0,0,0,.24);
  border:1px solid rgba(255,255,255,.08);
}

.collection-grid span{
  display:block;
  color:var(--muted);
  font-size:.74rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:5px;
}

.collection-grid strong{
  display:block;
  color:var(--lime);
  font-size:1.03rem;
}

@keyframes sparklePulse{
  0%,100%{opacity:.35; transform:scale(.85) rotate(0deg)}
  50%{opacity:1; transform:scale(1.15) rotate(8deg)}
}

@keyframes checkingWiggle{
  from{transform:translateY(0) rotate(-1deg) scale(.96)}
  to{transform:translateY(-3px) rotate(1deg) scale(.99)}
}

@keyframes buttonPulse{
  from{box-shadow:0 16px 34px rgba(183,240,0,.14); transform:translateY(0) scale(1)}
  to{box-shadow:0 20px 44px rgba(183,240,0,.28); transform:translateY(-1px) scale(1.015)}
}

@keyframes checkingBubble{
  from{box-shadow:0 18px 40px rgba(0,0,0,.22),0 0 18px rgba(183,240,0,.06)}
  to{box-shadow:0 20px 48px rgba(0,0,0,.24),0 0 34px rgba(183,240,0,.16)}
}

@media (max-width:820px){
  .postcode-checker-card{
    grid-template-columns:1fr;
  }
  .postcode-mascot{
    min-height:auto;
  }
}

@media (max-width: 760px){
  .collection-card{
    grid-template-columns:1fr;
    gap:12px;
    max-height:0;
  }
  .collection-card.is-visible{
    max-height:360px;
  }
  .collection-grid{
    grid-template-columns:1fr;
  }
}

.postcode-line button:disabled,.postcode-row button:disabled{cursor:wait;opacity:.9}.postcode-line button.is-checking,.postcode-row button.is-checking{animation:buttonPulse .55s ease-in-out infinite alternate;}


/* Final spacing polish — tighter vertical rhythm */
@media (min-width: 901px){
  .quote,
  .process,
  .reviews,
  .book{ scroll-margin-top: 92px; }
  .coverage{ padding-bottom: clamp(48px,6vw,82px); }
  .quote{ padding-top: clamp(48px,6vw,82px); }
}
