/* =========================================================================
   Stage 17 - Google Ads landing-page conversion layer
   Loads only on the paid-traffic landing pages (home, residential, commercial,
   airbnb-hosts, book-a-clean). Additive only - no Elementor rules are
   overridden except the two always-empty homepage hero spacer containers that
   Stage 17 Prompt 3 content cleanup left visible.
   ========================================================================= */

/* ---- Trust strip (server-rendered above the hero on LP pages) ------------ */
.tsc-trust{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:10px 26px;padding:11px 16px;
  background:#F7F9FC;border-bottom:1px solid rgba(14,23,38,.08);
  font:500 13.5px/1.3 "Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  color:#3D4757;text-align:center;
}
.tsc-trust__item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.tsc-trust__item svg{width:15px;height:15px;flex:none;color:#0B5FFF}
@media (max-width:560px){
  .tsc-trust{gap:8px 16px;font-size:12.5px;padding:10px 12px}
}

/* ---- Sticky mobile call / primary CTA bar ------------------------------- */
.tsc-adcta{
  position:fixed;left:0;right:0;bottom:0;z-index:90;
  display:flex;gap:8px;
  padding:8px 10px;
  padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));
  background:#fff;border-top:1px solid rgba(14,23,38,.12);
  box-shadow:0 -6px 20px rgba(14,23,38,.10);
}
.tsc-adcta__btn{
  flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:48px;border-radius:10px;padding:0 12px;
  font:600 15px/1 "Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  text-decoration:none;-webkit-tap-highlight-color:transparent;
}
.tsc-adcta__btn svg{width:18px;height:18px;flex:none}
.tsc-adcta__call{background:#EEF3FF;color:#0B5FFF;border:1px solid #CFE0FF}
.tsc-adcta__primary{background:#F5820A;color:#0E1726}
.tsc-adcta__btn:focus-visible{outline:3px solid #0B5FFF;outline-offset:2px}

/* keep the fixed bar from covering page-foot content */
body.tsc-has-adcta{padding-bottom:70px}

/* desktop / tablet-landscape: the header call button + in-page CTAs are enough */
@media (min-width:1025px){
  .tsc-adcta{display:none}
  body.tsc-has-adcta{padding-bottom:0}
}

/* ---- Homepage: collapse the two always-empty hero spacer containers that
        became visible white voids after the Stage 17 content cleanup -------- */
.page-id-7 .elementor-element-604c670,
.page-id-7 .elementor-element-d1bfe24{display:none}
.page-id-7 .elementor-element-de31968{max-width:600px;margin-inline:auto}

@media (prefers-reduced-motion:reduce){
  .tsc-adcta,.tsc-trust{transition:none}
}

/* =========================================================================
   Stage 17 / Prompt 5 - "How it works + Common questions + final CTA"
   Appended to the four service / booking landing pages. Server-rendered,
   no JS, facts only.
   ========================================================================= */
.tsc-lpx{
  max-width:760px;margin:0 auto;
  padding:clamp(40px,8vw,72px) 20px;
  font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.tsc-lpx__kicker{
  margin:0 0 6px;text-transform:uppercase;letter-spacing:.09em;
  font-size:12px;font-weight:600;color:#0B5FFF;
}
.tsc-lpx h2{
  margin:0 0 20px;color:#0E1726;
  font-size:clamp(21px,4vw,27px);font-weight:700;line-height:1.2;
  text-wrap:balance;
}
.tsc-lpx__steps{
  list-style:none;margin:0 0 44px;padding:0;
  display:grid;gap:18px;counter-reset:tscstep;
}
.tsc-lpx__steps li{
  display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:start;
}
.tsc-lpx__steps li::before{
  counter-increment:tscstep;content:counter(tscstep);
  display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:#EEF3FF;color:#0B5FFF;font-weight:700;font-size:15px;
}
.tsc-lpx__steps b{display:block;margin-bottom:2px;color:#0E1726;font-size:15.5px}
.tsc-lpx__steps span{color:#3D4757;line-height:1.55}
.tsc-lpx__faq{border-top:1px solid rgba(14,23,38,.12)}
.tsc-lpx__faq details{border-bottom:1px solid rgba(14,23,38,.12)}
.tsc-lpx__faq summary{
  list-style:none;cursor:pointer;position:relative;
  padding:15px 30px 15px 0;font-weight:600;color:#0E1726;
}
.tsc-lpx__faq summary::-webkit-details-marker{display:none}
.tsc-lpx__faq summary::after{
  content:"+";position:absolute;right:2px;top:13px;
  font-size:20px;line-height:1;color:#0B5FFF;
}
.tsc-lpx__faq details[open] summary::after{content:"\2013"}
.tsc-lpx__faq summary:focus-visible{outline:3px solid #0B5FFF;outline-offset:2px}
.tsc-lpx__faq p{margin:0 0 16px;color:#3D4757;line-height:1.6}
.tsc-lpx__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.tsc-lpx__cta a{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 22px;border-radius:10px;
  font-weight:600;text-decoration:none;
}
.tsc-lpx__cta .is-primary{background:#F5820A;color:#0E1726}
.tsc-lpx__cta .is-call{background:#EEF3FF;color:#0B5FFF;border:1px solid #CFE0FF}
.tsc-lpx__cta a:focus-visible{outline:3px solid #0B5FFF;outline-offset:2px}
@media (max-width:560px){
  .tsc-lpx__cta a{flex:1 1 100%}
}

/* homepage: keep the lone Sydney "area" card from looking oversized */
.page-id-7 .elementor-element-ffc58df{max-width:100%}

/* =========================================================================
   Stage 18 / Prompt 2 - homepage layout corrections + trust rating
   ========================================================================= */

/* The first Elementor container (a "Call / Get a free quote" pill) overlapped
   the hero on <=~414px and duplicated the native announcement bar's message +
   CTAs. Remove it on the homepage. */
.page-id-7 .elementor-element-81c5b63{ display:none !important; }

/* "Get Your Place Cleaned and Healthy" used a clipped gradient text-fill that
   was partly unreadable - render it as solid ink. */
.page-id-7 .elementor-element-2a4b688,
.page-id-7 .elementor-element-2a4b688 *{
  -webkit-text-fill-color:#0E1726 !important;
  background:none !important;
  background-clip:border-box !important;
  color:#0E1726 !important;
}

/* Calm the two full-height purple CTA bands - keep the colour, trim the
   vertical bulk and the empty gaps around them. */
.page-id-7 .elementor-element-63361c6,
.page-id-7 .elementor-element-981df64{
  padding-top:clamp(28px,5vw,44px) !important;
  padding-bottom:clamp(28px,5vw,44px) !important;
}

/* Lone "Sydney" service-area card - constrain and centre it. */
.page-id-7 .elementor-element-de31968{ max-width:560px; margin-inline:auto; }
.page-id-7 .elementor-element-a9b8b91 .elementor-image-box-wrapper{ padding:24px 22px; }

/* Trust-strip Google rating chip (real GBP score via Trustindex). */
.tsc-trust__rating{
  display:inline-flex;align-items:center;gap:6px;
  color:#0E1726;font-weight:600;text-decoration:none;
}
.tsc-trust__rating svg{width:15px;height:15px;color:#F5820A;flex:none}
.tsc-trust__rating:hover{text-decoration:underline}
.tsc-trust__rating:focus-visible{outline:3px solid #0B5FFF;outline-offset:2px;border-radius:4px}

/* =========================================================================
   Stage 18 / Prompt 4 - homepage hero correction + touch-target sizing
   ========================================================================= */

/* Prompt 2 aimed to neutralise the raw-purple hero heading but targeted the
   wrong Elementor id (2a4b688 = a lower section). The actual hero <h1>
   (element 4090287) still rendered in accent purple #6528F7 directly on the
   heading. Render it in brand ink to match every other heading on the page.
   Colour only - no size, weight or layout change. */
.page-id-7 .elementor-element-4090287 .elementor-heading-title,
.page-id-7 .elementor-element-4090287 h1{
  color:#0E2A47 !important;
  -webkit-text-fill-color:#0E2A47 !important;
  background:none !important;
  background-clip:border-box !important;
}

/* Collapse the dead white band between the hero card and the "Call Us" band
   (hero inner had 30px pad-bottom, the band had a 40px top margin). */
.page-id-7 .elementor-element-dac5aa3 > .e-con-inner{ padding-bottom:10px !important; }
.page-id-7 .elementor-element-63361c6{ margin-top:10px !important; }

/* Trust-strip rating link was a 16px-tall tap target on mobile - lift it to
   >=28px (WCAG 2.5.8) without disturbing the row rhythm. */
.tsc-trust__rating{ padding-block:6px; }
@media (max-width:768px){
  .tsc-trust__rating{ padding-block:8px; }
}
