/* OCD Rebuild — components */

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:700;font-size:.95rem;
  padding:.85rem 1.5rem;border-radius:var(--r);transition:transform var(--t),background var(--t),box-shadow var(--t);white-space:nowrap}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-primary{background:var(--cyan);color:var(--ink)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-cyan)}
.dark .btn-primary{background:var(--cyan);color:var(--ink)}
.btn-ghost{border:1.5px solid var(--line);color:var(--text)}
.btn-ghost:hover{border-color:var(--cyan-deep);transform:translateY(-2px)}
.dark .btn-ghost{border-color:#26433F;color:#fff}
.dark .btn-ghost:hover{border-color:var(--cyan)}
.btn svg{width:1.05em;height:1.05em}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:80;background:rgba(10,20,19,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-dark)}
.nav .wrap{display:flex;align-items:center;gap:1.2rem;height:68px}
.nav .logo img{height:34px;border-radius:5px}
.nav .links{display:flex;gap:.25rem;margin-left:auto;align-items:center}
.nav .links a{color:#D6DEDD;font-size:.92rem;font-weight:500;padding:.5rem .8rem;border-radius:var(--r-sm);transition:color var(--t),background var(--t)}
.nav .links a:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav .links .btn{margin-left:.5rem}
.nav .burger{margin-left:auto;display:none;width:42px;height:42px;border-radius:var(--r-sm);border:1px solid var(--line-dark)}
.nav .burger span{display:block;width:18px;height:2px;background:#fff;margin:3px auto;transition:var(--t)}

/* ---------- megamenu (hover dropdown on Cleaning / Floor Restoration / Specialist) ---------- */
.nav .has-mega{position:relative}
.nav .has-mega > a::after{content:"";display:inline-block;margin-left:.35rem;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65;transition:transform var(--t)}
.nav .has-mega:hover > a::after,.nav .has-mega:focus-within > a::after{transform:rotate(225deg) translateY(0);opacity:1}
.nav .mega{position:absolute;top:calc(100% + 4px);left:0;min-width:260px;background:#0E1A18;border:1px solid var(--line-dark);border-radius:var(--r-lg);padding:.5rem;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--t),transform var(--t),visibility var(--t);box-shadow:0 18px 40px -20px rgba(0,0,0,.55);z-index:90}
.nav .has-mega:hover .mega,.nav .has-mega:focus-within .mega{opacity:1;visibility:visible;transform:translateY(0)}
.nav .mega .mega-head{font-family:var(--font-display);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan);padding:.5rem .8rem .35rem;font-weight:700}
.nav .mega a{display:block;padding:.55rem .8rem;font-size:.88rem;color:#D6DEDD;border-radius:var(--r-sm);font-weight:500;background:transparent}
.nav .mega a:hover{background:rgba(0,229,232,.1);color:var(--cyan)}
.nav .mega a.mega-all{color:#fff;border-bottom:1px solid var(--line-dark);margin-bottom:.3rem;padding-bottom:.65rem}

@media(max-width:880px){
  .nav .links{position:fixed;inset:68px 0 auto 0;flex-direction:column;align-items:stretch;background:var(--ink);
    padding:1rem;gap:.15rem;border-bottom:1px solid var(--line-dark);transform:translateY(-120%);transition:transform var(--t);overflow-y:auto;max-height:calc(100vh - 68px)}
  .nav .links.open{transform:none}
  .nav .links > a{padding:.85rem 1rem}
  .nav .burger{display:block}
  .nav .has-mega > a::after{transform:rotate(45deg) translateY(-2px)}
  .nav .has-mega.open > a::after{transform:rotate(225deg) translateY(0)}
  .nav .has-mega > a{padding:.85rem 1rem;display:block}
  .nav .mega{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:none;box-shadow:none;padding:0 0 .6rem .8rem;display:none;min-width:0}
  .nav .has-mega.open .mega{display:block}
  .nav .mega .mega-head{padding:.5rem .8rem .2rem;font-size:.62rem}
  .nav .mega a{padding:.55rem .8rem;font-size:.86rem}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.hero .grid{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;
  padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,5.5rem)}
.hero-canvas{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:1/1;min-height:340px;background:var(--ink)}
.hero-canvas .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-canvas .hero-tint{position:absolute;inset:0;background:linear-gradient(120deg,rgba(10,20,19,.32),rgba(10,20,19,0) 45%,rgba(0,229,232,.06))}
.hero-canvas .r3d{position:absolute;inset:0;z-index:2}
.hero-canvas canvas{position:absolute;inset:0;width:100%!important;height:100%!important}
.hero-canvas .cap{position:absolute;left:1.1rem;bottom:1.1rem;z-index:3;font-size:.78rem;font-weight:600;color:#fff;
  background:rgba(10,20,19,.5);backdrop-filter:blur(4px);padding:.35rem .7rem;border-radius:var(--r-pill)}
.offer-chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--cyan);color:var(--ink);font-family:var(--font-display);
  font-weight:700;font-size:.84rem;padding:.4rem .9rem;border-radius:var(--r-pill)}
.hero h1{font-size:clamp(2.2rem,4.8vw,3.7rem);margin:1.1rem 0}
.hero .sub{color:var(--gray);font-size:clamp(1rem,1.4vw,1.18rem);max-width:46ch}
@media(max-width:840px){.hero .grid{grid-template-columns:1fr}.hero-canvas{order:-1;aspect-ratio:16/11;min-height:260px}}

/* ---------- quote funnel ---------- */
.funnel{display:flex;gap:.5rem;max-width:430px;margin:1.6rem 0 1.3rem;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);padding:.4rem;border-radius:var(--r-lg)}
.funnel input{flex:1;background:transparent;border:none;color:#fff;padding:.7rem .9rem;font-size:.95rem;outline:none}
.funnel input::placeholder{color:#8FA09E}
@media(max-width:420px){.funnel{flex-direction:column}}

/* ---------- trust badges ---------- */
.badges{display:flex;gap:.6rem;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;
  background:rgba(0,229,232,.12);color:var(--cyan);padding:.4rem .75rem;border-radius:var(--r-sm)}
.badge svg{width:15px;height:15px}
.badge.light{background:var(--band);color:var(--cyan-deep)}

/* ---------- trust strip ---------- */
.trust{background:var(--band);border-bottom:1px solid var(--line)}
.trust .wrap{display:flex;align-items:center;gap:clamp(1rem,3vw,2rem);flex-wrap:wrap;padding:1rem clamp(1.1rem,4vw,2.5rem)}
.trust .rating{display:flex;align-items:center;gap:.5rem;font-weight:700;font-family:var(--font-display);font-size:.95rem}
.trust .stars{display:flex;gap:1px;color:#F5A623}
.trust .trust-badges{display:flex;gap:.5rem;flex-wrap:wrap}
.trust .trust-tag{margin-left:auto;color:var(--muted);font-size:.88rem}
@media(max-width:640px){.trust .trust-tag{margin-left:0;width:100%}.trust .wrap{gap:.7rem}}

/* ---------- featured "renovation handover chain" hero card ---------- */
.handover{background:linear-gradient(135deg,#0A1413,#0E2A2A);color:#fff;border-radius:var(--r-xl);padding:clamp(1.6rem,3vw,2.4rem);margin-bottom:clamp(1rem,2.5vw,1.6rem);position:relative;overflow:hidden;border:1px solid var(--line-dark)}
.handover .h-eyebrow{display:inline-block;background:var(--cyan);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .65rem;border-radius:var(--r-pill);margin-bottom:.9rem}
.handover h3{font-size:clamp(1.3rem,2.2vw,1.7rem);color:#fff;margin-bottom:.4rem;max-width:30ch}
.handover p{color:var(--gray);margin-bottom:1.2rem;max-width:60ch;font-size:.96rem}
.handover .chain{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:.8rem}
.handover .chain a{display:flex;flex-direction:column;gap:.45rem;padding:.9rem;border:1px solid var(--line-dark);border-radius:var(--r);background:rgba(255,255,255,.03);transition:border-color var(--t),background var(--t),transform var(--t);color:#fff}
.handover .chain a:hover{border-color:var(--cyan);background:rgba(0,229,232,.06);transform:translateY(-2px)}
.handover .chain .step-n{font-family:var(--font-display);font-weight:800;color:var(--cyan);font-size:.78rem;letter-spacing:.08em}
.handover .chain h4{font-size:.95rem;color:#fff;margin:0}
.handover .chain p{font-size:.82rem;color:var(--gray);margin:0}
@media(max-width:760px){.handover .chain{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.handover .chain{grid-template-columns:1fr}}

/* ---------- pillars: 3 equal cards (rebalanced) ---------- */
.pillars-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.5vw,1.6rem)}
.pillars-3 .pillar{position:relative;border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;transition:border-color var(--t),transform var(--t),box-shadow var(--t);min-height:300px;color:var(--text)}
.pillars-3 .pillar:hover{border-color:var(--cyan-deep);transform:translateY(-3px);box-shadow:var(--shadow)}
.pillars-3 .pillar-img{aspect-ratio:5/3;background:linear-gradient(135deg,var(--ink),var(--ink-soft));position:relative;display:grid;place-items:center;color:var(--cyan);overflow:hidden}
.pillars-3 .pillar-img svg{width:54px;height:54px;opacity:.85}
.pillars-3 .pillar-body{padding:1.2rem 1.4rem 1.4rem;display:flex;flex-direction:column;flex:1}
.pillars-3 .pillar-body h3{font-size:1.18rem;margin-bottom:.4rem}
.pillars-3 .pillar-body p{font-size:.92rem;color:var(--muted);margin-bottom:.9rem;flex:1}
.pillars-3 .pillar-body .pcount{display:inline-block;font-family:var(--font-display);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan-deep);font-weight:700;margin-bottom:.4rem}
.pillars-3 .pillar-body .arrow{font-family:var(--font-display);font-weight:700;color:var(--cyan-deep);font-size:.88rem;display:inline-flex;align-items:center;gap:.3rem;margin-top:auto}
@media(max-width:880px){.pillars-3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pillars-3{grid-template-columns:1fr}}

/* ---------- pillars: photo feature + divided list (not boxes) ---------- */
.pillars{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(1rem,2.5vw,2rem);align-items:stretch}
.pillar-feature{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff}
.pillar-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.pillar-feature:hover img{transform:scale(1.04)}
.pillar-feature .badge-ico{position:absolute;top:1.1rem;left:1.1rem;z-index:2;width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--cyan);color:var(--ink)}
.pillar-feature .fc{position:relative;z-index:2;padding:clamp(1.4rem,3vw,2.2rem);background:linear-gradient(to top,rgba(7,16,15,.95),rgba(7,16,15,.45) 60%,transparent)}
.pillar-feature .fc h3{font-size:clamp(1.3rem,2.2vw,1.7rem);margin-bottom:.35rem}
.pillar-feature .fc p{font-size:.95rem;color:#D6DEDD;max-width:46ch}
.pillar-feature .arrow{margin-top:.8rem;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:700;font-size:.9rem;color:var(--cyan)}
.pillar-list{display:flex;flex-direction:column}
.prow{position:relative;display:flex;gap:1.1rem;align-items:flex-start;padding:clamp(1.1rem,2vw,1.6rem) .2rem;border-bottom:1px solid var(--line);transition:padding-left var(--t),background var(--t)}
.prow:first-child{border-top:1px solid var(--line)}
.prow .pico{flex:none;width:42px;height:42px;display:grid;place-items:center;color:var(--cyan-deep);border:1.5px solid var(--line);border-radius:var(--r-sm);transition:border-color var(--t),color var(--t)}
.prow .pbody{flex:1}
.prow h3{font-size:1.15rem;margin-bottom:.2rem}
.prow p{font-size:.9rem;color:var(--muted)}
.prow .pgo{flex:none;align-self:center;color:var(--muted);transition:transform var(--t),color var(--t)}
.prow:hover{padding-left:.7rem;background:linear-gradient(90deg,var(--band-2),transparent)}
.prow:hover .pico{border-color:var(--cyan-deep)}
.prow:hover .pgo{transform:translateX(4px);color:var(--cyan-deep)}
.pillar-cta{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;margin-top:var(--gap);
  background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:clamp(1.1rem,2.5vw,1.6rem) clamp(1.3rem,3vw,2rem)}
.pillar-cta .pct-tx b{font-family:var(--font-display);font-size:1.1rem;display:block}
.pillar-cta .pct-tx span{color:var(--gray);font-size:.92rem}
@media(max-width:760px){.pillars{grid-template-columns:1fr}.pillar-feature{min-height:300px}}

/* ---------- photo tile / big pillar with image ---------- */
.tile.photo{padding:0;border:none;min-height:260px}
.tile.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile.photo .tcontent{position:relative;z-index:2;margin-top:auto;padding:clamp(1.3rem,2.5vw,2rem);
  background:linear-gradient(to top,rgba(10,20,19,.92),rgba(10,20,19,.55) 60%,transparent);color:#fff}
.tile.photo .ico{z-index:2;background:rgba(0,229,232,.9);color:var(--ink)}

/* ---------- real-crew human band ---------- */
.crew{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--warm-line)}
.crew .ph{position:relative;min-height:320px}
.crew .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.crew .tx{background:var(--sand);padding:clamp(1.6rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center}
.crew .tx h2{margin-bottom:.6rem}
@media(max-width:760px){.crew{grid-template-columns:1fr}.crew .ph{min-height:220px}}

/* ---------- value props (zig-zag 2-col, not 3-card row) ---------- */
.values{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2.4rem) clamp(2rem,5vw,4rem)}
.value{display:flex;gap:1rem;align-items:flex-start}
.value .vico{flex:none;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--band);color:var(--cyan-deep)}
.value h3{font-size:1.12rem;margin-bottom:.25rem}
.value p{font-size:.94rem;color:var(--muted)}
@media(max-width:680px){.values{grid-template-columns:1fr}}

/* ---------- how it works ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);counter-reset:s}
.step{position:relative;padding:1.6rem 1.3rem;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-dark)}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:var(--cyan)}
.step h3{color:#fff;margin:.5rem 0 .3rem;font-size:1.08rem}
.step p{font-size:.92rem;color:var(--gray)}
@media(max-width:760px){.steps{grid-template-columns:1fr}}

/* ---------- service index (flat catalog, ruled — not SaaS cards) ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 clamp(1.4rem,3vw,2.6rem);counter-reset:svc;
  border-bottom:2px solid var(--text)}
.svc{counter-increment:svc;position:relative;display:block;padding:1.7rem .1rem;border-top:2px solid var(--text);
  transition:border-color var(--t),transform var(--t)}
.svc::after{content:counter(svc,decimal-leading-zero);position:absolute;top:1.7rem;right:.1rem;
  font-family:var(--font-display);font-weight:700;font-size:.72rem;color:var(--muted);letter-spacing:.04em}
.svc .sico{width:30px;height:30px;display:grid;place-items:center;color:var(--cyan-deep);margin-bottom:.9rem;background:none;border-radius:0}
.svc h3{font-size:1.05rem;margin-bottom:.3rem;transition:color var(--t)}
.svc p{font-size:.85rem;color:var(--muted);max-width:32ch}
.svc:hover{border-top-color:var(--cyan-deep);transform:translateY(-3px)}
.svc:hover h3{color:var(--cyan-deep)}
.svc:hover .sico{color:var(--cyan-deep)}
@media(max-width:980px){.svc-grid{grid-template-columns:repeat(2,1fr);gap:0 1.6rem}}
@media(max-width:480px){.svc-grid{grid-template-columns:1fr}}

/* ---------- testimonials ---------- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.quote{padding:1.5rem;border-radius:var(--r-lg);background:var(--band-2);border:1px solid var(--line)}
.quote .stars{color:#F5A623;display:flex;gap:1px;margin-bottom:.7rem}
.quote p{font-size:.95rem}
.quote .who{margin-top:1rem;display:flex;align-items:center;gap:.7rem}
.quote .av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--cyan-deep),#0C3A3C);color:#fff;
  display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:.9rem}
.quote .who b{font-size:.9rem}
.quote .who span{font-size:.8rem;color:var(--muted);display:block}
@media(max-width:860px){.quotes{grid-template-columns:1fr}}

/* ---------- before/after ---------- */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.ba .frame{position:relative;border-radius:var(--r-lg);aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line)}
.ba .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .frame.before img{filter:grayscale(.5) brightness(.8) contrast(.9)}
.ba .frame .ph{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:600;font-size:.85rem}
.ba .frame .tag{position:absolute;top:.8rem;left:.8rem;background:var(--ink);color:var(--cyan);font-size:.72rem;font-weight:700;padding:.25rem .6rem;border-radius:var(--r-pill)}
@media(max-width:620px){.ba{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq{max-width:760px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq summary{font-family:var(--font-display);font-weight:600;font-size:1.05rem;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--cyan-deep);font-size:1.4rem;line-height:1;transition:transform var(--t)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin-top:.7rem;color:var(--muted);font-size:.95rem}

/* ---------- CTA band ---------- */
.cta-band{background:var(--ink);color:#fff;border-radius:var(--r-xl);padding:clamp(2rem,5vw,3.5rem);text-align:center;position:relative;overflow:hidden;border-top:2px solid var(--cyan)}
.cta-band h2{margin-bottom:.6rem}
.cta-band .funnel{margin-left:auto;margin-right:auto}
.cta-band .glowblob{display:none}

/* ---------- comparison table (OCD vs typical SG cleaner) ---------- */
.compare{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.compare-head{display:grid;grid-template-columns:1.4fr 1fr 1fr;background:var(--ink);color:#fff;font-family:var(--font-display);font-weight:700;font-size:.86rem}
.compare-head > div{padding:1rem 1.2rem;border-right:1px solid var(--line-dark);text-align:center}
.compare-head > div:last-child{border-right:0}
.compare-head .head-feature{text-align:left;color:var(--gray);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}
.compare-head .head-ocd{color:var(--cyan)}
.compare-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;border-top:1px solid var(--line);font-size:.92rem}
.compare-row > div{padding:.85rem 1.2rem;border-right:1px solid var(--line);display:flex;align-items:center;gap:.5rem;justify-content:center}
.compare-row > div:first-child{justify-content:flex-start;font-weight:600;color:var(--text)}
.compare-row > div:last-child{border-right:0;color:var(--muted)}
.compare-row .yes{color:#0a8838;font-weight:700}
.compare-row .no{color:#B33;font-weight:600}
.compare-row svg{width:18px;height:18px;flex:none}
@media(max-width:680px){
  .compare-head,.compare-row{grid-template-columns:1fr;border-right:0}
  .compare-row > div{justify-content:flex-start;border-right:0;border-bottom:1px solid var(--line);padding:.6rem 1rem}
  .compare-row > div:last-child{border-bottom:0}
  .compare-row > div::before{content:attr(data-label);font-size:.7rem;text-transform:uppercase;color:var(--muted);font-weight:700;letter-spacing:.06em;margin-right:auto;min-width:60px}
  .compare-row > div:first-child::before{display:none}
  .compare-head > div{display:none}
  .compare-head > div:first-child{display:block;border-bottom:0}
}

/* ---------- recurring maintenance tier card ---------- */
.recurring-card{background:linear-gradient(180deg,#0E1A18,var(--ink));color:#fff;border-radius:var(--r-lg);padding:clamp(1.4rem,3vw,2rem);border:1px solid var(--line-dark);position:relative}
.recurring-card .r-eyebrow{display:inline-block;background:var(--cyan);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .65rem;border-radius:var(--r-pill);margin-bottom:.8rem}
.recurring-card h3{color:#fff;font-size:1.25rem;margin-bottom:.5rem}
.recurring-card p{color:var(--gray);font-size:.95rem;margin-bottom:1rem;max-width:60ch}
.recurring-card ul{list-style:none;padding:0;margin-bottom:1rem}
.recurring-card li{padding:.3rem 0;font-size:.9rem;color:#D6DEDD;display:flex;gap:.5rem;align-items:flex-start}
.recurring-card li svg{width:16px;height:16px;color:var(--cyan);flex:none;margin-top:3px}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:var(--gray);padding:clamp(2.5rem,5vw,4rem) 0 2rem}
.foot .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem)}
.foot img{height:34px;border-radius:5px;margin-bottom:1rem}
.foot h4{color:#fff;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.9rem}
.foot a{display:block;padding:.25rem 0;font-size:.9rem;color:var(--gray);transition:color var(--t)}
.foot a:hover{color:var(--cyan)}
.foot .bottom{border-top:1px solid var(--line-dark);margin-top:2.5rem;padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem}
@media(max-width:760px){.foot .cols{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.foot .cols{grid-template-columns:1fr}}

/* verify tag for placeholder facts — visible ONLY on staging (add body.draft).
   Production renders .vf inline with no visible marker; title attr stays for dev audit. */
.vf{cursor:help}
body.draft .vf{border-bottom:1px dashed var(--cyan-deep)}

/* ============================================================
   MOBILE PASS — Round 2B+C components + inline-grid normalisation
   ============================================================ */

/* Force common inline grid patterns to single column on small viewports.
   Attribute selectors + !important so we override inline style="" without
   having to touch every HTML file. */
@media(max-width:760px){
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3, 1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns: repeat(4, 1fr)"]{
    grid-template-columns:1fr !important;
    gap:1rem !important;
  }
}
@media(max-width:640px){
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1.6fr 1fr"],
  [style*="grid-template-columns:1.4fr 1fr 1fr"]{
    grid-template-columns:1fr !important;
    gap:1rem !important;
  }
}

/* Tighten section padding on mobile so content breathes without floating */
@media(max-width:560px){
  .section{padding:clamp(2rem,8vw,3rem) 0}
  .hero .grid{padding:clamp(1.5rem,6vw,2.5rem) 0 clamp(2rem,7vw,3rem)}
}

/* Mobile: handover renovation-chain card */
@media(max-width:640px){
  .handover{padding:1.4rem 1.2rem}
  .handover h3{font-size:1.2rem;max-width:100%}
  .handover p{font-size:.92rem}
  .handover .chain a{padding:.8rem}
  .handover .chain h4{font-size:.92rem}
}

/* Mobile: pillar-3 cards */
@media(max-width:560px){
  .pillars-3 .pillar{min-height:auto}
  .pillars-3 .pillar-img{aspect-ratio:7/3}
  .pillars-3 .pillar-img svg{width:42px;height:42px}
  .pillars-3 .pillar-body{padding:1.1rem 1.2rem 1.3rem}
}

/* Mobile: pillar-cta full-width stacked */
@media(max-width:640px){
  .pillar-cta{flex-direction:column;align-items:flex-start;text-align:left;padding:1.2rem 1.3rem}
  .pillar-cta .btn{width:100%;justify-content:center}
}

/* Mobile: comparison table — handled by existing rules but tighten padding */
@media(max-width:640px){
  .compare-row > div{padding:.6rem .9rem}
  .compare-row > div:first-child{background:var(--band-2);font-size:.86rem}
  .compare-row .yes,.compare-row .no{font-size:.86rem}
}

/* Mobile: recurring card */
@media(max-width:640px){
  .recurring-card{padding:1.4rem 1.3rem}
  .recurring-card h3{font-size:1.12rem}
  .recurring-card p{font-size:.92rem}
  .recurring-card li{font-size:.88rem}
  .recurring-card .btn{width:100%;justify-content:center}
}

/* Mobile: /crew cards */
@media(max-width:560px){
  .crew-card{padding:1.2rem 1.3rem;gap:.6rem}
  .crew-card .av{width:54px;height:54px;font-size:1.25rem}
  .crew-card h3{font-size:1.05rem}
  .crew-card .quote{font-size:.84rem}
}

/* Mobile: trust strip — already responsive, but ensure stacking is clean */
@media(max-width:560px){
  .trust .wrap{padding:.9rem 1.1rem}
  .trust .rating{font-size:.88rem}
  .trust .trust-badges{width:100%;gap:.4rem}
  .trust .badge.light{font-size:.74rem;padding:.3rem .6rem}
}

/* Mobile: hero funnel (postal + button) — stack at smallest */
@media(max-width:420px){
  .funnel input{padding:.65rem .8rem}
  .funnel .btn{width:100%;justify-content:center}
}

/* Mobile: badges row keep wrap clean */
@media(max-width:480px){
  .hero .badges{gap:.4rem}
  .hero .badge{font-size:.72rem;padding:.3rem .6rem}
}

/* Mobile: H1 sizing — already clamp() but anchor floor for very narrow */
@media(max-width:420px){
  .hero h1{font-size:1.75rem;line-height:1.15}
  .hero .sub{font-size:.96rem}
  h2{font-size:clamp(1.35rem,5vw,1.7rem)}
}

/* Mobile: section eyebrow spacing */
@media(max-width:640px){
  .eyebrow{font-size:.72rem}
}

/* Mobile: faq summary tighter */
@media(max-width:560px){
  .faq summary{font-size:.96rem}
  .faq p{font-size:.9rem}
  .faq details{padding:.9rem 0}
}

/* Mobile: forms (contact + funnel) — single column already at 760px,
   tighten input padding + label sizing */
@media(max-width:560px){
  .form-card{padding:1.2rem 1.3rem}
  input,select,textarea{padding:.7rem .85rem;font-size:.95rem}
  label{font-size:.8rem}
}

/* Mobile: CTA band — heading + form stack with breathing room */
@media(max-width:640px){
  .cta-band{padding:1.8rem 1.4rem}
  .cta-band h2{font-size:clamp(1.3rem,5vw,1.7rem)}
  .cta-band .funnel{margin-top:1.2rem}
}
