/*
Theme Name: S&T Services
Theme URI: https://stscleaning.co.uk/
Author: S&T Services
Description: Lightweight, editable website for S&T Services — commercial cleaning and workplace services across Essex.
Version: 1.2.1
Text Domain: st-services
*/
:root{--navy:#092f4a;--navy2:#061f32;--green:#65b82e;--green2:#4e9821;--ink:#173042;--muted:#607381;--pale:#f1f6f3;--line:#dce6e1;--white:#fff;--shadow:0 16px 44px rgba(7,39,61,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.65;background:#fff}img{max-width:100%;height:auto}a{color:var(--navy)}a:hover{color:var(--green2)}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:9999}.topbar{background:var(--navy2);color:#dce9ef;font-size:.84rem}.topbar .wrap{display:flex;justify-content:space-between;padding:8px 0}.topbar a{color:#fff;text-decoration:none}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.navrow{display:flex;align-items:center;min-height:76px;gap:28px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;white-space:nowrap}.mark{width:44px;height:44px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:-2px;box-shadow:inset -7px -7px 0 var(--green)}.brand-text{font-weight:900;font-size:1.15rem;letter-spacing:.04em}.brand-text small{display:block;color:var(--muted);font-size:.58rem;letter-spacing:.12em;font-weight:700}.main-nav{margin-left:auto}.main-nav ul{list-style:none;padding:0;margin:0;display:flex;align-items:center;gap:21px}.main-nav a{text-decoration:none;font-size:.9rem;font-weight:700}.btn,.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:13px 20px;background:var(--green);color:#092f4a!important;text-decoration:none;font-weight:850;border:0;transition:.2s}.btn:hover{transform:translateY(-2px);background:#78c942}.btn.ghost{background:transparent;color:#fff!important;border:1px solid rgba(255,255,255,.55)}.menu-toggle{display:none;border:0;background:var(--navy);color:#fff;border-radius:7px;padding:10px 12px}.hero{background:radial-gradient(circle at 75% 20%,rgba(101,184,46,.26),transparent 25%),linear-gradient(125deg,var(--navy2),var(--navy));color:#fff;padding:94px 0 78px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:850;color:var(--green)}.eyebrow:before{content:"";width:28px;height:2px;background:currentColor}.hero h1,.page-hero h1{font-size:clamp(2.5rem,5vw,4.9rem);line-height:1.02;letter-spacing:-.045em;margin:.35em 0 .35em;color:#fff}.hero h1 span{color:var(--green)}.lead{font-size:1.17rem;color:#d9e5eb;max-width:700px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.trust-row{display:flex;flex-wrap:wrap;gap:20px;margin-top:34px;font-size:.88rem;color:#dce7ec}.trust-row span:before{content:"✓";color:var(--green);font-weight:900;margin-right:7px}.hero-card{background:#fff;color:var(--ink);padding:30px;border-radius:18px;box-shadow:var(--shadow);position:relative}.hero-card:before{content:"";position:absolute;top:-10px;right:22px;width:64px;height:20px;background:var(--green);border-radius:20px}.hero-card h2{font-size:1.45rem;margin-top:0}.mini-list{display:grid;gap:11px}.mini-list div{display:flex;gap:11px;align-items:center;padding:10px;border-radius:8px;background:var(--pale);font-weight:700}.icon{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:var(--navy);color:#fff}.section{padding:82px 0}.section.alt{background:var(--pale)}.section-head{max-width:720px;margin-bottom:38px}.section-head h2,.content h2{font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.15;letter-spacing:-.035em;margin:.25em 0}.section-head p{color:var(--muted);font-size:1.05rem}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:#fff;padding:26px;border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 22px rgba(7,39,61,.05);transition:.2s}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card h3{font-size:1.17rem;margin:.65em 0 .3em}.card p{color:var(--muted);font-size:.94rem}.card a{font-weight:800;text-decoration:none}.number{font-size:.75rem;font-weight:900;color:var(--green2);letter-spacing:.1em}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.panel-dark{background:var(--navy);color:#fff;border-radius:18px;padding:42px}.panel-dark h2{color:#fff}.checklist{list-style:none;padding:0}.checklist li{padding:9px 0;border-bottom:1px solid rgba(255,255,255,.12)}.checklist li:before{content:"✓";color:var(--green);font-weight:900;margin-right:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.stat strong{display:block;font-size:1.7rem;color:var(--navy)}.cta{background:var(--green);color:var(--navy2);padding:52px 0}.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px}.cta h2{margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:1.1}.cta .btn{background:var(--navy);color:#fff!important}.page-hero{background:linear-gradient(125deg,var(--navy2),var(--navy));padding:65px 0;color:#fff}.page-hero h1{font-size:clamp(2.2rem,4.5vw,4rem)}.breadcrumbs{font-size:.82rem;color:#bfd0d9}.breadcrumbs a{color:#fff}.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:55px;padding:70px 0}.content h2{margin-top:1.4em}.content h3{font-size:1.3rem;margin-top:1.5em}.content li{margin:.4em 0}.content .intro{font-size:1.18rem;color:var(--muted)}.sidebar{background:var(--pale);padding:25px;border-radius:13px;height:max-content}.sidebar h2{font-size:1.2rem}.sidebar ul{list-style:none;padding:0}.sidebar li{border-top:1px solid var(--line);padding:8px 0}.sidebar a{text-decoration:none;font-weight:700}.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.quote-form .full{grid-column:1/-1}.quote-form label{font-weight:750;font-size:.88rem}.quote-form input,.quote-form select,.quote-form textarea{width:100%;padding:12px;border:1px solid #b9c8c1;border-radius:7px;font:inherit}.quote-form textarea{min-height:120px}.site-footer{background:var(--navy2);color:#cad9e0;padding:62px 0 20px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}.site-footer h2,.site-footer h3{color:#fff}.site-footer ul{list-style:none;padding:0}.site-footer a{color:#dbe8ed;text-decoration:none}.legal{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:20px;font-size:.8rem}.whatsapp{position:fixed;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff!important;display:grid;place-items:center;text-decoration:none;font-weight:900;font-size:1.45rem;z-index:80;box-shadow:0 8px 25px rgba(0,0,0,.22)}
@media(max-width:980px){.main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:20px;border-bottom:1px solid var(--line)}.main-nav.open{display:block}.main-nav ul{display:grid}.menu-toggle{display:block;margin-left:auto}.header-quote{display:none}.hero-grid,.split,.content-wrap{grid-template-columns:1fr}.hero-card{max-width:560px}.grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.wrap{width:min(100% - 28px,1160px)}.topbar .wrap{justify-content:center}.topbar span:first-child{display:none}.hero{padding:65px 0}.hero h1{font-size:2.65rem}.grid,.stats,.footer-grid{grid-template-columns:1fr}.section{padding:60px 0}.cta .wrap{align-items:flex-start;flex-direction:column}.quote-form{grid-template-columns:1fr}.quote-form .full{grid-column:auto}.content-wrap{padding:50px 0}.brand-text small{display:none}}
@media(max-width:640px){html,body{max-width:100%;overflow-x:hidden}.site-header{position:relative}.navrow{min-height:72px;gap:12px}.brand-text{font-size:1rem}.page-hero{padding:42px 0}.page-hero .wrap{text-align:left}.page-hero h1{font-size:2.35rem;line-height:1.08;overflow-wrap:anywhere}.page-hero .lead{font-size:1rem;line-height:1.55}.area-quick-links{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch;margin-top:22px}.area-quick-links .btn{width:100%;min-width:0;padding:11px 8px;font-size:.78rem;text-align:center}.area-quick-links .btn:first-child{grid-column:1/-1}.content-wrap{gap:28px}.content .intro{font-size:1.05rem}.card{padding:20px}.main-nav{max-height:calc(100vh - 72px);overflow-y:auto;box-shadow:0 12px 24px rgba(7,39,61,.15)}}

/* Simple green and navy text logo */
.brand{align-items:baseline;gap:7px;font-weight:900;letter-spacing:-.025em}.mark{width:auto;height:auto;border-radius:0;background:transparent;box-shadow:none;display:inline;color:var(--green);font-size:1.65rem;letter-spacing:-.04em}.brand-text,.site-footer .brand-text{color:var(--navy)!important;font-size:1.18rem;letter-spacing:.08em}.brand-text small{color:var(--muted);margin-top:-5px}.site-footer .brand{background:#fff;border-radius:7px;padding:10px 13px}

/* Essex coverage map in footer */
.footer-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,1fr) minmax(250px,1.35fr);gap:25px}.footer-grid>div{min-width:0}.footer-grid a{overflow-wrap:anywhere}.essex-map h3{margin-top:0}.map-link{display:block}.essex-map svg{display:block;width:100%;max-width:300px;height:auto;overflow:visible}.essex-map .county{fill:#f4f8f5;stroke:#65b82e;stroke-width:3;stroke-linejoin:round}.essex-map .coast{fill:none;stroke:#9bd572;stroke-width:2;stroke-dasharray:4 4}.essex-map .town circle{fill:#092f4a;stroke:#fff;stroke-width:2}.essex-map .town.main circle{fill:#65b82e}.essex-map .town text{fill:#092f4a;font:700 10px Inter,Arial,sans-serif}.essex-map p{margin:.3rem 0 0;font-size:.82rem}.essex-map p a{color:#fff;font-weight:800}
@media(max-width:1150px){.footer-grid{grid-template-columns:repeat(3,1fr)}.essex-map{grid-column:span 2}}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr}.essex-map{grid-column:auto}.essex-map svg{max-width:330px}}

/* Footer layout: links first, coverage map across the lower row */
.footer-grid{grid-template-columns:minmax(0,1.25fr) repeat(2,minmax(0,.85fr)) minmax(0,1.15fr);gap:34px}.essex-map{grid-column:1/-1;display:grid;grid-template-columns:170px minmax(260px,340px) 1fr;align-items:center;gap:28px;border-top:1px solid rgba(255,255,255,.12);padding-top:30px;margin-top:5px}.essex-map h3{margin:0}.essex-map svg{max-width:320px}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr 1fr}.essex-map{grid-column:1/-1;grid-template-columns:140px minmax(240px,320px)}}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr}.essex-map{grid-column:auto;display:block}.essex-map h3{margin-bottom:15px}.essex-map svg{max-width:330px}}

/* Centred inner-page mastheads */
.page-hero{text-align:center}.page-hero .lead{margin-left:auto;margin-right:auto}.page-hero .breadcrumbs{text-align:center}.page-hero .eyebrow{justify-content:center}

/* Essex map belongs on the Areas We Cover page, not in the global footer. */
.areas-map-slot{margin-top:42px;padding:34px;background:var(--pale);border:1px solid var(--line);border-radius:16px}.areas-map-slot .essex-map{display:block!important;grid-column:auto;border:0;padding:0;margin:0}.areas-map-slot .essex-map h3{font-size:1.8rem;color:var(--navy);margin:0 0 18px}.areas-map-slot .essex-map svg{width:100%;max-width:620px;margin:auto}.areas-map-slot .essex-map p{text-align:center;margin-top:15px}.areas-map-slot .essex-map p a{color:var(--navy);font-size:.95rem}.site-footer .essex-map{display:none!important}
.areas-map-slot .essex-map .town.main circle{fill:var(--navy)}
/* Priority locations remain visible within the Areas We Cover banner. */
.area-quick-links{margin-top:28px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.area-quick-links .btn{padding:12px 16px;font-size:.88rem}.page-hero .area-quick-links .ghost{color:#fff;border-color:rgba(255,255,255,.45)}
