/* Carpet Cleaning Somerset West - main stylesheet */
:root{
  --bg:#FFFFFF; --surface:#F5F8FB; --ink:#17202A; --ink-soft:#48566A;
  --accent:#086BC1; --accent-dark:#004B8D; --navy:#002045; --navy-dark:#001530;
  --border:#DCE5ED; --success:#0F8A4C; --on-navy:#EAF1F8;
  --radius-sm:8px; --radius-md:16px; --radius-lg:24px; --radius-pill:999px;
  --space-xs:8px; --space-sm:16px; --space-md:24px; --space-lg:48px; --space-xl:96px;
  --container:1200px;
  --font-heading:'Sora','Segoe UI',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-body:'IBM Plex Sans','Segoe UI',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --shadow-tint: 0 12px 28px -12px rgba(0,32,69,0.22);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
:where(h1,h2,h3,h4,p,ul,ol,figure,blockquote){margin:0;padding:0;}
ul{list-style:none;}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}

.screen-reader-text{position:absolute;left:-9999px;}
.ccsw-skip-link{position:absolute;top:-100px;left:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:999;border-radius:0 0 8px 0;}
.ccsw-skip-link:focus{top:0;}

.ccsw-container{max-width:var(--container);margin:0 auto;padding:0 20px;}

:where(h1,h2,h3){font-family:var(--font-heading);font-weight:700;line-height:1.1;color:var(--navy);}
.ccsw-h1{font-size:clamp(2rem,4vw,2.6rem);margin-bottom:var(--space-md);}
.ccsw-h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:var(--space-md);}
.ccsw-h2--light{color:#fff;}
.ccsw-lead{font-size:1.15rem;color:var(--ink-soft);max-width:64ch;}

/* Buttons */
.ccsw-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:var(--radius-pill);font-family:var(--font-heading);font-weight:600;font-size:0.98rem;cursor:pointer;border:1.5px solid transparent;transition:background .15s ease,transform .1s ease;text-decoration:none;}
.ccsw-btn:hover{text-decoration:none;transform:translateY(-1px);}
.ccsw-btn--primary{background:var(--accent);color:#fff;}
.ccsw-btn--primary:hover{background:var(--accent-dark);}
.ccsw-btn--secondary{background:transparent;color:var(--navy);border-color:var(--navy);}
.ccsw-btn--secondary:hover{background:var(--navy);color:#fff;}
.ccsw-btn--lg{padding:16px 34px;font-size:1.05rem;}
.ccsw-btn--block{width:100%;}

/* Header */
.ccsw-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--border);}
.ccsw-header__inner{display:flex;align-items:center;gap:var(--space-md);padding:14px 20px;}
.ccsw-logo{display:flex;align-items:center;flex-shrink:0;}
.ccsw-logo img,.ccsw-logo .custom-logo{max-height:48px;width:auto;max-width:180px;height:auto;object-fit:contain;}
.ccsw-logo__link{display:flex;align-items:center;}
.ccsw-logo__text{font-family:var(--font-heading);font-weight:700;font-size:1.2rem;color:var(--navy);}
.ccsw-primary-nav{margin-left:auto;}
.ccsw-menu{display:flex;gap:28px;}
.ccsw-menu a{color:var(--navy);font-weight:600;font-size:0.96rem;}
.ccsw-menu a:hover{color:var(--accent);text-decoration:none;}
.ccsw-header__cta{flex-shrink:0;}
.ccsw-nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
.ccsw-nav-toggle__bar{width:24px;height:2px;background:var(--navy);}

@media (max-width:900px){
  .ccsw-nav-toggle{display:flex;}
  .ccsw-primary-nav{position:fixed;inset:0 0 0 30%;background:#fff;transform:translateX(100%);transition:transform .2s ease;padding:100px 24px 24px;z-index:40;box-shadow:-8px 0 24px rgba(0,32,69,0.12);}
  .ccsw-primary-nav.is-open{transform:translateX(0);}
  .ccsw-menu{flex-direction:column;gap:20px;}
  .ccsw-header__cta{display:none;}
}

/* Hero */
.ccsw-hero{padding:var(--space-xl) 0 var(--space-lg);}
.ccsw-hero__inner{display:grid;grid-template-columns:1.1fr 0.9fr;gap:var(--space-lg);align-items:center;}
.ccsw-hero__title{font-size:clamp(2.1rem,4.4vw,3.2rem);margin-bottom:var(--space-sm);}
.ccsw-hero__sub{font-size:1.15rem;color:var(--ink-soft);max-width:52ch;margin-bottom:var(--space-md);}
.ccsw-hero__ctas{display:flex;gap:16px;flex-wrap:wrap;}
.ccsw-hero--simple .ccsw-hero__sub{margin-bottom:0;}
.ccsw-hero--location{padding-bottom:var(--space-md);}
@media (max-width:900px){.ccsw-hero__inner{grid-template-columns:1fr;} .ccsw-hero__media{order:-1;}}

/* Sections */
.ccsw-section{padding:var(--space-xl) 0;}
.ccsw-section--tint{background:var(--surface);}
.ccsw-section--navy{background:var(--navy);color:var(--on-navy);}
.ccsw-section--navy p{color:var(--on-navy);opacity:0.9;}
.ccsw-section--calc{padding-top:0;padding-bottom:var(--space-lg);}
.ccsw-prose{max-width:76ch;margin:0 auto;}
.ccsw-prose--narrow{max-width:68ch;}
.ccsw-prose p{margin-bottom:var(--space-sm);color:var(--ink-soft);}
.ccsw-content p{margin-bottom:var(--space-sm);}
.ccsw-eyebrow{color:var(--accent);font-weight:600;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:8px;}

/* Split */
.ccsw-split__inner{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);align-items:center;}
.ccsw-split--rev .ccsw-split__media{order:2;}
.ccsw-split__content p{color:var(--ink-soft);margin:var(--space-sm) 0;max-width:52ch;}
@media (max-width:900px){.ccsw-split__inner{grid-template-columns:1fr;} .ccsw-split--rev .ccsw-split__media{order:0;}}

.ccsw-link-arrow{font-weight:600;color:var(--accent);}

/* Trust bar */
.ccsw-trust-bar{background:var(--navy);padding:22px 0;}
.ccsw-trust-bar__inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.ccsw-trust-item span{color:var(--on-navy);font-weight:600;font-size:0.95rem;}

/* Cards */
.ccsw-cards{display:grid;gap:var(--space-md);}
.ccsw-cards--3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){.ccsw-cards--3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.ccsw-cards--3{grid-template-columns:1fr;}}
.ccsw-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);transition:box-shadow .15s ease,transform .15s ease;}
.ccsw-card:hover{box-shadow:var(--shadow-tint);transform:translateY(-2px);}
.ccsw-card__title{font-size:1.1rem;margin-bottom:8px;color:var(--navy);}
.ccsw-card p{color:var(--ink-soft);font-size:0.96rem;}
.ccsw-card--link{text-decoration:none;color:inherit;display:block;}
.ccsw-card--link img{border-radius:var(--radius-sm);margin-bottom:12px;}

/* Process steps */
.ccsw-process{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-top:var(--space-md);}
@media (max-width:900px){.ccsw-process{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.ccsw-process{grid-template-columns:1fr;}}
.ccsw-process__num{display:block;font-family:var(--font-heading);font-size:1.6rem;font-weight:700;color:var(--accent);margin-bottom:6px;}
.ccsw-process__step h3{color:#fff;font-size:1.02rem;margin-bottom:6px;}
.ccsw-process__step p{color:var(--on-navy);opacity:0.85;font-size:0.92rem;}

/* Area chips */
.ccsw-area-chips{display:flex;flex-wrap:wrap;gap:10px;margin:var(--space-md) 0;}
.ccsw-chip{background:#fff;border:1px solid var(--border);border-radius:var(--radius-pill);padding:8px 18px;font-weight:600;font-size:0.92rem;color:var(--navy);}
.ccsw-chip:hover{border-color:var(--accent);color:var(--accent);text-decoration:none;}

/* Testimonials placeholder */
.ccsw-testimonial-placeholder{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center;color:var(--ink-soft);}

/* FAQ */
.ccsw-accordion{max-width:80ch;}
.ccsw-accordion__item{border-bottom:1px solid var(--border);padding:18px 0;}
.ccsw-accordion__q{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;color:var(--navy);cursor:pointer;list-style:none;}
.ccsw-accordion__q::-webkit-details-marker{display:none;}
.ccsw-accordion__q::after{content:'+';float:right;color:var(--accent);font-size:1.3rem;}
details[open] .ccsw-accordion__q::after{content:'\2212';}
.ccsw-accordion__a{padding-top:10px;color:var(--ink-soft);}

/* Final CTA */
.ccsw-final-cta{background:var(--navy);text-align:center;}
.ccsw-final-cta__inner p{color:var(--on-navy);opacity:0.9;max-width:52ch;margin:var(--space-sm) auto var(--space-md);}
.ccsw-final-cta .ccsw-h2{color:#fff;}

/* Breadcrumbs */
.ccsw-breadcrumbs{font-size:0.85rem;color:var(--ink-soft);margin-bottom:var(--space-sm);}
.ccsw-breadcrumbs a{color:var(--ink-soft);}

/* Placeholders */
.ccsw-placeholder{background:linear-gradient(135deg,var(--navy) 0%,var(--accent) 100%);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#fff;text-align:center;padding:24px;}
.ccsw-placeholder__icon{opacity:0.85;}
.ccsw-placeholder__label{font-size:0.85rem;max-width:32ch;opacity:0.9;}
.ccsw-ph--hero{aspect-ratio:4/3;border-radius:var(--radius-lg);}
.ccsw-ph--square{aspect-ratio:1/1;}
.ccsw-ph--wide{aspect-ratio:16/9;}
.ccsw-ph--card{aspect-ratio:4/3;border-radius:var(--radius-sm) var(--radius-sm) 0 0;}
.ccsw-photo{border-radius:var(--radius-lg);}

/* ===================== CALCULATOR ===================== */
.ccsw-calc{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tint);padding:var(--space-lg);max-width:820px;margin:0 auto;}
.ccsw-calc__head{text-align:center;margin-bottom:var(--space-md);}
.ccsw-calc__title{font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--navy);}
.ccsw-calc__intro{color:var(--ink-soft);margin-top:8px;}
.ccsw-calc__label{display:block;font-weight:600;color:var(--navy);margin-bottom:10px;}
.ccsw-calc__step{margin-bottom:var(--space-md);}

.ccsw-service-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.ccsw-service-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:16px;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease;}
.ccsw-service-card:hover{border-color:var(--accent);}
.ccsw-service-card.is-active{border-color:var(--accent);background:#fff;box-shadow:0 0 0 2px var(--accent) inset;}
.ccsw-service-card__title{display:block;font-family:var(--font-heading);font-weight:700;color:var(--navy);}
.ccsw-service-card__sub{display:block;font-size:0.85rem;color:var(--ink-soft);margin-top:4px;}
@media (max-width:640px){.ccsw-service-picker{grid-template-columns:1fr;}}

.ccsw-calc__fields{display:grid;gap:var(--space-md);margin-bottom:var(--space-md);}
.ccsw-field-group label{font-weight:600;color:var(--navy);display:block;margin-bottom:10px;}
.ccsw-field-group[hidden]{display:none;}

.ccsw-stepper{display:flex;align-items:center;gap:0;max-width:220px;border:1.5px solid var(--border);border-radius:var(--radius-pill);overflow:hidden;}
.ccsw-stepper__btn{width:48px;height:48px;border:0;background:var(--surface);font-size:1.4rem;color:var(--navy);cursor:pointer;flex-shrink:0;}
.ccsw-stepper__btn:hover{background:var(--accent);color:#fff;}
.ccsw-stepper input{flex:1;border:0;text-align:center;font-size:1.1rem;font-weight:700;font-family:var(--font-heading);color:var(--navy);width:100%;-moz-appearance:textfield;}
.ccsw-stepper input::-webkit-outer-spin-button,.ccsw-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

.ccsw-rug-inputs{display:flex;align-items:end;gap:16px;flex-wrap:wrap;}
.ccsw-input-wrap{display:flex;flex-direction:column;gap:6px;}
.ccsw-input-label{font-size:0.85rem;color:var(--ink-soft);font-weight:600;}
.ccsw-rug-inputs input{width:100px;height:48px;border:1.5px solid var(--border);border-radius:var(--radius-sm);text-align:center;font-size:1.05rem;font-weight:700;font-family:var(--font-heading);color:var(--navy);}
.ccsw-rug-area{font-weight:700;color:var(--accent);font-family:var(--font-heading);padding-bottom:12px;}

.ccsw-calc__result{background:var(--surface);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);}
.ccsw-breakdown{font-size:0.95rem;color:var(--ink-soft);margin-bottom:12px;}
.ccsw-breakdown__line{display:flex;justify-content:space-between;padding:4px 0;}
.ccsw-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--border);padding-top:14px;}
.ccsw-total__label{font-weight:600;color:var(--navy);}
.ccsw-total__amount{font-family:var(--font-heading);font-size:2.1rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;}
.ccsw-disclaimer{font-size:0.78rem;color:var(--ink-soft);margin-top:12px;opacity:0.85;}

.ccsw-booking__title{font-size:1.3rem;color:var(--navy);margin-bottom:4px;}
.ccsw-booking__sub{color:var(--ink-soft);margin-bottom:var(--space-sm);}
.ccsw-form-row{margin-bottom:14px;display:flex;flex-direction:column;gap:6px;}
.ccsw-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:560px){.ccsw-form-grid{grid-template-columns:1fr;}}
.ccsw-form-row label{font-weight:600;font-size:0.9rem;color:var(--navy);}
.ccsw-form-row input{height:48px;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0 14px;font-size:1rem;font-family:var(--font-body);color:var(--ink);}
.ccsw-form-row input:focus{border-color:var(--accent);}
.ccsw-form-row input.ccsw-field--error{border-color:#C0392B;}
.ccsw-honeypot{position:absolute;left:-9999px;opacity:0;}

.ccsw-notice{border-radius:var(--radius-sm);padding:14px 18px;margin-bottom:var(--space-md);font-weight:600;}
.ccsw-notice--success{background:#E7F6ED;color:var(--success);border:1px solid #BEE6CC;}
.ccsw-notice--error{background:#FBEAEA;color:#C0392B;border:1px solid #F3C6C6;}

/* Footer */
.ccsw-footer{background:var(--navy);color:var(--on-navy);padding:var(--space-xl) 0 var(--space-md);margin-top:var(--space-xl);}
.ccsw-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-lg);}
@media (max-width:900px){.ccsw-footer__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.ccsw-footer__grid{grid-template-columns:1fr;}}
.ccsw-footer__heading{color:#fff;font-size:1rem;margin-bottom:14px;}
.ccsw-footer__list li{margin-bottom:10px;}
.ccsw-footer__list a{color:var(--on-navy);opacity:0.85;}
.ccsw-footer__list a:hover{opacity:1;text-decoration:none;color:#fff;}
.ccsw-footer__desc{color:var(--on-navy);opacity:0.75;margin-top:10px;max-width:36ch;}
.ccsw-logo--footer{background:#fff;border-radius:var(--radius-sm);padding:10px 14px;display:inline-flex;align-items:center;width:fit-content;}
.ccsw-logo--footer img,.ccsw-logo--footer .custom-logo{max-height:40px;max-width:160px;}
.ccsw-logo--footer .ccsw-logo__text{color:#fff;}
.ccsw-ph-note{opacity:0.6;font-style:italic;}
.ccsw-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid rgba(255,255,255,0.12);margin-top:var(--space-lg);padding-top:var(--space-md);font-size:0.85rem;opacity:0.75;}
.ccsw-footer__legal{display:flex;gap:18px;}
.ccsw-footer__legal a{color:var(--on-navy);}

/* Search / 404 */
.ccsw-search-result{padding:18px 0;border-bottom:1px solid var(--border);}
.ccsw-search-result h2{font-size:1.2rem;}
.ccsw-404{text-align:center;}
.ccsw-hero__media{width:100%;align-self:start;}
.ccsw-media{width:100%;overflow:hidden;background:var(--surface);border-radius:var(--radius-md);}
.ccsw-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.ccsw-media.ccsw-ph--hero{aspect-ratio:4/3;max-height:440px;}
.ccsw-media.ccsw-ph--square{aspect-ratio:1/1;max-height:420px;}
.ccsw-media.ccsw-ph--wide{aspect-ratio:16/9;max-height:420px;}
.ccsw-media.ccsw-ph--card{aspect-ratio:4/3;max-height:320px;}
@media (max-width:900px){.ccsw-media.ccsw-ph--hero{max-height:300px;}}
