/* Fusion Medical Care — scroll-in motion layer (additive, no style/layout change).
   Keyframe-based: elements are never persistently hidden, so there is no flash and
   no change to the existing design. Motion plays once as a block enters the viewport. */
@keyframes fmcUp    { from { opacity: 0; transform: translate3d(0, 46px, 0); }  to { opacity: 1; transform: none; } }
@keyframes fmcLeft  { from { opacity: 0; transform: translate3d(-56px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes fmcRight { from { opacity: 0; transform: translate3d(56px, 0, 0); }  to { opacity: 1; transform: none; } }
@keyframes fmcPop   { from { opacity: 0; transform: scale(.86); }               to { opacity: 1; transform: none; } }

.fmc-in { animation-duration: .85s; animation-fill-mode: both; animation-timing-function: cubic-bezier(.16, 1, .3, 1); }
.fmc-up    { animation-name: fmcUp; }
.fmc-left  { animation-name: fmcLeft; }
.fmc-right { animation-name: fmcRight; }
.fmc-pop   { animation-name: fmcPop; }

@media (prefers-reduced-motion: reduce) {
  .fmc-in { animation-duration: .5s; }
  .fmc-left, .fmc-right { animation-name: fmcUp; }   /* gentler: no horizontal slide */
}

/* Ensure embedded videos are always sized correctly (theme's rule lives in a
   deferred stylesheet the optimizer loads late, which left the iframe unsized). */
.cntnt_vid { width: 100% !important; max-width: 900px !important; height: 450px !important; margin: 40px auto !important; display: block; }
.cntnt_vid iframe { width: 100% !important; height: 100% !important; border: 0; display: block; }
@media (max-width: 768px) { .cntnt_vid { height: 300px !important; margin: 25px auto !important; } }

/* NOTE: no banner CSS here on purpose. The inner-page banners must render exactly
   as the live WordPress theme renders them (natural-size image centered via the
   theme's own .non_ban_img rule, coral title band overlapping). All banner sizing
   is therefore handled by fixing the IMAGE FILES to the theme's expected 1920px
   white-canvas format, never by overriding the theme's layout. */

/* HOST CDN SAFETY: Hostinger's CDN re-encodes and downscales images (a 1920px
   banner is delivered at 1600px). The theme sets no width on the banner image, so
   it would render at the file's own size and sit left-aligned inside its 1920px
   container, overhanging the title bar. Making it fill the container keeps the
   layout identical to the live site no matter what size the CDN serves. */
#banner .non_ban_img img { width: 100% !important; height: auto !important; display: block; }

/* Submit overlay: shown while a form is being sent and the visitor is redirected. */
#fmc-sending {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(255,255,255,.94);
  display: flex; align-items: center; justify-content: center;
  animation: fmcFadeIn .18s ease both;
}
@keyframes fmcFadeIn { from { opacity: 0 } to { opacity: 1 } }
.fmc-sending-box { text-align: center; padding: 0 24px; }
.fmc-spinner {
  width: 54px; height: 54px; margin: 0 auto 22px;
  border: 4px solid rgba(1,203,198,.25);
  border-top-color: #01cbc6;
  border-radius: 50%;
  animation: fmcSpin .9s linear infinite;
}
@keyframes fmcSpin { to { transform: rotate(360deg) } }
.fmc-sending-msg {
  margin: 0; font-family: "Amethysta", Georgia, serif;
  font-size: clamp(1.3rem, 2.6vw, 1.9rem); color: #038885;
}
.fmc-sending-sub {
  margin: .5rem 0 0; font-family: "Poppins", sans-serif;
  font-size: .95rem; color: #6b7079;
}
@media (prefers-reduced-motion: reduce) { .fmc-spinner { animation-duration: 2s } }

/* PP/OO Shot age confirmation dialog */
#fmc-age {
  position: fixed; inset: 0; z-index: 100000;
  background: rgba(23,20,31,.62);
  display: flex; align-items: center; justify-content: center; padding: 20px;
  animation: fmcFadeIn .18s ease both;
}
.fmc-age-box {
  background: #fff; border-radius: 18px; max-width: 480px; width: 100%;
  padding: 34px 30px 28px; text-align: center; box-shadow: 0 30px 70px -25px rgba(3,60,58,.55);
}
.fmc-age-box h2 {
  margin: 0 0 .6rem; font-family: "Amethysta", Georgia, serif;
  font-size: clamp(1.35rem, 2.6vw, 1.75rem); color: #038885;
}
.fmc-age-box p {
  margin: 0 0 1.4rem; font-family: "Poppins", sans-serif;
  font-size: .96rem; line-height: 1.6; color: #454851;
}
.fmc-age-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.fmc-age-actions button {
  font-family: "Poppins", sans-serif; font-weight: 700; font-size: .9rem;
  padding: .85rem 1.5rem; border-radius: 12px; cursor: pointer; border: 2px solid transparent;
  transition: background .2s ease, color .2s ease;
}
.fmc-age-yes { background: #01cbc6; color: #fff; }
.fmc-age-yes:hover { background: #038885; }
.fmc-age-no { background: #fff; color: #454851; border-color: #d7dbe0; }
.fmc-age-no:hover { background: #f4f8f9; }
.fmc-age-check {
  display: block; text-align: left; margin: 0 0 1.4rem; padding: 14px 16px;
  background: #f4f8f9; border-radius: 12px; font-family: "Poppins", sans-serif;
  font-size: .92rem; line-height: 1.55; color: #454851; cursor: pointer;
}
.fmc-age-check input { margin-right: 10px; transform: translateY(1px); }
.fmc-age-yes:disabled { background: #c9d4d6; cursor: not-allowed; }
