:root{--blue:#0f5aa6;--blue2:#0b477f;--ink:#162033;--muted:#5f6b7a;--bg:#f6f8fb;--card:#fff;--accent:#11a3a3;--line:#dfe5ec;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.6}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.container{width:min(var(--max),92%);margin:auto}.topbar{background:#0b1b2e;color:#fff;font-size:.93rem}.topbar .container{display:flex;justify-content:space-between;gap:16px;padding:8px 0;flex-wrap:wrap}.site-header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 3px 16px rgba(22,32,51,.05)}.nav{display:flex;align-items:center;justify-content:space-between;min-height:74px;gap:24px}.brand{font-weight:800;font-size:1.35rem;color:var(--ink)}.brand span{color:var(--blue)}.nav-links{display:flex;align-items:center;gap:22px}.nav-links a{color:var(--ink);font-weight:600}.btn{display:inline-block;background:var(--blue);color:#fff!important;padding:12px 18px;border-radius:8px;font-weight:700;text-decoration:none!important;border:0;cursor:pointer}.btn:hover{background:var(--blue2)}.btn.secondary{background:#fff;color:var(--blue)!important;border:1px solid var(--blue)}.menu-btn{display:none;background:none;border:0;font-size:1.6rem}.hero{background:linear-gradient(135deg,#f5f9ff,#eaf3fb);padding:82px 0}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center}.eyebrow{font-weight:800;color:var(--blue);text-transform:uppercase;letter-spacing:.06em;font-size:.86rem}.hero h1{font-size:clamp(2.35rem,5vw,4.5rem);line-height:1.05;margin:.35em 0 .25em}.hero p{font-size:1.18rem;color:var(--muted);max-width:720px}.hero-card{background:#fff;padding:30px;border-radius:18px;box-shadow:0 18px 50px rgba(15,90,166,.13);border:1px solid #e8eef5}.hero-card h3{margin-top:0}.ticks{list-style:none;padding:0;margin:18px 0}.ticks li{margin:10px 0;padding-left:28px;position:relative}.ticks li:before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:900}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.section{padding:72px 0}.section.alt{background:var(--bg)}.section h2{font-size:clamp(1.8rem,3vw,2.7rem);margin:.1em 0 .35em}.lead{color:var(--muted);font-size:1.08rem;max-width:800px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:30px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:0 8px 24px rgba(22,32,51,.045)}.card h3{margin-top:0}.service-icon{font-size:1.75rem}.band{background:var(--blue);color:#fff;padding:38px 0}.band .container{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.band h2{margin:0;color:#fff}.band p{margin:4px 0 0;color:#e8f2ff}.band .btn{background:#fff;color:var(--blue)!important}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}.stat{padding:22px;background:#fff;border:1px solid var(--line);border-radius:12px;text-align:center}.stat strong{display:block;font-size:1.7rem;color:var(--blue)}.page-hero{padding:58px 0;background:var(--bg)}.page-hero h1{font-size:clamp(2.2rem,4vw,3.6rem);margin:.15em 0}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-weight:700}.field input,.field textarea,.field select{padding:12px 13px;border:1px solid #cbd5df;border-radius:8px;font:inherit}.field textarea{min-height:150px;resize:vertical}.notice{background:#fff7dd;border:1px solid #f2d77d;padding:16px;border-radius:10px}.footer{background:#0b1b2e;color:#dce5ef;padding:48px 0 24px}.footer a{color:#fff}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.small{font-size:.92rem;color:#7a8794}.footer .small{color:#9fb0c2}.breadcrumbs{font-size:.92rem;color:var(--muted)}.pill{display:inline-block;padding:6px 10px;border-radius:999px;background:#e9f3ff;color:var(--blue);font-weight:700;font-size:.85rem}.faq details{border-bottom:1px solid var(--line);padding:16px 0}.faq summary{font-weight:700;cursor:pointer}.blog-card .meta{font-size:.88rem;color:var(--muted)}@media(max-width:850px){.hero-grid,.grid-3,.grid-2,.contact-grid,.footer-grid,.stats{grid-template-columns:1fr}.nav-links{display:none;position:absolute;left:0;right:0;top:74px;background:#fff;padding:18px 4%;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.menu-btn{display:block}.hero{padding:58px 0}.form-row{grid-template-columns:1fr}.topbar .container{justify-content:center;text-align:center}}

/* Accessibility and service-section navigation improvements */
:focus-visible{outline:3px solid #f0b429;outline-offset:3px}
[id]{scroll-margin-top:100px}
.service-detail ul{padding-left:1.2rem}


/* Google reviews highlight */
.google-reviews-section{padding:38px 0;background:#fff;border-bottom:1px solid var(--line)}
.google-reviews{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:center}
.google-reviews-rating{text-align:center;padding:22px;background:var(--bg);border:1px solid var(--line);border-radius:14px}
.google-stars{color:#f4b400;font-size:2rem;letter-spacing:.12em;line-height:1.2}
.google-rating{margin:10px 0 0;color:var(--ink)}
.google-reviews-copy h2{margin:0 0 6px;font-size:1.65rem}
.google-reviews-copy p{margin:0 0 16px;color:var(--muted)}
@media(max-width:850px){.google-reviews{grid-template-columns:1fr;gap:18px}.google-reviews-rating{text-align:center}}


/* Contact form confirmation dialog */
.form-dialog {
  border: 0;
  border-radius: 16px;
  padding: 0;
  width: min(92vw, 440px);
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
}
.form-dialog::backdrop {
  background: rgba(15, 23, 42, .62);
}
.form-dialog-content {
  padding: 30px;
  text-align: center;
}
.form-dialog-content h2 {
  margin-top: 0;
}
.form-dialog-content p {
  margin: 14px 0 24px;
}
.form-dialog[open] {
  animation: dialog-pop .18s ease-out;
}
@keyframes dialog-pop {
  from { opacity: 0; transform: translateY(8px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Keep the clickable email address white in the top header */
.topbar a,
.topbar a:visited,
.topbar a:hover,
.topbar a:active,
.topbar a:focus {
  color: #fff !important;
}


.google-review-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.google-review-actions .btn-secondary{background:transparent;color:inherit;border:1px solid currentColor}


/* Homepage Autism Accepting certification */
.autism-certification {
  padding: 30px 0;
  background: #fff;
  border-top: 1px solid var(--line);
}
.autism-certification-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
  text-align: center;
}
.autism-certification-inner img {
  display: block;
  width: 88px;
  height: 96px;
  object-fit: contain;
}
.autism-certification-inner p {
  margin: 0;
  font-size: 1rem;
}
.autism-certification-inner a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 520px) {
  .autism-certification-inner { flex-direction: column; gap: 10px; }
}

/* Floating WhatsApp contact button */
.whatsapp-float {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 54px;
  padding: 0 20px;
  border-radius: 999px;
  background: #25D366;
  color: #fff;
  font-weight: 700;
  font-size: 0.96rem;
  text-decoration: none;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .22);
  transition: transform .18s ease, box-shadow .18s ease;
}
.whatsapp-float:hover,
.whatsapp-float:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .26);
}
.whatsapp-float svg { flex: 0 0 auto; }
@media (max-width: 520px) {
  .whatsapp-float {
    right: 14px;
    bottom: 14px;
    min-height: 52px;
    padding: 0 17px;
  }
}

/* Header contact numbers */
.topbar-contact {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 4px 8px;
}
.topbar-contact a { white-space: nowrap; }
@media (max-width: 760px) {
  .topbar-contact { justify-content: center; }
}

/* Balanced two-column top contact strip */
.topbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px 32px;
  padding: 10px 0;
  flex-wrap: nowrap;
}
.topbar-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  min-width: 0;
  line-height: 1.35;
}
.topbar-left strong {
  color: #fff;
  font-weight: 700;
  font-size: .94rem;
}
.topbar-left span {
  color: #fff;
  font-size: .82rem;
}
.topbar-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 3px;
  flex: 0 0 auto;
  font-size: .82rem;
  line-height: 1.35;
}
.topbar-contact a {
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
}
.topbar-contact a:hover {
  color: #fff;
  text-decoration: underline;
}
@media (max-width: 760px) {
  .topbar .container {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 9px;
  }
  .topbar-left { align-items: center; }
  .topbar-contact { align-items: center; }
  .topbar-left span { max-width: 100%; }
}

/* Cookie choices: self-hosted and responsive */
.sv-cookie-banner[hidden],.sv-cookie-reopen[hidden],#sv-cookie-settings[hidden]{display:none!important}
.sv-cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:99999;background:#fff;color:#17344e;box-shadow:0 -4px 24px #0003;border-top:3px solid #1762a1;max-height:85vh;overflow-y:auto}
.sv-cookie-inner{max-width:1100px;margin:auto;padding:16px 22px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.sv-cookie-logo{width:140px;height:auto;object-fit:contain;flex-shrink:0}
.sv-cookie-inner>div:nth-child(2){flex:1 1 300px}.sv-cookie-inner p{font-size:14px;margin:6px 0}
.sv-cookie-controls{display:flex;gap:8px;flex-wrap:wrap}
.sv-cookie-controls button,#sv-cookie-settings button{background:#175da0;color:#fff;border:0;border-radius:5px;padding:11px 14px;cursor:pointer}
.sv-cookie-controls button:nth-child(2),.sv-cookie-controls button:nth-child(3){background:#fff;color:#175da0;border:1px solid #175da0}
#sv-cookie-settings{width:100%;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.sv-cookie-inner>a{font-size:13px}
.sv-cookie-reopen{position:fixed;bottom:8px;left:8px;z-index:99998;padding:7px 10px;background:#fff;color:#175da0;border:1px solid #175da0;border-radius:5px;cursor:pointer;font-size:12px}
@media(max-width:700px){.sv-cookie-inner{padding:12px;gap:10px}.sv-cookie-logo{width:115px}.sv-cookie-controls{width:100%}.sv-cookie-controls button{flex:1 1 100px}.sv-cookie-banner{max-height:75vh}}

/* Keep WhatsApp button anchored to the mobile viewport */
@media (max-width: 760px) {
  .whatsapp-float {
    position: fixed;
    left: auto;
    right: 14px;
    transform: none;
  }
}

/* Mobile header layout */
@media (max-width: 760px) {
  .site-header .nav {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 0;
  }
  .site-header .brand {
    min-width: 0;
  }
  .site-header .brand img {
    max-width: 100%;
    height: auto;
  }
  .site-header .social-icons {
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
  }
}
