/*
Theme Name: Everest Spark Clean
Theme URI: https://everestsparkclean.co.uk/
Author: Everest Spark Clean
Description: A custom, responsive cleaning-company WordPress theme for Everest Spark Clean. Includes Home, Services, Commercial, Airbnb & Property, About, Areas We Cover and Contact page designs, a built-in quote form, brand customizer settings and Elementor-friendly full-width template.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
Text Domain: everest-spark-clean
License: GPL-2.0-or-later
*/

:root{
  --esc-navy:#052D5C;
  --esc-navy-2:#083E68;
  --esc-green:#07893B;
  --esc-green-dark:#056C30;
  --esc-sage:#EAF4EE;
  --esc-sage-2:#DDEDE3;
  --esc-white:#FFFFFF;
  --esc-ink:#102A43;
  --esc-muted:#5D6B78;
  --esc-line:#D9E4DD;
  --esc-shadow:0 16px 38px rgba(5,45,92,.08);
  --esc-radius:16px;
  --esc-max:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--esc-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.55}
a{color:inherit}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}

.esc-wrap{width:min(var(--esc-max),calc(100% - 40px));margin-inline:auto}
.esc-section{padding:76px 0}
.esc-section--sage{background:var(--esc-sage)}
.esc-section--navy{background:var(--esc-navy);color:#fff}
.esc-eyebrow{color:var(--esc-green);font-size:.78rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px}
.esc-heading{margin:0;color:var(--esc-navy);font-size:clamp(2rem,4vw,3.4rem);line-height:1.08;letter-spacing:-.03em}
.esc-heading span{color:var(--esc-green)}
.esc-lead{font-size:1.08rem;color:#38536C;line-height:1.7;max-width:760px}
.esc-section-title{text-align:center;max-width:780px;margin:0 auto 38px}
.esc-section-title p{color:var(--esc-muted)}

/* Header */
.esc-topbar{background:var(--esc-navy);color:#fff;font-size:.88rem}
.esc-topbar .esc-wrap{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.esc-topbar a{text-decoration:none;color:#fff}
.esc-header{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid #E9EFEB;box-shadow:0 4px 16px rgba(5,45,92,.03)}
.admin-bar .esc-header{top:32px}
.esc-navrow{min-height:88px;display:flex;align-items:center;gap:28px}
.esc-brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:230px}
.esc-logo-mark{width:62px;flex:0 0 62px}
.esc-logo-mark svg{display:block;width:100%}
.esc-brand-copy strong{display:block;color:var(--esc-navy);font-size:1.35rem;line-height:1}
.esc-brand-copy span{display:block;color:var(--esc-green);font-weight:900;font-size:1rem;line-height:1.05;margin-top:3px}
.esc-brand-copy small{display:block;color:var(--esc-navy);font-size:.44rem;letter-spacing:.12em;font-weight:800;margin-top:4px}
.custom-logo-link img{max-height:64px;width:auto}
.esc-nav{display:flex;align-items:center;justify-content:center;gap:23px;flex:1}
.esc-nav a{text-decoration:none;color:var(--esc-navy);font-size:.91rem;font-weight:750;white-space:nowrap}
.esc-nav a:hover,.esc-nav .current-menu-item>a{color:var(--esc-green)}
.esc-header-actions{display:flex;gap:10px;align-items:center}
.esc-mobile-toggle{display:none;border:0;background:var(--esc-sage);color:var(--esc-navy);border-radius:10px;padding:10px 12px;font-size:1.25rem;cursor:pointer}

/* Buttons */
.esc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;padding:14px 20px;background:var(--esc-green);color:#fff!important;text-decoration:none;font-weight:850;border:2px solid var(--esc-green);transition:.2s ease;cursor:pointer}
.esc-btn:hover{transform:translateY(-1px);background:var(--esc-green-dark);border-color:var(--esc-green-dark)}
.esc-btn--outline{background:#fff;color:var(--esc-green)!important}
.esc-btn--navy{background:var(--esc-navy);border-color:var(--esc-navy)}
.esc-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* Hero */
.esc-hero{position:relative;min-height:570px;background:#F8FBF9;overflow:hidden;display:flex;align-items:center}
.esc-hero__image{position:absolute;right:0;top:0;width:54%;height:100%;object-fit:cover}
.esc-hero:after{content:"";position:absolute;left:38%;top:0;width:30%;height:100%;background:linear-gradient(90deg,#F8FBF9 0%,rgba(248,251,249,.95) 35%,rgba(248,251,249,0) 100%)}
.esc-hero__content{position:relative;z-index:2;width:56%;padding:70px 0}
.esc-hero h1{font-size:clamp(2.7rem,5vw,4.7rem);line-height:1.01;letter-spacing:-.045em;margin:12px 0 18px;color:var(--esc-navy)}
.esc-hero h1 span{color:var(--esc-green)}
.esc-contact-line{display:flex;align-items:center;gap:9px;color:var(--esc-navy);font-weight:750;margin-top:16px}

/* Inner hero */
.esc-page-hero{position:relative;min-height:330px;display:flex;align-items:center;overflow:hidden;background:var(--esc-navy)}
.esc-page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}
.esc-page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,45,92,.96) 0%,rgba(5,45,92,.78) 48%,rgba(5,45,92,.24) 100%)}
.esc-page-hero__content{position:relative;z-index:2;color:#fff;padding:62px 0;max-width:760px}
.esc-page-hero .esc-eyebrow{color:#9DE2B7}
.esc-page-hero h1{margin:0 0 12px;font-size:clamp(2.5rem,5vw,4.2rem);line-height:1.03;letter-spacing:-.035em}
.esc-page-hero p{font-size:1.08rem;line-height:1.65;color:#EDF4F7;max-width:680px}

/* Trust */
.esc-trust{border-block:1px solid #E9EFEB;background:#fff}
.esc-trust .esc-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding-block:30px}
.esc-trust-item{display:flex;gap:13px;align-items:center}
.esc-icon{width:48px;height:48px;border-radius:50%;background:var(--esc-sage);color:var(--esc-green);display:grid;place-items:center;flex:0 0 48px;font-weight:950;font-size:1.2rem}
.esc-trust-item strong{display:block;color:var(--esc-navy);font-size:.96rem}
.esc-trust-item span{display:block;color:var(--esc-muted);font-size:.8rem;line-height:1.35;margin-top:3px}

/* Grids/cards */
.esc-grid{display:grid;gap:24px}
.esc-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.esc-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.esc-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.esc-card{background:#fff;border:1px solid #E0E9E3;border-radius:var(--esc-radius);overflow:hidden;box-shadow:var(--esc-shadow)}
.esc-card img{width:100%;height:230px;object-fit:cover;display:block}
.esc-card__body{padding:24px}
.esc-card h3{margin:0 0 9px;color:var(--esc-navy);font-size:1.24rem;line-height:1.2}
.esc-card p{color:var(--esc-muted);font-size:.92rem}
.esc-panel{background:#fff;border:1px solid #DDE7E1;border-radius:var(--esc-radius);padding:30px;box-shadow:0 10px 26px rgba(5,45,92,.04)}
.esc-panel h3{color:var(--esc-navy);margin-top:0}
.esc-photo{width:100%;height:460px;object-fit:cover;border-radius:var(--esc-radius);box-shadow:var(--esc-shadow)}

/* Feature list */
.esc-feature-list{display:grid;gap:16px;margin-top:24px}
.esc-feature{display:flex;gap:12px;align-items:flex-start}
.esc-tick{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--esc-green);color:#fff;flex:0 0 30px;font-weight:900}
.esc-feature strong{color:var(--esc-navy)}
.esc-feature span{color:var(--esc-muted);font-size:.92rem}

/* Steps */
.esc-steps{counter-reset:escstep;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.esc-step{background:#fff;border:1px solid #DDE7E1;border-radius:14px;padding:24px}
.esc-step:before{counter-increment:escstep;content:counter(escstep);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--esc-green);color:#fff;font-weight:900;margin-bottom:16px}
.esc-step h3{color:var(--esc-navy);margin:0 0 8px}
.esc-step p{color:var(--esc-muted);font-size:.92rem}

/* Stats */
.esc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.esc-stat{background:var(--esc-sage);border-radius:14px;padding:25px;text-align:center}
.esc-stat strong{display:block;color:var(--esc-green);font-size:1.7rem}
.esc-stat span{color:var(--esc-navy);font-weight:700}

/* Areas */
.esc-area-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:24px}
.esc-area{padding:17px;border:1px solid #DCE7E0;border-radius:11px;text-align:center;background:#fff;color:var(--esc-navy);font-weight:850}
.esc-map{min-height:360px;background:linear-gradient(135deg,#DCECE2,#F7FBF8);border:1px solid #D5E3DA;border-radius:var(--esc-radius);position:relative;overflow:hidden}
.esc-map:before{content:"WINCHESTER";position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font-size:clamp(2.4rem,5vw,4.8rem);font-weight:950;color:rgba(5,45,92,.10);letter-spacing:.02em}
.esc-map .pin{position:absolute;width:18px;height:18px;border:4px solid #fff;border-radius:50%;background:var(--esc-green);box-shadow:0 3px 10px rgba(0,0,0,.2)}

/* Forms */
.esc-quote-form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.esc-quote-form input,.esc-quote-form select,.esc-quote-form textarea{width:100%;border:1px solid #CBD8D1;border-radius:9px;padding:14px 15px;background:#fff;color:var(--esc-ink)}
.esc-quote-form textarea{min-height:130px;resize:vertical}
.esc-field-full{grid-column:1/-1}
.esc-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.esc-form-note{font-size:.82rem;color:var(--esc-muted);margin-top:10px}
.esc-alert{padding:15px 18px;border-radius:10px;margin-bottom:18px;font-weight:750}
.esc-alert--success{background:#E7F7ED;color:#075E2C;border:1px solid #BFE6CD}
.esc-alert--error{background:#FFF0F0;color:#8C1B1B;border:1px solid #F0CACA}
.esc-contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.esc-contact-card{text-align:center;background:#fff;border:1px solid #DDE7E1;border-radius:14px;padding:30px}
.esc-contact-card .esc-icon{margin:0 auto 14px}
.esc-contact-card h3{color:var(--esc-navy);margin:0 0 6px}

/* FAQ */
.esc-faq{display:grid;gap:12px;max-width:900px;margin:0 auto}
.esc-faq details{background:#fff;border:1px solid #DDE7E1;border-radius:12px;padding:17px 20px}
.esc-faq summary{cursor:pointer;color:var(--esc-navy);font-weight:850}
.esc-faq p{color:var(--esc-muted);margin-bottom:0}

/* Footer */
.esc-footer{background:var(--esc-navy);color:#fff;padding:54px 0 18px}
.esc-footer-grid{display:grid;grid-template-columns:1.25fr .9fr 1.3fr 1.15fr;gap:40px}
.esc-footer h3,.esc-footer h4{margin-top:0}
.esc-footer p,.esc-footer a{color:#D6E2E8;text-decoration:none;font-size:.9rem;line-height:1.8}
.esc-footer a:hover{color:#fff}
.esc-footer-brand{font-size:1.4rem;font-weight:950;line-height:1.05}
.esc-footer-tagline{color:#9DE2B7;font-size:.78rem;letter-spacing:.1em;font-weight:850}
.esc-copyright{border-top:1px solid rgba(255,255,255,.16);margin-top:32px;padding-top:16px;font-size:.78rem;color:#C3D1D9}

/* Content / Elementor compatibility */
.esc-content{padding:60px 0}
.esc-content .entry-content>*:first-child{margin-top:0}
.esc-content .entry-content>*:last-child{margin-bottom:0}
.esc-elementor-fullwidth .esc-content{padding:0}
.elementor-page .esc-content{padding:0}

/* CTA strip */
.esc-cta{background:linear-gradient(135deg,var(--esc-navy),var(--esc-navy-2));color:#fff;border-radius:20px;padding:38px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.esc-cta h2{margin:0 0 8px;font-size:2rem}
.esc-cta p{margin:0;color:#D9E6EC}

@media (max-width:1100px){
  .esc-nav{gap:14px}.esc-nav a{font-size:.82rem}.esc-header-actions .esc-btn--outline{display:none}
  .esc-hero__content{width:62%}.esc-hero__image{width:50%}
}
@media (max-width:920px){
  .admin-bar .esc-header{top:46px}
  .esc-topbar .esc-wrap{flex-direction:column;justify-content:center;text-align:center;padding-block:8px}.esc-topbar{font-size:.78rem}
  .esc-navrow{min-height:76px}.esc-mobile-toggle{display:block;margin-left:auto}.esc-header-actions{display:none}
  .esc-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 16px 30px rgba(5,45,92,.12);padding:18px 20px;flex-direction:column;align-items:stretch}
  .esc-nav.is-open{display:flex}.esc-nav a{padding:10px 4px;font-size:.95rem}
  .esc-brand{min-width:0}.esc-logo-mark{width:50px;flex-basis:50px}.esc-brand-copy strong{font-size:1.12rem}.esc-brand-copy span{font-size:.86rem}
  .esc-hero{min-height:auto;padding-bottom:360px}.esc-hero__image{width:100%;height:360px;top:auto;bottom:0}.esc-hero:after{display:none}.esc-hero__content{width:100%;padding:56px 0}.esc-hero h1{font-size:clamp(2.5rem,8vw,4rem)}
  .esc-trust .esc-wrap{grid-template-columns:repeat(2,1fr)}
  .esc-grid--3{grid-template-columns:repeat(2,1fr)}.esc-grid--4{grid-template-columns:repeat(2,1fr)}.esc-grid--2{grid-template-columns:1fr}
  .esc-steps{grid-template-columns:repeat(2,1fr)}.esc-contact-cards{grid-template-columns:1fr}.esc-footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  .esc-wrap{width:min(100% - 28px,var(--esc-max))}.esc-section{padding:58px 0}.esc-topbar{display:none}.admin-bar .esc-header{top:46px}
  .esc-brand-copy small{display:none}.esc-navrow{min-height:70px}.esc-hero{padding-bottom:260px}.esc-hero__image{height:260px}
  .esc-actions{display:grid}.esc-btn{width:100%}.esc-contact-line{font-size:.9rem}.esc-trust .esc-wrap{grid-template-columns:1fr}.esc-grid--3,.esc-grid--4{grid-template-columns:1fr}.esc-card img{height:210px}
  .esc-steps{grid-template-columns:1fr}.esc-stats{grid-template-columns:1fr}.esc-area-grid{grid-template-columns:1fr}.esc-quote-form{grid-template-columns:1fr}.esc-field-full{grid-column:auto}.esc-footer-grid{grid-template-columns:1fr}.esc-cta{flex-direction:column;align-items:flex-start}
  .esc-page-hero{min-height:300px}.esc-page-hero__content{padding:48px 0}.esc-page-hero h1{font-size:2.6rem}
}
