/* ===== Марафон 21 день — демо-макет =====
   Палитра взята с референс-скринов из ТЗ:
   светлый тёплый фон + маджента-акцент + шалфейный зелёный + глубокий сливовый текст */

:root{
  --ink:#33263B;
  --ink-2:#6B5D74;
  --bg:#FAF6F8;
  --bg-2:#FFFFFF;
  --mag:#D94FC4;
  --mag-2:#B233A6;
  --sage:#9DB3A9;
  --sage-2:#6E8C81;
  --lav:#C9B8EE;
  --coral:#E96060;
  --line:rgba(51,38,59,.10);
  --shadow:0 18px 50px rgba(51,38,59,.10);
  --r:22px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font:400 17px/1.6 'Manrope',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);
  /* фон — белая штукатурка с фото заказчицы (IMG_7547), бесшовная плитка img/wall.jpg;
     цвет задаём через background-color, иначе шорткат background стёр бы картинку */
  background-color:var(--bg);
  background-image:url("img/wall.jpg");
  background-size:760px auto;
  background-blend-mode:multiply;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:'Unbounded',sans-serif;font-weight:800;line-height:1.1;margin:0}
em{font-style:normal;color:var(--mag)}
ul{margin:0;padding:0;list-style:none}

.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.sec{padding:96px 0}
.h2{font-size:clamp(28px,4.2vw,46px);letter-spacing:-.02em}
.h2--c{text-align:center}
.h3{font-family:'Unbounded',sans-serif;font-size:22px;font-weight:700;margin:0 0 18px}
.lead{font-size:19px;color:var(--ink-2);max-width:640px;margin:16px 0 0}
.lead--c{margin-inline:auto;text-align:center}
.big{font-size:19px;color:var(--ink-2);margin:18px 0 0}
.big b{color:var(--ink)}
.eyebrow{
  font:600 13px/1 'Manrope',sans-serif;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mag-2);margin:0 0 18px;
}
.note{font-size:14px;color:var(--ink-2);opacity:.75;margin:18px 0 0}
.note--c{text-align:center}

/* --- кнопки --- */
.btn{
  display:inline-block;padding:16px 30px;border-radius:999px;
  background:linear-gradient(135deg,var(--mag),#A64BD8);
  color:#fff;text-decoration:none;font-weight:700;font-size:16px;
  box-shadow:0 12px 28px rgba(217,79,196,.32);
  transition:transform .18s ease, box-shadow .18s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(217,79,196,.42)}
.btn--sm{padding:11px 22px;font-size:15px}
.btn--big{padding:19px 40px;font-size:18px;width:100%;text-align:center;margin-top:26px}
.btn--ghost{
  background:transparent;color:var(--ink);border:1.5px solid var(--line);box-shadow:none;
}
.btn--ghost:hover{border-color:var(--mag);color:var(--mag-2);box-shadow:none}

/* --- шапка --- */
.hdr{
  position:sticky;top:0;z-index:50;
  background:rgba(252,250,251,.88);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.hdr__in{display:flex;align-items:center;gap:28px;height:74px}
.logo{
  display:flex;align-items:baseline;gap:7px;text-decoration:none;
  font-family:'Unbounded',sans-serif;font-weight:800;font-size:22px;
}
.logo{font-size:20px;gap:6px}
.logo b{color:var(--ink)}
.logo span{font-family:'Unbounded',sans-serif;font-size:20px;font-weight:800;color:var(--mag)}
.nav{display:flex;gap:26px;margin-left:auto;font-size:15px;font-weight:600}
.nav a{text-decoration:none;color:var(--ink-2);transition:color .15s}
.nav a:hover{color:var(--mag)}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px}

/* --- герой --- */
.hero{padding:60px 0 20px;position:relative;overflow:hidden}
.hero__in{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(34px,5.6vw,64px);letter-spacing:-.03em;margin:0 0 26px}
.pains li{
  position:relative;padding-left:30px;margin:11px 0;color:var(--ink-2);font-size:17px;
}
.pains li::before{
  content:"";position:absolute;left:0;top:.62em;width:14px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--mag),var(--lav));
}
.stop{
  display:inline-flex;align-items:center;gap:10px;margin:26px 0 0;
  font-family:'Unbounded',sans-serif;font-weight:700;font-size:19px;letter-spacing:.02em;
}
.stop span{
  background:linear-gradient(135deg,var(--mag),#A64BD8);color:#fff;
  padding:7px 16px;border-radius:999px;font-size:16px;
}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}

.hero__pic{position:relative;display:flex;justify-content:center;max-width:420px;margin-inline:auto;width:100%}
.hero__pic img{
  position:relative;z-index:2;max-height:660px;width:auto;
  filter:drop-shadow(0 22px 26px rgba(51,38,59,.13));
  /* кадр обрезан по колено — растворяем низ в стене */
  -webkit-mask-image:linear-gradient(to bottom,#000 80%,rgba(0,0,0,0) 99%);
  mask-image:linear-gradient(to bottom,#000 80%,rgba(0,0,0,0) 99%);
}
.blob{
  position:absolute;z-index:1;inset:6% -6% 10% -6%;
  background:radial-gradient(58% 58% at 50% 42%,rgba(217,79,196,.18),rgba(201,184,238,.17) 55%,rgba(250,246,248,0) 74%);
  filter:blur(6px);
}
.blob--sage{
  background:radial-gradient(58% 58% at 50% 45%,rgba(157,179,169,.26),rgba(201,184,238,.15) 58%,rgba(250,246,248,0) 76%);
}
.chip{
  position:absolute;z-index:3;display:flex;align-items:center;gap:12px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:18px;
  padding:14px 18px;box-shadow:var(--shadow);
}
.chip b{font-family:'Unbounded',sans-serif;font-size:24px;color:var(--mag)}
.chip span{font-size:13px;line-height:1.35;color:var(--ink-2)}
.chip--1{left:-26%;top:13%}
.chip--2{right:-28%;bottom:6%}
.chip--2 b{color:var(--sage-2)}

/* тень под ногами: фигура должна касаться пола, а не висеть.
   Только там, где фигура целиком; у «Обо мне» кадр обрезан по голени — там растворяем низ. */
.price__pic::after{
  content:"";position:absolute;z-index:1;left:12%;right:12%;bottom:2%;height:26px;
  background:radial-gradient(50% 50% at 50% 50%,rgba(51,38,59,.26),rgba(51,38,59,0) 70%);
  filter:blur(3px);
}

/* --- решение --- */
.sec--solution{background:rgba(255,255,255,.70);border-block:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.card{
  background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:var(--r);
  padding:30px 26px;transition:transform .2s ease,box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card i{
  display:inline-block;font-style:normal;font-family:'Unbounded',sans-serif;font-weight:700;
  font-size:13px;color:var(--mag);letter-spacing:.08em;margin-bottom:14px;
}
.card h3{font-size:20px;margin:0 0 10px}
.card p{margin:0;color:var(--ink-2);font-size:16px}

/* --- обо мне --- */
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
.about__pic{position:relative;display:flex;justify-content:center}
.about__pic img{
  position:relative;z-index:2;max-height:620px;width:auto;
  filter:drop-shadow(0 20px 24px rgba(51,38,59,.12));
  /* исходный кадр обрезан по голени — низ уводим в стену, иначе виден ровный срез */
  -webkit-mask-image:linear-gradient(to bottom,#000 74%,rgba(0,0,0,0) 99%);
  mask-image:linear-gradient(to bottom,#000 74%,rgba(0,0,0,0) 99%);
}
.about__txt .h2{margin-bottom:6px}
.creds{margin:28px 0 0;display:grid;gap:12px}
.creds li{
  position:relative;padding-left:34px;color:var(--ink-2);font-size:16px;
}
.creds li::before{
  content:"✓";position:absolute;left:0;top:0;
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:rgba(157,179,169,.28);color:var(--sage-2);font-size:12px;font-weight:700;
}
.stats{display:flex;flex-wrap:wrap;gap:34px;margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}
.stats b{display:block;font-family:'Unbounded',sans-serif;font-size:36px;color:var(--mag);line-height:1}
.stats span{font-size:14px;color:var(--ink-2);display:block;margin-top:6px;max-width:150px}

/* --- что получишь --- */
.sec--get{background:rgba(255,255,255,.70);border-block:1px solid var(--line)}
.gets{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:44px 0 60px}
.gets li{
  background:linear-gradient(160deg,rgba(217,79,196,.07),rgba(201,184,238,.10));
  border:1px solid var(--line);border-radius:18px;padding:24px;text-align:center;
}
.gets b{display:block;font-family:'Unbounded',sans-serif;font-size:26px;letter-spacing:-.02em}
.gets span{display:block;margin-top:6px;font-size:15px;color:var(--ink-2)}

.duo{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.duo__col{
  background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:var(--r);padding:34px 30px;
}
.duo__col--sage{background:rgba(157,179,169,.14)}
.ticks{display:grid;gap:14px}
.ticks li{position:relative;padding-left:32px;color:var(--ink-2);font-size:16px}
.ticks li::before{
  content:"✅";position:absolute;left:0;top:-1px;font-size:15px;
}

/* --- еда --- */
/* 11 фото + плашка про видео-рецепты = 12 ячеек, сетка 4×3 закрывается ровно */
.sec--food{background:rgba(255,255,255,.70);border-block:1px solid var(--line)}
.food{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}
.food__i{
  margin:0;overflow:hidden;border-radius:16px;border:1px solid var(--line);
  box-shadow:0 6px 18px rgba(51,38,59,.07);background:var(--bg);
}
.food__i img{
  width:100%;aspect-ratio:1/1;object-fit:cover;display:block;cursor:zoom-in;
  transition:transform .4s ease;
}
.food__i:hover img{transform:scale(1.06)}
.food__note{
  display:flex;flex-direction:column;justify-content:center;gap:8px;
  border-radius:16px;padding:22px 24px;text-align:center;
  background:linear-gradient(150deg,var(--mag),#A64BD8);color:#fff;
  box-shadow:0 12px 28px rgba(217,79,196,.28);
}
.food__note b{font-family:'Unbounded',sans-serif;font-size:19px;line-height:1.2}
.food__note span{font-size:14px;line-height:1.4;opacity:.92}

/* --- результаты «до/после» --- */
/* карточка на человека: фото + имя + результат + история.
   Сетка, а не CSS-columns: заказчица просила сохранить порядок фото,
   а колонки заполняются сверху вниз. Пропорции коллажей разные — contain, без кропа. */
.ba{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.ba__card{
  display:flex;flex-direction:column;overflow:hidden;
  background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:20px;
  box-shadow:0 8px 24px rgba(51,38,59,.07);
}
.ba__i{
  margin:0;overflow:hidden;
  background:linear-gradient(160deg,rgba(217,79,196,.06),rgba(201,184,238,.10));
}
.ba__i img{
  width:100%;aspect-ratio:4/5;object-fit:contain;display:block;cursor:zoom-in;
  transition:transform .35s ease;
}
.ba__card:hover .ba__i img{transform:scale(1.04)}
.ba__meta{padding:20px 22px 24px;display:grid;gap:10px;justify-items:start}

/* пустые слоты под текст, который заказчица ещё не прислала */
.slot{
  border:1px dashed rgba(217,79,196,.45);border-radius:10px;
  padding:6px 12px;color:var(--mag-2);background:rgba(217,79,196,.05);
}
.slot--name{font-family:'Unbounded',sans-serif;font-weight:700;font-size:15px}
.slot--res{font-size:13px;font-weight:600}
.slot--story{margin:0;font-size:13px;line-height:1.45;color:var(--ink-2);border-color:var(--line);background:rgba(51,38,59,.03)}

/* лайтбокс */
.lb{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:rgba(28,20,34,.92);backdrop-filter:blur(4px);padding:56px 20px;
}
.lb[hidden]{display:none}
.lb img{max-width:min(920px,100%);max-height:100%;border-radius:12px;object-fit:contain}
.lb__x,.lb__nav{
  position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;cursor:pointer;
  border-radius:50%;display:grid;place-items:center;line-height:1;
  transition:background .15s;
}
.lb__x:hover,.lb__nav:hover{background:rgba(255,255,255,.26)}
.lb__x{top:18px;right:18px;width:44px;height:44px;font-size:30px}
.lb__nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:34px}
.lb__nav--prev{left:16px}
.lb__nav--next{right:16px}

/* --- цена --- */
.sec--price{background:rgba(255,255,255,.70);border-top:1px solid var(--line)}
.price{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.price__pic{display:flex;justify-content:center;position:relative}
.price__pic::before{
  content:"";position:absolute;inset:8% -4% 8% -4%;
  background:radial-gradient(58% 58% at 50% 45%,rgba(217,79,196,.16),rgba(157,179,169,.13) 56%,rgba(255,255,255,0) 76%);
}
.price__pic img{position:relative;z-index:2;max-height:600px;width:auto;filter:drop-shadow(0 20px 24px rgba(51,38,59,.12))}
.price__card{
  background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:28px;
  padding:44px 40px;box-shadow:var(--shadow);
}
.price__big{display:flex;align-items:baseline;gap:16px;margin:26px 0 22px}
.price__big b{font-family:'Unbounded',sans-serif;font-size:48px;color:var(--mag);letter-spacing:-.03em}
.price__big .perday{font-size:16px;font-weight:600;color:var(--sage-2)}

/* --- футер --- */
.ftr{background:var(--ink);color:#EFE9F2;padding:52px 0}
.ftr__in{display:grid;gap:10px;justify-items:center;text-align:center}
.ftr p{margin:0;font-size:15px;opacity:.8}
.ftr__sm{font-size:13px;opacity:.5}
.logo--f b{color:#EFE9F2}
.logo--f span{color:var(--lav)}

/* --- адаптив --- */
@media (max-width:1000px){
  .sec{padding:72px 0}
  .hero__in{grid-template-columns:1fr;gap:24px}
  .hero__pic{order:-1}
  .hero__pic img{max-height:440px}
  .chip--1{left:0}
  .chip--2{right:0}
  .about,.price{grid-template-columns:1fr;gap:34px}
  .about__pic img,.price__pic img{max-height:420px}
  .cards,.gets{grid-template-columns:repeat(2,1fr)}
  .duo{grid-template-columns:1fr}
  .ba{grid-template-columns:repeat(2,1fr)}
  .food{grid-template-columns:repeat(3,1fr)}
  .nav{
    position:absolute;top:74px;left:0;right:0;display:none;flex-direction:column;gap:0;
    background:var(--bg-2);border-bottom:1px solid var(--line);padding:8px 20px 18px;
  }
  .nav.is-open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid var(--line)}
  .burger{display:block;margin-left:auto}
  .hdr__in .btn--sm{margin-left:0}
}
@media (max-width:600px){
  body{font-size:16px}
  .sec{padding:56px 0}
  .cards,.gets{grid-template-columns:1fr}
  .ba{grid-template-columns:1fr;gap:16px}
  .food{grid-template-columns:repeat(2,1fr);gap:12px}
  .lb{padding:64px 8px}
  .lb__nav{width:42px;height:42px;font-size:28px}
  .price__card{padding:32px 24px}
  .hdr__in .btn--sm{display:none}
  .chip{padding:10px 14px}
  .chip b{font-size:20px}
  .chip span{font-size:12px}
  .stats{gap:22px}
}
