/* ===== Lake Key Cleaning — shared design system ===== */
:root{
  --lake:#1F4E4A;
  --slate:#46615C;
  --sand:#F4EEE4;
  --sand-2:#ECE4D6;
  --coral:#E07856;
  --gold:#C99A3D;
  --ink:#1B2422;
  --white:#FFFFFF;
  --line: rgba(27,36,34,0.12);
  --shadow: 0 1px 2px rgba(27,36,34,0.06);
  --radius: 14px;
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--sand);
  color:var(--ink);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces', Georgia, serif;
  color:var(--lake);
  margin:0 0 0.4em 0;
  font-weight:600;
  letter-spacing:-0.01em;
}
h1{font-size:clamp(2.4rem,5vw,3.6rem); line-height:1.05; font-optical-sizing:auto;}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem); line-height:1.12;}
h3{font-size:1.25rem; line-height:1.3;}
p{margin:0 0 1em 0;}
a{color:inherit;}
img{max-width:100%; display:block;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.eyebrow{
  font-family:'Inter',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.72rem;
  font-weight:600;
  color:var(--coral);
  display:inline-block;
  margin-bottom:0.9em;
}

/* Skip link */
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--lake); color:var(--white);
  padding:10px 16px; z-index:200; border-radius:0 0 8px 0;
}
.skip-link:focus{left:0;}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px;
  border-radius:999px;
  font-weight:600;
  font-size:0.98rem;
  text-decoration:none;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn:focus-visible{outline:3px solid var(--gold); outline-offset:2px;}
.btn-primary{background:var(--coral); color:var(--white);}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 8px 20px rgba(224,120,86,0.32);}
.btn-outline{background:transparent; color:var(--lake); border-color:var(--lake);}
.btn-outline:hover{background:var(--lake); color:var(--white);}
.btn-light{background:var(--white); color:var(--lake);}
.btn-light:hover{transform:translateY(-1px); box-shadow:0 8px 20px rgba(27,36,34,0.15);}

/* Nav */
.site-nav{
  position:sticky; top:0; z-index:100;
  background:rgba(244,238,228,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px;
  max-width:var(--maxw); margin:0 auto;
}
.brand{
  display:flex; align-items:center; gap:10px;
  text-decoration:none;
  color:var(--lake);
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:1.32rem;
  letter-spacing:-0.01em;
}
.nav-links{
  display:flex; align-items:center; gap:30px;
  list-style:none; margin:0; padding:0;
}
.nav-links a{
  text-decoration:none; font-weight:600; font-size:0.95rem; color:var(--ink);
  position:relative; padding:4px 0;
}
.nav-links a[aria-current="page"]{color:var(--lake);}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--coral); transform:scaleX(0); transform-origin:left; transition:transform 0.2s ease;
}
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after{transform:scaleX(1);}
.nav-links a.nav-cta{padding:13px 26px;}
.nav-cta{white-space:nowrap;}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
.nav-toggle svg{width:26px; height:26px; color:var(--lake);}

@media (max-width:880px){
  .nav-links{
    position:fixed; inset:64px 0 auto 0; background:var(--sand);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:8px 28px 20px; border-bottom:1px solid var(--line);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity 0.18s ease, transform 0.18s ease;
  }
  .nav-links.open{opacity:1; transform:translateY(0); pointer-events:auto;}
  .nav-links li{width:100%; border-top:1px solid var(--line);}
  .nav-links a{display:block; padding:14px 0;}
  .nav-toggle{display:block;}
}

/* Sections */
section{padding:88px 0;}
@media (max-width:700px){section{padding:56px 0;}}
.section-alt{background:var(--sand-2);}
.section-dark{background:var(--lake); color:var(--sand);}
.section-dark h2, .section-dark h3{color:var(--white);}
.section-dark .eyebrow{color:var(--gold);}

/* Reveal animation */
.reveal{opacity:0; transform:translateY(18px); transition:opacity 0.6s ease, transform 0.6s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}

/* Hero */
.hero{padding:64px 0 80px;}
.hero-grid{
  display:grid; grid-template-columns:1.25fr 0.9fr; gap:56px; align-items:center;
}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr; gap:36px;}}
.hero h1{margin-bottom:0.5em;}
.hero-sub{font-size:1.15rem; color:var(--slate); max-width:46ch;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-top:1.6em;}
.hero-trust{
  display:flex; gap:22px; flex-wrap:wrap; margin-top:2.2em;
  font-size:0.88rem; color:var(--slate); font-weight:600;
}
.hero-trust span{display:flex; align-items:center; gap:7px;}
.hero-trust svg{width:18px; height:18px; color:var(--coral); flex-shrink:0;}

.hero-card{
  background:var(--white); border-radius:20px; padding:32px;
  box-shadow:0 20px 50px rgba(27,36,34,0.10);
  border:1px solid var(--line);
}
.hero-card .ripple-mark{width:100%; height:auto; margin-bottom:18px;}
.hero-stats{display:grid; gap:16px;}
.hero-stat{display:flex; align-items:baseline; gap:12px; border-top:1px solid var(--line); padding-top:14px;}
.hero-stat:first-child{border-top:none; padding-top:0;}
.hero-stat strong{font-family:'Fraunces',serif; font-size:1.5rem; color:var(--lake); min-width:64px;}
.hero-stat span{color:var(--slate); font-size:0.92rem;}

/* Split panels: For Your Home / For Rentals */
.split{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media (max-width:820px){.split{grid-template-columns:1fr;}}
.split-panel{
  border-radius:var(--radius);
  padding:40px;
  position:relative;
  overflow:hidden;
  transition:transform 0.2s ease, box-shadow 0.2s ease;
  text-decoration:none;
  display:block;
}
.split-panel:hover{transform:translateY(-4px);}
.split-panel.home{background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow);}
.split-panel.rentals{background:var(--lake); color:var(--sand); box-shadow:0 14px 34px rgba(31,78,74,0.28);}
.split-panel.rentals h3, .split-panel.rentals p{color:var(--sand);}
.split-panel h3{font-size:1.6rem; margin-bottom:0.3em;}
.split-panel p{color:var(--slate); margin-bottom:1.2em;}
.split-panel .panel-link{
  font-weight:700; display:inline-flex; align-items:center; gap:6px; font-size:0.95rem;
}
.split-panel.rentals .panel-link{color:var(--gold);}
.split-panel.home .panel-link{color:var(--coral);}
.split-panel svg.panel-icon{width:44px; height:44px; margin-bottom:20px; color:var(--coral);}
.split-panel.rentals svg.panel-icon{color:var(--gold);}

/* Grid of cards */
.card-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media (max-width:980px){.card-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.card-grid{grid-template-columns:1fr;}}
.svc-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 24px; box-shadow:var(--shadow);
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.svc-card:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(27,36,34,0.10);}
.svc-card svg{width:36px; height:36px; color:var(--coral); margin-bottom:16px;}
.svc-card h3{font-size:1.1rem;}
.svc-card p{font-size:0.94rem; color:var(--slate); margin-bottom:0.6em;}
.svc-card .price-tag{font-weight:700; color:var(--lake); font-size:0.92rem;}

/* Section heading block */
.section-head{max-width:640px; margin:0 auto 48px;}
.section-head.left{margin:0 0 48px;}
.section-head.center{text-align:center;}

/* Service area list */
.area-list{display:flex; flex-wrap:wrap; gap:12px; margin-top:24px;}
.area-chip{
  background:var(--white); border:1px solid var(--line); border-radius:999px;
  padding:9px 18px; font-size:0.9rem; font-weight:600; color:var(--lake);
}
.area-chip.stretch{border-color:var(--gold); color:#8a6a1f;}

/* About teaser */
.about-teaser{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center;}
@media (max-width:880px){.about-teaser{grid-template-columns:1fr;}}
.owner-badge{
  background:var(--white); border-radius:var(--radius); border:1px solid var(--line);
  padding:36px; box-shadow:var(--shadow); text-align:center;
}
.owner-badge svg{width:120px; height:120px; margin:0 auto 16px;}

/* Footer */
footer{background:var(--lake); color:var(--sand); padding:56px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr; gap:28px;}}
.footer-brand{font-family:'Fraunces',serif; font-size:1.28rem; font-weight:600; color:var(--white); margin-bottom:12px; letter-spacing:-0.01em;}
footer h4{color:var(--gold); font-family:'Inter',sans-serif; text-transform:uppercase; letter-spacing:0.1em; font-size:0.78rem; margin-bottom:16px;}
footer ul{list-style:none; margin:0; padding:0;}
footer li{margin-bottom:10px;}
footer a{color:var(--sand); text-decoration:none; opacity:0.88; font-size:0.94rem;}
footer a:hover{opacity:1; text-decoration:underline;}
.footer-bottom{
  border-top:1px solid rgba(244,238,228,0.15); margin-top:40px; padding-top:22px;
  font-size:0.82rem; opacity:0.7; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}

/* Tables (pricing) */
.price-table{width:100%; border-collapse:collapse; margin:20px 0 8px; font-size:0.95rem;}
.price-table th, .price-table td{
  text-align:left; padding:14px 16px; border-bottom:1px solid var(--line);
}
.price-table thead th{
  font-family:'Inter',sans-serif; text-transform:uppercase; letter-spacing:0.06em;
  font-size:0.72rem; color:var(--slate); font-weight:700; border-bottom:2px solid var(--lake);
}
.price-table tbody tr:hover{background:rgba(224,120,86,0.05);}
.price-table td:first-child, .price-table th:first-child{font-weight:600; color:var(--lake);}
.table-wrap{overflow-x:auto; border-radius:10px;}
.price-note{font-size:0.86rem; color:var(--slate); font-style:italic; margin-top:6px;}

/* Product block (services page) */
.product{display:grid; grid-template-columns:100px 1fr; gap:28px; padding:44px 0; border-top:1px solid var(--line);}
.product:first-of-type{border-top:none;}
@media (max-width:700px){.product{grid-template-columns:1fr; gap:16px;}}
.product-icon{
  width:76px; height:76px; border-radius:16px; background:var(--sand-2);
  display:flex; align-items:center; justify-content:center;
}
.product-icon svg{width:38px; height:38px; color:var(--lake);}

/* Complete Refresh package callout */
.refresh-package{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 32px; box-shadow:var(--shadow);
}
.refresh-package .price-tag{
  display:inline-block; margin-left:10px; font-size:0.95rem; font-weight:700; color:var(--coral);
}
.refresh-package ul{list-style:none; margin:16px 0 0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:8px 24px;}
@media (max-width:600px){.refresh-package ul{grid-template-columns:1fr;}}
.refresh-package ul li{display:flex; gap:10px; align-items:flex-start; font-size:0.94rem; color:var(--ink);}
.refresh-package ul li svg{width:18px; height:18px; color:var(--lake); flex-shrink:0; margin-top:2px;}

/* Add-ons list */
.addon-list{display:grid; grid-template-columns:repeat(2,1fr); gap:10px 28px; list-style:none; padding:0; margin:16px 0;}
@media (max-width:600px){.addon-list{grid-template-columns:1fr;}}
.addon-list li{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px dashed var(--line); font-size:0.94rem;}
.addon-list li span:last-child{font-weight:700; color:var(--lake); white-space:nowrap; padding-left:12px;}

/* FAQ accordion */
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:20px 4px; font-family:'Fraunces',serif; font-size:1.05rem; color:var(--lake);
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-q svg{width:20px; height:20px; flex-shrink:0; transition:transform 0.2s ease; color:var(--coral);}
.faq-q[aria-expanded="true"] svg{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height 0.25s ease;}
.faq-a p{padding:0 4px 20px; color:var(--slate); max-width:70ch;}

/* Checklist (Rental Ready) */
.checklist-block{margin-bottom:32px;}
.checklist{list-style:none; margin:0; padding:0; counter-reset:step;}
.checklist li{
  counter-increment:step; display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--line);
}
.checklist li::before{
  content:counter(step); font-family:'Fraunces',serif; font-weight:600; color:var(--white);
  background:var(--lake); width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:0.95rem;
}
.checklist strong{color:var(--lake); display:block; margin-bottom:2px;}
.checklist span.detail{color:var(--slate); font-size:0.92rem;}

/* Quote form */
.quote-form{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:36px; box-shadow:var(--shadow);
}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:600px){.form-grid{grid-template-columns:1fr;}}
.form-field{display:flex; flex-direction:column; gap:6px; margin-bottom:18px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-size:0.88rem; font-weight:600; color:var(--lake);}
.form-field input, .form-field select, .form-field textarea{
  font-family:'Inter',sans-serif; font-size:0.96rem; padding:11px 13px;
  border:1.5px solid var(--line); border-radius:8px; background:var(--sand); color:var(--ink);
}
.form-field input:focus-visible, .form-field select:focus-visible, .form-field textarea:focus-visible{
  outline:2px solid var(--coral); outline-offset:1px; border-color:var(--coral);
}
.form-field textarea{resize:vertical; min-height:90px;}
.form-note{font-size:0.86rem; color:var(--slate); margin-top:8px;}

/* Two-col info blocks */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
@media (max-width:820px){.two-col{grid-template-columns:1fr;}}

.trust-list{list-style:none; margin:0; padding:0;}
.trust-list li{display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); align-items:flex-start;}
.trust-list li:last-child{border-bottom:none;}
.trust-list svg{width:20px; height:20px; color:var(--coral); flex-shrink:0; margin-top:2px;}

/* Divider ripple motif */
.ripple-divider{display:flex; justify-content:center; padding:8px 0;}
.ripple-divider svg{width:64px; height:24px; color:var(--gold); opacity:0.7;}

.badge-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px;}
.badge{
  background:var(--sand-2); border:1px solid var(--line); border-radius:999px;
  padding:7px 14px; font-size:0.82rem; font-weight:600; color:var(--slate);
  display:flex; align-items:center; gap:6px;
}
.badge svg{width:14px; height:14px; color:var(--coral);}

.cta-banner{
  background:var(--lake); border-radius:20px; padding:56px 44px; text-align:center;
  color:var(--sand);
}
.cta-banner h2{color:var(--white);}
.cta-banner p{color:var(--sand); opacity:0.9; max-width:56ch; margin:0 auto 1.4em;}

.pm-stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px;}
@media (max-width:700px){.pm-stat-grid{grid-template-columns:1fr;}}
.pm-stat{background:var(--white); border:1px solid var(--line); border-radius:12px; padding:22px; text-align:center;}
.pm-stat strong{display:block; font-family:'Fraunces',serif; font-size:1.7rem; color:var(--lake);}
.pm-stat span{font-size:0.85rem; color:var(--slate);}

/* ===== Photo hero: full-bleed image with gradient scrim ===== */
.photo-hero{position:relative; overflow:hidden; padding:96px 0 104px;}
.photo-hero-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  z-index:0;
}
.photo-hero-scrim{position:absolute; inset:0; z-index:1;}
.photo-hero .container{position:relative; z-index:2;}
@media (max-width:700px){.photo-hero{padding:64px 0 72px;}}

/* Dark teal scrim — index + rental-ready hero photos */
.scrim-teal{
  background:linear-gradient(100deg, rgba(20,50,47,0.94) 0%, rgba(20,50,47,0.88) 38%, rgba(20,50,47,0.62) 100%);
}
@media (max-width:900px){
  .scrim-teal{background:linear-gradient(180deg, rgba(20,50,47,0.75) 0%, rgba(20,50,47,0.93) 55%, rgba(20,50,47,0.96) 100%);}
}

/* Warm sand scrim — home-cleaning hero photo (keeps dark text legible) */
.scrim-sand{
  background:linear-gradient(100deg, rgba(244,238,228,0.97) 0%, rgba(244,238,228,0.92) 42%, rgba(244,238,228,0.55) 100%);
}
@media (max-width:900px){
  .scrim-sand{background:linear-gradient(180deg, rgba(244,238,228,0.8) 0%, rgba(244,238,228,0.95) 55%, rgba(244,238,228,0.98) 100%);}
}

.photo-hero .hero-sub{color:inherit;}
.photo-hero-dark h1, .photo-hero-dark .eyebrow{color:var(--white);}
.photo-hero-dark .eyebrow{color:var(--gold);}
.photo-hero-dark .hero-sub{color:var(--sand); opacity:0.92;}
.photo-hero-dark .hero-trust{color:var(--sand); opacity:0.9;}
.photo-hero-dark .hero-trust svg{color:var(--gold);}

/* Photo CTA banner — replaces flat cta-banner background with photo + scrim */
.cta-banner.photo-cta{position:relative; overflow:hidden; background:var(--lake);}
.cta-banner.photo-cta .cta-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  z-index:0;
}
.cta-banner.photo-cta .cta-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(120deg, rgba(20,50,47,0.93) 0%, rgba(20,50,47,0.8) 55%, rgba(20,50,47,0.6) 100%);
}
.cta-banner.photo-cta > *{position:relative; z-index:2;}

/* Inset photo card — About teaser, Rental Ready "system" panel */
.photo-card{
  position:relative; border-radius:var(--radius); overflow:hidden;
  box-shadow:0 20px 45px rgba(27,36,34,0.16);
  aspect-ratio:4/5;
}
.photo-card img{width:100%; height:100%; object-fit:cover; display:block;}
.photo-card-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,50,47,0) 35%, rgba(20,50,47,0.82) 100%);
}
.photo-card-caption{
  position:absolute; left:0; right:0; bottom:0; padding:26px;
  color:var(--white);
}
.photo-card-caption strong{display:block; font-family:'Fraunces',serif; font-size:1.15rem; margin-bottom:4px;}
.photo-card-caption span{font-size:0.86rem; opacity:0.85;}

/* Small rounded product thumbnail (Deep Clean row, etc.) */
.product-thumb{
  border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);
  aspect-ratio:4/3; margin-top:18px; max-width:360px;
}
.product-thumb img{width:100%; height:100%; object-fit:cover; display:block;}

/* Compact variant: image floats beside the copy instead of stacking full-width */
.product-thumb-inline{
  float:right; width:180px; max-width:38%; margin:4px 0 16px 24px;
}
@media (max-width:700px){
  .product-thumb-inline{float:none; width:100%; max-width:100%; margin:16px 0;}
}
