/* Riyadh Hospital — Preloader */
#riyadh-preloader{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#FFFFFF;
  background:radial-gradient(1200px 600px at 50% 0%, #EEF8FB 0%, #FFFFFF 65%);
  transition:opacity .55s cubic-bezier(0.16,1,0.3,1), visibility .55s, transform .55s cubic-bezier(0.16,1,0.3,1);
  overflow:hidden;
}
#riyadh-preloader.is-hidden{
  opacity:0;
  visibility:hidden;
  transform:scale(1.02);
  pointer-events:none;
}
#riyadh-preloader::before{
  content:'';
  position:absolute;
  width:900px;
  height:900px;
  background:radial-gradient(circle, rgba(43,122,138,0.08) 0%, transparent 70%);
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.preloader-inner{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  text-align:center;
  padding:2rem;
}
/* Logo with double ring */
.preloader-logo-wrap{
  position:relative;
  width:88px;
  height:88px;
  display:grid;
  place-items:center;
}
.preloader-logo{
  position:relative;
  z-index:2;
  width:72px;
  height:72px;
  object-fit:contain;
  border-radius:50%;
  background:#fff;
  box-shadow:0 8px 32px rgba(43,74,107,0.14), 0 1px 0 rgba(43,122,138,0.08);
  animation:preloaderPulse 1.8s cubic-bezier(0.16,1,0.3,1) infinite;
}
.preloader-ring, .preloader-ring2{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:3px solid transparent;
  border-top-color:#2b7a8a;
  border-right-color:rgba(43,122,138,0.22);
  animation:preloaderSpin 1.05s linear infinite;
}
.preloader-ring2{
  inset:6px;
  border-width:2.5px;
  border-top-color:#2b4a6b;
  border-left-color:rgba(43,74,107,0.14);
  border-right-color:transparent;
  animation-duration:1.45s;
  animation-direction:reverse;
  opacity:.9;
}
.preloader-title{
  margin:6px 0 0 0;
  font-size:1.05rem;
  color:#2b4a6b;
  letter-spacing:0.02em;
  font-weight:700;
}
.preloader-tagline{
  margin:0;
  font-size:.84rem;
  color:#5E7285;
  letter-spacing:0.03em;
}
.preloader-dots{
  display:flex;
  gap:6px;
  align-items:center;
  margin-top:4px;
}
.preloader-dots span{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#2b7a8a;
  opacity:.9;
  animation:preloaderBounce 1.15s infinite ease;
}
.preloader-dots span:nth-child(2){ animation-delay:.14s; background:#2b4a6b; }
.preloader-dots span:nth-child(3){ animation-delay:.28s; background:#7ED3E8; }

/* Bottom progress bar */
.preloader-bar{
  width:132px;
  height:3px;
  background:#E1EFF4;
  border-radius:9999px;
  overflow:hidden;
  margin-top:8px;
}
.preloader-bar-fill{
  display:block;
  height:100%;
  width:38%;
  background:linear-gradient(90deg, #2b7a8a, #2b4a6b);
  border-radius:9999px;
  animation:preloaderFill 1.35s cubic-bezier(0.16,1,0.3,1) infinite;
}

@keyframes preloaderSpin{ to{ transform:rotate(360deg); } }
@keyframes preloaderPulse{
  0%,100%{ transform:scale(1); }
  50%{ transform:scale(1.05); }
}
@keyframes preloaderBounce{
  0%,80%,100%{ transform:translateY(0) scale(1); opacity:.85; }
  40%{ transform:translateY(-6px) scale(1.15); opacity:1; }
}
@keyframes preloaderFill{
  0%{ transform:translateX(-100%); }
  50%{ transform:translateX(20%); width:42%; }
  100%{ transform:translateX(260%); }
}

@media (prefers-reduced-motion: reduce){
  .preloader-logo, .preloader-ring, .preloader-ring2, .preloader-dots span, .preloader-bar-fill{ animation:none !important; }
  #riyadh-preloader{ transition:none; }
}
/* Prevent scroll while loading */
body.is-preloading{ overflow:hidden; }
