/* ============================================================
    МАРИЯМ МҰНАЙЛЫ — ДИЗАЙН-СИСТЕМА «CANDY KIDS» v3
   ============================================================ */

/* ---------- 1. Палитра и база ---------- */
:root {
  --coral:#FF5A5F; --coral-dark:#E04348;
  --orange:#FF9F1C; --sun:#FFD23F;
  --lime:#8AC926;  --teal:#17C3B2;
  --sky:#4CC9F0;   --purple:#9B5DE5;
  --pink:#F15BB5;  --ink:#2D3167;
  --cream:#FFF9F0; --muted:#5A6B8A;
  --display:'Lobster', cursive;
  --body:'Nunito', sans-serif;
  --radius:24px;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--body); color:var(--ink);
  background-color:var(--cream);
  background-image:
    radial-gradient(#FFE3C0 1.6px, transparent 1.7px),
    radial-gradient(#D8F3EE 1.6px, transparent 1.7px);
  background-size:52px 52px; background-position:0 0, 26px 26px;
  overflow-x:hidden;
}
img { max-width:100%; }
a { color:inherit; text-decoration:none; }
ul, ol { list-style:none; }
::selection { background:var(--sun); color:var(--ink); }
h1,h2,h3,h4 { font-family:var(--display); line-height:1.15; }

.container { max-width:1160px; margin:0 auto; padding:0 20px; }
.narrow { max-width:840px; }
.section { padding:64px 0; position:relative; }
.center-btn { text-align:center; margin-top:30px; }
.muted { color:var(--muted); }

/* ---------- 2. Небо: облака и шарики ---------- */
.sky-decor span { position:fixed; z-index:0; pointer-events:none; opacity:.5; line-height:1; }
.sky-decor .c1 { font-size:56px; top:14%; left:2%;  animation:cloudDrift 16s ease-in-out infinite; }
.sky-decor .c2 { font-size:40px; top:38%; right:2%; animation:cloudDrift 20s ease-in-out infinite reverse; }
.sky-decor .b1 { font-size:44px; bottom:22%; left:3%;  animation:balloon 9s ease-in-out infinite; }
.sky-decor .b2 { font-size:34px; top:60%; right:4%; animation:balloon 11s ease-in-out infinite 1.5s; }
.sky-decor .st { font-size:26px; top:8%; right:12%; animation:twinkle 3.5s ease-in-out infinite; }
@keyframes cloudDrift { 0%,100%{transform:translateX(0)} 50%{transform:translateX(46px)} }
@keyframes balloon { 0%,100%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-26px) rotate(4deg)} }
@keyframes twinkle { 0%,100%{transform:scale(1);opacity:.5} 50%{transform:scale(1.35);opacity:.9} }

/* ---------- 3. Шапка-«пилюля» ---------- */
.site-header { position:sticky; top:10px; z-index:50; padding:24px 16px; }
.header-pill {
  max-width:1200px; margin:0 auto; background:#fff; border-radius:26px;
  box-shadow:0 14px 44px rgba(45,49,103,.16); padding:10px 24px 8px;
  border:4px solid #fff; outline:3px solid #FFE9C4;
}
.header-top { display:flex; align-items:center; gap:16px; }
.logo { display:flex; align-items:center; gap:10px; font-family:var(--display);
  font-weight:800; font-size:21px; color:var(--ink); white-space:nowrap; }
.logo .logo-sun { font-size:26px; display:inline-block; animation:sunSpin 24s linear infinite; }
.logo em { font-style:normal; color:var(--coral); }
@keyframes sunSpin { to { transform:rotate(360deg); } }

.header-contacts { flex:1; display:flex; align-items:center; justify-content:center; gap:18px; font-size:13.5px; font-weight:700; }
.hc-item { display:inline-flex; align-items:center; gap:6px; color:var(--muted); white-space:nowrap; transition:.2s; }
a.hc-item:hover { color:var(--coral); transform:translateY(-1px); }
.hc-addr { max-width:340px; overflow:hidden; text-overflow:ellipsis; }
.hc-icon { width:32px; height:32px; border-radius:50%; flex:0 0 auto; display:inline-flex;
  align-items:center; justify-content:center; color:#fff; transition:transform .2s; }
.hc-icon:hover { transform:translateY(-3px) rotate(-6deg); }
.hc-icon svg { width:17px; height:17px; }
.hc-wa { background:#25D366; box-shadow:0 4px 0 rgba(37,211,102,.35); }
.hc-insta { background:linear-gradient(45deg,#F9CE34,#EE2A7B,#6228D7); box-shadow:0 4px 0 rgba(238,42,123,.35); }

.lang-btn { background:var(--teal); color:#fff; border-radius:999px; padding:8px 20px;
  font-family:var(--display); font-weight:800; font-size:14px;
  box-shadow:0 4px 0 rgba(23,195,178,.45); transition:.2s; }
.lang-btn:hover { animation:wiggle .45s ease; }

.main-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:2px; padding:6px 0 4px; }
.main-nav a { padding:8px 15px; border-radius:999px; font-weight:800; font-size:14px;
  color:var(--ink); transition:.2s; }
.main-nav a:hover { background:#FFF1D0; transform:translateY(-2px); }
.main-nav a.active { background:linear-gradient(120deg,var(--orange),var(--coral));
  color:#fff; box-shadow:0 4px 0 rgba(224,67,72,.35); }

.burger { display:none; background:none; border:0; cursor:pointer; margin-left:auto;
  flex-direction:column; gap:5px; padding:6px; }
.burger span { width:26px; height:3.5px; border-radius:3px; background:var(--ink); transition:.25s; }
.burger.open span:nth-child(1) { transform:translateY(8.5px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity:0; }
.burger.open span:nth-child(3) { transform:translateY(-8.5px) rotate(-45deg); }

/* ---------- 4. Радужная бегущая строка ---------- */
.ticker { overflow:hidden; margin-top:14px;
  background:linear-gradient(90deg,var(--coral),var(--orange),var(--sun),var(--lime),var(--teal),var(--sky),var(--purple),var(--pink),var(--coral));
  background-size:300% 100%; animation:gradientMove 14s linear infinite;
  color:#fff; font-family:var(--display); font-weight:800; font-size:15px;
  box-shadow:0 6px 18px rgba(45,49,103,.15); }
.ticker-track { display:flex; width:max-content; white-space:nowrap;
  padding:9px 0; animation:marquee 32s linear infinite; }
.ticker-track span { padding:0 26px; }
@keyframes marquee { to { transform:translateX(-50%); } }
@keyframes gradientMove { to { background-position:300% 0; } }

/* ---------- 5. Кнопки ---------- */
.btn { display:inline-block; background:linear-gradient(120deg,var(--orange),var(--coral));
  color:#fff; border:0; padding:14px 30px; border-radius:999px; cursor:pointer;
  font-family:var(--display); font-weight:800; font-size:16px;
  box-shadow:0 6px 0 var(--coral-dark); transition:transform .15s, box-shadow .15s; }
.btn:hover { transform:translateY(2px); box-shadow:0 4px 0 var(--coral-dark); animation:wiggle .45s ease; }
.btn:active { transform:translateY(6px); box-shadow:0 0 0 var(--coral-dark); }
.btn-ghost { background:#fff; color:var(--teal); box-shadow:0 6px 0 rgba(23,195,178,.35); }
.btn-ghost:hover { box-shadow:0 4px 0 rgba(23,195,178,.35); }
.btn.small { padding:9px 20px; font-size:14px; }
@keyframes wiggle { 0%,100%{rotate:0deg} 25%{rotate:-2.5deg} 75%{rotate:2.5deg} }

/* Конфетти */
.confetti { position:fixed; z-index:999; width:10px; height:10px; border-radius:3px;
  pointer-events:none; animation:confettiFly .9s ease-out forwards; }
@keyframes confettiFly { to { transform:translate(var(--dx),var(--dy)) rotate(var(--r)); opacity:0; } }

/* ---------- 6. Заголовки секций ---------- */
.section-title { text-align:center; font-size:clamp(26px,3.4vw,38px); margin-bottom:34px; position:relative; }
.section-title::after { content:''; display:block; width:120px; height:9px; margin:12px auto 0;
  border-radius:99px;
  background:linear-gradient(90deg,var(--coral),var(--sun),var(--lime),var(--teal),var(--sky),var(--pink)); }
.page-head { padding:54px 0 6px; text-align:center; }
.page-head h1 { font-size:clamp(30px,4.6vw,46px); }
.page-head h1::after { content:''; display:block; width:120px; height:9px; margin:12px auto 0;
  border-radius:99px;
  background:linear-gradient(90deg,var(--coral),var(--sun),var(--lime),var(--teal),var(--sky),var(--pink)); }
.page-h1 { font-size:clamp(30px,4.6vw,46px); }
.page-h1::after { content:''; display:block; width:120px; height:9px; margin:12px 0 0;
  border-radius:99px;
  background:linear-gradient(90deg,var(--coral),var(--sun),var(--lime),var(--teal),var(--sky),var(--pink)); }

/* ---------- 7. HERO ---------- */
.hero { position:relative; overflow:hidden; padding:46px 0 76px;
  background:linear-gradient(180deg,#DFF4FF 0%, rgba(255,249,240,0) 75%); }
.hero-inner { display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center;
  position:relative; z-index:1; }
.hero-tagline { display:inline-flex; align-items:center; gap:8px; background:#fff;
  border:3px solid var(--sun); border-radius:999px; padding:8px 18px;
  font-weight:800; font-size:14px; box-shadow:0 4px 0 rgba(255,210,63,.45); margin-bottom:16px; }
.hero h1 { font-size:clamp(40px,6vw,66px); color:var(--ink); margin-bottom:14px; }
.hero-lead { font-size:18px; color:var(--muted); font-weight:600; max-width:460px; margin-bottom:26px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.hero-right { position:relative; }

.hero-arch { position:relative; width:min(480px,100%); aspect-ratio:4/4.4; margin-left:auto;
  border-radius:999px 999px 40px 40px; padding:10px;
  background:conic-gradient(from 200deg, var(--coral),var(--sun),var(--lime),var(--teal),var(--sky),var(--pink),var(--coral));
  box-shadow:0 26px 60px rgba(45,49,103,.20); }
.hero-arch::before { content:''; position:absolute; inset:10px;
  border-radius:990px 990px 30px 30px;
  background:linear-gradient(180deg,#EAF8FF,#E6F9EC); }
.hero-arch.photo img { position:absolute; inset:10px; width:calc(100% - 20px); height:calc(100% - 20px);
  object-fit:cover; border-radius:990px 990px 30px 30px; z-index:1; }
.hero-sun { position:absolute; inset:0; margin:auto; width:130px; height:130px; z-index:1;
  animation:sunSpin 26s linear infinite; }
.float-shape { position:absolute; border-radius:50%; z-index:2; animation:floaty 6s ease-in-out infinite; }
.float-shape.s1 { width:58px; height:58px; background:var(--sun); top:7%; left:11%; }
.float-shape.s2 { width:34px; height:34px; background:var(--coral); top:24%; right:9%; animation-delay:1s; }
.float-shape.s3 { width:26px; height:26px; background:var(--teal); bottom:16%; left:7%; animation-delay:2s; }
@keyframes floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-16px)} }

.hero-decor { position:absolute; pointer-events:none; z-index:3; line-height:1; }
.decor-plane { width:82px; top:-24px; right:-6px; animation:planeFly 6s ease-in-out infinite;
  filter:drop-shadow(0 6px 10px rgba(45,49,103,.2)); }
.decor-cloud { font-size:54px; top:2%; left:-40px; animation:cloudDrift 10s ease-in-out infinite; }
.decor-flower1 { font-size:42px; bottom:-14px; left:-22px; transform-origin:50% 100%; animation:sway 4s ease-in-out infinite; }
.decor-flower2 { font-size:30px; top:38%; right:-30px; transform-origin:50% 100%; animation:sway 5s ease-in-out infinite .8s; }
.decor-star { font-size:26px; bottom:20%; right:-14px; animation:twinkle 3s ease-in-out infinite; }
@keyframes planeFly { 0%,100%{transform:translate(0,0) rotate(-10deg)} 50%{transform:translate(-20px,-16px) rotate(4deg)} }
@keyframes sway { 0%,100%{transform:rotate(-7deg)} 50%{transform:rotate(7deg)} }

/* ---------- 8. Карточки-«наклейки» ---------- */
.news-card, .cert-card, .teacher-card, .album-card, .group-card, .adv-card, .stat {
  background:#fff; border:4px solid #fff; border-radius:var(--radius);
  box-shadow:0 10px 0 rgba(45,49,103,.10);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
  overflow:hidden; position:relative; }
.news-card:hover, .cert-card:hover, .teacher-card:hover,
.album-card:hover, .group-card:hover, .adv-card:hover {
  transform:translateY(-9px) rotate(-1.2deg);
  box-shadow:0 16px 0 rgba(45,49,103,.13); }
.news-card:nth-child(4n+1) { --accent:var(--coral); }
.news-card:nth-child(4n+2) { --accent:var(--teal); }
.news-card:nth-child(4n+3) { --accent:var(--sky); }
.news-card:nth-child(4n+4) { --accent:var(--pink); }
.news-card::after, .group-card::after, .adv-card::after {
  content:''; position:absolute; left:0; right:0; top:0; height:7px;
  background:var(--accent, var(--sun)); }

.news-grid, .albums-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.cert-grid, .groups-grid, .life-grid, .photo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.adv-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.news-card img, .cert-card img, .album-card img { width:100%; object-fit:cover; display:block; }
.news-card img, .album-card img { aspect-ratio:16/10; }
.cert-card img { aspect-ratio:3/4; }
.news-card h3, .album-card h3, .cert-title { font-size:17px; padding:14px 16px 4px; }
.news-card p, .news-date, .album-card p { padding:0 16px 14px; color:var(--muted); font-size:14px; font-weight:600; }
.cert-title { text-align:center; font-weight:800; padding-bottom:14px; }
.cert-ph { height:180px; display:flex; align-items:center; justify-content:center; font-size:52px; background:#FFF6DE; }
.lightbox { cursor:zoom-in; display:block; }
.life-grid a, .photo-grid a { display:block; border-radius:18px; overflow:hidden; border:4px solid #fff; box-shadow:0 8px 0 rgba(45,49,103,.10); }
.life-grid img, .photo-grid img { width:100%; aspect-ratio:1; object-fit:cover; display:block; transition:transform .35s; }
.life-grid a:hover img, .photo-grid a:hover img { transform:scale(1.08) rotate(1deg); }

/* Воспитатели */
.teacher-card { text-align:center; padding:26px 18px 22px; }
.teacher-card img { width:150px; height:150px; aspect-ratio:1; border-radius:50%;
  object-fit:cover; margin:0 auto 14px; border:6px solid #fff;
  box-shadow:0 0 0 5px var(--sun), 0 10px 22px rgba(45,49,103,.18); }
.teacher-card h3 { font-size:17px; }
.teacher-card p, .teacher-group { color:var(--teal); font-weight:800; font-size:13.5px; margin-top:4px; }

/* Преимущества */
.adv-card { text-align:center; padding:26px 18px; }
.adv-card > div:first-child, .adv-icon { font-size:44px; margin-bottom:10px; }
.adv-card h3 { font-size:16px; margin-bottom:6px; }
.adv-card p { color:var(--muted); font-size:13.5px; font-weight:600; }

/* ---------- 9. Счётчики ---------- */
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.stat { text-align:center; padding:26px 16px; }
.stat:nth-child(1) { background:#FFF3D0; } .stat:nth-child(1) .stat-num { color:#F5A623; }
.stat:nth-child(2) { background:#DFF7F2; } .stat:nth-child(2) .stat-num { color:var(--teal); }
.stat:nth-child(3) { background:#FFE4F0; } .stat:nth-child(3) .stat-num { color:var(--pink); }
.stat:nth-child(4) { background:#E3F2FF; } .stat:nth-child(4) .stat-num { color:var(--sky); }
.stat-num { font-family:var(--display); font-size:44px; font-weight:800; line-height:1; }
.stat-label { display:block; margin-top:8px; font-weight:800; font-size:14px; color:var(--muted); }

/* ---------- 10. Секция-«облачко» и миссия ---------- */
.section-alt { background:#E4F9F2; }
.section-alt > * { position:relative; }
.section-alt::before, .section-alt::after {
  content:''; position:absolute; left:0; right:0; height:24px; pointer-events:none;
  background-repeat:repeat-x; background-size:26px 24px; }
.section-alt::before { top:-24px; background-image:radial-gradient(circle at 13px 24px,#E4F9F2 13px,transparent 14px); }
.section-alt::after  { bottom:-24px; background-image:radial-gradient(circle at 13px 0,#E4F9F2 13px,transparent 14px); }

.mission-band { margin:44px 0; padding:52px 0; color:#fff; text-shadow:0 2px 0 rgba(0,0,0,.12);
  background:linear-gradient(90deg,var(--coral),var(--orange),var(--sun),var(--lime),var(--teal),var(--sky),var(--purple),var(--pink),var(--coral));
  background-size:300% 100%; animation:gradientMove 12s linear infinite; }
.mission-band blockquote { max-width:860px; margin:0 auto; text-align:center; padding:0 20px;
  font-family:var(--display); font-weight:800; font-size:clamp(19px,2.6vw,27px); line-height:1.5; }

/* ---------- 11. Группы / О саде ---------- */
.about-hero { padding:50px 0 10px; }
.about-hero-inner { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.about-hero .hero-arch { width:min(420px,100%); }
.about-text { font-size:17px; font-weight:600; color:var(--muted); line-height:1.75; margin-top:18px; }
.group-card { text-align:center; padding:26px 18px; }
.group-emoji { font-size:44px; margin-bottom:8px; display:block; }
.group-card h3 { font-size:18px; }
.group-age { display:inline-block; background:#DFF7F2; color:var(--teal); border-radius:999px;
  padding:4px 14px; font-size:13px; font-weight:800; margin:8px 0 10px; }
.group-card p { font-size:13.5px; color:var(--muted); font-weight:600; }

/* ---------- 12. Руководство ---------- */
.management { display:grid; grid-template-columns:360px 1fr; gap:44px; align-items:start; }
.director { display:grid; grid-template-columns:320px 1fr; gap:36px; align-items:start; }
.director-photo img, .director-photo .photo-placeholder {
  width:320px; height:320px; border-radius:50%; object-fit:cover; display:block;
  border:8px solid #fff; box-shadow:0 0 0 6px var(--sun), 0 18px 40px rgba(45,49,103,.22); }
.management .director-photo img, .management .director-photo .photo-placeholder { width:340px; height:340px; }
.photo-placeholder { background:#FFF3D0; display:flex; align-items:center; justify-content:center; font-size:80px; }
.director-position { color:var(--coral); font-weight:800; margin:6px 0 16px; }
.mgmt-speech { background:#FFF6DE; border-radius:22px; padding:26px 30px; position:relative;
  font-style:italic; font-weight:600; line-height:1.75; color:#6B5B2E; }
.mgmt-speech::before { content:'❝'; position:absolute; top:-18px; left:18px; font-size:52px; color:var(--sun); }

/* ---------- 13. Документы ---------- */
.docs-wrap { max-width:900px; margin:0 auto; padding:10px 20px 40px; }
.doc-folder-block { margin-bottom:12px; }
summary.doc-folder-row, .doc-folder-row { list-style:none; width:100%; display:flex; align-items:center; gap:14px;
  background:#fff; border:0; border-radius:20px; padding:16px 22px; cursor:pointer;
  font:inherit; text-align:left; box-shadow:0 6px 0 rgba(45,49,103,.10); transition:.2s; }
summary.doc-folder-row::-webkit-details-marker { display:none; }
.doc-folder-row:hover { transform:translateX(5px); box-shadow:0 8px 0 rgba(45,49,103,.13); }
details[open] > summary.doc-folder-row .doc-chevron { transform:rotate(180deg); }
.doc-folder-icon { font-size:26px; }
.doc-folder-name { flex:1; font-weight:800; font-size:15.5px; }
.doc-count { background:linear-gradient(120deg,#FFE9C4,#FFD9D0); color:var(--coral-dark);
  font-size:12.5px; font-weight:800; padding:5px 14px; border-radius:999px; white-space:nowrap; }
.doc-chevron { color:#B9C3D8; transition:transform .25s; }
.doc-folder-body { margin:10px 0 4px 28px; border-left:4px solid #FFE1B8; padding-left:16px; }
.doc-empty { color:#A9B4C8; font-size:13.5px; padding:8px 4px; font-weight:700; }
.doc-row { display:flex; align-items:center; gap:14px; background:#fff; border-radius:18px;
  padding:13px 18px; margin-bottom:10px; box-shadow:0 5px 0 rgba(45,49,103,.08); transition:.2s; }
.doc-row:hover { transform:translateX(5px); }
.doc-icon { font-size:24px; }
.doc-title { flex:1; font-weight:700; font-size:14.5px; }
.doc-date { color:#A9B4C8; font-size:12.5px; font-weight:700; }
.doc-eye { font-size:17px; opacity:.45; transition:.2s; }
.doc-eye:hover { opacity:1; transform:scale(1.2); }
.doc-btn { background:var(--teal); color:#fff; padding:8px 18px; border-radius:999px;
  font-weight:800; font-size:13px; box-shadow:0 4px 0 rgba(23,195,178,.4); transition:.15s; white-space:nowrap; }
.doc-btn:hover { transform:translateY(2px); box-shadow:0 2px 0 rgba(23,195,178,.4); }

/* ---------- 14. Формы фронта ---------- */
.contact-form, .admin-none { max-width:640px; margin:0 auto; }
form label { display:block; font-weight:800; font-size:14px; margin-bottom:14px; }
form input[type=text], form input[type=email], form input[type=tel], form textarea {
  width:100%; margin-top:6px; padding:13px 16px; border:3px solid #FFE1B8; border-radius:16px;
  font:inherit; font-weight:600; background:#fff; transition:.2s; }
form input:focus, form textarea:focus { outline:none; border-color:var(--teal); box-shadow:0 4px 0 rgba(23,195,178,.25); }

/* ---------- 15. Лайтбокс ---------- */
.slb-overlay { position:fixed; inset:0; z-index:200; padding:30px; background:rgba(24,26,58,.9);
  display:none; align-items:center; justify-content:center; }
.slb-overlay.open { display:flex; }
.slb-overlay img { max-width:min(92vw,900px); max-height:84vh; border-radius:18px;
  border:6px solid #fff; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.slb-fig { margin:0; text-align:center; }
.slb-overlay figcaption { color:#E7ECF5; font-size:14px; font-weight:700; margin-top:12px; }
.slb-close { position:absolute; top:18px; right:22px; width:46px; height:46px; border:0; border-radius:50%;
  background:#fff; color:var(--ink); font-size:24px; cursor:pointer; transition:.2s; }
.slb-close:hover { background:var(--coral); color:#fff; transform:rotate(90deg); }
.slb-prev, .slb-next { position:absolute; top:50%; transform:translateY(-50%); width:50px; height:50px;
  border:0; border-radius:50%; background:rgba(255,255,255,.94); color:var(--ink);
  font-size:26px; cursor:pointer; transition:.2s; }
.slb-prev { left:18px; } .slb-next { right:18px; }
.slb-prev:hover, .slb-next:hover { background:var(--sun); transform:translateY(-50%) scale(1.1); }

/* ---------- 16. Плавающие кнопки ---------- */
.wa-float { position:fixed; left:22px; bottom:22px; z-index:60; width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,.45); transition:transform .2s; }
.wa-float svg { width:30px; height:30px; }
.wa-float:hover { transform:translateY(-4px) scale(1.05); }
.wa-float::before { content:''; position:absolute; inset:0; border-radius:50%; background:#25D366;
  opacity:.45; z-index:-1; animation:waPulse 2s ease-out infinite; }
@keyframes waPulse { 0%{transform:scale(1);opacity:.45} 100%{transform:scale(1.65);opacity:0} }

.to-top { position:fixed; right:22px; bottom:22px; z-index:60; width:52px; height:52px; border:0;
  border-radius:50%; background:linear-gradient(120deg,var(--purple),var(--pink)); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(155,93,229,.4);
  opacity:0; visibility:hidden; transform:translateY(16px); transition:.3s; }
.to-top svg { width:22px; height:22px; }
.to-top.show { opacity:1; visibility:visible; transform:none; }
.to-top:hover { transform:translateY(-3px); }

/* ---------- 17. Появление блоков ---------- */
.reveal { opacity:0; transform:translateY(30px) scale(.96); }
.reveal.visible { opacity:1; transform:none;
  transition:transform .8s cubic-bezier(.22,1.5,.36,1), opacity .6s ease; }

/* ---------- 18. Футер ---------- */
.footer { position:relative; background:var(--ink); color:#DDE4F0; margin-top:80px; padding:76px 0 26px; }
.footer-wave { position:absolute; top:-58px; left:0; width:100%; height:60px; display:block; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:34px; }
.footer h4 { color:var(--sun); font-size:17px; margin-bottom:14px; }
.footer a { transition:.2s; }
.footer a:hover { color:var(--sun); }
.footer li { margin-bottom:8px; font-weight:600; font-size:14px; }
.footer-brand { font-family:var(--display); font-size:22px; font-weight:800; color:#fff; margin-bottom:10px; }
.footer-tag { font-size:14px; font-weight:600; color:#9AA8C4; line-height:1.6; }
.footer-social { display:flex; gap:10px; margin-top:14px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:40px; padding-top:18px;
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:13px; font-weight:600; color:#8C9AB8; }

/* ---------- 19. Адаптив ---------- */
@media (max-width: 1100px) { .header-contacts { display:none; } }
@media (max-width: 920px) {
  .burger { display:flex; }
  .main-nav { display:none; position:absolute; top:calc(100% + 6px); left:16px; right:16px;
    background:#fff; border-radius:22px; flex-direction:column; padding:14px;
    box-shadow:0 20px 50px rgba(45,49,103,.25); }
  .main-nav.open { display:flex; }
  .main-nav a { text-align:center; }
  .hero-inner, .about-hero-inner, .management, .director { grid-template-columns:1fr; }
  .hero-left { text-align:center; }
  .hero-lead { margin-left:auto; margin-right:auto; }
  .hero-actions { justify-content:center; }
  .hero-right { width:100%; max-width:420px; margin:0 auto; }
  .hero-arch { margin:0 auto; }
  .decor-cloud { display:none; }
  .news-grid, .albums-grid { grid-template-columns:repeat(2,1fr); }
  .cert-grid, .groups-grid, .life-grid, .photo-grid, .adv-grid, .stats-row { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .director-photo img, .director-photo .photo-placeholder,
  .management .director-photo img { width:250px; height:250px; margin:0 auto; }
}
@media (max-width: 560px) {
  .news-grid, .albums-grid, .cert-grid, .groups-grid, .adv-grid { grid-template-columns:1fr; }
  .life-grid, .photo-grid, .stats-row { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr; }
  .hero h1 { font-size:38px; }
  .hero-actions { flex-direction:column; }
  .hero-actions .btn { width:100%; }
  .wa-float { left:14px; bottom:14px; width:52px; height:52px; }
  .to-top { right:14px; bottom:14px; width:46px; height:46px; }
  .slb-prev { left:8px; } .slb-next { right:8px; }
}

/* ---------- 20. Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition-duration:.2s !important; }
  .reveal { opacity:1; transform:none; }
}

/* ===== Тюнинг под Pacifico ===== */
h1, h2, h3, h4, .logo, .stat-num, .footer-brand,
.btn, .lang-btn, .ticker, .section-title, .page-head h1, .page-h1 {
  font-weight:400;               /* без синтетического жирного */
}
h1, .hero h1 { line-height:1.3; }          /* рукописным нужны воздух */
.section-title, .page-head h1, .page-h1 { line-height:1.35; }
.hero h1 { font-size:clamp(40px,5.6vw,62px); }   /* чуть крупнее */
.section-title { font-size:clamp(26px,3.4vw,36px); }
.logo { font-size:23px; }
.stat-num { font-size:40px; }
.btn { font-size:17px; letter-spacing:.3px; }

/* ===== Богатая левая колонка hero ===== */
.hero-left { position:relative; }
.hero h1, .hero-title { font-size:clamp(44px, 7vw, 82px); line-height:1.25; margin:6px 0 14px; }

/* Маркерное выделение слова */
.hl { position:relative; display:inline-block; }
.hl::after { content:''; position:absolute; left:-4px; right:-4px; bottom:8px; height:16px;
  background:var(--sun); opacity:.55; z-index:-1; border-radius:8px; transform:rotate(-1.5deg); }

/* Лид-пилюля */
.hero-lead { display:inline-block; background:#fff; border:3px solid var(--sun);
  border-radius:999px; padding:10px 20px; font-weight:800; font-size:15px; color:var(--ink);
  box-shadow:0 4px 0 rgba(255,210,63,.4); margin:0 0 18px; }

/* Чипы-фичи */
.hero-chips { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.chip { background:#fff; border:3px solid; border-radius:999px; padding:7px 15px;
  font-weight:800; font-size:13.5px; transition:transform .2s; }
.chip:hover { transform:translateY(-3px) rotate(-2deg); }
.chip-0 { border-color:var(--pink);   color:var(--pink);   box-shadow:0 4px 0 rgba(241,91,181,.3); }
.chip-1 { border-color:var(--teal);   color:var(--teal);   box-shadow:0 4px 0 rgba(23,195,178,.3); }
.chip-2 { border-color:var(--purple); color:var(--purple); box-shadow:0 4px 0 rgba(155,93,229,.3); }

/* Чек-лист с галочками */
.hero-checks { display:grid; gap:9px; margin:0 0 22px; }
.hero-checks li { display:flex; gap:10px; align-items:flex-start;
  font-weight:700; font-size:15px; color:var(--muted); }
.hero-checks li::before { content:'✔'; flex:0 0 auto; width:22px; height:22px; margin-top:1px;
  border-radius:50%; background:var(--lime); color:#fff; font-size:12px;
  display:flex; align-items:center; justify-content:center; }

/* Круглый стикер «лет заботы» */
.hero-sticker { position:absolute; top:-30px; right:-10px; width:116px; height:116px;
  border-radius:50%; border:5px solid #fff; color:#fff;
  background:conic-gradient(var(--coral), var(--sun), var(--coral));
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow:0 12px 26px rgba(45,49,103,.28);
  transform:rotate(10deg); animation:floaty 5s ease-in-out infinite; z-index:2; }
.st-num { font-family:var(--display); font-size:36px; line-height:1; }
.st-txt { font-size:11.5px; font-weight:800; text-align:center; line-height:1.25; margin-top:3px; }

@media (max-width: 920px) {
  .hero-sticker { top:-16px; right:6px; width:96px; height:96px; }
  .st-num { font-size:30px; }
}
@media (max-width: 560px) {
  .hero-sticker { display:none; }
  .hero h1, .hero-title { font-size:40px; }
}

/* ===== Slick: слайдер воспитателей ===== */
.teacher-slider { position:relative; padding:0 54px; }
.teacher-slider .slick-slide { padding:12px 10px; }
.teacher-slider .slick-prev, .teacher-slider .slick-next {
  position:absolute; top:42%; transform:translateY(-50%); z-index:5;
  width:46px; height:46px; border:0; border-radius:50%;
  background:#fff; font-size:0; cursor:pointer;
  box-shadow:0 6px 0 rgba(45,49,103,.12); transition:.2s; }
.teacher-slider .slick-prev { left:0; }
.teacher-slider .slick-next { right:0; }
.teacher-slider .slick-prev::before, .teacher-slider .slick-next::before {
  font-family:var(--body); font-size:24px; line-height:1; color:var(--coral); }
.teacher-slider .slick-prev::before { content:'←'; }
.teacher-slider .slick-next::before { content:'→'; }
.teacher-slider .slick-prev:hover, .teacher-slider .slick-next:hover {
  background:var(--sun); transform:translateY(-50%) scale(1.1); }
.teacher-slider .slick-dots { position:static; display:flex; justify-content:center;
  gap:8px; margin-top:20px; }
.teacher-slider .slick-dots li button {
  width:12px; height:12px; padding:0; border:0; border-radius:50%;
  background:#D8DEE9; font-size:0; cursor:pointer; transition:.25s; }
.teacher-slider .slick-dots li.slick-active button {
  background:var(--coral); width:28px; border-radius:99px; }
  
  /* ===== FAQ: вопрос-ответ ===== */
.faq-list, .faq-wrap { max-width:880px; margin:0 auto; display:grid; gap:14px; }
.faq-item { background:#fff; border:4px solid #fff; border-radius:20px;
  box-shadow:0 8px 0 rgba(45,49,103,.10); overflow:hidden; }
.faq-q, .faq-item summary {
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px;
  background:#fff; border:0; cursor:pointer; padding:18px 22px; text-align:left;
  font-family:var(--display); font-size:16.5px; font-weight:700; color:var(--ink); }
.faq-a { display:none; padding:0 22px 20px; color:var(--muted); font-weight:600; line-height:1.7; }
.faq-item.open .faq-a, .faq-item.active .faq-a, .faq-q.active + .faq-a { display:block; }
.faq-item.open, .faq-item.active { box-shadow:0 10px 0 rgba(255,159,28,.25); }

/* ===== Контакты: две колонки ===== */
.contacts-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:30px; align-items:start; }
.ci-card { background:#fff; border:4px solid #fff; border-radius:26px; padding:28px;
  box-shadow:0 10px 0 rgba(45,49,103,.10); }
.ci-card h3 { font-size:22px; margin-bottom:18px; }
.ci-card ul { display:grid; gap:16px; }
.ci-card li { display:flex; gap:12px; font-size:14.5px; font-weight:600; color:var(--muted); line-height:1.5; }
.ci-card li b { color:var(--ink); }
.ci-card li a:hover { color:var(--coral); }
.ci-ico { flex:0 0 auto; width:44px; height:44px; border-radius:14px;
  display:flex; align-items:center; justify-content:center; font-size:20px; }
.ci-coral { background:#FFE3DC; } .ci-teal { background:#DFF7F2; }
.ci-sky   { background:#E3F2FF; } .ci-purple { background:#EFE6FF; }
.ci-social { display:flex; gap:12px; margin-top:22px; padding-top:20px;
  border-top:3px dashed #FFE1B8; flex-wrap:wrap; }
.ci-social a { padding:11px 20px; border-radius:999px; color:#fff;
  font-weight:800; font-size:13.5px; box-shadow:0 5px 0 rgba(0,0,0,.18); transition:.2s; }
.ci-social a:hover { transform:translateY(-3px); }
.ci-wa { background:#25D366; }
.ci-insta { background:linear-gradient(45deg,#F9CE34,#EE2A7B,#6228D7); }
.ci-map { margin-top:22px; border-radius:22px; overflow:hidden;
  border:4px solid #fff; box-shadow:0 10px 0 rgba(45,49,103,.10); }
.ci-map iframe { width:100%; height:260px; border:0; display:block; }
.contact-form-card { background:#fff; border:4px solid #fff; border-radius:26px;
  padding:30px; box-shadow:0 10px 0 rgba(45,49,103,.10); }
.contact-form-card h3 { font-size:22px; margin-bottom:18px; }
@media (max-width: 920px) { .contacts-grid { grid-template-columns:1fr; } }

/* ===== Воспитатели: яркие карточки v2 ===== */
.teacher-slider .slick-slide { padding:14px 10px 22px; }

.teacher-card {
  text-align:center; padding:28px 18px 24px; border-radius:28px;
  background:linear-gradient(180deg, #fff 55%, var(--tint, #fff));
  border:4px solid #fff; box-shadow:0 12px 0 rgba(45,49,103,.10);
  position:relative; overflow:hidden;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
/* У каждого слайда — свой цвет */
.teacher-slider .slick-slide:nth-child(5n+1) .teacher-card { --tint:#FFE9E2; --ring:var(--coral); }
.teacher-slider .slick-slide:nth-child(5n+2) .teacher-card { --tint:#DFF7F2; --ring:var(--teal); }
.teacher-slider .slick-slide:nth-child(5n+3) .teacher-card { --tint:#E3F2FF; --ring:var(--sky); }
.teacher-slider .slick-slide:nth-child(5n+4) .teacher-card { --tint:#FFE4F0; --ring:var(--pink); }
.teacher-slider .slick-slide:nth-child(5n+5) .teacher-card { --tint:#EFE6FF; --ring:var(--purple); }

.teacher-card:hover { transform:translateY(-10px) rotate(-1deg);
  box-shadow:0 18px 0 rgba(45,49,103,.13); }

/* Фото — ВСЕГДА одинаковый круг 132px */
.teacher-card img {
  width:132px; height:132px; object-fit:cover; display:block;
  margin:0 auto 14px; border-radius:50%;
  border:6px solid #fff;
  box-shadow:0 0 0 5px var(--ring, var(--sun)), 0 12px 24px rgba(45,49,103,.18);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.teacher-card:hover img { transform:scale(1.08) rotate(4deg); }

/* Имя и группа */
.teacher-card h3 { font-size:16.5px; line-height:1.35; margin-bottom:10px; min-height:44px; }
.teacher-card p {
  display:table; margin:0 auto; padding:6px 16px; border-radius:999px;
  background:#fff; color:var(--ring, var(--teal));
  font-weight:800; font-size:12.5px; box-shadow:0 3px 0 rgba(45,49,103,.08);
}

/* Живые уголки карточек */
.teacher-card::before, .teacher-card::after { position:absolute; font-size:22px; opacity:.9; }
.teacher-card::before { content:'⭐'; top:12px; left:14px; animation:twinkle 3s ease-in-out infinite; }
.teacher-card::after  { content:'🎈'; top:10px; right:12px; animation:balloon 6s ease-in-out infinite; }

/* Декорации вокруг слайдера */
.teacher-slider { position:relative; }
.teacher-slider::before, .teacher-slider::after {
  position:absolute; font-size:42px; z-index:6; pointer-events:none; }
.teacher-slider::before { content:'🎓'; left:-8px; top:-36px; animation:balloon 7s ease-in-out infinite; }
.teacher-slider::after  { content:'✏️'; right:-6px; bottom:-32px;
  transform-origin:bottom center; animation:sway 5s ease-in-out infinite; }
  
  /* ===== Воспитатели v3: привязка к структуре слайда ===== */
.teacher-slider .slick-slide { padding:14px 10px 22px; }

/* Цвет карточки по номеру слайда */
.teacher-slider .slick-slide:nth-child(5n+1) { --tint:#FFE9E2; --ring:var(--coral); }
.teacher-slider .slick-slide:nth-child(5n+2) { --tint:#DFF7F2; --ring:var(--teal); }
.teacher-slider .slick-slide:nth-child(5n+3) { --tint:#E3F2FF; --ring:var(--sky); }
.teacher-slider .slick-slide:nth-child(5n+4) { --tint:#FFE4F0; --ring:var(--pink); }
.teacher-slider .slick-slide:nth-child(5n+5) { --tint:#EFE6FF; --ring:var(--purple); }

/* Карточка = обёртка внутри слайда (если есть) */
.teacher-slider .slick-slide > div {
  position:relative; overflow:hidden; text-align:center;
  background:linear-gradient(180deg,#fff 55%, var(--tint,#fff));
  border:4px solid #fff; border-radius:28px;
  box-shadow:0 12px 0 rgba(45,49,103,.10);
  padding:26px 16px 22px;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
/* Карточка = сам слайд (если обёртки нет) */
.teacher-slider .slick-slide:not(:has(> div)) {
  position:relative; overflow:hidden; text-align:center;
  background:linear-gradient(180deg,#fff 55%, var(--tint,#fff));
  border:4px solid #fff; border-radius:28px;
  box-shadow:0 12px 0 rgba(45,49,103,.10);
  padding:26px 16px 22px;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.teacher-slider .slick-slide > div:hover,
.teacher-slider .slick-slide:not(:has(> div)):hover {
  transform:translateY(-10px) rotate(-1deg);
  box-shadow:0 18px 0 rgba(45,49,103,.13);
}

/* Живые уголки */
.teacher-slider .slick-slide > div::before,
.teacher-slider .slick-slide:not(:has(> div))::before {
  content:'⭐'; position:absolute; top:12px; left:14px; font-size:22px;
  animation:twinkle 3s ease-in-out infinite; }
.teacher-slider .slick-slide > div::after,
.teacher-slider .slick-slide:not(:has(> div))::after {
  content:'🎈'; position:absolute; top:10px; right:12px; font-size:22px;
  animation:balloon 6s ease-in-out infinite; }

/* Фото — одинаковые круги */
.teacher-slider .slick-slide img {
  width:132px; height:132px; object-fit:cover; display:block;
  margin:0 auto 14px; border-radius:50%;
  border:6px solid #fff;
  box-shadow:0 0 0 5px var(--ring,var(--sun)), 0 12px 24px rgba(45,49,103,.18);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.teacher-slider .slick-slide:hover img { transform:scale(1.08) rotate(4deg); }

/* Имя и группа */
.teacher-slider .slick-slide h3 {
  font-size:16.5px; line-height:1.35; margin:0 0 10px; min-height:44px; }
.teacher-slider .slick-slide p {
  display:table; margin:0 auto; padding:6px 16px; border-radius:999px;
  background:#fff; color:var(--ring,var(--teal));
  font-weight:800; font-size:12.5px; box-shadow:0 3px 0 rgba(45,49,103,.08);
}

/* ===== FAQ v2: две колонки, читаемо, с жизнью ===== */
.faq-list, .faq-wrap {
  max-width:1080px; margin:0 auto; padding-top:26px;
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  align-items:start; position:relative;
}
/* Парящие помощники по углам блока */
.faq-list::before, .faq-wrap::before {
  content:'🤔'; position:absolute; top:-64px; left:-8px; font-size:46px;
  animation:balloon 7s ease-in-out infinite; pointer-events:none; }
.faq-list::after, .faq-wrap::after {
  content:'💬'; position:absolute; top:-58px; right:-4px; font-size:42px;
  animation:balloon 8s ease-in-out infinite 1s; pointer-events:none; }

.faq-item {
  background:#fff; border:4px solid #fff; border-radius:22px;
  box-shadow:0 8px 0 rgba(45,49,103,.10); overflow:hidden;
  transition:transform .25s, box-shadow .25s;
}
.faq-item:hover { transform:translateY(-5px); box-shadow:0 12px 0 rgba(45,49,103,.13); }
.faq-item.open, .faq-item.active { box-shadow:0 10px 0 rgba(23,195,178,.30); }

/* Вопрос — читабельным шрифтом */
.faq-q, .faq-item summary {
  width:100%; display:flex; align-items:center; gap:12px;
  background:#fff; border:0; cursor:pointer; padding:16px 18px; text-align:left;
  font-family:var(--body); font-size:15px; font-weight:800;
  color:var(--ink); line-height:1.45;
}
/* Иконка вопроса */
.faq-q::before, .faq-item summary::before {
  content:'?'; flex:0 0 auto; width:34px; height:34px; border-radius:12px;
  background:#E3F2FF; color:var(--sky);
  font-family:var(--display); font-size:19px;
  display:flex; align-items:center; justify-content:center;
  transition:transform .35s, background .3s, color .3s;
}
.faq-item.open .faq-q::before, .faq-item.active .faq-q::before {
  background:var(--sky); color:#fff; transform:rotate(360deg); }
/* Плюс справа */
.faq-q::after, .faq-item summary::after {
  content:'+'; margin-left:auto; flex:0 0 auto; width:28px; height:28px; border-radius:50%;
  background:var(--sun); color:#fff; font-size:18px; font-weight:900;
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s, background .3s;
}
.faq-item.open .faq-q::after, .faq-item.active .faq-q::after {
  transform:rotate(45deg); background:var(--coral); }

/* Ответ */
.faq-a {
  display:none; padding:0 18px 18px 64px; position:relative;
  color:var(--muted); font-weight:600; font-size:14.5px; line-height:1.7;
}
.faq-item.open .faq-a, .faq-item.active .faq-a { display:block; animation:faqIn .4s ease; }
.faq-a::before {
  content:'💡'; position:absolute; left:20px; top:0; font-size:22px;
  animation:twinkle 2.6s ease-in-out infinite;
}
@keyframes faqIn { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }

@media (max-width: 920px) {
  .faq-list, .faq-wrap { grid-template-columns:1fr; padding-top:10px; }
  .faq-list::before, .faq-list::after,
  .faq-wrap::before, .faq-wrap::after { display:none; }
}

/* ===== FAQ v2.1: заголовок по центру, декор по бокам ===== */
.faq-list, .faq-wrap { padding-top:0; }

/* Декорации — по бокам блока, а не над заголовком */
.faq-list::before, .faq-wrap::before { top:6px;  left:-72px; }
.faq-list::after,  .faq-wrap::after  { top:44px; right:-72px; }
@media (max-width: 1240px) {
  .faq-list::before, .faq-list::after,
  .faq-wrap::before, .faq-wrap::after { display:none; }
}

/* ===== FAQ v3: чистая разметка, 2 колонки ===== */
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px;
  align-items:start; position:relative; }
.faq-grid::before { content:'🤔'; position:absolute; top:-6px; left:-72px; font-size:46px;
  animation:balloon 7s ease-in-out infinite; pointer-events:none; }
.faq-grid::after  { content:'💬'; position:absolute; top:36px; right:-72px; font-size:42px;
  animation:balloon 8s ease-in-out infinite 1s; pointer-events:none; }
@media (max-width: 1240px) { .faq-grid::before, .faq-grid::after { display:none; } }

.faq-item { background:#fff; border:4px solid #fff; border-radius:22px;
  box-shadow:0 8px 0 rgba(45,49,103,.10); overflow:hidden;
  transition:transform .25s, box-shadow .25s; }
.faq-item:hover { transform:translateY(-5px); box-shadow:0 12px 0 rgba(45,49,103,.13); }
.faq-item[open] { box-shadow:0 10px 0 rgba(23,195,178,.30); }

.faq-item summary { list-style:none; display:flex; align-items:center; gap:12px;
  cursor:pointer; padding:16px 18px;
  font-family:var(--body); font-size:15px; font-weight:800;
  color:var(--ink); line-height:1.45; }
.faq-item summary::-webkit-details-marker { display:none; }

.faq-ico { flex:0 0 auto; width:34px; height:34px; border-radius:12px;
  background:#E3F2FF; color:var(--sky); font-family:var(--display); font-size:19px;
  display:flex; align-items:center; justify-content:center; transition:.35s; }
.faq-item[open] .faq-ico { background:var(--sky); color:#fff; transform:rotate(360deg); }

.faq-q-text { flex:1; }

.faq-plus { flex:0 0 auto; width:28px; height:28px; border-radius:50%;
  background:var(--sun); position:relative; transition:.3s; }
.faq-plus::before, .faq-plus::after { content:''; position:absolute; inset:0;
  margin:auto; background:#fff; border-radius:2px; }
.faq-plus::before { width:14px; height:3px; }
.faq-plus::after  { width:3px; height:14px; }
.faq-item[open] .faq-plus { background:var(--coral); transform:rotate(45deg); }

.faq-a { position:relative; padding:0 18px 18px 64px;
  color:var(--muted); font-weight:600; font-size:14.5px; line-height:1.7;
  animation:faqIn .4s ease; }
.faq-a::before { content:'💡'; position:absolute; left:20px; top:0; font-size:22px;
  animation:twinkle 2.6s ease-in-out infinite; }

@media (max-width: 920px) { .faq-grid { grid-template-columns:1fr; } }

/* ===== FAQ v3.1: убираем хвосты старых стилей ===== */
.faq-item summary::before,
.faq-item summary::after { content:none; }   /* убирает дубли «?» и «+» */
.faq-item .faq-a { display:block; }          /* ответ виден, когда <details> открыт */

/* ===== Слово заведующей v2 ===== */
.director-card {
  position:relative; display:grid; grid-template-columns:340px 1fr; gap:46px;
  align-items:center; overflow:hidden;
  background:#fff; border:4px solid #fff; border-radius:32px;
  box-shadow:0 14px 0 rgba(45,49,103,.10); padding:46px 50px;
}
.director-card::before {
  content:''; position:absolute; right:-90px; top:-90px; width:280px; height:280px;
  border-radius:50%; background:radial-gradient(circle at 30% 30%, #FFE9C4, transparent 70%);
  animation:blobFloat 12s ease-in-out infinite; pointer-events:none;
}

/* Парящие декорации */
.dc-deco { position:absolute; font-size:30px; pointer-events:none; z-index:2; }
.dc-deco.d1 { top:20px; left:40%; animation:twinkle 3s ease-in-out infinite; }
.dc-deco.d2 { bottom:16px; left:26px; transform-origin:bottom center; animation:sway 5s ease-in-out infinite; }
.dc-deco.d3 { bottom:24px; right:30px; animation:balloon 7s ease-in-out infinite; }

/* Фото: вращающееся радужное кольцо + «дыхание» */
.dc-photo { position:relative; width:300px; height:300px; margin:0 auto; }
.dc-photo::before {
  content:''; position:absolute; inset:-12px; border-radius:50%;
  background:conic-gradient(var(--coral),var(--sun),var(--lime),var(--teal),var(--sky),var(--pink),var(--coral));
  animation:sunSpin 14s linear infinite;
}
.dc-photo::after { content:''; position:absolute; inset:-4px; border-radius:50%; background:#fff; }
.dc-photo img, .dc-photo .photo-placeholder {
  position:relative; z-index:1; width:100%; height:100%; object-fit:cover;
  border-radius:50%; border:6px solid #fff; display:block;
  animation:photoBreath 6s ease-in-out infinite;
}
@keyframes photoBreath { 0%,100%{transform:scale(1)} 50%{transform:scale(1.03)} }

/* Текстовая часть */
.dc-body { position:relative; }
.dc-quote {
  position:absolute; top:-36px; left:-16px; font-size:76px; line-height:1;
  color:var(--sun); font-family:var(--display);
  animation:quotePulse 4s ease-in-out infinite;
}
@keyframes quotePulse { 0%,100%{transform:scale(1) rotate(-4deg)} 50%{transform:scale(1.12) rotate(2deg)} }
.dc-name { font-family:var(--display); font-size:24px; margin:4px 0 8px; }
.dc-position {
  display:inline-block; padding:6px 18px; border-radius:999px; color:#fff;
  background:linear-gradient(120deg,var(--coral),var(--pink));
  font-weight:800; font-size:13px; box-shadow:0 4px 0 rgba(224,67,72,.3);
  margin-bottom:18px;
}
.dc-speech p {
  margin-bottom:12px; color:var(--muted); font-weight:600;
  font-size:15px; line-height:1.75;
  opacity:0; transform:translateY(14px);
  animation:lineIn .7s ease forwards;
}
.dc-speech p:nth-child(1) { animation-delay:.15s; }
.dc-speech p:nth-child(2) { animation-delay:.30s; }
.dc-speech p:nth-child(3) { animation-delay:.45s; }
.dc-speech p:nth-child(4) { animation-delay:.60s; }
.dc-speech p:nth-child(5) { animation-delay:.75s; }
@keyframes lineIn { to { opacity:1; transform:none; } }

/* Подпись с прорисовывающейся линией */
.dc-sign { position:relative; display:inline-block; margin-top:16px;
  font-style:italic; font-weight:700; color:var(--ink); }
.dc-sign b { display:block; font-style:normal; font-family:var(--display);
  font-size:18px; color:var(--coral); }
.dc-sign-line {
  position:absolute; left:0; right:0; bottom:-8px; height:3px; border-radius:3px;
  background:linear-gradient(90deg,var(--coral),var(--sun));
  transform:scaleX(0); transform-origin:left;
  animation:signLine 1.2s ease .9s forwards;
}
@keyframes signLine { to { transform:scaleX(1); } }

@media (max-width: 920px) {
  .director-card { grid-template-columns:1fr; padding:36px 24px; text-align:center; }
  .dc-photo { width:240px; height:240px; }
  .dc-quote { left:6px; top:-28px; }
  .dc-sign-line { display:none; }
}

/* Фото директора — наверх карточки */
.director-card { align-items:start; }
.dc-photo { margin-top:4px; }

/* ===== Слово заведующей: фиксы иконок и абзацев ===== */

/* Колонка текста может сжиматься — текст не вылезает за карточку */
.dc-body { min-width:0; }
.dc-speech p { overflow-wrap:break-word; }

/* Искру ✕ убираем от кавычки: на десктопе — в правый угол */
.dc-deco.d1 { left:auto; right:38px; top:24px; }

@media (max-width: 920px) {
  .director-card { padding:30px 18px; gap:26px; }

  /* Кавычка становится в поток — больше ни на кого не наезжает */
  .dc-quote { position:static; display:block; font-size:52px; line-height:1; margin:0 0 8px; }

  /* Искру на мобильном скрываем совсем */
  .dc-deco.d1 { display:none; }

  /* Абзацы компактнее */
  .dc-name { font-size:20px; }
  .dc-speech p { font-size:14px; margin-bottom:10px; line-height:1.65; }
}


/* ===== Страница воспитателей: сетка карточек ===== */
.teachers-grid, .teacher-grid, .teachers, .team-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:22px;
}
/* Фолбэк: любой контейнер с карточками воспитателей (кроме слайдера) */
main div:has(> .teacher-card):not(.slick-slide):not(.teacher-slider) {
  display:grid; grid-template-columns:repeat(4,1fr); gap:22px;
}
/* Карточки одинаковой высоты */
.teacher-card { height:100%; display:flex; flex-direction:column; align-items:center; }
.teacher-card h3 { min-height:44px; }

@media (max-width: 1024px) {
  .teachers-grid, .teacher-grid, .teachers, .team-grid,
  main div:has(> .teacher-card):not(.slick-slide):not(.teacher-slider) {
    grid-template-columns:repeat(2,1fr);
  }
}
@media (max-width: 560px) {
  .teachers-grid, .teacher-grid, .teachers, .team-grid,
  main div:has(> .teacher-card):not(.slick-slide):not(.teacher-slider) {
    grid-template-columns:1fr;
  }
}

/* ===== Новости: сетка по центру + конфетные карточки ===== */
.news-grid, .news-list, .news,
main div:has(> .news-card) {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  max-width:1160px; margin:0 auto;
}
@media (max-width: 1200px) {
  .news-grid, .news-list, .news,
  main div:has(> .news-card) { padding:0 20px; }
}
@media (max-width: 920px) {
  .news-grid, .news-list, .news,
  main div:has(> .news-card) { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 560px) {
  .news-grid, .news-list, .news,
  main div:has(> .news-card) { grid-template-columns:1fr; }
}

/* Карточка */
.news-card { display:flex; flex-direction:column; overflow:hidden; }
.news-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block;
  transition:transform .4s ease; }
.news-card:hover img { transform:scale(1.07); }
img[src=""], img:not([src]) { display:none; }   /* прячем битые/пустые картинки */

/* Значок-декор в углу */
.news-card::before {
  content:'📰'; position:absolute; top:14px; right:14px; z-index:2;
  width:36px; height:36px; border-radius:50%; background:#fff; font-size:18px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(45,49,103,.22);
  transition:transform .3s;
}
.news-card:hover::before { transform:rotate(-12deg) scale(1.1); }

/* Дата-пилюля */
.news-date, .news-card time {
  display:inline-table; margin:14px 16px 6px; padding:5px 14px; border-radius:999px;
  background:#FFF3D0; color:#B7791F; font-weight:800; font-size:12.5px;
}
/* Заголовок и текст */
.news-card h3 { padding:0 16px; font-size:17px; line-height:1.4; }
.news-card h3 a { transition:color .2s; }
.news-card h3 a:hover { color:var(--coral); }
.news-card p { padding:8px 16px 18px; color:var(--muted);
  font-size:14px; font-weight:600; line-height:1.65; }
  
  /* ===== Новости v2: типографика карточек ===== */

/* Заголовок: жирный, тёмный, максимум 2 строки */
.news-card h1, .news-card h2, .news-card h3, .news-card h4,
.news-card > :nth-last-child(2):not(img):not(.news-date):not(time) {
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  margin:10px 16px 8px; padding:0;
  font-family:var(--body); font-size:16.5px; font-weight:800;
  color:var(--ink); line-height:1.4;
}
.news-card a { color:inherit; transition:color .2s; }
.news-card a:hover { color:var(--coral); }

/* Текст: приглушённый, 3 строки, отделён пунктиром */
.news-card p,
.news-card > :last-child:not(img):not(.news-date):not(time):not(h1):not(h2):not(h3):not(h4) {
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  margin:0 16px 18px; padding:10px 0 0;
  border-top:2px dashed #FFE1B8;
  color:var(--muted); font-size:13.5px; font-weight:600; line-height:1.6;
}

/* ===== Альбом v4: точные классы .photos-grid / .photo-card ===== */
.photos-grid {
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:20px; margin-top:28px;
}
.photo-card { text-align:center; }

/* Полароид-рамка вокруг фото */
.photo-card .lightbox, .photo-card .photo-ph {
  position:relative; display:block; border-radius:20px; overflow:hidden;
  border:4px solid #fff; box-shadow:0 8px 0 rgba(45,49,103,.10);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.photo-card .lightbox:hover {
  transform:translateY(-7px) rotate(-1deg);
  box-shadow:0 14px 0 rgba(45,49,103,.13);
}
.photo-card img {
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  transition:transform .4s ease;
}
.photo-card .lightbox:hover img { transform:scale(1.08); }

/* Лупа при наведении */
.photo-card .lightbox::after {
  content:'🔍'; position:absolute; inset:0; background:rgba(45,49,103,.35);
  display:flex; align-items:center; justify-content:center; font-size:30px;
  opacity:0; transition:opacity .3s;
}
.photo-card .lightbox:hover::after { opacity:1; }

/* Заглушка и подпись */
.photo-ph { aspect-ratio:4/3; background:#FFF6DE;
  display:flex; align-items:center; justify-content:center; font-size:44px; }
.photo-title { margin-top:10px; font-weight:800; font-size:13.5px; color:var(--ink); }

/* Кнопка «назад» — солнечная пилюля */
.back-link {
  display:inline-table; margin-bottom:14px; padding:8px 18px; border-radius:999px;
  background:#fff; border:3px solid var(--sun); font-weight:800; font-size:13.5px;
  color:var(--ink); box-shadow:0 4px 0 rgba(255,210,63,.4); transition:.2s;
}
.back-link:hover { transform:translateY(-2px); color:var(--coral); }

@media (max-width: 920px) { .photos-grid { grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 480px) { .photos-grid { grid-template-columns:1fr; } }

/* Список альбомов: адаптивная сетка */
.albums-grid, main div:has(> .album-card) {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:24px; max-width:1160px; margin:0 auto;
}
@media (max-width: 1200px) {
  .albums-grid, main div:has(> .album-card) { padding:0 20px; }
}

/* Карточка альбома */
.album-card { display:flex; flex-direction:column; overflow:hidden; text-align:center; }
.album-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  transition:transform .4s ease; }
.album-card:hover img { transform:scale(1.07); }
.album-card::before {
  content:'📸'; position:absolute; top:12px; right:12px; z-index:2;
  width:36px; height:36px; border-radius:50%; background:#fff; font-size:17px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(45,49,103,.22); transition:transform .3s;
}
.album-card:hover::before { transform:rotate(-12deg) scale(1.1); }
.album-card h3, .album-card h4,
.album-card > :nth-last-child(2):not(img) {
  margin:14px 16px 8px; padding:0;
  font-family:var(--body); font-size:16.5px; font-weight:800;
  color:var(--ink); line-height:1.35;
}
.album-card p,
.album-card > :last-child:not(img):not(h3):not(h4) {
  display:table; margin:0 auto 16px; padding:5px 16px; border-radius:999px;
  background:#DFF7F2; color:var(--teal); font-weight:800; font-size:12.5px;
}

/* ===== Контакты v-final ===== */
.contacts-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:30px; align-items:start; }

.ci-card { background:#fff; border:4px solid #fff; border-radius:26px; padding:28px;
  box-shadow:0 10px 0 rgba(45,49,103,.10); position:relative; overflow:hidden; }
.ci-card::before { content:''; position:absolute; right:-70px; top:-70px; width:200px; height:200px;
  border-radius:50%; background:radial-gradient(circle at 30% 30%, #FFE9C4, transparent 70%);
  animation:blobFloat 12s ease-in-out infinite; pointer-events:none; }
.ci-card h3 { font-size:22px; margin-bottom:18px; }
.ci-card ul { display:grid; gap:16px; position:relative; }
.ci-card li { display:flex; gap:12px; font-size:14.5px; font-weight:600;
  color:var(--muted); line-height:1.5; }
.ci-card li b { color:var(--ink); }
.ci-card li a:hover { color:var(--coral); }
.ci-ico { flex:0 0 auto; width:44px; height:44px; border-radius:14px;
  display:flex; align-items:center; justify-content:center; font-size:20px;
  transition:transform .25s; }
.ci-card li:hover .ci-ico { transform:scale(1.12) rotate(-6deg); }
.ci-coral { background:#FFE3DC; } .ci-teal { background:#DFF7F2; }
.ci-sky   { background:#E3F2FF; } .ci-purple { background:#EFE6FF; }

/* Соцсети-пилюли */
.ci-social { display:flex; gap:12px; margin-top:22px; padding-top:20px;
  border-top:3px dashed #FFE1B8; flex-wrap:wrap; position:relative; }
.ci-social a { padding:12px 22px; border-radius:999px; color:#fff;
  font-weight:800; font-size:14px; box-shadow:0 5px 0 rgba(0,0,0,.18);
  transition:transform .2s, box-shadow .2s; }
.ci-social a:hover { transform:translateY(-3px); box-shadow:0 8px 0 rgba(0,0,0,.15); }
.ci-wa { background:#25D366; }
.ci-insta { background:linear-gradient(45deg,#F9CE34,#EE2A7B,#6228D7); }

/* Карта */
.ci-map { margin-top:22px; border-radius:22px; overflow:hidden;
  border:4px solid #fff; box-shadow:0 10px 0 rgba(45,49,103,.10); }
.ci-map iframe { width:100%; height:260px; border:0; display:block; }

/* Форма */
.contact-form-card { background:#fff; border:4px solid #fff; border-radius:26px;
  padding:30px; box-shadow:0 10px 0 rgba(45,49,103,.10); }
.contact-form-card h3 { font-size:22px; margin-bottom:18px; }
.contact-form-card label { display:block; font-weight:800; font-size:14px;
  color:var(--ink); margin-bottom:14px; }
.contact-form-card input, .contact-form-card textarea {
  width:100%; margin-top:6px; padding:13px 16px; border:3px solid #FFE1B8;
  border-radius:16px; font:inherit; font-weight:600; background:#FFFDF8; transition:.2s; }
.contact-form-card input:focus, .contact-form-card textarea:focus {
  outline:none; border-color:var(--teal); background:#fff;
  box-shadow:0 4px 0 rgba(23,195,178,.25); }
.contact-form-card .btn { margin-top:6px; }

@media (max-width: 920px) { .contacts-grid { grid-template-columns:1fr; } }

/* ===== Контакты на главной ===== */
.home-contacts-right { display:grid; gap:22px; min-width:0; }
.hc-cta {
  background:#fff; border:4px solid #fff; border-radius:26px; padding:32px 28px;
  box-shadow:0 10px 0 rgba(45,49,103,.10); text-align:center;
  position:relative; overflow:hidden;
}
.hc-cta::before { content:''; position:absolute; left:-70px; bottom:-70px; width:200px; height:200px;
  border-radius:50%; background:radial-gradient(circle at 60% 60%, #DFF7F2, transparent 70%);
  animation:blobFloat 12s ease-in-out infinite reverse; pointer-events:none; }
.hc-cta-emoji { font-size:46px; display:inline-block; animation:balloon 6s ease-in-out infinite; }
.hc-cta h3 { font-size:22px; margin:8px 0 8px; }
.hc-cta p { color:var(--muted); font-weight:600; font-size:14.5px; line-height:1.65;
  max-width:420px; margin:0 auto 18px; }
.hc-cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; position:relative; }
