/* ============================================================
   KidoCare CMS - Frontend Stylesheet (original design)
   Palette: coral / teal / sunny yellow on warm cream
   ============================================================ */
:root{
  --kc-primary:#FF6B6B;
  --kc-secondary:#2EC4B6;
  --kc-accent:#FFD166;
  --kc-dark:#2D3142;
  --kc-cream:#FFF6EC;
  --kc-tint:#FDF0E3;
  --kc-muted:#7C8098;
  --kc-radius:26px;
}
*{box-sizing:border-box}
body{
  font-family:'Nunito',system-ui,sans-serif;
  color:var(--kc-dark);
  background:var(--kc-cream);
  line-height:1.75;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5,h6,.kc-btn{font-family:'Fredoka','Nunito',sans-serif;font-weight:600}
img{max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
p{color:var(--kc-muted)}

/* ---------- Buttons ---------- */
.kc-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.8rem 1.9rem;border-radius:60px;border:2px solid transparent;
  font-size:1rem;transition:all .25s ease;cursor:pointer;
}
.kc-btn-lg{padding:1rem 2.4rem;font-size:1.08rem}
.kc-btn-primary{background:var(--kc-primary);color:#fff;box-shadow:0 10px 24px rgba(255,107,107,.35)}
.kc-btn-primary:hover{background:var(--kc-dark);color:#fff;transform:translateY(-3px)}
.kc-btn-accent{background:var(--kc-accent);color:var(--kc-dark);box-shadow:0 10px 24px rgba(255,209,102,.4)}
.kc-btn-accent:hover{background:var(--kc-primary);color:#fff;transform:translateY(-3px)}
.kc-btn-outline{border-color:var(--kc-primary);color:var(--kc-primary);background:transparent}
.kc-btn-outline:hover{background:var(--kc-primary);color:#fff;transform:translateY(-3px)}
.kc-link{color:var(--kc-primary);font-weight:800;display:inline-flex;align-items:center;gap:.4rem}
.kc-link:hover{color:var(--kc-secondary)}
.kc-link i{transition:transform .25s}
.kc-link:hover i{transform:translateX(5px)}

/* ---------- Header ---------- */
.kc-topbar{background:var(--kc-dark);color:#fff;font-size:.86rem;padding:.45rem 0}
.kc-topbar i{color:var(--kc-accent);margin-right:.3rem}
.kc-topbar a{color:#fff;opacity:.85}
.kc-topbar a:hover{opacity:1;color:var(--kc-accent)}
.kc-navbar{background:#fff;padding:.9rem 0;box-shadow:0 6px 24px rgba(45,49,66,.07);position:relative;z-index:50}
.kc-header.sticky .kc-navbar{position:fixed;top:0;left:0;right:0;animation:kcSlide .3s ease}
@keyframes kcSlide{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.kc-menu{display:flex;align-items:center;gap:1.8rem;list-style:none;margin:0;padding:0}
.kc-menu>li{position:relative}
.kc-menu>li>a{font-weight:800;font-size:.98rem;display:inline-flex;align-items:center;gap:.3rem;padding:.4rem 0;transition:color .2s}
.kc-menu>li>a:hover,.kc-menu>li>a.active{color:var(--kc-primary)}
.kc-menu>li>a i{font-size:.7rem}
.kc-dropdown{
  position:absolute;top:110%;left:0;min-width:210px;background:#fff;border-radius:18px;
  box-shadow:0 20px 50px rgba(45,49,66,.14);list-style:none;padding:.6rem;opacity:0;visibility:hidden;
  transform:translateY(12px);transition:all .25s ease;
}
.kc-menu>li:hover>.kc-dropdown,.kc-menu>li.open>.kc-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.kc-dropdown li a{display:block;padding:.55rem 1rem;border-radius:12px;font-weight:700;font-size:.92rem}
.kc-dropdown li a:hover{background:var(--kc-tint);color:var(--kc-primary)}
.kc-burger{background:none;border:none;width:42px;height:42px;display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.kc-burger span{width:26px;height:3px;border-radius:3px;background:var(--kc-dark);transition:.3s}
@media (max-width:991.98px){
  .kc-menu{
    position:fixed;inset:0 0 0 auto;width:min(320px,85vw);background:#fff;flex-direction:column;
    align-items:stretch;padding:90px 28px 28px;gap:.4rem;transform:translateX(100%);transition:transform .35s ease;
    box-shadow:-20px 0 60px rgba(45,49,66,.15);overflow-y:auto;z-index:49;
  }
  .kc-menu.open{transform:translateX(0)}
  .kc-menu>li>a{display:block;padding:.7rem .2rem}
  .kc-dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;padding:0 0 0 1rem;display:none}
  .kc-menu>li.open>.kc-dropdown{display:block}
  body.menu-open::after{content:'';position:fixed;inset:0;background:rgba(45,49,66,.45);z-index:48}
}

/* ---------- Hero ---------- */
.kc-hero{position:relative;padding:90px 0 110px;overflow:hidden}
.kc-hero-shape{position:absolute;border-radius:50%;filter:blur(2px);opacity:.5}
.kc-shape-1{width:340px;height:340px;background:#FFE3E3;top:-120px;right:-80px}
.kc-shape-2{width:260px;height:260px;background:#DFF7F4;bottom:-110px;left:-70px}
.kc-subtitle{
  display:inline-block;color:var(--kc-secondary);font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;font-size:.82rem;background:#E2F7F4;border-radius:40px;padding:.35rem 1.1rem;margin-bottom:1.1rem;
}
.kc-subtitle.light{background:rgba(255,255,255,.15);color:#fff}
.kc-hero-title{font-size:clamp(2.2rem,4.5vw,3.6rem);line-height:1.18;font-weight:700}
.kc-hero-text{font-size:1.1rem;margin:1.2rem 0 2rem;max-width:520px}
.kc-heading{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.25;margin-bottom:1rem}
.kc-hero-img-wrap{position:relative;display:inline-block}
.kc-hero-img{
  position:relative;z-index:2;width:min(480px,100%);
  border-radius:58% 42% 55% 45%/48% 55% 45% 52%;
  border:6px solid #fff;box-shadow:0 30px 70px rgba(45,49,66,.18);
}
.kc-blob{position:absolute;inset:8% -6% -6% 8%;background:var(--kc-primary);opacity:.14;border-radius:52% 48% 60% 40%/45% 58% 42% 55%;z-index:1}
.kc-float{position:absolute;z-index:3;font-size:1.8rem;animation:kcFloat 5s ease-in-out infinite}
.kc-star-1{top:6%;left:4%;color:var(--kc-accent);font-size:2.2rem}
.kc-star-2{bottom:14%;right:2%;color:var(--kc-secondary);animation-delay:1.2s}
.kc-balloon{top:0;right:10%;font-size:2.6rem;animation-delay:.6s}
@keyframes kcFloat{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-16px) rotate(5deg)}}

/* ---------- Sections ---------- */
.kc-section{padding:100px 0}
.kc-section-tint{background:var(--kc-tint)}
.kc-card{
  background:#fff;border-radius:var(--kc-radius);padding:2rem;height:100%;
  box-shadow:0 14px 40px rgba(45,49,66,.08);transition:transform .3s ease,box-shadow .3s ease;
}
.kc-card:hover{transform:translateY(-8px);box-shadow:0 24px 60px rgba(45,49,66,.13)}

/* ---------- About ---------- */
.kc-img-frame{position:relative}
.kc-img-frame img{border-radius:40% 60% 55% 45%/50% 45% 55% 50%;border:6px solid #fff;box-shadow:0 26px 60px rgba(45,49,66,.15)}
.kc-img-frame::after{
  content:'';position:absolute;inset:-14px;border:3px dashed var(--kc-primary);opacity:.45;
  border-radius:42% 58% 52% 48%/48% 52% 48% 52%;animation:kcSpin 40s linear infinite;
}
.kc-frame-teal::after{border-color:var(--kc-secondary)}
@keyframes kcSpin{to{transform:rotate(360deg)}}
.kc-mini-feature{display:flex;gap:.9rem}
.kc-mini-feature i{font-size:1.6rem;color:var(--kc-primary)}
.kc-mini-feature h6{margin-bottom:.2rem}
.kc-mini-feature p{font-size:.9rem;margin:0}
.kc-ceo-row{display:flex;align-items:center;gap:2rem;margin-top:2rem;flex-wrap:wrap}
.kc-ceo-sign{font-family:'Fredoka',cursive;font-size:1.5rem;color:var(--kc-secondary);display:block}
.kc-ceo small{color:var(--kc-muted);font-weight:700}
.kc-call{display:flex;align-items:center;gap:.8rem;background:#fff;padding:.7rem 1.3rem;border-radius:60px;box-shadow:0 10px 26px rgba(45,49,66,.1)}
.kc-call i{width:44px;height:44px;border-radius:50%;background:var(--kc-accent);display:grid;place-items:center;font-size:1.2rem;color:var(--kc-dark)}
.kc-call small{display:block;color:var(--kc-muted);font-size:.75rem;font-weight:700}
.kc-call span{font-weight:800;line-height:1.3}

/* ---------- Services ---------- */
.kc-service-card{text-align:center;position:relative;overflow:hidden}
.kc-service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:6px;border-radius:6px 6px 0 0}
.kc-accent-0::before{background:var(--kc-primary)} .kc-accent-1::before{background:var(--kc-secondary)}
.kc-accent-2::before{background:var(--kc-accent)} .kc-accent-3::before{background:#A78BFA}
.kc-service-icon{
  width:82px;height:82px;margin:0 auto 1.2rem;border-radius:50%;display:grid;place-items:center;
  font-size:2rem;color:#fff;background:var(--kc-primary);transition:transform .3s;
}
.kc-accent-1 .kc-service-icon{background:var(--kc-secondary)}
.kc-accent-2 .kc-service-icon{background:var(--kc-accent);color:var(--kc-dark)}
.kc-accent-3 .kc-service-icon{background:#A78BFA}
.kc-service-card:hover .kc-service-icon{transform:scale(1.1) rotate(-6deg)}

/* ---------- Gallery ---------- */
.kc-gallery-item{position:relative;display:block;border-radius:22px;overflow:hidden}
.kc-gallery-item img{width:100%;height:230px;object-fit:cover;transition:transform .5s ease}
.kc-frame-0 img{border-radius:60% 40% 55% 45%/45% 55% 45% 55%}
.kc-frame-1 img{border-radius:24px}
.kc-frame-2 img{border-radius:45% 55% 48% 52%/55% 45% 55% 45%}
.kc-frame-3 img{border-radius:24px;border:3px dashed var(--kc-secondary)}
.kc-gallery-item:hover img{transform:scale(1.08)}
.kc-gallery-overlay{
  position:absolute;inset:0;display:grid;place-items:center;background:rgba(46,196,182,.55);
  color:#fff;font-size:1.6rem;opacity:0;transition:opacity .3s;
}
.kc-gallery-item:hover .kc-gallery-overlay{opacity:1}
.kc-lightbox{position:fixed;inset:0;background:rgba(20,22,35,.9);display:none;place-items:center;z-index:100;cursor:zoom-out}
.kc-lightbox.open{display:grid}
.kc-lightbox img{max-width:88vw;max-height:86vh;border-radius:18px}
.kc-lightbox-close{position:absolute;top:22px;right:34px;color:#fff;font-size:2.6rem;cursor:pointer}

/* ---------- Counters ---------- */
.kc-counters{padding:70px 0;background:linear-gradient(120deg,var(--kc-primary),#FF9E7D);color:#fff}
.kc-counter i{font-size:2.2rem;color:var(--kc-accent)}
.kc-counter-num,.kc-counter-suffix{font-family:'Fredoka';font-size:2.6rem;font-weight:700}
.kc-counter p{color:rgba(255,255,255,.9);margin:0;font-weight:700}

/* ---------- Programs ---------- */
.kc-program-card{padding:0;overflow:hidden}
.kc-program-card img{width:100%;height:210px;object-fit:cover}
.kc-program-body{padding:1.6rem}
.kc-age{display:inline-block;background:var(--kc-tint);color:var(--kc-primary);font-weight:800;font-size:.8rem;border-radius:40px;padding:.25rem .9rem;margin:.3rem 0 .8rem}

/* ---------- Facilities ---------- */
.kc-facility-list{display:flex;flex-direction:column;gap:1.4rem;margin-top:1.6rem}
.kc-facility-item{display:flex;gap:1.1rem;background:#fff;padding:1.2rem 1.4rem;border-radius:20px;box-shadow:0 10px 30px rgba(45,49,66,.07)}
.kc-facility-item i{font-size:1.7rem;color:var(--kc-secondary)}
.kc-facility-item h6{margin-bottom:.2rem}
.kc-facility-item p{margin:0;font-size:.92rem}

/* ---------- Video ---------- */
.kc-video{padding:120px 0;background-size:cover;background-position:center;text-align:center}
.kc-play{
  width:88px;height:88px;border-radius:50%;background:var(--kc-accent);color:var(--kc-dark);
  display:inline-grid;place-items:center;font-size:2.4rem;margin-bottom:1.4rem;position:relative;transition:transform .25s;
}
.kc-play:hover{transform:scale(1.1)}
.kc-play::after{content:'';position:absolute;inset:-10px;border-radius:50%;border:3px solid rgba(255,255,255,.5);animation:kcPulse 1.8s infinite}
@keyframes kcPulse{0%{transform:scale(.9);opacity:1}100%{transform:scale(1.4);opacity:0}}

/* ---------- Pricing ---------- */
.kc-price-card{text-align:center;position:relative}
.kc-price-card.featured{border:3px solid var(--kc-primary);transform:scale(1.03)}
.kc-price-card.featured:hover{transform:scale(1.03) translateY(-8px)}
.kc-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--kc-primary);color:#fff;border-radius:40px;padding:.3rem 1.2rem;font-weight:800;font-size:.8rem}
.kc-price{font-family:'Fredoka';font-size:3rem;font-weight:700;color:var(--kc-primary);margin:.6rem 0 1rem}
.kc-price sup{font-size:1.2rem;top:-1rem}
.kc-price span{font-size:1rem;color:var(--kc-muted);font-family:'Nunito'}
.kc-price-card ul{list-style:none;padding:0;text-align:left;margin-bottom:1.4rem}
.kc-price-card ul li{padding:.4rem 0;color:var(--kc-muted);font-weight:600}
.kc-price-card ul li i{color:var(--kc-secondary);margin-right:.5rem}

/* ---------- Partners ---------- */
.kc-partners{padding:44px 0;overflow:hidden}
.kc-brand-track{display:flex;gap:3.5rem;width:max-content;animation:kcScroll 24s linear infinite}
.kc-brand-track img{height:44px;opacity:.75;filter:grayscale(30%);transition:.3s}
.kc-brand-track img:hover{opacity:1;filter:none}
@keyframes kcScroll{to{transform:translateX(-50%)}}

/* ---------- Events ---------- */
.kc-event-row{
  display:flex;align-items:center;gap:1.3rem;background:#fff;border-radius:22px;
  padding:1.1rem 1.4rem;margin-bottom:1.1rem;box-shadow:0 10px 30px rgba(45,49,66,.07);transition:transform .25s;
}
.kc-event-row:hover{transform:translateX(8px)}
.kc-event-date{
  min-width:72px;height:72px;border-radius:18px;background:var(--kc-secondary);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.kc-event-date strong{font-family:'Fredoka';font-size:1.5rem;line-height:1}
.kc-event-date span{font-size:.8rem;font-weight:800;text-transform:uppercase}
.kc-event-info h5{margin-bottom:.2rem}
.kc-event-info span{color:var(--kc-muted);font-size:.86rem;font-weight:700}
.kc-event-info i{color:var(--kc-primary)}
.kc-event-arrow{margin-left:auto;width:44px;height:44px;border-radius:50%;background:var(--kc-tint);display:grid;place-items:center;color:var(--kc-primary);transition:.25s}
.kc-event-row:hover .kc-event-arrow{background:var(--kc-primary);color:#fff}

/* ---------- Contact form ---------- */
.kc-contact-section{position:relative}
.kc-form input,.kc-form select,.kc-form textarea,.kc-newsletter-form input{
  width:100%;padding:.95rem 1.3rem;border-radius:16px;border:2px solid #F2E7D9;background:#fff;
  font-family:'Nunito';font-size:.98rem;transition:border-color .2s;
}
.kc-form input:focus,.kc-form select:focus,.kc-form textarea:focus,.kc-newsletter-form input:focus{outline:none;border-color:var(--kc-secondary)}
.kc-form-msg{margin-top:.9rem;font-weight:700;display:none}
.kc-form-msg.ok{display:block;color:#0e7c72}
.kc-form-msg.err{display:block;color:#c0392b}

/* ---------- Blog ---------- */
.kc-blog-card{padding:0;overflow:hidden}
.kc-blog-card img{width:100%;height:220px;object-fit:cover}
.kc-blog-body{padding:1.5rem}
.kc-blog-meta{display:flex;flex-wrap:wrap;gap:.9rem;font-size:.8rem;color:var(--kc-muted);font-weight:700;margin-bottom:.6rem}
.kc-blog-meta i{color:var(--kc-primary)}
.kc-badge-soft{background:var(--kc-tint);color:var(--kc-primary);border-radius:40px;padding:.15rem .8rem}
.kc-blog-body h4 a:hover{color:var(--kc-primary)}

/* ---------- Newsletter ---------- */
.kc-newsletter{padding:0 0 100px}
.kc-newsletter-box{
  background:linear-gradient(120deg,var(--kc-secondary),#5BD9CD);border-radius:34px;padding:3rem;
  position:relative;overflow:hidden;
}
.kc-newsletter-box::before{content:'✉';position:absolute;right:-20px;bottom:-46px;font-size:11rem;opacity:.12;transform:rotate(-14deg)}
.kc-newsletter-box h3{color:#fff;margin:0;font-size:clamp(1.3rem,2.4vw,1.9rem)}
.kc-newsletter-form{display:flex;gap:.6rem}
.kc-newsletter-form input{border:none}
.kc-newsletter .kc-form-msg.ok{color:#fff}

/* ---------- Footer ---------- */
.kc-footer{background:var(--kc-dark);color:#C6C9DB;padding:110px 0 0;position:relative;margin-top:60px}
.kc-footer-wave{position:absolute;top:-79px;left:0;width:100%;height:80px}
.kc-footer h5{color:#fff;margin-bottom:1.2rem}
.kc-footer-links{list-style:none;padding:0}
.kc-footer-links li{margin-bottom:.55rem}
.kc-footer-links a{color:#C6C9DB;transition:.2s}
.kc-footer-links a:hover{color:var(--kc-accent);padding-left:6px}
.kc-footer-contact{list-style:none;padding:0}
.kc-footer-contact li{margin-bottom:.7rem}
.kc-footer-contact i{color:var(--kc-accent);margin-right:.5rem}
.kc-footer-post{display:flex;gap:.8rem;margin-bottom:1rem;color:#C6C9DB}
.kc-footer-post:hover{color:#fff}
.kc-footer-post img{width:58px;height:58px;border-radius:14px;object-fit:cover}
.kc-footer-post small{display:block;color:var(--kc-accent);font-weight:700}
.kc-social{display:flex;gap:.7rem;margin-top:1.2rem}
.kc-social a{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#fff;transition:.25s}
.kc-social a:hover{background:var(--kc-primary);transform:translateY(-4px)}
.kc-footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding:1.4rem 0;text-align:center;font-size:.9rem}

/* ---------- Inner pages ---------- */
.kc-page-banner{
  background:linear-gradient(120deg,#FFE3E3,#DFF7F4);padding:90px 0 70px;text-align:center;position:relative;overflow:hidden;
}
.kc-page-banner h1{font-size:clamp(1.9rem,3.6vw,2.8rem)}
.kc-breadcrumb{display:inline-flex;gap:.6rem;list-style:none;padding:.5rem 1.3rem;background:#fff;border-radius:40px;box-shadow:0 8px 22px rgba(45,49,66,.08);font-weight:800;font-size:.88rem}
.kc-breadcrumb a{color:var(--kc-secondary)}
.kc-teacher-card{text-align:center;padding:1.4rem}
.kc-teacher-card img{width:100%;height:260px;object-fit:cover;border-radius:20px}
.kc-teacher-social{display:flex;gap:.5rem;justify-content:center;margin-top:.8rem}
.kc-teacher-social a{width:36px;height:36px;border-radius:50%;background:var(--kc-tint);color:var(--kc-primary);display:grid;place-items:center}
.kc-teacher-social a:hover{background:var(--kc-primary);color:#fff}
.kc-faq-item{background:#fff;border-radius:18px;margin-bottom:1rem;box-shadow:0 8px 24px rgba(45,49,66,.07);overflow:hidden}
.kc-faq-q{width:100%;text-align:left;background:none;border:none;padding:1.1rem 1.4rem;font-weight:800;font-family:'Fredoka';font-size:1.05rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.kc-faq-a{padding:0 1.4rem;max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s}
.kc-faq-item.open .kc-faq-a{max-height:400px;padding:0 1.4rem 1.2rem}
.kc-faq-item.open .kc-faq-q i{transform:rotate(180deg)}
.kc-pagination{display:flex;gap:.5rem;justify-content:center;margin-top:2.5rem}
.kc-pagination a,.kc-pagination span{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#fff;font-weight:800;box-shadow:0 6px 18px rgba(45,49,66,.08)}
.kc-pagination .on{background:var(--kc-primary);color:#fff}
.kc-prose{max-width:820px;margin:0 auto}
.kc-prose img{border-radius:20px;margin:1rem 0}
.kc-prose h2,.kc-prose h3{margin-top:1.6rem}

/* ---------- Animations ---------- */
[data-animate]{opacity:0;transform:translateY(34px);transition:opacity .7s ease var(--d,0s),transform .7s ease var(--d,0s)}
[data-animate].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-animate]{opacity:1;transform:none}
}

/* ---------- Responsive ---------- */
@media (max-width:991.98px){
  .kc-section{padding:70px 0}
  .kc-hero{padding:60px 0 80px;text-align:center}
  .kc-hero-text{margin-left:auto;margin-right:auto}
}
@media (max-width:575.98px){
  .kc-gallery-item img{height:170px}
  .kc-newsletter-box{padding:2rem}
  .kc-newsletter-form{flex-direction:column}
}
