
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600&family=Playfair+Display:wght@400..900&display=swap');

:root{
  --navy:#1f2d67;
  --navy-deep:#18234f;
  --ink:#1f2430;
  --muted:#6f7480;
  --line:#e8eaf0;
  --white:#ffffff;
  --soft:#f7f8fb;
  --shadow:0 22px 60px rgba(20,32,74,.12);
  --radius:24px;
  --max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:#ffffff;
  color:var(--ink);
  font-family:"Manrope",sans-serif;
  line-height:1.55;
  font-weight:400;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(var(--max), calc(100% - 40px));margin:0 auto}

h1,h2,h3,h4,h5,h6{
  font-family:"Playfair Display",serif;
  font-weight:450;
}

/* HEADER */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(31,45,103,.08);
}
.nav{
  min-height:82px;
  display:flex;align-items:center;justify-content:space-between;gap:28px;
}
.brand{display:flex;align-items:center;gap:14px}
.brand img{width:58px;height:58px;object-fit:contain}
.brand-text{font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);font-weight:600}
nav{display:flex;align-items:center;gap:26px;font-size:.95rem}
nav a{position:relative}
nav a:after{
  content:"";position:absolute;left:0;bottom:-8px;width:0;height:2px;background:var(--navy);transition:.25s ease
}
nav a:hover:after{width:100%}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:13px 20px;border-radius:999px;border:1px solid var(--navy);
  transition:.25s ease;font-weight:500
}
.btn.primary{background:var(--navy);color:#fff}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(31,45,103,.22)}
.btn.ghost:hover{background:var(--navy);color:#fff}

/* HERO */
.hero{
  min-height:78vh;
  display:grid;align-items:end;
  position:relative;
  background:
    linear-gradient(90deg, rgba(15,24,60,.78) 0%, rgba(15,24,60,.48) 36%, rgba(15,24,60,.08) 72%),
    url('/assets/hero.jpg') center 44%/cover no-repeat;
  color:#fff;
}
.hero-inner{padding:120px 0 86px}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;margin-bottom:18px
}
.eyebrow:before{content:"";width:36px;height:1px;background:currentColor;opacity:.7}
h1{
  font-size:clamp(3rem,7vw,6.5rem);
  line-height:.96;
  margin:0;
  max-width:900px;
  letter-spacing:-.045em;
}
.hero p{
  max-width:650px;
  font-size:clamp(1.08rem,1.8vw,1.35rem);
  color:rgba(255,255,255,.9);
  margin:24px 0 30px;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero .btn.ghost{border-color:#fff;color:#fff}
.trustline{margin-top:22px;font-size:.9rem;opacity:.82}

/* FLASHY DIVIDERS */
.divider{
  height:84px;position:relative;background:#fff;overflow:hidden
}
.divider:before{
  content:"";
  position:absolute;left:50%;top:50%;
  width:min(1160px,90vw);height:1px;background:linear-gradient(90deg,transparent,var(--navy),transparent);
  transform:translate(-50%,-50%);
  opacity:.28;
}
.divider:after{
  content:"";
  position:absolute;left:50%;top:50%;
  width:14px;height:14px;border:1px solid var(--navy);
  background:#fff;transform:translate(-50%,-50%) rotate(45deg);
  box-shadow:0 0 0 10px #fff;
}

section{padding:92px 0}
.section-head{max-width:760px;margin-bottom:42px}
.section-head h2{
  font-size:clamp(2.2rem,4vw,4rem);
  line-height:1.03;margin:8px 0 14px;letter-spacing:-.035em
}
.section-head p{font-size:1.08rem;color:var(--muted);margin:0}

/* SERVICES — same exact card style */
.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px
}
.service-card{
  min-height:270px;
  padding:24px;
  border:1px solid var(--line);
  border-radius:22px;
  position:relative;
  overflow:hidden;
  transition:.3s ease;
  background:#fff;
}
.service-card:hover{
  transform:translateY(-6px);
  border-color:rgba(31,45,103,.28);
  box-shadow:var(--shadow);
}
.service-card .num{
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);font-weight:600
}
.service-card h3{font-size:1.35rem;line-height:1.15;margin:48px 0 10px}
.service-card p{font-size:.92rem;color:var(--muted)}
.service-card .arrow{position:absolute;right:22px;bottom:20px;font-size:1.35rem;color:var(--navy)}

/* TEAM BLOCK */
.team-block{
  display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center
}
.team-photo{
  border-radius:28px;overflow:hidden;box-shadow:var(--shadow);position:relative
}
.team-photo:after{
  content:"";position:absolute;inset:auto 20px 20px auto;width:80px;height:80px;border:1px solid rgba(255,255,255,.75);transform:rotate(45deg)
}
.team-copy h2{font-size:clamp(2.2rem,4.2vw,4.5rem);line-height:1.02;letter-spacing:-.04em;margin:10px 0 18px}
.team-copy p{color:var(--muted);font-size:1.06rem}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.mini{
  border-top:2px solid var(--navy);padding-top:14px
}
.mini h3{font-size:1rem;margin:0 0 6px}
.mini p{font-size:.9rem;margin:0}

/* PROJECT PHOTO BLOCK — keeps the original white-space style */
.projects-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
}
.project-large,
.project-small{
  overflow:hidden;
  border-radius:28px;
  box-shadow:var(--shadow);
}
.project-large img{
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
}
.project-stack{
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:18px;
}
.project-small img{
  width:100%;
  height:251px;
  object-fit:cover;
}

/* VALUES */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.value{
  padding:30px 0;border-top:1px solid var(--navy)
}
.value h3{font-size:1.6rem;margin:0 0 8px}
.value p{color:var(--muted);margin:0}

/* SHOWCASE STRIP */
.showcase{
  border-radius:28px;
  background:var(--navy);
  color:#fff;
  padding:52px;
  display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;
  position:relative;overflow:hidden
}
.showcase:after{
  content:"";
  position:absolute;width:300px;height:300px;border:1px solid rgba(255,255,255,.15);
  border-radius:50%;right:-80px;top:-110px
}
.showcase h2{font-size:clamp(2.2rem,4vw,4.1rem);line-height:1.03;margin:0 0 12px;letter-spacing:-.04em}
.showcase p{color:rgba(255,255,255,.82);max-width:640px}
.showcase .btn{border-color:#fff;color:#fff;justify-self:end}
.showcase .btn:hover{background:#fff;color:var(--navy)}

/* LOCAL */
.local{
  display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start
}
.local h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.03;margin:8px 0 14px;letter-spacing:-.035em}
.city-list{display:flex;flex-wrap:wrap;gap:10px}
.city-list a{
  padding:10px 14px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.92rem
}
.city-list a:hover{border-color:var(--navy);color:var(--navy)}

/* FAQ */
.faq{max-width:900px}
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;
  background:#fff;
  border:0;
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  gap:24px;
  text-align:left;
  cursor:pointer;
  color:var(--ink)
}
.faq-q span:first-child{
  font-family:"Playfair Display",serif;
  font-weight:450;
  font-size:1.35rem
}
.plus{font-size:1.45rem;color:var(--navy);transition:.25s}
.faq-a{display:none;padding:0 44px 22px 0;color:var(--muted)}
.faq-item.open .faq-a{display:block}
.faq-item.open .plus{transform:rotate(45deg)}

/* SUBPAGES */
.page-hero{padding:92px 0}
.page-hero h1{
  color:var(--ink);
  font-size:clamp(3rem,6vw,5.4rem);
  max-width:920px;
  margin-bottom:22px
}
.page-hero p{font-size:1.08rem;color:var(--muted);max-width:760px}
.contact-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:64px;
  align-items:start
}
.form-card{
  border:1px solid var(--line);
  border-radius:28px;
  padding:32px;
  box-shadow:var(--shadow)
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
label{font-size:.9rem;font-weight:600}
input,select,textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid #dfe3ea;
  border-radius:12px;
  background:#fff;
  color:var(--ink)
}
textarea{min-height:150px;resize:vertical}
.honeypot{position:absolute;left:-9999px}

/* FOOTER */
footer{padding:50px 0 34px;border-top:1px solid var(--line)}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-grid img{width:68px}
.small{font-size:.86rem;color:var(--muted)}

/* Reveal */
.reveal{opacity:0;transform:translateY(24px);transition:.7s ease}
.reveal.visible{opacity:1;transform:none}

@media (max-width: 980px){
  nav a:not(.btn){display:none}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .team-block,.local,.showcase,.projects-grid,.contact-grid{grid-template-columns:1fr}
  .showcase .btn{justify-self:start}
}
@media (max-width: 640px){
  .wrap{width:min(100% - 24px,var(--max))}
  .hero{min-height:74vh;background-position:58% center}
  .hero-inner{padding:96px 0 58px}
  section{padding:68px 0}
  .services-grid,.values,.mini-grid,.form-grid{grid-template-columns:1fr}
  .service-card{min-height:210px}
  .showcase{padding:32px}
  .brand-text{display:none}
}


/* WINDOW CLEANING SERVICE PAGE EXTENSIONS */
.service-detail{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:start;
}
.service-detail h2{
  font-size:clamp(2.2rem,4vw,4rem);
  line-height:1.03;
  margin:8px 0 16px;
  letter-spacing:-.035em;
}
.service-detail p{font-size:1.06rem;color:var(--muted)}
.checklist{display:grid;gap:14px;margin-top:28px}
.check{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:14px;
  align-items:start;
}
.check-mark{
  width:30px;height:30px;border-radius:50%;
  background:var(--navy);color:#fff;
  display:grid;place-items:center;
  font-size:.82rem;font-weight:600;
}
.check h3{font-size:1.1rem;margin:0 0 4px}
.check p{margin:0;font-size:.94rem}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.step{border-top:1px solid var(--navy);padding-top:22px}
.step .num{font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;color:var(--navy);font-weight:600}
.step h3{font-size:1.4rem;margin:10px 0 8px}
.step p{color:var(--muted);margin:0}
.split-copy{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.split-copy h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.03;margin:8px 0 14px;letter-spacing:-.035em}
.split-copy p{font-size:1.06rem;color:var(--muted)}
.link-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
@media(max-width:980px){
  .service-detail,.split-copy{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
}


/* SERVICES DROPDOWN */
.nav-item.dropdown{position:relative}
.dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
}
.dropdown-toggle .chevron{
  font-size:.72rem;
  transition:transform .25s ease;
}
.dropdown-menu{
  position:absolute;
  top:calc(100% + 18px);
  left:-18px;
  min-width:255px;
  padding:10px;
  background:#fff;
  border:1px solid rgba(31,45,103,.10);
  border-radius:18px;
  box-shadow:0 22px 55px rgba(20,32,74,.16);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:.22s ease;
}
.dropdown-menu:before{
  content:"";
  position:absolute;
  top:-18px;
  left:0;
  right:0;
  height:18px;
}
.dropdown-menu a{
  display:block;
  padding:11px 12px;
  border-radius:11px;
  color:var(--ink);
  font-size:.92rem;
}
.dropdown-menu a:after{display:none!important}
.dropdown-menu a:hover{
  background:var(--soft);
  color:var(--navy);
}
.dropdown:hover .dropdown-menu,
.dropdown:focus-within .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.dropdown:hover .chevron,
.dropdown:focus-within .chevron{
  transform:rotate(180deg);
}
@media(max-width:980px){
  .nav-item.dropdown{display:none}
}


/* IDEAS / INSPIRATION PANEL */
.ideas-panel{
  position:relative;
  overflow:hidden;
  max-width:980px;
  margin:0 auto;
  padding:86px 88px;
  text-align:center;
  border:1px solid var(--line);
  border-radius:32px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%);
  box-shadow:0 26px 70px rgba(20,32,74,.08);
}
.ideas-pill{
  width:max-content;
  margin:0 auto 28px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#526071;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ideas-dot{
  width:8px;height:8px;border-radius:50%;background:var(--navy);
  box-shadow:0 0 0 6px rgba(31,45,103,.06)
}
.ideas-panel h2{
  position:relative;
  z-index:2;
  max-width:800px;
  margin:0 auto 28px;
  font-size:clamp(2.5rem,5vw,4.8rem);
  line-height:1.08;
  letter-spacing:-.035em;
}
.ideas-panel p{
  position:relative;
  z-index:2;
  max-width:760px;
  margin:0 auto 34px;
  color:var(--muted);
  font-size:1.06rem;
  line-height:1.75;
}
.ideas-btn{
  position:relative;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:18px;
  padding:15px 30px;
  border-radius:999px;
  background:var(--navy);
  color:#fff;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  transition:.25s ease;
  box-shadow:0 14px 30px rgba(31,45,103,.16);
}
.ideas-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(31,45,103,.22);
}
.ideas-orbit{
  position:absolute;
  width:300px;
  height:300px;
  border:1px solid rgba(31,45,103,.09);
  border-radius:50%;
  pointer-events:none;
}
.ideas-orbit-top{right:-120px;top:-140px}
.ideas-orbit-bottom{left:-140px;bottom:-180px}

.city-list span{
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:.92rem;
}

@media(max-width:640px){
  .ideas-panel{padding:58px 24px}
}


/* FULL SERVICE AREA GRID */
.service-area-full-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.service-area-full-grid span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:72px;
  padding:16px 20px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:linear-gradient(135deg,var(--navy-deep),#18283c);
  color:#fff;
  font-size:1.05rem;
  text-align:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
@media(max-width:760px){
  .service-area-full-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .service-area-full-grid{grid-template-columns:1fr}
}


/* WINDOW CLEANING PREVIEW PAGE */
.service-hero{
  min-height:72vh;
  display:grid;
  align-items:end;
  color:#fff;
  position:relative;
  background:
    linear-gradient(90deg, rgba(15,24,60,.78) 0%, rgba(15,24,60,.50) 38%, rgba(15,24,60,.10) 72%),
    url('/assets/window-cleaning-hero.png') center 48%/cover no-repeat;
}
.service-hero .hero-inner{padding:118px 0 82px}
.service-hero h1{
  color:#fff;
  max-width:900px;
}
.service-hero p{
  max-width:650px;
  font-size:clamp(1.08rem,1.8vw,1.3rem);
  color:rgba(255,255,255,.9);
  margin:24px 0 30px;
}
.service-hero .btn.ghost{border-color:#fff;color:#fff}

.service-intro{
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:72px;
  align-items:start;
}
.service-intro h2,
.story-block h2,
.faq-intro h2{
  font-size:clamp(2.2rem,4vw,4rem);
  line-height:1.03;
  letter-spacing:-.035em;
  margin:8px 0 16px;
}
.service-intro p,
.story-block p{
  color:var(--muted);
  font-size:1.06rem;
}
.promise-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:38px;
}
.promise{
  border-top:1px solid var(--navy);
  padding-top:20px;
}
.promise h3{
  font-size:1.28rem;
  margin:0 0 8px;
}
.promise p{font-size:.94rem;margin:0;color:var(--muted)}

.process-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.process-card{
  min-height:250px;
  border:1px solid var(--line);
  border-radius:22px;
  padding:24px;
  background:#fff;
  transition:.3s ease;
}
.process-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow);
  border-color:rgba(31,45,103,.28);
}
.process-card .num{
  font-size:.72rem;
  color:var(--navy);
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:600;
}
.process-card h3{
  font-size:1.45rem;
  line-height:1.15;
  margin:44px 0 10px;
}
.process-card p{
  color:var(--muted);
  font-size:.94rem;
}

.story-block{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:64px;
  align-items:center;
}
.story-image{
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.story-image img{
  width:100%;
  height:100%;
  min-height:470px;
  object-fit:cover;
}

.include-list{
  display:grid;
  gap:14px;
  margin-top:26px;
}
.include-item{
  display:grid;
  grid-template-columns:32px 1fr;
  gap:12px;
  align-items:start;
}
.include-dot{
  width:28px;height:28px;
  border-radius:50%;
  display:grid;place-items:center;
  background:var(--navy);
  color:#fff;
  font-size:.78rem;
  margin-top:1px;
}
.include-item h3{
  font-size:1.06rem;
  margin:0 0 4px;
}
.include-item p{
  margin:0;
  font-size:.92rem;
}

@media(max-width:980px){
  .service-intro,.story-block{grid-template-columns:1fr}
  .promise-grid,.process-grid{grid-template-columns:1fr}
}


/* RESULTS PAGE */
.results-hero{
  padding:108px 0 72px;
  background:#fff;
}
.results-hero h1{
  color:var(--ink);
  max-width:920px;
}
.results-hero p{
  max-width:760px;
  color:var(--muted);
  font-size:1.08rem;
}
.results-intro{
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:72px;
  align-items:start;
}
.results-intro h2{
  font-size:clamp(2.2rem,4vw,4rem);
  line-height:1.03;
  letter-spacing:-.035em;
  margin:8px 0 14px;
}
.results-intro p{
  color:var(--muted);
  font-size:1.06rem;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.gallery-card{
  overflow:hidden;
  border-radius:24px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 16px 36px rgba(20,32,74,.07);
}
.gallery-card img{
  width:100%;
  height:320px;
  object-fit:cover;
  transition:.45s ease;
}
.gallery-card:hover img{transform:scale(1.035)}
.gallery-card .caption{
  padding:15px 18px 18px;
}
.gallery-card h3{
  margin:0 0 5px;
  font-size:1.2rem;
}
.gallery-card p{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
}
.compare-block{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-bottom:40px;
}
.compare-block figure{
  margin:0;
  overflow:hidden;
  border-radius:24px;
  border:1px solid var(--line);
  background:#fff;
}
.compare-block img{
  width:100%;
  height:420px;
  object-fit:cover;
}
.compare-block figcaption{
  padding:14px 16px;
  color:var(--muted);
  font-size:.9rem;
}
.faith-note{
  max-width:920px;
  margin:0 auto;
  text-align:center;
}
.faith-note h2{
  font-size:clamp(2.2rem,4vw,4rem);
  line-height:1.03;
  margin:8px 0 14px;
}
.faith-note p{
  color:var(--muted);
  font-size:1.05rem;
}
@media(max-width:980px){
  .results-intro{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .gallery-grid,.compare-block{grid-template-columns:1fr}
  .gallery-card img,.compare-block img{height:300px}
}


/* ==========================================================
   TARGETED STYLE EDITS — PRESERVE EXISTING SITE LAYOUT
   ========================================================== */

/* White navigation, same layout */
.site-header,
header{
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid rgba(31,45,103,.10)!important;
  backdrop-filter:blur(14px);
  box-shadow:0 8px 28px rgba(20,32,74,.05);
}
header nav{color:var(--ink)!important}
header .brand-text{color:var(--navy)!important}
header .brand img{
  background:transparent!important;
  border-radius:0!important;
  padding:0!important;
  box-shadow:none!important;
}
header nav > a:not(.btn),
header .dropdown-toggle{
  color:var(--ink)!important;
}
header nav > a:not(.btn):hover,
header .dropdown-toggle:hover{
  color:var(--navy)!important;
}

/* Real dropdown, hidden until hover/click */
.nav-item.dropdown{position:relative}
.dropdown-toggle{
  appearance:none;
  border:0;
  background:transparent;
  font:inherit;
  display:inline-flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
  padding:10px 4px;
  color:inherit;
}
.chevron{font-size:.75rem;transition:transform .2s ease}
.dropdown-menu{
  display:none!important;
  position:absolute;
  top:calc(100% + 14px);
  left:-18px;
  min-width:250px;
  padding:10px;
  background:#fff;
  border:1px solid rgba(31,45,103,.12);
  border-radius:18px;
  box-shadow:0 22px 52px rgba(20,32,74,.16);
  z-index:200;
}
.dropdown:hover .dropdown-menu,
.dropdown:focus-within .dropdown-menu,
.dropdown.open .dropdown-menu{
  display:block!important;
  animation:kleanDrop .18s ease both;
}
.dropdown:hover .chevron,
.dropdown.open .chevron{transform:rotate(180deg)}
.dropdown-menu a{
  display:block;
  padding:11px 12px;
  border-radius:11px;
  color:var(--ink)!important;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.dropdown-menu a:hover{
  background:rgba(31,45,103,.06);
  color:var(--navy)!important;
  transform:translateX(3px);
}
@keyframes kleanDrop{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}

/* Keep existing sections; add polish only */
.service-card,
.value,
.mini,
.process-card,
.promise,
.form-card,
.gallery-card,
.faq-item{
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease;
}
.service-card:hover,
.value:hover,
.mini:hover,
.process-card:hover,
.promise:hover,
.form-card:hover,
.gallery-card:hover{
  transform:translateY(-5px);
  border-color:rgba(31,45,103,.22)!important;
  box-shadow:0 20px 46px rgba(20,32,74,.10);
}
.service-card .arrow{
  transition:transform .22s ease;
}
.service-card:hover .arrow{transform:translate(3px,-3px)}

/* Heading accents without changing layout */
.section-head h2,
.team-copy h2,
.local h2,
.page-hero h1,
.service-intro h2,
.story-block h2{
  position:relative;
}
.section-head h2::after,
.team-copy h2::after,
.local h2::after,
.service-intro h2::after,
.story-block h2::after{
  content:"";
  display:block;
  width:72px;
  height:3px;
  margin-top:15px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--navy),rgba(31,45,103,.08));
  transition:width .35s ease;
}
.reveal.visible h2::after{width:115px}

/* Buttons keep proportions */
.btn{
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.btn:hover{transform:translateY(-2px)}
.showcase .btn{
  width:max-content!important;
  min-width:0!important;
  padding:12px 18px!important;
  white-space:nowrap;
}

/* Service areas: keep page, make towns distinct */
.service-area-full-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
}
.service-area-full-grid span{
  display:flex!important;
  align-items:center;
  justify-content:center;
  min-height:68px;
  padding:14px 16px!important;
  border:1px solid rgba(31,45,103,.12)!important;
  border-radius:16px!important;
  background:#fff!important;
  color:var(--ink)!important;
  box-shadow:0 10px 24px rgba(20,32,74,.04);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.service-area-full-grid span:hover{
  transform:translateY(-3px);
  border-color:rgba(31,45,103,.30)!important;
  box-shadow:0 15px 30px rgba(20,32,74,.08);
}

/* Service areas check-address CTA: proportional, not giant */
.page-areas .showcase,
body:has(.service-area-full-grid) .showcase{
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
}
.page-areas .showcase .btn,
body:has(.service-area-full-grid) .showcase .btn{
  width:max-content!important;
  min-width:0!important;
  justify-self:end!important;
  padding:11px 17px!important;
}

/* FAQ as cleaner interactive rows */
.faq-item{
  border:1px solid var(--line)!important;
  border-radius:15px;
  overflow:hidden;
  margin-bottom:10px;
}
.faq-item:hover{
  border-color:rgba(31,45,103,.18)!important;
  box-shadow:0 12px 28px rgba(20,32,74,.05);
}
.faq-q{padding:19px 18px!important}
.faq-a{padding:0 42px 19px 18px!important}

/* Existing reveal remains; slightly smoother */
.reveal{
  transition:opacity .65s ease,transform .65s cubic-bezier(.2,.75,.2,1)!important;
}

/* Results photos: subtle hover only, same existing layout */
.gallery-card img{
  transition:transform .4s ease,filter .4s ease;
}
.gallery-card:hover img{
  transform:scale(1.025);
  filter:saturate(1.04);
}

@media(max-width:980px){
  .service-area-full-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:640px){
  .service-area-full-grid{grid-template-columns:1fr!important}
  .page-areas .showcase,
  body:has(.service-area-full-grid) .showcase{
    grid-template-columns:1fr!important;
  }
  .page-areas .showcase .btn,
  body:has(.service-area-full-grid) .showcase .btn{
    justify-self:start!important;
  }
}


/* ==========================================================
   NAVIGATION + RESULTS GRID REFINEMENT
   Only these components are changed.
   ========================================================== */

.sr-only{
  position:absolute!important;
  width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;border:0!important;
}

/* NAVIGATION */
.refined-header{
  background:#fff!important;
  border-bottom:1px solid rgba(31,45,103,.09)!important;
  box-shadow:0 8px 28px rgba(20,32,74,.045)!important;
  backdrop-filter:none!important;
}
.nav-wide{
  width:min(1380px,calc(100% - 44px));
  min-height:86px;
  margin:0 auto;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:34px;
}
.refined-brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:max-content;
}
.refined-brand img{
  width:62px!important;
  height:62px!important;
  object-fit:contain;
  border-radius:0!important;
}
.refined-brand .brand-text{
  max-width:155px;
  font-size:.74rem!important;
  line-height:1.35;
  letter-spacing:.16em!important;
  color:var(--navy)!important;
}

.primary-nav{
  justify-self:center;
  display:flex!important;
  align-items:center;
  gap:4px!important;
  padding:5px;
  border:1px solid rgba(31,45,103,.08);
  border-radius:999px;
  background:#f8f9fc;
  font-size:.88rem!important;
}
.primary-nav > a,
.primary-nav .dropdown-toggle{
  position:relative;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 15px!important;
  border-radius:999px!important;
  color:#343a47!important;
  font-size:.88rem!important;
  font-weight:500;
  white-space:nowrap;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.primary-nav > a::after{display:none!important}
.primary-nav > a:hover,
.primary-nav .dropdown-toggle:hover,
.primary-nav .dropdown.open .dropdown-toggle{
  color:var(--navy)!important;
  background:#fff!important;
  box-shadow:0 5px 14px rgba(20,32,74,.07);
  transform:translateY(-1px);
}
.primary-nav .dropdown-toggle{
  appearance:none;
  border:0!important;
  background:transparent;
  font:inherit;
  cursor:pointer;
}
.primary-nav .chevron{
  margin-left:3px;
  font-size:.72rem;
}

/* Dropdown: compact, clean, actually reads as a menu */
.refined-dropdown{
  left:0!important;
  top:calc(100% + 14px)!important;
  width:440px!important;
  min-width:440px!important;
  padding:14px!important;
  border-radius:20px!important;
  border:1px solid rgba(31,45,103,.11)!important;
  background:#fff!important;
  box-shadow:0 24px 60px rgba(20,32,74,.16)!important;
}
.dropdown-label{
  padding:4px 8px 10px;
  color:var(--navy);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.67rem;
  font-weight:600;
}
.dropdown-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.refined-dropdown .dropdown-grid a{
  min-height:56px;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 13px!important;
  border:1px solid rgba(31,45,103,.075);
  border-radius:13px!important;
  background:#fff;
  color:var(--ink)!important;
  font-size:.84rem!important;
}
.refined-dropdown .dropdown-grid a:hover{
  background:#f6f7fb!important;
  border-color:rgba(31,45,103,.16);
  transform:none!important;
}
.refined-dropdown .dropdown-grid a b{
  color:var(--navy);
  font-weight:400;
  transition:transform .2s ease;
}
.refined-dropdown .dropdown-grid a:hover b{
  transform:translate(2px,-2px);
}

.nav-actions{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:max-content;
}
.nav-phone{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:10px 11px;
  color:var(--navy);
  font-size:.82rem;
  font-weight:600;
  white-space:nowrap;
}
.nav-phone::after{display:none!important}
.phone-dot{
  font-size:1.25rem;
  line-height:0;
}
.nav-book{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:48px;
  padding:0 18px;
  border-radius:999px;
  background:var(--navy);
  color:#fff!important;
  font-size:.84rem;
  font-weight:600;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(31,45,103,.17);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.nav-book::after{display:none!important}
.nav-book:hover{
  background:var(--navy-deep);
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(31,45,103,.24);
}

.mobile-menu-toggle,
.mobile-menu{
  display:none;
}

/* RESULTS: actual gallery grid, not poster-sized cards */
.page-results .gallery-grid,
.results-hero ~ section .gallery-grid,
.gallery-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:start;
}
.gallery-card{
  border-radius:18px!important;
  box-shadow:0 10px 26px rgba(20,32,74,.07)!important;
  overflow:hidden!important;
}
.gallery-card img{
  display:block;
  width:100%!important;
  height:auto!important;
  aspect-ratio:4 / 3;
  object-fit:cover!important;
}
.gallery-card .caption{
  padding:12px 14px 14px!important;
}
.gallery-card h3{
  font-size:1rem!important;
  line-height:1.2;
  margin:0 0 4px!important;
}
.gallery-card p{
  font-size:.78rem!important;
  line-height:1.45;
}

/* Tablet */
@media(max-width:1120px){
  .nav-wide{
    grid-template-columns:auto 1fr auto;
    gap:18px;
  }
  .refined-brand .brand-text{display:none!important}
  .primary-nav > a,
  .primary-nav .dropdown-toggle{
    padding:0 11px!important;
    font-size:.83rem!important;
  }
  .nav-phone span:last-child{display:none}
  .nav-phone{padding:9px 3px}
}

/* Mobile */
@media(max-width:900px){
  .nav-wide{
    width:min(100% - 26px,1380px);
    min-height:76px;
    grid-template-columns:auto 1fr auto;
  }
  .refined-brand img{width:54px!important;height:54px!important}
  .primary-nav,
  .nav-actions{display:none!important}
  .mobile-menu-toggle{
    justify-self:end;
    display:flex!important;
    width:46px;height:46px;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    padding:0;
    border:1px solid rgba(31,45,103,.14);
    border-radius:50%;
    background:#fff;
    cursor:pointer;
  }
  .mobile-menu-toggle span:not(.sr-only){
    width:18px;
    height:1.5px;
    background:var(--navy);
    transition:transform .2s ease;
  }
  .mobile-menu-toggle.open span:first-child{transform:translateY(3.75px) rotate(45deg)}
  .mobile-menu-toggle.open span:nth-child(2){transform:translateY(-3.75px) rotate(-45deg)}
  .mobile-menu.open{
    display:block!important;
    background:#fff;
    border-top:1px solid rgba(31,45,103,.08);
  }
  .mobile-menu-inner{
    width:min(100% - 26px,760px);
    margin:0 auto;
    padding:18px 0 24px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
  }
  .mobile-menu-label{
    margin:0 0 8px;
    color:var(--navy);
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:.67rem;
    font-weight:600;
  }
  .mobile-services,
  .mobile-secondary{
    display:grid;
    gap:7px;
  }
  .mobile-services a,
  .mobile-secondary a{
    display:flex!important;
    justify-content:space-between;
    gap:10px;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    font-size:.86rem;
  }
  .mobile-services a::after,
  .mobile-secondary a::after{display:none!important}
  .mobile-book{
    background:var(--navy)!important;
    color:#fff!important;
    border-color:var(--navy)!important;
  }

  .gallery-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:680px){
  .mobile-menu-inner{grid-template-columns:1fr}
  .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .gallery-card .caption{padding:10px 11px 12px!important}
  .gallery-card h3{font-size:.9rem!important}
  .gallery-card p{font-size:.72rem!important}
}


/* ==========================================================
   FINAL NAV FIX — DESKTOP SERVICES DROPDOWN OPENS ON HOVER
   ========================================================== */

.hover-header{
  position:sticky;
  top:0;
  z-index:999;
  background:#fff!important;
  border-bottom:1px solid rgba(31,45,103,.09)!important;
  box-shadow:0 6px 22px rgba(20,32,74,.045)!important;
}
.hover-nav-wrap{
  min-height:84px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:34px;
}
.hover-brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.hover-brand img{
  width:62px!important;
  height:62px!important;
  object-fit:contain;
  border-radius:0!important;
  background:transparent!important;
}
.hover-brand .brand-text{
  color:var(--navy)!important;
  font-size:.74rem!important;
  line-height:1.35;
  letter-spacing:.16em!important;
}

.hover-nav{
  justify-self:center;
  display:flex!important;
  align-items:center;
  gap:30px!important;
}
.hover-nav-link{
  position:relative;
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  min-height:84px;
  padding:0!important;
  color:var(--ink)!important;
  font-size:.9rem!important;
  font-weight:500;
  white-space:nowrap;
}
.hover-nav-link::after{
  content:""!important;
  display:block!important;
  position:absolute;
  left:0;
  right:100%;
  bottom:21px;
  height:2px;
  background:var(--navy);
  transition:right .22s ease;
}
.hover-nav-link:hover::after,
.nav-dropdown:hover > .hover-nav-link::after{
  right:0;
}
.hover-nav-link:hover,
.nav-dropdown:hover > .hover-nav-link{
  color:var(--navy)!important;
}
.chevron{
  display:inline-block;
  font-size:.72rem;
  transition:transform .2s ease;
}
.nav-dropdown{
  position:relative;
  height:84px;
  display:flex;
  align-items:center;
}
.nav-dropdown:hover .chevron,
.nav-dropdown:focus-within .chevron{
  transform:rotate(180deg);
}

/* Invisible bridge so the menu stays open while the pointer moves downward. */
.nav-dropdown::after{
  content:"";
  position:absolute;
  left:-18px;
  right:-18px;
  top:100%;
  height:14px;
}

/* Hidden until HOVER. No click required on desktop. */
.hover-dropdown-menu{
  position:absolute;
  top:calc(100% + 10px);
  left:-20px;
  width:260px;
  padding:10px;
  background:#fff;
  border:1px solid rgba(31,45,103,.11);
  border-radius:16px;
  box-shadow:0 22px 52px rgba(20,32,74,.16);

  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(7px);
  transition:
    opacity .18s ease,
    transform .18s ease,
    visibility 0s linear .18s;
}
.nav-dropdown:hover .hover-dropdown-menu,
.nav-dropdown:focus-within .hover-dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
  transition-delay:0s;
}
.hover-dropdown-menu a{
  display:block!important;
  padding:11px 12px!important;
  border-radius:10px;
  color:var(--ink)!important;
  font-size:.86rem!important;
  background:#fff;
  transition:background .18s ease,color .18s ease,padding-left .18s ease;
}
.hover-dropdown-menu a::after{display:none!important}
.hover-dropdown-menu a:hover{
  background:#f5f7fb!important;
  color:var(--navy)!important;
  padding-left:16px!important;
}

.hover-nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.hover-call,
.hover-book{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:0 17px;
  font-size:.84rem;
  font-weight:600;
  white-space:nowrap;
}
.hover-call{
  border:1px solid rgba(31,45,103,.26);
  color:var(--navy)!important;
  background:#fff;
}
.hover-book{
  background:var(--navy);
  color:#fff!important;
  box-shadow:0 9px 22px rgba(31,45,103,.17);
}
.hover-call::after,
.hover-book::after{display:none!important}
.hover-call:hover{
  border-color:var(--navy);
}
.hover-book:hover{
  background:var(--navy-deep);
  transform:translateY(-1px);
}

@media(max-width:1050px){
  .hover-nav{gap:18px!important}
  .hover-brand .brand-text{display:none!important}
  .hover-nav-actions{gap:7px}
  .hover-call,.hover-book{padding:0 13px;font-size:.8rem}
}
@media(max-width:900px){
  .hover-nav,
  .hover-nav-actions{display:none!important}
  .hover-nav-wrap{
    grid-template-columns:auto 1fr auto;
    min-height:76px;
  }
}
