
:root{
  --spt-red:#d71920;
  --spt-red-dark:#aa101b;
  --spt-dark:#171717;
  --spt-text:#232323;
  --spt-muted:#656565;
  --spt-soft:#f5f5f5;
  --spt-panel:#fbfbfb;
  --spt-line:#e7e7e7;
  --spt-radius:24px;
  --spt-shadow:0 16px 42px rgba(0,0,0,.08);
}

/* GeneratePress cleanup */
body.home .site.grid-container{max-width:100%}
body.home .site-content{padding:0}
body.home .content-area{width:100%}
body.home .site-main{margin:0}
body.home .inside-article{padding:0}
body.home .entry-header{display:none}
body.home .site-footer{display:none}

/* Header */
body.home .site-header{
  background:#fff;
  border-bottom:1px solid #ececec;
}
body.home .site-header .inside-header{
  width:min(1240px,calc(100% - 44px));
  margin:0 auto;
  padding:10px 0;
  display:flex;
  align-items:center;
  gap:18px;
}
body.home .site-branding{
  position:relative;
  flex:0 0 250px;
  min-height:52px;
  padding-left:58px;
  display:flex;
  align-items:center;
}
body.home .site-branding::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:46px;
  height:46px;
  transform:translateY(-50%);
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M8 28 32 8l24 20v28H8z' fill='none' stroke='%23d71920' stroke-width='5' stroke-linejoin='round'/%3E%3Cpath d='M26 23v20l17-10z' fill='%23d71920'/%3E%3C/svg%3E");
}
body.home .site-title{
  margin:0;
  font-size:25px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.02em;
}
body.home .site-description{display:none}
body.home .main-navigation{
  margin-left:auto;
  flex:1 1 auto;
}
body.home .main-navigation .inside-navigation{justify-content:flex-end}
body.home .main-navigation .main-nav>ul{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
}
body.home .main-navigation .main-nav ul li a{
  padding:9px 9px;
  white-space:nowrap;
  font-size:13px;
  font-weight:600;
}
.spt-header-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:14px;
  padding:11px 16px;
  border-radius:9px;
  background:var(--spt-red);
  color:#fff!important;
  text-decoration:none!important;
  font-weight:800;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(215,25,32,.18);
}

/* Main */
.spt-home{
  color:var(--spt-text);
  font-size:clamp(17px,1vw,19px);
  line-height:1.54;
}
.spt-home *{box-sizing:border-box}
.spt-shell{
  width:min(1240px,calc(100% - 44px));
  margin:0 auto;
}
.spt-section{padding:10px 0}
.spt-home h1,.spt-home h2{
  margin:0 0 12px;
  line-height:1.01;
  letter-spacing:-.035em;
}
.spt-home h1{font-size:clamp(50px,5.8vw,82px)}
.spt-home h1 span{color:var(--spt-red)}
.spt-home h2{font-size:clamp(34px,3.65vw,50px)}
.spt-home p{max-width:780px}
.spt-eyebrow,.spt-kicker{
  color:var(--spt-red);
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:.76em;
  font-weight:800;
}
.spt-lead{
  font-size:clamp(20px,1.6vw,24px);
  line-height:1.42;
}

/* Hero: denser and more visual */
.spt-hero{
  padding-top:22px;
  padding-bottom:10px;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 44%,rgba(255,255,255,.76) 67%,rgba(255,255,255,.52) 100%),
    radial-gradient(circle at 84% 18%,rgba(215,25,32,.17),transparent 31%),
    linear-gradient(#fff,#f7f7f7);
}
.spt-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(610px,1.18fr);
  grid-template-areas:"copy media";
  gap:34px;
  align-items:center;
}
.spt-hero-copy{grid-area:copy}
.spt-hero-media{
  grid-area:media;
  position:relative;
  min-height:330px;
}
.spt-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
.spt-pills span{
  border:1px solid var(--spt-line);
  background:#fff;
  padding:7px 11px;
  border-radius:999px;
  font-weight:700;
  font-size:.78em;
}
.spt-device{
  position:absolute;
  filter:drop-shadow(0 20px 30px rgba(0,0,0,.16));
}
.spt-device-laptop{
  width:99%;
  right:1%;
  top:0;
}
.spt-device-phone{
  width:30%;
  right:-2%;
  bottom:-2%;
}

/* Dense service panels */
.spt-section:not(.spt-hero):not(.spt-benefits):not(.spt-cta){
  background:#f2f2f2;
}
.spt-service-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(600px,1.18fr);
  grid-template-areas:"copy media";
  gap:34px;
  align-items:center;
  background:linear-gradient(180deg,#fff,#fafafa);
  border:1px solid var(--spt-line);
  border-radius:var(--spt-radius);
  padding:26px;
  box-shadow:var(--spt-shadow);
}
.spt-service-grid-reverse{
  grid-template-columns:minmax(600px,1.18fr) minmax(0,.82fr);
  grid-template-areas:"media copy";
}
.spt-service-copy{grid-area:copy;min-width:0}
.spt-service-media{grid-area:media;min-width:0}
.spt-service-copy p{max-width:none}
.spt-service-copy h2{max-width:600px}

.spt-video{
  position:relative;
  width:100%;
  border:0;
  padding:0;
  overflow:hidden;
  background:#222 center/cover no-repeat;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:10px;
  color:#fff;
  cursor:pointer;
  box-shadow:0 16px 38px rgba(0,0,0,.13);
}
.spt-video-tour{aspect-ratio:16/9}
.spt-video-social{aspect-ratio:4/5}
.spt-video-placeholder{
  cursor:default;
  background:
    radial-gradient(circle at 30% 25%,rgba(255,255,255,.08),transparent 26%),
    linear-gradient(135deg,var(--spt-red),#28181a 76%);
}
.spt-video-placeholder small{
  opacity:.78;
  text-align:center;
  max-width:80%;
  font-size:.82em;
}
.spt-play{
  width:58px;
  height:58px;
  border-radius:50%;
  background:#fff;
  color:var(--spt-red);
  display:grid;
  place-items:center;
  font-size:22px;
  padding-left:4px;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
.spt-video-label{
  position:absolute;
  left:12px;
  bottom:10px;
  background:rgba(0,0,0,.66);
  padding:6px 9px;
  border-radius:8px;
  font-size:13px;
  font-weight:800;
}
.spt-social-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:20px!important;
  width:100%!important;
  align-items:start;
}
.spt-social-grid .spt-video{
  width:100%!important;
  margin:0!important;
  min-width:0;
}
.spt-checks{
  list-style:none;
  padding:0;
  margin:16px 0 20px;
}
.spt-checks li{
  position:relative;
  padding-left:27px;
  margin:6px 0;
}
.spt-checks li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--spt-red);
  font-weight:900;
}
.spt-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--spt-red);
  color:#fff!important;
  text-decoration:none!important;
  border-radius:999px;
  padding:12px 20px;
  font-weight:800;
  box-shadow:0 9px 22px rgba(215,25,32,.18);
}

/* Posting visual */
.spt-posting-art{
  min-height:270px;
  border-radius:20px;
  background:
    linear-gradient(90deg,rgba(20,20,20,.96),rgba(36,36,36,.90)),
    radial-gradient(circle at 70% 25%,rgba(215,25,32,.18),transparent 34%);
  display:grid;
  place-items:center;
  box-shadow:0 18px 44px rgba(0,0,0,.14);
}
.spt-posting-calendar{
  width:min(410px,82%);
  background:#fff;
  border-radius:22px;
  padding:32px;
  display:grid;
  gap:5px;
  box-shadow:0 20px 46px rgba(0,0,0,.25);
}
.spt-posting-dot{
  width:12px;height:12px;border-radius:50%;background:var(--spt-red);margin-bottom:10px;
}
.spt-posting-calendar strong{font-size:1.35em}
.spt-posting-calendar small{color:var(--spt-muted)}

/* Benefits / CTA / Footer */
.spt-benefits{
  padding:16px 0;
  background:#fff;
  border-top:1px solid var(--spt-line);
  border-bottom:1px solid var(--spt-line);
}
.spt-benefit-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.spt-benefit-grid div{
  padding:6px 12px;
  border-right:1px solid var(--spt-line);
}
.spt-benefit-grid div:last-child{border-right:0}
.spt-benefit-grid strong{display:block;font-size:1.08em;margin-bottom:4px}
.spt-benefit-grid span{color:var(--spt-muted);font-size:.9em}
.spt-cta{
  text-align:center;
  background:linear-gradient(90deg,var(--spt-red),#a90e19);
  color:#fff;
  padding:32px 0;
}
.spt-cta .spt-shell{display:flex;flex-direction:column;align-items:center}
.spt-cta p{margin-bottom:18px}
.spt-button-light{background:#fff;color:var(--spt-red)!important;box-shadow:none}
.spt-footer{background:#171717;color:#fff;padding:30px 0}
.spt-footer-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr;
  gap:34px;
  align-items:start;
}
.spt-footer a{color:#fff;text-decoration:none}
.spt-footer-brand,.spt-footer-links,.spt-footer-legal{display:grid;gap:8px}
.spt-footer-brand strong{font-size:1.28em}
.spt-footer-brand span{color:#bdbdbd;font-size:.9em;max-width:290px}
.spt-footer-links a,.spt-footer-legal a{color:#ddd;font-size:.92em}

/* Responsive */
@media(max-width:1100px){
  .spt-header-cta{display:none}
}
@media(max-width:980px){
  body.home .site-header .inside-header{
    width:min(760px,calc(100% - 30px));
  }
  body.home .site-branding{
    flex:1 1 auto;
    min-height:46px;
  }
  body.home .main-navigation{
    flex:0 0 auto;
    margin-left:auto;
  }
  body.home .main-navigation .main-nav>ul{display:none}
  .spt-shell{width:min(760px,calc(100% - 30px))}
  .spt-hero-grid,
  .spt-service-grid,
  .spt-service-grid-reverse{
    grid-template-columns:1fr;
    grid-template-areas:"copy" "media";
    gap:26px;
  }
  .spt-service-grid{padding:24px}
  .spt-hero-media{min-height:330px}
  .spt-benefit-grid{grid-template-columns:repeat(2,1fr)}
  .spt-footer-grid{grid-template-columns:1fr 1fr}
  .spt-social-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}
@media(max-width:620px){
  .spt-shell{width:calc(100% - 28px)}
  .spt-home{font-size:17px}
  .spt-home h1{font-size:clamp(40px,12vw,54px)}
  .spt-home h2{font-size:clamp(32px,10vw,44px)}
  .spt-section{padding:10px 0}
  .spt-hero{padding-top:22px;padding-bottom:26px}
  .spt-hero-media{min-height:280px}
  .spt-device-laptop{width:94%;right:6%;top:2%}
  .spt-device-phone{width:34%;right:0;bottom:2%}
  .spt-service-grid{padding:20px}
  .spt-social-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .spt-benefit-grid,.spt-footer-grid{grid-template-columns:1fr}
  .spt-benefit-grid div{border-right:0;border-bottom:1px solid var(--spt-line)}
  .spt-benefit-grid div:last-child{border-bottom:0}
  .spt-button{width:100%;justify-content:center}
}


/* 0.1.7: remove unnecessary vertical voids between stacked homepage sections */
.spt-hero + .spt-section{padding-top:10px}
.spt-section:not(.spt-hero):not(.spt-benefits):not(.spt-cta) + 
.spt-section:not(.spt-benefits):not(.spt-cta){
  padding-top:0;
}
.spt-section:not(.spt-hero):not(.spt-benefits):not(.spt-cta){
  padding-bottom:10px;
}
.spt-benefits{
  margin-top:0;
}
.spt-cta{
  margin-top:0;
}

/* Footer: compact link rhythm */
.spt-footer-brand,
.spt-footer-links,
.spt-footer-legal{
  gap:2px !important;
}
.spt-footer-links a,
.spt-footer-legal a{
  line-height:1.25 !important;
  margin:0 !important;
  padding:2px 0 !important;
}
.spt-footer-grid{
  row-gap:16px !important;
}


/* =========================================================
   SPT Site Kit 0.1.10
   Fix the actual regression while retaining the two-column desktop grid.
   ========================================================= */

/* Never override .spt-shell to display:block: service shells ARE the grid. */
body.home .spt-shell{
  width:min(1180px,calc(100% - 48px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Tight section rhythm; no artificial blank bands around the cards. */
body.home .spt-home > .spt-section{
  margin:0 !important;
}
body.home .spt-hero{
  padding-top:24px !important;
  padding-bottom:18px !important;
}
body.home .spt-section:not(.spt-hero):not(.spt-benefits):not(.spt-cta){
  padding-top:8px !important;
  padding-bottom:8px !important;
}
body.home .spt-benefits{
  padding-top:16px !important;
  padding-bottom:16px !important;
}

/* Hero: main video is normal flow so its real height sizes the row;
   phone remains an overlay. */
body.home .spt-hero-media{
  min-height:0 !important;
  height:auto !important;
  position:relative !important;
}
body.home .spt-device-laptop{
  position:relative !important;
  width:88% !important;
  right:auto !important;
  top:auto !important;
  left:auto !important;
  bottom:auto !important;
  margin:0 9% 0 3% !important;
  display:block !important;
}
body.home .spt-device-phone{
  position:absolute !important;
  width:27% !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  left:auto !important;
}

/* Preserve proper centered two-column desktop panels. */
body.home .spt-service-grid{
  display:grid !important;
  grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr) !important;
  grid-template-areas:"copy media" !important;
  width:100% !important;
  min-height:0 !important;
  height:auto !important;
  align-items:start !important;
  gap:30px !important;
  padding:20px !important;
  margin:0 auto !important;
}
body.home .spt-service-grid-reverse{
  display:grid !important;
  grid-template-columns:minmax(480px,1.08fr) minmax(0,.92fr) !important;
  grid-template-areas:"media copy" !important;
}
body.home .spt-service-copy{
  grid-area:copy !important;
  min-height:0 !important;
  height:auto !important;
  align-self:start !important;
}
body.home .spt-service-media{
  grid-area:media !important;
  min-height:0 !important;
  height:auto !important;
  align-self:start !important;
}
body.home .spt-service-copy > :first-child,
body.home .spt-service-media > :first-child{
  margin-top:0 !important;
}
body.home .spt-service-copy > :last-child,
body.home .spt-service-media > :last-child{
  margin-bottom:0 !important;
}

/* Social media examples stay as one compact row on desktop. */
body.home .spt-social-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  margin:0 !important;
  padding:0 !important;
  width:100% !important;
}

/* Posting visual: natural compact height instead of a reserved tall block. */
body.home .spt-posting-art{
  min-height:0 !important;
  height:auto !important;
  padding:24px 0 !important;
  align-self:start !important;
}
body.home .spt-posting-calendar{
  margin:0 auto !important;
  padding:22px !important;
}

/* Compact footer line rhythm. */
body.home .spt-footer-brand,
body.home .spt-footer-links,
body.home .spt-footer-legal{
  gap:0 !important;
}
body.home .spt-footer-links a,
body.home .spt-footer-legal a{
  display:block !important;
  margin:0 !important;
  padding:2px 0 !important;
  line-height:1.25 !important;
}

/* Responsive: only collapse below the intended breakpoint. */
@media(max-width:980px){
  body.home .spt-shell{
    width:min(760px,calc(100% - 30px)) !important;
  }
  body.home .spt-service-grid,
  body.home .spt-service-grid-reverse{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "copy"
      "media" !important;
    gap:22px !important;
  }
  body.home .spt-device-laptop{
    width:92% !important;
    margin:0 8% 0 0 !important;
  }
  body.home .spt-device-phone{
    width:32% !important;
  }
}
@media(max-width:620px){
  body.home .spt-shell{
    width:calc(100% - 28px) !important;
  }
  body.home .spt-service-grid,
  body.home .spt-service-grid-reverse{
    padding:16px !important;
  }
  body.home .spt-social-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  body.home .spt-device-laptop{
    width:94% !important;
    margin:0 6% 0 0 !important;
  }
  body.home .spt-device-phone{
    width:34% !important;
  }
}


/* =========================================================
   SPT Site Kit 0.1.11 — HERO ONLY spacing correction
   Keep 0.1.10 service panels/grid untouched.
   ========================================================= */

/* The hero media wrapper should be only as tall as the visible composition. */
body.home .spt-hero-media{
  min-height:0 !important;
  height:auto !important;
  aspect-ratio:auto !important;
  position:relative !important;
  overflow:visible !important;
}

/* Put the main laptop/video back in normal flow so the wrapper height
   is determined by the actual rendered video. */
body.home .spt-hero-media .spt-device-laptop{
  position:relative !important;
  display:block !important;
  width:88% !important;
  margin:0 9% 0 3% !important;
  inset:auto !important;
}

/* Keep only the phone as an overlay. */
body.home .spt-hero-media .spt-device-phone{
  position:absolute !important;
  width:27% !important;
  right:0 !important;
  bottom:0 !important;
  left:auto !important;
  top:auto !important;
}

/* Remove any extra hero row padding/space below the visible media.
   Do not alter the other homepage sections. */
body.home .spt-home > .spt-hero{
  padding-top:24px !important;
  padding-bottom:8px !important;
  margin-bottom:0 !important;
}
body.home .spt-hero-grid{
  align-items:center !important;
  min-height:0 !important;
  height:auto !important;
}

/* Responsive versions of the same hero-only behavior. */
@media(max-width:980px){
  body.home .spt-hero-media .spt-device-laptop{
    width:92% !important;
    margin:0 8% 0 0 !important;
  }
  body.home .spt-hero-media .spt-device-phone{
    width:32% !important;
  }
}
@media(max-width:620px){
  body.home .spt-hero-media .spt-device-laptop{
    width:94% !important;
    margin:0 6% 0 0 !important;
  }
  body.home .spt-hero-media .spt-device-phone{
    width:34% !important;
  }
  body.home .spt-home > .spt-hero{
    padding-top:20px !important;
    padding-bottom:6px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.1.13 — diagnosed vertical-gap fix
   Diagnostic screenshot showed the blank area is INSIDE the
   hero/service grid boxes, not between the sections.
   ========================================================= */

/* Theme paragraph margins were inflating the copy blocks and therefore
   the grid-row height. Give SPT copy its own explicit rhythm. */
body.home .spt-home .spt-hero-copy p,
body.home .spt-home .spt-service-copy p{
  margin-top:0 !important;
  margin-bottom:10px !important;
}
body.home .spt-home .spt-eyebrow{
  margin-bottom:8px !important;
}
body.home .spt-home .spt-lead{
  margin-bottom:10px !important;
}
body.home .spt-home .spt-pills{
  margin-top:10px !important;
  margin-bottom:0 !important;
}

/* In the diagnostic image, the grid itself extended below both visible
   columns. Bottom-aligning the two grid items removes that empty strip
   beneath them without altering the approved two-column layout. */
body.home .spt-hero-grid{
  align-items:end !important;
}
body.home .spt-hero-copy,
body.home .spt-hero-media{
  align-self:end !important;
}

/* There is no useful reason for extra padding beneath the hero grid. */
body.home .spt-home > .spt-hero{
  padding-bottom:0 !important;
}

/* The service-panel dead band is largely the card's internal padding.
   Keep the rounded panel but tighten its vertical padding. */
body.home .spt-service-grid,
body.home .spt-service-grid-reverse{
  padding-top:12px !important;
  padding-bottom:12px !important;
}

/* Reduce copy-list rhythm a little so it does not unnecessarily make
   a row taller than the media beside it. */
body.home .spt-checks{
  margin-top:12px !important;
  margin-bottom:14px !important;
}
body.home .spt-checks li{
  margin-top:4px !important;
  margin-bottom:4px !important;
}

/* Posting card: same principle, compact internal vertical padding. */
body.home .spt-posting-art{
  padding-top:14px !important;
  padding-bottom:14px !important;
  min-height:0 !important;
}
body.home .spt-posting-calendar{
  padding-top:18px !important;
  padding-bottom:18px !important;
}

/* Footer links: explicit normal rhythm. */
body.home .spt-footer-brand,
body.home .spt-footer-links,
body.home .spt-footer-legal{
  gap:0 !important;
}
body.home .spt-footer-links a,
body.home .spt-footer-legal a{
  margin:0 !important;
  padding:2px 0 !important;
  line-height:1.2 !important;
}

@media(max-width:980px){
  body.home .spt-hero-grid{
    align-items:start !important;
  }
  body.home .spt-hero-copy,
  body.home .spt-hero-media{
    align-self:start !important;
  }
}


/* =========================================================
   SPT Site Kit 0.1.14 — highlighted bottom-gap cleanup only
   ========================================================= */

/* The remaining yellow-highlighted gaps are the bottom padding
   inside the service panels, not the grid structure itself. */
body.home .spt-service-grid,
body.home .spt-service-grid-reverse{
  padding-bottom:4px !important;
}

/* Keep the content itself from adding stray bottom margins. */
body.home .spt-service-copy > :last-child,
body.home .spt-service-media > :last-child{
  margin-bottom:0 !important;
}
body.home .spt-social-grid{
  margin-bottom:0 !important;
}

/* Posting panel: same bottom-gap treatment. */
body.home .spt-posting-art{
  margin-bottom:0 !important;
}
body.home .spt-posting-calendar{
  margin-bottom:0 !important;
}

/* Benefits strip: remove the large empty band beneath the four benefits. */
body.home .spt-benefits{
  padding-top:10px !important;
  padding-bottom:6px !important;
}
body.home .spt-benefit-grid{
  margin-bottom:0 !important;
}
body.home .spt-benefit-grid > div{
  padding-top:4px !important;
  padding-bottom:4px !important;
}

/* Keep the CTA flush to the benefits strip. */
body.home .spt-benefits + .spt-cta{
  margin-top:0 !important;
}

/* Footer remains untouched except for compact link rhythm from 0.1.13. */


/* =========================================================
   SPT Site Kit 0.1.16 — evidence-based service gap fix
   Debug proved the blank area is INSIDE the blue service panel.
   Switch service panels from CSS Grid to Flexbox so panel height
   is determined directly by the tallest visible child.
   ========================================================= */

@media(min-width:981px){

  body.home .spt-service-grid,
  body.home .spt-service-grid-reverse{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:30px !important;
    height:auto !important;
    min-height:0 !important;
    padding-top:12px !important;
    padding-bottom:8px !important;
  }

  body.home .spt-service-grid .spt-service-copy{
    flex:0 1 44% !important;
    width:44% !important;
    height:auto !important;
    min-height:0 !important;
    align-self:flex-start !important;
    order:1 !important;
  }

  body.home .spt-service-grid .spt-service-media{
    flex:1 1 56% !important;
    width:56% !important;
    height:auto !important;
    min-height:0 !important;
    align-self:flex-start !important;
    order:2 !important;
  }

  body.home .spt-service-grid-reverse .spt-service-media{
    flex:1 1 56% !important;
    width:56% !important;
    order:1 !important;
  }

  body.home .spt-service-grid-reverse .spt-service-copy{
    flex:0 1 44% !important;
    width:44% !important;
    order:2 !important;
  }

  /* Ensure media components themselves add no bottom space. */
  body.home .spt-service-media > *,
  body.home .spt-service-copy > *:last-child{
    margin-bottom:0 !important;
  }
}

/* Benefits debug showed the green section, not the dashed grid,
   owns the blank band below the benefit items. Collapse that padding. */
body.home .spt-benefits{
  padding-top:8px !important;
  padding-bottom:4px !important;
  min-height:0 !important;
  height:auto !important;
}
body.home .spt-benefit-grid{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
body.home .spt-benefit-grid > div{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:4px !important;
  padding-bottom:4px !important;
}

/* Keep the red CTA immediately after the benefits section. */
body.home .spt-benefits + .spt-cta{
  margin-top:0 !important;
}

/* On tablet/mobile retain the existing stacked responsive grid. */
@media(max-width:980px){
  body.home .spt-service-grid,
  body.home .spt-service-grid-reverse{
    display:grid !important;
  }
}


/* =========================================================
   SPT Site Kit 0.1.17 — bottom-strip + footer rhythm only
   ========================================================= */

/* The remaining yellow strip sits inside the benefits section below
   the four benefit items. Make the section hug the grid exactly. */
body.home .spt-benefits{
  padding-top:6px !important;
  padding-bottom:0 !important;
  margin:0 !important;
}
body.home .spt-benefits .spt-shell,
body.home .spt-benefit-grid{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  min-height:0 !important;
  height:auto !important;
}
body.home .spt-benefit-grid > div{
  margin:0 !important;
  padding-top:4px !important;
  padding-bottom:4px !important;
}
body.home .spt-benefits + .spt-cta{
  margin-top:0 !important;
  padding-top:30px !important;
}

/* Footer: remove the apparent double-line spacing.
   The previous CSS set compact gaps, but the anchor line-boxes were still tall.
   Force a genuinely compact flex column. */
body.home .spt-footer{
  padding-top:22px !important;
  padding-bottom:22px !important;
}
body.home .spt-footer-grid{
  align-items:flex-start !important;
  row-gap:10px !important;
}
body.home .spt-footer-brand,
body.home .spt-footer-links,
body.home .spt-footer-legal{
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.15 !important;
}
body.home .spt-footer-brand strong,
body.home .spt-footer-brand span,
body.home .spt-footer-links a,
body.home .spt-footer-legal a{
  display:block !important;
  margin:0 !important;
  padding:1px 0 !important;
  line-height:1.15 !important;
}
body.home .spt-footer-brand span{
  margin-top:4px !important;
}


/* =========================================================
   SPT Site Kit 0.1.18 — benefits/footer containment fix
   ========================================================= */

/* Put ALL vertical spacing on the benefit grid itself and make the
   outer section a zero-height wrapper around that content. */
body.home .spt-benefits{
  padding:0 !important;
  margin:0 !important;
  min-height:0 !important;
  height:auto !important;
}
body.home .spt-benefits .spt-shell{
  padding:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  min-height:0 !important;
  height:auto !important;
}
body.home .spt-benefit-grid{
  padding:8px 0 !important;
  margin:0 !important;
  min-height:0 !important;
  height:auto !important;
  align-items:start !important;
}
body.home .spt-benefit-grid > div{
  margin:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  min-height:0 !important;
  height:auto !important;
}
body.home .spt-benefits + .spt-cta{
  margin-top:0 !important;
}

/* Footer columns must size to their content rather than stretching.
   Grid rows are explicit min-content rows, eliminating hidden line-box space. */
body.home .spt-footer-grid{
  align-items:start !important;
}
body.home .spt-footer-links,
body.home .spt-footer-legal{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-auto-rows:min-content !important;
  align-content:start !important;
  justify-content:start !important;
  gap:4px !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
}
body.home .spt-footer-links a,
body.home .spt-footer-legal a{
  display:inline-block !important;
  width:auto !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.15 !important;
}


/* 0.1.20 — after suppressing wpautop, keep bottom sections intentionally compact. */
body.home .spt-benefits{
  padding-top:6px !important;
  padding-bottom:0 !important;
  margin:0 !important;
}
body.home .spt-benefit-grid{
  margin:0 !important;
  padding:6px 0 !important;
}
body.home .spt-footer-links,
body.home .spt-footer-legal{
  gap:4px !important;
}
body.home .spt-footer-links a,
body.home .spt-footer-legal a{
  margin:0 !important;
  padding:0 !important;
  line-height:1.2 !important;
}


/* =========================================================
   SPT Site Kit 0.1.21 — gentle breathing-room pass
   Root cause remains fixed (wpautop disabled).
   This only adds intentional spacing back.
   ========================================================= */

/* Slightly more separation between the main service cards. */
body.home .spt-section:not(.spt-hero):not(.spt-benefits):not(.spt-cta){
  padding-top:12px !important;
  padding-bottom:12px !important;
}

/* Give the service cards a touch more internal air without reintroducing
   the large empty bands. */
body.home .spt-service-grid,
body.home .spt-service-grid-reverse{
  padding-top:18px !important;
  padding-bottom:18px !important;
}

/* Benefits need a little room above and below the text. */
body.home .spt-benefits{
  padding-top:10px !important;
  padding-bottom:10px !important;
}
body.home .spt-benefit-grid{
  padding-top:4px !important;
  padding-bottom:4px !important;
}

/* Restore a modest gap before the red CTA. */
body.home .spt-benefits + .spt-cta{
  margin-top:6px !important;
}

/* Footer: compact, but not cramped. */
body.home .spt-footer{
  padding-top:28px !important;
  padding-bottom:28px !important;
}
body.home .spt-footer-links,
body.home .spt-footer-legal{
  gap:8px !important;
}
body.home .spt-footer-links a,
body.home .spt-footer-legal a{
  line-height:1.25 !important;
}


/* =========================================================
   SPT Site Kit 0.1.22 — hero bottom breathing room only
   ========================================================= */
body.home .spt-home > .spt-hero{
  padding-bottom:18px !important;
}


/* =========================================================
   SPT Site Kit 0.1.23 — complete footer navigation + socials
   ========================================================= */
body.home .spt-footer-grid-full{
  grid-template-columns:1.2fr 1fr 1fr 1fr !important;
  gap:34px !important;
}
body.home .spt-footer-nav,
body.home .spt-footer-follow,
body.home .spt-footer-legal{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:6px !important;
}
body.home .spt-footer-nav strong,
body.home .spt-footer-follow strong,
body.home .spt-footer-legal strong{
  margin-bottom:4px !important;
}
body.home .spt-footer-nav a,
body.home .spt-footer-legal a{
  color:#ddd !important;
  text-decoration:none !important;
  line-height:1.2 !important;
}
body.home .spt-social-icons{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-top:4px !important;
}
body.home .spt-social-icon{
  width:34px !important;
  height:34px !important;
  border-radius:50% !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#fff !important;
  background:#2a2a2a !important;
  text-decoration:none !important;
  font-weight:800 !important;
  font-size:13px !important;
  line-height:1 !important;
  border:1px solid rgba(255,255,255,.12) !important;
}
body.home .spt-social-icon:hover{
  background:var(--spt-red) !important;
}
body.home .spt-social-disabled{
  opacity:.35 !important;
  cursor:default !important;
}
@media(max-width:980px){
  body.home .spt-footer-grid-full{
    grid-template-columns:1fr 1fr !important;
  }
}
@media(max-width:620px){
  body.home .spt-footer-grid-full{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   SPT Site Kit 0.1.24 — proper inline SVG social brand icons
   ========================================================= */
body.home .spt-social-icon{
  width:36px !important;
  height:36px !important;
  padding:0 !important;
  border-radius:50% !important;
  background:#fff !important;
  border:1px solid rgba(255,255,255,.16) !important;
  color:#111 !important;
  overflow:hidden !important;
}
body.home .spt-social-icon:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(0,0,0,.22);
}
body.home .spt-social-svg{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
}
body.home .spt-social-svg svg{
  width:20px !important;
  height:20px !important;
  display:block !important;
  fill:currentColor !important;
}
body.home .spt-social-disabled{
  opacity:.3 !important;
}


/* =========================================================
   SPT Site Kit 0.2.0 — complete inner pages
   ========================================================= */
body.page .spt-page,
body.page .spt-page *{box-sizing:border-box}
body.page .spt-page{font-size:clamp(17px,1vw,19px);line-height:1.58;color:var(--spt-text)}
body.page .spt-page-hero{
  padding:64px 0 54px;
  background:
    radial-gradient(circle at 82% 20%,rgba(215,25,32,.11),transparent 32%),
    linear-gradient(#fff,#f8f8f8);
}
body.page .spt-page-hero h1{
  max-width:880px;
  margin:0 0 18px;
  font-size:clamp(48px,5.3vw,76px);
  line-height:1.02;
  letter-spacing:-.035em;
}
body.page .spt-page-hero h1 span{color:var(--spt-red)}
.spt-page-lead{max-width:820px;font-size:clamp(20px,1.7vw,26px);line-height:1.45}
.spt-inner-section{padding:58px 0}
.spt-inner-section h2{font-size:clamp(34px,3.5vw,50px);line-height:1.05;letter-spacing:-.03em;margin:0 0 18px}
.spt-inner-section h3{font-size:24px;line-height:1.12;margin:0 0 10px}
.spt-inner-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:52px;align-items:start}
.spt-card-grid{display:grid;gap:20px;margin-top:24px}
.spt-card-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.spt-card-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.spt-info-card,.spt-price-card,.spt-form-card,.spt-about-panel{
  background:#fff;border:1px solid var(--spt-line);border-radius:20px;padding:26px;box-shadow:var(--spt-shadow)
}
.spt-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:28px}
.spt-price-card h3{font-size:38px;color:var(--spt-red)}
.spt-price-card h3 small{font-size:17px;color:var(--spt-muted)}
.spt-price-note{margin-top:26px;font-size:1.08em}
.spt-social-showcase{margin-top:28px}
.spt-inline-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.spt-button-outline{background:#fff!important;color:var(--spt-red)!important;border:1px solid var(--spt-red)}
.spt-faq-list{display:grid;gap:12px}
.spt-faq{border:1px solid var(--spt-line);border-radius:16px;background:#fff;padding:0 20px}
.spt-faq summary{cursor:pointer;font-weight:800;font-size:1.05em;padding:18px 0}
.spt-faq p{padding:0 0 18px;margin:0}
.spt-form{display:grid;gap:14px}
.spt-form label{display:grid;gap:6px;font-weight:700}
.spt-form input,.spt-form textarea{
  width:100%;border:1px solid #d8d8d8;border-radius:10px;padding:12px 13px;background:#fff;color:#222;font:inherit
}
.spt-form input:focus,.spt-form textarea:focus{outline:2px solid rgba(215,25,32,.2);border-color:var(--spt-red)}
.spt-contact-list a{color:var(--spt-red)}
body.page .spt-page + *{margin-top:0}
body.page .entry-header{display:none}
body.page .site.grid-container{max-width:100%}
body.page .site-content{padding:0}
body.page .content-area{width:100%}
body.page .inside-article{padding:0}
@media(max-width:980px){
  .spt-inner-grid{grid-template-columns:1fr}
  .spt-card-grid-3,.spt-price-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  body.page .spt-page-hero{padding:42px 0 36px}
  .spt-inner-section{padding:38px 0}
  .spt-card-grid-2{grid-template-columns:1fr}
  .spt-inline-actions{display:grid}
}

body.page .widget-area,body.page .sidebar,body.page .comments-area,body.page #comments{display:none!important}
body.page .spt-footer-grid-full{grid-template-columns:1.2fr 1fr 1fr 1fr!important;gap:34px!important}
body.page .spt-footer-nav,body.page .spt-footer-follow,body.page .spt-footer-legal{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important}
body.page .spt-social-icons{display:flex!important;flex-wrap:wrap!important;gap:8px!important}
body.page .spt-social-icon{width:36px!important;height:36px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#fff!important;color:#111!important;text-decoration:none!important}
body.page .spt-social-svg,body.page .spt-social-svg svg{width:20px!important;height:20px!important;display:block!important}
body.page .spt-social-svg svg{fill:currentColor!important}
@media(max-width:980px){body.page .spt-footer-grid-full{grid-template-columns:1fr 1fr!important}}
@media(max-width:620px){body.page .spt-footer-grid-full{grid-template-columns:1fr!important}}


/* =========================================================
   SPT Site Kit 0.2.2 — own copyright / hide GeneratePress footer
   ========================================================= */

/* Remove the theme's separate "Built with GeneratePress" footer entirely
   on the SPT homepage and generated brochure pages. */
body.home .site-footer,
body.page .site-footer{
  display:none !important;
}

/* Put copyright inside the black SPT footer. */
.spt-footer-copyright{
  grid-column:1 / -1;
  margin-top:10px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#aaa;
  font-size:.85em;
  line-height:1.2;
}


/* =========================================================
   SPT Site Kit 0.2.3 — real SPT logo in header on every SPT page
   ========================================================= */

/* Hide GeneratePress text branding and use the bundled SPT logo artwork. */
body.spt-branded-page .site-branding{
  position:relative !important;
  flex:0 0 330px !important;
  min-height:52px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
}
body.spt-branded-page .site-branding::before{
  content:"" !important;
  position:static !important;
  display:block !important;
  width:311px !important;
  height:44px !important;
  transform:none !important;
  background:url("spt-logo.svg") no-repeat left center / contain !important;
}
body.spt-branded-page .site-title,
body.spt-branded-page .site-description{
  display:none !important;
}

/* Keep the navigation aligned sensibly beside the wider logo. */
body.spt-branded-page .main-navigation{
  margin-left:auto !important;
}
body.spt-branded-page .site-header .inside-header{
  align-items:center !important;
}

/* Tablet/mobile: scale the logo rather than crop it. */
@media(max-width:980px){
  body.spt-branded-page .site-branding{
    flex:1 1 auto !important;
    min-width:0 !important;
  }
  body.spt-branded-page .site-branding::before{
    width:min(311px,72vw) !important;
    height:auto !important;
    aspect-ratio:311 / 44 !important;
  }
}
@media(max-width:620px){
  body.spt-branded-page .site-branding::before{
    width:min(260px,68vw) !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.4 — header branding + copyright correction
   ========================================================= */

/* The real logo already contains the company name. Hide GeneratePress
   text branding completely so it cannot appear beside the logo. */
body.spt-branded-page .site-branding .site-title,
body.spt-branded-page .site-branding .site-description,
body.spt-branded-page .site-branding a:not(:has(img)){
  display:none !important;
}

/* Keep only the bundled SPT logo artwork in the branding area. */
body.spt-branded-page .site-branding{
  overflow:visible !important;
}
body.spt-branded-page .site-branding::before{
  display:block !important;
}

/* Restore the theme's separate grey copyright bar underneath the black SPT footer. */
body.home .site-footer,
body.page.spt-branded-page .site-footer{
  display:block !important;
}

/* Hide any theme footer widgets/content so the grey strip contains only copyright. */
body.home .site-footer .footer-widgets,
body.page.spt-branded-page .site-footer .footer-widgets{
  display:none !important;
}

/* Keep the grey bar compact and neutral. */
body.home .site-footer .site-info,
body.page.spt-branded-page .site-footer .site-info{
  display:block !important;
  background:#f3f3f3 !important;
  color:#222 !important;
  text-align:center !important;
  padding:16px 12px !important;
  font-size:15px !important;
  line-height:1.2 !important;
}
body.home .site-footer .site-info a,
body.page.spt-branded-page .site-footer .site-info a{
  color:inherit !important;
  text-decoration:none !important;
}

/* The black custom footer no longer needs its own copyright row. */
.spt-footer-copyright{
  display:none !important;
}


/* =========================================================
   SPT Site Kit 0.2.5 — Why Use Us + inner-page hero placeholders
   Homepage intentionally unchanged.
   ========================================================= */
body.page .spt-page-hero-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);gap:48px;align-items:center}
body.page .spt-page-hero-copy{min-width:0}
body.page .spt-inner-hero-placeholder{min-height:300px;border-radius:22px;border:1px solid #e1e1e1;background:linear-gradient(135deg,rgba(215,25,32,.08),rgba(20,20,20,.04)),#f4f4f4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;color:#333;box-shadow:var(--spt-shadow)}
body.page .spt-inner-hero-placeholder-mark{display:inline-flex;align-items:center;justify-content:center;min-width:80px;height:34px;padding:0 14px;margin-bottom:16px;border-radius:999px;background:var(--spt-red);color:#fff;font-size:12px;font-weight:900;letter-spacing:.08em}
body.page .spt-inner-hero-placeholder strong{font-size:22px;line-height:1.2}
body.page .spt-inner-hero-placeholder small{max-width:420px;margin-top:10px;color:#666;line-height:1.45}
.spt-why-pullquote{align-self:stretch;border-radius:22px;background:linear-gradient(135deg,#1c1c1c,#2c2020);color:#fff;padding:34px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--spt-shadow)}
.spt-why-pullquote strong{font-size:clamp(26px,2.2vw,36px);line-height:1.2}
@media(max-width:980px){body.page .spt-page-hero-layout{grid-template-columns:1fr;gap:28px}body.page .spt-inner-hero-placeholder{min-height:240px}}


/* =========================================================
   SPT Site Kit 0.2.6 — approved homepage hero treatment
   ========================================================= */

/* Clean, replaceable room photo. The black/fade is CSS, not baked into the image. */
body.home .spt-hero-photo{
  position:relative !important;
  overflow:hidden !important;
  background:
    url("spt-hero-living-room.jpg") center center / cover no-repeat !important;
}
body.home .spt-hero-photo::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  background:
    linear-gradient(
      90deg,
      #000 0%,
      #000 30%,
      rgba(0,0,0,.92) 31%,
      rgba(0,0,0,.72) 32%,
      rgba(0,0,0,.42) 33.5%,
      rgba(0,0,0,.18) 34.5%,
      rgba(0,0,0,0) 35%
    ) !important;
}
body.home .spt-hero-photo .spt-shell{
  position:relative !important;
  z-index:1 !important;
}

/* Keep the existing hero copy and controls, but make them readable over black. */
body.home .spt-hero-photo .spt-hero-copy,
body.home .spt-hero-photo .spt-hero-copy p,
body.home .spt-hero-photo .spt-hero-copy h1{
  color:#fff !important;
}
body.home .spt-hero-photo .spt-hero-copy h1 span,
body.home .spt-hero-photo .spt-eyebrow{
  color:var(--spt-red) !important;
}
body.home .spt-hero-photo .spt-pills span{
  color:#fff !important;
  background:rgba(0,0,0,.28) !important;
  border-color:rgba(255,255,255,.45) !important;
  backdrop-filter:blur(2px);
}

/* Existing Vimeo placeholders remain in the same hero media area. */
body.home .spt-hero-photo .spt-hero-media{
  background:transparent !important;
}

/* Mobile: use a stronger vertical dark wash so text remains legible,
   while keeping the same clean room photo underneath. */
@media(max-width:980px){
  body.home .spt-hero-photo::before{
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.92) 0%,
        rgba(0,0,0,.80) 48%,
        rgba(0,0,0,.42) 68%,
        rgba(0,0,0,.14) 82%,
        rgba(0,0,0,0) 100%
      ) !important;
  }
}

/* Pricing card: keep quote option visually secondary to the £5 headline. */
.spt-price-or{
  margin-top:20px !important;
  padding-top:16px !important;
  border-top:1px solid var(--spt-line) !important;
}
.spt-price-or strong{
  color:var(--spt-red) !important;
  font-size:1.15em !important;
}

/* Header logo home link overlay. */
body.spt-branded-page .site-header .inside-header{
  position:relative !important;
}
.spt-logo-home-link{
  position:absolute !important;
  left:0 !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:330px !important;
  height:52px !important;
  z-index:5 !important;
  display:block !important;
}
@media(max-width:980px){
  .spt-logo-home-link{
    width:min(311px,72vw) !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.7 — hero alignment, brand social icons, legal pages
   ========================================================= */

/* HERO: use the black area instead of leaving it as an empty left border. */
@media(min-width:981px){
  body.home .spt-hero-photo .spt-shell{
    width:100% !important;
    max-width:none !important;
    padding-left:clamp(52px,4.5vw,88px) !important;
    padding-right:clamp(34px,3vw,64px) !important;
    margin:0 !important;
  }
  body.home .spt-hero-photo .spt-hero-grid{
    grid-template-columns:minmax(460px,40%) minmax(0,60%) !important;
    gap:24px !important;
  }
  body.home .spt-hero-photo .spt-hero-copy{
    max-width:570px !important;
    justify-self:start !important;
  }
  body.home .spt-hero-photo .spt-hero-media{
    width:92% !important;
    justify-self:end !important;
    transform:translateX(3.5vw) !important;
  }
}

/* SOCIAL ICONS: recognisable platform colours instead of generic white/black discs. */
.spt-social-icon{
  border:0 !important;
  color:#fff !important;
  box-shadow:none !important;
}
.spt-social-icon .spt-social-svg svg{
  fill:currentColor !important;
}
.spt-social-facebook{background:#1877F2 !important;color:#fff !important}
.spt-social-linkedin{background:#0A66C2 !important;color:#fff !important}
.spt-social-youtube{background:#FF0000 !important;color:#fff !important}
.spt-social-x{background:#000 !important;color:#fff !important}
.spt-social-tiktok{
  background:#000 !important;
  color:#fff !important;
  box-shadow:inset 2px 0 #25F4EE, inset -2px 0 #FE2C55 !important;
}
.spt-social-instagram{
  background:
    radial-gradient(circle at 32% 100%,#FED373 0 24%,#F15245 25% 42%,#D92E7F 43% 60%,#9B36B7 61% 76%,#515ECF 77% 100%) !important;
  color:#fff !important;
}
.spt-social-disabled{
  filter:grayscale(1) !important;
  opacity:.35 !important;
}

/* Legal pages: readable document width and rhythm. */
.spt-legal-copy{
  max-width:980px !important;
}
.spt-legal-copy h2{
  margin-top:38px !important;
  font-size:clamp(26px,2.3vw,36px) !important;
}
.spt-legal-copy p,
.spt-legal-copy li{
  max-width:900px !important;
}
.spt-legal-note{
  padding:18px 20px !important;
  border-left:4px solid var(--spt-red) !important;
  background:#f7f7f7 !important;
  border-radius:0 12px 12px 0 !important;
}

/* Hero alignment on medium screens: no horizontal shove. */
@media(max-width:980px){
  body.home .spt-hero-photo .spt-hero-media{
    transform:none !important;
    width:100% !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.8 — hero alignment and device proportion only
   ========================================================= */
@media(min-width:981px){

  /* Align the hero copy with the service-card copy below. */
  body.home .spt-hero-photo .spt-shell{
    width:100% !important;
    max-width:none !important;
    padding-left:22px !important;
    padding-right:22px !important;
    margin:0 !important;
  }

  body.home .spt-hero-photo .spt-hero-grid{
    grid-template-columns:minmax(500px,42%) minmax(0,58%) !important;
    gap:18px !important;
  }

  body.home .spt-hero-photo .spt-hero-copy{
    max-width:610px !important;
    justify-self:start !important;
  }

  /* Give the room photograph more space to breathe. */
  body.home .spt-hero-photo .spt-hero-media{
    width:78% !important;
    justify-self:end !important;
    transform:none !important;
    min-height:300px !important;
  }

  /* Treat the two devices as a laptop + large phone, not two near-equal panels. */
  body.home .spt-hero-photo .spt-device-laptop{
    width:86% !important;
    right:8% !important;
    top:0 !important;
  }

  body.home .spt-hero-photo .spt-device-phone{
    width:23% !important;
    right:0 !important;
    bottom:-1% !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.9 — benefits centring + responsive nav fix
   ========================================================= */

/* Centre the four benefit items as a group rather than leaving a large
   unused strip on the right. */
body.home .spt-benefit-grid{
  width:min(1180px,calc(100% - 48px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  justify-content:center !important;
}
body.home .spt-benefit-grid > div{
  text-align:center !important;
}

/* GeneratePress mobile navigation: keep desktop nav on wide screens,
   then show the standard mobile hamburger at tablet/mobile widths. */
@media(max-width:980px){
  body.spt-branded-page .main-navigation{
    display:block !important;
    margin-left:auto !important;
  }

  body.spt-branded-page .main-navigation .menu-toggle{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    visibility:visible !important;
    opacity:1 !important;
    width:48px !important;
    height:48px !important;
    margin-left:auto !important;
    background:transparent !important;
    color:#111 !important;
    border:0 !important;
  }

  body.spt-branded-page .main-navigation.toggled .main-nav{
    display:block !important;
    width:100% !important;
  }

  body.spt-branded-page .main-navigation.toggled .main-nav > ul{
    display:block !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:100% !important;
    z-index:9999 !important;
    background:#fff !important;
    padding:8px 0 12px !important;
    box-shadow:0 10px 24px rgba(0,0,0,.12) !important;
  }

  body.spt-branded-page .main-navigation.toggled .main-nav > ul > li{
    display:block !important;
    width:100% !important;
  }

  body.spt-branded-page .main-navigation.toggled .main-nav > ul > li > a{
    display:block !important;
    padding:12px 22px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.10 — configured site images + proper social SVGs
   ========================================================= */

body.page .spt-inner-hero-image{
  margin:0 !important;
  min-height:300px !important;
  border-radius:22px !important;
  overflow:hidden !important;
  box-shadow:var(--spt-shadow) !important;
  background:#eee !important;
}
body.page .spt-inner-hero-image img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:300px !important;
  object-fit:cover !important;
}
body.page .spt-page-hero-no-image{
  grid-template-columns:1fr !important;
}
body.page .spt-page-hero-no-image .spt-page-hero-copy{
  max-width:900px !important;
}

body.home .spt-posting-art-image{
  position:relative !important;
  background-position:center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  min-height:270px !important;
  overflow:hidden !important;
}
body.home .spt-posting-art-image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,.24)) !important;
}
body.home .spt-posting-art-image .spt-posting-calendar{
  position:relative !important;
  z-index:1 !important;
  box-shadow:0 12px 30px rgba(0,0,0,.16) !important;
}

/* Standard brand marks, bundled locally in the plugin. */
.spt-social-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  height:38px !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
  text-decoration:none !important;
  opacity:1 !important;
  filter:none !important;
}
.spt-social-icon img{
  display:block !important;
  width:20px !important;
  height:20px !important;
  object-fit:contain !important;
  filter:brightness(0) invert(1) !important;
}
.spt-social-facebook{background:#1877F2 !important;border-radius:50% !important}
.spt-social-instagram{
  background:radial-gradient(circle at 30% 107%,#fdf497 0 5%,#fdf497 5% 15%,#fd5949 45%,#d6249f 60%,#285AEB 90%) !important;
  border-radius:11px !important;
}
.spt-social-linkedin{background:#0A66C2 !important;border-radius:7px !important}
.spt-social-tiktok{background:#000 !important;border-radius:50% !important}
.spt-social-tiktok img{
  filter:brightness(0) invert(1)
         drop-shadow(-1.4px 0 #25F4EE)
         drop-shadow(1.4px 0 #FE2C55) !important;
}
.spt-social-x{background:#000 !important;border-radius:50% !important}
.spt-social-youtube{width:44px !important;background:#FF0000 !important;border-radius:10px !important}
.spt-social-youtube img{width:23px !important}
.spt-social-disabled{cursor:default !important}

@media(max-width:980px){
  body.page .spt-inner-hero-image,
  body.page .spt-inner-hero-image img{
    min-height:240px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.12 — posting image rendering fix
   ========================================================= */

/* Use a real IMG element so the selected Media Library image cannot be
   masked by the older .spt-posting-art background shorthand. */
.spt-posting-art-image{
  position:relative !important;
  overflow:hidden !important;
  background:#222 !important;
}
.spt-posting-art-image .spt-posting-photo{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  z-index:0 !important;
}
.spt-posting-art-image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,.18)) !important;
  pointer-events:none !important;
}
.spt-posting-art-image .spt-posting-calendar{
  position:relative !important;
  z-index:2 !important;
}


/* =========================================================
   SPT Site Kit 0.2.13 — social icons, site icon, cookie notice
   ========================================================= */

/* Footer social logos: render the actual SVG glyphs directly.
   No white circular backgrounds. */
.spt-footer .spt-social-icon{
  width:34px !important;
  height:34px !important;
  padding:5px !important;
  background:transparent !important;
  border-radius:0 !important;
  overflow:visible !important;
}
.spt-footer .spt-social-icon .spt-brand-svg{
  display:block !important;
  width:24px !important;
  height:24px !important;
  fill:currentColor !important;
}
.spt-footer .spt-social-facebook{color:#1877F2 !important}
.spt-footer .spt-social-instagram{color:#E4405F !important;background:transparent !important}
.spt-footer .spt-social-linkedin{color:#0A66C2 !important}
.spt-footer .spt-social-tiktok{color:#fff !important;background:transparent !important}
.spt-footer .spt-social-tiktok .spt-brand-svg{
  filter:drop-shadow(-1px 0 #25F4EE) drop-shadow(1px 0 #FE2C55) !important;
}
.spt-footer .spt-social-x{color:#fff !important;background:transparent !important}
.spt-footer .spt-social-youtube{color:#FF0000 !important;background:transparent !important}
.spt-footer .spt-social-disabled{opacity:.45 !important}

/* Cookie notice */
.spt-cookie-notice[hidden]{display:none !important}
.spt-cookie-notice{
  position:fixed;
  left:18px;
  right:18px;
  bottom:18px;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  max-width:980px;
  margin:0 auto;
  padding:16px 18px;
  background:#151515;
  color:#fff;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  box-shadow:0 16px 40px rgba(0,0,0,.28);
}
.spt-cookie-notice__text{
  display:flex;
  align-items:flex-start;
  gap:12px;
  line-height:1.45;
}
.spt-cookie-notice__text strong{color:#fff;white-space:nowrap}
.spt-cookie-notice__text span{color:#eee}
.spt-cookie-notice__actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}
.spt-cookie-notice__actions a{
  color:#fff !important;
  text-decoration:underline;
}
.spt-cookie-notice__actions button{
  appearance:none;
  border:0;
  border-radius:999px;
  background:#d5161d;
  color:#fff;
  font-weight:700;
  padding:10px 18px;
  cursor:pointer;
}
@media(max-width:700px){
  .spt-cookie-notice{
    left:10px;
    right:10px;
    bottom:10px;
    align-items:stretch;
    flex-direction:column;
    gap:12px;
  }
  .spt-cookie-notice__text{display:block}
  .spt-cookie-notice__text strong{display:block;margin-bottom:4px}
  .spt-cookie-notice__actions{justify-content:space-between}
}


/* =========================================================
   SPT Site Kit 0.2.16 — Vimeo unlisted links + cleaner thumbnails
   ========================================================= */

/* Vimeo thumbnails often already contain their own play treatment.
   Hide the Site Kit play-circle overlay on configured videos. */
.spt-video-facade > .spt-play{
  display:none !important;
}


/* =========================================================
   SPT Site Kit 0.2.17 — local Vimeo thumbnails + modal player
   ========================================================= */

/* Admin: keep thumbnail controls readable beneath each Vimeo URL. */
.spt-vimeo-thumb-setting{
  margin-top:10px;
  padding:10px 12px;
  background:#f6f7f7;
  border-left:3px solid #d5161d;
}
.spt-vimeo-thumb-setting > label{
  display:block;
  margin-bottom:6px;
}

/* Social/tiny videos open into this larger player so Vimeo can expose
   its complete control set, including fullscreen/PiP when supported. */
.spt-vimeo-modal{
  position:fixed;
  inset:0;
  z-index:100000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.spt-vimeo-modal.is-open{
  display:flex;
}
.spt-vimeo-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(3px);
}
.spt-vimeo-modal__dialog{
  position:relative;
  z-index:1;
  width:min(980px,94vw);
  border-radius:18px;
  overflow:visible;
}
.spt-vimeo-modal__player{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 22px 70px rgba(0,0,0,.45);
}
.spt-vimeo-modal__close{
  position:absolute;
  top:-16px;
  right:-16px;
  z-index:3;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#111;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
}
body.spt-modal-open{
  overflow:hidden;
}

@media(max-width:700px){
  .spt-vimeo-modal{
    padding:12px;
  }
  .spt-vimeo-modal__dialog{
    width:96vw;
  }
  .spt-vimeo-modal__close{
    top:-12px;
    right:-4px;
  }
}


/* =========================================================
   SPT Site Kit 0.2.18 — portrait social-video modal
   ========================================================= */

/* Only social videos use the pop-out player. They are portrait/vertical,
   so the modal itself should be 9:16 rather than a wide 16:9 box. */
.spt-vimeo-modal__dialog{
  width:auto !important;
  max-width:92vw !important;
}
.spt-vimeo-modal__player{
  width:auto !important;
  height:min(84vh, 820px) !important;
  aspect-ratio:9 / 16 !important;
  max-width:92vw !important;
  margin:0 auto !important;
}
.spt-vimeo-modal__player iframe{
  width:100% !important;
  height:100% !important;
}

@media(max-width:700px){
  .spt-vimeo-modal__player{
    height:min(80vh, 720px) !important;
    max-width:94vw !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.19 — 1080x1350 social-video modal
   ========================================================= */

/* Social videos are authored at 1080x1350, which is a 4:5 aspect ratio.
   Keep the modal player matched to that exact shape. */
.spt-vimeo-modal__player{
  aspect-ratio:4 / 5 !important;
  height:min(84vh, 820px) !important;
  width:auto !important;
  max-width:92vw !important;
  margin:0 auto !important;
}

@media(max-width:700px){
  .spt-vimeo-modal__player{
    height:min(80vh, 720px) !important;
    max-width:94vw !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.20 — no custom footer on homepage
   ========================================================= */

/* Keep the full SPT footer on all inner pages, but remove it from Home. */
body.home .spt-footer{
  display:none !important;
}


/* =========================================================
   SPT Site Kit 0.2.21 — restore homepage footer
   ========================================================= */
body.home .spt-footer{
  display:block !important;
}


/* =========================================================
   SPT Site Kit 0.2.22 — configurable video caption lozenges
   ========================================================= */
.spt-vimeo-caption-setting{
  margin-top:10px;
  padding:10px 12px;
  background:#f6f7f7;
  border-left:3px solid #111;
}
.spt-vimeo-caption-setting > label{
  display:block;
  margin-bottom:6px;
}


/* =========================================================
   SPT Site Kit 0.2.24 — responsive navigation cleanup
   ========================================================= */

/* GeneratePress can render both its dedicated mobile header and the normal
   primary navigation when custom responsive rules are present. Keep the
   normal SPT/GeneratePress primary navigation and suppress the duplicate
   GeneratePress mobile-header instance. */
#mobile-header,
.main-navigation.mobile-header-navigation{
  display:none !important;
}

/* Keep the standard primary-navigation hamburger as the single responsive
   control at tablet/mobile widths. */
@media(max-width:980px){
  #site-navigation.main-navigation{
    display:block !important;
  }
  #site-navigation.main-navigation .menu-toggle{
    display:flex !important;
  }
}

/* Property Tour page: reduce the oversized gap before Planned or ad hoc. */
.spt-property-plan-section{
  padding-top:48px !important;
}
\n\n/* =========================================================\n   SPT Site Kit 0.2.25 — forms + WhatsApp\n   ========================================================= */\n.spt-form-help{margin:-4px 0 12px;font-size:.92rem;line-height:1.45;color:#555;}\n.spt-form-status{margin:0 0 16px;padding:12px 14px;border-radius:8px;font-weight:700;}\n.spt-form-status-success{background:#edf8ef;border:1px solid #84c68d;color:#174c20;}\n.spt-form-status-error{background:#fff0f0;border:1px solid #df8a8a;color:#7d1616;}\n.spt-whatsapp-float{position:fixed;right:20px;bottom:20px;z-index:99990;display:flex;align-items:center;gap:9px;padding:11px 15px;border-radius:999px;background:#25D366;color:#fff!important;text-decoration:none!important;font-weight:800;box-shadow:0 8px 25px rgba(0,0,0,.24);}\n.spt-whatsapp-float svg{width:23px;height:23px;fill:currentColor;flex:0 0 auto;}\n.spt-whatsapp-float:hover,.spt-whatsapp-float:focus{transform:translateY(-1px);color:#fff!important;}\n@media(max-width:600px){.spt-whatsapp-float{right:14px;bottom:14px;padding:12px;}.spt-whatsapp-float span{display:none;}.spt-whatsapp-float svg{width:26px;height:26px;}}\n

/* =========================================================
   SPT Site Kit 0.2.26 — video cue in caption lozenges
   ========================================================= */
.spt-video-label{
  display:inline-flex !important;
  align-items:center;
  gap:6px;
}
.spt-video-label-icon{
  width:15px;
  height:15px;
  flex:0 0 15px;
  display:block;
}
.spt-video-label-text{
  display:inline-block;
}


/* =========================================================
   SPT Site Kit 0.2.27 — play cue and WhatsApp styling
   ========================================================= */

/* The play cue is part of the lozenge itself, immediately before the text. */
.spt-video-facade .spt-video-label{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
}
.spt-video-facade .spt-video-label::before{
  content:"" !important;
  display:inline-block !important;
  width:14px !important;
  height:14px !important;
  flex:0 0 14px !important;
  position:static !important;
  margin:0 !important;
  background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Crect x='1.25' y='2.25' width='15.5' height='13.5' rx='3' fill='none' stroke='white' stroke-width='1.5'/%3E%3Cpath d='M7.25 6.1L12.1 9l-4.85 2.9V6.1z' fill='white'/%3E%3C/svg%3E") !important;
}

/* Green WhatsApp pill used both in the Contact page and as the floating action. */
.spt-whatsapp-button,
.spt-whatsapp-float{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  background:#25D366 !important;
  color:#fff !important;
  border:0 !important;
  border-radius:999px !important;
  padding:9px 14px !important;
  font-weight:800 !important;
  line-height:1.1 !important;
  text-decoration:none !important;
  box-shadow:0 5px 16px rgba(0,0,0,.18) !important;
}
.spt-whatsapp-button:hover,
.spt-whatsapp-button:focus,
.spt-whatsapp-float:hover,
.spt-whatsapp-float:focus{
  color:#fff !important;
  text-decoration:none !important;
  filter:brightness(.96);
}
.spt-whatsapp-button .spt-whatsapp-icon,
.spt-whatsapp-float svg{
  width:17px !important;
  height:17px !important;
  flex:0 0 17px !important;
  fill:currentColor !important;
}
.spt-contact-list .spt-whatsapp-button{
  margin-top:4px;
}
@media(max-width:600px){
  .spt-whatsapp-float{
    padding:9px 13px !important;
  }
  .spt-whatsapp-float span{
    display:inline !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.30 — responsive nav + footer consistency
   ========================================================= */

/* Footer Explore: same Why? group on desktop and mobile. */
.spt-footer .spt-footer-nav-group{
  display:block !important;
  margin-top:3px !important;
  font-weight:800 !important;
  color:#fff !important;
  line-height:1.25 !important;
}
.spt-footer .spt-footer-nav-child{
  display:block !important;
  padding-left:12px !important;
}

/* Keep the Site Kit social row visible at all responsive widths, even when
   legacy theme/plugin CSS remains in the live database. */
.spt-footer .spt-footer-follow{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  min-width:0 !important;
}
.spt-footer .spt-social-icons{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:8px !important;
  visibility:visible !important;
  opacity:1 !important;
  width:auto !important;
  height:auto !important;
  overflow:visible !important;
}
.spt-footer .spt-social-icon{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  flex:0 0 auto !important;
}
.spt-footer .spt-social-icon .spt-brand-svg{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:24px !important;
  height:24px !important;
}

/* Do not force a second GeneratePress nav toggle into view.
   GeneratePress' own responsive control remains the one hamburger. */
@media(max-width:980px){
  #site-navigation.main-navigation > .menu-toggle{
    display:none !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.31 — footer link hover visibility
   ========================================================= */
.spt-footer .spt-footer-nav a:hover,
.spt-footer .spt-footer-nav a:focus,
.spt-footer .spt-footer-legal a:hover,
.spt-footer .spt-footer-legal a:focus{
  color:var(--spt-red) !important;
  text-decoration:none !important;
}


/* =========================================================
   SPT Site Kit 0.2.33 — requested responsive/spacing fixes only
   ========================================================= */

/* Homepage mobile: keep the four approved hero items as separate lozenges
   with a real gap between them. */
@media(max-width:700px){
  body.home .spt-hero-photo .spt-pills{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    width:100% !important;
  }
  body.home .spt-hero-photo .spt-pills span{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:8px 10px !important;
    border:1px solid rgba(255,255,255,.45) !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.28) !important;
    color:#fff !important;
    font-size:13px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    text-align:center !important;
    white-space:normal !important;
  }
}
@media(max-width:380px){
  body.home .spt-hero-photo .spt-pills{
    grid-template-columns:1fr !important;
  }
}

/* Property Tour Videos: tighten only the gap before “Planned or ad hoc”. */
body.page .spt-compact-before-property-plan{
  padding-bottom:24px !important;
}
body.page .spt-property-plan-section{
  padding-top:24px !important;
}

/* Social Media Videos: tighten the two gaps shown around the format cards. */
body.page .spt-social-showcase-section{
  padding-bottom:24px !important;
}
body.page .spt-social-format-section{
  padding-top:24px !important;
  padding-bottom:24px !important;
}
body.page .spt-social-plan-section{
  padding-top:24px !important;
}

/* Done-for-You Social Media: tighten only the gap before
   “Regular content without the recurring workload”. */
body.page .spt-dfy-intro-section{
  padding-bottom:24px !important;
}
body.page .spt-dfy-regular-section{
  padding-top:24px !important;
}

/* Why Use Us: tighten only the gap before “More than property marketing”. */
body.page .spt-why-service-section{
  padding-bottom:24px !important;
}
body.page .spt-why-more-section{
  padding-top:24px !important;
}

/* About: tighten only the gap before “UK-wide, delivered remotely”. */
body.page .spt-about-intro-section{
  padding-bottom:24px !important;
}
body.page .spt-about-remote-section{
  padding-top:24px !important;
}


/* =========================================================
   SPT Site Kit 0.2.34 — compact two-column Explore footer
   ========================================================= */

/* Give Explore enough room for two compact navigation columns while keeping
   Follow Us and Legal alongside it. The footer itself grows naturally when
   the Why? disclosure is opened. */
.spt-footer .spt-footer-grid-full{
  grid-template-columns:minmax(210px,1.05fr) minmax(420px,1.8fr) minmax(150px,.7fr) minmax(170px,.75fr) !important;
  align-items:start !important;
}
.spt-footer .spt-footer-nav{
  min-width:0 !important;
}
.spt-footer .spt-footer-explore-columns{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:10px 28px !important;
  width:100% !important;
}
.spt-footer .spt-footer-explore-column{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:6px !important;
  min-width:0 !important;
}
.spt-footer .spt-footer-explore-column > a,
.spt-footer .spt-footer-why-links a{
  color:#ddd !important;
  text-decoration:none !important;
  line-height:1.2 !important;
}
.spt-footer .spt-footer-explore-column > a:hover,
.spt-footer .spt-footer-explore-column > a:focus,
.spt-footer .spt-footer-why-links a:hover,
.spt-footer .spt-footer-why-links a:focus{
  color:var(--spt-red) !important;
  text-decoration:none !important;
}

/* Native details/summary gives the requested collapsed Why? control and
   automatically lets the black footer grow when its links are revealed. */
.spt-footer .spt-footer-why{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:#ddd !important;
}
.spt-footer .spt-footer-why summary{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  width:max-content !important;
  margin:0 !important;
  padding:0 !important;
  color:#ddd !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  cursor:pointer !important;
  list-style:none !important;
}
.spt-footer .spt-footer-why summary::-webkit-details-marker{
  display:none !important;
}
.spt-footer .spt-footer-why summary::after{
  content:"▾";
  display:inline-block;
  font-size:.9em;
  line-height:1;
  transition:transform .18s ease;
}
.spt-footer .spt-footer-why[open] summary::after{
  transform:rotate(180deg);
}
.spt-footer .spt-footer-why summary:hover,
.spt-footer .spt-footer-why summary:focus{
  color:var(--spt-red) !important;
}
.spt-footer .spt-footer-why-links{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:6px !important;
  padding:8px 0 2px 12px !important;
}

/* Tablet: Explore remains two columns, beneath/alongside the other footer
   groups according to the existing responsive footer grid. */
@media(max-width:980px){
  .spt-footer .spt-footer-grid-full{
    grid-template-columns:1fr 1.35fr !important;
  }
}

/* Phone: stack the main footer groups, but retain the compact two-column
   Explore list while there is room. */
@media(max-width:620px){
  .spt-footer .spt-footer-grid-full{
    grid-template-columns:1fr !important;
  }
  .spt-footer .spt-footer-explore-columns{
    grid-template-columns:1fr 1fr !important;
    gap:10px 20px !important;
  }
}
@media(max-width:430px){
  .spt-footer .spt-footer-explore-columns{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.36 — Services footer group + final gap fixes
   ========================================================= */

/* Explore stays two clear columns. Each direct link is a block/flex item so
   theme CSS cannot concatenate Free Sample / FAQs / About / Contact. */
.spt-footer .spt-footer-explore-columns{
  display:grid !important;
  grid-template-columns:minmax(185px,1fr) minmax(120px,.72fr) !important;
  gap:12px 30px !important;
  width:100% !important;
  align-items:start !important;
}
.spt-footer .spt-footer-explore-column{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:7px !important;
  min-width:0 !important;
}
.spt-footer .spt-footer-explore-column > a{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:#ddd !important;
  text-decoration:none !important;
  line-height:1.25 !important;
  white-space:normal !important;
}

/* Services and Why? use the same compact native disclosure behaviour. */
.spt-footer .spt-footer-menu{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:#ddd !important;
}
.spt-footer .spt-footer-menu summary{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  width:max-content !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:#ddd !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  cursor:pointer !important;
  list-style:none !important;
}
.spt-footer .spt-footer-menu summary::-webkit-details-marker{
  display:none !important;
}
.spt-footer .spt-footer-menu summary::after{
  content:"▾";
  display:inline-block;
  font-size:.9em;
  line-height:1;
  transition:transform .18s ease;
}
.spt-footer .spt-footer-menu[open] summary::after{
  transform:rotate(180deg);
}
.spt-footer .spt-footer-menu summary:hover,
.spt-footer .spt-footer-menu summary:focus{
  color:var(--spt-red) !important;
}
.spt-footer .spt-footer-menu-links{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:6px !important;
  width:100% !important;
  padding:8px 0 2px 12px !important;
}
.spt-footer .spt-footer-menu-links a{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:#ddd !important;
  text-decoration:none !important;
  line-height:1.25 !important;
  white-space:normal !important;
}
.spt-footer .spt-footer-explore-column > a:hover,
.spt-footer .spt-footer-explore-column > a:focus,
.spt-footer .spt-footer-menu-links a:hover,
.spt-footer .spt-footer-menu-links a:focus{
  color:var(--spt-red) !important;
  text-decoration:none !important;
}

/* Keep enough room for Explore on normal desktop widths. */
.spt-footer .spt-footer-grid-full{
  grid-template-columns:minmax(210px,1fr) minmax(390px,1.7fr) minmax(170px,.75fr) minmax(175px,.78fr) !important;
  gap:30px !important;
  align-items:start !important;
}

/* At narrower desktop/tablet widths, stack footer groups into two columns
   before the Explore links become cramped. */
@media(max-width:1100px){
  .spt-footer .spt-footer-grid-full{
    grid-template-columns:minmax(200px,.85fr) minmax(390px,1.35fr) !important;
    gap:26px 34px !important;
  }
}
@media(max-width:700px){
  .spt-footer .spt-footer-grid-full{
    grid-template-columns:1fr !important;
  }
  .spt-footer .spt-footer-explore-columns{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:12px 22px !important;
  }
}
@media(max-width:430px){
  .spt-footer .spt-footer-explore-columns{
    grid-template-columns:1fr !important;
  }
}

/* Social Media Videos: close the remaining oversized gap between the
   example thumbnails and the two explanatory cards, and keep the following
   transition compact. */
body.page .spt-social-showcase-section{
  padding-bottom:10px !important;
}
body.page .spt-social-format-section{
  padding-top:10px !important;
  padding-bottom:16px !important;
}
body.page .spt-social-plan-section{
  padding-top:16px !important;
}

/* About: close the remaining oversized gap before
   “UK-wide, delivered remotely”. */
body.page .spt-about-intro-section{
  padding-bottom:10px !important;
}
body.page .spt-about-remote-section{
  padding-top:10px !important;
}


/* =========================================================
   SPT Site Kit 0.2.37 — consistent header/footer width
   ========================================================= */

/* Shared site chrome should use the same wide shell on Home and inner pages.
   Inner-page content itself remains constrained by its existing .spt-shell. */
body.spt-branded-page .site-header .inside-header,
body.spt-branded-page #site-navigation .inside-navigation{
  width:min(1240px,calc(100% - 44px)) !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Match the Home header layout on inner pages without altering the page body. */
body.spt-branded-page .site-header .inside-header{
  padding:10px 0 !important;
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
}
body.spt-branded-page .main-navigation{
  margin-left:auto !important;
  flex:1 1 auto !important;
}
body.spt-branded-page .main-navigation .inside-navigation{
  justify-content:flex-end !important;
}
@media(min-width:981px){
  body.spt-branded-page .main-navigation .main-nav > ul{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
  }
  body.spt-branded-page .main-navigation .main-nav > ul > li > a{
    white-space:nowrap !important;
  }
}

/* Footer shell uses the same wide chrome width everywhere. */
body.spt-branded-page .spt-footer > .spt-shell{
  width:min(1240px,calc(100% - 44px)) !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Prevent the Explore block from colliding with Follow Us at intermediate
   desktop widths; switch to a balanced two-row footer before that happens. */
@media(max-width:1180px) and (min-width:701px){
  body.spt-branded-page .spt-footer .spt-footer-grid-full{
    grid-template-columns:minmax(220px,.85fr) minmax(430px,1.4fr) !important;
    gap:28px 36px !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-brand{
    grid-column:1 !important;
    grid-row:1 !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-nav{
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-follow{
    grid-column:1 !important;
    grid-row:2 !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-legal{
    grid-column:1 !important;
    grid-row:3 !important;
  }
}

/* At phone widths keep all footer groups stacked cleanly. */
@media(max-width:700px){
  body.spt-branded-page .spt-footer .spt-footer-grid-full{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.38 — targeted inner-page spacing cleanup
   ========================================================= */

/* About: further reduce the gap before “UK-wide, delivered remotely”. */
body.page .spt-about-intro-section{
  padding-bottom:4px !important;
}
body.page .spt-about-remote-section{
  padding-top:4px !important;
}

/* Why Use Us: tighten the gap before “More than property marketing”. */
body.page .spt-why-service-section{
  padding-bottom:8px !important;
}
body.page .spt-why-more-section{
  padding-top:8px !important;
}

/* Property Tour Videos: tighten the gap around “Planned or ad hoc” and
   the following “Designed to sell the property — and the agent” section. */
body.page .spt-compact-before-property-plan{
  padding-bottom:8px !important;
}
body.page .spt-property-plan-section{
  padding-top:8px !important;
  padding-bottom:14px !important;
}
body.page .spt-property-plan-section + .spt-inner-section{
  padding-top:14px !important;
}

/* Contact and Free Sample: reduce excess whitespace below the main form/card
   section before the red CTA, without changing the form/card itself. */
body.page .spt-page .spt-inner-section:has(.spt-form-card){
  padding-bottom:14px !important;
}
body.page .spt-page .spt-inner-section:has(.spt-form-card) + .spt-cta{
  margin-top:0 !important;
}


/* =========================================================
   SPT Site Kit 0.2.39 — centred site chrome + gap correction
   ========================================================= */

/* HEADER: centre the complete logo/navigation cluster on every SPT page.
   Use one consistent chrome width on Home and inner pages. */
@media(min-width:981px){
  body.spt-branded-page .site-header .inside-header{
    width:min(1400px,calc(100% - 64px)) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:18px !important;
  }

  body.spt-branded-page .main-navigation{
    margin-left:0 !important;
    flex:0 1 auto !important;
    width:auto !important;
  }

  body.spt-branded-page .main-navigation .inside-navigation{
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    justify-content:center !important;
  }

  body.spt-branded-page .main-navigation .main-nav > ul{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:center !important;
  }
}

/* FOOTER: same centred chrome width as the header. */
body.spt-branded-page .spt-footer > .spt-shell{
  width:min(1400px,calc(100% - 64px)) !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Desktop footer: reserve enough real width for Explore so it cannot collide
   with Follow Us or Legal. */
@media(min-width:1301px){
  body.spt-branded-page .spt-footer .spt-footer-grid-full{
    display:grid !important;
    grid-template-columns:minmax(220px,.9fr) minmax(500px,1.8fr) minmax(180px,.7fr) minmax(180px,.7fr) !important;
    gap:28px !important;
    align-items:start !important;
  }

  body.spt-branded-page .spt-footer .spt-footer-brand,
  body.spt-branded-page .spt-footer .spt-footer-nav,
  body.spt-branded-page .spt-footer .spt-footer-follow,
  body.spt-branded-page .spt-footer .spt-footer-legal{
    grid-column:auto !important;
    grid-row:auto !important;
    min-width:0 !important;
  }
}

/* Intermediate widths: move Follow Us and Legal onto their own row before
   the Explore columns become cramped. */
@media(max-width:1300px) and (min-width:701px){
  body.spt-branded-page .spt-footer .spt-footer-grid-full{
    display:grid !important;
    grid-template-columns:minmax(220px,.8fr) minmax(430px,1.4fr) !important;
    gap:26px 38px !important;
    align-items:start !important;
  }

  body.spt-branded-page .spt-footer .spt-footer-brand{
    grid-column:1 !important;
    grid-row:1 !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-nav{
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-follow{
    grid-column:1 !important;
    grid-row:2 !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-legal{
    grid-column:1 !important;
    grid-row:3 !important;
  }
}

@media(max-width:700px){
  body.spt-branded-page .spt-footer > .spt-shell{
    width:min(100% - 36px,1400px) !important;
  }
  body.spt-branded-page .spt-footer .spt-footer-grid-full{
    grid-template-columns:1fr !important;
  }
}

/* GAP FIX: GeneratePress/content CSS can add block spacing to direct section
   elements even after section padding has been reduced. Remove those external
   margins for generated SPT pages so the explicit Site Kit padding controls
   the spacing. */
body.spt-branded-page .spt-page > .spt-inner-section,
body.spt-branded-page .spt-page > .spt-cta{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* Keep the specifically identified transitions compact. */
body.page .spt-about-intro-section{
  padding-bottom:0 !important;
}
body.page .spt-about-remote-section{
  padding-top:10px !important;
}

body.page .spt-why-service-section{
  padding-bottom:0 !important;
}
body.page .spt-why-more-section{
  padding-top:10px !important;
}

body.page .spt-compact-before-property-plan{
  padding-bottom:0 !important;
}
body.page .spt-property-plan-section{
  padding-top:10px !important;
  padding-bottom:10px !important;
}
body.page .spt-property-plan-section + .spt-inner-section{
  padding-top:10px !important;
}

body.page .spt-social-showcase-section{
  padding-bottom:0 !important;
}
body.page .spt-social-format-section{
  padding-top:10px !important;
  padding-bottom:10px !important;
}
body.page .spt-social-plan-section{
  padding-top:10px !important;
}

/* Contact / Free Sample: no external white band between the form section
   and the red CTA. */
body.page .spt-page .spt-inner-section:has(.spt-form-card){
  padding-bottom:10px !important;
  margin-bottom:0 !important;
}
body.page .spt-page .spt-inner-section:has(.spt-form-card) + .spt-cta{
  margin-top:0 !important;
}


/* =========================================================
   SPT Site Kit 0.2.40 — footer balance + About gap
   ========================================================= */

/* FOOTER: compact, balanced desktop layout with enough width for all six
   social icons on one row. Preserve the existing Services / Why? behaviour. */
body.spt-branded-page .spt-footer{
  padding-top:24px !important;
  padding-bottom:24px !important;
}

@media(min-width:1301px){
  body.spt-branded-page .spt-footer .spt-footer-grid-full{
    grid-template-columns:minmax(230px,.9fr) minmax(500px,1.7fr) minmax(280px,.95fr) minmax(200px,.75fr) !important;
    gap:28px 34px !important;
    align-items:start !important;
  }

  body.spt-branded-page .spt-footer .spt-footer-follow{
    min-width:280px !important;
  }

  body.spt-branded-page .spt-footer .spt-social-icons{
    flex-wrap:nowrap !important;
    gap:8px !important;
  }
}

/* Explicit, even rhythm inside Explore so theme/default details spacing cannot
   create the large blank gap seen between Home and Services. */
body.spt-branded-page .spt-footer .spt-footer-explore-column{
  gap:0 !important;
}
body.spt-branded-page .spt-footer .spt-footer-explore-column > a,
body.spt-branded-page .spt-footer .spt-footer-menu{
  margin:0 0 8px !important;
}
body.spt-branded-page .spt-footer .spt-footer-menu summary{
  margin:0 !important;
  padding:0 !important;
}
body.spt-branded-page .spt-footer .spt-footer-menu-links{
  margin:0 !important;
}

/* At intermediate widths keep the safe two-column footer arrangement from
   0.2.39, but keep the social icons together. */
@media(max-width:1300px) and (min-width:701px){
  body.spt-branded-page .spt-footer .spt-footer-follow{
    min-width:260px !important;
  }
  body.spt-branded-page .spt-footer .spt-social-icons{
    flex-wrap:nowrap !important;
  }
}

/* ABOUT: the apparent gap was being driven by the taller right-hand “What
   the service is built around” panel, not just section padding. Compact that
   panel so the first section ends much closer to the left-hand copy. */
body.page .spt-about-intro-section .spt-about-panel{
  padding:18px 20px !important;
}
body.page .spt-about-intro-section .spt-about-panel h3{
  margin-bottom:8px !important;
}
body.page .spt-about-intro-section .spt-about-panel .spt-checks{
  margin-top:8px !important;
  margin-bottom:0 !important;
}
body.page .spt-about-intro-section .spt-about-panel .spt-checks li{
  margin-top:3px !important;
  margin-bottom:3px !important;
}
body.page .spt-about-intro-section{
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}
body.page .spt-about-remote-section{
  padding-top:8px !important;
  margin-top:0 !important;
}


/* =========================================================
   SPT Site Kit 0.2.41 — tighter Explore footer + About gap
   ========================================================= */

/* FOOTER: tighten the Explore area without changing its content or behaviour. */
body.spt-branded-page .spt-footer-nav > strong{
  margin-bottom:8px !important;
}
body.spt-branded-page .spt-footer .spt-footer-explore-columns{
  grid-template-columns:minmax(160px,1fr) minmax(120px,.68fr) !important;
  column-gap:14px !important;
  row-gap:0 !important;
}
body.spt-branded-page .spt-footer .spt-footer-explore-column{
  gap:0 !important;
}
body.spt-branded-page .spt-footer .spt-footer-explore-column > a,
body.spt-branded-page .spt-footer .spt-footer-menu{
  margin:0 0 6px !important;
}

/* Remove the oversized breathing room around Home specifically. */
body.spt-branded-page .spt-footer .spt-footer-explore-column:first-child > a:first-child{
  margin-top:0 !important;
  margin-bottom:6px !important;
}

/* Desktop footer proportions: bring the Explore columns closer together and
   reduce the dead space after the second Explore column before Follow Us. */
@media(min-width:1301px){
  body.spt-branded-page .spt-footer .spt-footer-grid-full{
    grid-template-columns:minmax(230px,.95fr) minmax(390px,1.35fr) minmax(280px,.95fr) minmax(190px,.72fr) !important;
    gap:24px !important;
  }
}

/* ABOUT: the right-hand panel still determines the first grid row height.
   Compact it further so the next section can begin close to the left copy. */
body.page .spt-about-intro-section .spt-about-panel{
  padding:12px 16px !important;
}
body.page .spt-about-intro-section .spt-about-panel h3{
  font-size:20px !important;
  line-height:1.15 !important;
  margin:0 0 5px !important;
}
body.page .spt-about-intro-section .spt-about-panel .spt-checks{
  margin:4px 0 0 !important;
  line-height:1.3 !important;
}
body.page .spt-about-intro-section .spt-about-panel .spt-checks li{
  margin:1px 0 !important;
}

/* Keep the actual section transition itself tight. */
body.page .spt-about-intro-section{
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}
body.page .spt-about-remote-section{
  padding-top:0 !important;
  margin-top:0 !important;
}


/* =========================================================
   SPT Site Kit 0.2.42 — generated-page markup + final footer/About spacing
   ========================================================= */

/* Explore: remove the unnecessary gap below the Explore heading so BOTH
   Explore columns rise together. */
body.spt-branded-page .spt-footer .spt-footer-nav{
  gap:0 !important;
}
body.spt-branded-page .spt-footer .spt-footer-nav > strong{
  margin:0 0 3px !important;
}
body.spt-branded-page .spt-footer .spt-footer-explore-columns{
  margin:0 !important;
  padding:0 !important;
  align-self:start !important;
}
body.spt-branded-page .spt-footer .spt-footer-explore-column{
  margin:0 !important;
  padding:0 !important;
}
body.spt-branded-page .spt-footer{
  padding-top:20px !important;
  padding-bottom:20px !important;
}

/* Keep the two Explore columns compact and close together. */
body.spt-branded-page .spt-footer .spt-footer-explore-columns{
  grid-template-columns:minmax(155px,1fr) minmax(115px,.66fr) !important;
  column-gap:10px !important;
}

/* ABOUT: after removing wpautop on generated pages, use a deliberately short
   transition between the two About sections. */
body.page .spt-about-intro-section{
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}
body.page .spt-about-remote-section{
  padding-top:0 !important;
  margin-top:-36px !important;
}

/* Do not pull sections upward on narrow/mobile layouts. */
@media(max-width:980px){
  body.page .spt-about-remote-section{
    margin-top:0 !important;
    padding-top:12px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.43 — remaining page gaps + copyright height
   ========================================================= */

/* Property Tour Videos: the first two-column row is taller than the checklist
   because of the tour video. Pull the next section into that otherwise empty
   left-column space on desktop. */
@media(min-width:981px){
  body.page .spt-property-plan-section{
    margin-top:-52px !important;
  }
}

/* Keep the transition after Planned or ad hoc compact as well. */
body.page .spt-property-plan-section{
  padding-bottom:12px !important;
}
body.page .spt-property-plan-section + .spt-inner-section{
  padding-top:12px !important;
  margin-top:0 !important;
}

/* Free Sample and Contact: make the space from the bottom of the form card to
   the red CTA deliberately identical on both pages. */
body.page .spt-free-sample-main,
body.page .spt-contact-main{
  padding-bottom:26px !important;
  margin-bottom:0 !important;
}
body.page .spt-free-sample-main .spt-inner-grid,
body.page .spt-contact-main .spt-inner-grid{
  align-items:end !important;
}
body.page .spt-free-sample-main + .spt-cta,
body.page .spt-contact-main + .spt-cta{
  margin-top:0 !important;
}

/* Copyright strip: keep it clearly separate from the black footer but much
   less tall. */
body.home .site-footer .site-info,
body.page.spt-branded-page .site-footer .site-info{
  padding:8px 12px !important;
  font-size:14px !important;
  line-height:1.15 !important;
}


/* =========================================================
   SPT Site Kit 0.2.44 — responsive menu sizing/spacing
   ========================================================= */

/* Open hamburger menu: keep the drawer inside the viewport and give long
   labels enough width to wrap sensibly instead of disappearing off-screen. */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav,
  body.spt-branded-page #site-navigation.main-navigation .main-nav{
    position:absolute !important;
    top:100% !important;
    right:0 !important;
    left:auto !important;
    width:min(360px,calc(100vw - 28px)) !important;
    max-width:calc(100vw - 28px) !important;
    min-width:0 !important;
    margin:0 !important;
    padding:12px 0 !important;
    background:#fff !important;
    box-shadow:0 14px 32px rgba(0,0,0,.12) !important;
    z-index:9999 !important;
    overflow-x:hidden !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav > ul{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav > ul > li{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav > ul > li > a{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height:0 !important;
    padding:10px 20px !important;
    margin:0 !important;
    font-size:16px !important;
    line-height:1.3 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }

  /* Keep submenu items compact as well. */
  body.spt-branded-page #site-navigation.main-navigation .main-nav ul ul{
    position:static !important;
    width:100% !important;
    margin:0 !important;
    padding:4px 0 6px !important;
    box-shadow:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav ul ul li a{
    padding:8px 20px 8px 34px !important;
    font-size:15px !important;
    line-height:1.3 !important;
    white-space:normal !important;
  }
}

/* Very narrow phones: leave comfortable touch targets without giant gaps. */
@media(max-width:480px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav,
  body.spt-branded-page #site-navigation.main-navigation .main-nav{
    width:min(320px,calc(100vw - 20px)) !important;
    max-width:calc(100vw - 20px) !important;
    padding:8px 0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav > ul > li > a{
    padding:9px 16px !important;
    font-size:15px !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav ul ul li a{
    padding:7px 16px 7px 28px !important;
    font-size:14px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.45 — remaining gaps + mobile menu close
   ========================================================= */

/* PROPERTY TOUR VIDEOS:
   The large blank area is caused by the 16:9 video making the first grid row
   much taller than the checklist on the left. Compact the right-hand video
   on desktop, rather than repeatedly pulling the next section upward. */
@media(min-width:981px){
  body.page .spt-compact-before-property-plan .spt-inner-grid > div:last-child{
    width:100% !important;
    max-width:500px !important;
    justify-self:end !important;
  }

  body.page .spt-property-plan-section{
    margin-top:0 !important;
  }
}
body.page .spt-compact-before-property-plan{
  padding-bottom:8px !important;
}
body.page .spt-property-plan-section{
  padding-top:8px !important;
}

/* CONTACT / FREE SAMPLE:
   Tune each page to the same visual gap from the bottom of its form card to
   the red CTA. Their content heights differ, so the page-specific values are
   intentionally different while the visible result is matched. */
body.page .spt-free-sample-main{
  padding-bottom:16px !important;
}
body.page .spt-contact-main{
  padding-bottom:38px !important;
}
body.page .spt-free-sample-main + .spt-cta,
body.page .spt-contact-main + .spt-cta{
  margin-top:0 !important;
}

/* Mobile/tablet keeps the natural full-width property video and form flow. */
@media(max-width:980px){
  body.page .spt-free-sample-main,
  body.page .spt-contact-main{
    padding-bottom:24px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.46 — compact copyright + social hover
   ========================================================= */

/* Copyright strip: compact single-line bar only. */
body.home .site-footer .site-info,
body.page.spt-branded-page .site-footer .site-info{
  padding:5px 12px !important;
  min-height:0 !important;
  font-size:13px !important;
  line-height:1.2 !important;
}
body.home .site-footer .site-info .inside-site-info,
body.page.spt-branded-page .site-footer .site-info .inside-site-info{
  padding-top:0 !important;
  padding-bottom:0 !important;
  min-height:0 !important;
}

/* Social icons: restore a clear SPT-red interaction state on every page.
   Override the platform backgrounds only while hovering/focusing/pressing. */
body.spt-branded-page .spt-footer .spt-social-icon:hover,
body.spt-branded-page .spt-footer .spt-social-icon:focus,
body.spt-branded-page .spt-footer .spt-social-icon:focus-visible,
body.spt-branded-page .spt-footer .spt-social-icon:active{
  background:var(--spt-red) !important;
  color:#fff !important;
  box-shadow:0 6px 16px rgba(0,0,0,.22) !important;
  transform:translateY(-1px);
}

/* Prevent brand-specific gradients/inset colours from masking the red state. */
body.spt-branded-page .spt-footer .spt-social-instagram:hover,
body.spt-branded-page .spt-footer .spt-social-instagram:focus,
body.spt-branded-page .spt-footer .spt-social-instagram:active,
body.spt-branded-page .spt-footer .spt-social-tiktok:hover,
body.spt-branded-page .spt-footer .spt-social-tiktok:focus,
body.spt-branded-page .spt-footer .spt-social-tiktok:active{
  background:var(--spt-red) !important;
  box-shadow:0 6px 16px rgba(0,0,0,.22) !important;
}


/* =========================================================
   SPT Site Kit 0.2.47 — consistent CTA interaction states
   ========================================================= */

/* Shared interaction feel for all primary/secondary Site Kit CTAs. */
.spt-button,
.spt-header-cta,
.spt-whatsapp-button,
.spt-whatsapp-float{
  transition:
    transform .16s ease,
    box-shadow .16s ease,
    background-color .16s ease,
    color .16s ease,
    filter .16s ease !important;
}

/* Standard red CTAs: charcoal on hover/focus, white text. */
.spt-button:not(.spt-button-light):not(.spt-button-outline):hover,
.spt-button:not(.spt-button-light):not(.spt-button-outline):focus,
.spt-button:not(.spt-button-light):not(.spt-button-outline):focus-visible,
.spt-header-cta:hover,
.spt-header-cta:focus,
.spt-header-cta:focus-visible{
  background:#2b2b2b !important;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,.22) !important;
  filter:none !important;
}

/* White/light CTAs on red backgrounds: charcoal on hover/focus. */
.spt-button-light:hover,
.spt-button-light:focus,
.spt-button-light:focus-visible,
.spt-button-outline:hover,
.spt-button-outline:focus,
.spt-button-outline:focus-visible{
  background:#2b2b2b !important;
  color:#fff !important;
  border-color:#2b2b2b !important;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,.22) !important;
  filter:none !important;
}

/* WhatsApp stays recognisably green but darkens clearly on interaction. */
.spt-whatsapp-button:hover,
.spt-whatsapp-button:focus,
.spt-whatsapp-button:focus-visible,
.spt-whatsapp-float:hover,
.spt-whatsapp-float:focus,
.spt-whatsapp-float:focus-visible{
  background:#1eaa52 !important;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,.22) !important;
  filter:none !important;
}

/* Pressed state for all CTA-style buttons. */
.spt-button:active,
.spt-header-cta:active,
.spt-whatsapp-button:active,
.spt-whatsapp-float:active{
  transform:translateY(0) !important;
  box-shadow:0 5px 12px rgba(0,0,0,.18) !important;
}


/* =========================================================
   SPT Site Kit 0.2.48 — compact copyright + CTA consistency
   ========================================================= */

/* Copyright: remove GeneratePress outer spacing entirely and keep only a
   compact single-line strip. The floating WhatsApp button is fixed-position
   and must not reserve any height here. */
body.home .site-footer .site-info,
body.page.spt-branded-page .site-footer .site-info{
  padding:0 !important;
  margin:0 !important;
  min-height:0 !important;
  height:auto !important;
}
body.home .site-footer .site-info .inside-site-info,
body.page.spt-branded-page .site-footer .site-info .inside-site-info{
  padding:4px 12px !important;
  margin:0 auto !important;
  min-height:0 !important;
  line-height:1.15 !important;
}
body.home .site-footer,
body.page.spt-branded-page .site-footer{
  margin:0 !important;
  padding:0 !important;
}

/* Header Free Sample CTA: explicitly use the same interaction pattern as
   other red CTAs, overriding any GeneratePress navigation-link hover rules. */
body.spt-branded-page .spt-header-cta:hover,
body.spt-branded-page .spt-header-cta:focus,
body.spt-branded-page .spt-header-cta:focus-visible{
  background:#2b2b2b !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.22) !important;
  filter:none !important;
}
body.spt-branded-page .spt-header-cta:active{
  background:#2b2b2b !important;
  color:#fff !important;
  transform:translateY(0) !important;
  box-shadow:0 5px 12px rgba(0,0,0,.18) !important;
}


/* =========================================================
   SPT Site Kit 0.2.49 — remove space below copyright strip
   ========================================================= */

/* The copyright strip itself is already the desired height. Make the entire
   GeneratePress footer collapse exactly to that strip, with no lighter-grey
   area underneath it. */
body.home .site-footer,
body.page.spt-branded-page .site-footer{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  line-height:0 !important;
  overflow:visible !important;
  background:#f3f3f3 !important;
}

body.home .site-footer::before,
body.home .site-footer::after,
body.page.spt-branded-page .site-footer::before,
body.page.spt-branded-page .site-footer::after{
  display:none !important;
  content:none !important;
}

body.home .site-footer .site-info,
body.page.spt-branded-page .site-footer .site-info{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:#f3f3f3 !important;
  line-height:1 !important;
}

body.home .site-footer .site-info .inside-site-info,
body.page.spt-branded-page .site-footer .site-info .inside-site-info{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 auto !important;
  padding:5px 12px !important;
  line-height:1.15 !important;
}

/* The floating WhatsApp CTA must overlay the viewport only; it must not cause
   or suggest any reserved footer band. */
body.spt-branded-page .spt-whatsapp-float{
  position:fixed !important;
  bottom:10px !important;
  margin:0 !important;
}


/* =========================================================
   SPT Site Kit 0.2.50 — inner-page footer strip parity
   ========================================================= */

/* Home is already correct. On generated inner pages, remove the extra
   GeneratePress wrapper band that still appears above the copyright strip. */
body.page.spt-branded-page .site-footer{
  background:#f3f3f3 !important;
}

body.page.spt-branded-page .site-footer > *:not(.site-info){
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

body.page.spt-branded-page .site-footer .site-info{
  margin-top:0 !important;
  border-top:0 !important;
}

body.page.spt-branded-page .site-footer .site-info::before,
body.page.spt-branded-page .site-footer .site-info::after{
  display:none !important;
  content:none !important;
}


/* =========================================================
   SPT Site Kit 0.2.55 — corrected compact responsive menu
   ========================================================= */

/* INNER-PAGE FOOTER:
   Preserve the 0.2.51 parity fix. */
body.page.spt-branded-page .site-main{
  margin-bottom:0 !important;
}

/* IMPORTANT:
   Compact-menu layout applies ONLY while GeneratePress says the navigation
   is open. When closed, GeneratePress regains full control and can genuinely
   hide the menu. */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav{
    height:auto !important;
    max-height:calc(100vh - 90px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    align-content:flex-start !important;
    height:auto !important;
    min-height:0 !important;
    gap:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li{
    display:block !important;
    flex:0 0 auto !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li > a{
    display:flex !important;
    flex:0 0 auto !important;
    min-height:0 !important;
    height:auto !important;
    padding:9px 18px !important;
    line-height:1.25 !important;
    margin:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul{
    height:auto !important;
    min-height:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li{
    flex:0 0 auto !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li a{
    height:auto !important;
    min-height:0 !important;
    padding:7px 18px 7px 30px !important;
    line-height:1.25 !important;
  }
}

@media(max-width:480px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li > a{
    padding:8px 16px !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li a{
    padding:7px 16px 7px 28px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.52 — responsive Why submenu + reliable close
   ========================================================= */

@media(max-width:980px){
  /* Closed submenu must occupy no layout space at all. */
  body.spt-branded-page #site-navigation.main-navigation .main-nav li.menu-item-has-children > ul.sub-menu{
    display:none !important;
    position:static !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  /* Disable GeneratePress hover-to-open behaviour inside the responsive drawer. */
  body.spt-branded-page #site-navigation.main-navigation .main-nav li.menu-item-has-children:hover > ul.sub-menu,
  body.spt-branded-page #site-navigation.main-navigation .main-nav li.menu-item-has-children:focus-within > ul.sub-menu{
    display:none !important;
  }

  /* Show the submenu only when GeneratePress has explicitly marked the item open. */
  body.spt-branded-page #site-navigation.main-navigation .main-nav li.menu-item-has-children.toggled-on > ul.sub-menu,
  body.spt-branded-page #site-navigation.main-navigation .main-nav li.menu-item-has-children.sfHover > ul.sub-menu,
  body.spt-branded-page #site-navigation.main-navigation .main-nav li.menu-item-has-children > ul.sub-menu.toggled-on{
    display:block !important;
    padding:4px 0 6px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.54 — explicit Why? submenu toggle only
   ========================================================= */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation .main-nav
  li.menu-item-has-children > ul.sub-menu{
    display:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav
  li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    position:static !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:4px 0 6px !important;
    box-shadow:none !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.56 — authoritative responsive menu state
   ========================================================= */

/* Final authoritative closed/open state. This intentionally sits at the end
   of the stylesheet so no earlier legacy responsive rule can keep the menu
   visible after GeneratePress closes it. */
@media(max-width:980px){

  /* CLOSED: no drawer, no menu list. */
  body.spt-branded-page #site-navigation.main-navigation:not(.toggled) .main-nav{
    display:none !important;
    position:static !important;
    width:auto !important;
    max-width:none !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation:not(.toggled) .main-nav > ul{
    display:none !important;
  }

  /* OPEN: compact drawer. */
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav{
    display:block !important;
    position:absolute !important;
    top:100% !important;
    right:0 !important;
    left:auto !important;
    width:min(360px,calc(100vw - 28px)) !important;
    max-width:calc(100vw - 28px) !important;
    height:auto !important;
    max-height:calc(100vh - 90px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    margin:0 !important;
    padding:8px 0 !important;
    background:#fff !important;
    box-shadow:0 14px 32px rgba(0,0,0,.12) !important;
    z-index:9999 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    align-content:flex-start !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    gap:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li{
    display:block !important;
    flex:0 0 auto !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li > a{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:9px 18px !important;
    font-size:16px !important;
    line-height:1.25 !important;
    white-space:normal !important;
  }

  /* Why? remains closed unless explicitly opened by Site Kit JS. */
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.menu-item-has-children > ul.sub-menu{
    display:none !important;
    position:static !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    padding:4px 0 6px !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li a{
    height:auto !important;
    min-height:0 !important;
    padding:7px 18px 7px 30px !important;
    font-size:15px !important;
    line-height:1.25 !important;
  }
}

@media(max-width:480px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav{
    width:min(320px,calc(100vw - 20px)) !important;
    max-width:calc(100vw - 20px) !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li > a{
    padding:8px 16px !important;
    font-size:15px !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li a{
    padding:7px 16px 7px 28px !important;
    font-size:14px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.57 — remove responsive menu scroll box
   ========================================================= */

@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav{
    height:auto !important;
    max-height:none !important;
    overflow-y:visible !important;
    overflow-x:visible !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.58 — remove collapsed Why? parent gap
   ========================================================= */

@media(max-width:980px){
  /* The closed Why? parent must size only to its own row. */
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.menu-item-has-children{
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    flex:0 0 auto !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.menu-item-has-children > a{
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:9px 18px !important;
    line-height:1.25 !important;
  }

  /* Closed submenu contributes absolutely no height. */
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.menu-item-has-children:not(.spt-why-open) > ul.sub-menu{
    display:none !important;
    height:0 !important;
    min-height:0 !important;
    max-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    overflow:hidden !important;
  }

  /* Expanded Why? restores normal submenu height. */
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 !important;
    padding:4px 0 6px !important;
  }
}

@media(max-width:480px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.menu-item-has-children > a{
    padding:8px 16px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.59 — final Why gap safety net
   ========================================================= */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children:not(.spt-why-open){
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children:not(.spt-why-open) > ul.sub-menu{
    display:none !important;
    visibility:hidden !important;
    height:0 !important;
    min-height:0 !important;
    max-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    overflow:hidden !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    visibility:visible !important;
    height:auto !important;
    max-height:none !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.60 — detached Why submenu styling
   ========================================================= */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    position:static !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:4px 0 6px !important;
    overflow:visible !important;
    visibility:visible !important;
    opacity:1 !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.62 — hide drawer after genuine link click
   ========================================================= */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.spt-nav-closing .main-nav{
    display:none !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.64 — reset responsive navigation to GeneratePress
   ========================================================= */

@media(max-width:980px){

  /* GeneratePress owns whether the menu is open or closed. */
  body.spt-branded-page #site-navigation.main-navigation:not(.toggled) .main-nav{
    display:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav{
    display:block !important;
    position:absolute !important;
    top:100% !important;
    right:0 !important;
    left:auto !important;
    width:min(360px,calc(100vw - 24px)) !important;
    max-width:calc(100vw - 24px) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:8px 0 !important;
    overflow:visible !important;
    background:#fff !important;
    box-shadow:0 14px 32px rgba(0,0,0,.12) !important;
    z-index:9999 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    flex:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li > a{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:9px 18px !important;
    font-size:16px !important;
    line-height:1.3 !important;
    white-space:normal !important;
  }

  /* Return submenu visibility to GeneratePress' own state classes.
     Closed submenu takes no space. */
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul{
    display:none !important;
    position:static !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.sfHover > ul,
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  li.toggled-on > ul,
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  ul ul.toggled-on{
    display:block !important;
    padding:3px 0 5px !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li,
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li a{
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li a{
    padding:7px 18px 7px 30px !important;
    font-size:15px !important;
    line-height:1.3 !important;
  }

  /* Neutralise troubleshooting-only classes if an old cached page contains them. */
  body.spt-branded-page #site-navigation.main-navigation.spt-nav-closing .main-nav{
    display:block !important;
  }

  body.spt-branded-page #site-navigation .spt-why-open > ul.sub-menu{
    display:none !important;
  }
}

@media(max-width:480px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav{
    width:min(320px,calc(100vw - 16px)) !important;
    max-width:calc(100vw - 16px) !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav > ul > li > a{
    padding:8px 16px !important;
    font-size:15px !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav ul ul li a{
    padding:7px 16px 7px 28px !important;
    font-size:14px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.65 — Why? submenu visible state
   ========================================================= */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children > ul.sub-menu{
    display:none !important;
    position:static !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    padding:3px 0 5px !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.68 — make open Why submenu genuinely clickable
   ========================================================= */

@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open{
    position:relative !important;
    z-index:10001 !important;
    overflow:visible !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    position:relative !important;
    z-index:10002 !important;
    pointer-events:auto !important;
    overflow:visible !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu > li{
    position:relative !important;
    z-index:10003 !important;
    pointer-events:auto !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu > li > a{
    position:relative !important;
    z-index:10004 !important;
    display:block !important;
    width:100% !important;
    pointer-events:auto !important;
    cursor:pointer !important;
  }

  /* Prevent GeneratePress dropdown pseudo-elements from overlaying the
     visible submenu hit area. */
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open::before,
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open::after{
    pointer-events:none !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.69 — final Why visibility fallback
   ========================================================= */
@media(max-width:980px){
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:block !important;
    visibility:visible !important;
    height:auto !important;
    max-height:none !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu > li,
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu > li > a{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.70 — isolated responsive Why panel
   ========================================================= */
.spt-responsive-why-panel{
  display:none;
}

@media(max-width:980px){
  /* Never use the GeneratePress submenu for Why? in responsive mode. */
  body.spt-branded-page #site-navigation.main-navigation .main-nav
  > ul > li.menu-item-has-children > ul.sub-menu{
    display:none !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav
  > ul > li.menu-item-has-children > .spt-responsive-why-panel{
    display:none !important;
    position:static !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    background:#f1f1f1 !important;
  }

  body.spt-branded-page #site-navigation.main-navigation .main-nav
  > ul > li.menu-item-has-children > .spt-responsive-why-panel:not([hidden]){
    display:block !important;
  }

  body.spt-branded-page .spt-responsive-why-panel a{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:7px 18px 7px 30px !important;
    color:#222 !important;
    text-decoration:none !important;
    font-size:15px !important;
    line-height:1.3 !important;
    pointer-events:auto !important;
    cursor:pointer !important;
  }

  body.spt-branded-page .spt-responsive-why-panel a:hover,
  body.spt-branded-page .spt-responsive-why-panel a:focus{
    color:var(--spt-red) !important;
  }
}


/* =========================================================
   SPT Site Kit 0.2.71 — remove legacy Why submenu spacer
   ========================================================= */

@media(max-width:980px){
  /* The original GeneratePress Why submenu must never occupy responsive
     layout space now that the Site Kit-owned panel is being used. This rule
     deliberately overrides older .spt-why-open submenu rules. */
  body.spt-branded-page #site-navigation.main-navigation .main-nav
  > ul > li.menu-item-has-children > ul.sub-menu,
  body.spt-branded-page #site-navigation.main-navigation .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu,
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children > ul.sub-menu,
  body.spt-branded-page #site-navigation.main-navigation.toggled .main-nav
  > ul > li.menu-item-has-children.spt-why-open > ul.sub-menu{
    display:none !important;
    visibility:hidden !important;
    position:static !important;
    width:0 !important;
    height:0 !important;
    min-height:0 !important;
    max-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    overflow:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  /* The replacement panel alone controls the visible Why links. */
  body.spt-branded-page #site-navigation.main-navigation .main-nav
  > ul > li.menu-item-has-children > .spt-responsive-why-panel:not([hidden]){
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    visibility:visible !important;
    opacity:1 !important;
    overflow:visible !important;
    pointer-events:auto !important;
  }

  body.spt-branded-page .spt-responsive-why-panel a:first-child{
    margin-top:0 !important;
  }
}
