/*
Theme Name: JS Detailing Elementor
Theme URI: https://jscardetailing.co.uk/
Author: OpenAI for JS Detailing
Description: Lightweight, responsive WordPress theme built for JS Detailing Colchester and designed to work smoothly with Elementor. Includes branded header/footer, contact details, booking CTA, WhatsApp button and starter page templates.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: js-detailing
*/

:root {
  --js-red: #c62828;
  --js-red-dark: #9f1f1f;
  --js-black: #101010;
  --js-charcoal: #1a1a1a;
  --js-text: #1e1e1e;
  --js-muted: #6a6a6a;
  --js-light: #f7f7f7;
  --js-border: #e6e6e6;
  --js-white: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--js-text);
  background: var(--js-white);
  line-height: 1.6;
}
a { color: var(--js-red); text-decoration: none; }
a:hover { color: var(--js-red-dark); }
img { max-width: 100%; height: auto; }

.js-container { width: min(1180px, 92%); margin: 0 auto; }
.js-section { padding: 72px 0; }
.js-section--light { background: var(--js-light); }
.js-section--dark { background: var(--js-black); color: #fff; }
.js-eyebrow { color: var(--js-red); text-transform: uppercase; letter-spacing: 2px; font-size: 12px; font-weight: 800; }
.js-heading { margin: 8px 0 16px; font-size: clamp(32px, 5vw, 56px); line-height: 1.08; }
.js-subheading { max-width: 760px; color: var(--js-muted); font-size: 17px; }
.js-section--dark .js-subheading { color: #c8c8c8; }

.js-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 22px;
  border-radius: 7px;
  font-weight: 800;
  border: 1px solid transparent;
  transition: .2s ease;
}
.js-btn--primary { background: var(--js-red); color: #fff; }
.js-btn--primary:hover { background: var(--js-red-dark); color: #fff; transform: translateY(-1px); }
.js-btn--outline { border-color: var(--js-black); color: var(--js-black); background: #fff; }
.js-btn--outline:hover { background: var(--js-black); color: #fff; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: rgba(16,16,16,.97);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.admin-bar .site-header { top: 32px; }
.js-header-inner {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.site-branding img { width: 145px; max-height: 62px; object-fit: contain; }
.site-title { color: #fff; font-size: 20px; font-weight: 800; }
.primary-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 24px; }
.primary-nav a { color: #fff; font-size: 14px; font-weight: 700; }
.primary-nav a:hover, .primary-nav .current-menu-item > a { color: #ef5350; }
.js-header-actions { display: flex; align-items: center; gap: 10px; }
.js-menu-toggle { display: none; border: 0; background: transparent; color: white; font-size: 26px; cursor: pointer; }

.js-hero {
  min-height: 610px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.88) 52%, rgba(255,255,255,.35) 100%),
    radial-gradient(circle at 80% 40%, rgba(198,40,40,.16), transparent 30%),
    #fff;
}
.js-hero-content { max-width: 720px; }
.js-hero p { font-size: 18px; color: #555; max-width: 680px; }
.js-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.js-badges { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.js-badge { background: #fff5f5; color: var(--js-red); border: 1px solid #f0caca; border-radius: 999px; padding: 8px 13px; font-size: 13px; font-weight: 700; }

.js-grid { display: grid; gap: 22px; }
.js-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.js-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.js-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.js-card { border: 1px solid var(--js-border); border-top: 3px solid var(--js-red); border-radius: 14px; padding: 26px; background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.05); }
.js-card h3 { margin-top: 0; }
.js-card p { color: var(--js-muted); }

.js-page-hero { padding: 82px 0 56px; background: linear-gradient(135deg,#fff 0%,#fafafa 100%); border-bottom: 1px solid var(--js-border); }
.js-page-title { margin: 6px 0 12px; font-size: clamp(38px, 6vw, 64px); line-height: 1.05; }

.site-main { min-height: 60vh; }
.entry-content > *:first-child { margin-top: 0; }

.js-booking-placeholder {
  border: 2px dashed #d8d8d8;
  background: #fff;
  border-radius: 14px;
  padding: 40px 24px;
  text-align: center;
}
.js-booking-placeholder code { background: #f4f4f4; padding: 3px 6px; border-radius: 4px; }

.js-whatsapp {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 9999;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 900;
  box-shadow: 0 10px 26px rgba(0,0,0,.25);
}
.js-whatsapp:hover { color:#fff; transform: translateY(-2px); }

.site-footer { background: var(--js-black); color: #ddd; padding: 54px 0 18px; }
.js-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 38px; }
.site-footer h3 { color: #fff; margin-top: 0; }
.site-footer a { color: #ddd; }
.site-footer a:hover { color: #ef5350; }
.js-footer-logo { width: 170px; margin-bottom: 14px; }
.js-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 34px; padding-top: 18px; font-size: 13px; color: #999; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }

@media (max-width: 960px) {
  .js-grid--4, .js-grid--3 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .js-footer-grid { grid-template-columns: 1fr 1fr; }
  .js-menu-toggle { display: block; }
  .primary-nav { display: none; position:absolute; top:78px; left:0; right:0; background:#111; padding:18px 4%; }
  .primary-nav.is-open { display:block; }
  .primary-nav ul { flex-direction:column; align-items:flex-start; gap:14px; }
  .js-header-actions .js-btn { display:none; }
}
@media (max-width: 640px) {
  .admin-bar .site-header { top: 46px; }
  .js-grid--4, .js-grid--3, .js-grid--2, .js-footer-grid { grid-template-columns: 1fr; }
  .js-section { padding: 54px 0; }
  .js-hero { min-height: 520px; }
  .site-branding img { width: 120px; }
  .js-card { padding: 22px; }
}

/* v1.1 - Services & Ceramic Coating landing pages */
.js-page-hero--services,
.js-page-hero--ceramic { padding: 94px 0 72px; }
.js-lead { max-width: 780px; color: #555; font-size: 18px; line-height: 1.75; }
.js-heading--section { font-size: clamp(30px,4vw,46px); max-width: 850px; }
.js-services-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:36px; }
.js-service-card { border:1px solid var(--js-border); border-radius:14px; padding:26px; background:#fff; box-shadow:0 10px 28px rgba(0,0,0,.045); }
.js-service-card--featured { border-top:4px solid var(--js-red); }
.js-service-card__top { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:10px; }
.js-service-card h3 { margin:0; font-size:22px; }
.js-service-card p { color:var(--js-muted); margin:0 0 16px; }
.js-price-tag { flex:none; background:#fff4f4; color:var(--js-red); border:1px solid #f1cccc; padding:7px 10px; border-radius:999px; font-weight:800; font-size:13px; }
.js-size-prices { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.js-size-prices span { background:#f5f5f5; border:1px solid #e7e7e7; padding:6px 9px; border-radius:7px; font-size:13px; font-weight:700; }
.js-text-link { display:inline-block; margin-top:5px; font-weight:800; }
.js-vehicle-letter { display:inline-grid; place-items:center; min-width:46px; height:46px; padding:0 10px; border-radius:50%; background:var(--js-red); color:#fff; font-size:16px; font-weight:900; margin-bottom:8px; }
.js-cta-panel { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:36px; background:var(--js-black); color:#fff; border-radius:18px; }
.js-cta-panel h2 { margin:6px 0 8px; font-size:clamp(26px,4vw,40px); }
.js-cta-panel p { color:#cfcfcf; margin:0; max-width:760px; }
.js-landing-hero { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr); gap:46px; align-items:center; }
.js-hero-feature-box,.js-info-card { border:1px solid var(--js-border); border-top:4px solid var(--js-red); border-radius:16px; padding:28px; background:#fff; box-shadow:0 16px 36px rgba(0,0,0,.07); }
.js-hero-feature-box strong,.js-info-card strong { display:block; font-size:38px; color:var(--js-black); margin:6px 0 10px; }
.js-mini-label { color:var(--js-red); text-transform:uppercase; letter-spacing:1.5px; font-size:12px; font-weight:900; }
.js-copy-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:52px; align-items:center; }
.js-check-list { display:grid; gap:10px; }
.js-check-list div { border:1px solid var(--js-border); padding:14px 16px; border-radius:10px; font-weight:700; background:#fff; }
.js-dark-card { background:#181818; border:1px solid #303030; border-radius:14px; padding:24px; }
.js-dark-card > span { color:var(--js-red); font-size:34px; font-weight:900; opacity:.85; }
.js-dark-card h3 { margin:8px 0; color:#fff; }
.js-dark-card p { margin:0; color:#c7c7c7; }
.js-price-card { border:1px solid var(--js-border); border-top:3px solid var(--js-red); border-radius:14px; padding:25px; text-align:center; background:#fff; }
.js-price-card h3 { margin:4px 0; }
.js-price-card p { min-height:48px; color:var(--js-muted); }
.js-price-card strong { display:block; font-size:34px; margin:12px 0; }
.js-price-card a { font-weight:800; }
.js-faq-list { display:grid; gap:12px; margin-top:26px; }
.js-faq-list details { background:#fff; border:1px solid var(--js-border); border-radius:12px; padding:18px 20px; }
.js-faq-list summary { cursor:pointer; font-weight:800; }
.js-faq-list p { color:var(--js-muted); margin-bottom:0; }
.js-booking-intro-white { text-align:center; max-width:980px; margin:auto; }
.js-booking-intro-white > p { max-width:750px; margin:0 auto 28px; color:var(--js-muted); }
@media (max-width: 900px) {
  .js-services-grid,.js-landing-hero,.js-copy-grid { grid-template-columns:1fr; }
  .js-cta-panel { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 640px) {
  .js-service-card__top { flex-direction:column; }
  .js-page-hero--services,.js-page-hero--ceramic { padding:64px 0 48px; }
}

.js-btn--whatsapp{background:#25D366!important;color:#fff!important;border-color:#25D366!important}
.js-btn--whatsapp:hover{background:#1ebe5d!important;border-color:#1ebe5d!important;color:#fff!important;transform:translateY(-1px)}
.js-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}
.js-contact-card{background:#fff;border:1px solid #e7e7e7;border-radius:14px;padding:26px}
.js-contact-list{display:grid;gap:13px;margin:20px 0}.js-contact-list a{font-weight:800}
@media(max-width:760px){.js-contact-grid{grid-template-columns:1fr}}
