/* ═══════════════════════════════════════════════
   ГАРМОНИЯ v2 — стиль «Лаундж» (из Figma)
   Тёплый · Добрый · Энергичный · Молодой
   ═══════════════════════════════════════════════ */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --pink:#F0788C;
  --yellow:#FFDD9E;
  --yellow-dark:#FFD689;
  --blue:#A3C4E9;
  --text:#394047;
  --text-light:#5a6872;
  --white:#fff;
  --bg:#FEFCF9;
  --f:'Istok Web',sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
}

html{scroll-behavior:smooth}
body{font-family:var(--f);color:var(--text);background:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}

/* ═══════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════ */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:72px;padding:0 clamp(16px,4vw,48px);
  display:flex;align-items:center;justify-content:space-between;
  background:transparent;
  transition:background .4s,box-shadow .4s
}
.hdr.solid{
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 2px 20px rgba(57,64,71,.06)
}

.hdr__logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.hdr__logo img{height:42px}
.hdr__logo strong{font-size:19px;display:block;line-height:1}
.hdr__logo span{font-size:12px;opacity:.6;display:block}

.hdr__nav{display:flex;gap:2px}
.hdr__nav-item>a{
  padding:7px 14px;font-size:16px;color:var(--text);text-decoration:none;
  border-radius:10px;transition:.2s;display:flex;align-items:center;gap:4px
}
.hdr__nav-item>a:hover{background:rgba(240,120,140,.08);color:var(--pink)}
.hdr__nav-item i{font-style:normal;font-size:8px;opacity:.5}
.hdr__nav-item--dd{position:relative}
.hdr__nav-item--dd:hover .hdr__dd{opacity:1;visibility:visible;transform:translateY(0)}
.hdr__dd{
  position:absolute;top:calc(100% + 8px);left:-10px;min-width:240px;padding:8px 0;
  background:var(--white);border-radius:14px;box-shadow:0 16px 48px rgba(57,64,71,.12);
  opacity:0;visibility:hidden;transform:translateY(10px);transition:.25s;z-index:200
}
.hdr__dd a{display:block;padding:10px 20px;font-size:15px;color:var(--text);text-decoration:none;transition:.15s}
.hdr__dd a:hover{color:var(--pink);background:rgba(240,120,140,.06)}

.hdr__right{display:flex;align-items:center;gap:18px}
.hdr__phone{font-size:15px;font-weight:700;color:var(--text);text-decoration:none;line-height:1.2;display:flex;flex-direction:column;align-items:flex-end}
.hdr__phone small{font-size:12px;font-weight:400;opacity:.6}
.hdr__cta{
  padding:10px 24px;border-radius:50px;font-family:var(--f);font-size:13px;font-weight:700;
  color:var(--white);background:var(--pink);border:none;cursor:pointer;text-decoration:none;
  transition:.3s var(--ease)
}
.hdr__cta:hover{transform:translateY(-2px)}

.hdr__burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;z-index:101}
.hdr__burger span{display:block;width:24px;height:2px;border-radius:2px;background:var(--text);transition:.3s}

/* ═══════════════════════════════════════════════
   MOBILE MENU
   ═══════════════════════════════════════════════ */
.mob{
  position:fixed;inset:0;z-index:999;background:var(--white);
  transform:translateX(100%);transition:transform .4s var(--ease);
  display:flex;flex-direction:column;padding:20px
}
.mob.open{transform:translateX(0)}
.mob__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}
.mob__close{width:40px;height:40px;border:none;background:none;font-size:28px;cursor:pointer;color:var(--text)}
.mob__nav{display:flex;flex-direction:column;gap:4px;flex:1}
.mob__nav>a,.mob__toggle{
  display:block;padding:14px 0;font-size:18px;color:var(--text);text-decoration:none;
  border-bottom:1px solid rgba(57,64,71,.08);background:none;border-top:none;border-left:none;border-right:none;
  text-align:left;cursor:pointer;font-family:var(--f);width:100%
}
.mob__toggle i{font-style:normal;font-size:10px;opacity:.5;transition:transform .3s}
.mob__group.open .mob__toggle i{transform:rotate(180deg)}
.mob__sub{display:none;padding:8px 0 8px 16px}
.mob__group.open .mob__sub{display:block}
.mob__sub a{display:block;padding:10px 0;font-size:15px;color:var(--text-light);text-decoration:none}
.mob__bottom{margin-top:auto;padding-top:24px;border-top:1px solid rgba(57,64,71,.08)}
.mob__phone{display:block;font-size:18px;font-weight:700;color:var(--text);text-decoration:none;margin-bottom:16px}
.mob__phone small{display:block;font-size:12px;font-weight:400;opacity:.6;margin-top:2px}
.mob__cta{
  display:block;text-align:center;padding:16px;border-radius:50px;
  background:var(--pink);color:var(--white);font-weight:700;font-size:15px;text-decoration:none
}

/* ═══════════════════════════════════════════════
   HERO SLIDER
   ═══════════════════════════════════════════════ */
.hero{
  position:relative;
  height:100vh;
  min-height:700px;
  padding-top:72px;
  overflow:hidden;
  background:var(--white)
}

.hero__slide{
  position:absolute;inset:0;
  padding-top:72px;
  opacity:0;visibility:hidden;
  z-index:1;
  overflow:hidden
}
.hero__slide--active{
  opacity:1;visibility:visible;
  z-index:2
}

/* Жёлтая подложка — во весь слайд с отступами как в v1 */
.hero__bg{
  position:absolute;
  top:calc(72px + 14px);
  left:clamp(16px,3vw,40px);
  right:clamp(16px,3vw,40px);
  bottom:34px;
  border-radius:20px;
  background:linear-gradient(138deg,var(--yellow) 17%,var(--yellow-dark) 83%)
}
.hero__bg--s1{background:linear-gradient(138deg,#FFE4B5 17%,#FFDAA0 83%)}
.hero__bg--s2{background:linear-gradient(138deg,#E8F0FF 17%,#D4E4F9 83%)}
.hero__bg--s3{background:linear-gradient(138deg,#FFE0E6 17%,#FFD1DA 83%)}

/* Текст слева 50%, фото абсолютом справа */
.hero__inner{
  position:relative;z-index:2;
  display:flex;
  align-items:center;
  height:calc(100vh - 72px);
  min-height:620px;
  padding:0 clamp(28px,4vw,56px);
  padding-left:clamp(48px,7vw,100px);
  width:50%
}

/* Текстовая часть */
.hero__text{
  position:relative;
  padding-right:24px;
  width:100%
}

.hero__mark{
  width:80px;height:80px;
  margin-bottom:24px;
  object-fit:contain
}

.hero__badge{
  display:inline-block;
  padding:8px 20px;
  border-radius:50px;
  background:rgba(255,255,255,.6);
  font-size:14px;font-weight:700;
  color:var(--text);
  margin-bottom:20px
}

.hero__title{
  font-family:var(--f);
  font-size:clamp(28px,3.6vw,52px);
  font-weight:700;
  line-height:1.17;
  color:var(--text);
  margin-bottom:20px;
  text-transform:uppercase
}

.hero__sub{
  font-size:17px;
  line-height:1.4;
  color:var(--text);
  margin-bottom:32px
}

.hero__list{
  list-style:none;
  margin-bottom:32px
}
.hero__list li{
  position:relative;
  padding-left:18px;
  font-size:17px;
  line-height:1.4;
  color:var(--text);
  margin-bottom:8px
}
.hero__list li::before{
  content:'';
  position:absolute;left:0;
  top:calc(0.7em - 4px);
  width:8px;height:8px;
  background:var(--pink);
  border-radius:50%
}

.hero__btn{
  display:inline-block;
  padding:16px 36px;
  border-radius:50px;
  background:var(--pink);
  color:var(--white);
  font-size:14px;font-weight:700;
  text-decoration:none;
  transition:.3s var(--ease);
}
.hero__btn:hover{
  transform:translateY(-2px)
}

/* Волна — под текстом */
.hero__deco--wave{
  display:block;
  width:180px;height:auto;
  margin-top:28px;
  opacity:.45
}

/* Фото — правая половина подложки, на всю высоту */
.hero__photo{
  position:absolute;
  top:calc(72px + 14px);
  right:clamp(16px,3vw,40px);
  bottom:34px;
  width:calc(50% - clamp(16px,3vw,40px));
  z-index:3;
  overflow:hidden;
  border-radius:0 20px 20px 0
}
.hero__photo>img:first-child{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:0
}

/* Декоративные элементы — фиксированные размеры, object-fit */
.hero__deco{
  position:absolute;
  pointer-events:none;
  z-index:5
}
.hero__deco img,
img.hero__deco{
  object-fit:contain
}

.hero__deco--sparkle1{width:55px;height:58px;top:5px;right:25%}
.hero__deco--sparkle2{width:42px;height:44px;top:60px;right:8px}
.hero__deco--sparkle3{width:26px;height:28px;top:30px;right:12%}
.hero__deco--heart{width:30px;height:30px;top:22%;right:8px}
.hero__deco--star{width:38px;height:43px;bottom:15%;left:8px;transform:rotate(29deg)}

.hero__deco--flower{
  position:absolute;
  width:80px;height:80px;
  bottom:10%;right:8px
}
.flower-outer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.flower-inner{position:absolute;top:22%;left:22%;width:56%;height:56%;object-fit:contain}

/* Стрелки навигации */
.hero__arrows{
  position:absolute;
  bottom:clamp(50px,6vh,80px);
  left:clamp(48px,7vw,100px);
  z-index:10;
  display:flex;gap:10px
}
.hero__arrow{
  width:50px;height:50px;
  border-radius:5px;
  background:var(--pink);
  border:none;cursor:pointer;
  color:var(--white);
  display:flex;align-items:center;justify-content:center;
  transition:.3s var(--ease)
}
.hero__arrow:hover{
  background:#e56a7e;
  transform:translateY(-2px)
}

/* ═══════════════════════════════════════════════
   ABOUT — BENTO GRID
   ═══════════════════════════════════════════════ */
.about{
  padding:100px clamp(16px,3vw,40px);
  background:var(--bg)
}

.bento{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}

/* ── Главная карточка (вся ширина) ── */
.bento__main{
  grid-column:1/-1;
  display:flex;
  border-radius:20px;
  overflow:hidden;
  background:var(--white);
  min-height:420px
}

.bento__main-text{
  flex:1;
  padding:48px 44px;
  display:flex;flex-direction:column;justify-content:center
}

.bento__label{
  display:inline-block;
  font-size:13px;font-weight:700;text-transform:uppercase;
  letter-spacing:2px;
  color:var(--pink);
  margin-bottom:16px
}

.bento__title{
  font-size:clamp(24px,2.8vw,36px);
  font-weight:700;line-height:1.2;
  color:var(--text);
  margin-bottom:20px
}

.bento__desc{
  font-size:15px;line-height:1.7;
  color:var(--text-light)
}

/* Слайдер внутри главной карточки */
.bento__slider{
  flex:0 0 46%;
  position:relative;
  overflow:hidden
}

.bento__slider-track{position:relative;width:100%;height:100%}

.about__pic{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .6s var(--ease)
}
.about__pic--on{opacity:1}

.bento__slider-ui{
  position:absolute;bottom:16px;left:16px;
  display:flex;gap:8px;z-index:5
}
.bento__slider-arrow{
  width:40px;height:40px;
  border-radius:5px;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(8px);
  border:none;cursor:pointer;
  color:var(--text);
  display:flex;align-items:center;justify-content:center;
  transition:.2s
}
.bento__slider-arrow:hover{background:var(--white)}

/* ── Три карточки (средний ряд) ── */
.bento__card{
  padding:32px 28px;
  border-radius:20px;
  transition:transform .3s var(--ease)
}
.bento__card:hover{transform:translateY(-4px)}

.bento__card-ico{
  width:52px;height:52px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:20px
}
.bento__card-ico svg{width:26px;height:26px}

/* Teal — Бережная среда */
.bento__card--teal{background:#32A091;color:var(--white)}
.bento__card--teal .bento__card-ico{background:rgba(255,255,255,.2)}
.bento__card--teal .bento__card-ico svg{stroke:var(--white)}
.bento__card--teal .bento__card-h{color:var(--white)}
.bento__card--teal .bento__card-p{color:rgba(255,255,255,.85)}

/* Pink — Педагоги */
.bento__card--pink{background:var(--pink);color:var(--white)}
.bento__card--pink .bento__card-ico{background:rgba(255,255,255,.2)}
.bento__card--pink .bento__card-ico svg{stroke:var(--white)}
.bento__card--pink .bento__card-h{color:var(--white)}
.bento__card--pink .bento__card-p{color:rgba(255,255,255,.85)}

/* Blue — ФГОС */
.bento__card--blue{background:var(--blue);color:var(--text)}
.bento__card--blue .bento__card-ico{background:rgba(48,105,156,.15)}
.bento__card--blue .bento__card-ico svg{stroke:#30699C}
.bento__card--blue .bento__card-h{color:var(--text)}
.bento__card--blue .bento__card-p{color:var(--text-light)}

.bento__card-h{
  font-size:18px;font-weight:700;
  line-height:1.3;
  margin-bottom:12px
}

.bento__card-p{
  font-size:14px;line-height:1.65
}

/* ── Фактоид ── */
.bento__fact{
  grid-column:1/2;
  background:var(--yellow);
  border-radius:20px;
  padding:36px 32px;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center
}

.bento__fact-num{
  font-size:clamp(48px,5vw,72px);
  font-weight:700;
  line-height:1;
  color:var(--text);
  margin-bottom:8px
}

.bento__fact-text{
  font-size:16px;font-weight:700;
  color:var(--text);
  line-height:1.3
}

/* ═══════════════════════════════════════════════
   МОДАЛКИ
   ═══════════════════════════════════════════════ */
.modal-ov{
  position:fixed;inset:0;z-index:1000;
  background:rgba(57,64,71,.5);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .3s,visibility 0s .3s
}
.modal-ov.open{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}

.modal{
  background:var(--white);border-radius:24px;
  padding:48px 40px;width:90%;max-width:440px;
  position:relative;
  transform:translateY(20px);transition:transform .4s var(--ease)
}
.modal-ov.open .modal{transform:translateY(0)}

.modal__x{
  position:absolute;top:16px;right:16px;
  width:36px;height:36px;border-radius:50%;
  border:none;background:rgba(57,64,71,.06);
  font-size:20px;cursor:pointer;color:var(--text);
  display:flex;align-items:center;justify-content:center;
  transition:.2s
}
.modal__x:hover{background:rgba(57,64,71,.12)}

.modal__h{font-size:24px;font-weight:700;margin-bottom:8px;color:var(--text)}
.modal__p{font-size:14px;color:var(--text-light);margin-bottom:28px;line-height:1.5}

.modal__form input[type="text"],
.modal__form input[type="tel"]{
  width:100%;padding:14px 18px;
  border:2px solid rgba(57,64,71,.1);border-radius:14px;
  font-family:var(--f);font-size:15px;color:var(--text);
  outline:none;transition:border-color .2s;
  margin-bottom:12px
}
.modal__form input:focus{border-color:var(--pink)}

.modal__chk{display:flex;align-items:flex-start;gap:10px;margin-bottom:24px;font-size:12px;color:var(--text-light);line-height:1.5;cursor:pointer}
.modal__chk input{margin-top:3px;flex-shrink:0}
.modal__chk a{color:var(--pink)}

.modal__go{
  width:100%;padding:16px;
  border:none;border-radius:50px;
  background:var(--pink);color:var(--white);
  font-family:var(--f);font-size:15px;font-weight:700;
  cursor:pointer;transition:.3s var(--ease)
}
.modal__go:hover{background:#e56a7e}

/* ═══════════════════════════════════════════════
   SCROLL REVEAL
   ═══════════════════════════════════════════════ */
.rvl{opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rvl.vis{opacity:1;transform:translateY(0)}
.rvl--d1{transition-delay:.15s}
.rvl--d2{transition-delay:.3s}

/* ═══════════════════════════════════════════════
   RESPONSIVE — 1024px
   ═══════════════════════════════════════════════ */
@media(max-width:1024px){
  .hdr__nav{display:none}
  .hdr__phone{display:none}
  .hdr__burger{display:flex}

  .hero__text{padding-right:20px}
  .hero__mark{width:60px;height:60px}
  .hero__deco--wave{width:140px}

  .bento__main{min-height:360px}
  .bento__main-text{padding:36px 32px}
  .bento__slider{flex:0 0 42%}
  .bento__card{padding:28px 24px}
}

/* ═══════════════════════════════════════════════
   RESPONSIVE — 767px
   ═══════════════════════════════════════════════ */
@media(max-width:767px){
  .hdr{height:60px;padding:0 16px}
  .hdr__cta{display:none}

  .hero{min-height:auto;height:auto;padding-top:60px}
  .hero__slide{position:relative;padding-top:0}
  .hero__slide:not(.hero__slide--active){position:absolute;inset:0}
  .hero__bg{top:0;bottom:0;left:12px;right:12px}
  .hero__inner{
    grid-template-columns:1fr;
    height:auto;min-height:auto;
    padding:32px 24px 24px;
    gap:24px
  }
  .hero__text{padding-right:0}
  .hero__photo{height:250px;max-height:none;order:-1}
  .hero__photo>img:first-child{border-radius:16px}
  .hero__title{font-size:26px}
  .hero__sub,.hero__list li{font-size:14px}
  .hero__btn{padding:14px 28px;font-size:13px}
  .hero__mark{width:50px;height:50px;margin-bottom:16px}
  .hero__deco--wave{width:120px;margin-top:16px}

  .hero__arrows{position:relative;bottom:auto;left:auto;padding:0 24px 24px}
  .hero__arrow{width:44px;height:44px}

  .hero__deco--sparkle1{width:40px;height:42px}
  .hero__deco--sparkle2{width:30px;height:32px}
  .hero__deco--flower{width:55px;height:55px}
  .hero__deco--star{width:28px;height:32px}
  .hero__deco--heart{width:20px;height:20px}

  .about{padding:60px 16px}
  .bento{grid-template-columns:1fr;gap:14px}
  .bento__main{flex-direction:column;min-height:auto}
  .bento__main-text{padding:28px 24px}
  .bento__slider{flex:none;height:260px}
  .bento__title{font-size:24px}
  .bento__fact{grid-column:1/-1}
}

/* ═══════════════════════════════════════════════
   RESPONSIVE — 375px
   ═══════════════════════════════════════════════ */
@media(max-width:375px){
  .hero__title{font-size:24px}
  .hero__btn{padding:12px 24px;font-size:12px}
  .hero__photo{max-width:90%}
  .hero__badge{font-size:12px;padding:6px 14px}
}
