/* ==========================================================================
   Serenity Flow — Yoga Studio Elementor Kit
   Palette: soft blue / lavender / white (cool & calm)
   ========================================================================== */

:root{
  --yse-blue-100:#eaf2fb;
  --yse-blue-200:#d3e4f6;
  --yse-blue-400:#7fa8d9;
  --yse-blue-600:#4a6fa5;
  --yse-lav-100:#eee9f7;
  --yse-lav-300:#c9b8e8;
  --yse-lav-500:#a68fd1;
  --yse-navy:#2c3e5c;
  --yse-navy-soft:#3f5372;
  --yse-white:#ffffff;
  --yse-off-white:#f7f9fd;
  --yse-text:#3c4a63;
  --yse-radius:20px;
  --yse-radius-sm:12px;
  --yse-shadow:0 20px 45px -20px rgba(74,111,165,.35);
  --yse-transition:.6s cubic-bezier(.22,1,.36,1);
  font-family: 'Poppins', 'Segoe UI', sans-serif;
}

.yse-eyebrow{
  display:inline-block;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--yse-blue-600);
  background:var(--yse-blue-100);
  padding:6px 16px;
  border-radius:100px;
  margin-bottom:14px;
}

.yse-section-title{
  font-size:clamp(28px,4vw,44px);
  color:var(--yse-navy);
  font-weight:600;
  line-height:1.2;
  margin:0 0 16px;
}

.yse-section-head{ text-align:center; max-width:640px; margin:0 auto 50px; }

section[id]{
  padding:100px 8vw;
  position:relative;
  overflow:hidden;
  background:var(--yse-off-white);
}

/* Buttons */
.yse-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:15px 32px;
  border-radius:100px;
  font-weight:600;
  font-size:15px;
  text-decoration:none;
  border:2px solid transparent;
  transition:transform .35s ease, box-shadow .35s ease, background .35s ease, color .35s ease;
  cursor:pointer;
}
.yse-btn--primary{ background:var(--yse-blue-600); color:#fff; box-shadow:0 10px 25px -8px rgba(74,111,165,.6); }
.yse-btn--primary:hover{ transform:translateY(-3px); box-shadow:0 16px 30px -10px rgba(74,111,165,.7); color:#fff; }
.yse-btn--ghost{ background:rgba(255,255,255,.15); color:#fff; border-color:rgba(255,255,255,.6); backdrop-filter:blur(6px); }
.yse-btn--ghost:hover{ background:#fff; color:var(--yse-navy); transform:translateY(-3px); }
.yse-btn--outline{ background:transparent; color:var(--yse-blue-600); border-color:var(--yse-blue-400); }
.yse-btn--outline:hover{ background:var(--yse-blue-600); color:#fff; border-color:var(--yse-blue-600); transform:translateY(-3px); }
.yse-btn--pill{ padding:11px 26px; font-size:14px; }
.yse-btn--full{ width:100%; }

/* ===== NAV ===== */
.yse-nav{
  position:fixed; top:0; left:0; right:0; z-index:999;
  padding:18px 6vw;
  transition:background .4s ease, box-shadow .4s ease, padding .4s ease;
}
.yse-nav.is-scrolled{ background:rgba(255,255,255,.92); backdrop-filter:blur(10px); box-shadow:0 8px 30px -15px rgba(44,62,92,.25); padding:12px 6vw; }
.yse-nav__inner{ display:flex; align-items:center; justify-content:space-between; max-width:1400px; margin:0 auto; }
.yse-nav__logo{ font-weight:700; font-size:20px; color:#fff; text-decoration:none; letter-spacing:.02em; transition:color .4s ease; }
.yse-nav.is-scrolled .yse-nav__logo{ color:var(--yse-navy); }
.yse-nav__links{ display:flex; gap:30px; }
.yse-nav__link{ color:rgba(255,255,255,.9); text-decoration:none; font-size:14px; font-weight:500; position:relative; transition:color .4s ease; }
.yse-nav.is-scrolled .yse-nav__link{ color:var(--yse-text); }
.yse-nav__link::after{ content:''; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--yse-blue-500,var(--yse-blue-600)); transition:width .35s ease; }
.yse-nav__link:hover::after, .yse-nav__link.is-active::after{ width:100%; }
.yse-nav__link.is-active{ color:var(--yse-blue-600); }
.yse-nav__toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; }
.yse-nav__toggle span{ width:24px; height:2px; background:#fff; transition:.3s; }
.yse-nav.is-scrolled .yse-nav__toggle span{ background:var(--yse-navy); }

/* ===== HERO ===== */
.yse-hero{
  min-height:100vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; position:relative; overflow:hidden;
  background:linear-gradient(160deg,var(--yse-navy) 0%, var(--yse-navy-soft) 45%, var(--yse-blue-600) 100%);
  padding:120px 6vw 80px;
}
.yse-hero__bg{
  position:absolute; inset:0;
  background:var(--yse-hero-bg) center/cover no-repeat;
  opacity:.22; mix-blend-mode:overlay;
}
.yse-hero__blob{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; }
.yse-hero__blob--1{ width:420px; height:420px; background:var(--yse-lav-500); top:-120px; left:-100px; }
.yse-hero__blob--2{ width:340px; height:340px; background:var(--yse-blue-400); bottom:-100px; right:-80px; }
.yse-hero__content{ position:relative; z-index:2; max-width:780px; }
.yse-hero__eyebrow{ color:var(--yse-lav-300); font-size:14px; letter-spacing:.16em; text-transform:uppercase; font-weight:600; }
.yse-hero__title{ font-size:clamp(38px,6vw,68px); color:#fff; font-weight:700; line-height:1.1; margin:18px 0 20px; }
.yse-hero__subtitle{ color:rgba(255,255,255,.85); font-size:18px; line-height:1.7; max-width:600px; margin:0 auto 36px; }
.yse-hero__actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:60px; }
.yse-hero__stats{ display:flex; gap:50px; justify-content:center; flex-wrap:wrap; }
.yse-hero__stat{ display:flex; flex-direction:column; }
.yse-counter{ font-size:34px; font-weight:700; color:#fff; }
.yse-hero__stat small{ color:rgba(255,255,255,.7); font-size:13px; letter-spacing:.05em; text-transform:uppercase; }
.yse-hero__scroll{ position:absolute; bottom:30px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,.7); }
.yse-hero__scroll span{ width:1px; height:40px; background:rgba(255,255,255,.5); position:relative; overflow:hidden; }
.yse-hero__scroll span::after{ content:''; position:absolute; top:-40px; left:0; width:100%; height:100%; background:#fff; animation:yseScrollLine 2s infinite; }
@keyframes yseScrollLine{ to{ top:40px; } }
.yse-hero__scroll em{ font-style:normal; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }

/* Scroll reveal base */
[data-yse-reveal]{ opacity:0; transform:translateY(36px); transition:opacity .8s var(--yse-transition), transform .8s var(--yse-transition); transition-delay:calc(var(--d,0) * 1ms); }
[data-yse-reveal][data-direction="left"]{ transform:translateX(-50px); }
[data-yse-reveal][data-direction="right"]{ transform:translateX(50px); }
[data-yse-reveal].yse-in-view{ opacity:1; transform:translate(0,0); }

/* ===== ABOUT ===== */
.yse-about{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; background:#fff; }
.yse-about__media{ position:relative; }
.yse-about__img-main{ width:100%; border-radius:var(--yse-radius); box-shadow:var(--yse-shadow); }
.yse-about__img-float{ position:absolute; width:46%; bottom:-40px; right:-40px; border-radius:var(--yse-radius-sm); border:6px solid #fff; box-shadow:0 20px 40px -12px rgba(44,62,92,.3); }
.yse-about__text{ color:var(--yse-text); line-height:1.8; font-size:16px; margin-bottom:30px; }
.yse-about__feature{ display:flex; gap:16px; padding:16px 0; border-top:1px solid var(--yse-blue-100); }
.yse-about__feature:first-child{ border-top:none; }
.yse-about__feature-icon{ flex:0 0 auto; width:42px; height:42px; border-radius:50%; background:var(--yse-lav-100); color:var(--yse-lav-500); display:flex; align-items:center; justify-content:center; font-weight:700; }
.yse-about__feature h4{ margin:0 0 4px; color:var(--yse-navy); font-size:16px; }
.yse-about__feature p{ margin:0; color:var(--yse-text); font-size:14px; line-height:1.6; }

/* ===== SCHEDULE ===== */
.yse-schedule__filters{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:40px; }
.yse-filter-btn{ padding:9px 20px; border-radius:100px; border:1px solid var(--yse-blue-200); background:#fff; color:var(--yse-navy); font-weight:600; font-size:13px; cursor:pointer; transition:.3s; }
.yse-filter-btn:hover{ border-color:var(--yse-blue-400); }
.yse-filter-btn.is-active{ background:var(--yse-blue-600); border-color:var(--yse-blue-600); color:#fff; }
.yse-schedule__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; max-width:1200px; margin:0 auto; }
.yse-schedule__card{ display:flex; align-items:center; gap:18px; background:#fff; border-radius:var(--yse-radius-sm); padding:20px; box-shadow:0 10px 30px -18px rgba(44,62,92,.3); transition:transform .4s ease, box-shadow .4s ease; position:relative; }
.yse-schedule__card:hover{ transform:translateY(-6px); box-shadow:0 20px 35px -18px rgba(44,62,92,.4); }
.yse-schedule__card.yse-hide{ display:none; }
.yse-schedule__time{ display:flex; flex-direction:column; min-width:78px; color:var(--yse-blue-600); }
.yse-schedule__time strong{ font-size:16px; }
.yse-schedule__time span{ font-size:12px; color:var(--yse-text); opacity:.7; }
.yse-schedule__info h4{ margin:0 0 4px; color:var(--yse-navy); font-size:16px; }
.yse-schedule__info p{ margin:0; font-size:13px; color:var(--yse-text); }
.yse-schedule__day-pill{ position:absolute; top:14px; right:14px; font-size:10px; font-weight:700; letter-spacing:.06em; color:var(--yse-lav-500); background:var(--yse-lav-100); padding:4px 8px; border-radius:100px; }

/* ===== INSTRUCTORS ===== */
.yse-instructors{ background:linear-gradient(180deg,#fff, var(--yse-blue-100)); }
.yse-instructors__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:34px; max-width:1200px; margin:0 auto; }
.yse-instructor-card{ text-align:center; }
.yse-instructor-card__photo{ position:relative; border-radius:var(--yse-radius); overflow:hidden; aspect-ratio:3/4; margin-bottom:18px; box-shadow:var(--yse-shadow); }
.yse-instructor-card__photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.yse-instructor-card:hover .yse-instructor-card__photo img{ transform:scale(1.08); }
.yse-instructor-card__overlay{ position:absolute; inset:auto 0 0 0; background:linear-gradient(0deg,rgba(44,62,92,.92),transparent); color:#fff; padding:24px 18px 18px; transform:translateY(100%); transition:transform .45s ease; }
.yse-instructor-card:hover .yse-instructor-card__overlay{ transform:translateY(0); }
.yse-instructor-card__overlay p{ margin:0; font-size:13px; line-height:1.6; }
.yse-instructor-card h4{ margin:0 0 4px; color:var(--yse-navy); }
.yse-instructor-card span{ font-size:13px; color:var(--yse-blue-600); font-weight:600; }

/* ===== PRICING ===== */
.yse-pricing__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:26px; max-width:1100px; margin:0 auto; }
.yse-price-card{ background:#fff; border-radius:var(--yse-radius); padding:40px 30px; text-align:center; box-shadow:0 12px 34px -20px rgba(44,62,92,.3); position:relative; transition:transform .4s ease; border:1px solid var(--yse-blue-100); }
.yse-price-card:hover{ transform:translateY(-8px); }
.yse-price-card--featured{ background:linear-gradient(160deg,var(--yse-navy),var(--yse-blue-600)); color:#fff; transform:scale(1.05); border:none; }
.yse-price-card--featured:hover{ transform:scale(1.05) translateY(-8px); }
.yse-price-card__badge{ position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--yse-lav-500); color:#fff; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:6px 16px; border-radius:100px; }
.yse-price-card h4{ margin:0 0 14px; font-size:19px; color:inherit; }
.yse-price-card__price{ margin-bottom:24px; }
.yse-price-card__price span{ font-size:38px; font-weight:700; }
.yse-price-card__price small{ font-size:13px; opacity:.7; }
.yse-price-card ul{ list-style:none; padding:0; margin:0 0 30px; text-align:left; }
.yse-price-card ul li{ padding:8px 0 8px 26px; position:relative; font-size:14px; border-top:1px solid rgba(0,0,0,.06); }
.yse-price-card--featured ul li{ border-top-color:rgba(255,255,255,.15); }
.yse-price-card ul li:first-child{ border-top:none; }
.yse-price-card ul li::before{ content:'✓'; position:absolute; left:0; color:var(--yse-blue-400); font-weight:700; }
.yse-price-card--featured ul li::before{ color:var(--yse-lav-300); }

/* ===== TESTIMONIALS ===== */
.yse-testimonials{ background:var(--yse-lav-100); }
.yse-testi-slider{ max-width:720px; margin:0 auto; text-align:center; position:relative; }
.yse-testi-track{ position:relative; min-height:190px; }
.yse-testi-slide{ position:absolute; inset:0; opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; pointer-events:none; }
.yse-testi-slide.is-active{ opacity:1; transform:translateY(0); pointer-events:auto; position:relative; }
.yse-testi-quote{ font-size:22px; line-height:1.6; color:var(--yse-navy); font-weight:500; margin-bottom:26px; }
.yse-testi-author{ display:flex; align-items:center; justify-content:center; gap:14px; }
.yse-testi-author img{ width:52px; height:52px; border-radius:50%; object-fit:cover; }
.yse-testi-author div{ text-align:left; }
.yse-testi-author strong{ display:block; color:var(--yse-navy); }
.yse-testi-author span{ font-size:13px; color:var(--yse-text); }
.yse-testi-dots{ display:flex; gap:8px; justify-content:center; margin-top:30px; }
.yse-testi-dot{ width:9px; height:9px; border-radius:50%; background:var(--yse-lav-300); border:none; cursor:pointer; transition:.3s; }
.yse-testi-dot.is-active{ background:var(--yse-blue-600); width:26px; border-radius:6px; }

/* ===== GALLERY ===== */
.yse-gallery__grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:160px; gap:14px; max-width:1200px; margin:0 auto; }
.yse-gallery__item{ position:relative; border:none; padding:0; border-radius:var(--yse-radius-sm); overflow:hidden; cursor:zoom-in; }
.yse-gallery__item--1{ grid-column:span 2; grid-row:span 2; }
.yse-gallery__item--4{ grid-row:span 2; }
.yse-gallery__item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.yse-gallery__item:hover img{ transform:scale(1.1); }
.yse-gallery__overlay{ position:absolute; inset:auto 0 0 0; background:linear-gradient(0deg,rgba(44,62,92,.85),transparent); color:#fff; font-size:13px; padding:14px; opacity:0; transition:opacity .35s ease; text-align:left; }
.yse-gallery__item:hover .yse-gallery__overlay{ opacity:1; }
.yse-lightbox{ position:fixed; inset:0; background:rgba(15,22,38,.92); display:none; align-items:center; justify-content:center; flex-direction:column; z-index:9999; padding:40px; }
.yse-lightbox.is-open{ display:flex; }
.yse-lightbox img{ max-width:90vw; max-height:80vh; border-radius:12px; }
.yse-lightbox p{ color:#fff; margin-top:16px; }
.yse-lightbox__close{ position:absolute; top:24px; right:34px; background:none; border:none; color:#fff; font-size:36px; cursor:pointer; line-height:1; }

/* ===== CONTACT ===== */
.yse-contact{ display:grid; grid-template-columns:1fr 1fr; gap:70px; background:#fff; }
.yse-contact__info p{ color:var(--yse-text); line-height:1.8; margin-bottom:26px; }
.yse-contact__list{ list-style:none; padding:0; margin:0 0 30px; }
.yse-contact__list li{ display:flex; flex-direction:column; padding:14px 0; border-top:1px solid var(--yse-blue-100); }
.yse-contact__list li:first-child{ border-top:none; }
.yse-contact__list strong{ color:var(--yse-navy); font-size:13px; text-transform:uppercase; letter-spacing:.05em; margin-bottom:2px; }
.yse-contact__list span{ color:var(--yse-text); }
.yse-contact__map iframe{ width:100%; height:220px; border:0; border-radius:var(--yse-radius-sm); }
.yse-contact__form{ background:var(--yse-off-white); border-radius:var(--yse-radius); padding:40px; box-shadow:var(--yse-shadow); }
.yse-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.yse-form-field{ position:relative; margin-bottom:20px; }
.yse-form-field input, .yse-form-field textarea{ width:100%; border:1px solid var(--yse-blue-200); background:#fff; border-radius:10px; padding:18px 16px 8px; font-size:14px; color:var(--yse-navy); font-family:inherit; transition:border-color .3s ease; }
.yse-form-field textarea{ resize:vertical; min-height:100px; }
.yse-form-field label{ position:absolute; top:16px; left:16px; color:#9aa8bf; font-size:14px; pointer-events:none; transition:.25s ease; }
.yse-form-field input:focus, .yse-form-field textarea:focus{ outline:none; border-color:var(--yse-blue-400); }
.yse-form-field input:focus + label, .yse-form-field input:not(:placeholder-shown) + label,
.yse-form-field textarea:focus + label, .yse-form-field textarea:not(:placeholder-shown) + label{
  top:6px; font-size:11px; color:var(--yse-blue-600);
}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .yse-about, .yse-contact{ grid-template-columns:1fr; }
  .yse-gallery__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:782px){
  .yse-nav__links{ position:fixed; top:0; right:0; height:100vh; width:78%; max-width:320px; background:#fff; flex-direction:column; padding:100px 30px; gap:22px; transform:translateX(100%); transition:transform .4s ease; box-shadow:-10px 0 40px rgba(0,0,0,.15); }
  .yse-nav__links.is-open{ transform:translateX(0); }
  .yse-nav__link{ color:var(--yse-navy) !important; }
  .yse-nav__toggle{ display:flex; }
  .yse-nav__cta{ display:none; }
  .yse-hero__stats{ gap:26px; }
  .yse-form-row{ grid-template-columns:1fr; }
  section[id]{ padding:80px 6vw; }
}
