.no-wrap { white-space: nowrap; }

@font-face {
  font-family: "TT Commons";
  src: url("assets/fonts/web/tt-commons-pro-condensed-black.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("assets/fonts/web/montserrat-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("assets/fonts/web/montserrat-semibold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
    :root { --ink:#252126; --cream:#f5f3ef; --paper:#fff; --plum:#54236e; --plum-deep:#3e1854; --marm:#e85d45; --line:#ded9d3; --muted:#756f73; }
    * { box-sizing:border-box; }
.section-title,
.hero h1,
.trust__item b,
.trust-follow h2,
.specialist::after,
.specialist h2,
.fact b,
.flow b,
.cta h2 {
  font-family: "TT Commons", Arial, sans-serif;
  font-weight: 800;
}
    html { -webkit-text-size-adjust: 100%; font-synthesis: none; scroll-behavior:smooth; }
    body { margin:0; background:var(--cream); color:var(--ink); font-family:Montserrat, Arial, sans-serif; font-size:16px; line-height:1.45; }
    button, a { font:inherit; }
    a { color:inherit; text-decoration:none; }
    .wrap { width:min(1180px, calc(100% - 64px)); margin:0 auto; }
    .eyebrow { display:flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
    .eyebrow::before { content:""; width:28px; height:1px; background:currentColor; }
    .section-title { margin:0; max-width:820px; font-family:"TT Commons", Arial, sans-serif; font-size:clamp(46px, 6vw, 82px); letter-spacing:-.025em; line-height:.91; text-transform:uppercase; }
    .btn { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:0 25px; border:1px solid transparent; border-radius:4px; background:var(--plum); color:#fff; cursor:pointer; font-size:14px; font-weight:600; transition:background .2s, transform .2s; }
    .btn:hover { background:var(--plum-deep); transform:translateY(-2px); }
    .btn--white { background:#fff; color:var(--plum); }
    .btn--white:hover { background:#f1eaf4; }

    .top { padding:24px 0; background:var(--paper); border-bottom:1px solid var(--line); }
    .top__inside { display:flex; align-items:center; justify-content:space-between; gap:24px; }
    .brand { display:flex; align-items:center; gap:15px; }
    .brand img { width:104px; height:44px; object-fit:contain; object-position:left center; }
    .brand span { padding-left:15px; border-left:1px solid var(--line); font-size:13px; color:var(--muted); }
    .top__meta { font-size:13px; color:var(--muted); }

    .hero { position:relative; overflow:hidden; padding:86px 0 90px; background:#e9e2e9; }
    .hero::before { content:""; position:absolute; top:-170px; right:-130px; width:570px; height:570px; border:1px solid rgba(84,35,110,.18); border-radius:50%; box-shadow:0 0 0 74px rgba(84,35,110,.06), 0 0 0 148px rgba(84,35,110,.04); }
    .hero__grid { position:relative; display:grid; grid-template-columns:1.4fr .6fr; align-items:end; gap:30px; }
    .hero h1 { max-width:880px; margin:23px 0 30px; font-family:"TT Commons", Arial, sans-serif; font-size:clamp(62px, 9.1vw, 132px); line-height:.82; letter-spacing:-.04em; text-transform:uppercase; }
    .hero h1 em { color:var(--plum); font-style:normal; }
    .hero__lead { max-width:548px; margin:0; font-size:20px; line-height:1.4; }
    .hero__lead ul { margin:13px 0 20px; padding:0; list-style:none; }
    .hero__lead li { position:relative; padding-left:17px; }
    .hero__lead li::before { content:"—"; position:absolute; left:0; color:var(--plum); }
    .hero__promise { margin:20px 0 30px; color:var(--plum); font-size:15px; font-weight:600; text-transform:uppercase; letter-spacing:.02em; }
    .hero__note { align-self:center; max-width:240px; padding:22px 0 22px 23px; border-left:1px solid rgba(84,35,110,.45); font-size:14px; color:#5f5364; }
    .hero__note strong { display:block; margin-bottom:6px; color:var(--plum); font-size:34px; font-weight:400; line-height:1; }

    .trust { background:var(--plum); color:#fff; }
    .trust__grid { display:grid; grid-template-columns:repeat(3, 1fr); }
    .trust__item { min-height:125px; padding:28px 34px; border-right:1px solid rgba(255,255,255,.25); }
    .trust__item:last-child { border-right:0; }
    .trust__item b { display:block; margin-bottom:7px; font-family:"TT Commons", Arial, sans-serif; font-size:40px; line-height:.9; letter-spacing:.02em; }
.trust__item span { font-size:13px; opacity:.75; }

.trust-follow { display:grid; min-height:calc(100svh - 125px); padding:78px 0 88px; background:#fff; color:var(--plum); text-align:center; place-items:center; }
.trust-follow h2 { margin:0; font-family:"TT Commons",Arial,sans-serif; font-size:clamp(40px,4.2vw,62px); line-height:.94; letter-spacing:-.025em; text-transform:uppercase; }
.trust-follow p { display:inline-block; margin:clamp(64px, 8vh, 112px) 0 0; padding:19px 48px; border-radius:14px; background:#efebf5; font-size:clamp(18px,1.8vw,28px); line-height:1.15; }

    section { padding:112px 0; }
    .requests { background:var(--paper); }
    .requests__head { display:flex; justify-content:space-between; gap:42px; align-items:end; margin-bottom:52px; }
    .requests__desc { max-width:310px; margin:0; color:var(--muted); font-size:15px; }
    .request-list { border-top:1px solid var(--line); }
    .request { display:grid; grid-template-columns:100px minmax(230px, 1fr) 1.2fr; gap:30px; padding:32px 0 35px; border-bottom:1px solid var(--line); }
    .request__number { color:var(--plum); font-size:13px; font-weight:600; white-space:nowrap; }
    .request h3 { margin:0; font-size:22px; line-height:1.1; font-weight:600; }
    .request p { max-width:500px; margin:0; color:#514b50; font-size:15px; }
    .request p b { display:block; margin-bottom:10px; color:var(--ink); font-weight:600; }

    .specialist { position:relative; overflow:hidden; background:#efede8; }
    .specialist::after { content:"курс"; position:absolute; right:-20px; bottom:-36px; color:rgba(84,35,110,.06); font-family:"TT Commons",Arial,sans-serif; font-size:205px; line-height:1; text-transform:uppercase; pointer-events:none; }
    .specialist__grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:74px; }
.portrait { position:relative; aspect-ratio:1/1.08; background:var(--plum); border:10px solid rgb(84, 35, 110); box-sizing:border-box; }
    .portrait img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; filter:saturate(.78); }
    .portrait__tag { position:absolute; left:20px; bottom:20px; padding:10px 13px; background:var(--plum); color:#fff; font-size:12px; }
    .specialist h2 { margin:22px 0 9px; font-family:"TT Commons", Arial, sans-serif; font-size:clamp(50px,6vw,76px); line-height:.85; letter-spacing:-.025em; text-transform:uppercase; }
    .specialist__role { margin:0 0 30px; color:var(--plum); font-size:16px; font-weight:600; }
    .facts { display:flex; gap:44px; margin:31px 0; }
    .fact b { display:block; font-family:"TT Commons", Arial, sans-serif; font-size:54px; line-height:.8; }
    .fact span { display:block; max-width:100px; margin-top:8px; font-size:12px; line-height:1.15; color:var(--muted); }
    .specialist__text { max-width:488px; font-size:15px; color:#514b50; }

    .program { background:var(--paper); }
    .program .section-title { margin-bottom:45px; }
    .program-list { border-top:1px solid var(--line); }
    .session { display:grid; grid-template-columns:110px minmax(230px, .85fr) 1.2fr auto; align-items:start; gap:28px; padding:30px 0; border-bottom:1px solid var(--line); }
    .session__num { font-size:13px; color:var(--plum); font-weight:600; }
    .session h3 { margin:0; font-size:21px; line-height:1.13; font-weight:600; }
    .session p { max-width:410px; margin:0; color:#514b50; font-size:14px; }
    .session__time { display:inline-block; margin-top:13px; color:var(--muted); font-size:12px; }
    .session .btn { min-width:112px; min-height:43px; padding:0 18px; }

    .method { background:var(--plum); color:#fff; }
    .method__head { display:grid; grid-template-columns:1fr .75fr; gap:40px; align-items:end; margin-bottom:68px; }
    .method .eyebrow { color:#e4d4eb; }
    .method__head p { margin:0; color:#e9dfea; font-size:15px; }
    .method-flow { display:grid; grid-template-columns:repeat(4, 1fr); gap:0; border-top:1px solid rgba(255,255,255,.36); border-bottom:1px solid rgba(255,255,255,.36); }
    .flow { min-height:205px; padding:28px 22px; border-right:1px solid rgba(255,255,255,.36); }
    .flow:last-child { border:0; }
    .flow__step { display:block; margin-bottom:42px; color:#d8bfdc; font-size:12px; }
    .flow b { display:block; font-family:"TT Commons", Arial, sans-serif; font-size:34px; line-height:.92; letter-spacing:.01em; text-transform:uppercase; }
    .flow small { display:block; margin-top:10px; font-size:12px; color:#e8dfea; }

    .reviews { background:#f1eee9; }
    .reviews__grid { display:grid; grid-template-columns:1fr 2fr; gap:70px; align-items:start; }
    .reviews .section-title { position:sticky; top:20px; }
    .review-list { border-top:1px solid var(--line); }
    .review { padding:27px 0 30px; border-bottom:1px solid var(--line); }
    .stars { color:var(--plum); font-size:16px; letter-spacing:3px; }
    .review blockquote { margin:17px 0 0; max-width:630px; font-size:21px; line-height:1.25; }

    .faq { background:var(--paper); }
    .faq__grid { display:grid; grid-template-columns:1fr 2fr; gap:70px; }
    .faq-list { border-top:1px solid var(--line); }
    .faq details { border-bottom:1px solid var(--line); }
    .faq summary { display:flex; justify-content:space-between; gap:25px; padding:24px 0; cursor:pointer; list-style:none; font-size:19px; font-weight:600; }
    .faq summary::-webkit-details-marker { display:none; }
    .faq summary::after { content:"+"; color:var(--plum); font-size:28px; font-weight:400; line-height:.7; }
    .faq details[open] summary::after { content:"−"; }
    .faq details p { max-width:600px; margin:0 42px 24px 0; color:#514b50; font-size:15px; }

    .cta { padding:106px 0 0; background:var(--plum); color:#fff; }
    .cta__body { padding-bottom:100px; text-align:center; }
    .cta .eyebrow { justify-content:center; color:#e4d4eb; }
    .cta h2 { max-width:850px; margin:24px auto 24px; font-family:"TT Commons", Arial, sans-serif; font-size:clamp(54px,7vw,95px); line-height:.86; letter-spacing:-.03em; text-transform:uppercase; }
    .cta p { max-width:510px; margin:0 auto 33px; color:#e8dfea; font-size:18px; line-height:1.35; }
    .shops { display:grid; grid-template-columns:1.2fr 1fr 1fr 1.2fr; gap:1px; background:rgba(255,255,255,.2); }
    .shop { display:flex; align-items:center; justify-content:center; min-height:81px; background:var(--plum-deep); color:#fff; font-size:14px; font-weight:600; transition:background .2s; }
    .shop:hover { background:#2d0f3d; }
    .shop--brand { justify-content:flex-start; padding:0 30px; color:#f2eaf3; font-size:13px; font-weight:400; }

.shop--brand img { width:114px; height:52px; margin-right:18px; object-fit:contain; }
.market-icon { width:22px; height:22px; margin-right:10px; flex:0 0 auto; border-radius:5px; }
.market-icon { object-fit:contain; }
    .toast { position:fixed; z-index:10; left:50%; bottom:24px; padding:14px 18px; background:#252126; color:#fff; border-radius:3px; font-size:13px; opacity:0; transform:translate(-50%, 15px); pointer-events:none; transition:.25s; }
    .toast.is-visible { opacity:1; transform:translate(-50%, 0); }

    @media (max-width:760px) {
      .wrap { width:min(100% - 36px, 600px); }
      .top { padding:16px 0; } .top__meta, .brand span { display:none; } .brand img { width:91px; }
      .hero { padding:62px 0 64px; } .hero__grid, .specialist__grid, .method__head, .reviews__grid, .faq__grid { grid-template-columns:1fr; }
      .hero h1 { font-size:clamp(58px, 16.5vw, 90px); } .hero__lead { font-size:17px; } .hero__note { display:none; }
      .trust__grid { grid-template-columns:1fr; } .trust__item { min-height:auto; padding:20px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.25); } .trust__item:last-child { border-bottom:0; }
      section { padding:76px 0; } .section-title { font-size:52px; }
      .requests__head { display:block; margin-bottom:35px; } .requests__desc { margin-top:22px; }
      .request { grid-template-columns:45px 1fr; gap:14px; } .request p { grid-column:2; }
      .specialist__grid { gap:40px; } .portrait { max-height:500px; } .facts { gap:24px; }
      .session { grid-template-columns:46px 1fr; gap:13px; } .session p, .session__time, .session .btn { grid-column:2; } .session .btn { width:max-content; margin-top:6px; }
      .method__head { margin-bottom:36px; } .method-flow { grid-template-columns:1fr 1fr; } .flow { min-height:170px; } .flow:nth-child(2) { border-right:0; } .flow:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.36); }
      .reviews__grid, .faq__grid { gap:36px; } .reviews .section-title { position:static; } .review blockquote { font-size:19px; }
      .cta { padding-top:76px; } .cta__body { padding-bottom:72px; } .shops { grid-template-columns:1fr 1fr; } .shop--brand { grid-column:1/-1; min-height:76px; }
    }

/* Desktop refinements applied over the restored baseline.
   The inline baseline is intentionally kept until the visual migration is verified. */

body {
  font-size: 16px;
  line-height: 1.55;
  overflow-x: clip;
}

p,
li,
blockquote,
summary,
h2,
h3 {
  text-wrap: pretty;
}

.section-title {
  max-width: 780px;
  font-size: clamp(50px, 5.25vw, 76px);
  line-height: 0.94;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.hero {
  padding-block: 82px 88px;
}

.hero__grid {
  grid-template-columns: minmax(0, 1.45fr) minmax(205px, 0.55fr);
  gap: 44px;
}

.hero h1 {
  max-width: 820px;
  margin: 24px 0 32px;
  font-size: clamp(70px, 6.7vw, 96px);
  line-height: 0.9;
  letter-spacing: -0.032em;
  text-wrap: balance;
}

.hero__lead {
  max-width: 590px;
  font-size: 19px;
  line-height: 1.48;
}

.hero__lead ul {
  margin-block: 14px 22px;
}

.hero__lead li {
  padding-left: 30px;
}

.hero__promise {
  margin-block: 22px 30px;
  font-size: 16px;
}

.hero__note {
  max-width: 250px;
  padding-left: 28px;
  font-size: 15px;
  line-height: 1.45;
}

section {
  padding-block: 104px;
}

.requests__head {
  margin-bottom: 48px;
}

.requests__desc {
  max-width: 330px;
  font-size: 16px;
  line-height: 1.55;
}

.request {
  grid-template-columns: 100px minmax(250px, 0.95fr) minmax(0, 1.05fr);
  gap: 34px;
  padding-block: 31px 34px;
}

.request h3 {
  font-size: 22px;
  line-height: 1.2;
}

.request p {
  font-size: 16px;
  line-height: 1.55;
}

.request p b {
  margin-bottom: 8px;
}

.specialist h2 {
  font-size: clamp(56px, 5vw, 72px);
  line-height: 0.9;
}

.specialist__role {
  font-size: 17px;
}

.specialist__text,
.method__head p,
.session p,
.faq details p {
  font-size: 16px;
  line-height: 1.55;
}

.specialist__support {
  max-width: 488px;
  margin: 18px 0 0;
  color: var(--plum);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}

.program .section-title {
  margin-bottom: 42px;
}

.session h3 {
  font-size: 21px;
  line-height: 1.2;
}

.method__head {
  grid-template-columns: 1.1fr 0.9fr;
}

/* Infographic replaces the former text-and-cards method block. */
.method {
  overflow: hidden;
  padding-block: clamp(56px, 7vw, 104px);
}

.method__visual {
  margin-inline: auto;
}

.method__visual img {
  display: block;
  width: 100%;
  height: auto;
}

.flow b {
  font-size: 32px;
  line-height: 0.96;
}

.review blockquote {
  max-width: 650px;
  font-size: 18px;
  line-height: 1.4;
}

.faq summary {
  font-size: 18px;
  line-height: 1.4;
}

.cta h2 {
  max-width: 800px;
  font-size: clamp(58px, 6vw, 84px);
  line-height: 0.91;
}

.cta p {
  font-size: 18px;
  line-height: 1.45;
}

@media (min-width: 1200px) {
  .wrap {
    width: min(1180px, calc(100% - 80px));
  }
}

/* Fixed navigation */
:root {
  --header-height: 103px;
}

html {
  scroll-padding-top: var(--header-height);
}

body {
  padding-top: var(--header-height);
}

.top {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  width: 100%;
}

.top__inside {
  min-height: 54px;
}

.top__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-left: auto;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.top__nav a {
  position: relative;
  padding-block: 8px;
  transition: color 0.2s ease;
}

.top__nav a:hover,
.top__nav a:focus-visible {
  color: var(--plum);
}

.top__cta {
  min-height: 48px;
  padding-inline: 20px;
}

.menu-toggle,
.mobile-menu {
  display: none;
}

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

main section[id],
footer[id] {
  scroll-margin-top: 0;
}

/* Bring the specialist's content, rather than its top padding, into view. */
#specialist {
  scroll-margin-top: -56px;
}


.shop--brand img {
  filter: brightness(0) invert(1);
}

/* Three independent video placeholders */
.program {
  padding-block: 44px;
}

.program .section-title {
  margin-bottom: 32px;
}

.program-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  border-top: 0;
}

.session {
  display: flex;
  min-width: 0;
  min-height: 590px;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper);
}

.session__media {
  position: relative;
  display: grid;
  aspect-ratio: 16 / 10;
  place-items: center;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: #e9e2e9;
}

.session__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(37, 33, 38, 0.04), rgba(37, 33, 38, 0.48));
  content: "";
  pointer-events: none;
}

.session__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  filter: saturate(.72) contrast(.96);
}

.session__media--second {
  background: #efede8;
}

.session__media--second img {
  object-position: center 34%;
}

.session__media--third {
  background: #e8e0ea;
}

.session__media--third img {
  object-position: center 52%;
}

.session__badge {
  position: absolute;
  z-index: 1;
  left: 16px;
  bottom: 16px;
  padding: 8px 10px;
  background: var(--plum);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.session__body {
  display: flex;
  min-height: 345px;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px;
}

.session__num {
  display: block;
  margin-bottom: 18px;
  color: var(--plum);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.session__aside { flex:0 0 auto !important; margin-top:auto !important; color:var(--muted) !important; font-style:italic; }
.session__list { display:grid; flex:1; gap:10px; margin:0; padding:0; list-style:none; color:#514b50; font-size:15px; line-height:1.4; }
.session__list li { position:relative; padding-left:16px; }
.session__list li::before { position:absolute; left:0; content:'—'; color:var(--plum); }

.session h3 {
  min-height: 52px;
  margin: 0 0 18px;
  font-size: 22px;
  line-height: 1.18;
}

.session p {
  max-width: none;
  flex: 1;
  margin: 0 0 24px;
}

.session .btn {
  min-width: 0;
  min-height: 46px;
  padding-inline: 18px;
}
/* Portrait crop confirmed against the adjusted Figma frame. */
.portrait img {
  object-position: center 14%;
}

/* Medium screens */
@media (min-width: 768px) and (max-width: 1199px) {
  :root {
    --header-height: 87px;
  }

  .wrap {
    width: min(100% - 48px, 1040px);
  }

  .top {
    padding-block: 16px;
  }

  .brand img {
    width: 88px;
  }

  .brand span {
    display: none;
  }

  .top__nav {
    gap: 14px;
    font-size: 11px;
  }

  .top__cta {
    min-height: 43px;
    padding-inline: 16px;
    font-size: 12px;
  }

  .hero {
    padding-block: 72px 78px;
  }

  .hero__grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(190px, 0.65fr);
    gap: 32px;
  }

  .hero h1 {
    font-size: clamp(70px, 9.4vw, 90px);
  }

  .hero__lead {
    font-size: 18px;
  }

  section {
    padding-block: 86px;
  }

  .section-title {
    font-size: clamp(54px, 7vw, 68px);
  }

  .requests__head {
    align-items: start;
  }

  .request {
    grid-template-columns: 76px minmax(220px, 0.9fr) minmax(0, 1.1fr);
    gap: 24px;
  }

  .specialist__grid {
    gap: 44px;
  }

  .program-list {
    gap: 14px;
  }

  .session {
    min-height: 560px;
  }

  .session__body {
    min-height: 350px;
    padding: 20px;
  }

  .session h3 {
    min-height: 66px;
    font-size: 19px;
  }

  .session p {
    font-size: 14px;
  }

  .session__badge {
    left: 12px;
    bottom: 12px;
    font-size: 10px;
  }

  .method-flow {
    grid-template-columns: repeat(2, 1fr);
  }

  .flow:nth-child(2) {
    border-right: 0;
  }

  .flow:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.36);
  }

  .reviews__grid,
  .faq__grid {
    grid-template-columns: 0.85fr 1.55fr;
    gap: 48px;
  }
}

@media (min-width: 768px) and (max-width: 920px) {
  .top__nav a:nth-child(2),
  .top__nav a:nth-child(4) {
    display: none;
  }

  .hero__grid {
    grid-template-columns: 1fr;
  }

  .hero__note {
    display: none;
  }

  .requests__head {
    display: block;
  }

  .requests__desc {
    margin-top: 24px;
  }

  .specialist__grid {
    grid-template-columns: 0.9fr 1.1fr;
  }

  .program-list {
    grid-template-columns: 1fr 1fr;
  }

  .session:last-child {
    grid-column: 1 / -1;
    min-height: 0;
  }

  .session:last-child .session__media {
    aspect-ratio: 16 / 6;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .trust-follow { min-height:0; padding:112px 0 88px; }
  .trust-follow h2 { font-size:clamp(36px,11vw,48px); }
  .trust-follow p { width:100%; margin-top:40px; padding:17px 20px; font-size:20px; }
  .market-icon { width:20px; height:20px; }
  :root {
    --header-height: 72px;
  }

  body {
    overflow-x: hidden;
  }

  .wrap {
    width: min(100% - 32px, 600px);
  }

  .top {
    padding-block: 12px;
  }

  .top__inside {
    position: relative;
    min-height: 47px;
    justify-content: flex-start;
    gap: 12px;
    padding-right: 56px;
  }

  .brand img {
    width: 76px;
    height: 38px;
  }

  .brand span,
  .top__nav {
    display: none;
  }

  .top__cta {
    display: inline-flex;
    min-height: 40px;
    margin-left: auto;
    padding-inline: 12px;
    font-size: 12px;
  }

  .menu-toggle {
    position: absolute;
    top: 50%;
    right: 0;
    display: inline-flex;
    width: 44px;
    height: 44px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid var(--plum);
    border-radius: 4px;
    background: var(--paper);
    color: var(--plum);
    cursor: pointer;
    transform: translateY(-50%);
  }

  .menu-toggle span:not(.visually-hidden) {
    display: block;
    width: 18px;
    height: 1px;
    background: currentColor;
    transition: transform .2s ease, opacity .2s ease;
  }

  .menu-toggle.is-open span:nth-child(2) {
    transform: translateY(6px) rotate(45deg);
  }

  .menu-toggle.is-open span:nth-child(3) {
    opacity: 0;
  }

  .menu-toggle.is-open span:nth-child(4) {
    transform: translateY(-6px) rotate(-45deg);
  }

  .mobile-menu {
    position: absolute;
    z-index: 101;
    top: calc(100% + 1px);
    right: 0;
    left: 0;
    display: block;
    max-height: 0;
    overflow: hidden;
    border-bottom: 1px solid transparent;
    background: var(--paper);
    transition: max-height .24s ease, border-color .24s ease;
  }

  .mobile-menu.is-open {
    max-height: 260px;
    border-color: var(--line);
  }

  .mobile-menu a {
    display: flex;
    min-height: 50px;
    align-items: center;
    padding-inline: 16px;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    font-size: 15px;
    font-weight: 600;
  }

  .mobile-menu a:last-child {
    border-bottom: 0;
  }

  .hero {
    padding-block: 56px 62px;
  }

  .hero__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero__note {
    display: none;
  }

  .hero h1 {
    margin-block: 20px 26px;
    font-size: clamp(42px, 12.5vw, 52px);
    line-height: 0.92;
    overflow-wrap: normal;
    word-break: normal;
  }

  .hero__lead {
    font-size: 17px;
    line-height: 1.5;
  }

  .hero__lead li {
    padding-left: 26px;
  }

  section {
    padding-block: 68px;
  }

  .section-title {
    max-width: 100%;
    font-size: clamp(43px, 13vw, 54px);
    line-height: 0.95;
  }

  .requests__desc {
    max-width: 100%;
    font-size: 16px;
  }

  .request {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 14px;
  }

  .request p {
    grid-column: 2;
  }

  .specialist__grid {
    gap: 36px;
  }

  .portrait {
    max-height: none;
    aspect-ratio: 4 / 5;
  }

  .program .section-title {
    margin-bottom: 36px;
  }

  .program-list {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .session {
    min-height: 0;
  }

  .session__body {
    min-height: 0;
    padding: 22px;
  }

  .session h3 {
    min-height: 0;
    font-size: 21px;
  }

  .session p {
    font-size: 15px;
    overflow-wrap: normal;
    word-break: normal;
  }

  .session__media {
    aspect-ratio: 16 / 9;
  }

  .session .btn {
    width: 100%;
  }

  .method__head {
    grid-template-columns: 1fr;
  }

  .method-flow {
    grid-template-columns: 1fr;
  }

  .flow {
    min-width: 0;
    padding: 24px 16px;
  }

  .flow b {
    font-size: 30px;
    overflow-wrap: normal;
    word-break: normal;
  }

  .flow,
  .flow:nth-child(2) {
    border-right: 0;
  }

  .flow:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.36);
  }

  .reviews__grid,
  .faq__grid {
    grid-template-columns: 1fr;
  }

  .review blockquote {
    font-size: 18px;
  }

  .faq summary {
    font-size: 16px;
  }

  .cta h2 {
    font-size: clamp(48px, 14.5vw, 62px);
  }

  .cta p {
    font-size: 17px;
  }

  .shops {
    grid-template-columns: 1fr;
  }

  .shop,
  .shop--brand {
    grid-column: auto;
    min-height: 68px;
  }

  .shop--brand {
    justify-content: center;
    padding-inline: 16px;
  }

  .toast {
    width: max-content;
    max-width: calc(100% - 32px);
    text-align: center;
  }
}
/* Foreground gummies: sparse, unblurred and faster than page content. */
.hero > .wrap,
.specialist > .wrap,
.cta > .wrap {
  position: relative;
  z-index: 2;
}

.cta {
  position: relative;
  overflow: hidden;
}

.shops {
  position: relative;
  z-index: 4;
}

.gummy {
  position: absolute;
  z-index: 3;
  display: block;
  opacity: 0;
  height: auto;
  pointer-events: none;
  user-select: none;
  transform: translate3d(0, var(--parallax-y, 0), 0) rotate(var(--rotation, 0deg));
  transform-origin: center;
  will-change: transform;
}

body.gummies-ready .gummy {
  opacity: 1;
  transition: opacity 0.16s ease;
}

.gummy--hero-one {
  top: -12px;
  right: 4%;
  width: 178px;
  --rotation: 12deg;
}

.gummy--hero-two {
  top: 72%;
  right: -32px;
  width: 300px;
  --rotation: -10deg;
}

.gummy--specialist-one {
  top: 28%;
  left: -45px;
  width: 260px;
  --rotation: -18deg;
}

.gummy--specialist-two {
  top: 10%;
  right: -48px;
  width: 280px;
  --rotation: 14deg;
}

.gummy--cta-one {
  top: 14%;
  right: 6%;
  width: 220px;
  --rotation: 18deg;
}

.gummy--cta-two {
  bottom: -50px;
  left: 4%;
  width: 230px;
  --rotation: -12deg;
}

.gummy--hero-three {
  top: 8%;
  right: 25%;
  width: 185px;
  --rotation: -18deg;
}

.gummy--hero-four {
  top: 66%;
  right: 30%;
  width: 170px;
  --rotation: 14deg;
}

.gummy--specialist-three {
  right: 10%;
  bottom: -88px;
  width: 230px;
  --rotation: -10deg;
}

/* Baked production composition. Values mirror gummy-settings.js exactly;
   no editor, localStorage, or runtime layout configuration is shipped. */
.gummy--baked[class*='-t'],
.gummy--baked[class*='-m'] {
  display: none;
}

.gummy--hero-d1 { left: 85.62%; top: 2.63%; right: auto; bottom: auto; width: 139px; filter: blur(6px); --rotation: 0deg; }
.gummy--hero-d3 { left: 49.85%; top: 35.49%; right: auto; bottom: auto; width: 211px; filter: blur(1px); --rotation: -14deg; transform: translate3d(0, calc(var(--parallax-y, 0) - 135.625px), 0) rotate(var(--rotation, 0deg)); }
.gummy--hero-d4 { left: 82.07%; top: 32.47%; right: auto; bottom: auto; width: 158px; filter: blur(3px); --rotation: 0deg; }
.gummy--hero-d-added { left: 41.6%; top: 69.92%; right: auto; bottom: auto; width: 341px; filter: blur(0); --rotation: 0deg; }

.gummy--specialist-d1 { left: -.36%; top: 34.03%; right: auto; bottom: auto; width: 348px; filter: blur(4px); --rotation: 0deg; }
.gummy--specialist-d2 { left: 69.66%; top: 43.93%; right: auto; bottom: auto; width: 454px; filter: blur(0); --rotation: 0deg; }
.gummy--specialist-d3 { left: 86.49%; top: 16.6%; right: auto; bottom: auto; width: 200px; filter: blur(6.5px); --rotation: 0deg; }

.gummy--cta-d1 { left: 67.83%; top: 3.7%; right: auto; bottom: auto; width: 480px; filter: blur(0); --rotation: 0deg; }
.gummy--cta-d-added { left: 16.01%; top: 27.95%; right: auto; bottom: auto; width: 170px; filter: blur(3px); --rotation: 0deg; }
.gummy--promise-d1 { left: 3.72%; top: 1.96%; right: auto; bottom: auto; width: 250px; filter: blur(2px); --rotation: -18deg; }
.gummy--promise-d2 { left: 71.41%; top: 52.93%; right: auto; bottom: auto; width: 340px; filter: blur(0); --rotation: 17deg; }

@media (min-width: 768px) and (max-width: 1199px) {
  .gummy--baked[class*='-d'],
  .gummy--baked[class*='-m'] {
    display: none;
  }

  .gummy--baked[class*='-t'] {
    display: block;
  }

  .gummy--hero-t2 { left: 52.8%; top: 73.41%; right: auto; bottom: auto; width: 146px; filter: blur(1px); --rotation: -10deg; }
  .gummy--hero-t3 { left: 49.48%; top: 8.17%; right: auto; bottom: auto; width: 212px; filter: blur(0); --rotation: 2deg; }
  .gummy--hero-t-added { left: 92.9%; top: 6.6%; right: auto; bottom: auto; width: 80px; filter: blur(4.5px); --rotation: -12deg; }
  .gummy--specialist-t2 { left: 71.45%; top: 8.63%; right: auto; bottom: auto; width: 356px; filter: blur(0); --rotation: 14deg; }
  .gummy--specialist-t3 { left: 46.84%; top: 91.49%; right: auto; bottom: auto; width: 174px; filter: blur(0); --rotation: -10deg; }
  .gummy--cta-t1 { left: 71.54%; top: -7.05%; right: auto; bottom: auto; width: 294px; filter: blur(0); --rotation: 18deg; }
  .gummy--promise-t1 { left: 2.78%; top: 70.13%; right: auto; bottom: auto; width: 138px; filter: blur(3.5px); --rotation: -18deg; }
  .gummy--promise-t2 { left: 73.6%; top: 9.91%; right: auto; bottom: auto; width: 250px; filter: blur(0); --rotation: 17deg; }
}

@media (max-width: 767px) {
  .gummy--baked[class*='-d'],
  .gummy--baked[class*='-t'] {
    display: none;
  }

  .gummy--baked[class*='-m'] {
    display: block;
  }

  .gummy--hero-m-added { left: 69.11%; top: 7.5%; right: auto; bottom: auto; width: 221px; filter: blur(0); --rotation: 0deg; }
  .gummy--specialist-m3 { left: 67.14%; top: 75.33%; right: auto; bottom: auto; width: 133px; filter: blur(0); --rotation: 8deg; }
  .gummy--cta-m1 { left: 77.51%; top: 2.46%; right: auto; bottom: auto; width: 150px; filter: blur(0); --rotation: 18deg; }
  .gummy--promise-m1 { left: 0.03%; top: 12.56%; right: auto; bottom: auto; width: 70px; filter: blur(2px); --rotation: -18deg; }
  .gummy--promise-m2 { left: 84.63%; top: 79.46%; right: auto; bottom: auto; width: 124px; filter: blur(0); --rotation: 17deg; }
}
@media (max-width: 1199px) {
  .gummy {
    display: block;
  }
}
/* Compact legal information: intentionally secondary to the course CTA. */
.legal {
  position: relative;
  z-index: 4;
  margin-top: 24px;
  padding: 14px 0 16px;
  border-top: 1px solid rgba(237, 220, 243, 0.12);
  background: var(--plum);
}

.legal__text {
  width: calc(100% - 48px);
  max-width: none;
  color: rgba(237, 220, 243, 0.42);
  font-size: 12px;
  line-height: 1.3;
  text-align: justify;
  text-align-last: left;
}

.legal p { max-width: none; margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.legal p + p { margin-top: 3px; }

@media (max-width: 767px) {
  .legal { margin-top: 18px; padding: 11px 0 14px; }
  .legal__text { width: calc(100% - 32px); font-size: 10px; line-height: 1.28; }
  .legal p + p { margin-top: 2px; }
  .specialist::after {
    display: none;
  }

  .gummy--hero-one { top: -6px; right: 5%; width: 86px; }
  .gummy--hero-two { top: 72%; right: -42px; width: 145px; }
  .gummy--hero-three { top: 17%; right: -42px; width: 104px; }
  .gummy--hero-four { top: 84%; right: 11%; width: 94px; }
  .gummy--specialist-one { top: 8%; left: -34px; width: 116px; }
  .gummy--specialist-two { top: 62%; right: -38px; width: 132px; }
  .gummy--specialist-three { right: 12%; bottom: -40px; width: 118px; }
  .gummy--cta-one { top: 8%; right: 3%; width: 112px; }
  .gummy--cta-two { bottom: -34px; left: 2%; width: 126px; }
}

@media (prefers-reduced-motion: reduce) {
  .gummy {
    display: none;
  }
}

/* Minimal modal player shared by all course sessions. */
.session__media { cursor: pointer; }
.session__media:focus-visible { outline: 3px solid var(--plum); outline-offset: 4px; }

.video-modal { position: fixed; z-index: 120; inset: 0; display: grid; place-items: center; padding: 32px; }
.video-modal[hidden] { display: none; }
.video-modal__backdrop { position: absolute; inset: 0; background: rgba(23, 15, 28, .78); }
.video-modal__dialog { position: relative; z-index: 1; width: min(1080px, 100%); max-height: calc(100vh - 64px); padding: 12px; border-radius: 16px; background: #fff; box-shadow: 0 24px 80px rgba(0, 0, 0, .34); }
.video-modal__media { display: block; width: 100%; max-height: calc(100vh - 88px); border-radius: 8px; background: #17131a; object-fit: contain; }
.video-modal__close { position: absolute; z-index: 2; top: -16px; right: -16px; display: grid; width: 38px; height: 38px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--plum); font-size: 29px; line-height: 1; cursor: pointer; box-shadow: 0 5px 18px rgba(0, 0, 0, .2); }
.video-modal__toggle { position: absolute; z-index: 2; top: 50%; left: 50%; display: grid; width: 64px; height: 64px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--plum); transform: translate(-50%, -50%); color: #fff; cursor: pointer; box-shadow: 0 8px 24px rgba(45, 17, 61, .42); transition: transform .18s ease, background .18s ease, opacity .18s ease; }
.video-modal__toggle:hover { background: var(--plum-deep); transform: translate(-50%, -50%) scale(1.06); }
.video-modal__toggle-icon { width: 0; height: 0; margin-left: 4px; border-top: 9px solid transparent; border-bottom: 9px solid transparent; border-left: 14px solid currentColor; }
.video-modal__toggle.is-playing { opacity: 0; }
.video-modal__dialog:hover .video-modal__toggle.is-playing, .video-modal__toggle.is-playing:focus-visible { opacity: 1; }
.video-modal__toggle.is-playing .video-modal__toggle-icon { width: 14px; height: 18px; margin-left: 0; border: 0; background: linear-gradient(90deg, currentColor 0 38%, transparent 38% 62%, currentColor 62%); }
.video-modal__skip { position:absolute; z-index:2; top:50%; display:grid; width:48px; height:48px; place-items:center; padding:0; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(23, 15, 28, .56); color:#fff; font-size:13px; font-weight:700; line-height:1; cursor:pointer; transform:translateY(-50%); transition:background .18s ease, transform .18s ease; }
.video-modal__skip span { display:block; height:1em; line-height:1; transform:translateY(-.04em); }
.video-modal__skip:hover { background:var(--plum); transform:translateY(-50%) scale(1.06); }
.video-modal__skip--back { left:calc(50% - 122px); }
.video-modal__skip--forward { left:calc(50% + 74px); }
.video-modal__controls { position:absolute; z-index:2; right:24px; bottom:24px; left:24px; display:flex; align-items:center; gap:14px; padding:12px 14px; border-radius:12px; background:linear-gradient(90deg, rgba(19, 13, 24, .7), rgba(19, 13, 24, .42)); color:#fff; }
.video-modal__control, .video-modal__fullscreen { display:grid; width:44px; height:44px; flex:0 0 auto; place-items:center; padding:0; border:0; border-radius:50%; color:#fff; cursor:pointer; }
.video-modal__control { background:var(--plum); }
.video-modal__control:hover { background:var(--plum-deep); }
.video-modal__control-icon { width:0; height:0; margin-left:3px; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:11px solid currentColor; }
.video-modal__control.is-playing .video-modal__control-icon { width:12px; height:16px; margin-left:0; border:0; background:linear-gradient(90deg, currentColor 0 38%, transparent 38% 62%, currentColor 62%); }
.video-modal__progress { width:100%; min-width:0; height:28px; margin:0; appearance:none; background:transparent; cursor:pointer; }
.video-modal__progress::-webkit-slider-runnable-track { height:7px; border-radius:99px; background:rgba(255, 255, 255, .78); }
.video-modal__progress::-webkit-slider-thumb { width:20px; height:20px; margin-top:-6.5px; appearance:none; border:3px solid #fff; border-radius:50%; background:var(--plum); box-shadow:0 1px 8px rgba(0, 0, 0, .25); }
.video-modal__progress::-moz-range-track { height:7px; border-radius:99px; background:rgba(255, 255, 255, .78); }
.video-modal__progress::-moz-range-progress { height:7px; border-radius:99px; background:var(--plum); }
.video-modal__progress::-moz-range-thumb { width:15px; height:15px; border:3px solid #fff; border-radius:50%; background:var(--plum); box-shadow:0 1px 8px rgba(0, 0, 0, .25); }
.video-modal__time { min-width:86px; color:#fff; font-size:13px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.video-modal__fullscreen { background:rgba(255, 255, 255, .14); font-size:24px; line-height:1; }
.video-modal__fullscreen:hover { background:rgba(255, 255, 255, .25); }
.video-modal__dialog:fullscreen { display:grid; width:100%; height:100%; max-height:none; place-items:center; padding:22px; border-radius:0; background:#17131a; }
.video-modal__dialog:fullscreen .video-modal__media { max-height:calc(100vh - 44px); }
body.video-modal-open { overflow: hidden; }

@media (max-width: 767px) {
  .video-modal { padding: 12px; }
  .video-modal__dialog { width: 100%; max-height: calc(100vh - 24px); padding: 8px; border-radius: 12px; }
  .video-modal__media { max-height: calc(100vh - 40px); border-radius: 7px; }
  .video-modal__close { top: 12px; right: 12px; width: 34px; height: 34px; font-size: 26px; }
  .video-modal__toggle { width: 58px; height: 58px; }
  .video-modal__skip { width:44px; height:44px; font-size:12px; }
  .video-modal__skip--back { left:calc(50% - 106px); }
  .video-modal__skip--forward { left:calc(50% + 62px); }
  .video-modal__controls { right:16px; bottom:16px; left:16px; gap:10px; padding:9px 10px; }
  .video-modal__control, .video-modal__fullscreen { width:42px; height:42px; }
  .video-modal__time { display:none; }
}




/* Keep each final headline word on its own line below desktop widths. */
@media (max-width: 1199px) {
  .hero__title-tail {
    display: block;
  }

  .hero__title-tail span {
    display: block;
  }
}


/* VK Video opens only on demand, inside the course modal. */
.video-modal__embed {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: calc(100vh - 88px);
  border: 0;
  border-radius: 8px;
  background: #17131a;
}

@media (max-width: 640px) {
  .video-modal__embed {
    max-height: calc(100vh - 40px);
    border-radius: 7px;
  }
}

/* The hero rings are part of the approved first-screen composition. */
.specialist::after {
  display: none;
  content: none;
}
/* Expanded first information block with the author profile below the original course pitch. */
.hero {
  padding-block: 82px 72px;
}

.hero__grid {
  grid-template-columns: minmax(0, 1.18fr) minmax(350px, .82fr);
  align-items: center;
  gap: clamp(40px, 5vw, 76px);
}

.hero h1 {
  max-width: 850px;
  font-size: clamp(58px, 5.3vw, 76px);
  line-height: .9;
}

.hero-portrait {
  position: relative;
  z-index: 1;
  align-self: center;
  width: 100%;
  max-width: 450px;
  margin-left: auto;
  border: 1px solid rgba(84, 35, 110, .28);
  background: var(--plum);
  transform: translateY(34px);
}

.hero-portrait__image {
  position: relative;
  aspect-ratio: 4 / 4.25;
  overflow: hidden;
}

.hero-portrait__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 14%;
  filter: saturate(.78);
}

.hero-portrait__image span {
  position: absolute;
  left: 18px;
  bottom: 18px;
  padding: 9px 12px;
  background: var(--plum);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.hero-profile {
  scroll-margin-top: var(--header-height);
  padding: 0 0 104px;
  background: #e9e2e9;
}

.hero-profile > .wrap {
  padding-top: 72px;
  border-top: 1px solid rgba(84, 35, 110, .24);
}

.hero-profile__intro {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  align-items: end;
  gap: clamp(52px, 8vw, 118px);
}

.hero-profile__heading h2 {
  margin: 18px 0 8px;
  font-family: "TT Commons", Arial, sans-serif;
  font-size: clamp(56px, 5vw, 72px);
  font-weight: 800;
  line-height: .88;
  letter-spacing: -.02em;
  text-transform: uppercase;
}

.hero-profile__heading p {
  margin: 0;
  color: var(--plum);
  font-size: 15px;
  font-weight: 600;
}

.hero-profile__lead {
  max-width: 680px;
  margin: 0;
  font-size: 20px;
  line-height: 1.48;
}

.hero-profile__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 56px;
  border-block: 1px solid rgba(84, 35, 110, .24);
}

.hero-profile__stats > div {
  min-height: 138px;
  padding: 26px 24px 24px 0;
}

.hero-profile__stats > div + div {
  padding-left: 24px;
  border-left: 1px solid rgba(84, 35, 110, .24);
}

.hero-profile__stats b {
  display: block;
  font-family: "TT Commons", Arial, sans-serif;
  font-size: 48px;
  font-weight: 800;
  line-height: .86;
}

.hero-profile__stats span {
  display: block;
  max-width: 180px;
  margin-top: 10px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.25;
}

.hero-profile__foot {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
  align-items: start;
  gap: clamp(44px, 7vw, 100px);
  padding-top: 40px;
}

.hero-profile__foot p {
  max-width: 680px;
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

.hero-profile__foot b { color: var(--plum); }
.hero-profile__support { padding-left: 22px; border-left: 2px solid var(--plum); color: var(--plum); font-size: 14px !important; font-weight: 600; }

@media (min-width: 768px) and (max-width: 1199px) {
  .hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: 34px; }
  .hero h1 { font-size: clamp(50px, 6.5vw, 70px); }
  .hero-profile__intro { gap: 48px; }
}

@media (min-width: 768px) and (max-width: 920px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero-portrait { width: min(100%, 420px); max-width: none; margin: 12px 0 0; transform: none; }
  .hero-profile__intro { grid-template-columns: 1fr; align-items: start; gap: 34px; }
}

@media (max-width: 767px) {
  .hero { padding-block: 56px 54px; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .hero__content { min-width: 0; }
  .hero h1 { font-size: clamp(40px, 11.5vw, 50px); line-height: .93; }
  .hero-portrait { width: 100%; min-width: 0; max-width: none; margin: 0; transform: none; }
  .hero-portrait__image { aspect-ratio: 4 / 4.35; }
  .hero-profile { padding-bottom: 72px; }
  .hero-profile > .wrap { padding-top: 52px; }
  .hero-profile__intro { grid-template-columns: 1fr; align-items: start; gap: 30px; }
  .hero-profile__heading h2 { font-size: clamp(48px, 14vw, 58px); }
  .hero-profile__lead { font-size: 18px; }
  .hero-profile__stats { grid-template-columns: 1fr; margin-top: 38px; }
  .hero-profile__stats > div { min-height: 0; padding: 20px 0; }
  .hero-profile__stats > div + div { padding-left: 0; border-top: 1px solid rgba(84, 35, 110, .2); border-left: 0; }
  .hero-profile__stats b { font-size: 42px; }
  .hero-profile__foot { grid-template-columns: 1fr; gap: 30px; padding-top: 34px; }
}


/* Medium screens: balanced split at laptop widths, centered stack on tablets. */
@media (min-width: 900px) and (max-width: 1199px) {
  .hero__grid { grid-template-columns: minmax(0, 1.45fr) minmax(300px, .8fr); gap: 30px; }
  .hero h1 { font-size: clamp(52px, 6vw, 64px); }
  .hero-portrait { width: 100%; max-width: 340px; margin: 0 0 0 auto; transform: none; }
}

@media (min-width: 768px) and (max-width: 899px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero-portrait { width: min(100%, 380px); max-width: none; margin: 12px auto 0; transform: none; }
}

/* Customer-requested visual polish: cutout hero, promise accents and review identities. */
.hero-portrait {
  border: 0;
  background: transparent;
  transform: translateY(72px);
}

.hero-portrait__image {
  aspect-ratio: 2 / 3;
  overflow: visible;
}

.hero-portrait__image img {
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 28px 28px rgba(62, 24, 84, .18));
}

.hero-portrait__image span {
  display: none;
}

.trust-follow {
  position: relative;
  overflow: hidden;
}

.trust-follow > .wrap {
  position: relative;
  z-index: 2;
}

.promise-candy {
  position: absolute;
  z-index: 1;
  width: clamp(150px, 17vw, 250px);
  height: auto;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 22px 26px rgba(84, 35, 110, .18));
}

.promise-candy--left {
  top: 14%;
  left: clamp(-64px, 2vw, 34px);
  transform: rotate(-18deg);
}

.promise-candy--right {
  right: clamp(-58px, 2.5vw, 42px);
  bottom: 10%;
  transform: rotate(17deg);
}

.review {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.review__avatar {
  display: block;
  width: 76px;
  aspect-ratio: 1;
  box-sizing: border-box;
  padding: 0;
  object-fit: contain;
  border: 1px solid rgba(84, 35, 110, .16);
  border-radius: 50%;
  background: #fff;
}

.review__content {
  min-width: 0;
}

.review blockquote {
  margin-top: 13px;
}

.review__author {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 18px 0 0;
  font-size: 14px;
  line-height: 1.35;
}

.review__author strong {
  color: var(--plum);
  font-size: 16px;
}

.review__author span {
  color: var(--muted);
}

@media (max-width: 900px) {
  .promise-candy {
    width: clamp(110px, 18vw, 150px);
    opacity: .78;
  }

  .promise-candy--left { left: -38px; }
  .promise-candy--right { right: -36px; }
}

@media (max-width: 767px) {
  .hero-portrait {
    transform: translateY(40px);
  }

  .hero-portrait__image {
    aspect-ratio: 3 / 4;
  }

  .promise-candy {
    width: 96px;
    opacity: .68;
  }

  .promise-candy--left {
    top: 8%;
    left: -34px;
  }

  .promise-candy--right {
    right: -28px;
    bottom: 5%;
  }

  .review {
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 14px;
  }

  .review__avatar {
    width: 60px;
  }
}
/* Desktop reviews use the available width as a calm two-by-two editorial grid. */
@media (min-width: 1200px) {
  .reviews__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }

  .reviews .section-title {
    position: static;
  }

  .review-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    column-gap: 40px;
  }

  .review {
    min-width: 0;
    padding-block: 30px 34px;
  }

  .review:nth-child(odd) {
    padding-right: 18px;
  }

  .review:nth-child(even) {
    padding-left: 18px;
  }

  .review blockquote {
    max-width: none;
  }
}
/* The promise gummies sit behind the promise copy. */
.trust-follow .gummy { z-index: 1; }

/* Portrait is part of the hero's physical height, so its base meets the author divider.
   This deliberately avoids visual transforms, which decouple the image from the layout. */
.hero {
  padding-bottom: 0;
}

.hero__grid {
  align-items: end;
}

.hero-portrait {
  align-self: end;
  transform: none;
}

@media (min-width: 768px) and (max-width: 899px) {
  .hero {
    padding-top: 64px;
  }

  .hero__grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(230px, .65fr);
    gap: 24px;
  }

  .hero h1 {
    font-size: clamp(42px, 6.2vw, 54px);
  }

  .hero-portrait {
    width: 100%;
    max-width: none;
    margin: 0;
  }
}

@media (max-width: 767px) {
  .hero {
    padding: 56px 0 0;
  }

  .hero__grid {
    gap: 32px;
  }

  .hero-portrait {
    width: min(100%, 360px);
    margin: 0 auto;
  }
}
