/* ===== KIS Enhancements (animations + responsive polish) ===== */
html{ scroll-behavior:smooth; }

@keyframes kis-fade-up{
  from{ opacity:0; transform:translateY(20px); }
  to{ opacity:1; transform:none; }
}
.kis-reveal{ opacity:0; }
.kis-reveal.kis-in{ animation:kis-fade-up .8s ease both; }

/* Smoother card hovers (non-destructive — only enhances) */
.f-card, .teacher-card, .subject-card{
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.f-card:hover, .teacher-card:hover, .subject-card:hover{
  transform:translateY(-4px);
}
/* News cards: no hover effect (per design request) */
.news-item-small, .news-right-column > div{
  transition:none !important;
}
.news-item-small:hover, .news-right-column > div:hover{
  transform:none !important;
  box-shadow:none !important;
}
.news-section .small-img-box img,
.news-section .large-img-box img{
  cursor:zoom-in;
  transition:none !important;
}
.news-section .small-img-box img:hover,
.news-section .large-img-box img:hover{
  transform:none !important;
}

/* Image lazy-fade */
img{ image-rendering:auto; }
img[loading="lazy"]{ transition:opacity .4s; }

/* Phone & email better tap targets */
a[href^="tel:"], a[href^="mailto:"]{ -webkit-tap-highlight-color:rgba(79,124,255,.15); }

/* Time table section */
.kis-tt-section{
  padding:60px 20px;
  background:linear-gradient(180deg, #f7f9ff, #ffffff);
  font-family:'Plus Jakarta Sans', system-ui, sans-serif;
}
.kis-tt-wrap{ max-width:1100px; margin:0 auto; text-align:center; }
.kis-tt-section .kis-tt-label{
  display:inline-block; padding:6px 14px; border-radius:999px;
  background:rgba(79,124,255,.1); color:#4f7cff; font-weight:700; font-size:12px;
  letter-spacing:1px; text-transform:uppercase; margin-bottom:14px;
}
.kis-tt-section h2{
  margin:0 0 10px; font-size:clamp(24px, 3.2vw, 36px); font-weight:800; color:#0f1730;
}
.kis-tt-section .kis-tt-sub{ color:#5a6478; margin:0 0 28px; font-size:15px; }
.kis-tt-image{
  width:100%; max-width:900px; margin:0 auto; display:block;
  border-radius:18px; box-shadow:0 20px 50px rgba(15,23,48,.12);
  border:1px solid #eef1f8; background:#fff;
}
.kis-tt-placeholder{
  border:2px dashed #d3dbef; border-radius:18px; padding:60px 20px;
  color:#8a93a6; font-size:14px; background:#fff;
}

/* Smooth-in for news, teacher grid on mobile */
@media (max-width: 768px){
  .news-container{ padding:0 14px !important; }
  .footer-top{ gap:24px !important; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  html{ scroll-behavior:auto; }
}

/* === KIS polish v2 === */
*{ -webkit-tap-highlight-color: transparent; }
html{ scroll-behavior:smooth; }
img{ max-width:100%; height:auto; }
a, button{ transition: color .2s, background .2s, transform .2s, box-shadow .2s; }
.course-card, .teacher-card, .news-item-small, .f-card, .cert-slide{ will-change: transform; }
.nav-btn:hover{ transform:scale(1.08); }
.nav-btn:active{ transform:scale(.94); }
.swiper-slide{ transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.cert-slide{ transition: transform .35s ease, box-shadow .35s ease; }
.cert-slide:hover{ transform:translateY(-6px); box-shadow:0 24px 48px -16px rgba(15,23,42,.18); }
@media (max-width:768px){
  .slide-img-box{ height:380px !important; }
  .slide-info h4{ font-size:22px !important; }
  .swiper-nav{ gap:10px !important; }
  .nav-btn{ width:48px !important; height:48px !important; }
}
@media (max-width:480px){
  .slide-img-box{ height:300px !important; }
  .kis-admin-fab{ width:44px; height:44px; right:14px; bottom:14px; }
}
/* Smooth focus */
:focus-visible{ outline:2px solid #20ad96; outline-offset:2px; border-radius:6px; }

/* === KIS premium polish v3 (certificate slider + general) === */
.achievements-section{
  background: radial-gradient(1200px 600px at 50% -10%, rgba(32,173,150,.08), transparent 60%), #f6f9fb;
  position: relative;
}
.achievements-section::before{
  content:""; position:absolute; inset:auto 0 0 0; height:160px;
  background:linear-gradient(180deg, transparent, #fff);
  pointer-events:none;
}
.mySwiper{ padding: 40px 0 60px !important; }
.mySwiper .swiper-pagination-bullet{ background: var(--primary, #20ad96); opacity:.35; transition:opacity .3s, transform .3s; }
.mySwiper .swiper-pagination-bullet-active{ opacity:1; transform:scale(1.15); }
.cert-slide .slide-img-box img{ transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.cert-slide:hover .slide-img-box img{ transform: scale(1.04); }
.swiper-slide:not(.swiper-slide-active) .cert-slide{ opacity:.78; transform: scale(.96); }
.swiper-slide-active .cert-slide{ opacity:1; }

/* Premium button micro-interactions */
button, .btn, a.btn, .cta, .primary-btn{
  transition: transform .25s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
}
button:active, .btn:active, .cta:active, .primary-btn:active{ transform: translateY(1px) scale(.98); }

/* Image lazy quality */
img{ image-rendering:auto; }

/* Smooth section reveals */
.section-info, .section-header{ animation: kis-fade-up .8s ease both; }

/* === Contact form polish === */
#contact-form .btn-send{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  background:linear-gradient(135deg,#20ad96,#1a8b78);
  color:#fff;border:none;padding:14px 28px;border-radius:14px;
  font-weight:600;letter-spacing:.2px;cursor:pointer;
  box-shadow:0 10px 24px rgba(32,173,150,.28);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
#contact-form .btn-send:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(32,173,150,.34);filter:brightness(1.04)}
#contact-form .btn-send:active{transform:translateY(0) scale(.98)}
#contact-form input,#contact-form textarea{
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
#contact-form input:focus,#contact-form textarea:focus{
  outline:none;border-color:#20ad96;
  box-shadow:0 0 0 4px rgba(32,173,150,.15);
  background:#fff;
}
#form-status{margin-top:12px;padding:10px 14px;border-radius:10px;display:none;font-weight:500}

/* === Generic micro-interactions === */
.btn-auth,.nav-menu a,.info-item a{transition:all .2s ease}
.btn-auth:hover{transform:translateY(-1px);filter:brightness(1.05)}
.info-item a:hover{color:#20ad96}

/* Smooth image rendering */
img{image-rendering:auto}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* =====================================================
   KIS Public Enhancements v1 — styles
   Floating call FAB, phone highlight, certificate lightbox
   ===================================================== */

/* ---- Floating call icon (sits ABOVE the admin/settings FAB, bottom-right) ---- */
.kis-call-fab{
  position:fixed; right:18px; bottom:78px; left:auto; z-index:99997;
  width:48px; height:48px; padding:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#1f2a44,#0f1730);
  color:#fff !important; text-decoration:none;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 30px rgba(0,0,0,.35), 0 0 0 4px rgba(79,124,255,.10);
  cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, filter .25s ease, opacity .25s ease;
  opacity:.92;
  font-family:'Plus Jakarta Sans', system-ui, sans-serif;
}
.kis-call-fab .kis-call-fab-text{ display:none !important; }
.kis-call-fab svg{ flex-shrink:0; width:20px; height:20px; }
.kis-call-fab:hover{
  opacity:1;
  transform:translateY(-2px) scale(1.08);
  box-shadow:0 14px 36px rgba(0,0,0,.45), 0 0 0 8px rgba(110,160,255,.18);
  filter:brightness(1.08);
}
.kis-call-fab:active{
  transform:translateY(0) scale(.94);
  box-shadow:0 6px 16px rgba(0,0,0,.4), 0 0 0 3px rgba(110,160,255,.25);
}
@media (max-width:560px){
  .kis-call-fab{ right:12px; bottom:68px; width:44px; height:44px; }
  .kis-call-fab svg{ width:18px; height:18px; }
}

/* ---- Phone link prominence ---- */
.kis-phone-link{
  font-weight:800 !important;
  letter-spacing:.3px;
  color:#16a34a !important;
  position:relative;
  white-space:nowrap;
}
.kis-phone-link:hover{ color:#15803d !important; text-decoration:underline; }

/* ---- Certificate lightbox ---- */
.kis-lb{
  position:fixed; inset:0; z-index:100001;
  background:rgba(4,8,18,.92); backdrop-filter:blur(8px);
  display:none; align-items:center; justify-content:center;
  opacity:0; transition:opacity .25s ease;
  padding:24px;
  font-family:'Plus Jakarta Sans', system-ui, sans-serif;
}
.kis-lb.open{ display:flex; opacity:1; }
.kis-lb-stage{
  max-width:min(1200px, 96vw); max-height:88vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px;
}
.kis-lb-stage img{
  max-width:100%; max-height:78vh; object-fit:contain;
  border-radius:14px; box-shadow:0 30px 80px rgba(0,0,0,.6);
  transition:opacity .3s ease, transform .4s cubic-bezier(.2,.7,.2,1);
  background:#0b1220;
}
.kis-lb-cap{
  color:#e7ecf3; font-size:15px; font-weight:600;
  text-align:center; max-width:80vw;
  padding:8px 14px; border-radius:10px;
  background:rgba(255,255,255,.06); backdrop-filter:blur(4px);
}
.kis-lb-x{
  position:absolute; top:18px; right:22px;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.12); color:#fff; font-size:26px;
  border:0; cursor:pointer; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, transform .2s;
}
.kis-lb-x:hover{ background:rgba(255,255,255,.22); transform:rotate(90deg); }
.kis-lb-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:54px; height:54px; border-radius:50%;
  background:rgba(255,255,255,.12); color:#fff; font-size:20px;
  border:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, transform .2s;
}
.kis-lb-arrow:hover{ background:rgba(255,255,255,.25); }
.kis-lb-prev{ left:20px; }
.kis-lb-next{ right:20px; }
.kis-lb-prev:hover{ transform:translateY(-50%) translateX(-3px); }
.kis-lb-next:hover{ transform:translateY(-50%) translateX(3px); }
.kis-lb-count{
  position:absolute; top:22px; left:24px;
  color:#fff; font-size:13px; font-weight:600;
  padding:6px 12px; border-radius:999px;
  background:rgba(255,255,255,.12);
}
@media (max-width:640px){
  .kis-lb-arrow{ width:44px; height:44px; font-size:16px; }
  .kis-lb-prev{ left:10px; }
  .kis-lb-next{ right:10px; }
  .kis-lb-x{ top:10px; right:12px; }
  .kis-lb-count{ top:14px; left:14px; }
}

/* ---- Teacher card upgrade (bigger, premium) ---- */
.teacher-card{
  cursor:pointer;
  position:relative;
  overflow:hidden;
  border-radius:20px !important;
  box-shadow:0 10px 30px rgba(15,23,48,.08) !important;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease !important;
}
.teacher-card::after{
  content:""; position:absolute; inset:auto 0 0 0; height:4px;
  background:linear-gradient(90deg,#16a34a,#22c55e,#16a34a);
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s ease;
}
.teacher-card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 24px 50px rgba(15,23,48,.18) !important;
}
.teacher-card:hover::after{ transform:scaleX(1); }
.teacher-card .teacher-name{
  font-weight:800 !important; letter-spacing:.2px;
}

/* ---- Hide admin FAB unless URL has ?admin=1 or already authed in session ---- */
/* (kept visible by default so school staff can find it; uncomment to hide)
.kis-admin-fab{ display:none; }
html.kis-admin-on .kis-admin-fab{ display:flex; }
*/

/* ---- Slider nav buttons polish ---- */
.achievements-section .swiper-nav .nav-btn,
.achievements-section .nav-btn{
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#fff; color:#16a34a;
  box-shadow:0 8px 24px rgba(15,23,48,.12);
  cursor:pointer; transition:all .25s ease;
  border:1px solid rgba(22,163,74,.15);
}
.achievements-section .nav-btn:hover{
  background:linear-gradient(135deg,#22c55e,#16a34a);
  color:#fff; transform:scale(1.08);
  box-shadow:0 12px 28px rgba(22,163,74,.35);
}
.achievements-section .nav-btn:active{ transform:scale(.96); }

/* ---- Page-wide print/save protection (minor) ---- */
.kis-lb img{ user-select:none; -webkit-user-drag:none; pointer-events:auto; }

/* ============================================================
   KIS Patches v3 — navbar call icon, image cover-fit, polish
   ============================================================ */

/* Navbar phone icon */
.kis-nav-call{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; margin-right:10px;
  border-radius:50%; text-decoration:none;
  background:linear-gradient(135deg,#22c55e,#16a34a);
  color:#fff !important;
  box-shadow:0 8px 20px rgba(22,163,74,.35);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s, filter .2s;
  position:relative; z-index:5;
  animation:kisCallPulse 2.4s ease-in-out infinite;
}
.kis-nav-call:hover{
  transform:translateY(-2px) scale(1.08) rotate(-8deg);
  box-shadow:0 14px 30px rgba(22,163,74,.55);
  filter:brightness(1.08);
}
.kis-nav-call:active{ transform:translateY(0) scale(.95); }
.kis-nav-call svg{ display:block; }
@keyframes kisCallPulse{
  0%,100%{ box-shadow:0 8px 20px rgba(22,163,74,.35), 0 0 0 0 rgba(34,197,94,.55); }
  70%   { box-shadow:0 8px 20px rgba(22,163,74,.35), 0 0 0 12px rgba(34,197,94,0); }
}
@media (max-width:768px){
  .kis-nav-call{ width:40px; height:40px; margin-right:8px; }
}

/* Hard-hide leftover bottom FAB */
.kis-call-fab{ display:none !important; }

/* Image cover-fit — prevents stretching anywhere */
.teachers-grid img,
.teacher-card img,
.news-item-small img,
.news-right-column img,
.cert-slide img,
.slide-img-box img,
.kis-modal img.kis-modal-cover,
.kis-teacher-modal img{
  object-fit:cover !important;
  object-position:center top;
}

/* Smoother card hover */
.teacher-card{
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
}
.teacher-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,.12);
}

/* Lightbox arrows — stronger contrast & touch targets */
.kis-lb-arrow{
  min-width:48px; min-height:48px;
  background:rgba(15,23,42,.55) !important;
  backdrop-filter:blur(6px);
  transition:background .2s, transform .2s;
}
.kis-lb-arrow:hover{
  background:rgba(34,197,94,.85) !important;
  transform:translateY(-50%) scale(1.08);
}

/* Reduce CLS — reserve aspect for cert images */
.cert-slide .slide-img-box{ aspect-ratio:3/4; overflow:hidden; }
.cert-slide .slide-img-box img{ width:100%; height:100%; }

/* Smooth page fade-in */
@keyframes kisFadeUp{
  from{ opacity:0; transform:translateY(8px); }
  to  { opacity:1; transform:none; }
}
.about-section, .teachers-section, .news-section,
.achievements-section, .courses-section, .footer{
  animation:kisFadeUp .6s ease both;
}

/* Better focus visibility for accessibility */
a:focus-visible, button:focus-visible, .kis-nav-call:focus-visible{
  outline:2px solid #22c55e; outline-offset:3px;
}

/* Mobile nav alignment when phone icon is present */
@media (max-width:900px){
  header .kis-nav-call{ margin-left:auto; }
}

/* === v4: hide cert section when empty (admin will populate) === */
.achievements-section{ position:relative; }
.achievements-section .swiper-wrapper:empty{ display:none; }
.achievements-section:has(.swiper-wrapper:empty){
  padding:48px 0 !important;
}
.achievements-section:has(.swiper-wrapper:empty) .swiper-nav,
.achievements-section:has(.swiper-wrapper:empty) .swiper-pagination{ display:none !important; }
.achievements-section:has(.swiper-wrapper:empty)::after{
  content:"Tez orada — sertifikatlar admin tomonidan yuklanadi.";
  display:block; text-align:center;
  color:#94a3b8; font-style:italic; font-size:14px;
  padding:24px;
}

/* === v4: kill navbar phone icon completely === */
.kis-nav-call{ display:none !important; }

html[lang="en"] .achievements-section:has(.swiper-wrapper:empty)::after{
  content:"Coming soon — certificates will be uploaded by the admin.";
}
html[lang="ru"] .achievements-section:has(.swiper-wrapper:empty)::after{
  content:"Скоро — сертификаты будут загружены администратором.";
}
