:root{
  --primary:#2BB3B1;      /* medical teal */
  --primary2:#2F80ED;     /* calm blue */
  --dark:#0f2a3d;
  --muted:#5e7282;
  --soft:#eef7ff;         /* guardian light shade */
  --card:#ffffff;
}

html{scroll-behavior:smooth}
body{font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--dark);background:linear-gradient(180deg,#ffffff 0%, var(--soft) 100%)}
a{color:var(--primary2);text-decoration:none}
a:hover{color:#1d5ed0}

.bg-primary{background:linear-gradient(90deg,var(--primary) 0%, var(--primary2) 100%)!important}
.text-primary{color:var(--primary)!important}
.btn-primary{
  background:linear-gradient(90deg,var(--primary) 0%, var(--primary2) 100%);
  border:0;
  box-shadow:0 10px 22px rgba(47,128,237,.18);
}
.btn-primary:hover{filter:saturate(1.1);transform:translateY(-1px)}
.btn{transition:.2s}

.navbar{box-shadow:0 8px 28px rgba(15,42,61,.06)}
.navbar-brand img{height:52px}

.header{background:linear-gradient(90deg,var(--primary) 0%, var(--primary2) 100%)}
.header .display-4{letter-spacing:-.3px}
.header:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(900px 320px at 70% 20%, rgba(255,255,255,.18), transparent 60%);
}

#spinner{opacity:0;visibility:hidden;transition:.2s}
#spinner.show{opacity:1;visibility:visible}

.service-item, .team-item .team-text, .testimonial-text, .bg-light.rounded{
  background:rgba(255,255,255,.85)!important;
  border:1px solid rgba(15,42,61,.06);
  box-shadow:0 14px 30px rgba(15,42,61,.06);
  backdrop-filter:blur(6px);
}
.service-item{transition:.2s}
.service-item:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(15,42,61,.10)}

.team-item img{transition:.35s}
.team-item:hover img{transform:scale(1.05)}

.footer{background:#071a28}
.footer a.btn-link{color:#cfe6ff;text-decoration:none;display:block;padding:.15rem 0}
.footer a.btn-link:hover{color:#fff}

.back-to-top{position:fixed;display:none;right:18px;bottom:18px;z-index:99}

/* Counter look */
.counter{font-variant-numeric:tabular-nums}

/* Page Hero */
.page-hero{
  position:relative;
  padding:70px 0 40px;
  background:linear-gradient(110deg, rgba(43,179,177,.18) 0%, rgba(47,128,237,.16) 45%, rgba(238,247,255,1) 100%);
  overflow:hidden;
}
.page-hero .badge{
  background:rgba(43,179,177,.12);
  color:var(--dark);
  border:1px solid rgba(43,179,177,.25);
}
.hero-orb{
  position:absolute;border-radius:999px;filter:blur(1px);opacity:.75;
  background:radial-gradient(circle at 30% 30%, rgba(47,128,237,.35), rgba(43,179,177,.25), transparent 60%);
}
.hero-orb.one{width:280px;height:280px;top:-120px;right:-80px}
.hero-orb.two{width:220px;height:220px;bottom:-110px;left:-70px}

.glass-card{
  background:rgba(255,255,255,.85);
  border:1px solid rgba(15,42,61,.08);
  box-shadow:0 14px 30px rgba(15,42,61,.06);
  border-radius:18px;
}

.icon-pill{
  width:48px;height:48px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, rgba(43,179,177,.18), rgba(47,128,237,.16));
  border:1px solid rgba(47,128,237,.18);
  color:var(--dark);
}

.kpi{
  border:1px dashed rgba(15,42,61,.18);
  border-radius:16px;
  background:rgba(255,255,255,.75);
}

.timeline{
  position:relative;
  padding-left:26px;
}
.timeline:before{
  content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(var(--primary), var(--primary2));
  opacity:.5;
}
.t-item{position:relative;margin:18px 0}
.t-item:before{
  content:"";position:absolute;left:-26px;top:4px;width:16px;height:16px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--primary2));
  box-shadow:0 10px 18px rgba(47,128,237,.25);
}

.filter-btns .btn{
  border:1px solid rgba(15,42,61,.12);
  background:rgba(255,255,255,.75);
}
.filter-btns .btn.active{
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  color:#fff;border-color:transparent;
}

.map-embed{
  border:1px solid rgba(15,42,61,.10);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 30px rgba(15,42,61,.06);
}

/* --- Contact: Audit Form Charm --- */
.pulse-dot{
  width:10px;height:10px;border-radius:50%;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  box-shadow:0 0 0 rgba(43,179,177,.55);
  animation:pulseDot 1.4s ease-in-out infinite;
  display:inline-block;vertical-align:middle;
}
@keyframes pulseDot{
  0%{transform:scale(.9); box-shadow:0 0 0 0 rgba(43,179,177,.40)}
  60%{transform:scale(1.1); box-shadow:0 0 0 10px rgba(43,179,177,0)}
  100%{transform:scale(.9); box-shadow:0 0 0 0 rgba(43,179,177,0)}
}

.audit-card{
  position:relative;
  border-radius:20px;
  overflow:hidden;
}
.audit-card:before{
  content:"";
  position:absolute; inset:-2px;
  background:conic-gradient(from 180deg, rgba(43,179,177,.55), rgba(47,128,237,.55), rgba(43,179,177,.55));
  animation:borderSpin 4.8s linear infinite;
  opacity:.55;
}
@keyframes borderSpin{ to{ transform:rotate(360deg);} }
.audit-card:after{
  content:"";
  position:absolute; inset:1px;
  background:rgba(255,255,255,.88);
  border-radius:19px;
  backdrop-filter: blur(8px);
}
.audit-card > *{ position:relative; z-index:1; }

.audit-title{
  letter-spacing:-.3px;
}
.audit-sub{
  color:var(--muted);
}

.form-control.audit, .form-select.audit{
  background:rgba(238,247,255,.75);
  border:1px solid rgba(15,42,61,.12);
  border-radius:14px;
  padding:.9rem .95rem;
}
.form-control.audit:focus, .form-select.audit:focus{
  border-color:rgba(47,128,237,.55);
  box-shadow:0 0 0 .22rem rgba(47,128,237,.12);
  background:#fff;
}

.btn-shimmer{
  position:relative;
  overflow:hidden;
}
.btn-shimmer:after{
  content:"";
  position:absolute; top:-50%; left:-30%;
  width:40%; height:200%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform:rotate(22deg);
  animation:shimmer 2.6s ease-in-out infinite;
}
@keyframes shimmer{
  0%{ left:-40%; opacity:0}
  20%{ opacity:1}
  60%{ left:120%; opacity:0}
  100%{ left:120%; opacity:0}
}

.blink-badge{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .75rem;
  border-radius:999px;
  border:1px solid rgba(47,128,237,.18);
  background:rgba(47,128,237,.08);
}

/* --- Guardian Glow Form --- */
.guardian-glow{
  position:relative;
  border-radius:22px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(15,42,61,.10);
  box-shadow:
    0 18px 46px rgba(15,42,61,.10),
    0 0 0 1px rgba(47,128,237,.06) inset;
  overflow:hidden;
}
.guardian-glow:before{
  content:"";
  position:absolute; inset:-40px;
  background:
    radial-gradient(closest-side at 25% 25%, rgba(43,179,177,.25), transparent 55%),
    radial-gradient(closest-side at 70% 35%, rgba(47,128,237,.22), transparent 60%),
    radial-gradient(closest-side at 50% 85%, rgba(43,179,177,.12), transparent 55%);
  filter:blur(2px);
  opacity:.9;
  animation:guardianPulse 3.2s ease-in-out infinite;
  pointer-events:none;
}
@keyframes guardianPulse{
  0%,100%{transform:scale(1); opacity:.65}
  50%{transform:scale(1.04); opacity:.95}
}

.form-control.guard, .form-select.guard{
  background:rgba(238,247,255,.70);
  border:1px solid rgba(15,42,61,.12);
  border-radius:14px;
  padding:.9rem .95rem;
}
.form-control.guard:focus, .form-select.guard:focus{
  border-color:rgba(47,128,237,.55);
  box-shadow:0 0 0 .22rem rgba(47,128,237,.12);
  background:#fff;
}

.audit-badge{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.35rem .8rem;
  border-radius:999px;
  border:1px solid rgba(47,128,237,.18);
  background:rgba(47,128,237,.08);
}
.audit-dot{
  width:10px;height:10px;border-radius:50%;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  box-shadow:0 0 0 rgba(43,179,177,.55);
  animation:auditDot 1.35s ease-in-out infinite;
}
@keyframes auditDot{
  0%{transform:scale(.92); box-shadow:0 0 0 0 rgba(43,179,177,.32)}
  60%{transform:scale(1.08); box-shadow:0 0 0 10px rgba(43,179,177,0)}
  100%{transform:scale(.92); box-shadow:0 0 0 0 rgba(43,179,177,0)}
}

/* --- Home Audit Glow (Appointment block) --- */
.home-audit-wrap .guardian-glow{padding:2.25rem}
.home-audit-wrap .form-control.guard{
  background:rgba(238,247,255,.72);
  border:1px solid rgba(15,42,61,.12);
  border-radius:14px;
  padding:.9rem .95rem;
}
.home-audit-wrap .form-control.guard:focus{
  border-color:rgba(47,128,237,.60);
  box-shadow:0 0 0 .22rem rgba(47,128,237,.12);
  background:#fff;
}
.home-audit-wrap .btn.btn-primary{
  border-radius:14px;
}
.home-audit-wrap .btn-shimmer{position:relative; overflow:hidden}
.home-audit-wrap .btn-shimmer:after{
  content:"";
  position:absolute; top:-50%; left:-30%;
  width:40%; height:200%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform:rotate(22deg);
  animation:shimmerHome 2.8s ease-in-out infinite;
}
@keyframes shimmerHome{
  0%{ left:-40%; opacity:0}
  20%{ opacity:1}
  60%{ left:120%; opacity:0}
  100%{ left:120%; opacity:0}
}

/* HOME_AUDIT_GLOW */
#homeAuditForm{position:relative}
#homeAuditForm .form-control,
#homeAuditForm .form-select{
  background:rgba(238,247,255,.72);
  border:1px solid rgba(15,42,61,.12);
  border-radius:14px;
  padding:.9rem .95rem;
}
#homeAuditForm .form-control:focus,
#homeAuditForm .form-select:focus{
  border-color:rgba(47,128,237,.60);
  box-shadow:0 0 0 .22rem rgba(47,128,237,.12);
  background:#fff;
}

.home-audit-card.guardian-glow{
  padding:2.25rem !important;
  border-radius:22px;
}

.home-audit-card .btn.btn-primary{border-radius:14px}
.home-audit-card .btn-shimmer{position:relative;overflow:hidden}
.home-audit-card .btn-shimmer:after{
  content:"";
  position:absolute; top:-50%; left:-30%;
  width:40%; height:200%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform:rotate(22deg);
  animation:shimmerHome 2.8s ease-in-out infinite;
}
@keyframes shimmerHome{
  0%{ left:-40%; opacity:0}
  20%{ opacity:1}
  60%{ left:120%; opacity:0}
  100%{ left:120%; opacity:0}
}

/* HOME_AUDIT_CHARM_V2 */
.home-audit-shell{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  width:100%;
}
.home-audit-shell:before{
  content:"";
  position:absolute; inset:-3px;
  background:conic-gradient(from 180deg,
    rgba(43,179,177,.55),
    rgba(47,128,237,.55),
    rgba(43,179,177,.55)
  );
  animation:homeAuditSpin 6s linear infinite;
  opacity:.55;
  z-index:0;
  pointer-events:none;
}
.home-audit-shell:after{
  content:"";
  position:absolute; inset:2px;
  background:rgba(255,255,255,.78);
  border-radius:20px;
  backdrop-filter: blur(10px);
  border:1px solid rgba(15,42,61,.10);
  z-index:0;
  pointer-events:none;
}
@keyframes homeAuditSpin{to{transform:rotate(360deg)}}
.home-audit-shell > *{position:relative; z-index:1}

#homeAuditForm .form-control,
#homeAuditForm .form-select{
  background:rgba(238,247,255,.62) !important;
  border:1px solid rgba(15,42,61,.12) !important;
  border-radius:14px !important;
  padding:.9rem .95rem !important;
}
#homeAuditForm .form-control:focus,
#homeAuditForm .form-select:focus{
  background:#fff !important;
  border-color:rgba(47,128,237,.60) !important;
  box-shadow:0 0 0 .22rem rgba(47,128,237,.12) !important;
}
#homeAuditForm textarea.form-control{min-height:140px}

#homeAuditForm .btn.btn-primary{
  border-radius:14px;
  position:relative;
  overflow:hidden;
}
#homeAuditForm .btn.btn-primary:after{
  content:"";
  position:absolute; top:-50%; left:-30%;
  width:40%; height:200%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform:rotate(22deg);
  animation:homeAuditShimmer 2.8s ease-in-out infinite;
}
@keyframes homeAuditShimmer{
  0%{ left:-40%; opacity:0}
  20%{ opacity:1}
  60%{ left:120%; opacity:0}
  100%{ left:120%; opacity:0}
}

/* HOME_AUDIT_FORM_V3 (applies directly to #homeAuditForm) */
#homeAuditForm{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  padding:2.25rem;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(15,42,61,.10);
  box-shadow: 0 18px 46px rgba(15,42,61,.10);
  backdrop-filter: blur(10px);
}
#homeAuditForm:before{
  content:"";
  position:absolute; inset:-3px;
  background:conic-gradient(from 180deg,
    rgba(43,179,177,.65),
    rgba(47,128,237,.65),
    rgba(43,179,177,.65)
  );
  animation:homeAuditSpinV3 6s linear infinite;
  opacity:.55;
  z-index:0;
  pointer-events:none;
}
#homeAuditForm:after{
  content:"";
  position:absolute; inset:2px;
  background:rgba(255,255,255,.78);
  border-radius:20px;
  border:1px solid rgba(15,42,61,.08);
  z-index:0;
  pointer-events:none;
}
@keyframes homeAuditSpinV3{to{transform:rotate(360deg)}}
#homeAuditForm > *{position:relative; z-index:1}

#homeAuditForm .form-control,
#homeAuditForm .form-select{
  background:rgba(238,247,255,.62) !important;
  border:1px solid rgba(15,42,61,.12) !important;
  border-radius:14px !important;
  padding:.9rem .95rem !important;
}
#homeAuditForm .form-control:focus,
#homeAuditForm .form-select:focus{
  background:#fff !important;
  border-color:rgba(47,128,237,.60) !important;
  box-shadow:0 0 0 .22rem rgba(47,128,237,.12) !important;
}
#homeAuditForm textarea.form-control{min-height:140px}

#homeAuditForm .btn.btn-primary{
  border-radius:14px !important;
  position:relative;
  overflow:hidden;
}
#homeAuditForm .btn.btn-primary:after{
  content:"";
  position:absolute; top:-50%; left:-30%;
  width:40%; height:200%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform:rotate(22deg);
  animation:homeAuditShimmerV3 2.8s ease-in-out infinite;
}
@keyframes homeAuditShimmerV3{
  0%{ left:-40%; opacity:0}
  20%{ opacity:1}
  60%{ left:120%; opacity:0}
  100%{ left:120%; opacity:0}
}

/* CONTACT_AUDIT_FORM_MATCH_HOME */
#contactAuditForm{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  padding:2.25rem;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(15,42,61,.10);
  box-shadow: 0 18px 46px rgba(15,42,61,.10);
  backdrop-filter: blur(10px);
}
#contactAuditForm:before{
  content:"";
  position:absolute; inset:-3px;
  background:conic-gradient(from 180deg,
    rgba(43,179,177,.65),
    rgba(47,128,237,.65),
    rgba(43,179,177,.65)
  );
  animation:contactAuditSpin 6s linear infinite;
  opacity:.55;
  z-index:0;
  pointer-events:none;
}
#contactAuditForm:after{
  content:"";
  position:absolute; inset:2px;
  background:rgba(255,255,255,.78);
  border-radius:20px;
  border:1px solid rgba(15,42,61,.08);
  z-index:0;
  pointer-events:none;
}
@keyframes contactAuditSpin{to{transform:rotate(360deg)}}
#contactAuditForm > *{position:relative; z-index:1}

#contactAuditForm .form-control,
#contactAuditForm .form-select{
  background:rgba(238,247,255,.62) !important;
  border:1px solid rgba(15,42,61,.12) !important;
  border-radius:14px !important;
  padding:.9rem .95rem !important;
}
#contactAuditForm .form-control:focus,
#contactAuditForm .form-select:focus{
  background:#fff !important;
  border-color:rgba(47,128,237,.60) !important;
  box-shadow:0 0 0 .22rem rgba(47,128,237,.12) !important;
}
#contactAuditForm textarea.form-control{min-height:140px}

#contactAuditForm .btn.btn-primary{
  border-radius:14px !important;
  position:relative;
  overflow:hidden;
}
#contactAuditForm .btn.btn-primary:after{
  content:"";
  position:absolute; top:-50%; left:-30%;
  width:40%; height:200%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform:rotate(22deg);
  animation:contactAuditShimmer 2.8s ease-in-out infinite;
}
@keyframes contactAuditShimmer{
  0%{ left:-40%; opacity:0}
  20%{ opacity:1}
  60%{ left:120%; opacity:0}
  100%{ left:120%; opacity:0}
}

/* MOBILE_GLOBAL_RESPONSIVE_V1 */
*{box-sizing:border-box}
html,body{max-width:100%; overflow-x:hidden}
img,svg,video,canvas{max-width:100%; height:auto}
a,button{touch-action:manipulation}
.container, .container-fluid{overflow-x:hidden}

/* Better responsive typography */
h1{font-size:clamp(1.6rem, 4.8vw, 2.6rem); line-height:1.15}
h2{font-size:clamp(1.35rem, 4.2vw, 2.1rem); line-height:1.2}
h3{font-size:clamp(1.2rem, 3.6vw, 1.8rem)}
p,li{line-height:1.6}

/* Prevent iOS input zoom + improve form usability */
input, select, textarea, button{font-size:16px}

/* Hero / header spacing */
.page-hero{padding:56px 0 34px}
.header .display-4{font-size:clamp(1.7rem, 5.4vw, 3.1rem); line-height:1.15}
.header .row.g-4{row-gap:12px}

/* Navbar mobile */
@media (max-width: 991.98px){
  .navbar-brand img{height:44px}
  .navbar .navbar-nav .nav-link{padding:.7rem 0}
  .navbar .btn{width:100%}
}

/* Reduce heavy spacing on small screens */
@media (max-width: 575.98px){
  .py-5{padding-top:2.2rem !important; padding-bottom:2.2rem !important}
  .p-5{padding:1.25rem !important}
  .px-5{padding-left:1.25rem !important; padding-right:1.25rem !important}
  .header{margin-bottom:1.5rem !important}
  .back-to-top{right:14px; bottom:14px}
}

/* Make glass forms fit nicely on mobile */
@media (max-width: 575.98px){
  #homeAuditForm, #contactAuditForm{
    padding:1.25rem !important;
    border-radius:18px !important;
  }
  #homeAuditForm:after, #contactAuditForm:after{border-radius:16px !important}
}

/* Map responsive height */
@media (max-width: 575.98px){
  .map-embed iframe{height:320px !important}
}

/* Reduce animation load for users who prefer less motion */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important}
}
