/* ===================== TOKENS ===================== */
:root{
  --ivory:#FAF7F3;
  --ivory-deep:#F3EEE6;
  --charcoal:#1F1F1F;
  --charcoal-soft:#3A3836;
  --blush:#F2D4D6;
  --blush-deep:#E3A9AE;
  --blush-text:#B96B72;
  --sage:#B7C5AE;
  --sage-deep:#8FA283;
  --sage-text:#5F7052;
  --taupe:#E8E2D8;
  --carb-gold:#B69B72;
  --white:#FFFFFF;
  --line:rgba(31,31,31,0.1);
  --line-soft:rgba(31,31,31,0.06);
  --shadow-sm:0 2px 10px rgba(31,31,31,0.05);
  --shadow-md:0 10px 30px rgba(31,31,31,0.08);
  --shadow-lg:0 20px 60px rgba(31,31,31,0.12);
  --font-display:'Playfair Display', 'Georgia', serif;
  --font-body:'Manrope', -apple-system, sans-serif;
  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:28px;
  --radius-pill:999px;
  --container:1240px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
body{
  font-family:var(--font-body);
  background:var(--ivory);
  color:var(--charcoal);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
[hidden]{display:none !important;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
input,textarea{font-family:inherit;}
ul{list-style:none;}

::selection{background:var(--blush); color:var(--charcoal);}

:focus-visible{
  outline:2px solid var(--sage-deep);
  outline-offset:3px;
  border-radius:4px;
}

.wrap{
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}

.eyebrow{
  font-family:var(--font-body);
  font-weight:700;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--blush-text);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow .spark{color:var(--blush-deep); font-size:11px;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--charcoal);
}
h1{font-size:clamp(38px,5.2vw,58px); line-height:1.12;}
h2{font-size:clamp(28px,3.4vw,38px); line-height:1.22;}
h3{font-size:22px; line-height:1.3;}
p{color:var(--charcoal-soft);}
.lede{font-size:18px; line-height:1.65; color:var(--charcoal-soft); max-width:520px;}

.section{padding:120px 0;}
.section-tight{padding:88px 0;}
@media (max-width:768px){
  .section{padding:76px 0;}
  .section-tight{padding:56px 0;}
  .wrap{padding:0 20px;}
}

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:40px;
  margin-bottom:52px;
}
.section-head h2{max-width:640px;}
.section-head .lede{margin-top:14px; max-width:560px;}
@media (max-width:820px){
  .section-head{flex-direction:column; align-items:flex-start;}
}

.divider{
  display:flex; align-items:center; justify-content:center; gap:14px;
  margin:20px 0;
}
.divider .line{height:1px; width:64px; background:var(--line);}
.divider .spark{color:var(--blush-deep); font-size:13px;}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 30px;
  border-radius:var(--radius-pill);
  font-weight:700;
  font-size:13px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--charcoal);
  color:var(--ivory);
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:var(--shadow-md); background:#000;}
.btn-primary:active{transform:scale(0.96); box-shadow:var(--shadow-sm); background:#000; transition-duration:.1s;}
.btn-blush{
  background:var(--blush);
  color:var(--charcoal);
}
.btn-blush:hover{transform:translateY(-2px); box-shadow:0 14px 30px rgba(227,169,174,0.45); background:var(--blush-deep);}
.btn-blush:active{transform:scale(0.96); box-shadow:0 6px 16px rgba(227,169,174,0.45); background:var(--blush-deep); transition-duration:.1s;}
.btn-pulse{
  position:relative;
  animation:btnPulseScale 2.4s ease-in-out infinite;
}
.btn-pulse::after{
  content:''; position:absolute; inset:0; border-radius:var(--radius-pill);
  box-shadow:0 0 0 0 rgba(227,169,174,0.55);
  animation:btnPulseRing 2.4s ease-out infinite;
  pointer-events:none;
}
.btn-pulse:hover{animation-play-state:paused;}
.btn-pulse:hover::after{animation-play-state:paused; opacity:0;}
.btn-pulse:active{animation-play-state:paused; transform:scale(0.96) !important; transition:transform .1s ease;}
.btn-pulse:active::after{animation-play-state:paused; opacity:0;}
@keyframes btnPulseScale{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.035);}
}
@keyframes btnPulseRing{
  0%{box-shadow:0 0 0 0 rgba(227,169,174,0.5);}
  70%{box-shadow:0 0 0 12px rgba(227,169,174,0);}
  100%{box-shadow:0 0 0 12px rgba(227,169,174,0);}
}
.btn-ghost{
  background:transparent;
  color:var(--charcoal);
  border:1.5px solid var(--line);
  padding:13.5px 28px;
}
.btn-ghost:hover{border-color:var(--blush-deep); box-shadow:0 0 0 4px rgba(227,169,174,0.22);}
.btn-ghost:active{border-color:var(--blush-deep); background:var(--ivory-deep); box-shadow:0 0 0 4px rgba(227,169,174,0.22); transform:scale(0.96); transition-duration:.1s;}
.btn-outline-light{
  background:transparent;
  color:var(--ivory);
  border:1.5px solid rgba(250,247,243,0.4);
  padding:13.5px 28px;
}
.btn-outline-light:hover{background:rgba(250,247,243,0.1); border-color:var(--ivory);}
.btn-outline-light:active{background:rgba(250,247,243,0.2); border-color:var(--ivory); transform:scale(0.96); transition-duration:.1s;}
.btn-sage{
  background:var(--sage-deep);
  color:var(--ivory);
  text-transform:none;
  letter-spacing:0;
  font-size:15px;
}
.btn-sage:hover{transform:translateY(-2px); box-shadow:var(--shadow-md); background:#8B9B84;}
.btn-sage:active{transform:scale(0.96); box-shadow:var(--shadow-sm); background:#8B9B84; transition-duration:.1s;}
.btn-sm{padding:10px 20px; font-size:11.5px;}
.btn svg{width:14px; height:14px;}

/* ===================== HEADER ===================== */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(250,247,243,0.86);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, box-shadow .3s ease;
}
.site-header.is-scrolled{border-bottom-color:var(--line); box-shadow:0 4px 24px rgba(31,31,31,0.04);}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:82px;
}
.logo{display:flex; align-items:center; gap:10px; color:var(--charcoal);}
.logo-mark{display:block; width:32px; height:auto; object-fit:contain; flex-shrink:0;}
.logo-mark-footer{filter:brightness(0) invert(1) opacity(0.92);}
.logo-word{font-family:var(--font-display); font-size:19px; letter-spacing:0.01em;}
.main-nav{display:flex; align-items:center; gap:32px;}
.main-nav a{font-size:14px; font-weight:600; color:var(--charcoal-soft); transition:color .2s ease; position:relative;}
.main-nav a:hover{color:var(--charcoal);}
.main-nav a::after{content:''; position:absolute; left:0; bottom:-6px; width:0; height:1.5px; background:var(--blush-deep); transition:width .25s ease;}
.main-nav a:hover::after{width:100%;}
.nav-close{display:none;}
.nav-mobile-login{display:none;}
.header-actions{display:flex; align-items:center; gap:18px;}
.link-login{font-size:14px; font-weight:700; color:var(--charcoal);}
.link-login:hover{color:var(--blush-text);}
.burger{display:none; color:var(--charcoal);}

@media (max-width:960px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; width:min(320px,80vw); height:100vh;
    background:var(--ivory); flex-direction:column; align-items:flex-start;
    justify-content:flex-start;
    padding:100px 32px 32px; gap:26px; margin:0;
    transform:translateX(100%); transition:transform .35s ease;
    box-shadow:-20px 0 50px rgba(31,31,31,0.08);
  }
  .main-nav.is-open{transform:translateX(0);}
  .nav-close{display:block; position:absolute; top:26px; right:26px; color:var(--charcoal);}
  .main-nav a{font-size:18px;}
  .nav-mobile-login{
    display:block; margin-top:auto; padding-top:22px; width:100%;
    border-top:1px solid var(--line-soft); font-weight:700; font-size:18px; color:var(--charcoal);
  }
  .header-actions .link-login{display:none;}
  .burger{display:block;}
}

/* ===================== HERO (full-bleed, BetterMe-style) ===================== */
.hero-full{
  position:relative; overflow:hidden;
  min-height:88vh; display:flex; align-items:center; justify-content:center;
  color:var(--ivory);
}
.hero-full .hero-visual{position:absolute; inset:0; z-index:0;}
.hero-full .wrap{width:100%;}
.hero-full .hero-slide{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 30%;
  opacity:0; transition:opacity 1.6s ease; z-index:0;
}
.hero-full .hero-slide.is-active{opacity:1; z-index:1;}
.hero-scrim{
  position:absolute; inset:0; z-index:2;
  background:
    radial-gradient(ellipse at center, rgba(20,16,14,0.5) 0%, rgba(20,16,14,0.62) 55%, rgba(20,16,14,0.72) 100%);
}
@media (min-width:768px){
  /* Text now sits in a left-hand safe zone, not centered — switch to an
     asymmetric left-to-right fade so the copy has enough contrast while
     the right side of the video (and whatever's moving there) stays
     legible, per spec. */
  .hero-scrim{
    background:linear-gradient(90deg,
      rgba(30,24,22,0.58) 0%,
      rgba(30,24,22,0.34) 45%,
      rgba(30,24,22,0.12) 100%);
  }
}
.hero-inner{position:relative; z-index:3; padding-top:110px; padding-bottom:110px;}
.hero-copy{
  max-width:580px; margin:0; text-align:left;
  display:flex; flex-direction:column; align-items:flex-start;
}
.hero-copy .eyebrow{color:var(--blush); justify-content:flex-start;}
.hero-copy h1{margin:18px 0 16px; color:var(--ivory); font-size:clamp(32px, 8vw, 44px); line-height:1.1;}
.hero-copy .lede{color:rgba(250,247,243,0.88); max-width:480px; font-size:15.5px;}
.hero-actions{display:flex; align-items:center; gap:18px; margin-top:26px; flex-wrap:wrap; justify-content:flex-start;}

.hero-secondary-link{
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--font-body); font-weight:700; font-size:14px;
  color:var(--ivory); border-bottom:1px solid rgba(250,247,243,0.45);
  padding-bottom:2px; transition:opacity .2s ease, border-color .2s ease;
}
.hero-secondary-link svg{transition:transform .2s ease;}
.hero-secondary-link:hover{opacity:0.8; border-color:rgba(250,247,243,0.8);}
.hero-secondary-link:hover svg{transform:translateX(3px);}

/* Desktop/tablet: widen the safe zone and scale typography up. Alignment
   itself (left, flush with the grid) is now shared with mobile — only the
   size changes between breakpoints. */
@media (min-width:768px){
  .hero-copy{max-width:700px;}
  .hero-copy h1{font-size:clamp(48px, 5.4vw, 72px); line-height:1.06; margin:22px 0 20px;}
  .hero-copy .lede{font-size:17px; max-width:560px;}
  .hero-actions{gap:22px; margin-top:32px;}
}

/* ===================== MARQUEE (Hero → Programs transition strip) ===================== */
.marquee{
  background:var(--ivory-deep); min-height:62px; overflow:hidden;
  display:flex; align-items:center;
}
.marquee-track{display:flex; width:max-content; animation:marqueeScroll 30s linear infinite;}
.marquee-seq{
  display:inline-flex; align-items:center; white-space:nowrap;
  font-family:var(--font-body); font-weight:600; font-size:13.5px; letter-spacing:0.05em;
  text-transform:uppercase; color:var(--charcoal); padding-right:0;
}
.marquee-seq i{
  font-style:normal; color:rgba(31,31,31,0.28); margin:0 20px; font-size:13px;
}
@keyframes marqueeScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none;}
}
@media (max-width:767px){
  .marquee{min-height:50px;}
  .marquee-seq{font-size:13px;}
  .marquee-seq i{margin:0 14px;}
}

@media (max-width:960px){
  .hero-full{min-height:76vh;}
  .hero-inner{padding-top:100px; padding-bottom:100px;}
}
@media (max-width:767px){
  /* ---- Mobile hero: absolute-positioned text block over a light-cropped
     video, per client ТЗ. This replaces the earlier heavy-dark-overlay /
     flex-flow approach entirely: text is now dark-on-light (not white on
     a dark scrim), positioned as one absolute group starting at a fixed
     % down from the top, left-aligned, never centered or stretched to
     fill the screen. ---- */
  .hero-full{min-height:92svh; align-items:stretch;}
  .hero-inner{height:100%; padding:0;}

  /* video crop: keep the woman's face/torso clear on the right, text
     zone is the flatter left portion of the frame */
  .hero-full .hero-slide{object-position:66% center;}

  /* soft, almost-invisible light-side gradient instead of a dark scrim —
     just enough for text contrast, photo stays bright */
  .hero-scrim{
    background:linear-gradient(90deg,
      rgba(248,245,240,0.82) 0%,
      rgba(248,245,240,0.55) 40%,
      rgba(248,245,240,0.08) 68%,
      rgba(248,245,240,0) 100%);
  }

  .hero-copy{
    position:absolute; left:24px; right:24px; top:23svh;
    max-width:330px; width:auto; height:auto;
    display:flex; flex-direction:column; align-items:flex-start; text-align:left;
  }
  .hero-middle{display:flex; flex-direction:column;}

  .hero-copy .eyebrow{
    margin:0 0 28px; color:var(--blush-text);
    font-size:13px; font-weight:600; line-height:1.45; letter-spacing:0.10em;
    max-width:280px;
  }
  .hero-copy .eyebrow svg{color:var(--blush-text) !important;}
  .hero-copy h1{
    font-weight:400; font-size:clamp(38px, 9.7vw, 44px);
    line-height:1.02; letter-spacing:-0.025em;
    color:#222222; margin:0 0 24px; max-width:355px; width:100%;
  }
  .hero-h1-break{display:block;}
  .hero-copy .lede{
    color:rgba(34,34,34,0.82); font-size:17px; font-weight:400;
    line-height:1.5; letter-spacing:-0.01em; max-width:315px;
  }
  .hero-actions{margin-top:28px; gap:16px; flex-direction:column; align-items:flex-start;}
  .hero-actions .btn{
    width:fit-content; min-width:270px; height:60px;
    padding:0 28px; font-size:14px; font-weight:600; letter-spacing:0.04em;
  }
  .hero-actions .btn svg{margin-left:14px;}
  .hero-secondary-link-desktop{display:none;}
}

/* on shorter phones, the fixed top:23% (of a taller container) would push
   content further down in absolute px than intended — pull it back up */
@media (max-width:767px) and (max-height:700px){
  .hero-copy{top:19svh;}
}

@media (max-width:389px){
  .hero-copy{left:20px; right:20px;}
  .hero-copy .eyebrow{font-size:12px;}
  .hero-copy h1{font-size:clamp(36px, 10vw, 39px);}
  .hero-copy .lede{font-size:16px;}
  .hero-actions .btn{height:58px; min-width:255px;}
}
@media (max-width:359px){
  .hero-copy h1{font-size:clamp(34px, 10vw, 36px);}
  .hero-copy .lede{font-size:15px;}
  .hero-actions .btn{width:auto; min-width:0; max-width:100%;}
}

/* ===================== STATES ===================== */
.state-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.state-card{
  text-align:left; background:var(--white); border:1px solid var(--line-soft);
  border-radius:var(--radius-md); padding:30px 26px;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.state-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent;}
.state-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%; background:var(--blush);
  color:var(--charcoal); margin-bottom:18px;
}
.state-card:nth-child(2n) .state-icon{background:var(--sage);}
.state-card:nth-child(3n) .state-icon{background:var(--taupe);}
.state-card h3{margin-bottom:8px; font-size:19px;}
.state-card p{font-size:14px;}
@media (max-width:820px){.state-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.state-grid{grid-template-columns:1fr;}}

/* ===================== LINEUP (photo-style cards, TSS class-types treatment) ===================== */
.lineup-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:20px;
}
.lineup-card{
  position:relative; display:block; aspect-ratio:4/3;
  border-radius:var(--radius-md);
  overflow:hidden; background:var(--taupe);
  box-shadow:var(--shadow-sm);
  transition:transform .3s ease, box-shadow .3s ease;
}
.lineup-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.lineup-card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 22%;
  pointer-events:none;
}
/* this one photo is a low, wide "bird-dog" floor pose (action sits in the
   lower half of the source image) — the shared top-biased crop above would
   cut the pose off entirely, so it needs its own vertical anchor */
.lineup-img-postpartum{object-position:center 66% !important;}
.lineup-img-stress{object-position:center 42% !important;}
.lineup-img-menopause{object-position:center 78% !important;}
.lineup-card-text{position:absolute; left:0; right:0; bottom:0; z-index:1; padding:20px;}
.lineup-card::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,16,14,0.6) 0%, rgba(20,16,14,0.14) 38%, transparent 60%);
  pointer-events:none;
}
.lineup-card-text h3{font-size:17px; font-weight:800; margin:0; color:var(--ivory); text-shadow:0 1px 6px rgba(0,0,0,0.4);}

.lineup-cta{display:flex; justify-content:center; margin-top:28px;}

@media (max-width:640px){
  .lineup-grid{grid-template-columns:repeat(2, 1fr); gap:8px;}
  .lineup-card{aspect-ratio:1/1;}
  .lineup-card-text{padding:12px;}
  .lineup-card-text h3{font-size:13px; line-height:1.2;}
  .lineup-cta{margin-top:18px;}
  .lineup-cta .btn{width:100%;}

  #lineup.section{padding:44px 0;}
  #lineup .section-head.lineup-head{margin-bottom:20px;}
  #lineup .section-head h2{font-size:24px; line-height:1.2;}
  #lineup .section-head .lede{font-size:14px; margin-top:6px;}
}

/* ===================== CLASS TYPES ===================== */
.class-scroller{
  display:flex; gap:18px; overflow-x:auto; padding-bottom:14px;
  scroll-snap-type:x proximity;
}
.class-scroller::-webkit-scrollbar{height:6px;}
.class-scroller::-webkit-scrollbar-thumb{background:var(--line); border-radius:3px;}
.class-card{
  flex:0 0 auto; width:168px; scroll-snap-align:start;
  display:flex; flex-direction:column; align-items:center; gap:14px;
  text-align:center;
}
.class-thumb{
  width:168px; height:168px; border-radius:var(--radius-md);
  background:var(--tint); display:flex; align-items:center; justify-content:center;
  transition:transform .3s ease;
}
.class-card:hover .class-thumb{transform:translateY(-6px);}
.class-thumb svg{width:64px; height:64px; fill:none; stroke:var(--charcoal); stroke-width:2.4;}
.class-card span{font-weight:700; font-size:14px;}

/* ===================== STATS STRIP ===================== */
.stats-strip{background:var(--charcoal); padding:74px 0;}
.stats-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:40px; text-align:center;}
.stat-num{
  display:block; font-family:var(--font-display); font-size:clamp(38px,5vw,52px);
  color:var(--blush); margin-bottom:10px;
}
.stat-label{font-size:14px; color:rgba(250,247,243,0.65); max-width:260px; margin:0 auto; display:block;}
@media (max-width:768px){.stats-grid{grid-template-columns:1fr; gap:36px;}}

/* ===================== RECOGNITION ===================== */
.recognition{background:var(--ivory-deep);}
.recognition-inner{display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:center;}
.recognition-inner-equal{grid-template-columns:1fr 1fr;}
.recognition-text h2{max-width:420px;}
.recognition-list{display:flex; flex-direction:column; gap:18px;}
.recognition-list li{
  display:flex; align-items:flex-start; gap:16px; background:var(--white);
  border:1px solid var(--line-soft); border-radius:var(--radius-md); padding:20px 22px;
}
.recognition-icon{
  width:38px; height:38px; border-radius:50%; background:var(--blush); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:var(--charcoal);
}
.recognition-list p{font-size:14.5px; color:var(--charcoal-soft); margin:0; padding-top:6px;}
@media (max-width:900px){
  .recognition-inner{grid-template-columns:1fr; gap:28px;}
  .recognition-text h2{max-width:none;}
}

/* ===================== HOW IT WORKS ===================== */
.how-it-works{background:var(--ivory-deep);}
.steps-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:12px;}
.step-card{background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius-md); padding:28px 26px; display:flex; flex-direction:column;}
.step-card-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
.step-num{
  display:block; font-family:var(--font-display); font-size:32px; color:var(--sage-deep); line-height:1;
}
.step-icon{
  width:42px; height:42px; border-radius:50%; background:var(--ivory-deep);
  display:flex; align-items:center; justify-content:center; color:var(--charcoal); flex-shrink:0;
}
.step-card h3{margin-bottom:12px; font-size:18px; line-height:1.3;}
.step-divider{display:block; width:28px; height:2px; background:var(--blush-deep); margin-bottom:14px;}
.step-card p{font-size:13.5px; color:var(--charcoal-soft); line-height:1.55; margin-bottom:20px;}
.step-photo{margin-top:auto; border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:16/11;}
.step-photo img{width:100%; height:100%; object-fit:cover; display:block;}

.steps-banner{
  display:grid; grid-template-columns:1fr 280px; align-items:center; gap:24px;
  background:var(--sage); border-radius:var(--radius-md); padding:8px; margin-top:24px; overflow:hidden;
}
.steps-banner-left{display:flex; align-items:center; gap:18px; padding:16px 0 16px 22px;}
.steps-banner-icon{
  width:44px; height:44px; border-radius:50%; background:var(--blush);
  display:flex; align-items:center; justify-content:center; color:var(--blush-text); flex-shrink:0;
}
.steps-banner-text{display:flex; flex-direction:column; gap:4px;}
.steps-banner-text h3{font-size:16.5px; margin-bottom:2px;}
.steps-banner-text p{font-size:13.5px; color:var(--charcoal-soft); margin:0; max-width:480px;}
.steps-banner-photo{border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:16/9; align-self:stretch;}
.steps-banner-photo img{width:100%; height:100%; object-fit:cover; display:block;}

@media (max-width:820px){
  .steps-grid{grid-template-columns:1fr;}
  .steps-banner{grid-template-columns:1fr;}
  .steps-banner-left{padding:16px;}
  .steps-banner-photo{aspect-ratio:16/9;}
}

/* ===================== WHAT'S INSIDE ===================== */
.inside-table{
  border:1px solid var(--line-soft); border-radius:var(--radius-lg); overflow:hidden; background:var(--white);
}
.inside-row{
  display:grid; grid-template-columns:1.1fr 1fr 1fr 1.4fr; align-items:center;
  padding:20px 28px; border-bottom:1px solid var(--line-soft); font-size:14.5px; color:var(--charcoal-soft);
}
.inside-row:last-child{border-bottom:none;}
.inside-row-head{
  background:var(--ivory-deep); font-size:11.5px; font-weight:800; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--charcoal-soft); padding:16px 28px;
}
.inside-row-highlight{background:var(--blush); color:var(--charcoal);}
.inside-row strong{font-family:var(--font-display); font-size:17px; color:var(--charcoal); font-weight:500;}
.inside-note{font-size:13px; color:var(--charcoal-soft); margin-top:18px; text-align:center;}
@media (max-width:768px){
  .inside-row-head{display:none;}
  .inside-row{grid-template-columns:1fr; gap:6px; padding:20px 22px;}
  .inside-row span::before{content:attr(data-label) ": "; font-weight:700; color:var(--charcoal);}
  .inside-row span:first-child::before{display:none;}
}

/* ===================== EXPERTISE ===================== */
.expertise-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.expertise-card{padding:8px 4px;}
.expertise-icon{
  display:flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:50%; background:var(--sage); color:var(--charcoal); margin-bottom:18px;
}
.expertise-card h3{font-size:18px; margin-bottom:8px;}
.expertise-card p{font-size:14px;}
@media (max-width:820px){.expertise-grid{grid-template-columns:1fr;}}

/* ---- Expertise hero (photo + floating badge) ---- */
.expertise-hero{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center; margin-bottom:32px;}
.expertise-hero-text h2{margin:14px 0 18px;}
.expertise-hero-photo{position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3;}
.expertise-hero-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.expertise-badge{
  position:absolute; left:20px; bottom:20px; z-index:1; right:20px;
  display:flex; align-items:center; gap:14px;
  background:var(--white); border-radius:var(--radius-md); padding:14px 18px;
  box-shadow:var(--shadow-md); max-width:320px;
}
.expertise-badge-icon{
  width:40px; height:40px; border-radius:50%; background:var(--blush);
  display:flex; align-items:center; justify-content:center; color:var(--blush-text); flex-shrink:0;
}
.expertise-badge strong{display:block; font-size:14px; color:var(--charcoal); margin-bottom:2px;}
.expertise-badge span{font-size:12.5px; color:var(--charcoal-soft);}

/* ---- Expertise panel (icon + number + heading, divided columns) ---- */
.expertise-panel{background:var(--white); border-radius:var(--radius-lg); padding:40px; border:1px solid var(--line-soft);}
.expertise-panel .expertise-grid{gap:0;}
.expertise-panel .expertise-card{
  padding:0 32px; display:flex; flex-direction:column;
}
.expertise-panel .expertise-card:first-child{padding-left:0;}
.expertise-panel .expertise-card:last-child{padding-right:0;}
.expertise-panel .expertise-card:not(:first-child){border-left:1px solid var(--line-soft);}
.expertise-card-head{display:flex; align-items:center; gap:16px; margin-bottom:16px;}
.expertise-panel .expertise-icon{
  width:56px; height:56px; margin-bottom:0; flex-shrink:0; background:var(--sage);
}
.expertise-num{display:block; font-family:var(--font-display); font-size:22px; color:var(--sage-deep); line-height:1.2;}
.expertise-panel .expertise-card h3{font-size:16px; margin:0; line-height:1.3;}
.expertise-panel .expertise-card p{font-size:13.5px; color:var(--charcoal-soft); line-height:1.55; margin:0;}

@media (max-width:820px){
  .expertise-hero{grid-template-columns:1fr;}
  .expertise-panel .expertise-grid{grid-template-columns:1fr; gap:28px;}
  .expertise-panel .expertise-card{padding:0 !important; border-left:none !important; border-top:1px solid var(--line-soft); padding-top:24px !important;}
  .expertise-panel .expertise-card:first-child{border-top:none; padding-top:0 !important;}
}

/* ===================== AFTER PAYMENT ===================== */
.after-payment{background:var(--taupe);}
.after-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:12px;}
.after-card{
  background:var(--ivory); border-radius:var(--radius-md); padding:30px 26px; text-align:center;
}
.after-num{
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
  width:38px; height:38px; border-radius:50%; background:var(--charcoal); color:var(--ivory);
  font-family:var(--font-display); font-size:16px;
}
.after-card h3{font-size:17px; margin-bottom:8px;}
.after-card p{font-size:13.5px;}
@media (max-width:820px){.after-grid{grid-template-columns:1fr;}}

/* ===================== PROGRAM TABS ===================== */
.program-tablist{
  display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px;
  border-bottom:1px solid var(--line); padding-bottom:24px;
}
.program-tab{
  padding:11px 20px; border-radius:var(--radius-pill); font-size:13.5px; font-weight:700;
  background:var(--white); color:var(--charcoal-soft); border:1px solid var(--line-soft);
  transition:all .25s ease;
}
.program-tab:hover{border-color:var(--charcoal);}
.program-tab.is-active{background:var(--charcoal); color:var(--ivory); border-color:var(--charcoal);}
.program-panel{display:none; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:center;}
.program-panel.is-active{display:grid; animation:fadeUp .5s ease;}
@keyframes fadeUp{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}
.program-visual{
  aspect-ratio:1; border-radius:var(--radius-lg); background:var(--tint);
  display:flex; align-items:center; justify-content:center;
}
.program-visual svg{width:56%; fill:none; stroke:var(--charcoal); stroke-width:2.2;}
.program-text .eyebrow{margin-bottom:14px;}
.program-text h3{margin-bottom:14px; max-width:420px;}
.program-text p{margin-bottom:22px; max-width:440px;}
@media (max-width:820px){
  .program-panel{grid-template-columns:1fr; gap:26px;}
  .program-visual{max-width:260px; margin:0 auto;}
}

/* ===================== CABINET PREVIEW / TEASER + MODAL ===================== */
.finder-split-wrap{background:var(--ivory-deep);}

/* ===================== INSIDE BLUME SPACE (editorial) ===================== */
.inside-block{background:var(--ivory);}
.inside-grid{
  display:grid; gap:0 80px; align-items:start;
  grid-template-columns:0.88fr 1fr;
  grid-template-areas:
    "header items"
    "cta    items";
}
.inside-header{grid-area:header;}
.inside-cta-block{grid-area:cta; align-self:start;}
.inside-right{grid-area:items; display:flex; flex-direction:column;}

.inside-title{
  font-size:clamp(34px,3.6vw,46px); line-height:1.2; margin:18px 0 20px; max-width:420px;
}
.inside-divider{display:block; width:36px; height:2px; background:var(--blush-deep); margin-bottom:24px;}
.inside-lede{font-size:16.5px; line-height:1.6; color:var(--charcoal-soft); max-width:400px; margin-bottom:0;}
.inside-cta-block{margin-top:36px;}
.inside-cta{width:auto; display:inline-flex;}
.inside-demo-note{
  display:flex; align-items:center; gap:8px; font-size:13px; color:var(--charcoal-soft); margin-top:16px;
}
.inside-demo-note svg{color:var(--charcoal-soft); flex-shrink:0;}

.inside-row{
  display:flex; align-items:flex-start; gap:28px; padding:32px 0;
  border-bottom:1px solid var(--line-soft); transition:opacity .25s ease;
}
.inside-row:first-child{padding-top:0;}
.inside-row-last{border-bottom:none; padding-bottom:0;}
.inside-num{
  font-family:var(--font-display); font-size:40px; color:var(--sage-deep); opacity:0.75;
  line-height:1; flex-shrink:0; width:64px; transition:opacity .25s ease;
}
.inside-row:hover .inside-num{opacity:1;}
.inside-row-text h3{
  font-family:var(--font-body); font-size:19px; font-weight:600; color:var(--charcoal);
  margin-bottom:8px; transition:color .25s ease;
}
.inside-row:hover .inside-row-text h3{color:var(--sage-deep);}
.inside-row-featured .inside-row-text h3{font-size:21px; font-weight:700;}
.inside-row-text p{font-size:14.5px; color:var(--charcoal-soft); line-height:1.6; max-width:440px;}

@media (max-width:1023px){
  .inside-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "header"
      "items"
      "cta";
  }
  .inside-title{max-width:none;}
  .inside-lede{max-width:none;}
  .inside-cta-block{margin-top:0; margin-bottom:56px;}
  .inside-header{margin-bottom:56px;}
}
@media (max-width:767px){
  .inside-title{font-size:clamp(28px,7vw,34px); margin:14px 0 16px;}
  .inside-lede{font-size:15px;}
  .inside-header{margin-bottom:40px;}
  .inside-cta-block{margin-bottom:0;}
  .inside-row{gap:18px; padding:24px 0;}
  .inside-num{font-size:30px; width:44px;}
  .inside-row-text h3{font-size:16.5px; margin-bottom:6px;}
  .inside-row-featured .inside-row-text h3{font-size:18px;}
  .inside-row-text p{font-size:13.5px;}
  .inside-cta{width:100%; justify-content:center;}
}


/* ===================== TESTIMONIALS ===================== */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.testi-grid-2col{grid-template-columns:repeat(2,1fr);}
.testi-card{
  background:var(--white); border-radius:var(--radius-md); padding:32px;
  border:1px solid var(--line-soft);
}
.testi-card blockquote{font-family:var(--font-display); font-size:18px; line-height:1.5; margin:16px 0 20px; color:var(--charcoal);}
.testi-card figcaption{font-size:13px; font-weight:700; color:var(--charcoal-soft);}
@media (max-width:820px){.testi-grid{grid-template-columns:1fr;}}
@media (max-width:640px){.testi-grid-2col{grid-template-columns:1fr;}}

/* ===================== NUTRITION ===================== */
.recipe-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.recipe-card{border-radius:var(--radius-md); overflow:hidden; background:var(--white); border:1px solid var(--line-soft);}
.recipe-thumb{height:160px;}
.recipe-card .recipe-tag{
  display:inline-block; margin:18px 0 0 20px; font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:0.08em; color:var(--blush-text);
}
.recipe-card h3{font-size:17px; margin:8px 20px 4px;}
.recipe-card p{font-size:13px; margin:0 20px 20px;}
@media (max-width:820px){.recipe-grid{grid-template-columns:1fr;}}

/* ===================== PRICING ===================== */
.price-toggle{
  display:inline-flex; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-pill); padding:5px; margin-top:26px;
}
.price-toggle-btn{
  padding:10px 22px; border-radius:var(--radius-pill); font-size:13px; font-weight:700;
  color:var(--charcoal-soft); transition:all .25s ease; display:flex; align-items:center; gap:8px;
}
.price-toggle-btn.is-active{background:var(--charcoal); color:var(--ivory);}
.price-toggle-btn .save{
  background:var(--sage); color:var(--charcoal); font-size:10px; padding:2px 7px; border-radius:6px;
}
.price-toggle-btn.is-active .save{background:var(--blush);}

.pricing-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; max-width:820px; margin:52px auto 0;}
.pricing-grid-3col{grid-template-columns:repeat(3,1fr);}
.price-card{
  position:relative; background:var(--white); border:1px solid var(--line-soft);
  border-radius:var(--radius-lg); padding:38px 34px;
}
.price-card.is-highlighted{background:var(--charcoal); color:var(--ivory); border-color:var(--charcoal); transform:scale(1.02);}
.price-card.is-highlighted h3, .price-card.is-highlighted .price-amount{color:var(--ivory);}
.price-card.is-highlighted p, .price-card.is-highlighted li{color:rgba(250,247,243,0.72);}
.price-badge{
  position:absolute; top:-13px; left:34px; background:var(--blush); color:var(--charcoal);
  font-size:11px; font-weight:800; padding:6px 14px; border-radius:var(--radius-pill); text-transform:uppercase; letter-spacing:0.05em;
}
.price-card h3{margin-bottom:8px; font-size:21px;}
.price-desc{font-size:14px; margin-bottom:22px; min-height:42px;}
.price-amount{font-family:var(--font-display); font-size:34px; color:var(--charcoal);}
.price-note{font-size:12.5px; color:var(--charcoal-soft); margin-bottom:24px;}
.price-list{margin-bottom:28px;}
.price-list li{display:flex; align-items:center; gap:10px; font-size:14px; padding:8px 0; color:var(--charcoal-soft);}
.price-list li svg{color:var(--sage-deep); flex-shrink:0;}
.price-card.is-highlighted .price-list li svg{color:var(--blush);}
@media (max-width:768px){.pricing-grid{grid-template-columns:1fr;} .price-card.is-highlighted{transform:none;}}
@media (max-width:960px){.pricing-grid-3col{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.pricing-grid-3col{grid-template-columns:1fr;}}

/* ===================== FAQ ===================== */
.faq-list{max-width:760px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:22px 4px; font-family:var(--font-display); font-size:18px; text-align:left; color:var(--charcoal);
}
.faq-q svg{transition:transform .3s ease; flex-shrink:0; color:var(--charcoal-soft);}
.faq-item.is-open .faq-q svg{transform:rotate(180deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-a p{padding:0 4px 22px; font-size:14.5px; max-width:600px;}
.faq-item.is-open .faq-a{max-height:200px;}

/* ===================== FINAL CTA ===================== */
.final-cta{background:var(--blush); padding:100px 0;}
.final-cta-inner{max-width:640px; margin:0 auto; text-align:center;}

/* ---------- Personalized finder (single full-bleed photo, hero-style) ---------- */
.finder-hero{
  position:relative; min-height:560px; overflow:hidden;
  display:flex; align-items:center;
  color:var(--ivory);
}
.finder-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; display:block;}
.finder-hero-scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(20,16,14,0.66) 0%, rgba(20,16,14,0.42) 45%, rgba(20,16,14,0.16) 100%);
}
.finder-hero-text{
  position:relative; z-index:2;
  padding:64px clamp(24px,6vw,80px);
  max-width:560px;
}
.finder-hero-text .eyebrow{color:var(--blush);}
.finder-hero-text h2{margin:18px 0 14px; color:var(--ivory); font-weight:600; font-size:clamp(28px,3.6vw,40px); line-height:1.15;}
.finder-hero-text .lede{margin:0 0 30px; font-size:15px; line-height:1.55; color:rgba(250,247,243,0.7); max-width:420px;}
.finder-note{margin-top:14px; font-size:12.5px; color:rgba(250,247,243,0.75);}

@media (max-width:820px){
  .finder-hero{min-height:600px; align-items:flex-end;}
  .finder-hero-scrim{
    background:linear-gradient(to top,
      rgba(20,16,14,0.86) 0%,
      rgba(20,16,14,0.82) 40%,
      rgba(20,16,14,0.68) 65%,
      rgba(20,16,14,0.38) 82%,
      rgba(20,16,14,0.1) 94%,
      transparent 100%);
  }
  .finder-hero-text{
    padding:28px 24px 36px; max-width:none; text-align:left;
  }
  .finder-hero-text .eyebrow{justify-content:flex-start;}
  .finder-hero-text h2{font-size:25px; font-weight:600; line-height:1.25; margin:14px 0 8px;}
  .finder-hero-text .lede{font-size:13px; line-height:1.5; color:rgba(250,247,243,0.68); margin:0 0 20px; max-width:320px;}
  .finder-hero-text .btn{width:100%;}
  .finder-note{margin-top:10px;}
}

.final-cta h2{text-align:center;}

/* ===================== CART BUTTON ===================== */
.cart-btn{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; color:var(--charcoal);
  transition:background .2s ease;
}
.cart-btn:hover{background:var(--taupe);}
.cart-count{
  position:absolute; top:-2px; right:-2px; background:var(--blush-deep); color:var(--charcoal);
  font-size:10px; font-weight:800; width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition:transform .2s ease;
}
.cart-count.is-bump{animation:cartBump .35s ease;}
@keyframes cartBump{0%{transform:scale(1);}50%{transform:scale(1.35);}100%{transform:scale(1);}}

/* ===================== SHOP ===================== */
.shop-tabs{display:flex; flex-wrap:wrap; gap:8px;}
.shop-tab{
  padding:9px 18px; border-radius:var(--radius-pill); font-size:12.5px; font-weight:700;
  background:var(--white); color:var(--charcoal-soft); border:1px solid var(--line-soft);
  transition:all .25s ease;
}
.shop-tab:hover{border-color:var(--charcoal);}
.shop-tab.is-active{background:var(--charcoal); color:var(--ivory); border-color:var(--charcoal);}

.shop-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
.shop-card{
  position:relative; background:var(--white); border:1px solid var(--line-soft);
  border-radius:var(--radius-md); overflow:hidden; display:flex; flex-direction:column;
  transition:transform .3s ease, box-shadow .3s ease;
}
.shop-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
.shop-card.is-hidden{display:none;}
.shop-card.is-bundle{border-color:var(--blush-deep); grid-column:span 1;}
.shop-badge{
  position:absolute; top:14px; left:14px; z-index:2; background:var(--charcoal); color:var(--ivory);
  font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.05em;
  padding:6px 12px; border-radius:var(--radius-pill);
}
.shop-badge-save{background:var(--blush-deep); color:var(--charcoal);}
.shop-thumb{
  aspect-ratio:1.3; background:var(--tint); display:flex; align-items:center; justify-content:center;
}
.shop-thumb svg{width:44%; color:var(--charcoal);}
.shop-info{padding:22px; display:flex; flex-direction:column; gap:6px; flex:1;}
.shop-cat{font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.06em; color:var(--blush-text);}
.shop-info h3{font-size:16.5px; line-height:1.3;}
.shop-info p{font-size:13px; margin-bottom:6px; flex:1;}
.shop-row{display:flex; align-items:center; gap:10px; margin-top:auto; padding-top:10px;}
.shop-price{font-family:var(--font-display); font-size:19px; margin-right:auto;}
.shop-old-price{font-size:13px; color:var(--charcoal-soft); text-decoration:line-through; margin-right:auto; margin-left:-4px;}
.shop-add.is-added{background:var(--sage); color:var(--charcoal);}
.shop-footer-note{
  display:flex; align-items:center; justify-content:center; gap:10px; margin-top:32px;
  font-size:13px; color:var(--charcoal-soft);
}
@media (max-width:960px){.shop-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.shop-grid{grid-template-columns:1fr;}}

/* ===================== FOOTER ===================== */
.site-footer{background:var(--charcoal); color:rgba(250,247,243,0.7); padding:80px 0 30px;}
.footer-top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:32px;
  padding-bottom:56px; border-bottom:1px solid rgba(250,247,243,0.12);
}
.footer-brand .logo{color:var(--ivory); margin-bottom:14px;}
.footer-brand p{color:rgba(250,247,243,0.55); font-size:13.5px; max-width:220px;}
.footer-col h4{color:var(--ivory); font-size:13px; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:18px; font-family:var(--font-body); font-weight:700;}
.footer-col{display:flex; flex-direction:column; gap:12px;}
.footer-col a{font-size:14px; transition:color .2s ease;}
.footer-col a:hover{color:var(--blush);}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; padding-top:28px; font-size:12.5px; flex-wrap:wrap; gap:14px;}
.footer-social{display:flex; gap:14px;}
.footer-social a{
  width:34px; height:34px; border-radius:50%; border:1px solid rgba(250,247,243,0.2);
  display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700;
  transition:background .2s ease;
}
.footer-social a:hover{background:rgba(250,247,243,0.1);}
@media (max-width:960px){
  .footer-top{grid-template-columns:1fr 1fr 1fr; row-gap:36px;}
}
@media (max-width:640px){
  .footer-top{grid-template-columns:1fr 1fr; row-gap:32px;}
}
@media (max-width:420px){
  .footer-top{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column; align-items:flex-start;}
}

.visually-hidden{
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;
}

/* ===================== DASHBOARD V2 ===================== */
.cabinet-page{background:var(--ivory);}
.dashboard{width:100%;}

.dash-nav{
  position:sticky; top:0; z-index:50; background:rgba(250,247,243,0.94);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.dash-nav-inner{display:flex; align-items:center; justify-content:space-between; height:76px; gap:18px; max-width:1400px;}
.dash-logo{display:flex; align-items:center; gap:10px; color:var(--charcoal); flex-shrink:0;}
.dash-logo .logo-mark{width:26px; height:auto;}
.dash-menu{display:flex; align-items:center; gap:16px; flex-wrap:nowrap;}
.dash-menu a{font-size:13px; font-weight:600; color:var(--charcoal-soft); white-space:nowrap;}
.dash-menu-plan{display:none;}
.dash-menu a:hover{color:var(--charcoal);}
.dash-menu a.is-active{color:var(--charcoal); font-weight:700; position:relative;}
.dash-menu a.is-active::after{content:''; position:absolute; left:0; right:0; bottom:-27px; height:2px; background:var(--blush-deep);}
.dash-nav-right{display:flex; align-items:center; gap:16px; flex-shrink:0;}
.dash-user-menu{position:relative;}
.dash-user-btn{
  display:flex; align-items:center; gap:9px; background:transparent; border:none; cursor:pointer;
  font-size:13.5px; font-weight:700; color:var(--charcoal); padding:6px;
}
.dash-avatar-photo{width:32px; height:32px; border-radius:50%; overflow:hidden; flex-shrink:0;}
.dash-avatar-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.dash-user-btn svg{color:var(--charcoal-soft);}
.dash-user-dropdown{
  position:absolute; top:calc(100% + 10px); right:0; background:var(--white); border:1px solid var(--line-soft);
  border-radius:var(--radius-sm); box-shadow:var(--shadow-md); padding:8px; min-width:160px;
  display:none; flex-direction:column; z-index:10;
}
.dash-user-dropdown.is-open{display:flex;}
.dash-user-dropdown a{padding:9px 12px; font-size:13.5px; color:var(--charcoal); border-radius:8px;}
.dash-user-dropdown a:hover{background:var(--ivory-deep);}

.dash-body{padding-top:40px; padding-bottom:100px;}

/* ---- Greeting ---- */
.dash-greeting-row{display:flex; align-items:flex-end; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:24px;}
.dash-greeting h1{font-size:clamp(28px,3.4vw,38px); margin-bottom:8px;}
.dash-greeting p{font-size:14.5px; color:var(--charcoal-soft);}
.dash-stats-row{display:flex; gap:14px; flex-wrap:wrap;}
.dash-stat-chip{
  display:flex; align-items:center; gap:10px; background:var(--white); border:1px solid var(--line-soft);
  border-radius:var(--radius-md); padding:12px 16px; min-width:140px;
}
.dash-stat-icon{
  width:34px; height:34px; border-radius:50%; background:var(--ivory-deep); color:var(--charcoal);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.dash-stat-chip strong{display:block; font-family:var(--font-display); font-size:18px; color:var(--charcoal); line-height:1.2;}
.dash-stat-chip span{font-size:10.5px; color:var(--charcoal-soft);}
.dash-reward-chip{flex-direction:column; align-items:stretch; min-width:170px; gap:6px;}
.dash-reward-chip-top{font-size:11px; color:var(--charcoal-soft);}
.dash-reward-chip-top strong{color:var(--charcoal); font-weight:700;}
.dash-reward-chip-bar{width:100%; height:5px; border-radius:3px; background:var(--line-soft); overflow:hidden;}
.dash-reward-chip-fill{height:100%; background:var(--blush-deep); border-radius:3px;}
.dash-reward-chip-count{font-size:10.5px; font-weight:700; color:var(--blush-text);}

/* ---- Today strip ---- */
.dash-today-strip{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius-md);
  padding:14px 20px; margin-bottom:24px; font-size:13px; color:var(--charcoal-soft);
}
.dash-today-item{display:flex; align-items:center; gap:8px;}
.dash-today-item strong{color:var(--charcoal);}
.dash-today-item svg{color:var(--sage-deep); flex-shrink:0;}
.dash-today-link{display:flex; align-items:center; gap:6px; color:var(--blush-text); font-weight:700; white-space:nowrap;}
@media (max-width:600px){
  .dash-today-link{white-space:normal;}
}

/* ---- Shared panel ---- */
.dash-panel{
  background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius-lg); padding:28px;
  display:flex; flex-direction:column;
}
.dash-panel h3{font-size:18px; margin-bottom:4px;}
.dash-panel-sub{font-size:13.5px; color:var(--charcoal-soft); margin-bottom:16px;}
.dash-panel-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; flex-wrap:wrap; gap:10px;}
.dash-panel-head h3{margin-bottom:0;}
.dash-toggle{display:flex; background:var(--ivory-deep); border-radius:var(--radius-pill); padding:4px; gap:2px;}
.dash-toggle button{
  padding:7px 14px; border-radius:var(--radius-pill); font-size:12px; font-weight:700; color:var(--charcoal-soft); background:transparent;
}
.dash-toggle button.is-active{background:var(--white); color:var(--charcoal); box-shadow:var(--shadow-sm);}
.dash-see-all{font-size:12.5px; font-weight:700; color:var(--charcoal-soft); display:flex; align-items:center; gap:5px;}

/* ---- Main row: mood + program ---- */
.dash-main-row{display:grid; grid-template-columns:1.5fr 1fr; gap:22px; margin-bottom:22px; align-items:stretch;}

.dash-mood-row{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px;}
.dash-mood-btn{
  display:flex; align-items:center; gap:7px; padding:10px 16px; border-radius:var(--radius-pill);
  background:var(--white); border:1px solid var(--line-soft); font-size:12.5px; font-weight:600; color:var(--charcoal-soft);
}
.dash-mood-btn:hover{border-color:var(--charcoal);}
.dash-mood-btn:active{border-color:var(--charcoal); background:var(--ivory-deep); transform:scale(0.96); transition:transform .1s ease, background .1s ease;}
.dash-mood-btn.is-selected{background:var(--blush); border-color:var(--blush-deep); color:var(--charcoal);}

.dash-mood-result{display:grid; grid-template-columns:0.9fr 1.3fr; gap:22px; background:var(--ivory-deep); border-radius:var(--radius-md); padding:16px;}
.dash-mood-result-photo{border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:4/5;}
.dash-mood-result-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.dash-mood-result-label{font-size:11px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; color:var(--blush-text);}
.dash-mood-result-info h4{font-family:var(--font-display); font-size:24px; margin:6px 0 4px;}
.dash-mood-result-meta{font-size:13px; color:var(--charcoal-soft); margin-bottom:10px;}
.dash-mood-result-note{font-size:13px; color:var(--charcoal-soft); line-height:1.5; margin-bottom:14px;}
.dash-mood-tags{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px;}
.dash-mood-tags span{display:flex; align-items:center; gap:5px; font-size:11px; padding:6px 11px; border-radius:var(--radius-pill); background:var(--white); color:var(--charcoal-soft);}
.dash-mood-actions{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.dash-text-btn{background:transparent; color:var(--charcoal); font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:3px;}

.dash-program-name{font-family:var(--font-display); font-size:20px; margin-bottom:4px;}
.dash-program-meta{font-size:12.5px; color:var(--charcoal-soft); margin-bottom:18px;}
.dash-program-progress{margin-bottom:20px;}
.dash-program-progress-top{display:flex; justify-content:space-between; font-size:12px; color:var(--charcoal-soft); margin-bottom:8px;}
.dash-program-progress-top span:first-child{color:var(--charcoal); font-weight:700;}
.dash-program-bar{width:100%; height:7px; border-radius:4px; background:var(--ivory-deep); overflow:hidden;}
.dash-program-bar-fill{height:100%; background:var(--sage-deep); border-radius:4px;}

.dash-today-card{background:var(--ivory-deep); border-radius:var(--radius-sm); padding:16px; margin-bottom:16px;}
.dash-today-card-label{font-size:11px; font-weight:800; letter-spacing:0.04em; text-transform:uppercase; color:var(--charcoal-soft); margin-bottom:10px;}
.dash-today-card-row{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;}
.dash-today-card-info{display:flex; align-items:center; gap:12px;}
.dash-today-card-info svg{color:var(--sage-deep); flex-shrink:0;}
.dash-today-card-info strong{display:block; font-size:13.5px; color:var(--charcoal);}
.dash-today-card-info span{font-size:11.5px; color:var(--charcoal-soft);}

.dash-adjust-card{border:1px solid var(--line-soft); border-radius:var(--radius-sm); padding:16px;}
.dash-adjust-head{display:flex; gap:12px; margin-bottom:14px;}
.dash-adjust-icon{
  width:30px; height:30px; border-radius:50%; background:var(--sage); color:var(--charcoal);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.dash-adjust-head strong{display:block; font-size:13.5px; color:var(--charcoal); margin-bottom:4px;}
.dash-adjust-head p{font-size:12.5px; color:var(--charcoal-soft); line-height:1.45; margin:0;}
.dash-adjust-options{display:flex; flex-direction:column; gap:8px;}
.dash-adjust-option{
  display:flex; align-items:center; gap:9px; background:var(--ivory-deep); border-radius:var(--radius-pill);
  padding:9px 14px; font-size:12px; font-weight:600; color:var(--charcoal); text-align:left;
}
.dash-adjust-option:hover{background:var(--taupe);}
.dash-adjust-option svg:first-child{color:var(--charcoal-soft); flex-shrink:0;}
.dash-adjust-chevron{margin-left:auto; color:var(--charcoal-soft); flex-shrink:0;}

/* ---- Secondary row: calendar + progress ---- */
.dash-secondary-row{display:grid; grid-template-columns:1fr 1.15fr 1fr; gap:22px; margin-bottom:22px; align-items:stretch;}

.dash-cal-layout{display:grid; grid-template-columns:1fr 240px; gap:22px;}
.dash-cal-nav{display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:14px;}
.dash-cal-nav button{color:var(--charcoal-soft);}
.dash-cal-nav button:hover{color:var(--charcoal);}
.dash-cal-nav span{font-size:13.5px; font-weight:700; color:var(--charcoal); min-width:120px; text-align:center;}
.dash-cal-weekdays{display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:10.5px; font-weight:700; color:var(--charcoal-soft); margin-bottom:8px;}
.dash-cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
.dash-cal-day{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:9px;
  font-size:12px; font-weight:600; color:var(--charcoal-soft); background:transparent; position:relative;
}
.dash-cal-day:hover{background:var(--ivory-deep);}
.dash-cal-day.is-empty{cursor:default;}
.dash-cal-day.is-today{box-shadow:inset 0 0 0 2px var(--blush-deep); color:var(--charcoal); font-weight:700;}
.dash-cal-day.is-done{background:var(--sage); color:var(--charcoal);}
.dash-cal-day.is-planned{background:var(--blush); color:var(--charcoal);}
.dash-cal-day.is-selected{outline:2px solid var(--charcoal); outline-offset:1px;}
.dash-cal-dot{display:none;}
.dash-cal-next-workout{
  display:flex; align-items:center; gap:8px; font-size:12px; color:var(--charcoal-soft);
  margin-top:16px; padding-top:14px; border-top:1px solid var(--line-soft);
}
.dash-cal-next-workout svg:first-child{color:var(--sage-deep);}
.dash-cal-next-workout strong{color:var(--charcoal); font-weight:700;}

.dash-cal-detail{background:var(--ivory-deep); border-radius:var(--radius-sm); padding:18px; align-self:start;}
.dash-cal-detail-date{font-family:var(--font-display); font-size:17px; margin-bottom:6px;}
.dash-cal-detail-title{font-size:13.5px; font-weight:700; color:var(--charcoal); margin-bottom:2px;}
.dash-cal-detail-meta{font-size:12px; color:var(--charcoal-soft); margin-bottom:8px;}
.dash-cal-detail-time{font-size:11.5px; color:var(--blush-text); font-weight:700;}
.dash-cal-detail-actions{display:flex; flex-direction:column; gap:2px;}
.dash-cal-detail-actions button{
  display:flex; align-items:center; gap:9px; padding:9px 6px; font-size:12px; color:var(--charcoal-soft); text-align:left;
}
.dash-cal-detail-actions button:hover{color:var(--charcoal);}
.dash-cal-detail-actions svg{flex-shrink:0;}

.dash-progress-period{font-size:12.5px; font-weight:700; color:var(--charcoal-soft); margin-bottom:14px;}
.dash-progress-stats{display:flex; gap:22px; margin-bottom:22px; flex-wrap:wrap;}
.dash-progress-stat{display:flex; flex-direction:column; gap:6px;}
.dash-progress-stat svg{color:var(--sage-deep);}
.dash-progress-stat strong{font-family:var(--font-display); font-size:20px; color:var(--charcoal); line-height:1;}
.dash-progress-stat span{font-size:11px; color:var(--charcoal-soft);}
.dash-progress-ring-row{display:flex; align-items:center; gap:20px; background:var(--ivory-deep); border-radius:var(--radius-sm); padding:18px; margin-bottom:18px;}
.dash-progress-ring-wrap{position:relative; flex-shrink:0;}
.dash-progress-ring-label{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:16px; color:var(--charcoal);}
.dash-progress-ring-title{font-size:13px; font-weight:700; color:var(--charcoal); margin-bottom:10px;}
.dash-progress-dots{display:flex; gap:6px; margin-bottom:10px;}
.dash-progress-dots span{width:10px; height:10px; border-radius:50%; background:var(--line-soft);}
.dash-progress-dots span.is-done{background:var(--sage-deep);}
.dash-progress-note{font-size:12px; color:var(--charcoal-soft);}
.dash-last-workout{margin-top:auto;}
.dash-last-workout-label{font-size:11px; font-weight:800; letter-spacing:0.04em; text-transform:uppercase; color:var(--charcoal-soft); margin-bottom:10px;}
.dash-last-workout-row{display:flex; align-items:center; gap:12px;}
.dash-last-workout-photo{width:52px; height:52px; border-radius:var(--radius-sm); overflow:hidden; flex-shrink:0;}
.dash-last-workout-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.dash-last-workout-info{flex:1; min-width:0; display:flex; flex-direction:column;}
.dash-last-workout-info strong{font-size:13px; color:var(--charcoal);}
.dash-last-workout-info span{font-size:11px; color:var(--charcoal-soft);}
.dash-last-workout-date{margin-top:1px;}
.dash-last-workout-arrow{color:var(--charcoal-soft); flex-shrink:0;}

/* ---- Bottom row: achievements + reward + support ---- */
.dash-bottom-row{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:22px; align-items:stretch;}

.dash-badges-row{display:flex; gap:18px; flex-wrap:wrap;}
.dash-badge{display:flex; flex-direction:column; align-items:center; text-align:center; width:96px;}
.dash-badge-icon{
  width:56px; height:56px; border-radius:50%; background:var(--sage); color:var(--charcoal);
  display:flex; align-items:center; justify-content:center; margin-bottom:10px;
}
.dash-badge strong{font-size:11.5px; color:var(--charcoal); line-height:1.3; margin-bottom:4px;}
.dash-badge span{font-size:10px; color:var(--charcoal-soft); line-height:1.3;}

.dash-reward-box{display:flex; gap:12px; background:var(--ivory-deep); border-radius:var(--radius-sm); padding:14px; margin-bottom:14px;}
.dash-reward-box-icon{
  width:34px; height:34px; border-radius:50%; background:var(--blush); color:var(--blush-text);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.dash-reward-box strong{display:block; font-size:13px; color:var(--charcoal); margin-bottom:8px;}
.dash-reward-box-bar{width:100%; height:6px; border-radius:3px; background:var(--line-soft); overflow:hidden;}
.dash-reward-box-fill{height:100%; background:var(--blush-deep); border-radius:3px;}
.dash-reward-box span{display:block; font-size:11px; color:var(--charcoal-soft); margin-top:6px;}
.dash-reward-when{font-size:12px; color:var(--charcoal-soft); margin-bottom:10px;}
.dash-reward-perks{display:flex; flex-direction:column; gap:8px;}
.dash-reward-perks span{display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--charcoal);}
.dash-reward-perks svg{color:var(--sage-deep); flex-shrink:0;}

.dash-topic-chips{display:flex; flex-wrap:wrap; gap:8px;}
.dash-topic-chips button{
  padding:8px 13px; border-radius:var(--radius-pill); background:var(--ivory-deep); font-size:11.5px; font-weight:600; color:var(--charcoal);
}
.dash-topic-chips button:hover{background:var(--sage);}

.dash-specialist-list{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.dash-specialist-list button{
  display:flex; align-items:center; gap:10px; padding:10px 4px; font-size:12.5px; font-weight:600; color:var(--charcoal); text-align:left;
  border-bottom:1px solid var(--line-soft);
}
.dash-specialist-list button:last-child{border-bottom:none;}
.dash-specialist-list svg{color:var(--sage-deep); flex-shrink:0;}
.dash-video-upload{background:var(--ivory-deep); border-radius:var(--radius-sm); padding:14px; text-align:center;}
.dash-video-upload svg{color:var(--charcoal-soft); margin-bottom:8px;}
.dash-video-upload p{font-size:11.5px; color:var(--charcoal-soft); line-height:1.45; margin-bottom:12px;}

.dash-help-fab{
  position:fixed; right:24px; bottom:24px; z-index:60;
  display:flex; align-items:center; gap:8px; background:var(--blush); color:var(--charcoal);
  padding:14px 22px; border-radius:var(--radius-pill); font-size:13.5px; font-weight:700;
  box-shadow:var(--shadow-lg);
  transition:transform .2s ease, box-shadow .2s ease;
}
.dash-help-fab:hover{transform:translateY(-2px); box-shadow:0 16px 32px rgba(31,31,31,0.2);}
.dash-help-fab svg{color:var(--blush-text);}

@media (max-width:1180px){
  .dash-bottom-row{grid-template-columns:1fr 1fr;}
}
@media (max-width:1080px){
  .dash-main-row{grid-template-columns:1fr;}
  .dash-secondary-row{grid-template-columns:1fr;}
  .dash-cal-layout{grid-template-columns:1fr;}
  .dash-mood-result{grid-template-columns:1fr;}
  .dash-mood-result-photo{aspect-ratio:16/9;}
  .dash-menu{gap:10px;}
  .dash-menu a{font-size:12px;}
}
@media (max-width:820px){
  .dash-nav-inner{height:64px;}
  .burger{display:block;}
  .dash-menu{
    position:fixed; inset:0 0 0 auto; width:min(300px,80vw); height:100vh;
    background:var(--ivory); flex-direction:column; align-items:flex-start;
    justify-content:flex-start; padding:100px 28px 28px; gap:22px; margin:0; z-index:100;
    transform:translateX(100%); transition:transform .35s ease;
    box-shadow:-20px 0 50px rgba(31,31,31,0.12);
  }
  .dash-menu.is-open{transform:translateX(0);}
  .dash-menu a{font-size:16px;}
  .dash-menu-plan{
    display:block; margin-top:auto; padding-top:20px; width:100%;
    border-top:1px solid var(--line-soft); font-weight:700; font-size:16px; color:var(--blush-text);
  }
  .dash-plan-btn span{display:none;}
  .dash-plan-btn{padding:10px!important;}
  .dash-user-btn span:not(.dash-avatar-photo){display:none;}
  .dash-bottom-row{grid-template-columns:1fr;}
  .dash-greeting-row{flex-direction:column; align-items:flex-start;}
  .dash-stats-row{width:100%;}
  .dash-stat-chip{flex:1; min-width:120px;}
}


/* ===================== NUTRITION SECTION ===================== */
.dash-nutrition-card{display:flex; flex-direction:column;}
.dash-nutrition-card-large{background:var(--blush); border-color:var(--blush-deep);}
.dash-nutrition-card-large .eyebrow{color:var(--blush-text);}
.dash-nut-diary-link{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--charcoal); flex-shrink:0;}

.dash-nut-cal-row{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin:14px 0 2px;}
.dash-nut-cal strong{font-family:var(--font-display); font-size:34px; color:var(--charcoal);}
.dash-nut-cal span{font-size:14px; color:var(--charcoal-soft); margin-left:3px;}
.dash-nut-target{font-size:12px; color:var(--charcoal-soft);}
.dash-nut-bar{width:100%; height:7px; border-radius:4px; background:rgba(255,255,255,0.6); overflow:hidden; margin:10px 0 18px;}
.dash-nut-bar-fill{height:100%; background:var(--blush-deep); border-radius:4px;}

.dash-nut-macros-row{display:flex; justify-content:space-between; gap:10px; margin-bottom:18px;}
.dash-nut-macro{display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;}
.dash-nut-macro-icon{width:32px; height:32px; border-radius:50%; background:var(--white); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.dash-nut-macro-protein svg{color:var(--sage-deep);}
.dash-nut-macro-fat svg{color:var(--blush-text);}
.dash-nut-macro-carbs svg{color:var(--carb-gold);}
.dash-nut-macro strong{font-family:var(--font-display); font-size:15px; color:var(--charcoal); line-height:1;}
.dash-nut-macro span{font-size:10px; color:var(--charcoal-soft);}

.dash-nut-last-meal{background:var(--white); border-radius:12px; padding:12px 14px; margin-bottom:6px;}
.dash-nut-last-meal-label{display:block; font-size:10.5px; font-weight:700; color:var(--charcoal-soft); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:8px;}
.dash-nut-last-meal-row{display:flex; align-items:center; gap:10px;}
.dash-nut-last-meal-icon{width:30px; height:30px; border-radius:50%; background:var(--ivory-deep); color:var(--sage-deep); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.dash-nut-last-meal-row strong{display:block; font-size:12.5px; color:var(--charcoal);}
.dash-nut-last-meal-row span{font-size:11px; color:var(--charcoal-soft);}

.dash-nut-quick{display:flex; gap:8px;}
.dash-nut-quick a{
  flex:1; display:flex; align-items:center; justify-content:center; gap:5px; padding:9px; border-radius:10px;
  background:var(--white); font-size:12px; font-weight:600; color:var(--charcoal);
}
.dash-nut-quick a:hover{background:var(--ivory-deep);}
.dash-nut-quick svg{color:var(--blush-text);}


.nut-header-row{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:26px;}
.nut-header-right{display:flex; flex-direction:column; align-items:flex-end; gap:12px;}
.nut-tabs button{font-size:12.5px;}

.nut-row-1{display:grid; grid-template-columns:1.6fr 1fr; gap:20px; margin-bottom:20px; align-items:stretch;}
.nut-row-2{display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:20px; margin-bottom:20px; align-items:stretch;}
.nut-row-3{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:20px; align-items:stretch;}

/* ---- Что вы ели? ---- */
.nut-input-card h3{margin-bottom:4px;}
.nut-input-wrap{background:var(--ivory-deep); border-radius:14px; padding:12px; margin-top:14px;}
.nut-input{
  width:100%; border:none; background:transparent; resize:none; font-family:var(--font-body);
  font-size:14px; color:var(--charcoal); outline:none; margin-bottom:8px;
}
.nut-input::placeholder{color:var(--charcoal-soft);}
.nut-input-actions{display:flex; align-items:center; gap:8px;}
.nut-input-icon-btn{
  display:flex; align-items:center; gap:5px; padding:8px 12px; border-radius:var(--radius-pill);
  background:var(--white); border:1px solid var(--line-soft); color:var(--charcoal-soft); font-size:12px; font-weight:600;
}
.nut-input-icon-btn:hover{color:var(--charcoal); border-color:var(--charcoal);}
.nut-input-actions .btn{margin-left:auto;}
.nut-quick-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px;}
.nut-quick-btn{
  display:flex; align-items:center; gap:7px; padding:9px 15px; border-radius:var(--radius-pill);
  background:var(--white); border:1px solid var(--line-soft); font-size:12.5px; font-weight:600; color:var(--charcoal);
}
.nut-quick-btn:hover{background:var(--ivory-deep);}
.nut-quick-btn svg{color:var(--sage-deep);}

/* ---- Analyzing state ---- */
.nut-analyzing{display:none; align-items:center; gap:14px; padding:22px 4px;}
.nut-analyzing.is-visible{display:flex;}
.nut-analyzing-spinner{
  width:28px; height:28px; border-radius:50%; border:3px solid var(--line-soft); border-top-color:var(--sage-deep);
  flex-shrink:0; animation:nutSpin 0.9s linear infinite;
}
@keyframes nutSpin{to{transform:rotate(360deg);}}
.nut-analyzing strong{display:block; font-size:13.5px; color:var(--charcoal); margin-bottom:3px;}
.nut-analyzing span{font-size:12px; color:var(--charcoal-soft);}

/* ---- Result state ---- */
.nut-result{display:none; margin-top:6px;}
.nut-result.is-visible{display:block;}
.nut-result-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:16px; margin-bottom:16px;}
.nut-result-photo{border-radius:12px; overflow:hidden; aspect-ratio:1;}
.nut-result-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.nut-result-label{font-size:12.5px; font-weight:700; color:var(--charcoal); margin-bottom:10px;}
.nut-ingredient-list{display:flex; flex-direction:column; gap:2px;}
.nut-ingredient{
  display:flex; align-items:center; justify-content:space-between; padding:8px 0;
  border-bottom:1px solid var(--line-soft); font-size:13px; color:var(--charcoal);
}
.nut-ingredient:last-child{border-bottom:none;}
.nut-ingredient em{font-style:normal; color:var(--charcoal-soft); margin-left:4px;}
.nut-ingredient button{font-size:11.5px; font-weight:600; color:var(--blush-text); text-decoration:underline; text-underline-offset:2px;}
.nut-result-calc{background:var(--ivory-deep); border-radius:12px; padding:16px; margin-bottom:16px;}
.nut-result-calc-label{font-size:12px; font-weight:700; color:var(--charcoal); margin-bottom:10px;}
.nut-result-calc-row{display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;}
.nut-result-calc-row strong{font-family:var(--font-display); font-size:26px; color:var(--charcoal);}
.nut-result-calc-row strong span{font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--charcoal-soft);}
.nut-result-macros{display:flex; gap:10px;}
.nut-result-macros span{font-size:12.5px; font-weight:600; color:var(--charcoal-soft);}
.nut-result-note{font-size:11px; color:var(--charcoal-soft); margin-top:10px; line-height:1.4;}
.nut-result-actions{display:flex; align-items:center; gap:18px;}

/* ---- Success state ---- */
.nut-success{display:none; align-items:center; gap:12px; padding:20px 4px;}
.nut-success.is-visible{display:flex;}
.nut-success-check{
  width:32px; height:32px; border-radius:50%; background:var(--sage); color:var(--charcoal);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.nut-success strong{display:block; font-size:13.5px; color:var(--charcoal); margin-bottom:2px;}
.nut-success span{font-size:12px; color:var(--charcoal-soft);}

/* ---- Сегодня (right card) ---- */
.nut-today-date{font-size:12px; color:var(--charcoal-soft); margin-bottom:10px;}
.nut-today-cal{margin-bottom:4px;}
.nut-today-cal strong{font-family:var(--font-display); font-size:32px; color:var(--charcoal);}
.nut-today-cal span{font-size:14px; color:var(--charcoal-soft); margin-left:4px;}
.nut-today-target{font-size:12px; color:var(--charcoal-soft); margin-bottom:10px;}
.nut-cal-bar{width:100%; height:7px; border-radius:4px; background:var(--ivory-deep); overflow:hidden; margin-bottom:20px;}
.nut-cal-bar-fill{height:100%; background:var(--sage-deep); border-radius:4px; transition:width .5s ease;}
.nut-macros-row{display:flex; justify-content:space-between; gap:8px; margin-bottom:18px;}
.nut-macro{display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;}
.nut-macro-icon{width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.nut-macro-protein{background:var(--sage);}
.nut-macro-fat{background:var(--blush);}
.nut-macro-carbs{background:var(--taupe);}
.nut-macro strong{font-family:var(--font-display); font-size:15px; color:var(--charcoal); line-height:1;}
.nut-macro span{font-size:10.5px; color:var(--charcoal-soft);}
.nut-today-meta{display:flex; flex-direction:column; gap:8px; padding-top:16px; border-top:1px solid var(--line-soft); margin-top:auto;}
.nut-today-meta span{display:flex; align-items:center; gap:7px; font-size:12px; color:var(--charcoal-soft);}
.nut-today-meta svg{color:var(--sage-deep); flex-shrink:0;}

/* ---- Дневник ---- */
.nut-diary-list{display:flex; flex-direction:column; gap:2px; margin-top:8px;}
.nut-diary-item{
  display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line-soft);
}
.nut-diary-item:last-child{border-bottom:none;}
.nut-diary-time{font-size:11.5px; color:var(--charcoal-soft); width:38px; flex-shrink:0;}
.nut-diary-thumb{
  width:36px; height:36px; border-radius:10px; background:var(--ivory-deep); color:var(--sage-deep);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.nut-diary-info{flex:1; min-width:0; display:flex; flex-direction:column;}
.nut-diary-type{font-size:10.5px; font-weight:700; color:var(--charcoal-soft); text-transform:uppercase; letter-spacing:0.03em;}
.nut-diary-info strong{font-size:13.5px; color:var(--charcoal); margin:2px 0;}
.nut-diary-macros{font-size:11px; color:var(--charcoal-soft);}
.nut-diary-cal{font-size:13px; font-weight:700; color:var(--charcoal); flex-shrink:0;}
.nut-diary-chevron{color:var(--charcoal-soft); flex-shrink:0;}
.nut-diary-footer{display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--charcoal-soft); margin-top:auto; padding-top:12px; border-top:1px solid var(--line-soft);}
.nut-diary-footer svg{color:var(--sage-deep);}

/* ---- Рекомендация Blume ---- */
.nut-recommend-photo{border-radius:12px; overflow:hidden; aspect-ratio:16/10; margin:10px 0 12px;}
.nut-recommend-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.nut-recommend-text{font-size:13px; color:var(--charcoal-soft); line-height:1.5; margin-bottom:14px;}

/* ---- Спросить Blume ---- */
.nut-ask-input{display:flex; align-items:center; gap:8px; background:var(--ivory-deep); border-radius:var(--radius-pill); padding:6px 6px 6px 14px; margin:10px 0 12px;}
.nut-ask-input input{flex:1; border:none; background:transparent; font-size:16px; color:var(--charcoal); outline:none;}
.nut-ask-input input::placeholder{color:var(--charcoal-soft);}
.nut-ask-input button{
  width:30px; height:30px; border-radius:50%; background:var(--sage-deep); color:var(--white);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.nut-ask-chips{display:flex; flex-direction:column; gap:6px; margin-bottom:14px;}
.nut-ask-chips button{
  text-align:left; padding:9px 12px; border-radius:10px; background:var(--ivory-deep);
  font-size:12px; font-weight:600; color:var(--charcoal);
}
.nut-ask-chips button:hover{background:var(--taupe);}
.nut-ask-specialist{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--blush-text); margin-top:auto;}

/* ---- Статистика ---- */
.nut-stats-grid{display:flex; gap:24px; align-items:flex-end;}
.nut-stats-summary{flex-shrink:0; width:130px;}
.nut-stats-avg-label{font-size:11.5px; color:var(--charcoal-soft); margin-bottom:6px;}
.nut-stats-avg-val{display:block; font-family:var(--font-display); font-size:24px; color:var(--charcoal); margin-bottom:16px;}
.nut-stats-avg-val span{font-family:var(--font-body); font-size:12px; font-weight:600; color:var(--charcoal-soft);}
.nut-stats-legend{display:flex; flex-direction:column; gap:8px;}
.nut-stats-legend span{display:flex; align-items:center; gap:7px; font-size:11px; color:var(--charcoal-soft);}
.nut-stats-legend i{width:8px; height:8px; border-radius:50%; display:block; flex-shrink:0;}
.nut-stats-legend strong{color:var(--charcoal); font-weight:700;}
.nut-stats-chart{flex:1; display:flex; align-items:flex-end; justify-content:space-between; gap:8px; height:110px;}
.nut-chart-bar{flex:1; display:flex; flex-direction:column-reverse; align-items:center; height:100%; position:relative;}
.nut-chart-bar span{position:absolute; bottom:-20px; font-size:10px; color:var(--charcoal-soft);}
.nut-chart-seg{width:100%; max-width:22px; border-radius:3px;}

/* ---- Мой план питания ---- */
.nut-plan-targets{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:18px;}
.nut-plan-targets div{display:flex; flex-direction:column; gap:4px;}
.nut-plan-targets svg{color:var(--sage-deep); margin-bottom:2px;}
.nut-plan-targets strong{font-family:var(--font-display); font-size:15px; color:var(--charcoal);}
.nut-plan-targets span{font-size:10.5px; color:var(--charcoal-soft);}
.nut-plan-meta{margin-bottom:16px; padding-top:14px; border-top:1px solid var(--line-soft);}
.nut-plan-meta p{font-size:12.5px; color:var(--charcoal-soft); margin-bottom:6px;}
.nut-plan-meta strong{color:var(--charcoal); font-weight:700;}

/* ---- Индивидуальный план ---- */
.nut-individual-card{background:var(--blush); border-color:var(--blush-deep);}
.nut-individual-icon{
  width:40px; height:40px; border-radius:50%; background:var(--white); color:var(--blush-text);
  display:flex; align-items:center; justify-content:center; margin-bottom:12px;
}
.nut-individual-card strong{display:block; font-size:15px; color:var(--charcoal); margin-bottom:8px;}
.nut-individual-card p{font-size:12.5px; color:var(--charcoal-soft); line-height:1.5; margin-bottom:16px;}

@media (max-width:1080px){
  .nut-row-1{grid-template-columns:1fr;}
  .nut-row-2{grid-template-columns:1fr 1fr;}
  .nut-row-3{grid-template-columns:1fr 1fr;}
}
@media (max-width:820px){
  .nut-header-row{flex-direction:column; align-items:flex-start;}
  .nut-header-right{align-items:flex-start; width:100%;}
  .nut-row-2{grid-template-columns:1fr;}
  .nut-row-3{grid-template-columns:1fr;}
  .nut-result-grid{grid-template-columns:1fr;}
}

/* ===================== NAV CABINET BUTTON ===================== */
.nav-quiz-link{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--charcoal); color:var(--ivory)!important;
  font-weight:700!important; font-size:13.5px!important;
  padding:11px 22px; border-radius:var(--radius-pill);
  transition:background .2s ease, transform .2s ease;
  flex-shrink:0;
}
.nav-quiz-link:hover{background:#000; transform:translateY(-1px);}
.nav-quiz-link::after{display:none;}
.main-nav a.is-active{color:var(--charcoal); position:relative;}
.main-nav a.is-active::after{content:''; position:absolute; left:0; bottom:-6px; width:100%; height:1.5px; background:var(--blush-deep);}

/* ===================== PAGE HEADER (breadcrumb hero for subpages) ===================== */
.page-header{
  padding:64px 0 56px; position:relative; overflow:hidden;
  border-bottom:1px solid var(--line-soft);
}
.page-header .wrap{position:relative; z-index:1;}
.page-header-blob{position:absolute; top:-120px; right:-100px; width:420px; opacity:0.4; z-index:0;}
.breadcrumb{font-size:12.5px; color:var(--charcoal-soft); margin-bottom:16px; display:flex; gap:8px; align-items:center;}
.breadcrumb a{color:var(--charcoal-soft); font-weight:600;}
.breadcrumb a:hover{color:var(--charcoal);}
.page-header h1{max-width:640px;}
.page-header .lede{margin-top:16px; max-width:560px;}

/* ===================== QUIZ ===================== */
.quiz-shell{
  max-width:640px; margin:0 auto; padding-top:64px; padding-bottom:100px;
}
.quiz-progress{
  display:flex; gap:6px; margin-bottom:40px;
}
.quiz-progress-seg{flex:1; height:4px; border-radius:4px; background:var(--taupe); overflow:hidden;}
.quiz-progress-seg span{display:block; height:100%; width:0%; background:var(--blush-deep); transition:width .4s ease;}
.quiz-progress-seg.is-done span{width:100%;}
.quiz-progress-seg.is-current span{width:50%;}

.quiz-step{display:none;}
.quiz-step.is-active{display:block; animation:fadeUp .45s ease;}
.quiz-step-num{font-size:12.5px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:var(--blush-text); margin-bottom:12px;}
.quiz-step h2{margin-bottom:28px; max-width:520px;}

.quiz-options{display:flex; flex-direction:column; gap:12px; margin-bottom:32px;}
.quiz-option{
  display:flex; align-items:center; gap:16px; text-align:left;
  padding:18px 22px; border:1.5px solid var(--line); border-radius:var(--radius-md);
  background:var(--white); transition:all .2s ease; font-size:15px; font-weight:600; color:var(--charcoal);
}
.quiz-option:hover{border-color:var(--sage-deep); background:var(--ivory-deep);}
.quiz-option.is-selected{border-color:var(--blush-deep); background:var(--blush); box-shadow:0 0 0 1px var(--blush-deep) inset;}
.quiz-option-icon{
  width:38px; height:38px; border-radius:50%; background:var(--ivory-deep); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:var(--charcoal-soft);
}
.quiz-option.is-selected .quiz-option-icon{background:var(--white); color:var(--blush-text);}
.quiz-option-check{
  margin-left:auto; width:22px; height:22px; border-radius:50%; border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:transparent; flex-shrink:0;
}
.quiz-option.is-selected .quiz-option-check{background:var(--charcoal); border-color:var(--charcoal); color:var(--ivory);}

.quiz-phone-form{display:flex; flex-direction:column; gap:10px; margin-bottom:28px;}
.quiz-phone-form label{font-size:13px; font-weight:700; color:var(--charcoal-soft); margin-top:8px;}
.quiz-phone-form label:first-child{margin-top:0;}
.quiz-phone-form select{
  padding:16px 20px; border:1.5px solid var(--line); border-radius:var(--radius-pill);
  font-size:15px; background:var(--white); color:var(--charcoal); appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F1F1F' stroke-width='1.8'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 18px center; background-size:16px;
  padding-right:44px;
}
.quiz-phone-form select:focus{outline:none; border-color:var(--sage-deep);}
.phone-input-row{display:flex; align-items:center; gap:10px;}
.phone-code{
  flex-shrink:0; padding:16px 16px; border-radius:var(--radius-pill); background:var(--ivory-deep);
  font-size:15px; font-weight:700; color:var(--charcoal);
}
.phone-input-row input{
  flex:1; min-width:0; padding:16px 20px; border:1.5px solid var(--line); border-radius:var(--radius-pill);
  font-size:15px; background:var(--white);
}
.phone-input-row input:focus{outline:none; border-color:var(--sage-deep);}
.quiz-phone-error{
  font-size:12.5px; color:var(--blush-text); font-weight:700; min-height:0; display:none;
}
.quiz-phone-error.is-visible{display:block;}
.quiz-privacy-note{font-size:12px; color:var(--charcoal-soft);}

.quiz-nav{display:flex; align-items:center; justify-content:space-between; margin-top:8px;}
.quiz-back{font-size:13px; font-weight:700; color:var(--charcoal-soft);}
.quiz-back:hover{color:var(--charcoal);}
.quiz-back[disabled]{opacity:0; pointer-events:none;}

.quiz-skip-note{font-size:12.5px; color:var(--charcoal-soft); text-align:center; margin-top:20px;}

/* ===================== PLAN RESULT PAGE ===================== */
.plan-hero{
  text-align:center; max-width:640px; margin:0 auto 56px;
}
.plan-hero .plan-icon{
  width:64px; height:64px; border-radius:50%; background:var(--sage); color:var(--charcoal);
  display:flex; align-items:center; justify-content:center; margin:0 auto 20px;
}
.plan-summary-card{
  background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius-lg);
  padding:36px; max-width:720px; margin:0 auto 40px; box-shadow:var(--shadow-md);
}
.plan-summary-row{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 0; border-bottom:1px solid var(--line-soft); font-size:14.5px;
}
.plan-summary-row:last-child{border-bottom:none;}
.plan-summary-row span:first-child{color:var(--charcoal-soft);}
.plan-summary-row strong{font-family:var(--font-display); font-weight:500; font-size:16.5px;}

.plan-week{
  max-width:720px; margin:0 auto 48px; background:var(--ivory-deep); border-radius:var(--radius-lg); padding:32px;
}
.plan-week h3{margin-bottom:20px;}
.plan-week-list{display:flex; flex-direction:column; gap:10px;}
.plan-week-row{
  display:flex; align-items:center; gap:16px; background:var(--white); border-radius:var(--radius-sm);
  padding:14px 18px; font-size:14px;
}
.plan-week-day{font-weight:800; width:80px; flex-shrink:0; color:var(--blush-text); font-size:12.5px; text-transform:uppercase; letter-spacing:0.04em;}
.plan-week-rest{color:var(--charcoal-soft); font-style:italic;}

.plan-cta{
  text-align:center; max-width:560px; margin:0 auto;
}
.plan-trial-price{
  font-family:var(--font-display); font-size:44px; margin:18px 0 6px;
}
.plan-trial-note{font-size:13px; color:var(--charcoal-soft); margin-bottom:28px;}

/* ===================== PRICING (subscription) ===================== */
.sub-conditions{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:56px;
}
.sub-condition{text-align:center; padding:8px;}
.sub-condition-icon{
  width:46px; height:46px; border-radius:50%; background:var(--sage); color:var(--charcoal);
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px;
}
.sub-condition h4{font-size:14.5px; margin-bottom:6px;}
.sub-condition p{font-size:12.5px;}
@media (max-width:820px){.sub-conditions{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.sub-conditions{grid-template-columns:1fr;}}

.trial-banner{
  background:var(--charcoal); color:var(--ivory); border-radius:var(--radius-lg);
  padding:40px; display:flex; align-items:center; justify-content:space-between; gap:24px;
  margin-bottom:56px; flex-wrap:wrap;
}
.trial-banner h3{color:var(--ivory); font-size:24px; margin-bottom:8px;}
.trial-banner p{color:rgba(250,247,243,0.7); max-width:420px;}
.trial-banner-price{text-align:right; flex-shrink:0;}
.trial-banner-price strong{font-family:var(--font-display); font-size:38px; color:var(--blush); display:block;}
.trial-banner-price span{font-size:12px; color:rgba(250,247,243,0.6);}
@media (max-width:700px){.trial-banner{flex-direction:column; text-align:center;} .trial-banner-price{text-align:center;}}

/* ===================== WHY BLOCK (photo + text + stacked features) ===================== */
.why-container{
  display:grid;
  grid-template-columns:1fr 1.05fr 0.92fr;
  align-items:stretch;
  column-gap:56px;
}
.why-intro-col{display:flex; flex-direction:column; justify-content:center; gap:38px;}
.why-intro h2{margin:14px 0 0;}
.why-dash{display:block; width:26px; height:2px; background:var(--charcoal-soft); opacity:0.35; margin:18px 0;}
.why-lede{font-size:16px; line-height:1.65; color:var(--charcoal-soft); margin:0;}
.why-cta-wrap{margin:0;}

.why-photo{position:relative; min-height:100%; border-radius:var(--radius-lg); overflow:hidden;}
.why-photo img{width:100%; height:100%; object-fit:cover; display:block;}

.why-features{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; justify-content:center;
}
.why-feature{display:flex; align-items:flex-start; gap:16px; padding:20px 0;}
.why-feature:first-child{padding-top:0;}
.why-feature:last-child{padding-bottom:0;}
.why-feature:not(:first-child){border-top:1px solid var(--line-soft);}
.why-feature-icon{
  width:50px; height:50px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.why-feature-icon-sage{background:rgba(143,162,131,0.18); color:var(--sage-deep);}
.why-feature-icon-blush{background:rgba(227,169,174,0.24); color:var(--blush-text);}
.why-feature-text h3{font-size:17px; font-weight:700; color:var(--charcoal); margin:0 0 6px; line-height:1.3;}
.why-feature-text p{font-size:14px; line-height:1.6; color:var(--charcoal-soft); margin:0;}

@media (max-width:1000px){
  .why-container{display:flex; flex-direction:column;}
  .why-intro-col{display:contents;}
  .why-intro{order:1;}
  .why-intro h2{font-size:34px;}
  .why-cta-wrap{order:4; margin-top:22px; text-align:center;}
  .why-photo{
    order:2; margin:28px 0 32px; border-radius:22px; overflow:hidden;
    aspect-ratio:4/3; min-height:0;
  }
  .why-features{order:3; display:flex; flex-direction:column;}
}
@media (max-width:460px){
  .why-intro h2{font-size:30px;}
}

/* ===================== STORIES BLOCK ("Истории женщин") — auto-rotating carousel ===================== */
.stories-head{max-width:720px; margin:0 auto 48px; text-align:center; display:flex; flex-direction:column; align-items:center;}
.stories-head h2{margin:14px 0 16px;}
.stories-sub{font-size:16.5px; line-height:1.6; color:var(--charcoal-soft); max-width:640px; margin:0;}

.stories-carousel{
  max-width:720px; margin:0 auto; overflow:hidden;
}
.stories-track{
  display:flex;
  transition:transform .5s cubic-bezier(.65,0,.35,1);
  cursor:grab;
}
.stories-track.is-dragging{transition:none; cursor:grabbing;}

.stories-card{
  flex:0 0 100%; min-width:0;
  display:flex; flex-direction:column;
  background:rgba(255,255,255,0.72);
  border:1px solid #E9E4DE;
  border-radius:22px;
  padding:36px 40px 30px;
  user-select:none;
}

.stories-pain{
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-body); font-weight:800; font-size:16px; letter-spacing:0.03em; text-transform:uppercase;
  color:var(--blush-text); margin:0 0 20px;
}
.stories-pain svg{color:var(--blush-deep); flex-shrink:0; width:14px; height:14px;}

.stories-quote{
  position:relative; font-family:var(--font-display); font-weight:400; font-size:22px; line-height:1.5;
  color:var(--charcoal); margin:0; flex-grow:1;
}
.stories-quote-mark{color:var(--blush-deep); font-size:27px; line-height:0; margin-right:2px; font-family:var(--font-display);}

.stories-foot{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin-top:26px; padding-top:20px; border-top:1px solid var(--line-soft);
}
.stories-author{font-size:13.5px; font-weight:700; color:var(--charcoal);}
.stories-tag{
  font-size:12px; font-weight:600; color:var(--sage-text); background:#F0F1E9;
  border-radius:999px; padding:6px 12px; white-space:nowrap;
}

/* ---- controls: dots + pause toggle ---- */
.stories-controls{
  display:flex; align-items:center; justify-content:center;
  margin-top:32px;
}
.stories-dots{display:flex; align-items:center; gap:10px;}
.stories-dot{
  width:8px; height:8px; border-radius:50%; padding:0;
  background:var(--line); border:none;
  transition:background .25s ease, transform .25s ease;
}
.stories-dot:hover{background:var(--blush-deep);}
.stories-dot.is-active{background:var(--blush-deep); transform:scale(1.3);}

@media (min-width:1200px){
  .stories-block .wrap{padding-inline:64px;}
}
@media (max-width:767px){
  .stories-carousel{max-width:none; margin:0;}
  .stories-track{gap:14px;}
  .stories-card{flex:0 0 82%; padding:22px 20px 18px; border-radius:16px;}
  .stories-pain{font-size:12.5px; margin-bottom:14px;}
  .stories-quote{font-size:15.5px; line-height:1.45;}
  .stories-author{font-size:13px; font-weight:600;}
  .stories-tag{font-size:11px; padding:5px 10px;}
  .stories-foot{margin-top:16px; padding-top:14px;}
  .stories-head{text-align:center;}
  .stories-controls{margin-top:24px;}
}

@media (prefers-reduced-motion:reduce){
  .stories-track{transition:none;}
}

/* ===================== PRICING BLOCK (homepage "Выберите свой формат") ===================== */

/* ---- 4 key features row: editorial numbering 01–04 (per ТЗ) ---- */
.pricing-features{
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr));
  max-width:1380px; margin:52px auto 0;
}
.pricing-feature{
  text-align:left; padding:0 28px; position:relative;
}
.pricing-feature:not(:first-child){
  border-left:1px solid rgba(31,31,31,0.08);
}
.pricing-feature:first-child{padding-left:0;}
.pricing-feature-number{
  display:flex; align-items:baseline; gap:8px; margin-bottom:16px; line-height:1;
}
.pricing-feature-number span:first-child{
  font-family:var(--font-display); font-weight:400; font-size:46px;
  color:var(--blush-deep); line-height:1;
}
.pricing-feature-number span:last-child{
  font-size:14px; color:var(--blush-deep);
}
.pricing-feature h3{
  font-family:var(--font-body); font-weight:600; font-size:19px; line-height:1.25;
  color:var(--charcoal); margin:0 0 10px;
}
.pricing-feature p{font-size:15px; line-height:1.5; color:var(--charcoal-soft); margin:0;}
.pricing-features-note{
  text-align:center; font-size:13px; color:var(--charcoal-soft);
  max-width:720px; margin:32px auto 0;
}

/* ---- 3 plan cards ---- */
.pricing-grid{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px;
  align-items:stretch; max-width:1160px; margin:56px auto 0;
}
.plan-card{
  display:flex; flex-direction:column;
  background:var(--white); border:1px solid var(--line-soft); border-radius:22px;
  padding:34px 26px 26px; text-align:center; position:relative;
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.plan-card:hover{border-color:#DCD5CC; transform:translateY(-2px); box-shadow:var(--shadow-sm);}
.plan-card--featured{
  background:#FDF6F5; border-color:var(--blush-deep);
  margin-top:-12px; padding-top:44px; padding-bottom:32px;
}
.plan-card--featured:hover{border-color:var(--blush-deep); box-shadow:var(--shadow-md);}
.plan-badge{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--blush-deep); color:var(--ivory); font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.05em; padding:8px 20px; border-radius:999px; white-space:nowrap;
}
.plan-card h3{font-family:var(--font-display); font-weight:500; font-size:19px; margin:0 0 16px;}
.plan-amount{font-family:var(--font-display); font-size:36px; color:var(--charcoal); line-height:1.1;}
.plan-note{font-size:13px; color:var(--charcoal-soft); margin:8px 0 0;}
.plan-save{
  display:inline-block; margin-top:14px; font-size:12px; font-weight:700;
  color:var(--blush-text); background:var(--white); border-radius:999px; padding:6px 14px;
}
.plan-save-neutral{color:var(--sage-text); background:#F0F1E9;}
/* .plan-body pushes the CTA to a shared baseline across all 3 cards via flex,
   regardless of description length — no fixed heights/min-heights needed */
.plan-body{
  flex:1; display:flex; flex-direction:column; justify-content:flex-end;
  margin-top:22px; padding-top:22px; border-top:1px solid var(--line-soft);
}
.plan-desc{font-size:13.5px; line-height:1.65; color:var(--charcoal-soft); margin:0 0 22px;}
.plan-card .btn{width:100%;}
.plan-cta-sage{background:var(--sage-deep); color:var(--ivory); border:none;}
.plan-cta-sage:hover{background:#8B9B84; box-shadow:var(--shadow-md); transform:translateY(-2px);}
.plan-cta-sage:active{background:#8B9B84; box-shadow:var(--shadow-sm); transform:scale(0.96); transition-duration:.1s;}

/* ---- Reassurance zone: 70/30 split ---- */
.pricing-reassurance{
  display:grid; grid-template-columns:2.3fr 1fr; gap:20px;
  max-width:1160px; margin:64px auto 0; align-items:stretch;
}
.reassurance-card{
  display:grid; grid-template-columns:repeat(3,1fr);
  padding:8px;
}
.reassurance-item{display:flex; align-items:flex-start; gap:14px; padding:0 24px; position:relative;}
.reassurance-item + .reassurance-item::before{
  content:""; position:absolute; left:0; top:4px; bottom:4px; width:1px; background:var(--line-soft);
}
.reassurance-icon{flex-shrink:0; display:flex; align-items:center; justify-content:center; margin-top:2px;}
.reassurance-icon-blush{color:var(--blush-deep);}
.reassurance-icon-sage{color:var(--sage-deep);}
.reassurance-item h4{font-size:14.5px; font-weight:700; color:var(--charcoal); margin:0 0 5px; line-height:1.3;}
.reassurance-item p{font-size:12.5px; line-height:1.5; color:var(--charcoal-soft); margin:0;}

.guarantee-card{
  background:#FDF6F5; border:1px solid var(--blush-deep); border-radius:20px;
  padding:24px 26px; display:flex; align-items:flex-start; gap:14px;
}
.guarantee-icon{
  flex-shrink:0; color:var(--blush-deep);
  display:flex; align-items:center; justify-content:center; margin-top:2px;
}
.guarantee-text h4{font-family:var(--font-display); font-weight:500; font-size:16.5px; margin:0 0 8px; line-height:1.3;}
.guarantee-text p{font-size:13px; line-height:1.6; color:var(--charcoal-soft); margin:0 0 12px;}
.guarantee-link{
  display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700;
  color:var(--charcoal); text-decoration:underline; text-underline-offset:3px;
}

@media (max-width:1199px){
  .pricing-features{
    grid-template-columns:repeat(2, minmax(0,1fr));
    max-width:680px; row-gap:36px;
  }
  .pricing-feature{border-left:none; padding:0 24px;}
  .pricing-feature:nth-child(2n){border-left:1px solid rgba(31,31,31,0.08);}
  .pricing-feature:nth-child(n+3){padding-top:28px; border-top:1px solid rgba(31,31,31,0.08);}
  .pricing-feature:first-child, .pricing-feature:nth-child(2){padding-top:0;}
}
@media (max-width:767px){
  .pricing-features{grid-template-columns:1fr; row-gap:0; max-width:none;}
  .pricing-feature{
    border-left:none !important; padding:24px 0 !important;
    border-top:1px solid rgba(31,31,31,0.08);
  }
  .pricing-feature:first-child{padding-top:0 !important; border-top:none;}
  .pricing-feature-number span:first-child{font-size:36px;}
  .pricing-feature h3{font-size:18px;}
  .pricing-feature p{font-size:15px;}
}

/* ---- plan cards + reassurance zone: unrelated to the 01–04 numbering
   above, kept on their own original breakpoint ---- */
@media (max-width:1100px){
  .pricing-grid{grid-template-columns:1fr; max-width:480px;}
  .plan-card--featured{order:-1; margin-top:0;}
  .pricing-reassurance{grid-template-columns:1fr;}
  .reassurance-card{grid-template-columns:1fr; gap:20px;}
  .reassurance-item{padding:0;}
  .reassurance-item + .reassurance-item::before{display:none; content:none;}
  .reassurance-item + .reassurance-item{border-top:1px solid var(--line-soft); padding-top:18px; margin-top:2px;}
}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---- Mobile-only lifestyle photo (between subtitle and accordion) ---- */
.pricing-photo{display:none;}
@media (max-width:767px){
  /* the intro block (eyebrow/H2/lede) uses browser-default heading/paragraph
     margins sitewide — fine elsewhere, but on this compact mobile pricing
     layout it reads as too much dead air, so tighten just here */
  #pricing-home .section-head{margin-bottom:0; gap:0;}
  #pricing-home .eyebrow{margin:0 0 12px;}
  #pricing-home .section-head h2{margin:0 0 12px;}
  #pricing-home .section-head .lede{margin-top:0;}

  .pricing-photo{
    display:block; position:relative; margin-top:32px;
    border-radius:20px; overflow:hidden; aspect-ratio:4/3.1;
  }
  .pricing-photo img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center 22%;
  }
  .pricing-photo::after{
    content:''; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(to top, rgba(20,16,14,0.78) 0%, rgba(20,16,14,0.32) 42%, transparent 68%);
  }
  .pricing-photo-badge{
    position:absolute; bottom:20px; right:20px; z-index:2;
    color:var(--ivory);
    font-size:11px; font-weight:700; line-height:1.35; text-align:right;
    text-shadow:0 1px 4px rgba(0,0,0,0.4);
  }
  .pricing-photo-text{position:absolute; left:0; right:0; bottom:0; z-index:1; padding:20px;}
  .pricing-photo-text h3{
    font-family:var(--font-display); font-weight:500; font-size:19px;
    color:var(--ivory); margin:0 0 6px; line-height:1.3;
  }
  .pricing-photo-h3-line2{display:block;}
  .pricing-photo-text p{font-size:13px; color:rgba(250,247,243,0.85); margin:0; padding-right:96px;}
}

/* ---- Mobile-only compact selectable plan cards (radio-group) ----
   Desktop keeps the existing large .pricing-grid cards untouched; on
   mobile that grid is swapped out for this compact stacked version. */
.pricing-radio-group{display:none;}
.pricing-radio-cta{display:none;}

@media (max-width:767px){
  .pricing-grid{display:none;}

  .pricing-radio-group{
    display:flex; flex-direction:column; gap:14px;
    margin:28px 0 0; border:none; padding:0;
  }
  .plan-radio-card{
    position:relative; display:block; cursor:pointer;
    background:var(--white); border:1px solid var(--line-soft);
    border-radius:22px; padding:18px 20px;
    transition:background .2s ease, border-color .2s ease;
  }
  .plan-radio-card input{
    position:absolute; opacity:0; width:1px; height:1px;
    margin:0; pointer-events:none;
  }
  .plan-radio-card.is-selected{
    background:rgba(227,169,174,0.05);
    border-color:rgba(227,169,174,0.85);
  }
  .plan-radio-card:has(input:focus-visible){outline:2px solid var(--sage-deep); outline-offset:2px;}

  .plan-radio-badge{
    display:inline-block; margin-bottom:10px;
    background:var(--blush-deep); color:var(--ivory);
    font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
    padding:5px 12px; border-radius:999px;
  }
  .plan-radio-row{display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .plan-radio-info{display:flex; flex-direction:column;}
  .plan-radio-title{font-family:var(--font-display); font-weight:500; font-size:17px; color:var(--charcoal); line-height:1.3;}
  .plan-radio-price{font-family:var(--font-display); font-size:25px; color:var(--charcoal); line-height:1.2; margin-top:3px;}
  .plan-radio-note{font-size:12.5px; color:var(--charcoal-soft); margin-top:3px;}
  .plan-radio-save{font-size:12px; font-weight:700; color:var(--blush-text); margin-top:5px;}
  .plan-radio-save-neutral{color:var(--sage-text);}

  .plan-radio-dot{
    flex-shrink:0; width:24px; height:24px; border-radius:50%;
    border:1.5px solid var(--line-soft); position:relative;
    transition:border-color .2s ease;
  }
  .plan-radio-card.is-selected .plan-radio-dot{border-color:var(--blush-deep);}
  .plan-radio-dot::after{
    content:''; position:absolute; inset:5px; border-radius:50%;
    background:var(--blush-deep); opacity:0; transition:opacity .2s ease;
  }
  .plan-radio-card.is-selected .plan-radio-dot::after{opacity:1;}

  .pricing-radio-cta{
    display:flex; width:100%; margin-top:24px;
    min-height:60px; border-radius:20px; font-size:14px;
  }
}

/* ---- Mobile accordion "Что входит в каждый тариф" ----
   Hidden on tablet/desktop (≥768px), where the 4-feature row above already
   covers this; shown only on narrow mobile, replacing that row entirely
   (per spec: no duplicated feature list right above the accordion). */
.pricing-accordion{display:none;}

.pricing-accordion-trigger{
  width:100%; display:flex; align-items:center; gap:12px;
  background:var(--ivory); border:1px solid var(--line); border-radius:16px;
  min-height:60px; padding:14px 16px; margin-top:32px;
  font-family:var(--font-body); text-align:left; cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.pricing-accordion-trigger:hover{border-color:#DCD5CC;}
.pricing-accordion-trigger:active{background:var(--ivory-deep);}
.pricing-accordion-trigger:focus-visible{outline:2px solid var(--sage-deep); outline-offset:2px;}
.pricing-accordion-spark{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  color:var(--blush-deep); transform-origin:center;
  animation:pricingSparkSway 2.4s ease-in-out infinite;
}
.pricing-accordion-label{flex:1; font-size:16px; font-weight:600; color:var(--charcoal);}
.pricing-accordion-chevron{
  flex-shrink:0; color:var(--charcoal-soft);
  transition:transform 250ms ease;
  animation:pricingChevronBob 1.6s ease-in-out infinite;
}
/* once open, both idle hints settle — the rotated chevron alone is enough
   feedback at that point, no need to keep drawing the eye */
.pricing-accordion-trigger[aria-expanded="true"] .pricing-accordion-chevron{
  transform:rotate(180deg); animation:none;
}
.pricing-accordion-trigger[aria-expanded="true"] .pricing-accordion-spark{animation:none;}

@keyframes pricingSparkSway{
  0%, 100%{transform:rotate(-12deg);}
  50%{transform:rotate(12deg);}
}
@keyframes pricingChevronBob{
  0%, 100%{transform:translateY(0);}
  50%{transform:translateY(3px);}
}

/* Height animation via grid-template-rows 0fr -> 1fr: adapts to content
   height automatically, no JS measurement, stays in normal document flow
   (no modal/overlay/absolute-position), pushes the plan cards below down
   as it grows — exactly as required. */
.pricing-accordion-wrap{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows 280ms ease;
}
.pricing-accordion-wrap.is-open{grid-template-rows:1fr;}
.pricing-accordion-content{
  overflow:hidden; opacity:0; min-height:0;
  transition:opacity 220ms ease;
}
.pricing-accordion-wrap.is-open .pricing-accordion-content{opacity:1;}

.pricing-accordion-item{
  display:flex; align-items:flex-start; gap:14px;
  padding:18px 4px;
}
.pricing-accordion-item:first-child{padding-top:20px;}
.pricing-accordion-item:not(:first-child){border-top:1px solid rgba(31,31,31,0.08);}
.pricing-accordion-item-number{
  display:flex; align-items:baseline; gap:4px; flex-shrink:0; width:46px; line-height:1;
}
.pricing-accordion-item-number span:first-child{
  font-family:var(--font-display); font-weight:400; font-size:25px; color:var(--blush-deep); line-height:1;
}
.pricing-accordion-item-number span:last-child{font-size:10px; color:var(--blush-deep);}
.pricing-accordion-item h4{font-size:15px; font-weight:600; color:var(--charcoal); margin:0 0 4px; line-height:1.35;}
.pricing-accordion-item p{font-size:14px; line-height:1.45; color:var(--charcoal-soft); margin:0;}

@media (max-width:767px){
  .pricing-accordion{display:block;}
  .pricing-features, .pricing-features-note{display:none;}
  .pricing-grid{margin-top:28px;}
}

@media (prefers-reduced-motion:reduce){
  .pricing-accordion-wrap{transition:none;}
  .pricing-accordion-content{transition:none;}
  .pricing-accordion-chevron{transition:none; animation:none;}
  .pricing-accordion-spark{animation:none;}
}

