/* ============================================================
   SMART DIET — дизайн-система
   ============================================================ */
:root{
  --bg:#F8F6F1;
  --bg-2:#F0ECE3;
  --card:#FFFFFF;
  --ink:#1B1A18;
  --ink-2:#55524C;
  --ink-3:#8A867E;
  --line:rgba(27,26,24,.1);
  --line-2:rgba(27,26,24,.18);
  --red:#E63329;
  --red-2:#C7271F;
  --red-soft:#FCE9E7;
  --green:#8DC63F;
  --green-2:#6EA52A;
  --green-soft:#EEF6E1;
  --amber:#F4B942;
  --dark:#141312;
  --dark-2:#1E1D1B;

  --font-display:'Unbounded',system-ui,sans-serif;
  --font-body:'Manrope',system-ui,sans-serif;

  --text-hero:clamp(2.5rem,6.2vw,5.6rem);
  --text-display:clamp(1.9rem,4vw,3.3rem);
  --text-h2:clamp(1.6rem,3vw,2.5rem);
  --text-h3:clamp(1.15rem,1.7vw,1.4rem);

  --r-lg:24px;
  --r-md:16px;
  --r-sm:10px;
  --container:1200px;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow:0 24px 48px -28px rgba(27,26,24,.32);
  --shadow-sm:0 8px 20px -12px rgba(27,26,24,.25);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--ink);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
ul,ol{list-style:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:var(--text-display)}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-h3)}
p{text-wrap:pretty}
strong,b{font-weight:700}
.container{max-width:var(--container);margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.section{padding:clamp(64px,8vw,112px) 0}
.section--tight{padding:clamp(40px,5vw,72px) 0}
.section--dark{background:var(--dark);color:#fff}
.section--alt{background:var(--bg-2)}
.section-head{max-width:720px;margin-bottom:clamp(32px,4vw,56px)}
.section-head p{color:var(--ink-2);font-size:1.08rem;margin-top:16px;max-width:600px}
.section--dark .section-head p{color:rgba(255,255,255,.7)}
.section-head--row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;max-width:none;flex-wrap:wrap}
.section-head--row p{margin-top:0}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3);margin-bottom:18px;font-weight:700}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--red);border-radius:2px}
.section--dark .eyebrow{color:rgba(255,255,255,.55)}
.muted{color:var(--ink-2)}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:10001}
.skip-link:focus{left:16px;top:16px}
.grain{position:fixed;inset:0;pointer-events:none;z-index:998;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:999px;font-weight:700;font-size:.95rem;background:var(--red);color:#fff;position:relative;transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .3s,color .3s;box-shadow:0 10px 26px -12px rgba(230,51,41,.6);min-height:50px;white-space:nowrap;cursor:pointer;border:1.5px solid transparent}
.btn:hover{transform:translateY(-2px);background:var(--red-2);box-shadow:0 16px 32px -14px rgba(230,51,41,.65)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:3px solid rgba(230,51,41,.35);outline-offset:2px}
.btn svg{width:18px;height:18px;transition:transform .45s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-2);box-shadow:none}
.btn--ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:none}
.btn--light{background:#fff;color:var(--ink);box-shadow:0 10px 26px -14px rgba(0,0,0,.35)}
.btn--light:hover{background:#fff;color:var(--red)}
.btn--outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.4);box-shadow:none}
.btn--outline:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn--dark{background:var(--ink);box-shadow:none}
.btn--dark:hover{background:#000}
.btn--green{background:var(--green-2);box-shadow:0 10px 26px -12px rgba(110,165,42,.6)}
.btn--green:hover{background:#5d8f20}
.btn--sm{padding:11px 18px;font-size:.86rem;min-height:42px}
.btn--lg{padding:18px 32px;font-size:1.02rem;min-height:56px}
.btn--block{width:100%}
.btn[disabled]{opacity:.45;pointer-events:none}
.link{color:var(--red);font-weight:700;display:inline-flex;align-items:center;gap:6px}
.link:hover{text-decoration:underline}
.link svg{width:16px;height:16px}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:900;padding:14px 0;transition:transform .5s var(--ease),background .4s,padding .4s,box-shadow .4s;background:rgba(248,246,241,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.nav__row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav__logo img{height:40px;width:auto;transition:height .3s}
.nav__links{display:flex;gap:2px}
.nav__links a{padding:9px 13px;border-radius:999px;font-weight:600;font-size:.92rem;transition:background .3s,color .3s}
.nav__links a:hover{background:rgba(27,26,24,.06)}
.nav__links a.active{background:var(--ink);color:#fff}
.nav__cta{display:flex;align-items:center;gap:8px}
.nav__phone{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.92rem;padding:9px 12px;border-radius:999px;transition:background .3s}
.nav__phone svg{width:16px;height:16px}
.nav__phone:hover{background:rgba(27,26,24,.06)}
.nav--on-dark:not(.nav--scrolled){background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav--on-dark:not(.nav--scrolled) .nav__links a,.nav--on-dark:not(.nav--scrolled) .nav__phone{color:#fff}
.nav--on-dark:not(.nav--scrolled) .nav__links a:hover,.nav--on-dark:not(.nav--scrolled) .nav__phone:hover{background:rgba(255,255,255,.14)}
.nav--on-dark:not(.nav--scrolled) .nav__links a.active{background:#fff;color:var(--ink)}
.nav--on-dark:not(.nav--scrolled) .nav__burger{background:rgba(255,255,255,.14)}
.nav--on-dark:not(.nav--scrolled) .nav__burger span{background:#fff}
.nav--scrolled{padding:8px 0}
.nav--scrolled .nav__logo img{height:34px}
.nav--hidden{transform:translateY(-110%)}
.nav__burger{display:none;width:46px;height:46px;border-radius:50%;background:rgba(27,26,24,.06);align-items:center;justify-content:center;flex-direction:column;gap:5px;flex:none}
.nav__burger span{width:20px;height:2px;background:var(--ink);transition:transform .4s,opacity .3s;border-radius:2px}
.nav--open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav--open .nav__burger span:nth-child(2){opacity:0}
.nav--open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:850;background:var(--bg);display:flex;flex-direction:column;justify-content:space-between;padding:96px 24px 32px;transform:translateY(-100%);transition:transform .6s var(--ease),visibility 0s .6s;visibility:hidden}
.mobile-menu.open{transform:translateY(0);visibility:visible;transition:transform .6s var(--ease)}
.mobile-menu__links a{font-family:var(--font-display);font-size:clamp(1.4rem,6vw,2rem);padding:12px 0;border-bottom:1px solid var(--line);display:block;font-weight:600}
.mobile-menu__cta{display:flex;flex-direction:column;gap:10px}
.mobile-menu__cta .btn{width:100%}

/* ---------- crumbs & page hero ---------- */
.crumbs{padding:92px 0 0;font-size:.82rem;color:var(--ink-3)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs li{display:flex;align-items:center;gap:6px}
.crumbs li+li::before{content:"/";opacity:.5}
.crumbs a:hover{color:var(--ink)}
.page-hero{padding:28px 0 clamp(40px,5vw,64px)}
.page-hero h1{max-width:820px}
.page-hero__lead{font-size:clamp(1.05rem,1.4vw,1.25rem);color:var(--ink-2);max-width:640px;margin-top:18px}
.page-hero__row{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center}
.page-hero__img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow)}
.page-hero__img img{width:100%;height:100%;object-fit:cover}
.page-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.page-hero__facts{display:flex;gap:26px;flex-wrap:wrap;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.page-hero__facts b{display:block;font-family:var(--font-display);font-size:1.4rem;font-weight:700;line-height:1}
.page-hero__facts span{font-size:.82rem;color:var(--ink-3)}
.crumbs+.section,.crumbs+.page-hero{padding-top:28px}
main>.section:first-child{padding-top:calc(92px + clamp(40px,5vw,64px))}

/* ---------- home hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--dark)}
.hero__bg{position:absolute;inset:-6% -4%;will-change:transform}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,18,.5) 0%,rgba(20,19,18,.1) 30%,rgba(20,19,18,.72) 72%,rgba(20,19,18,.96) 100%),radial-gradient(60% 50% at 18% 62%,rgba(230,51,41,.16),transparent 70%)}
.hero__content{position:relative;z-index:2;padding:130px 0 clamp(48px,7vh,90px);width:100%}
.hero__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:end}
.hero__title{font-size:var(--text-hero);line-height:.98;font-weight:700;margin:18px 0 22px;max-width:13ch}
.hero__title .line{display:block;overflow:hidden;padding-bottom:.06em}
.hero__title .line span{display:block}
.hero__title em{font-style:normal;color:var(--green)}
.hero__lead{font-size:clamp(1.02rem,1.3vw,1.2rem);max-width:520px;color:rgba(255,255,255,.82)}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.hero__eyebrow{color:rgba(255,255,255,.7)}
.hero__eyebrow::before{background:var(--green)}
.hero__side{display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.hero__promo{background:rgba(255,255,255,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-lg);padding:22px 24px;max-width:340px}
.hero__promo b{display:block;font-family:var(--font-display);font-size:1.05rem;margin-bottom:6px}
.hero__promo p{color:rgba(255,255,255,.72);font-size:.9rem}
.hero__promo code{display:inline-block;margin-top:12px;background:var(--green);color:var(--dark);padding:6px 12px;border-radius:8px;font-weight:800;letter-spacing:.14em;font-family:var(--font-display);font-size:.82rem}
.hero__stats{display:flex;gap:26px;margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);flex-wrap:wrap}
.hero__stat b{display:block;font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,2rem);font-weight:700;line-height:1}
.hero__stat span{font-size:.8rem;color:rgba(255,255,255,.62)}
.badge{position:absolute;z-index:3;background:rgba(255,255,255,.94);color:var(--ink);padding:10px 14px;border-radius:14px;font-size:.82rem;font-weight:700;display:flex;align-items:center;gap:8px;box-shadow:0 20px 40px -18px rgba(0,0,0,.5);will-change:transform}
.badge i{width:8px;height:8px;border-radius:50%;background:var(--green)}
.badge--1{top:24%;left:58%}
.badge--2{top:40%;left:74%}
.badge--3{top:54%;left:61%}
.hero__scroll{position:absolute;right:clamp(18px,4vw,40px);bottom:26px;z-index:3;display:flex;align-items:center;gap:12px;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.hero__scroll i{width:1px;height:44px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:#fff;animation:scrollLine 2.2s var(--ease) infinite}
@keyframes scrollLine{0%{top:-100%}60%{top:100%}100%{top:100%}}

/* ---------- marquee ---------- */
.marquee{background:var(--red);color:#fff;overflow:hidden;padding:14px 0;white-space:nowrap;font-family:var(--font-display);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.marquee__track{display:inline-flex;will-change:transform}
.marquee__track span{padding:0 26px;display:inline-flex;align-items:center;gap:26px}
.marquee__track span::after{content:"✦";opacity:.7}

/* ---------- cards ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.benefit{padding:28px 24px}
.benefit__icon{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--green-soft);color:var(--green-2);margin-bottom:20px}
.benefit__icon svg{width:24px;height:24px}
.benefit h3{font-size:1.05rem;margin-bottom:8px}
.benefit p{color:var(--ink-2);font-size:.93rem}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.stat b{display:block;font-family:var(--font-display);font-size:clamp(2rem,4vw,3.2rem);font-weight:700;line-height:1}
.stat b small{font-size:.5em;color:var(--red)}
.stat>span{display:block;margin-top:8px;color:var(--ink-2);font-size:.93rem}

/* ---------- programs ---------- */
.days{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 32px;align-items:center}
.days__label{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-right:8px;font-weight:700}
.days button{padding:10px 16px;border-radius:999px;border:1.5px solid var(--line-2);font-weight:700;font-size:.9rem;transition:all .3s var(--ease);min-height:44px;background:var(--card)}
.days button:hover{border-color:var(--ink)}
.days button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.section--dark .days button{background:transparent;color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.2)}
.section--dark .days button.active{background:#fff;color:var(--ink);border-color:#fff}
.days__hint{font-size:.85rem;color:var(--ink-3);margin-left:auto}
.section--dark .days__hint{color:rgba(255,255,255,.5)}
.pcard{overflow:hidden;display:flex;flex-direction:column;perspective:1200px}
.pcard__img{aspect-ratio:4/3;overflow:hidden;position:relative}
.pcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.pcard:hover .pcard__img img{transform:scale(1.05)}
.pcard__tag{position:absolute;top:14px;left:14px;background:var(--amber);color:var(--ink);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;padding:7px 12px;border-radius:999px}
.pcard__kcal{position:absolute;right:14px;bottom:14px;background:rgba(20,19,18,.72);backdrop-filter:blur(8px);padding:8px 12px;border-radius:10px;font-family:var(--font-display);font-size:.82rem;font-weight:700;color:#fff}
.pcard__body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.pcard__top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.pcard h3{font-size:1.15rem}
.pcard__short{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-2);font-weight:800;white-space:nowrap}
.pcard p{color:var(--ink-2);font-size:.92rem;flex:1}
.pcard__meta{display:flex;gap:14px;font-size:.8rem;color:var(--ink-3);flex-wrap:wrap}
.pcard__meta b{color:var(--ink)}
.pcard__price{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:6px;padding-top:16px;border-top:1px solid var(--line)}
.pcard__price s{display:block;color:var(--ink-3);font-size:.82rem;font-weight:600}
.pcard__price b{font-family:var(--font-display);font-size:1.55rem;font-weight:700;line-height:1;display:block;white-space:nowrap}
.pcard__price small{display:block;color:var(--ink-3);font-size:.78rem;margin-top:5px}
.section--dark .pcard{background:var(--dark-2);border-color:rgba(255,255,255,.08);color:#fff}
.section--dark .pcard p,.section--dark .pcard__meta{color:rgba(255,255,255,.6)}
.section--dark .pcard__meta b{color:#fff}
.section--dark .pcard__price{border-color:rgba(255,255,255,.1)}
.section--dark .pcard__price s,.section--dark .pcard__price small{color:rgba(255,255,255,.45)}
.section--dark .pcard:hover{box-shadow:0 40px 80px -40px rgba(0,0,0,.9)}
.xcard{border-radius:var(--r-lg);overflow:hidden;position:relative;min-height:420px;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.xcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.3s var(--ease)}
.xcard:hover img{transform:scale(1.05)}
.xcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,18,.15) 0%,rgba(20,19,18,.72) 45%,rgba(20,19,18,.96) 100%);z-index:-1}
.xcard__body{padding:30px}
.xcard h3{font-size:1.4rem;margin-bottom:8px}
.xcard p{color:rgba(255,255,255,.75);max-width:440px;margin-bottom:14px;font-size:.95rem}
.xcard ul{display:flex;flex-direction:column;gap:4px;margin-bottom:18px}
.xcard li{display:flex;justify-content:space-between;gap:12px;font-size:.9rem;border-bottom:1px dashed rgba(255,255,255,.18);padding:6px 0}
.xcard li b{font-family:var(--font-display);font-weight:600}
.price-table{width:100%;border-collapse:collapse;font-size:.95rem}
.price-table th,.price-table td{padding:14px 12px;text-align:left;border-bottom:1px solid var(--line)}
.price-table th{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:800}
.price-table td b{font-family:var(--font-display);font-weight:600}
.price-table td:last-child,.price-table th:last-child{text-align:right}
.price-table tr:hover td{background:rgba(27,26,24,.03)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.who div{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;display:flex;gap:14px;align-items:flex-start;font-weight:600}
.who div::before{content:"";width:22px;height:22px;border-radius:50%;flex:none;background:var(--green);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;margin-top:2px}

/* ---------- gallery ---------- */
.gallery{padding:clamp(56px,7vw,100px) 0 0;overflow:hidden}
.gallery__track{display:flex;gap:14px;padding:0 clamp(18px,4vw,40px) clamp(56px,7vw,100px);width:max-content;will-change:transform}
.gallery__item{margin:0;width:min(420px,72vw);aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;position:relative;flex:none;box-shadow:var(--shadow)}
.gallery__item--tall{aspect-ratio:3/3.4;width:min(340px,60vw)}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.gallery__item:hover img{transform:scale(1.05)}
.gallery__item figcaption{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.92);color:var(--ink);padding:8px 14px;border-radius:999px;font-size:.8rem;font-weight:700}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery-grid figure{margin:0;border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/3;position:relative}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.gallery-grid figure:hover img{transform:scale(1.05)}
.gallery-grid figcaption{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.92);padding:6px 12px;border-radius:999px;font-size:.78rem;font-weight:700}

/* ---------- promos ---------- */
.promo{border-radius:var(--r-lg);overflow:hidden;position:relative;aspect-ratio:3/4;display:flex;align-items:flex-end;color:#fff;isolation:isolate;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.promo:hover{transform:translateY(-5px);box-shadow:0 40px 60px -35px rgba(0,0,0,.6)}
.promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;z-index:-2;transition:transform 1.3s var(--ease)}
.promo:hover img{transform:scale(1.05)}
.promo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,18,.05) 30%,rgba(20,19,18,.92) 100%);z-index:-1}
.promo__body{padding:22px}
.promo__tag{display:inline-block;background:var(--red);padding:6px 11px;border-radius:999px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin-bottom:10px}
.promo h3{font-size:1.15rem;margin-bottom:6px}
.promo p{font-size:.88rem;color:rgba(255,255,255,.75)}

/* ---------- menu ---------- */
.seg{display:flex;background:var(--bg-2);padding:4px;border-radius:14px;gap:4px}
.seg button{flex:1;padding:11px 8px;border-radius:10px;font-weight:700;font-size:.88rem;transition:all .3s var(--ease);min-height:44px}
.seg button.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--red)}
.menu__mode{max-width:420px;margin-bottom:22px}
.menu__tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.menu__tabs button{padding:10px 18px;border-radius:999px;border:1.5px solid var(--line-2);font-weight:700;font-size:.88rem;transition:all .3s var(--ease);min-height:44px;background:var(--card)}
.menu__tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.menu__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.menu__grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.menu__grid--5 .kbju{grid-template-columns:repeat(2,1fr)}
.dish{min-width:0}
.dish{padding:22px;display:flex;flex-direction:column;gap:12px}
.dish__type{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--red)}
.dish h4{font-family:var(--font-body);font-weight:800;font-size:1.02rem;line-height:1.35;flex:1}
.menu__grid--5 .dish h4{font-size:.95rem}
.dish__w{color:var(--ink-3);font-size:.84rem}
.ration__n{width:34px;height:34px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.82rem}
.kbju{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.kbju div{background:var(--bg-2);border-radius:10px;padding:8px 6px;text-align:center}
.kbju b{display:block;font-family:var(--font-display);font-size:.92rem;font-weight:600}
.kbju span{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.menu__total{margin-top:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:20px 26px}
.menu__total b{font-family:var(--font-display);font-weight:600}
.menu__total span{color:rgba(255,255,255,.6);font-size:.88rem}

/* ---------- calculators ---------- */
.calc__wrap{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.calc__box{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:20px}
.calc__box h2{font-size:1.4rem}
.calc__box>p{color:var(--ink-2);margin-top:-8px}
.field{display:flex;flex-direction:column;gap:8px}
.field label,.field__label{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--ink-3);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.field label output{color:var(--ink);letter-spacing:0;text-transform:none;font-size:.92rem}
.field input[type=number],.field input[type=text],.field input[type=tel],.field input[type=email],.field input[type=date],.field select,.field textarea{padding:13px 16px;border-radius:14px;border:1.5px solid var(--line-2);background:#fff;font-weight:600;min-height:50px;width:100%;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(230,51,41,.12)}
.field textarea{min-height:100px;resize:vertical}
.field .err{border-color:var(--red)!important;background:var(--red-soft)}
.field__msg{font-size:.8rem;color:var(--red);display:none}
.field.invalid .field__msg{display:block}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--red) var(--p,50%),var(--bg-2) var(--p,50%));outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:3px solid var(--red);box-shadow:0 4px 10px -2px rgba(0,0,0,.3);cursor:pointer}
input[type=range]::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:3px solid var(--red);cursor:pointer}
.result{background:var(--dark);color:#fff;border-radius:22px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px;position:relative;overflow:hidden}
.result::before{content:"";position:absolute;inset:auto -30% -60% auto;width:70%;aspect-ratio:1;background:radial-gradient(circle,rgba(230,51,41,.35),transparent 60%);pointer-events:none}
.result__big{grid-column:1/-1}
.result__big b{font-family:var(--font-display);font-size:clamp(2rem,3.6vw,3rem);font-weight:700;line-height:1;display:block}
.result__big span{color:rgba(255,255,255,.6);font-size:.88rem}
.result__item b{font-family:var(--font-display);font-size:1.15rem;display:block;font-weight:600}
.result__item span{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.result__rec{grid-column:1/-1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.result__rec b{font-family:var(--font-display);font-weight:600}
.result__rec small{display:block;color:rgba(255,255,255,.6);font-size:.84rem;margin-top:2px}
.macros{display:flex;gap:6px;height:12px;border-radius:8px;overflow:hidden;grid-column:1/-1}
.macros i{display:block;height:100%;transition:width .8s var(--ease)}
.macros__legend{grid-column:1/-1;display:flex;gap:16px;font-size:.8rem;color:rgba(255,255,255,.7);flex-wrap:wrap;margin-top:-6px}
.macros__legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.compare{display:flex;flex-direction:column;gap:10px}
.compare__row{display:grid;grid-template-columns:150px 1fr 90px;align-items:center;gap:12px;font-size:.9rem}
.compare__bar{height:12px;border-radius:8px;background:var(--bg-2);overflow:hidden}
.compare__bar i{display:block;height:100%;border-radius:8px;transition:width .9s var(--ease)}
.compare__row b{text-align:right;font-family:var(--font-display);font-size:.84rem;font-weight:600}
.saving{background:linear-gradient(135deg,var(--green-2),#4f8a1a);color:#fff;border-radius:22px;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.saving b{font-family:var(--font-display);font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:700;line-height:1;display:block}
.saving span{font-size:.88rem;opacity:.85}
.saving__time{text-align:right}
.saving__time b{font-size:1.5rem}
.calc__hint{font-size:.8rem;color:var(--ink-3)}

/* ---------- steps / how ---------- */
.how__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.how__img{border-radius:28px;overflow:hidden;aspect-ratio:4/3;position:relative;box-shadow:var(--shadow)}
.how__img img{width:100%;height:100%;object-fit:cover}
.steps{display:flex;flex-direction:column}
.step{display:grid;grid-template-columns:60px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);opacity:.4;transition:opacity .5s}
.step.on{opacity:1}
.step__n{font-family:var(--font-display);font-size:1.8rem;font-weight:700;color:var(--red);line-height:1}
.step h3{font-size:1.1rem;margin-bottom:6px}
.step p{color:var(--ink-2);font-size:.93rem}
.pack{margin-top:24px;padding:22px 24px}
.pack h4{font-family:var(--font-body);font-weight:800;margin-bottom:10px;font-size:.95rem}
.check li{display:flex;gap:10px;font-size:.93rem;color:var(--ink-2);padding:4px 0}
.check li::before{content:"";width:18px;height:18px;border-radius:50%;flex:none;background:var(--green);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;margin-top:4px}

/* ---------- delivery ---------- */
.delivery__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.delivery__img{border-radius:28px;overflow:hidden;aspect-ratio:4/3}
.delivery__img img{width:100%;height:100%;object-fit:cover}
.zones{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.zones span{padding:9px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.2);font-weight:700;font-size:.88rem;display:inline-flex;align-items:center;gap:8px}
.zones span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}
.dl{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.dl div{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px}
.dl b{font-family:var(--font-display);display:block;font-size:1.1rem;font-weight:600;margin-bottom:4px}
.dl span{color:rgba(255,255,255,.6);font-size:.86rem}
.light .dl div{background:var(--card);border-color:var(--line)}
.light .dl span{color:var(--ink-2)}
.light .zones span{border-color:var(--line-2)}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.info{padding:26px}
.info h3{font-size:1.1rem;margin-bottom:10px}
.info p{color:var(--ink-2);font-size:.93rem}
.info b.big{display:block;font-family:var(--font-display);font-size:1.6rem;font-weight:700;margin-bottom:6px}

/* ---------- kitchen / about ---------- */
.kitchen{position:relative;min-height:70vh;display:flex;align-items:center;padding:clamp(72px,9vw,120px) 0;color:#fff;overflow:hidden;background:var(--dark)}
.kitchen__bg{position:absolute;inset:-10% 0}
.kitchen__bg img{width:100%;height:100%;object-fit:cover;opacity:.6}
.kitchen::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,19,18,.92) 0%,rgba(20,19,18,.55) 60%,rgba(20,19,18,.2) 100%)}
.kitchen .container{position:relative;z-index:2}
.kitchen__box{max-width:600px}
.kitchen__box .eyebrow{color:rgba(255,255,255,.6)}
.kitchen__box p{color:rgba(255,255,255,.8);margin-top:16px;font-size:1.02rem}
.kitchen__row{display:flex;gap:26px;margin:28px 0;flex-wrap:wrap}
.kitchen__row b{display:block;font-family:var(--font-display);font-size:1.4rem;font-weight:700}
.kitchen__row span{color:rgba(255,255,255,.6);font-size:.86rem}
.icard{padding:26px 24px;display:flex;flex-direction:column;gap:10px}
.icard h3{font-size:1.05rem}
.icard p{color:var(--ink-2);font-size:.92rem;flex:1}
.icard__price{font-family:var(--font-display);font-size:1.4rem;font-weight:700}
.icard__price small{font-family:var(--font-body);font-size:.78rem;color:var(--ink-3);font-weight:600;margin-left:6px}
.cert{border-radius:32px;background:linear-gradient(120deg,var(--red),#ff6a3d);color:#fff;padding:clamp(28px,5vw,56px);display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:center;position:relative;overflow:hidden}
.cert::after{content:"";position:absolute;right:-10%;top:-40%;width:50%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.12)}
.cert h2,.cert h3{font-size:clamp(1.5rem,2.8vw,2.2rem);margin-bottom:12px}
.cert p{opacity:.92;max-width:560px}
.cert__opts{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.cert__opts span{background:rgba(255,255,255,.18);padding:8px 14px;border-radius:999px;font-weight:700;font-size:.86rem}
.cert__price{position:relative;z-index:1;text-align:right}
.cert__price b{font-family:var(--font-display);font-size:clamp(2rem,4vw,3.2rem);display:block;line-height:1}
.cert__price span{opacity:.85}
.cert .btn{margin-top:16px}

/* ---------- faq ---------- */
.faq__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,64px)}
.faq__list{display:flex;flex-direction:column}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;text-align:left;padding:20px 0;font-weight:800;font-size:1.02rem;min-height:48px}
.faq__q i{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--line-2);flex:none;position:relative;transition:transform .4s var(--ease),background .3s}
.faq__q i::before,.faq__q i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;transform:translate(-50%,-50%)}
.faq__q i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s}
.faq__item.open .faq__q i{background:var(--ink);color:#fff;border-color:var(--ink)}
.faq__item.open .faq__q i::after{transform:translate(-50%,-50%) rotate(0)}
.faq__a{overflow:hidden;height:0}
.faq__a p{padding:0 0 20px;color:var(--ink-2);max-width:640px}

/* ---------- blog ---------- */
.post{overflow:hidden;display:flex;flex-direction:column}
.post__img{aspect-ratio:3/2;overflow:hidden}
.post__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.post:hover .post__img img{transform:scale(1.05)}
.post__body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.post__meta{font-size:.76rem;color:var(--ink-3);display:flex;gap:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.post h3{font-size:1.1rem;line-height:1.3}
.post p{color:var(--ink-2);font-size:.92rem;flex:1}
.post--feature{grid-column:span 2;display:grid;grid-template-columns:1.1fr .9fr}
.post--feature .post__img{aspect-ratio:auto;min-height:320px}
.post--feature h3{font-size:1.6rem}
.article{display:grid;grid-template-columns:minmax(0,720px) 300px;gap:clamp(28px,5vw,64px);align-items:start}
.article__cover{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/9;margin:28px 0 36px;box-shadow:var(--shadow)}
.article__cover img{width:100%;height:100%;object-fit:cover}
.prose{font-size:1.06rem;line-height:1.75}
.prose h2{font-size:clamp(1.35rem,2.2vw,1.75rem);margin:44px 0 14px}
.prose h3{margin:32px 0 10px}
.prose p{margin:0 0 18px}
.prose ul,.prose ol{margin:0 0 20px 22px}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li{margin-bottom:8px;padding-left:4px}
.prose a{color:var(--red);font-weight:700;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.prose table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:.95rem}
.prose th,.prose td{padding:12px;border-bottom:1px solid var(--line);text-align:left}
.prose th{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.prose blockquote{border-left:3px solid var(--red);padding:6px 0 6px 20px;color:var(--ink-2);margin:0 0 20px}
.aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px}
.aside__box{padding:24px;background:var(--dark);color:#fff;border-radius:var(--r-lg)}
.aside__box h4{font-size:1.05rem;margin-bottom:8px}
.aside__box p{color:rgba(255,255,255,.7);font-size:.9rem;margin-bottom:16px}
.aside__list{padding:22px 24px}
.aside__list h4{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.aside__list a{display:block;padding:10px 0;border-bottom:1px solid var(--line);font-weight:700;font-size:.92rem;line-height:1.35}
.aside__list a:last-child{border:0}
.aside__list a:hover{color:var(--red)}
.related{margin-top:64px;padding-top:40px;border-top:1px solid var(--line)}

/* ---------- order constructor ---------- */
.order{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(24px,4vw,48px);align-items:start}
.stepper{display:flex;gap:6px;margin-bottom:28px;flex-wrap:wrap}
.stepper button{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 8px;border-radius:999px;font-weight:700;font-size:.82rem;color:var(--ink-3);border:1.5px solid transparent;transition:all .3s}
.stepper button i{width:26px;height:26px;border-radius:50%;background:var(--bg-2);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.72rem;font-style:normal;font-weight:700}
.stepper button.active{color:var(--ink);background:#fff;border-color:var(--line)}
.stepper button.active i{background:var(--red);color:#fff}
.stepper button.done i{background:var(--green);color:#fff}
.stepper button.done{color:var(--ink)}
.stepper button[disabled]{cursor:default}
.ostep{display:none;background:var(--card);border:1px solid var(--line);border-radius:28px;padding:clamp(22px,3vw,36px)}
.ostep.active{display:block}
.ostep h2{font-size:1.5rem;margin-bottom:6px}
.ostep>p{color:var(--ink-2);margin-bottom:22px}
.ostep__nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line);flex-wrap:wrap}
.choice{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.choice label{position:relative;display:block;padding:18px;border-radius:var(--r-md);border:1.5px solid var(--line-2);cursor:pointer;transition:all .25s;background:#fff}
.choice label:hover{border-color:var(--ink)}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice input:checked+.choice__body{color:var(--ink)}
.choice label:has(input:checked){border-color:var(--red);box-shadow:0 0 0 3px rgba(230,51,41,.12);background:var(--red-soft)}
.choice label:has(input:focus-visible){outline:3px solid rgba(230,51,41,.35);outline-offset:2px}
.choice__body b{display:block;font-family:var(--font-display);font-size:.98rem;font-weight:600;margin-bottom:4px}
.choice__body span{font-size:.84rem;color:var(--ink-2);display:block}
.choice__body em{font-style:normal;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green-2);font-weight:800;display:block;margin-bottom:6px}
.choice--icons label{text-align:center}
.choice--4{grid-template-columns:repeat(4,1fr)}
.choice__icon{font-size:1.9rem;margin-bottom:8px;display:block;line-height:1}
.choice--programs{grid-template-columns:repeat(2,1fr)}
.choice--programs label{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center;padding:12px}
.choice--programs img{width:84px;height:64px;object-fit:cover;border-radius:10px}
.choice__price{font-family:var(--font-display);font-weight:700;font-size:.95rem;white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative;padding:10px 16px;border-radius:999px;border:1.5px solid var(--line-2);font-weight:700;font-size:.88rem;cursor:pointer;transition:all .25s;background:#fff;display:inline-flex;align-items:center;gap:8px;min-height:44px}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips label:has(input:checked){background:var(--ink);color:#fff;border-color:var(--ink)}
.chips label:hover{border-color:var(--ink)}
.days-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.days-picker label{position:relative;padding:14px 8px;border-radius:var(--r-md);border:1.5px solid var(--line-2);text-align:center;cursor:pointer;transition:all .25s;background:#fff}
.days-picker input{position:absolute;opacity:0;pointer-events:none}
.days-picker label:has(input:checked){border-color:var(--red);background:var(--red-soft);box-shadow:0 0 0 3px rgba(230,51,41,.12)}
.days-picker b{display:block;font-family:var(--font-display);font-size:1.3rem;font-weight:700;line-height:1}
.days-picker span{display:block;font-size:.72rem;color:var(--ink-3);margin-top:6px}
.days-picker em{display:block;font-style:normal;font-size:.7rem;color:var(--green-2);font-weight:800;margin-top:4px;min-height:1em}
.summary{background:var(--dark);color:#fff;border-radius:28px;padding:26px;position:sticky;top:96px}
.summary h3{font-size:1.1rem;margin-bottom:16px}
.summary__rows{display:flex;flex-direction:column;gap:10px;font-size:.92rem}
.summary__rows div{display:flex;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}
.summary__rows span{color:rgba(255,255,255,.6)}
.summary__rows b{text-align:right;font-weight:600}
.summary__total{margin-top:16px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.summary__total b{font-family:var(--font-display);font-size:1.8rem;font-weight:700;line-height:1}
.summary__total small{display:block;color:rgba(255,255,255,.55);font-size:.8rem;margin-top:6px}
.summary__disc{color:var(--green);font-weight:700;font-size:.85rem}
.summary__note{font-size:.78rem;color:rgba(255,255,255,.5);margin-top:14px}
.summary .btn{margin-top:18px;width:100%}
.summary__mob{display:none;position:fixed;left:16px;right:16px;bottom:16px;z-index:800;background:var(--dark);color:#fff;border-radius:999px;padding:14px 22px;justify-content:space-between;align-items:center;box-shadow:var(--shadow);font-weight:700}
.summary__mob b{font-family:var(--font-display);font-size:1.1rem}
body.no-fab .fab{display:none!important}
.review{display:flex;flex-direction:column;gap:10px}
.review>div{display:grid;grid-template-columns:130px 1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.93rem;align-items:start}
.review span{color:var(--ink-3);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;padding-top:3px}
.review button{color:var(--red);font-weight:700;font-size:.84rem}
.send{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.send .btn{width:100%}
.btn--wa{background:#25D366;box-shadow:0 10px 26px -12px rgba(37,211,102,.6)}
.btn--wa:hover{background:#1ebe5b}
.btn--vk{background:#0077FF;box-shadow:0 10px 26px -12px rgba(0,119,255,.6)}
.btn--vk:hover{background:#0066dd}
.done{text-align:center;padding:40px 20px}
.done__icon{width:72px;height:72px;border-radius:50%;background:var(--green-soft);color:var(--green-2);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.done__icon svg{width:34px;height:34px}
.done h2{margin-bottom:10px}
.done p{color:var(--ink-2);max-width:460px;margin:0 auto 22px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;color:var(--ink-2);margin-top:14px}
.consent input{width:18px;height:18px;margin-top:3px;accent-color:var(--red);flex:none}
.consent.invalid{color:var(--red)}
.consent a{text-decoration:underline}

/* ---------- contacts ---------- */
.contacts__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px)}
.contacts__big{font-family:var(--font-display);font-size:clamp(1.5rem,3.2vw,2.4rem);font-weight:700;line-height:1.15;display:block;margin-top:10px;transition:color .3s}
.contacts__big:hover{color:var(--red)}
.contacts__list{display:flex;flex-direction:column;gap:18px;margin-top:26px}
.contacts__list span{display:block;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);font-weight:800;margin-bottom:4px}
.contacts__list a,.contacts__list p{font-size:1.05rem;font-weight:600}
.msg-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.map{border-radius:var(--r-lg);overflow:hidden;background:var(--bg-2);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;text-align:center;padding:24px}
.map p{color:var(--ink-2);max-width:360px}

/* ---------- cta band & footer ---------- */
.cta-band{background:var(--red);color:#fff;padding:clamp(40px,5vw,64px) 0}
.cta-band__row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(1.4rem,2.6vw,2rem);margin-bottom:6px}
.cta-band p{opacity:.9}
.cta-band__actions{display:flex;gap:10px;flex-wrap:wrap}
.footer{background:var(--dark);color:rgba(255,255,255,.65);padding:clamp(48px,6vw,72px) 0 32px;font-size:.9rem}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.footer__brand img{height:40px;width:auto;margin-bottom:16px}
.footer__brand p{max-width:320px;font-size:.88rem}
.footer__social{display:flex;gap:8px;margin-top:16px}
.footer__social a{padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.18);font-weight:700;font-size:.82rem;color:#fff}
.footer__social a:hover{background:#fff;color:var(--ink)}
.footer h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:14px;font-family:var(--font-body);font-weight:800}
.footer__grid a{display:block;padding:5px 0;color:rgba(255,255,255,.8)}
.footer__grid a:hover{color:#fff}
.footer__phone{font-family:var(--font-display);font-size:1.15rem;color:#fff!important;font-weight:600}
.footer__grid p{padding:5px 0}
.footer__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;color:rgba(255,255,255,.45)}
.footer__bottom a:hover{color:#fff}
.fab{position:fixed;left:16px;right:16px;bottom:16px;z-index:800;display:none;gap:10px}
.fab .btn{flex:1}
.fab__call{width:50px;height:50px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:var(--shadow)}
.fab__call svg{width:20px;height:20px}

/* ---------- reveal helpers ---------- */
[data-reveal]{opacity:0;transform:translateY(32px)}
[data-reveal-img]{clip-path:inset(100% 0 0 0)}
html.no-gsap [data-reveal]{opacity:1;transform:none}
html.no-gsap [data-reveal-img]{clip-path:none}
html.no-gsap .hero__title .line span{transform:none}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .grid-4,.info-grid{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .menu__grid--5{grid-template-columns:repeat(3,1fr)}
  .footer__grid{grid-template-columns:1fr 1fr}
  .who{grid-template-columns:1fr}
  .article{grid-template-columns:1fr}
  .aside{position:static}
}
@media(max-width:900px){
  .nav__links,.nav__phone{display:none}
  .nav__burger{display:flex}
  .nav .btn--sm{display:none}
  .hero__grid{grid-template-columns:1fr}
  .hero__side{align-items:flex-start}
  .badge{display:none}
  .calc__wrap,.how__grid,.delivery__grid,.faq__grid,.contacts__grid,.page-hero__row,.order,.grid-2{grid-template-columns:1fr}
  .menu__grid{grid-template-columns:repeat(2,1fr)}
  .cert{grid-template-columns:1fr}
  .cert__price{text-align:left}
  .fab{display:flex}
  .footer{padding-bottom:96px}
  .cta-band{padding-bottom:calc(clamp(40px,5vw,64px))}
  .summary{position:static}
  .summary__mob{display:flex}
  body.no-fab .footer{padding-bottom:96px}
  .post--feature{grid-column:span 2;grid-template-columns:1fr}
  .choice{grid-template-columns:repeat(2,1fr)}
  .days-picker{grid-template-columns:repeat(3,1fr)}
  .page-hero__img{order:-1}
}
@media(max-width:600px){
  .grid-4,.grid-3,.menu__grid,.stats,.dl,.row-3,.info-grid,.menu__grid--5,.gallery-grid,.footer__grid,.send{grid-template-columns:1fr}
  .row-2{grid-template-columns:1fr}
  .result{grid-template-columns:1fr}
  .compare__row{grid-template-columns:110px 1fr 70px}
  .hero__content{padding-top:110px}
  .hero__title{max-width:none}
  .xcard{min-height:380px}
  .nav__logo img{height:34px}
  .nav--scrolled .nav__logo img{height:30px}
  .hero__scroll{display:none}
  .post--feature{grid-column:span 1}
  .choice,.choice--programs{grid-template-columns:1fr}
  .choice--4{grid-template-columns:repeat(2,1fr)}
  .review>div{grid-template-columns:1fr;gap:4px}
  .stepper button span{display:none}
  .stepper button.active span{display:inline}
  .crumbs{padding-top:84px}
  .btn{white-space:normal;text-align:center}
  .page-hero__actions .btn,.hero__actions .btn,.cta-band__actions .btn{width:100%}
  .page-hero__facts{gap:18px}
  main>.section:first-child{padding-top:calc(84px + 40px)}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none}
  [data-reveal-img]{clip-path:none}
}
