/* ── layout helpers ── */
.container { max-width:1280px; margin:0 auto; padding:0 1.5rem; }
.section-block { padding:80px 0; }
@media(max-width:768px){ .section-block{ padding:56px 0; } }

/* ── colours ── */
.bg-primary    { background:var(--primary); }
.bg-surface    { background:var(--surface); }
.bg-alt        { background:var(--surface-alt); }
.bg-tint       { background:var(--surface-tint); }
.bg-dark       { background:var(--surface-dark); }
.text-on-primary { color:var(--on-primary); }
.text-on-dark    { color:var(--on-dark); }
.text-heading    { color:var(--heading); }
.text-muted      { color:var(--text-muted); }

/* ── sticky header ── */
.site-header {
  position:sticky; top:0; z-index:100;
  background:var(--surface);
  box-shadow:0 2px 18px rgba(7,24,113,.08);
}
.header-inner {
  max-width:1280px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:.75rem; padding:.8rem 1.5rem;
}
.logo-wrap { display:flex; align-items:center; gap:.6rem; text-decoration:none; }
.logo-icon { width:42px; height:42px; border-radius:50%; background:#fff; padding:5px; box-shadow:0 4px 12px rgba(7,24,113,.15); }
.logo-name { font-family:var(--font-heading); font-size:clamp(22px,2vw,26px); font-weight:700; color:var(--heading); }
.nav-links { display:flex; align-items:center; gap:1.5rem; font-size:18px; font-family:var(--font-heading); }
.nav-links a { color:var(--on-surface); font-weight:500; }
.nav-links a:hover { color:var(--primary-mid); }
/* burger */
.burger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; border:none; background:none; }
.burger span { display:block; width:24px; height:2px; background:var(--heading); border-radius:2px; transition:all .3s; }
.mobile-menu { display:none; flex-direction:column; gap:.5rem; padding:.75rem 1.5rem 1rem; background:var(--surface); border-top:1px solid #e5e7eb; }
.mobile-menu a { font-family:var(--font-heading); font-size:18px; color:var(--on-surface); padding:.4rem 0; }
.mobile-menu.open { display:flex; }
@media(max-width:768px){ .nav-links{display:none;} .burger{display:flex;} }

/* phone button in header */
.phone-btn {
  display:inline-flex; align-items:center; gap:.45rem;
  background:var(--primary); color:#fff;
  padding:.5rem 1.1rem; border-radius:999px;
  font-family:var(--font-heading); font-weight:600; font-size:17px;
  transition:background .2s,transform .2s;
  white-space:nowrap;
}
.phone-btn svg { width:17px; height:17px; flex-shrink:0; }
.phone-btn:hover { background:var(--primary-dark); color:#fff; transform:translateY(-1px); }

/* ── buttons ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-width:180px; height:48px; border-radius:var(--radius);
  font-family:var(--font-heading); font-weight:600; font-size:16px; padding:0 1.4rem;
  border:none; cursor:pointer; text-decoration:none;
  transition:transform .2s,box-shadow .2s,filter .2s;
}
.btn-accent  { background:var(--accent); color:#fff; box-shadow:0 10px 24px rgba(255,107,53,.28); }
.btn-outline { background:transparent; color:var(--on-surface); border:1.5px solid rgba(7,24,113,.2); }
.btn-ghost   { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.65); }
.btn-white   { background:#fff; color:var(--primary); }
.btn:hover   { transform:translateY(-2px); box-shadow:0 14px 28px rgba(7,24,113,.18); filter:brightness(.94); }
@media(max-width:768px){ .btn{ width:100%; } }

/* ── hero ── */
.hero-section { background:var(--primary); padding:80px 0; }
.hero-grid {
  display:grid; grid-template-columns:55% 45%; gap:2.5rem; align-items:center;
}
.hero-card {
  background:#fff; border-radius:18px; padding:2.5rem;
  box-shadow:0 24px 56px rgba(7,24,113,.2);
}
.hero-card h1 { color:var(--heading); margin-bottom:1rem; }
.hero-stars { color:var(--accent); font-size:1.3rem; letter-spacing:3px; }
.hero-review-count { color:var(--text-muted); font-size:.875rem; margin-left:.5rem; }
.hero-trust-icons {
  display:flex; flex-wrap:wrap; align-items:center; gap:.85rem;
  font-size:.8rem; color:var(--text-muted); margin:.75rem 0 1rem;
}
.trust-icon-chip {
  display:inline-flex; align-items:center;
  background:transparent;
  padding:.25rem;
}
.trust-icon-chip img { object-fit:contain; display:block; }
.hero-tag { font-size:1rem; font-weight:600; color:var(--text); margin-bottom:1.5rem; }
.hero-img {
  width:100%; border-radius:16px;
  box-shadow:0 20px 48px rgba(7,24,113,.2);
  object-fit:cover; aspect-ratio:4/3;
}
@media(max-width:1024px){ .hero-grid{ grid-template-columns:1fr; } }
@media(max-width:768px){ .hero-card{ padding:1.5rem; } .hero-img{ max-height:55vw; } }

/* ── intro below hero ── */
.intro-section { background:var(--surface-alt); padding:56px 0; }
.intro-section p { max-width:860px; margin:0 auto; font-size:clamp(16px,1.2vw,18px); text-align:center; color:var(--text); }

/* ── section images (banner style) ── */
.banner-img { width:100%; max-height:30vh; object-fit:cover; border-radius:var(--radius); box-shadow:0 14px 32px rgba(7,24,113,.1); }

/* ── cards ── */
.service-card { background:#fff; border-radius:var(--radius); padding:1.5rem; box-shadow:0 8px 22px rgba(7,24,113,.07); }
.service-card h3 { color:var(--heading); margin-bottom:.6rem; }
.service-card p { font-size:16px; color:var(--text); }

/* ── reviews carousel ── */
.reviews-section { background:var(--surface-tint); }
.google-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  background:#fff; border-radius:999px; padding:.35rem .9rem;
  box-shadow:0 8px 18px rgba(7,24,113,.08);
  font-family:var(--font-heading); font-size:.875rem; color:var(--text-muted);
}
.google-badge svg { width:18px; height:18px; }
.reviews-carousel { overflow:hidden; }
.carousel-track { display:flex; transition:transform .55s ease; }
.carousel-item { min-width:100%; padding:0 .5rem; box-sizing:border-box; }
.carousel-card { background:#fff; border-radius:14px; padding:1.5rem; box-shadow:0 10px 24px rgba(7,24,113,.07); height:100%; }
.review-stars { color:var(--accent); font-size:1rem; letter-spacing:2px; margin-bottom:.6rem; }
@media(min-width:768px)  { .carousel-item{ min-width:50%; } }
@media(min-width:1024px) { .carousel-item{ min-width:33.3333%; } }

/* ── trust table ── */
.trust-section { background:var(--surface-tint); }
.trust-table { width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 8px 22px rgba(7,24,113,.07); }
.trust-table td { padding:1rem 1.25rem; border-bottom:1px solid #e5e7eb; font-size:16px; }
.trust-table td:first-child { font-weight:600; color:var(--heading); width:44%; }
.trust-table tr:last-child td { border-bottom:none; }

/* ── FAQ ── */
.faq-item { border-bottom:1px solid #e5e7eb; }
.faq-q {
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:1.2rem 0; display:flex; justify-content:space-between; align-items:center;
  font-family:var(--font-heading); font-size:clamp(18px,1.4vw,21px); font-weight:600; color:var(--heading);
}
.faq-q svg { width:20px; height:20px; flex-shrink:0; transition:transform .3s; color:var(--primary-mid); }
.faq-q.open svg { transform:rotate(45deg); }
.faq-a { display:none; padding-bottom:1.2rem; font-size:16px; color:var(--text); line-height:1.7; }
.faq-a.open { display:block; }

/* ── CTA band ── */
.cta-section { background:var(--primary); }
.cta-band { border-radius:18px; background:var(--primary-mid); padding:2.5rem; box-shadow:0 20px 40px rgba(7,24,113,.3); }
.cta-band h2, .cta-band p { color:#fff; }

@keyframes cta-pulse {
  0%   { box-shadow:0 0 0 0 rgba(255,255,255,.55), 0 8px 22px rgba(7,24,113,.25); }
  60%  { box-shadow:0 0 0 12px rgba(255,255,255,0), 0 8px 22px rgba(7,24,113,.25); }
  100% { box-shadow:0 0 0 0 rgba(255,255,255,0),   0 8px 22px rgba(7,24,113,.25); }
}

.btn-cta-white {
  background:#fff;
  color:var(--primary);
  font-weight:700;
  border:none;
  animation:cta-pulse 2s ease-out infinite;
}
.btn-cta-white:hover {
  background:#f0f4ff;
  transform:translateY(-2px);
  filter:none;
  animation-play-state:paused;
}

.cta-band .btn,
.cta-band a.btn {
  background:#fff !important;
  color:var(--primary) !important;
  border:none !important;
  font-weight:700;
  animation:cta-pulse 2s ease-out infinite;
}
.cta-band .btn:hover,
.cta-band a.btn:hover {
  background:#f0f4ff !important;
  transform:translateY(-2px);
  filter:none;
  animation-play-state:paused;
}

/* ── contact section ── */
.contact-section { background:var(--surface); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:start; }
@media(max-width:768px){ .contact-grid{ grid-template-columns:1fr; } }

/* ── footer ── */
.site-footer { background:var(--accent); color:#111; }
.footer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; padding:56px 0 32px; }
@media(max-width:768px){ .footer-grid{ grid-template-columns:1fr; gap:2rem; } }
.footer-logo-name { font-family:var(--font-heading); font-size:18px; font-weight:700; color:#111; }
.site-footer h4 { color:#111; font-size:13px; text-transform:uppercase; letter-spacing:.07em; margin-bottom:.85rem; font-family:var(--font-heading); }
.site-footer p, .site-footer a, .site-footer li { font-size:13px; color:#111; }
.site-footer a:hover { color:#000; text-decoration:underline; }
.site-footer ul { list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.footer-disclaimer { font-size:11px; color:rgba(0,0,0,.6); line-height:1.7; margin-top:1.25rem; }
.footer-bottom { border-top:1px solid rgba(0,0,0,.2); padding:1.25rem 0; font-size:12px; color:rgba(0,0,0,.6); text-align:center; }

/* ── mobile sticky bar ── */
.mobile-sticky-bar {
  display:none; position:fixed; bottom:0; left:0; right:0; z-index:200;
  background:var(--primary); color:#fff;
  padding:.85rem 1.25rem; align-items:center; justify-content:center; gap:.65rem;
  font-family:var(--font-heading); font-weight:600; font-size:1rem;
  box-shadow:0 -4px 20px rgba(7,24,113,.35);
  text-decoration:none;
}
.mobile-sticky-bar svg { width:20px; height:20px; }
@media(max-width:768px){ .mobile-sticky-bar{ display:flex; } body{ padding-bottom:64px; } }

/* ── mobile header centering ── */
@media(max-width:768px){
  .sticky-header > div {
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:.75rem;
  }
  .sticky-header > div > div:last-child {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:.75rem;
    width:100%;
  }
}

/* ── hero Schedule Service button — accent + pulse ── */
@keyframes accent-pulse {
  0%   { box-shadow:0 0 0 0 rgba(255,107,53,.6), 0 10px 24px rgba(255,107,53,.3); }
  65%  { box-shadow:0 0 0 14px rgba(255,107,53,0), 0 10px 24px rgba(255,107,53,.3); }
  100% { box-shadow:0 0 0 0 rgba(255,107,53,0),   0 10px 24px rgba(255,107,53,.3); }
}
.btn-hero-accent {
  background:var(--accent) !important;
  color:#fff !important;
  font-weight:700;
  border:none !important;
  animation:accent-pulse 2s ease-out infinite;
}
.btn-hero-accent:hover {
  filter:brightness(.93);
  transform:translateY(-2px);
  animation-play-state:paused;
}

/* ── compatibility aliases (used by this page's HTML) ── */
.bg-surface-alt  { background:var(--surface-alt); }
.text-text       { color:var(--text); }
.text-muted      { color:var(--text-muted); }
.font-heading    { font-family:var(--font-heading); }
.section-title   { font-family:var(--font-heading); font-size:clamp(26px,3vw,36px); font-weight:700; color:var(--heading); line-height:1.2; }
.sticky-header   { position:sticky; top:0; z-index:100; background:var(--surface); box-shadow:0 2px 18px rgba(7,24,113,.08); }
.brand-name      { font-family:var(--font-heading); font-size:clamp(22px,2vw,26px); font-weight:700; color:var(--heading); }
.logo-mark       { width:42px; height:42px; border-radius:50%; background:#fff; padding:5px; box-shadow:0 4px 12px rgba(7,24,113,.15); }
.phone-icon-btn  { display:none; }
.section-image   { width:100%; border-radius:14px; display:block; box-shadow:0 16px 36px rgba(7,24,113,.14); object-fit:cover; }
.banner-image    { width:100%; max-height:30vh; object-fit:cover; border-radius:14px; display:block; box-shadow:0 14px 32px rgba(7,24,113,.1); }
.reviews-logo    { display:inline-flex; align-items:center; gap:.5rem; background:#fff; border-radius:999px; padding:.35rem .9rem; box-shadow:0 8px 18px rgba(7,24,113,.08); font-family:var(--font-heading); font-size:.875rem; color:var(--text-muted); }
.reviews-logo svg{ width:18px; height:18px; }
.hero-trust      { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; }
