:root{
  --bg:#f8f6f3; --brand:#5d7d6c; --text:#333; --shadow:0 10px 24px rgba(0,0,0,.08)
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.6}

/* Визуально скрытый текст для a11y */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;padding:10px 14px;background:#fff;border-radius:10px;z-index:1001}

/* ===== HERO ===== */
header {
  position: relative;
  overflow: hidden;
  height: 100vh;
  min-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  color: #fff;
  background: url('https://yogaby.online/img/yoga.jpg') center/cover no-repeat;
}

header::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.38);
  z-index: 0;
}

/* ===== TOPBAR поверх Hero ===== */
header .topbar {
  position: absolute; /* фиксируем внутри header */
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  padding: 10px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255,255,255,0.2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.3);
}

header .topbar a {
  color: #2f4a3e;
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}

header .topbar nav {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
  max-width: 70%;
}

@media (max-width: 768px) {
  header .topbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  header .topbar nav {
    max-width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  header .topbar nav a {
    font-size: 0.9rem;
  }
}

/* ===== Кнопка и волна ===== */
.btn {
  display: inline-block;
  padding: 12px 26px;
  border-radius: 999px;
  font-weight: 700;
  background: var(--brand);
  color: #fff;
  text-decoration: none;
  transition: .25s ease;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.btn:hover {
  transform: translateY(-2px);
  filter: brightness(.95);
}
.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 120px;
  z-index: 1;
}
.wave path {
  fill: var(--bg);
}

/* ===== СЕКЦИИ ===== */
section{max-width:1100px;margin:64px auto;padding:0 20px}
.center{text-align:center}
h2{font-family:"Cormorant Garamond",serif;color:#3f564a;text-align:center;font-size:clamp(24px,3vw,32px);margin:0 0 20px}

/* ===== ОБО МНЕ ===== */
.about p{text-align:center;max-width:800px;margin:0 auto 40px}
.about-gallery{display:grid;grid-template-areas:"big small" "big medium";grid-template-columns:320px 160px;grid-template-rows:auto auto;gap:40px;justify-content:center;margin-top:40px}
.about-gallery img{width:100%;height:auto;object-fit:cover;border-radius:14px;box-shadow:var(--shadow)}
.about-gallery .big{grid-area:big}
.about-gallery .small{grid-area:small}
.about-gallery .medium{grid-area:medium}
@media (max-width:768px){.about-gallery{grid-template-areas:"big" "small" "medium";grid-template-columns:1fr;gap:24px}}

/* ===== НАПРАВЛЕНИЯ ===== */
.classes-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.class-card{background:#fff;border-radius:14px;padding:20px;text-align:center;box-shadow:var(--shadow)}
.class-card img{width:100%;height:160px;object-fit:cover;border-radius:10px;margin-bottom:12px}
.class-card h3{font-family:"Cormorant Garamond",serif;margin:8px 0 6px}

/* ===== РАСПИСАНИЕ ===== */
.schedule table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.schedule th,.schedule td{padding:14px 16px;text-align:center;border-bottom:1px solid #eee}
.schedule th{background:var(--brand);color:#fff}
.schedule p{text-align:center;margin-bottom:12px;font-size:.95rem;color:#666}

/* ===== ЛЕПЕСТКИ ===== */
.butterfly{display:grid;grid-template-columns:repeat(2,240px);grid-template-rows:repeat(2,240px);gap:20px;justify-content:center;margin:40px auto}
.petal{width:240px;height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:rgba(255,255,255,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4);box-shadow:0 8px 24px rgba(0,0,0,.1)}
.petal h3{font-family:'Cormorant Garamond',serif;font-size:1.3rem;margin:0 0 12px;color:#2f4a3e}
.petal p{font-size:1rem;margin:0;color:#333}
.top-left{border-radius:0 60% 0 60%}
.top-right{border-radius:60% 0 60% 0}
.bottom-left{border-radius:60% 0 60% 0}
.bottom-right{border-radius:0 60% 0 60%}

/* ===== ЦЕНЫ ===== */
.pricing-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:40px}
.price-card{background:#fff;border-radius:16px;padding:28px 22px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;transition:transform .3s ease, box-shadow .3s ease}
.price-card:hover{transform:translateY(-6px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.price-card h3{font-family:"Cormorant Garamond",serif;font-size:1.4rem;margin-bottom:12px;color:#2f4a3e}
.price{font-size:2rem;font-weight:700;margin:10px 0 16px;color:var(--brand)}
.price-card ul{list-style:none;padding:0;margin:0 0 20px}
.price-card ul li{margin:6px 0;color:#555}
.price-card .btn{align-self:center}
.price-card.highlight{border:2px solid var(--brand);background:#fdfdfb}

.currency-buttons{display:flex;justify-content:center;gap:12px;margin-bottom:30px}
.currency-buttons button{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#fff;color:var(--text);border:1px solid #ccc;border-radius:20px;padding:8px 16px;font-size:1rem;cursor:pointer;transition:all .25s ease}
.currency-buttons button:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(93,125,108,.25)}
.currency-buttons button.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.currency-buttons button:hover{filter:brightness(.95)}

/* ===== ОТЗЫВЫ ===== */
.testimonial{display:none;text-align:center;font-style:italic}
.testimonial.active{display:block}

/* ===== ФОРМА ===== */
.contact form{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.contact input,.contact select,.contact button{padding:12px 14px;border-radius:10px;font-size:16px}
.contact select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg fill='%235d7d6c' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 12px center;background-size:16px;padding-right:34px;color:var(--text);border:1px solid #ccc}
.contact select option{color:var(--text);background:#fff}
.contact input,.contact select{border:1px solid #ccc;background:#fff}
.contact button{border:none;background:var(--brand);color:#fff;cursor:pointer}
.contact button:hover{filter:brightness(.95)}
.contact input:focus-visible,.contact select:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(93,125,108,.25)}

/* Flatpickr */
.flatpickr-calendar{font-family:Inter,sans-serif;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.flatpickr-day.disabled,.flatpickr-day.nextMonthDay,.flatpickr-day.prevMonthDay{color:#ccc!important;cursor:not-allowed!important}

/* ===== FOOTER ===== */
footer{text-align:center;padding:28px;background:#3f564a;color:#fff}
footer a{color:#fff}

@media (max-width:640px){.butterfly{grid-template-columns:1fr;grid-template-rows:auto;width:100%}.petal{width:100%;height:auto;border-radius:20px!important;margin:10px 0}}

/* ===== POPUP ===== */
.popup{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .4s ease;z-index:1000}
.popup.active{opacity:1;pointer-events:auto}
.popup[aria-hidden="true"]{opacity:0;pointer-events:none}
.popup-content{min-width:280px;max-width:90%;padding:24px 32px;border-radius:20px;text-align:center;font-size:1.2rem;font-weight:500;color:#2f4a3e;background:rgba(255,255,255,.15);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.35);box-shadow:0 8px 28px rgba(0,0,0,.25),inset 0 0 25px rgba(255,255,255,.08);animation:popup-fade .35s ease}
.popup.success .popup-content{border:2px solid rgba(93,125,108,.6);color:#5d7d6c9c;background:rgba(200,255,200,.18);box-shadow:0 8px 28px rgba(93,125,108,.35),inset 0 0 20px rgba(93,125,108,.15)}
.popup.error .popup-content{border:2px solid rgba(244,67,54,.6);color:#8b1f1f;background:rgba(255,200,200,.18);box-shadow:0 8px 28px rgba(244,67,54,.35),inset 0 0 20px rgba(244,67,54,.15)}
@keyframes popup-fade{from{transform:scale(.85) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}

/* Уважение к пользователю: минимизируем анимации при prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto!important}
  .btn,.price-card,.popup-content{transition:none}
  .popup-content{animation:none}
}

/* ===== FAQ ===== */
.faq { max-width: 900px; margin: 64px auto; padding: 0 20px; }
.faq details {
  background: rgba(255,255,255,.25);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 14px;
  margin: 12px 0;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  overflow: hidden;
}
.faq summary {
  cursor: pointer;
  list-style: none;
  padding: 16px 18px;
  font-weight: 600;
  color: #2f4a3e;
  position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "▾";
  position: absolute;
  right: 16px; top: 50%; transform: translateY(-50%) rotate(0deg);
  transition: transform .25s ease;
}
.faq details[open] summary::after { transform: translateY(-50%) rotate(180deg); }
.faq p { padding: 0 18px 18px; margin: 0; color: #333; }

/* ===== After submit calendar buttons ===== */
.after-submit{margin-top:16px;text-align:center}
.after-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.btn-secondary{background:#2b6cb0;color:#fff}
.btn-secondary:hover{filter:brightness(.95)}

/* ===== Субстраницы (компактная шапка) ===== */
.subpage header {
  min-height: auto;
  padding: 28px 0;
  background: linear-gradient(180deg,#f8f6f3 0%, #fff 100%);
}
.subpage header .wave { display: none; }  /* убираем волну-хиро на внутренних */

/* Общий контейнер и типографика */
.container { max-width: 960px; margin: 0 auto; padding: 0 20px; }
.page-title { text-align: center; margin: 8px 0 4px; font-size: clamp(28px,4vw,40px); }
.lead { text-align: center; color: #4a5c53; margin: 0 auto 18px; max-width: 720px; }

/* Карточки/сеточки – в духе class-card */
.card {
  background: rgba(255,255,255,.25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  padding: 16px 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.grid-2 { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); }
@media (max-width: 768px){ .grid-2 { grid-template-columns: 1fr; } }

/* Чек-лист: красивые чекбоксы */
.checklist { list-style: none; padding: 0; margin: 18px 0; }
.checklist li { margin: 10px 0; }
.checklist input[type="checkbox"] {
  inline-size: 1.1rem; block-size: 1.1rem; margin-right: 10px; vertical-align: -2px;
  accent-color: #5d7d6c;
}

/* Дыхание: таймер-круг */
.breathe-circle {
  width: 240px; height: 240px; border-radius: 50%;
  background: rgba(93,125,108,.10);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; color: #2f4a3e;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  transition: transform .8s ease;
  margin-inline: auto;
}
.breathe-controls { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; }

/* Словарик асан: чипы и карточки */
.chips { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:8px; }
.chip { padding:6px 10px; border-radius:14px; background:#eef3f0; color:#2f4a3e; font-size:.85rem; }

/* Блок после отправки формы – на главной (на всякий) */
.after-submit{margin-top:16px;text-align:center}
.after-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.btn-secondary{background:#2b6cb0;color:#fff}
.btn-secondary:hover{filter:brightness(.95)}

/* ===== TOPBAR ===== */
.topbar {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px;
  background: rgba(255,255,255,0.25);
  backdrop-filter: blur(12px) saturate(160%);
  -webkit-backdrop-filter: blur(12px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.35);
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

.topbar a {
  color: var(--text);
  font-weight: 600;
  text-decoration: none;
  margin-right: 18px;
  white-space: nowrap;
  transition: color .25s ease;
}
.topbar a:hover {
  color: var(--brand);
}

.topbar nav {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Мобильная версия */
@media (max-width: 768px) {
  .topbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 10px 16px;
  }
  .topbar nav {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px;
  }
  .topbar a {
    margin-right: 0;
    font-size: 0.95rem;
  }
}

.site-footer {
  background: rgba(255,255,255,0.2);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255,255,255,0.3);
  padding: 40px 20px 20px;
  color: #2f4a3e;
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(240px,1fr));
  gap: 30px;
  max-width: 1100px;
  margin: 0 auto 20px;
}

.footer-grid h3 {
  font-family: "Cormorant Garamond", serif;
  margin-bottom: 10px;
  font-size: 1.2rem;
}

.footer-grid p, .footer-grid li {
  font-size: 0.95rem;
  line-height: 1.5;
}

.footer-grid ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-grid a {
  color: #2f4a3e;
  text-decoration: none;
  transition: color .2s;
}
.footer-grid a:hover {
  color: #5d7d6c;
}

.footer-link {
  display: inline-block;
  margin-top: 8px;
  font-weight: 600;
}

.footer-bottom {
  text-align: center;
  font-size: 0.9rem;
  border-top: 1px solid rgba(255,255,255,0.3);
  padding-top: 10px;
}

.notice{margin-top:10px;font-size:.95rem;padding:10px 12px;border-radius:10px;display:block}
.notice.ok{background:rgba(46,204,113,.18);border:1px solid rgba(46,204,113,.35);color:#1f6b3b}
.notice.err{background:rgba(231,76,60,.18);border:1px solid rgba(231,76,60,.35);color:#7a2626}
.contact button[disabled]{opacity:.75;cursor:not-allowed}