/* Playful motion across the complete Kids experience. */
.kids-footer { flex-wrap:wrap;gap:20px; }
.kids-socials { display:flex;flex-wrap:wrap;gap:10px; }
.kids-socials a { display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;border:1px solid rgba(92,225,208,.35);border-radius:999px;color:var(--mint);font-weight:700;transition:background .2s,transform .2s; }
.kids-socials a:hover,.kids-socials a:focus-visible { background:rgba(92,225,208,.12);transform:translateY(-2px); }
@media(max-width:600px) { .kids-socials { width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); }.kids-socials a { justify-content:center; } }
body:before {
  content: "";
  position: fixed;
  z-index: -1;
  inset: -40%;
  pointer-events: none;
  background: conic-gradient(from 0deg,transparent 0 74%,rgba(92,225,208,.12) 80%,transparent 86%);
  animation: kidsAura 18s linear infinite;
}
@keyframes kidsAura { to { transform: rotate(360deg); } }

.kids-reveal {
  opacity: 0;
  filter: blur(7px);
  transform: translateY(30px) scale(.98);
  transition: opacity .72s ease,filter .72s ease,transform .72s cubic-bezier(.2,.78,.2,1);
  transition-delay: calc(var(--kids-delay, 0) * 75ms);
}
.kids-reveal.is-visible { opacity: 1; filter: none; transform: none; }
.kid-photo.is-visible { animation: kidHeroFloat 5s 1s ease-in-out infinite; }
@keyframes kidHeroFloat {
  0%,100% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-13px); }
}

.kids-why > div {
  position: relative;
  overflow: hidden;
  transition: transform .3s ease,box-shadow .3s ease;
}
.kids-why > div:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg,transparent 25%,rgba(255,255,255,.75) 49%,transparent 72%);
  transform: translateX(-120%);
  transition: transform .75s ease;
}
.kids-why > div:hover { transform: translateY(-8px) rotate(-1deg); box-shadow: 0 22px 40px rgba(14,42,61,.18); }
.kids-why > div:hover:after { transform: translateX(120%); }

.kids-gallery figure {
  box-shadow: 0 16px 34px rgba(18,51,74,.12);
  transition: transform .42s cubic-bezier(.2,.8,.2,1),box-shadow .42s ease;
}
.kids-gallery figure:nth-child(odd).is-visible { transform: rotate(-1deg); }
.kids-gallery figure:nth-child(even).is-visible { transform: rotate(1deg); }
.kids-gallery figure:hover { transform: translateY(-10px) rotate(0) scale(1.01); box-shadow: 0 28px 48px rgba(18,51,74,.22); }
.kids-gallery figcaption { transition: transform .25s ease,background .25s ease; }
.kids-gallery figure:hover figcaption { transform: translateY(-4px) rotate(-2deg); background: var(--yellow); }

.book-kids,.send-kids,.adult-link,.kids-language button { position: relative; overflow: hidden; }
.book-kids:before,.send-kids:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg,transparent 20%,rgba(255,255,255,.55) 48%,transparent 72%);
  transform: translateX(-130%);
  transition: transform .7s ease;
}
.book-kids:hover:before,.send-kids:hover:before { transform: translateX(130%); }
.kids-prices span { transition: transform .25s ease,background .25s ease; }
.kids-prices span:hover { transform: translateX(5px); background: rgba(255,255,255,.09); }
.kids-form { transition: transform .35s ease,box-shadow .35s ease; }
.kids-form:hover { transform: translateY(-5px); box-shadow: 0 32px 70px rgba(0,0,0,.25); }
.kids-fields label:focus-within > span { color: var(--coral); transform: translateY(-2px); }
.kids-fields label > span { transition: color .2s ease,transform .2s ease; }
.age-status { display:block;min-height:17px;margin-top:7px;font-size:11px;font-weight:700;line-height:1.35; }
.age-status.eligible { color:#16836f;animation:ageApproved .45s cubic-bezier(.2,.8,.2,1); }
.age-status.ineligible { color:#c64942; }
.adult-booking-hint { display:inline-flex;margin-top:7px;color:var(--purple);font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:3px; }
.age-field:has(.age-status.eligible) input { border-color:#16836f; }
.age-field:has(.age-status.ineligible) input { border-color:#c64942; }
@keyframes ageApproved { 50% { transform:scale(1.035); } }
.kids-total.promo-pop { animation: kidsPromoPop .9s cubic-bezier(.2,.8,.2,1); }
@keyframes kidsPromoPop {
  35% { transform: scale(1.06); background: rgba(255,209,93,.27); border-radius: 12px; padding-inline: 10px; }
  100% { transform: none; }
}
.kids-click-spark {
  position: fixed;
  z-index: 100;
  pointer-events: none;
  color: var(--coral);
  font: 800 30px "Baloo 2",sans-serif;
  transform: translate(-50%,-50%);
  filter: drop-shadow(0 0 10px rgba(255,122,112,.55));
  animation: kidsSnip .7s ease-out forwards;
}
@keyframes kidsSnip {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.45) rotate(-35deg); }
  30% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%,-90%) scale(1.25) rotate(24deg); }
}

@media (hover:hover) and (pointer:fine) {
  html,body,body * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8m0 16a4 4 0 1 0 0 8 4 4 0 0 0 0-8M11 10l14 14M11 22l14-14' fill='none' stroke='%23d7aa60' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") 6 6, auto !important;
  }
}
@media (max-width:800px) {
  .kids-gallery figure:nth-child(n).is-visible { transform: none; }
  .kids-form:hover { transform: none; }
  .kid-photo.is-visible { animation-duration: 6s; }
}
@media (prefers-reduced-motion:reduce) {
  body:before,.kid-photo.is-visible,.kids-click-spark { animation: none !important; }
  .kids-reveal { opacity: 1 !important; filter: none !important; transform: none !important; }
  .kids-gallery figure:nth-child(n).is-visible { transform: none !important; }
}
