/* Hydro Clean Limited — shared styles (Tailwind CDN handles utilities; this file covers what Tailwind can't) */

/* #0E4A73 = bottom stop of the footer gradient, so any canvas/overscroll/rounding
   gap below the footer on iPad Safari blends into the footer instead of flashing white. */
html {
  scroll-behavior: smooth;
  /* stop iOS rubber-band bounce exposing the canvas below the footer */
  overscroll-behavior-y: none;
  background-color: #0E4A73;
}

body {
  font-family: 'Inter', system-ui, sans-serif;
  background-color: #0E4A73;
  /* Sticky footer: on tall viewports (iPad) short pages left a white band below
     the footer — stretch main so the footer always reaches the bottom. */
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

main#main {
  flex: 1 0 auto;
  width: 100%;
  background-color: #ffffff;
}

footer {
  flex-shrink: 0;
}

/* GHL chat-widget host must never contribute layout height below the footer */
body > chat-widget {
  max-height: 0;
}

.font-display {
  font-family: 'Sora', 'Inter', system-ui, sans-serif;
}

/* Scroll reveal disabled for reliability on mobile/Safari screenshots. Content must be visible without JS. */
[data-reveal],
[data-reveal].is-visible {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Hero gradient wash */
.hero-wash {
  background: linear-gradient(180deg, rgba(11, 61, 92, 0.88) 0%, rgba(11, 61, 92, 0.72) 45%, rgba(11, 61, 92, 0.55) 100%);
}

.section-wash {
  background: linear-gradient(180deg, #0B3D5C 0%, #0E4A73 100%);
}

/* Water ripple divider */
.wave-divider {
  display: block;
  width: 100%;
  height: 48px;
}

/* Sticky header shadow state */
header.is-scrolled {
  box-shadow: 0 8px 24px -12px rgba(11, 61, 92, 0.25);
}

/* Mobile menu — collapsed by default. Use display:none so stale Tailwind/utilities cannot leave it visible. */
#mobile-menu {
  display: none !important;
  max-height: 0 !important;
  overflow: hidden !important;
  transition: max-height 0.35s ease;
}
#mobile-menu.open {
  display: block !important;
  max-height: 720px !important;
}

/* Focus visibility for accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #5FC2E8;
  outline-offset: 2px;
}

/* Counter number */
.counter-num {
  font-variant-numeric: tabular-nums;
}

/* Card hover lift */
.hover-lift {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -20px rgba(11, 61, 92, 0.35);
}

/* Gallery image frame */
.frame-img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Skip link */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: #0B3D5C;
  color: #fff;
  padding: 0.75rem 1.25rem;
  z-index: 100;
  border-radius: 0 0 0.5rem 0;
}
.skip-link:focus {
  left: 0;
}

/* CCA ServiceM8 iframe sizing fix — keep submit + recaptcha visible on mobile */
.quote-section iframe{min-height:1180px!important;}
.quote-section{padding-bottom:96px!important;}
@media (max-width:640px){.quote-section iframe{min-height:1260px!important;}.quote-section{padding-bottom:112px!important;}}


/* CCA full visual fix — July 2026 */
.skip-link:not(:focus){position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important}.skip-link:focus{left:16px!important;top:16px!important;width:auto!important;height:auto!important;clip:auto!important;z-index:9999!important}
:root{--cca-blue:#0b78ad;--cca-blue-dark:#075985;--cca-green:#2f8b3a;--cca-mist:#e8f7ff;--cca-ink:#0b3551}.text-brand{color:var(--cca-blue)!important}.bg-brand{background-color:var(--cca-blue)!important}.text-navy{color:var(--cca-blue-dark)!important}.bg-navy{background-color:var(--cca-blue-dark)!important}
main#main{background:#f4fbff!important}.hero-wash{background:linear-gradient(90deg,rgba(7,89,133,.88) 0%,rgba(7,89,133,.76) 42%,rgba(11,120,173,.38) 70%,rgba(255,255,255,.12) 100%)!important}.relative:has(.hero-wash) img{filter:saturate(1.03) contrast(1.04)}
.relative:has(.hero-wash) h1{font-size:clamp(2.8rem,5vw,5.25rem)!important;line-height:.95!important;letter-spacing:-.055em!important;text-shadow:0 3px 18px rgba(0,0,0,.30)!important;max-width:720px!important}.relative:has(.hero-wash) p{font-size:clamp(1.05rem,1.5vw,1.35rem)!important;line-height:1.55!important;max-width:680px!important;color:#fff!important;text-shadow:0 2px 12px rgba(0,0,0,.35)!important}.relative:has(.hero-wash) .inline-flex,.relative:has(.hero-wash) a{position:relative;z-index:2}.relative:has(.hero-wash) a[href="#quote"]{background:var(--cca-blue)!important;border:0!important;color:#fff!important;box-shadow:0 16px 36px rgba(11,120,173,.28)!important}.relative:has(.hero-wash) a[href^="tel"]{background:rgba(255,255,255,.18)!important;color:#fff!important;border:1px solid rgba(255,255,255,.55)!important;backdrop-filter:blur(8px)}
.relative:has(.hero-wash) .grid.grid-cols-2>div{background:rgba(255,255,255,.18)!important;border:1px solid rgba(255,255,255,.55)!important;backdrop-filter:blur(10px)!important;box-shadow:0 14px 35px rgba(0,0,0,.12)!important}.relative:has(.hero-wash) .grid.grid-cols-2 strong{color:#fff!important}.relative:has(.hero-wash) .grid.grid-cols-2 span{color:rgba(255,255,255,.92)!important}
.cca-trust-strip{background:linear-gradient(135deg,#e8f7ff,#fff);padding:20px 16px;border-bottom:1px solid #ccecff}.cca-container{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cca-trust-item{background:#fff;border:1px solid #ccecff;border-radius:18px;padding:18px;box-shadow:0 12px 30px rgba(11,120,173,.08)}.cca-trust-item strong{display:block;color:var(--cca-blue-dark);font-weight:900}.cca-trust-item span{display:block;color:#476175;font-size:.92rem;margin-top:3px}
section.bg-white,section.bg-mist{background:linear-gradient(180deg,#fff 0%,#f4fbff 100%)!important}section h2{color:var(--cca-blue-dark)!important;letter-spacing:-.035em}.hover-lift,.rounded-3xl{box-shadow:0 16px 42px rgba(7,89,133,.10)}#quote{background:linear-gradient(135deg,#e8f7ff 0%,#f8fcff 100%)!important}.quote-section,.cca-form-note{background:#e8f7ff!important}.cca-form-note{margin:14px 0 0;padding:12px 14px;border-radius:14px;color:#0b3551;font-size:.9rem;border:1px solid #ccecff}form input,form textarea{font-size:1rem!important;line-height:1.5!important}form button{background:var(--cca-blue)!important;box-shadow:0 14px 32px rgba(11,120,173,.22)!important}footer{background:linear-gradient(135deg,#075985,#0b78ad)!important}
@media(max-width:900px){.cca-container{grid-template-columns:repeat(2,minmax(0,1fr))}.relative:has(.hero-wash) h1{font-size:3.05rem!important}.relative:has(.hero-wash){min-height:auto!important}.relative:has(.hero-wash) .py-24{padding-top:3rem!important;padding-bottom:3rem!important}}
@media(max-width:640px){.cca-container{grid-template-columns:1fr}.relative:has(.hero-wash) h1{font-size:2.55rem!important;line-height:1.02!important}.relative:has(.hero-wash) p{font-size:1rem!important;line-height:1.55!important}.relative:has(.hero-wash) .grid.grid-cols-2{grid-template-columns:1fr!important}.relative:has(.hero-wash) .py-24{padding-top:2.25rem!important;padding-bottom:2.25rem!important}.relative:has(.hero-wash) .flex{gap:.75rem!important}.relative:has(.hero-wash) a{width:100%;justify-content:center!important}section{padding-top:3rem!important;padding-bottom:3rem!important}}


/* CCA quote form premium background */
#quote{position:relative!important;background:linear-gradient(135deg,rgba(7,89,133,.88),rgba(11,120,173,.72)),url('/assets/img/curtain-cleaning-hero.webp') center/cover fixed!important;color:#fff!important;overflow:hidden!important}#quote:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.20),transparent 30%),linear-gradient(180deg,rgba(255,255,255,.08),rgba(0,0,0,.08));pointer-events:none}#quote>*{position:relative;z-index:1}#quote h2,#quote p,#quote label{color:#fff!important}#quote .max-w-2xl{background:rgba(255,255,255,.94)!important;color:#0b3551!important;border:1px solid rgba(255,255,255,.72)!important;border-radius:30px!important;padding:34px!important;box-shadow:0 30px 80px rgba(4,40,64,.25)!important;backdrop-filter:blur(12px)!important}#quote .max-w-2xl label{color:#075985!important;font-weight:900!important}#quote .max-w-2xl input,#quote .max-w-2xl textarea{background:#fff!important;border:1px solid #ccecff!important;box-shadow:0 8px 22px rgba(11,120,173,.08)!important}#quote .max-w-2xl .cca-form-note{background:#e8f7ff!important;color:#0b3551!important;border:1px solid #bfe8fa!important}#quote .max-w-2xl + *,#quote form + a{color:#075985!important}#quote a[href^="tel"],#quote .max-w-2xl a{color:#075985!important;font-weight:900!important}#quote button{background:linear-gradient(135deg,#0b78ad,#075985)!important;color:#fff!important;border-radius:999px!important;padding:15px 26px!important}#quote .text-ink\/70,#quote .text-ink\/80{color:#dff5ff!important}
@media(max-width:640px){#quote{background-attachment:scroll!important}#quote .max-w-2xl{padding:22px!important;border-radius:24px!important}}


/* CCA desktop services dropdown fix */
@media(min-width:1024px){
  header nav .group{position:relative!important}
  header nav .group > div{left:50%!important;transform:translateX(-50%)!important;top:100%!important;width:420px!important;max-width:min(92vw,420px)!important;padding-top:14px!important;z-index:9999!important}
  header nav .group > div > div{background:#fff!important;border:1px solid #d8edf8!important;border-radius:18px!important;box-shadow:0 24px 70px rgba(7,89,133,.18)!important;padding:10px!important;max-height:none!important;overflow:visible!important}
  header nav .group > div a{display:grid!important;grid-template-columns:22px 1fr!important;gap:10px!important;align-items:start!important;padding:12px!important;border-radius:12px!important;min-height:auto!important;white-space:normal!important;color:#0b3551!important;text-decoration:none!important}
  header nav .group > div a:hover{background:#e8f7ff!important}
  header nav .group > div a span{min-width:0!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;line-height:1.25!important}
  header nav .group > div a span.block.font-semibold{font-size:14px!important;color:#075985!important;font-weight:900!important;line-height:1.15!important;margin-bottom:3px!important}
  header nav .group > div a span.block.text-xs{font-size:12px!important;color:#526b7e!important;line-height:1.32!important;display:block!important}
  header nav .group > div a > span:first-child{color:#0b78ad!important;font-weight:900!important;margin-top:1px!important}
}
@media(max-width:1023px){header nav .group > div{display:none!important}}


/* CCA quote hero readability fix */
#quote{background:linear-gradient(135deg,#e8f7ff 0%,#d8f2ff 55%,#f7fcff 100%)!important;color:#0b3551!important;overflow:hidden!important}#quote:before{background:radial-gradient(circle at 18% 12%,rgba(11,120,173,.14),transparent 32%),radial-gradient(circle at 88% 30%,rgba(47,139,58,.10),transparent 28%)!important}#quote .max-w-3xl,#quote .mx-auto.text-center{background:rgba(255,255,255,.92)!important;color:#0b3551!important;border:1px solid #bfe8fa!important;border-radius:28px!important;padding:28px!important;box-shadow:0 20px 55px rgba(11,120,173,.14)!important}#quote .max-w-3xl h2,#quote .mx-auto.text-center h2,#quote h2{color:#075985!important;text-shadow:none!important}#quote .max-w-3xl p,#quote .mx-auto.text-center p,#quote p{color:#35546a!important;text-shadow:none!important}#quote .text-white,#quote .text-white\/80,#quote .text-white\/90{color:#075985!important}#quote .max-w-2xl{background:#ffffff!important;color:#0b3551!important;border:1px solid #bfe8fa!important;box-shadow:0 26px 70px rgba(11,120,173,.18)!important}#quote .max-w-2xl p,#quote .max-w-2xl span{color:#35546a!important}#quote .max-w-2xl label{color:#075985!important}


/* CCA form fields: always visible borders */
#quote form input,#quote form textarea,#quote form select{border:2px solid #0b78ad!important;border-radius:16px!important;background:#ffffff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 8px 22px rgba(11,120,173,.08)!important;color:#0b3551!important;min-height:52px!important;padding:14px 16px!important;outline:none!important}#quote form textarea{min-height:135px!important;resize:vertical!important}#quote form input:hover,#quote form textarea:hover,#quote form select:hover{border-color:#075985!important}#quote form input:focus,#quote form textarea:focus,#quote form select:focus{border-color:#075985!important;box-shadow:0 0 0 4px rgba(11,120,173,.18),0 10px 26px rgba(11,120,173,.12)!important}#quote form input:-webkit-autofill,#quote form textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fff inset!important;-webkit-text-fill-color:#0b3551!important;border:2px solid #0b78ad!important}

/* 2026-07-11 Hermes: force native quote submit button label white on dark blue CTA. */
#quote form[data-native-quote-form] button[type="submit"],
#quote form[data-native-quote-form] button[type="submit"] *,
form[data-native-quote-form] button[type="submit"],
form[data-native-quote-form] button[type="submit"] *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  text-shadow:0 1px 1px rgba(0,0,0,.18)!important;
}



/* CCA reduce blank-space pass */
section.py-16,section.md\:py-24{padding-top:3.25rem!important;padding-bottom:3.25rem!important}.cca-trust-strip{padding-top:14px!important;padding-bottom:14px!important}.cca-trust-item{padding:14px 16px!important}.bg-mist{background:#f3fbff!important}.bg-mist .max-w-5xl,.bg-white .max-w-5xl{margin-top:0!important}.bg-white:has(.grid.md\:grid-cols-3){padding-top:2.5rem!important;padding-bottom:2.5rem!important}.bg-white:has(.grid.md\:grid-cols-3) .grid{gap:1rem!important}.bg-white:has(.grid.md\:grid-cols-3) .rounded-3xl{padding:1.4rem!important;background:#eef9ff!important;border:1px solid #ccecff!important}.bg-white:has(.grid.md\:grid-cols-3) h3{margin-bottom:.45rem!important}.bg-white:has(.grid.md\:grid-cols-3) p{line-height:1.45!important}.relative:has(.hero-wash) .py-24{padding-bottom:3rem!important}@media(max-width:640px){section.py-16,section.md\:py-24{padding-top:2.25rem!important;padding-bottom:2.25rem!important}.bg-white:has(.grid.md\:grid-cols-3){padding-top:1.75rem!important;padding-bottom:1.75rem!important}.bg-white:has(.grid.md\:grid-cols-3) .grid{gap:.85rem!important}}


/* CCA hero font-size correction */
.relative:has(.hero-wash) h1{font-size:clamp(2.25rem,3.7vw,4.1rem)!important;line-height:1.04!important;letter-spacing:-.04em!important;max-width:620px!important}.relative:has(.hero-wash) p{font-size:clamp(.98rem,1.15vw,1.15rem)!important;line-height:1.55!important;max-width:610px!important}.relative:has(.hero-wash) .text-sm,.relative:has(.hero-wash) .text-base{font-size:.9rem!important}.relative:has(.hero-wash) .py-24{padding-top:4rem!important;padding-bottom:3.2rem!important}@media(max-width:900px){.relative:has(.hero-wash) h1{font-size:2.55rem!important;max-width:520px!important}}@media(max-width:640px){.relative:has(.hero-wash) h1{font-size:2.2rem!important;line-height:1.06!important}.relative:has(.hero-wash) p{font-size:.96rem!important}}


/* CCA rich SEO content sections */
.cca-rich-section,.cca-pricing-info,.cca-faq-rich{background:linear-gradient(180deg,#ffffff 0%,#f4fbff 100%);padding:54px 16px}.cca-process-detail{background:linear-gradient(135deg,#e8f7ff,#ffffff);padding:54px 16px}.cca-rich-wrap,.cca-process-wrap{max-width:1180px;margin:0 auto}.cca-rich-intro{max-width:780px;margin-bottom:26px}.cca-eyebrow{color:#0b78ad!important;text-transform:uppercase;letter-spacing:.08em;font-weight:900;font-size:.82rem;margin-bottom:8px}.cca-rich-section h2,.cca-process-detail h2,.cca-pricing-info h2,.cca-faq-rich h2{color:#075985!important;font-size:clamp(2rem,3vw,3rem);line-height:1.08;margin-bottom:14px;letter-spacing:-.04em}.cca-rich-section p,.cca-process-detail p,.cca-pricing-info p,.cca-faq-rich p{color:#475569;line-height:1.65}.cca-rich-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cca-rich-grid article,.cca-faq-grid>div{background:#fff;border:1px solid #ccecff;border-radius:24px;padding:24px;box-shadow:0 14px 36px rgba(11,120,173,.08)}.cca-rich-grid h3,.cca-faq-grid h3,.cca-process-steps h3{color:#075985!important;font-weight:900;margin-bottom:8px}.cca-rich-grid ul{margin-top:12px;padding-left:18px;color:#475569}.cca-rich-grid li{margin:.42rem 0}.cca-process-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:28px;align-items:start}.cca-process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cca-process-steps>div{background:#fff;border:1px solid #bfe8fa;border-radius:22px;padding:22px;box-shadow:0 14px 34px rgba(11,120,173,.08)}.cca-process-steps strong{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:999px;background:#0b78ad;color:#fff;margin-bottom:12px}.cca-faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:900px){.cca-rich-grid,.cca-process-wrap,.cca-process-steps,.cca-faq-grid{grid-template-columns:1fr}.cca-rich-section,.cca-process-detail,.cca-pricing-info,.cca-faq-rich{padding:36px 16px}}
