/* ============================================
   END TENANCY CLEANING — Main Stylesheet
   ============================================ */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root{
  --primary:#0F4C4A;
  --primary-dark:#0A3634;
  --primary-darker:#062423;
  --accent:#D98C3F;
  --accent-light:#F0B36B;
  --accent-dark:#B96F27;
  --bg:#FAFAF7;
  --bg-alt:#F1EEE7;
  --surface:#FFFFFF;
  --text:#26302F;
  --text-muted:#5B6664;
  --text-light:#8B9593;
  --border:#E4E0D8;
  --success:#1F8A55;
  --error:#C23B3B;
  --radius:8px;
  --radius-lg:14px;
  --radius-xl:20px;
  --shadow-sm:0 1px 3px rgba(6,36,35,.06);
  --shadow-md:0 6px 18px rgba(6,36,35,.09);
  --shadow-lg:0 14px 34px rgba(6,36,35,.14);
  --transition:220ms cubic-bezier(.25,.46,.45,.94);
  --max-width:1240px;
}

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
body{
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:clamp(1rem,1.4vw,1.09rem);
  line-height:1.7; color:var(--text); background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--primary); text-decoration:none; transition:color var(--transition); }
a:hover{ color:var(--accent-dark); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:2.5px solid var(--accent); outline-offset:3px; border-radius:4px; }
ul,ol{ list-style:none; }
h1,h2,h3,h4,h5,h6{
  font-family:'Fraunces',Georgia,serif; font-weight:600; font-optical-sizing:auto;
  line-height:1.12; color:var(--primary-darker); letter-spacing:-.01em;
}
h1{ font-size:clamp(2.3rem,5vw,3.5rem); font-weight:500; }
h2{ font-size:clamp(1.7rem,3.4vw,2.35rem); margin-bottom:1rem; }
h3{ font-family:'DM Sans',sans-serif; font-weight:700; font-size:clamp(1.1rem,1.8vw,1.3rem); margin-bottom:.5rem; letter-spacing:-.01em; }
p{ margin-bottom:1rem; color:var(--text); }
p:last-child{ margin-bottom:0; }
.container{ max-width:var(--max-width); margin:0 auto; padding:0 1.5rem; }
section{ padding:clamp(3rem,7vw,5.5rem) 0; }
.section-alt{ background:var(--bg-alt); }
.section-dark{ background:var(--primary-darker); color:#EAF2F1; }
.section-dark h2, .section-dark h3{ color:#fff; }
.section-dark p{ color:#C9D8D6; }
.eyebrow{ display:inline-block; color:var(--accent-dark); font-family:'Fraunces',serif; font-style:italic;
  font-weight:500; font-size:1.05rem; letter-spacing:0; margin-bottom:.5rem; }
.lead{ font-size:1.18rem; color:var(--text-muted); max-width:60ch; line-height:1.65; }
.center{ text-align:center; margin-left:auto; margin-right:auto; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.6rem; border-radius:var(--radius); font-weight:600; font-size:1rem;
  border:1.5px solid transparent; cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  text-align:center; }
.btn-primary{ background:linear-gradient(155deg,var(--accent-light),var(--accent) 55%,var(--accent-dark));
  color:#fff; box-shadow:0 1px 2px rgba(185,111,39,.25), 0 8px 20px -8px rgba(185,111,39,.55); }
.btn-primary:hover{ color:#fff; transform:translateY(-1px); box-shadow:0 1px 2px rgba(185,111,39,.3), 0 12px 26px -8px rgba(185,111,39,.65); }
.btn-primary:active{ transform:translateY(0); }
.btn-secondary{ background:#25D366; color:#fff; box-shadow:0 8px 20px -10px rgba(37,211,102,.6); }
.btn-secondary:hover{ background:#1DA851; color:#fff; transform:translateY(-1px); }
.btn-outline{ background:transparent; border-color:rgba(255,255,255,.5); color:#fff; }
.btn-outline:hover{ background:rgba(255,255,255,.12); color:#fff; border-color:#fff; }
.btn-ghost{ background:transparent; border-color:var(--border); color:var(--primary); }
.btn-ghost:hover{ background:var(--bg-alt); border-color:var(--primary); }
.btn-block{ width:100%; }
.btn-lg{ padding:1.05rem 2rem; font-size:1.05rem; }
.cta-row{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.6rem; }

/* Header */
header.site-header{ position:sticky; top:0; z-index:100; background:rgba(250,250,247,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--border); }
.nav-wrap{ display:flex; align-items:center; justify-content:space-between; padding:.9rem 1.5rem;
  max-width:var(--max-width); margin:0 auto; }
.logo{ font-family:'Fraunces',serif; font-weight:600; font-size:1.3rem; color:var(--primary-darker); }
.logo span{ color:var(--accent-dark); font-style:italic; }
nav.primary-nav ul{ display:flex; gap:1.6rem; align-items:center; }
nav.primary-nav a{ position:relative; color:var(--text); font-weight:600; font-size:.94rem; padding-bottom:2px; }
nav.primary-nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background:var(--accent); transition:right .22s ease; }
nav.primary-nav a:hover{ color:var(--primary-darker); }
nav.primary-nav a:hover::after{ right:0; }
.nav-cta{ display:flex; gap:.7rem; align-items:center; }
.hamburger{ display:none; background:none; border:none; cursor:pointer; padding:.4rem; }
.hamburger span{ display:block; width:24px; height:2px; background:var(--primary-darker); margin:5px 0; }
.mobile-menu{ display:none; }

/* Hero */
.hero{
  position:relative; overflow:hidden; color:#fff;
  background:
    radial-gradient(ellipse 70% 55% at 85% -10%, rgba(217,140,63,.35), transparent 60%),
    radial-gradient(ellipse 60% 60% at -10% 110%, rgba(15,76,74,.55), transparent 60%),
    linear-gradient(160deg,var(--primary-darker) 0%,var(--primary) 75%);
  padding:clamp(3.5rem,8vw,6.5rem) 0;
}
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}
.hero .container, .hero .hero-grid{ position:relative; z-index:1; }
.hero h1{ color:#fff; max-width:17ch; }
.hero .lead{ color:#DCE9E7; margin-top:1rem; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; }
.trust-strip{ display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1.8rem; font-size:.88rem; color:#BFD4D1; }
.trust-strip li{ display:flex; align-items:center; gap:.4rem; }

/* Cards */
.grid{ display:grid; gap:1.6rem; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
.card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:1.8rem; box-shadow:var(--shadow-sm); transition:box-shadow .22s ease, border-color .22s ease; }
.card:hover{ box-shadow:var(--shadow-md); border-color:#D8CFC0; }
.card h3{ margin-top:.4rem; }
.icon-badge{ width:44px; height:44px; border-radius:10px; background:var(--bg-alt);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; }

/* Pricing table */
.price-table{ width:100%; border-collapse:collapse; background:var(--surface); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--border); }
.price-table th,.price-table td{ padding:1.05rem 1.3rem; text-align:left; border-bottom:1px solid var(--border); }
.price-table th{ background:var(--primary-darker); color:#fff; font-family:'DM Sans',sans-serif; font-weight:600; font-size:.92rem; }
.price-table td:last-child{ font-family:'Fraunces',serif; font-weight:500; font-size:1.08rem; color:var(--primary-darker); }
.price-table tr:last-child td{ border-bottom:none; }
.price-table tr:hover td{ background:var(--bg-alt); }
.price-note{ font-size:.9rem; color:var(--text-light); margin-top:.8rem; }

/* Checklist */
.checklist-group{ background:var(--surface); border-left:3px solid var(--accent-light); border-radius:0 var(--radius) var(--radius) 0;
  padding:1.5rem 1.8rem; margin-bottom:1rem; }
.checklist-group h3{ display:flex; align-items:center; gap:.5rem; font-family:'Fraunces',serif; font-weight:600; font-size:1.2rem; }
.checklist-group li{ position:relative; padding-left:1.6rem; margin-bottom:.5rem; color:var(--text-muted); }
.checklist-group li::before{ content:"✓"; position:absolute; left:0; color:var(--success); font-weight:700; }

/* FAQ */
.faq-item{ border-bottom:1px solid var(--border); padding:1.15rem 0; transition:background .2s ease; }
.faq-item summary{ cursor:pointer; font-weight:600; font-family:'DM Sans',sans-serif; font-size:1.03rem; color:var(--primary-darker);
  list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; color:var(--accent-dark); font-size:1.4rem; font-weight:300; flex-shrink:0;
  transition:transform .25s ease; }
.faq-item[open] summary::after{ transform:rotate(135deg); }
.faq-item p{ margin-top:.8rem; color:var(--text-muted); max-width:68ch; }

/* Steps */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; counter-reset:step; }
.step{ position:relative; padding-top:2.6rem; }
.step::before{ counter-increment:step; content:counter(step); position:absolute; top:0; left:0;
  width:40px; height:40px; border-radius:50%; background:var(--accent); color:#fff; font-weight:800;
  display:flex; align-items:center; justify-content:center; font-family:'DM Sans',sans-serif; font-weight:700; }

/* Breadcrumbs */
.breadcrumbs{ font-size:.85rem; color:var(--text-light); padding:1rem 0 0; }
.breadcrumbs a{ color:var(--text-light); }
.breadcrumbs a:hover{ color:var(--accent-dark); }

/* Areas */
.area-pill-grid{ display:flex; flex-wrap:wrap; gap:.6rem; }
.area-pill{ background:var(--surface); border:1px solid var(--border); border-radius:999px;
  padding:.5rem 1rem; font-size:.9rem; font-weight:600; color:var(--primary); }
.area-pill:hover{ border-color:var(--accent); color:var(--accent-dark); }
.area-region h3{ margin:2rem 0 1rem; }

/* Quote form */
.quote-box{ background:var(--surface); border-radius:var(--radius-xl); box-shadow:var(--shadow-lg);
  padding:clamp(1.6rem,4vw,2.6rem); border-top:3px solid var(--accent); }
.progress-track{ display:flex; gap:.4rem; margin-bottom:1.8rem; }
.progress-track div{ flex:1; height:6px; border-radius:4px; background:var(--border); }
.progress-track div.active{ background:var(--accent); }
.form-step{ display:none; }
.form-step.active{ display:block; animation:fade .25s ease; }
@keyframes fade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }
.form-row{ margin-bottom:1.2rem; }
.form-row label{ display:block; font-weight:700; margin-bottom:.4rem; font-size:.92rem; }
.form-row .hint{ font-weight:400; color:var(--text-light); font-size:.82rem; }
.form-row input[type=text],.form-row input[type=email],.form-row input[type=tel],
.form-row input[type=date],.form-row select,.form-row textarea{
  width:100%; padding:.8rem 1rem; border:1.5px solid var(--border); border-radius:var(--radius);
  font-family:inherit; font-size:1rem; background:var(--bg); transition:var(--transition); }
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{ outline:none; border-color:var(--accent); background:#fff; }
.form-row.error input,.form-row.error select{ border-color:var(--error); }
.error-msg{ color:var(--error); font-size:.82rem; margin-top:.3rem; display:none; }
.form-row.error .error-msg{ display:block; }
.radio-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; }
.radio-card{ position:relative; }
.radio-card input{ position:absolute; opacity:0; }
.radio-card label{ display:block; padding:.8rem 1rem; border:1.5px solid var(--border); border-radius:var(--radius);
  font-weight:600; font-size:.92rem; cursor:pointer; text-align:center; transition:var(--transition); margin:0; }
.radio-card input:checked + label{ border-color:var(--accent); background:linear-gradient(155deg,#FCF3E5,#FBEAD3);
  color:var(--accent-dark); box-shadow:inset 0 0 0 1px var(--accent-light); }
.form-actions{ display:flex; justify-content:space-between; gap:1rem; margin-top:1.8rem; }
.summary-list dt{ font-weight:700; font-size:.85rem; color:var(--text-light); margin-top:.9rem; }
.summary-list dd{ font-size:1rem; margin-bottom:0; }
.honeypot{ position:absolute; left:-9999px; opacity:0; }
.qual-note{ background:#FBF1E4; border:1px solid var(--accent-light); border-radius:var(--radius);
  padding:1rem 1.2rem; font-size:.92rem; color:var(--accent-dark); margin-top:1rem; }
.success-box{ text-align:center; padding:2rem 0; }
.success-icon{ width:64px; height:64px; border-radius:50%; background:var(--success); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:2rem; margin:0 auto 1.2rem; }

/* Footer */
footer.site-footer{ background:var(--primary-darker); color:#BFD4D1; padding:3.5rem 0 1.6rem; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.4rem; margin-bottom:2.4rem; }
.footer-grid h4{ color:#fff; font-family:'Fraunces',serif; font-weight:500; font-style:italic; font-size:1.05rem; margin-bottom:.9rem; }
.footer-grid li{ margin-bottom:.55rem; }
.footer-grid a{ color:#BFD4D1; font-size:.92rem; }
.footer-grid a:hover{ color:#fff; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:1.4rem; display:flex;
  flex-wrap:wrap; justify-content:space-between; gap:1rem; font-size:.82rem; color:#8FA6A3; }
.disclaimer{ font-size:.78rem; color:#7C948F; max-width:70ch; margin-top:1rem; }

/* Sticky mobile CTA */
.sticky-cta{ display:none; }

@media (max-width: 920px){
  .hero-grid{ grid-template-columns:1fr; }
  .grid-3,.grid-4{ grid-template-columns:1fr 1fr; }
  .steps{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  nav.primary-nav{ display:none; }
  .nav-cta .btn-ghost{ display:none; }
  .hamburger{ display:block; }
  .sticky-cta{ display:flex; position:fixed; bottom:0; left:0; right:0; z-index:200;
    background:#fff; box-shadow:0 -6px 18px rgba(0,0,0,.12); padding:.7rem .9rem; gap:.7rem; }
  .sticky-cta .btn{ flex:1; padding:.85rem; font-size:.92rem; }
  body{ padding-bottom:66px; }
  .mobile-menu.open{ display:block; position:fixed; inset:0; background:var(--primary-darker); z-index:150;
    padding:5.5rem 2rem 2rem; overflow-y:auto; }
  .mobile-menu ul{ display:flex; flex-direction:column; gap:1.3rem; }
  .mobile-menu a{ color:#fff; font-size:1.15rem; font-weight:700; }
  .mobile-menu .btn{ margin-top:1.5rem; }
}
@media (max-width: 600px){
  .grid-3,.grid-4,.radio-grid{ grid-template-columns:1fr; }
  .form-actions{ flex-direction:column-reverse; }
}
