/*
Theme Name: Kembeh CleanCo
Description: Custom theme for Kembeh CleanCo, professional cleaning in Birmingham and the West Midlands. Every page is built from editable blocks.
Version: 2.3
Requires at least: 6.1
Requires PHP: 7.4
Text Domain: kembeh-cleanco
*/
:root{--teal:#0fb5ba;--teal-dark:#0a8f94;--navy:#12284c;--bg:#fbfaf7;--muted:#f1efea;--text:#3b4660;--radius:18px;--shadow:0 8px 28px rgba(18,40,76,.08)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:'Nunito',system-ui,sans-serif;font-size:1.125rem;line-height:1.7;color:var(--text);background:var(--bg)}
h1,h2,h3,h4{font-family:'DM Sans',sans-serif;color:var(--navy);font-weight:600;line-height:1.2}
h1{font-size:clamp(2.2rem,5vw,3.5rem)}h2{font-size:clamp(1.8rem,3.5vw,2.5rem);margin-bottom:1rem}h3{font-size:1.4rem;margin-bottom:.5rem}
a{color:var(--teal-dark);text-decoration:none}a:hover{text-decoration:underline}
img,svg{max-width:100%}
.wrap{max-width:80rem;margin:0 auto;padding:0 1.5rem}.narrow{max-width:48rem;margin:0 auto}
section{padding:5rem 0}.alt{background:var(--muted)}.center{text-align:center}
.lead{font-size:1.25rem}
/* header */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);box-shadow:0 1px 0 #e6e3dc}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px;gap:1rem}
.nav ul{display:flex;gap:2rem;list-style:none;padding:0}
.nav ul a{color:var(--navy);font-weight:700}
.logo{display:flex;align-items:center;gap:.6rem;color:var(--navy)}.logo:hover{text-decoration:none}
.logo b{display:block;font-family:'DM Sans';font-size:1.35rem;line-height:1.1}
.logo i{display:block;font-size:.8rem;color:var(--teal-dark);font-weight:600}
.menu-btn{display:none;background:none;border:0;font-size:1.8rem;color:var(--navy);cursor:pointer}
/* buttons */
.btn{display:inline-block;padding:.85rem 1.7rem;border-radius:999px;font-weight:800;font-family:'DM Sans';border:2px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer;font-size:1.05rem;transition:.2s}
.btn:hover{background:var(--teal-dark);border-color:var(--teal-dark);text-decoration:none;transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--navy);border-color:var(--navy)}.btn.ghost:hover{background:var(--navy);color:#fff}
.btn.white{background:#fff;color:var(--navy);border-color:#fff}
/* hero */
.hero{background:linear-gradient(135deg,#e6f8f8,#fbfaf7 60%);padding:5rem 0}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.hero p{margin:1.2rem 0 2rem;font-size:1.25rem}.btns{display:flex;gap:1rem;flex-wrap:wrap}
.page-hero{background:linear-gradient(135deg,#e6f8f8,#fbfaf7);padding:4rem 0;text-align:center}
.page-hero p{max-width:42rem;margin:1rem auto 0;font-size:1.2rem}
.pic{border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--teal),var(--navy));position:relative;overflow:hidden}
.pic svg{width:42%;height:auto;opacity:.95}
.pic span{position:absolute;bottom:.8rem;left:1rem;font-weight:700;font-size:.9rem;opacity:.85}
.pic.v2{background:linear-gradient(135deg,#1c4a7a,var(--teal))}.pic.v3{background:linear-gradient(135deg,var(--navy),#2a7f9e)}.pic.v4{background:linear-gradient(135deg,var(--teal-dark),#3c6fb0)}
/* trust */
.trust{background:#fff;padding:2rem 0;box-shadow:var(--shadow)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.trust .item{display:flex;gap:.8rem;align-items:flex-start;font-weight:700;color:var(--navy);line-height:1.4}
.ico{color:var(--teal);flex:none;width:28px;height:28px}
/* cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.5rem}
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.card:hover{transform:translateY(-6px)}
.card .pic{border-radius:0;box-shadow:none;aspect-ratio:16/10}
.card .body{padding:1.4rem;display:flex;flex-direction:column;flex:1}.card .body p{flex:1;font-size:1rem;margin-bottom:1rem}
.card .body a{font-weight:800}
.why{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.5rem}
.why .card{padding:1.8rem;display:block}.why .card:last-child{grid-column:span 2}.why .card:hover{transform:none}
.testi{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem}
.testi .card{padding:1.8rem;display:block}.testi .card:hover{transform:none}
.stars{color:#f5b301;font-size:1.3rem;letter-spacing:2px}
.who{margin-top:1rem;font-weight:800;color:var(--navy)}.who small{display:block;font-weight:400;color:var(--text)}
.areas{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:1.5rem;list-style:none;padding:0}
.areas li{background:#fff;border:1px solid #dcd9d1;border-radius:999px;padding:.4rem 1.1rem;font-weight:700;color:var(--navy)}
.cta{background:var(--teal);color:#fff;text-align:center}.cta h2{color:#fff}.cta p{margin-bottom:2rem;font-size:1.25rem}
/* service rows */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.svc.rev .pic{order:-1}
.checks{list-style:none;padding:0;margin:1rem 0}.checks li{display:flex;gap:.6rem;margin:.4rem 0}.checks svg{width:22px;height:22px;color:var(--teal);flex:none;margin-top:4px}
.box{background:var(--muted);border-radius:12px;padding:1rem 1.3rem;font-weight:700;color:var(--navy)}.alt .box{background:#fff}
.title-row{display:flex;gap:.7rem;align-items:center}.title-row svg{width:34px;height:34px;color:var(--teal)}
/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem}
.info div{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:flex-start}
form{background:#fff;padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow)}
label{display:block;font-weight:800;color:var(--navy);margin:0 0 1rem}
input,textarea,select{width:100%;margin-top:.3rem;padding:.8rem 1rem;border:1.5px solid #d6d3cb;border-radius:10px;font:inherit;background:#fff}
input:focus,textarea:focus,select:focus{outline:2px solid var(--teal);border-color:var(--teal)}
#form-msg{margin-top:1rem;font-weight:700;color:var(--teal-dark)}
/* footer */
footer{background:var(--navy);color:#c9d3e6;padding:4rem 0 2rem;font-size:1rem}
footer h4{color:#fff;margin-bottom:.8rem}footer a{color:#c9d3e6}footer ul{list-style:none;padding:0}footer li{margin:.3rem 0}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:2rem}
.copy{border-top:1px solid #2c4166;margin-top:2.5rem;padding-top:1.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
/* animation */
.fade{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}.fade.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.fade{opacity:1;transform:none;transition:none}}
@media(max-width:960px){
.hero-grid,.svc,.contact-grid{grid-template-columns:1fr}.svc.rev .pic{order:0}
.grid4,.cards{grid-template-columns:1fr 1fr}.testi{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}
.menu-btn{display:block}
.nav ul{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;flex-direction:column;padding:1rem 1.5rem;gap:1rem;box-shadow:var(--shadow)}
.nav ul.open{display:flex}.nav>.btn{display:none}
}
@media(max-width:560px){.grid4,.cards,.why,.fgrid{grid-template-columns:1fr}.why .card:last-child{grid-column:auto}section{padding:3.5rem 0}}
details.faq{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:1rem 1.3rem;margin:.8rem 0}
details.faq summary{cursor:pointer;font-weight:800;color:var(--navy);font-family:'DM Sans'}
details.faq p{margin-top:.6rem}
.callbar{display:none}
.pic img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
@media(max-width:960px){.callbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;box-shadow:0 -4px 16px rgba(0,0,0,.12)}.callbar a{flex:1;text-align:center;padding:.9rem;font-weight:800;background:var(--navy);color:#fff}.callbar a+a{background:var(--teal)}body{padding-bottom:54px}}

/* ===== WordPress block styling ===== */
.wp-block-group{margin:0;padding-top:0;padding-bottom:0}
section.wp-block-group{padding:5rem 0}
section.wp-block-group.hero{padding:5rem 0}
section.wp-block-group.page-hero{padding:4rem 0}
div.wp-block-group.trust{padding:2rem 0}
main p{margin-bottom:1rem}
main p:last-child{margin-bottom:0}
main h2,main h3{margin-top:0}
main h2{margin-bottom:1rem}
main h3{margin-bottom:.5rem}
main .wp-block-heading+p{margin-top:0}
main :where(.wp-block-group) > *{margin-block-start:0}
.center{text-align:center}
.wp-block-group.wrap{margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}
.wp-block-group.narrow{margin-left:auto;margin-right:auto}
.hero p{margin:1.2rem 0 2rem;font-size:1.25rem}
.page-hero p{margin:1rem auto 0}
.hero-grid .wp-block-group .wp-block-buttons{margin-top:.5rem}
.lead{font-size:1.25rem}
/* buttons */
.wp-block-buttons{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.page-hero .wp-block-buttons,.center .wp-block-buttons,.cta .wp-block-buttons,.testimonials .wp-block-buttons,#testimonials .wp-block-buttons{justify-content:center}
.wp-block-button .wp-block-button__link{display:inline-block;padding:.85rem 1.7rem;border-radius:999px;font-weight:800;font-family:'DM Sans',sans-serif;border:2px solid var(--teal);background:var(--teal);color:#fff;font-size:1.05rem;line-height:1.7;text-decoration:none;transition:.2s}
.wp-block-button .wp-block-button__link:hover{background:var(--teal-dark);border-color:var(--teal-dark);transform:translateY(-2px)}
.wp-block-button.ghost .wp-block-button__link{background:transparent;color:var(--navy);border-color:var(--navy)}
.wp-block-button.ghost .wp-block-button__link:hover{background:var(--navy);color:#fff}
.wp-block-button.white .wp-block-button__link{background:#fff;color:var(--navy);border-color:#fff}
.wp-block-button.white .wp-block-button__link:hover{background:#eefafa;color:var(--navy)}
/* images */
figure.pic{margin:0}
.pic img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;display:block}
/* cards */
.card{display:flex;flex-direction:column}
.cards .card .pic{border-radius:0;box-shadow:none;aspect-ratio:16/10;width:100%}
.card .body{padding:1.4rem;display:flex;flex-direction:column;flex:1}
.card .body p{flex:1;font-size:1rem;margin-bottom:1rem}
.card .body p.more{flex:0;margin:0;font-weight:800}
.why .card,.testi .card{padding:1.8rem;display:block}
.why .card:last-child:nth-child(odd){grid-column:span 2}
.why .card:last-child:nth-child(even){grid-column:auto}
.stars{color:#f5b301;font-size:1.3rem;letter-spacing:2px}
/* checklists & areas */
ul.checks{list-style:none;padding:0;margin:1rem 0}
ul.checks li{position:relative;padding-left:2rem;margin:.5rem 0}
ul.checks li::before{content:"";position:absolute;left:0;top:.35rem;width:22px;height:22px;background:var(--teal);-webkit-mask:var(--i-check) center/contain no-repeat;mask:var(--i-check) center/contain no-repeat}
ul.areas{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin:1.5rem 0 0;list-style:none;padding:0}
ul.areas li{background:#fff;border:1px solid #dcd9d1;border-radius:999px;padding:.4rem 1.1rem;font-weight:700;color:var(--navy)}
p.box{background:var(--muted);border-radius:12px;padding:1rem 1.3rem;font-weight:700;color:var(--navy)}
.alt p.box{background:#fff}
/* icons (teal, drawn with CSS) */
:root{
--i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
--i-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
--i-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
--i-users:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8'/%3E%3C/svg%3E");
--i-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E");
--i-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E");
}
.item,.irow{position:relative;padding-left:2.6rem;margin:0}
.item{font-weight:700;color:var(--navy);line-height:1.4;font-size:1.05rem}
.irow{margin-bottom:1.5rem}
.item::before,.irow::before{content:"";position:absolute;left:0;top:.1rem;width:28px;height:28px;background:var(--teal);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.ico-check::before{-webkit-mask-image:var(--i-check);mask-image:var(--i-check)}
.ico-pin::before{-webkit-mask-image:var(--i-pin);mask-image:var(--i-pin)}
.ico-clock::before{-webkit-mask-image:var(--i-clock);mask-image:var(--i-clock)}
.ico-users::before{-webkit-mask-image:var(--i-users);mask-image:var(--i-users)}
.ico-phone::before{-webkit-mask-image:var(--i-phone);mask-image:var(--i-phone)}
.ico-mail::before{-webkit-mask-image:var(--i-mail);mask-image:var(--i-mail)}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
/* FAQ */
details.faq{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:1rem 1.3rem;margin:.8rem 0}
details.faq summary{cursor:pointer;font-weight:800;color:var(--navy);font-family:'DM Sans',sans-serif}
details.faq p{margin-top:.6rem}
/* layout grids from the original design */
.contact-grid .info{display:block}
.admin-bar header{top:32px}
@media(max-width:782px){.admin-bar header{top:46px}}
@media(max-width:960px){.trust .wrap{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.trust .wrap{grid-template-columns:1fr}.why .card:last-child:nth-child(odd){grid-column:auto}}
.callbar{display:none}
@media(max-width:960px){.callbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;box-shadow:0 -4px 16px rgba(0,0,0,.12)}.callbar a{flex:1;text-align:center;padding:.9rem;font-weight:800;background:var(--navy);color:#fff}.callbar a+a{background:var(--teal)}body{padding-bottom:54px}}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px}

/* Photo crops: side photos are tall (4:5) on desktop and 4:3 on phones; focal points keep faces and the cleaning in frame */
.svc .pic{aspect-ratio:4/5}
@media(max-width:960px){.svc .pic{aspect-ratio:4/3}}
.pic img[src*="team-arriving-house"]{object-position:50% 62%}
.pic img[src*="stove-cleaning"]{object-position:50% 22%}
.pic img[src*="window-pole"]{object-position:50% 35%}
.pic img[src*="rental-bedroom"]{object-position:15% 50%}
.pic img[src*="vacuuming-living-room"]{object-position:50% 40%}
.pic img[src*="kitchen-wipe"]{object-position:50% 48%}
.pic img[src*="oven-interior"]{object-position:50% 55%}
.pic img[src*="cleaner-portrait"]{object-position:50% 35%}
.pic img[src*="cleaner-vacuum-portrait"]{object-position:50% 5%}
.pic img[src*="team-portrait"]{object-position:50% 55%}

/* Photo banners: full-width photo behind the page heading, with a navy overlay so the text stays readable */
.has-photo{position:relative;overflow:hidden;isolation:isolate}
.has-photo .hero-bg{position:absolute;inset:0;margin:0!important;z-index:-2;max-width:none!important;width:100%;height:100%}
.has-photo .hero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.has-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(18,40,76,.6)}
.page-hero.has-photo,section.wp-block-group.page-hero.has-photo{background:var(--navy);padding:7rem 0}
.has-photo h1,.has-photo p{color:#fff}
.hero.has-photo,section.wp-block-group.hero.has-photo{background:var(--navy);padding:7rem 0;min-height:clamp(520px,72vh,700px);display:flex;align-items:center}
.hero.has-photo .wrap{width:100%}
.hero.has-photo::before{background:linear-gradient(90deg,rgba(18,40,76,.9) 0%,rgba(18,40,76,.72) 38%,rgba(18,40,76,.15) 68%,rgba(18,40,76,0) 100%)}
.hero-text{max-width:36rem}
.has-photo .btn.ghost,.has-photo .wp-block-button.ghost .wp-block-button__link{color:#fff;border-color:#fff}
.has-photo .btn.ghost:hover,.has-photo .wp-block-button.ghost .wp-block-button__link:hover{background:#fff;color:var(--navy)}
@media(max-width:960px){.hero.has-photo::before{background:rgba(18,40,76,.68)}.hero.has-photo,section.wp-block-group.hero.has-photo{min-height:0;padding:5rem 0}.page-hero.has-photo,section.wp-block-group.page-hero.has-photo{padding:5rem 0}}
.hero-bg img[src*="hero-living-room"]{object-position:60% 50%}
.hero-bg img[src*="team-wide"]{object-position:60% 35%}
.hero-bg img[src*="two-cleaners-living-room"]{object-position:50% 52%}
.hero-bg img[src*="cleaner-vacuum-portrait"]{object-position:50% 22%}
.hero-bg img[src*="team-arriving-house"]{object-position:50% 62%}
.hero-bg img[src*="stove-cleaning"]{object-position:50% 30%}
.hero-bg img[src*="window-pole"]{object-position:50% 28%}
.hero-bg img[src*="rental-bedroom"]{object-position:50% 55%}
/* Households / businesses panels on the home page */
.cards.two{grid-template-columns:repeat(2,1fr);max-width:62rem;margin-left:auto;margin-right:auto}
@media(max-width:560px){.cards.two{grid-template-columns:1fr}}
.pic img[src*="kitchen-vacuum-ladder"]{object-position:50% 58%}
.pic img[src*="team-wide"]{object-position:62% 50%}
/* Banner tuning: taller banners, lighter overlay, home photo on the right on desktop */
.has-photo::before{background:rgba(18,40,76,.5)}
.has-photo h1,.has-photo p{text-shadow:0 2px 14px rgba(9,20,40,.45)}
.page-hero.has-photo,section.wp-block-group.page-hero.has-photo{padding:9rem 0}
@media(min-width:961px){
.hero.has-photo .hero-bg{left:40%;width:auto}
.hero.has-photo::before{background:linear-gradient(90deg,var(--navy) 0%,var(--navy) 40%,rgba(18,40,76,.55) 44%,rgba(18,40,76,0) 52%)}
.hero-text{max-width:31rem}
.hero-bg img[src*="hero-living-room"]{object-position:85% 30%}
}
.hero-bg img[src*="hero-living-room"]{object-position:20% 40%}
@media(max-width:960px){.has-photo::before,.hero.has-photo::before{background:rgba(18,40,76,.55)}.page-hero.has-photo,section.wp-block-group.page-hero.has-photo{padding:6rem 0}}
.hero-bg img[src*="team-wide"]{object-position:60% 25%}
.hero-bg img[src*="two-cleaners-living-room"]{object-position:50% 45%}
.hero-bg img[src*="cleaner-vacuum-portrait"]{object-position:50% 2%}
.hero-bg img[src*="team-arriving-house"]{object-position:50% 48%}
.hero-bg img[src*="stove-cleaning"]{object-position:50% 20%}
.hero-bg img[src*="window-pole"]{object-position:50% 19%}
.hero-bg img[src*="rental-bedroom"]{object-position:50% 35%}
/* Desktop: page banners use the same split as the home banner (text left on navy, photo right) */
@media(min-width:961px){
.page-hero.has-photo,section.wp-block-group.page-hero.has-photo{text-align:left;padding:0;min-height:430px;display:flex;align-items:center}
.page-hero.has-photo .wrap{width:100%;padding-top:4rem;padding-bottom:4rem}
.page-hero.has-photo .wrap :is(h1,p,.btns,.wp-block-buttons){max-width:34rem}
.page-hero.has-photo p{margin-left:0;margin-right:0}
.page-hero.has-photo .btns,.page-hero.has-photo .wp-block-buttons{justify-content:flex-start!important}
.page-hero.has-photo .hero-bg{left:46%;width:auto}
.page-hero.has-photo::before{background:linear-gradient(90deg,var(--navy) 0%,var(--navy) 46%,rgba(18,40,76,.5) 50%,rgba(18,40,76,0) 58%)}
.hero-bg img[src*="team-wide"]{object-position:55% 40%}
.hero-bg img[src*="two-cleaners-living-room"]{object-position:50% 67%}
.hero-bg img[src*="cleaner-vacuum-portrait"]{object-position:50% 0%}
.hero-bg img[src*="team-arriving-house"]{object-position:50% 66%}
.hero-bg img[src*="stove-cleaning"]{object-position:50% 31%}
.hero-bg img[src*="window-pole"]{object-position:50% 26%}
.hero-bg img[src*="rental-bedroom"]{object-position:40% 50%}
}

/* ===== Version 2.2 ===== */
/* Self-hosted fonts (no request to Google) */
@font-face{font-family:'Nunito';src:url(assets/fonts/nunito.woff) format('woff');font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url(assets/fonts/dm-sans.woff) format('woff');font-weight:500 700;font-style:normal;font-display:swap}
/* Content stays visible if JavaScript does not run; it only fades in when it does */
.fade{opacity:1;transform:none}
.js .fade:not(.in){opacity:0;transform:translateY(24px)}
@media(prefers-reduced-motion:reduce){.js .fade:not(.in){opacity:1;transform:none}}
/* Tighter spacing: less empty space between sections */
section,section.wp-block-group{padding:4rem 0}
.hero.has-photo,section.wp-block-group.hero.has-photo{min-height:clamp(480px,64vh,620px);padding:5rem 0}
@media(min-width:961px){.page-hero.has-photo,section.wp-block-group.page-hero.has-photo{min-height:360px}}
@media(max-width:960px){section,section.wp-block-group{padding:3rem 0}}
.svc{gap:2.5rem}
.svc .pic{aspect-ratio:1/1}
@media(max-width:960px){.svc .pic{aspect-ratio:4/3}}
.why{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.why .card:last-child{grid-column:auto}
.trust .grid4{grid-template-columns:repeat(4,1fr)}
@media(max-width:960px){.trust .grid4{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.trust .grid4{grid-template-columns:1fr}}
/* Prices */
.card-price{font-weight:800;color:var(--navy);margin-top:.4rem}
.price-list{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:.6rem}
.price-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1.5rem;background:#fff;border-radius:12px;padding:.9rem 1.2rem;box-shadow:var(--shadow)}
.price-list a{font-weight:800;color:var(--navy)}
.price-list span{font-weight:700;color:var(--teal-dark);text-align:right}
.price-note{margin-top:1rem;font-size:1rem}
ul.plain{padding-left:1.2rem;margin:.5rem 0 0}
.svc h3{margin-top:1.4rem}
/* CTA band: second button in white outline */
.cta .wp-block-button.ghost .wp-block-button__link{color:#fff;border-color:#fff;background:transparent}
.cta .wp-block-button.ghost .wp-block-button__link:hover{background:#fff;color:var(--teal-dark)}
.cta .wp-block-buttons{gap:1rem}
/* Quote form */
.quote-form h2{margin-bottom:1.2rem}
.quote-form .row{margin-bottom:1rem}
.quote-form .row label{margin:0}
.quote-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media(max-width:560px){.quote-form .row2{grid-template-columns:1fr}}
.quote-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.quote-form .consent{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;color:var(--text)}
.quote-form .consent input{width:auto;margin-top:.45rem;flex:none}
.form-small{font-size:.95rem;margin-top:.8rem;color:var(--text)}
.form-msg{border-radius:12px;padding:1rem 1.2rem;margin:0 0 1.2rem;font-weight:600}
.form-msg.ok{background:#e3f7f6;color:#0b5f62}
.form-msg.err{background:#fdecea;color:#8c1d18}
/* Legal pages */
.legal h2{font-size:1.5rem;margin-top:2rem}
.legal ul{padding-left:1.2rem;display:grid;gap:.5rem}
.copy .legal-links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}

/* WordPress wraps the inside of each section in an extra "inner container" in classic themes.
   Letting that wrapper step aside keeps the grids, cards and photo banners laid out as designed. */
.wp-block-group__inner-container{display:contents}
.info .wp-block-group__inner-container{display:block}
.contact-grid .info{display:block}
/* Phones and tablets: photo on top, heading and buttons underneath on navy (no text over faces) */
@media(max-width:960px){
.has-photo,.hero.has-photo,section.wp-block-group.hero.has-photo,.page-hero.has-photo,section.wp-block-group.page-hero.has-photo{display:block;min-height:0;padding:0 0 2.5rem;background:var(--navy);text-align:left}
.has-photo::before,.hero.has-photo::before{display:none}
.has-photo .hero-bg{position:relative;inset:auto;z-index:0;height:auto;width:100%;aspect-ratio:4/3;margin:0 0 1.75rem!important}
.page-hero.has-photo .hero-bg{aspect-ratio:16/10}
.has-photo h1,.has-photo p{text-shadow:none}
.page-hero.has-photo p{margin-left:0;margin-right:0}
.page-hero.has-photo .btns,.page-hero.has-photo .wp-block-buttons{justify-content:flex-start!important}
.hero-bg img[src*="hero-living-room"]{object-position:50% 45%}
.hero-bg img[src*="team-wide"]{object-position:58% 40%}
.hero-bg img[src*="two-cleaners-living-room"]{object-position:50% 55%}
.hero-bg img[src*="cleaner-vacuum-portrait"]{object-position:50% 8%}
.hero-bg img[src*="team-arriving-house"]{object-position:50% 62%}
.hero-bg img[src*="stove-cleaning"]{object-position:50% 28%}
.hero-bg img[src*="window-pole"]{object-position:50% 30%}
.hero-bg img[src*="rental-bedroom"]{object-position:30% 50%}
}
/* Customer reviews */
.reviews .review{padding:1.8rem;display:flex;flex-direction:column;justify-content:space-between}
.reviews .review:hover{transform:none}
.reviews .quote{font-size:1.08rem;color:var(--text)}
.reviews .who{margin-top:1rem}
.reviews:has(.review:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}
.reviews.single{display:block;margin:0}
.reviews.single .quote{font-size:1.2rem}
#testimonials .wp-block-buttons{margin-top:2rem}
@media(max-width:960px){.reviews:has(.review:nth-child(4):last-child){grid-template-columns:1fr}}
