
:root{
  --pink:#ff4fb3;
  --teal:#11c5e8;
  --purple:#7b4dff;
  --ink:#141021;
  --soft:#fff6fc;
}
*{box-sizing:border-box}
body{overflow-x:hidden}
header,.header,.site-header{
  background:#fff!important;
  min-height:auto!important;
  padding:16px clamp(16px,4vw,54px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:22px!important;
}
.logo,.brand,.site-logo,.logo-text{
  font-size:clamp(28px,4.7vw,62px)!important;
  line-height:.92!important;
  font-weight:950!important;
  letter-spacing:-.04em!important;
  color:var(--pink)!important;
  text-shadow:none!important;
  max-width:520px!important;
}
.logo span,.brand span,.site-logo span{color:var(--teal)!important}
nav,.nav,.main-nav{display:flex!important;gap:18px!important;flex-wrap:wrap!important;align-items:center!important}
nav a,.nav a,.main-nav a{color:var(--purple)!important;text-decoration:none!important;font-weight:850!important}

.hero,.hero-section,.site-hero{
  padding:clamp(36px,6vw,88px) clamp(18px,5vw,72px)!important;
  background:
    radial-gradient(circle at 12% 12%, rgba(255,79,179,.20), transparent 30%),
    radial-gradient(circle at 88% 14%, rgba(17,197,232,.18), transparent 30%),
    linear-gradient(135deg,#fff 0%,#fff7fc 43%,#eefcff 100%)!important;
}
.hero-inner,.hero-wrap,.hero-content{
  max-width:1180px!important;
  margin:auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.02fr) minmax(300px,.98fr)!important;
  gap:clamp(22px,4vw,54px)!important;
  align-items:center!important;
}
.hero h1,.hero-title,h1{
  font-size:clamp(42px,7.2vw,84px)!important;
  line-height:.95!important;
  letter-spacing:-.055em!important;
  color:var(--ink)!important;
  margin:0 0 18px!important;
}
.hero p,.hero-copy,.lead{
  font-size:clamp(18px,2vw,24px)!important;
  line-height:1.45!important;
  color:#3a3147!important;
}
.btn,.button,.cta,a[href^="tel"],.primary-cta{
  background:linear-gradient(135deg,var(--pink),#ff78c7)!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:14px 22px!important;
  font-weight:900!important;
  text-decoration:none!important;
  box-shadow:0 14px 30px rgba(255,79,179,.25)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.gallery,.install-gallery,.photo-gallery,#gallery{
  padding:clamp(34px,5vw,72px) clamp(16px,4vw,60px)!important;
  background:#fff!important;
}
.gallery h2,.install-gallery h2,.photo-gallery h2{
  font-size:clamp(32px,5vw,56px)!important;
  color:var(--purple)!important;
  text-align:center!important;
  margin:0 0 10px!important;
}
.v17-gallery-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr))!important;
  gap:22px!important;
  max-width:1220px!important;
  margin:28px auto 0!important;
}
.v17-gallery-card{
  background:#fff!important;
  border-radius:24px!important;
  overflow:hidden!important;
  box-shadow:0 14px 38px rgba(20,16,33,.12)!important;
  border:1px solid rgba(123,77,255,.12)!important;
}
.v17-gallery-card a{display:block!important;color:inherit!important;text-decoration:none!important}
.v17-gallery-card img{
  width:100%!important;
  height:260px!important;
  object-fit:cover!important;
  display:block!important;
}
.v17-gallery-card figcaption{
  padding:14px 16px 18px!important;
  font-weight:850!important;
  color:#251b39!important;
  background:#fff!important;
  font-size:15px!important;
}
.v17-seo-section{
  padding:56px clamp(18px,5vw,72px);
  background:linear-gradient(180deg,#fff,#fff6fc);
}
.v17-seo-wrap{max-width:1120px;margin:auto}
.v17-seo-section h2{font-size:clamp(32px,5vw,54px);color:#141021;margin:0 0 18px}
.v17-seo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:24px}
.v17-seo-card{background:white;border-radius:22px;padding:22px;box-shadow:0 12px 30px rgba(20,16,33,.08);border:1px solid rgba(17,197,232,.18)}
.v17-seo-card h3{margin:0 0 8px;color:var(--purple)}
.v17-faq{padding:56px clamp(18px,5vw,72px);background:#fff}
.v17-faq-wrap{max-width:980px;margin:auto}
.v17-faq h2{font-size:clamp(30px,5vw,50px);color:var(--purple)}
.v17-faq details{background:#fff6fc;border:1px solid rgba(255,79,179,.16);border-radius:18px;margin:12px 0;padding:18px}
.v17-faq summary{font-weight:900;cursor:pointer}
.v17-sticky{
  position:fixed;left:14px;right:14px;bottom:14px;z-index:9999;
  display:none;gap:10px;
}
.v17-sticky a{flex:1;text-align:center;border-radius:999px;padding:14px 12px;font-weight:950;text-decoration:none;color:#fff}
.v17-sticky .call{background:var(--pink)}
.v17-sticky .text{background:var(--purple)}
@media(max-width:820px){
  header,.header,.site-header{align-items:flex-start!important;flex-direction:column!important}
  nav,.nav,.main-nav{font-size:14px!important;gap:10px!important}
  .hero-inner,.hero-wrap,.hero-content{grid-template-columns:1fr!important}
  .v17-gallery-card img{height:220px!important}
  .v17-sticky{display:flex}
  body{padding-bottom:76px}
}


/* ===== V18 SURGICAL FIXES: contrast, top phone bubble, gallery spacing ===== */

/* 1) Fix pale/washed-out text in SEO cards and FAQ */
.v17-seo-section,
.v17-seo-section p,
.v17-seo-card,
.v17-seo-card p,
.v17-faq,
.v17-faq p,
.v17-faq details,
.v17-faq summary {
  color: #20152f !important;
}

.v17-seo-card {
  background: #ffffff !important;
  border: 2px solid rgba(17,197,232,.30) !important;
}

.v17-seo-card h3 {
  color: #6f42ff !important;
}

.v17-faq details {
  background: #fff7fc !important;
  border: 2px solid rgba(255,79,179,.22) !important;
}

.v17-faq summary {
  color: #20152f !important;
}

.v17-faq h2 {
  margin-top: 0 !important;
}

/* 2) Make the top phone/text bubble wide enough for full number */
.topbar a,
.announcement a,
.header a[href^="tel"],
.header a[href^="sms"],
.site-header a[href^="tel"],
.site-header a[href^="sms"],
nav a[href^="tel"],
nav a[href^="sms"] {
  white-space: nowrap !important;
}

.header a[href^="tel"],
.site-header a[href^="tel"],
.topbar a[href^="tel"] {
  min-width: 190px !important;
  padding-left: 22px !important;
  padding-right: 22px !important;
}

/* 3) Fix gallery title clipping and excessive upward overlap */
.gallery,
.install-gallery,
.photo-gallery,
#gallery {
  padding-top: clamp(64px, 8vw, 110px) !important;
  margin-top: 0 !important;
  overflow: visible !important;
}

.gallery h2,
.install-gallery h2,
.photo-gallery h2,
#gallery h2 {
  margin-top: 0 !important;
  padding-top: 0 !important;
  line-height: 1.02 !important;
  max-width: 920px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: visible !important;
}

/* Keep the gallery inside the blue outline and stop duplicate-looking cards from feeling cramped */
.v17-gallery-grid {
  padding: 18px !important;
}

.v17-gallery-card img {
  object-position: center center !important;
}

/* Improve dark SEO target box contrast without making it look like an unrelated black block */
.seo-targets,
.target-searches,
.search-targets,
[class*="target"] {
  border-radius: 28px !important;
}

.seo-targets,
.searches-card,
.target-card {
  background: linear-gradient(135deg, #171022, #27164a) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 18px 42px rgba(20,16,33,.18) !important;
}

/* Mobile cleanup */
@media(max-width:820px){
  .gallery,
  .install-gallery,
  .photo-gallery,
  #gallery {
    padding-top: 56px !important;
  }

  .header a[href^="tel"],
  .site-header a[href^="tel"],
  .topbar a[href^="tel"] {
    min-width: auto !important;
  }

  .v17-gallery-grid {
    padding: 10px !important;
  }
}


/* ===== V19 FINAL 2 FIXES ===== */

/* Remove the visible SEO/search-target block from the page.
   The SEO still exists in titles, metadata, captions, service text, sitemap, and city pages. */
.seo-targets,
.search-targets,
.target-searches,
.searches-card,
.target-card,
section:has(h2:nth-child(1):contains("Searches this site targets")) {
  display: none !important;
}

/* Hard hide common black SEO keyword box patterns */
div[class*="seo-target"],
div[class*="search-target"],
div[class*="target-search"],
div[class*="searches-card"],
div[class*="target-card"] {
  display: none !important;
}

/* Fix gallery section clipping / crowding */
.gallery,
.install-gallery,
.photo-gallery,
#gallery {
  clear: both !important;
  padding-top: 96px !important;
  margin-top: 48px !important;
  position: relative !important;
  transform: none !important;
}

.gallery::before,
.install-gallery::before,
.photo-gallery::before,
#gallery::before {
  content: "" !important;
  display: block !important;
  height: 18px !important;
}

.gallery h2,
.install-gallery h2,
.photo-gallery h2,
#gallery h2 {
  padding-top: 12px !important;
  margin-top: 0 !important;
  line-height: 1.08 !important;
  overflow: visible !important;
}

/* Remove any negative offsets that could pull gallery upward */
.gallery *,
.install-gallery *,
.photo-gallery *,
#gallery * {
  transform: none;
}

/* If there is helper text above gallery, give it breathing room */
.gallery > p,
.install-gallery > p,
.photo-gallery > p,
#gallery > p {
  margin-bottom: 34px !important;
}

/* Give the gallery card shell a little top breathing room */
.v17-gallery-grid {
  margin-top: 36px !important;
}

@media(max-width:820px){
  .gallery,
  .install-gallery,
  .photo-gallery,
  #gallery {
    padding-top: 72px !important;
    margin-top: 30px !important;
  }
}
