/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-italic-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-italic-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-italic-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-italic-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-italic-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-italic-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/CormorantGaramond-normal-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/Inter-normal-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/Inter-normal-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/Inter-normal-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/Inter-normal-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}



  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --cream:   #FAF6F0;
    --linen:   #F2EBE0;
    --parchment: #E8DDD0;
    --gold:    #B8935A;
    --gold-lt: #D4B483;
    --gold-dk: #8A6A38;
    --espresso:#1A1410;
    --bark:    #3D2E1A;
    --muted:   #5C4A3A;
    --hint:    #857250;
    --border:  #E0D4C4;
    --white:   #FFFFFF;
    --r-sm:    6px;
    --r-md:    10px;
  }

  html { scroll-behavior: smooth; }

  body {
    font-family: 'Inter', sans-serif;
    background: var(--cream);
    color: var(--espresso);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }

  .serif { font-family: 'Cormorant Garamond', serif; }

  /* ─── SCROLLBAR ─────────────────────────────────────── */
  ::-webkit-scrollbar { width: 6px; }
  ::-webkit-scrollbar-track { background: var(--cream); }
  ::-webkit-scrollbar-thumb { background: var(--parchment); border-radius: 3px; }

  /* ─── NAV ────────────────────────────────────────────── */
  :root {
    --nav-height: 60px;
    --nav-safe-top: env(safe-area-inset-top, 0px);
    --nav-offset: calc(var(--nav-height) + var(--nav-safe-top));
  }

  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    z-index: 1000;
    box-sizing: border-box;
    height: var(--nav-offset);
    padding: var(--nav-safe-top) 60px 0;
    background: #FAF6F0;
    border-bottom: 0.5px solid rgba(224, 212, 196, 0.85);
    box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset, 0 4px 24px rgba(26,20,16,0.06);
    display: flex;
    align-items: center;
    justify-content: space-between;
    transform: none;
    will-change: auto;
  }

  body {
    padding-top: var(--nav-offset);
  }

  .nav-logo {
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-weight: 500;
    color: var(--espresso);
    letter-spacing: 0.03em;
    text-decoration: none;
  }

  .nav-links {
    display: flex;
    gap: 32px;
    list-style: none;
  }

  .nav-links a {
    font-size: 11px;
    font-weight: 500;
    color: var(--hint);
    letter-spacing: 0.09em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s;
  }

  .nav-links a:hover { color: var(--espresso); }

  .nav-btn {
    font-size: 10px;
    font-weight: 500;
    background: var(--espresso);
    color: var(--cream);
    padding: 9px 22px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s;
    border-radius: 2px;
  }

  .nav-btn:hover { background: var(--bark); }

  /* ─── HERO ───────────────────────────────────────────── */
  .hero {
    background: var(--linen);
    padding: 80px 60px 72px;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 64px;
    align-items: center;
    border-bottom: 0.5px solid var(--border);
    min-height: calc(100vh - 60px);
  }

  .hero-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 20px;
  }

  .eyebrow-rule {
    width: 28px;
    height: 0.5px;
    background: var(--gold);
    flex-shrink: 0;
  }

  .hero-h1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 68px;
    font-weight: 500;
    line-height: 1.05;
    color: var(--espresso);
    margin-bottom: 24px;
    letter-spacing: -0.01em;
  }

  .hero-h1 em {
    font-style: italic;
    color: var(--gold);
  }

  .hero-sub {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    color: var(--muted);
    margin-bottom: 40px;
    max-width: 400px;
  }

  .hero-actions {
    display: flex;
    align-items: center;
    gap: 24px;
  }

  .btn-primary {
    display: inline-block;
    background: var(--espresso);
    color: var(--cream);
    font-size: 11px;
    font-weight: 500;
    padding: 15px 32px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    transition: background 0.2s, transform 0.15s;
  }

  .btn-primary:hover { background: var(--bark); transform: translateY(-1px); }

  .btn-ghost {
    font-size: 12px;
    font-weight: 500;
    color: var(--gold);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 7px;
    transition: gap 0.2s;
  }

  .btn-ghost:hover { gap: 12px; }

  .btn-ghost-arrow {
    font-size: 16px;
    line-height: 1;
  }

  /* hero card */
  .hero-card {
    background: var(--white);
    border: 0.5px solid var(--border);
    border-radius: var(--r-md);
    overflow: hidden;
    animation: fadeUp 0.6s ease 0.2s both;
  }

  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  .hc-inner { padding: 28px; }

  .hc-label {
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 18px;
  }

  .hc-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 0.5px solid var(--border);
    border-radius: var(--r-sm);
    overflow: hidden;
    margin-bottom: 24px;
  }

  .hc-stat {
    padding: 14px 10px;
    text-align: center;
    border-right: 0.5px solid var(--border);
    background: var(--linen);
  }

  .hc-stat:last-child { border-right: none; }

  .hc-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    font-weight: 500;
    color: var(--espresso);
    line-height: 1;
    margin-bottom: 4px;
  }

  .hc-unit {
    font-size: 10px;
    color: var(--hint);
    font-weight: 400;
  }

  .hc-divider { border: none; border-top: 0.5px solid var(--border); margin-bottom: 20px; }

  .hc-price-row {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
  }

  .hc-price-new {
    font-family: 'Cormorant Garamond', serif;
    font-size: 38px;
    font-weight: 500;
    color: var(--espresso);
    line-height: 1;
  }

  .hc-price-old {
    font-size: 14px;
    color: #7A6552;
    text-decoration: line-through;
    text-decoration-color: #7A6552;
  }

  .hc-badge {
    font-size: 9px;
    font-weight: 500;
    background: var(--linen);
    color: var(--gold);
    padding: 3px 9px;
    border: 0.5px solid var(--border);
    border-radius: 2px;
    letter-spacing: 0.06em;
  }

  .hc-access {
    font-size: 11px;
    color: var(--hint);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 18px;
  }

  .hc-access svg { flex-shrink: 0; }

  .hc-cta {
    display: block;
    width: 100%;
    background: var(--gold);
    color: var(--white);
    font-size: 11px;
    font-weight: 500;
    padding: 14px;
    text-align: center;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: var(--r-sm);
    transition: background 0.2s;
    border: none;
    cursor: pointer;
  }

  .hc-cta:hover { background: var(--gold-dk); }

  /* ─── TRUST BAR ──────────────────────────────────────── */
  .trust-bar {
    background: var(--white);
    border-bottom: 0.5px solid var(--border);
    padding: 14px 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
  }

  .trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--hint);
    padding: 0 32px;
    border-right: 0.5px solid var(--border);
  }

  .trust-item:last-child { border-right: none; }

  .trust-icon {
    width: 14px;
    height: 14px;
    color: var(--gold);
    flex-shrink: 0;
  }

  /* ─── SECTION BASE ───────────────────────────────────── */
  .section { padding: 80px 60px; }
  .section-linen { background: var(--linen); }
  .section-white { background: var(--white); }

  .section-eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 12px;
  }

  .eyebrow-tick { width: 16px; height: 0.5px; background: var(--gold); flex-shrink: 0; }

  .section-h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 40px;
    font-weight: 500;
    color: var(--espresso);
    line-height: 1.15;
    margin-bottom: 44px;
    letter-spacing: -0.01em;
  }

  /* ─── FOR WHOM ───────────────────────────────────────── */
  .whom-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .whom-card {
    background: var(--white);
    border: 0.5px solid var(--border);
    border-radius: var(--r-md);
    padding: 24px;
    display: flex;
    gap: 18px;
    align-items: flex-start;
    transition: border-color 0.2s;
  }

  .whom-card:hover { border-color: var(--gold-lt); }

  .whom-icon {
    width: 40px;
    height: 40px;
    background: var(--linen);
    border-radius: var(--r-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--gold);
  }

  .whom-icon svg { width: 20px; height: 20px; }

  .whom-h {
    font-size: 14px;
    font-weight: 500;
    color: var(--espresso);
    margin-bottom: 5px;
    line-height: 1.3;
  }

  .whom-p {
    font-size: 12px;
    font-weight: 400;
    color: var(--muted);
    line-height: 1.7;
  }

  /* ─── PROGRAMME ──────────────────────────────────────── */
  .prog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 0.5px solid var(--border);
    border-radius: var(--r-md);
    overflow: hidden;
  }

  .prog-col {
    background: var(--white);
    padding: 28px;
    border-right: 0.5px solid var(--border);
  }

  .prog-col:last-child { border-right: none; }

  .prog-index {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 500;
    color: var(--parchment);
    line-height: 1;
    margin-bottom: 14px;
  }

  .prog-tag {
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 8px;
    padding-bottom: 10px;
    border-bottom: 0.5px solid var(--border);
  }

  .prog-h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    font-weight: 500;
    color: var(--espresso);
    margin: 12px 0 16px;
    line-height: 1.25;
  }

  .prog-list { list-style: none; }

  .prog-item {
    display: flex;
    gap: 10px;
    font-size: 12px;
    font-weight: 400;
    color: var(--muted);
    line-height: 1.65;
    padding: 5px 0;
    border-bottom: 0.5px solid var(--linen);
  }

  .prog-item:last-child { border-bottom: none; }

  .prog-dot {
    width: 4px;
    height: 4px;
    background: var(--gold-lt);
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 7px;
  }

  /* ─── AUTHOR ─────────────────────────────────────────── */
  .author-wrap {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 64px;
    align-items: start;
  }

  .author-portrait {
    width: 100%;
    aspect-ratio: 3/4;
    background: var(--parchment);
    border-radius: var(--r-md);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
    border: 0.5px solid var(--border);
    position: relative;
  }

  .author-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
    display: block;
    filter: saturate(0.96) contrast(1.02);
  }

  .author-portrait::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(26,20,16,0) 60%, rgba(26,20,16,0.18) 100%);
    pointer-events: none;
  }

  .author-initials {
    font-family: 'Cormorant Garamond', serif;
    font-size: 96px;
    font-weight: 500;
    color: var(--border);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    user-select: none;
  }

  .author-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 36px;
    font-weight: 500;
    color: var(--espresso);
    margin-bottom: 6px;
    letter-spacing: -0.01em;
  }

  .author-title {
    font-size: 11px;
    font-weight: 400;
    color: var(--gold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 24px;
  }

  .author-bio {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.85;
    color: var(--muted);
    margin-bottom: 32px;
  }

  .author-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 0.5px solid var(--border);
    border-radius: var(--r-sm);
    overflow: hidden;
  }

  .astat {
    padding: 16px;
    text-align: center;
    background: var(--linen);
    border-right: 0.5px solid var(--border);
  }

  .astat:last-child { border-right: none; }

  .astat-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 28px;
    font-weight: 500;
    color: var(--espresso);
    line-height: 1;
    margin-bottom: 4px;
  }

  .astat-label { font-size: 10px; color: var(--hint); font-weight: 400; }

  /* ─── REVIEWS ────────────────────────────────────────── */
  .reviews-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .review-card {
    background: var(--white);
    border: 0.5px solid var(--border);
    border-radius: var(--r-md);
    padding: 24px 26px;
    transition: border-color 0.2s;
  }

  .review-card:hover { border-color: var(--gold-lt); }

  .stars {
    display: flex;
    gap: 3px;
    margin-bottom: 14px;
  }

  .star-icon {
    width: 12px;
    height: 12px;
    color: var(--gold);
  }

  .review-quote {
    font-family: 'Cormorant Garamond', serif;
    font-size: 17px;
    font-style: italic;
    line-height: 1.65;
    color: var(--espresso);
    margin-bottom: 18px;
  }

  .review-author {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 14px;
    border-top: 0.5px solid var(--linen);
  }

  .review-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--linen);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 500;
    color: var(--muted);
    flex-shrink: 0;
    border: 0.5px solid var(--border);
  }

  .review-name { font-size: 12px; font-weight: 500; color: var(--espresso); }
  .review-meta { font-size: 11px; color: var(--hint); font-weight: 400; margin-top: 1px; }

  /* ─── CTA SECTION ────────────────────────────────────── */
  .cta-section {
    background: var(--espresso);
    padding: 96px 60px;
    text-align: center;
    position: relative;
    overflow: hidden;
  }

  .cta-texture {
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
      45deg,
      transparent,
      transparent 40px,
      rgba(184,147,90,0.03) 40px,
      rgba(184,147,90,0.03) 41px
    );
    pointer-events: none;
  }

  .cta-inner { position: relative; z-index: 1; }

  .cta-eyebrow {
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold-dk);
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
  }

  .cta-eyebrow-rule { width: 24px; height: 0.5px; background: var(--gold-dk); }

  .cta-h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 500;
    color: #F0E6D6;
    line-height: 1.15;
    margin-bottom: 14px;
  }

  .cta-sub {
    font-size: 13px;
    font-weight: 400;
    color: #5A4030;
    line-height: 1.8;
    margin-bottom: 40px;
  }

  .cta-price-block {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 14px;
    margin-bottom: 28px;
    flex-wrap: wrap;
  }

  .cta-price-new {
    font-family: 'Cormorant Garamond', serif;
    font-size: 52px;
    font-weight: 500;
    color: #E8D5B7;
    line-height: 1;
  }

  .cta-price-old {
    font-size: 18px;
    color: #9A8262;
    text-decoration: line-through;
    text-decoration-color: #8E6A3A;
    text-decoration-thickness: 1.5px;
  }

  .cta-discount {
    font-size: 10px;
    font-weight: 500;
    background: #2C2018;
    color: var(--gold);
    padding: 4px 12px;
    border: 0.5px solid #3D3025;
    letter-spacing: 0.07em;
  }

  .cta-btn {
    display: inline-block;
    background: var(--gold);
    color: var(--espresso);
    font-size: 12px;
    font-weight: 500;
    padding: 17px 52px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    transition: background 0.2s, transform 0.15s;
    margin-bottom: 20px;
  }

  .cta-btn:hover { background: var(--gold-lt); transform: translateY(-1px); }

  .cta-assurances {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    font-size: 11px;
    color: #3A2A1A;
    flex-wrap: wrap;
  }

  .cta-assurance {
    display: flex;
    align-items: center;
    gap: 6px;
  }

  .cta-assurance svg { width: 12px; height: 12px; color: var(--gold-dk); }

  /* ─── FOOTER ─────────────────────────────────────────── */
  .footer {
    background: #0F0C08;
    padding: 24px 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 0.5px solid #1A1410;
  }

  .footer-logo {
    font-family: 'Cormorant Garamond', serif;
    font-size: 15px;
    color: #C4A882;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: color 0.2s;
  }

  .footer-logo:hover { color: #E8D5B7; }

  .footer-links { display: flex; gap: 24px; }

  .footer-link {
    font-size: 10px;
    color: #8A7060;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: color 0.2s;
  }

  .footer-link:hover { color: #C4A882; }

  .footer-copy { font-size: 10px; color: #6A5040; letter-spacing: 0.02em; }
  .footer-copy a {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
  }

  /* ─── DIVIDER ────────────────────────────────────────── */
  .ruled { border: none; border-top: 0.5px solid var(--border); margin: 0; }

  /* ─── ANIMATION SYSTEM ──────────────────────────────── */

  /* Base reveal states — all hidden until JS kicks in */
  @media (prefers-reduced-motion: no-preference) {

    /* Fade up — sections, headings */
    [data-anim] {
      opacity: 0;
      transition-property: opacity, transform;
      transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
      transition-duration: 0.65s;
    }
    [data-anim="up"]    { transform: translateY(28px); }
    [data-anim="left"]  { transform: translateX(-28px); }
    [data-anim="right"] { transform: translateX(28px); }
    [data-anim="scale"] { transform: scale(0.96); }
    [data-anim="fade"]  { transform: none; }

    [data-anim].revealed {
      opacity: 1;
      transform: none;
    }

    /* Staggered children inside a [data-stagger] parent */
    [data-stagger] > * {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.5s cubic-bezier(0.22, 0.61, 0.36, 1),
                  transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
    }
    [data-stagger].revealed > *:nth-child(1) { transition-delay: 0.05s; }
    [data-stagger].revealed > *:nth-child(2) { transition-delay: 0.13s; }
    [data-stagger].revealed > *:nth-child(3) { transition-delay: 0.21s; }
    [data-stagger].revealed > *:nth-child(4) { transition-delay: 0.29s; }
    [data-stagger].revealed > *:nth-child(5) { transition-delay: 0.37s; }
    [data-stagger].revealed > *:nth-child(6) { transition-delay: 0.45s; }
    [data-stagger].revealed > * { opacity: 1; transform: none; }

    /* Hero entrance */
    .hero-left  { opacity: 0; transform: translateX(-32px);
                  transition: opacity 0.7s cubic-bezier(0.22,0.61,0.36,1),
                              transform 0.7s cubic-bezier(0.22,0.61,0.36,1); }
    .hero-right { opacity: 0; transform: translateX(32px);
                  transition: opacity 0.7s cubic-bezier(0.22,0.61,0.36,1) 0.15s,
                              transform 0.7s cubic-bezier(0.22,0.61,0.36,1) 0.15s; }
    .hero-left.revealed, .hero-right.revealed { opacity: 1; transform: none; }

    /* Eyebrow line grow */
    .eyebrow-rule, .eyebrow-tick {
      transform-origin: left center;
      transform: scaleX(0);
      transition: transform 0.5s cubic-bezier(0.22,0.61,0.36,1);
    }
    .revealed .eyebrow-rule,
    .revealed .eyebrow-tick,
    .eyebrow-rule.revealed,
    .eyebrow-tick.revealed { transform: scaleX(1); }

    /* Counter number pop */
    @keyframes numPop {
      0%   { opacity: 0; transform: scale(0.7) translateY(8px); }
      70%  { transform: scale(1.06) translateY(-2px); }
      100% { opacity: 1; transform: scale(1) translateY(0); }
    }
    .hc-num, .astat-num { opacity: 0; }
    .hc-num.counted, .astat-num.counted {
      animation: numPop 0.5s cubic-bezier(0.22,0.61,0.36,1) both;
    }

    /* Programme column slide */
    .prog-col {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.55s cubic-bezier(0.22,0.61,0.36,1),
                  transform 0.55s cubic-bezier(0.22,0.61,0.36,1);
    }
    .prog-col.revealed { opacity: 1; transform: none; }

    /* Prog index counter animate */
    @keyframes indexFade {
      from { opacity: 0; transform: translateY(12px); }
      to   { opacity: 1; transform: none; }
    }
    .prog-index { opacity: 0; }
    .prog-index.revealed { animation: indexFade 0.6s ease both; }

    /* Review cards */
    .review-card {
      opacity: 0;
      transform: translateY(18px);
      transition: opacity 0.5s cubic-bezier(0.22,0.61,0.36,1),
                  transform 0.5s cubic-bezier(0.22,0.61,0.36,1),
                  border-color 0.25s ease;
    }
    .review-card.revealed { opacity: 1; transform: none; }

    /* Whom cards */
    .whom-card {
      transition: border-color 0.25s ease,
                  transform 0.25s cubic-bezier(0.22,0.61,0.36,1),
                  opacity 0.5s cubic-bezier(0.22,0.61,0.36,1);
      opacity: 0;
      transform: translateY(18px);
    }
    .whom-card.revealed { opacity: 1; transform: none; }

    /* Trust bar items */
    .trust-item {
      opacity: 0;
      transform: translateY(10px);
      transition: opacity 0.4s ease, transform 0.4s ease;
    }
    .trust-item.revealed { opacity: 1; transform: none; }

    /* Author portrait */
    .author-portrait {
      opacity: 0;
      transform: scale(0.97);
      transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .author-portrait.revealed { opacity: 1; transform: none; }

    /* CTA section children */
    .cta-inner [data-anim] { /* handled by generic above */ }

    /* Nav entrance */
    .nav {
      animation: navSlide 0.5s cubic-bezier(0.22,0.61,0.36,1) both;
    }
    @keyframes navSlide {
      from { opacity: 0; transform: translateY(-100%); }
      to   { opacity: 1; transform: none; }
    }

  } /* end prefers-reduced-motion */

  /* ─── HOVER INTERACTIONS (always on) ────────────────── */

  /* Primary button — glow lift */
  .btn-primary {
    transition: background 0.22s ease,
                transform 0.18s cubic-bezier(0.22,0.61,0.36,1),
                box-shadow 0.22s ease !important;
  }
  .btn-primary:hover {
    background: var(--bark) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(26,20,16,0.18) !important;
  }
  .btn-primary:active { transform: translateY(0) !important; box-shadow: none !important; }

  /* Nav buy button */
  .nav-btn {
    transition: background 0.2s ease, transform 0.15s ease, letter-spacing 0.2s ease !important;
  }
  .nav-btn:hover {
    background: var(--bark) !important;
    transform: translateY(-1px) !important;
    letter-spacing: 0.1em !important;
  }
  .nav-btn:active { transform: translateY(0) !important; }

  /* Hero card CTA */
  .hc-cta {
    transition: background 0.22s ease,
                transform 0.18s cubic-bezier(0.22,0.61,0.36,1),
                box-shadow 0.22s ease,
                letter-spacing 0.2s ease !important;
  }
  .hc-cta:hover {
    background: var(--gold-dk) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 18px rgba(184,147,90,0.3) !important;
    letter-spacing: 0.11em !important;
  }
  .hc-cta:active { transform: translateY(0) !important; }

  /* Big CTA button */
  .cta-btn {
    transition: background 0.22s ease,
                transform 0.18s cubic-bezier(0.22,0.61,0.36,1),
                box-shadow 0.22s ease,
                letter-spacing 0.2s ease !important;
  }
  .cta-btn:hover {
    background: var(--gold-lt) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 32px rgba(184,147,90,0.35) !important;
    letter-spacing: 0.12em !important;
  }
  .cta-btn:active { transform: translateY(0) !important; box-shadow: none !important; }

  /* Ghost arrow button */
  .btn-ghost {
    transition: gap 0.22s ease, color 0.2s ease !important;
  }
  .btn-ghost:hover { gap: 14px !important; color: var(--gold-dk) !important; }

  /* Whom cards hover */
  .whom-card:hover {
    border-color: var(--gold-lt) !important;
    transform: translateY(-3px) !important;
  }
  .whom-icon {
    transition: background 0.2s ease, transform 0.2s ease;
  }
  .whom-card:hover .whom-icon {
    background: var(--parchment) !important;
    transform: scale(1.08);
  }

  /* Review cards hover */
  .review-card:hover {
    border-color: var(--gold-lt) !important;
    transform: translateY(-3px) !important;
  }

  /* Programme columns hover */
  .prog-col {
    transition: opacity 0.55s cubic-bezier(0.22,0.61,0.36,1),
                transform 0.55s cubic-bezier(0.22,0.61,0.36,1),
                background 0.2s ease !important;
  }
  .prog-col:hover { background: var(--linen) !important; }
  .prog-col:hover .prog-index { color: var(--gold-lt) !important; transition: color 0.2s; }

  /* Nav links underline slide */
  .nav-links a {
    position: relative;
  }
  .nav-links a::after {
    content: '';
    position: absolute;
    bottom: -2px; left: 0;
    width: 0; height: 0.5px;
    background: var(--gold);
    transition: width 0.25s ease;
  }
  .nav-links a:hover::after { width: 100%; }
  .nav-links a:hover { color: var(--espresso) !important; }

  /* Author stats hover */
  .astat {
    transition: background 0.2s ease;
  }
  .astat:hover { background: var(--parchment) !important; }

  /* Trust items hover */
  .trust-item {
    transition: opacity 0.4s ease, transform 0.4s ease, color 0.2s ease !important;
    cursor: default;
  }
  .trust-item:hover { color: var(--espresso) !important; }
  .trust-item:hover .trust-icon { color: var(--gold-dk) !important; }

  /* ─── RESPONSIVE ─────────────────────────────────────── */
  @media (max-width: 900px) {
    .nav { padding: 0 24px; }
    .nav-links { display: none; }
    .hero { grid-template-columns: 1fr; padding: 48px 24px 40px; min-height: auto; gap: 40px; }
    .hero-h1 { font-size: 44px; }
    .trust-bar { padding: 12px 24px; gap: 0; flex-wrap: wrap; }
    .trust-item { padding: 6px 16px; font-size: 10px; }
    .section { padding: 56px 24px; }
    .whom-grid, .reviews-grid { grid-template-columns: 1fr; }
    .prog-grid { grid-template-columns: 1fr; }
    .prog-col { border-right: none; border-bottom: 0.5px solid var(--border); }
    .prog-col:last-child { border-bottom: none; }
    .author-wrap { grid-template-columns: 1fr; gap: 32px; }
    .author-portrait { max-width: 220px; aspect-ratio: 1/1; margin: 0 auto; }
    .cta-section { padding: 64px 24px; }
    .cta-h2 { font-size: 34px; }
    .cta-price-new { font-size: 38px; }
    .footer { flex-direction: column; gap: 14px; text-align: center; padding: 20px 24px; }
    .footer-links { flex-wrap: wrap; justify-content: center; }
  }

  /* ─── REVIEWS MOVING BACKGROUND DEMO ────────────────── */
  #reviews {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }

  #reviews::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 12% 20%, rgba(184,147,90,0.08), transparent 26%),
      radial-gradient(circle at 82% 78%, rgba(122,101,85,0.07), transparent 24%);
    z-index: 0;
    pointer-events: none;
  }

  .reviews-bg-motion {
    position: absolute;
    inset: -120px -220px;
    z-index: 1;
    pointer-events: none;
    opacity: 0.42;
    transform: rotate(-9deg);
    will-change: transform;
  }

  .reviews-bg-track {
    display: flex;
    gap: 22px;
    width: max-content;
    padding: 28px 0;
    transform: translate3d(-8vw, 0, 0);
    will-change: transform;
  }

  .reviews-bg-track + .reviews-bg-track {
    margin-top: 16px;
    transform: translate3d(-24vw, 0, 0);
  }

  .student-profile-card {
    width: 220px;
    min-height: 118px;
    border-radius: 18px;
    padding: 16px;
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 12px;
    align-items: center;
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(184,147,90,0.22);
    box-shadow: 0 12px 35px rgba(26,20,16,0.08);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .student-profile-card:nth-child(3n+1) { transform: translateY(18px); }
  .student-profile-card:nth-child(3n+2) { transform: translateY(-8px); }

  .student-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 19px;
    font-weight: 600;
    color: rgba(26,20,16,0.72);
    background:
      linear-gradient(135deg, rgba(212,180,131,0.78), rgba(242,235,224,0.95));
    border: 1px solid rgba(184,147,90,0.2);
  }

  .student-profile-card:nth-child(4n+2) .student-avatar {
    background: linear-gradient(135deg, rgba(232,221,208,0.96), rgba(184,147,90,0.48));
  }

  .student-profile-card:nth-child(4n+3) .student-avatar {
    background: linear-gradient(135deg, rgba(250,246,240,0.98), rgba(168,152,128,0.50));
  }

  .student-profile-card:nth-child(4n+4) .student-avatar {
    background: linear-gradient(135deg, rgba(212,180,131,0.44), rgba(255,255,255,0.96));
  }

  .student-info {
    min-width: 0;
  }

  .student-name {
    font-size: 12px;
    font-weight: 500;
    color: rgba(26,20,16,0.78);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .student-handle {
    font-size: 10px;
    color: rgba(122,101,85,0.68);
    margin-top: 2px;
  }

  .student-meta {
    display: flex;
    gap: 6px;
    margin-top: 9px;
  }

  .student-pill {
    height: 6px;
    border-radius: 999px;
    background: rgba(184,147,90,0.18);
  }

  .student-pill.w1 { width: 54px; }
  .student-pill.w2 { width: 36px; }
  .student-pill.w3 { width: 24px; }

  #reviews > .section-eyebrow,
  #reviews > .section-h2,
  #reviews > .reviews-grid {
    position: relative;
    z-index: 3;
  }

  #reviews > .section-eyebrow,
  #reviews > .section-h2 {
    text-shadow: 0 1px 18px rgba(250,246,240,0.95);
  }

  #reviews .review-card {
    background: rgba(255,255,255,0.90);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 18px 44px rgba(26,20,16,0.08);
  }

  @media (max-width: 900px) {
    .reviews-bg-motion {
      inset: -70px -420px;
      opacity: 0.30;
    }

    .student-profile-card {
      width: 190px;
      min-height: 104px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .reviews-bg-motion,
    .reviews-bg-track {
      transform: rotate(-9deg) !important;
    }
  }


  /* ─── BRIGHTER CTA & FOOTER TEXT ────────────────────── */
  .cta-sub {
    color: #D8C6AF !important;
    font-weight: 500;
  }

  .cta-assurances {
    color: #CDB99F !important;
  }

  .cta-assurance {
    font-weight: 500;
  }

  .cta-assurance svg {
    color: #D4B483 !important;
    stroke-width: 1.8;
    filter: drop-shadow(0 0 5px rgba(212,180,131,0.26));
  }

  .footer-copy {
    color: #C8AD8E !important;
    font-weight: 500;
  }

  .footer-link {
    color: #BDA184 !important;
  }

  .footer-link:hover {
    color: #F0DDC4 !important;
  }


  /* ─── UPDATED USP STATS ─────────────────────────────── */
  .hc-unit {
    line-height: 1.35;
    min-height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .hc-proof-note {
    margin: -10px 0 18px;
    font-size: 9px;
    line-height: 1.4;
    color: var(--hint);
    text-align: center;
  }


  /* ─── PROGRAMME 3D HOVER ────────────────────────────── */
  .prog-grid {
    perspective: 1200px;
    overflow: visible;
  }

  .prog-col {
    position: relative;
    z-index: 1;
    transform-style: preserve-3d;
    transform-origin: center center;
    transition:
      transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
      background-color 0.28s ease,
      box-shadow 0.32s ease,
      border-color 0.28s ease !important;
  }

  .prog-col:hover {
    z-index: 5;
    background: #12100E !important;
    transform: translateY(-6px) translateZ(18px) scale(1.012) rotateX(0.8deg) !important;
    box-shadow:
      0 14px 32px rgba(26,20,16,0.20),
      0 5px 12px rgba(26,20,16,0.12);
    border-color: rgba(184,147,90,0.55) !important;
  }

  .prog-col .prog-index,
  .prog-col .prog-tag,
  .prog-col .prog-h3,
  .prog-col .prog-item,
  .prog-col .prog-dot {
    transition:
      color 0.26s ease,
      background-color 0.26s ease,
      border-color 0.26s ease,
      transform 0.26s ease;
  }

  .prog-col:hover .prog-index {
    color: #E89A45 !important;
    transform: translateZ(10px);
  }

  .prog-col:hover .prog-tag {
    color: #E89A45 !important;
    border-bottom-color: rgba(232,154,69,0.42) !important;
    transform: translateZ(8px);
  }

  .prog-col:hover .prog-h3 {
    color: #FFFFFF !important;
    transform: translateZ(9px);
  }

  .prog-col:hover .prog-item {
    color: rgba(255,255,255,0.84) !important;
    border-bottom-color: rgba(255,255,255,0.09) !important;
    transform: translateZ(5px);
  }

  .prog-col:hover .prog-dot {
    background: #E89A45 !important;
    box-shadow: 0 0 10px rgba(232,154,69,0.45);
  }

  @media (max-width: 900px) {
    .prog-grid {
      perspective: none;
      overflow: hidden;
    }

    .prog-col:hover {
      transform: translateY(-4px) scale(1.01) !important;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .prog-col:hover {
      transform: none !important;
    }
  }


  /* ─── REVIEW POPUP ──────────────────────────────────── */
  .review-card {
    cursor: pointer;
  }

  .review-card::after {
    content: 'Читать полностью';
    display: inline-flex;
    margin-top: 14px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gold);
  }

  .review-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15,12,8,0.68);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .review-modal.is-open {
    display: flex;
  }

  .review-modal-dialog {
    position: relative;
    width: min(560px, 100%);
    max-height: min(78vh, 720px);
    overflow-y: auto;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 34px;
    box-shadow: 0 30px 90px rgba(0,0,0,0.28);
    animation: reviewModalIn 0.24s ease both;
  }

  @keyframes reviewModalIn {
    from { opacity: 0; transform: translateY(16px) scale(0.98); }
    to { opacity: 1; transform: none; }
  }

  .review-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 34px;
    height: 34px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--linen);
    color: var(--espresso);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
  }

  .review-modal-stars {
    color: var(--gold);
    letter-spacing: 3px;
    margin-bottom: 18px;
  }

  .review-modal-quote {
    font-family: 'Cormorant Garamond', serif;
    font-size: 26px;
    line-height: 1.45;
    color: var(--espresso);
    margin-bottom: 22px;
  }

  .review-modal-body {
    font-size: 14px;
    line-height: 1.8;
    color: var(--muted);
    margin-bottom: 24px;
  }

  .review-modal-author {
    padding-top: 18px;
    border-top: 1px solid var(--linen);
  }

  .review-modal-name {
    font-size: 13px;
    font-weight: 500;
    color: var(--espresso);
  }

  .review-modal-meta {
    margin-top: 4px;
    font-size: 11px;
    color: var(--hint);
  }

  body.modal-open {
    overflow: hidden;
  }

  @media (max-width: 560px) {
    .review-modal-dialog {
      padding: 28px 22px 24px;
    }

    .review-modal-quote {
      font-size: 22px;
    }
  }


  /* ─── HERO BEIGE BACKGROUND IMAGE ───────────────────── */
  .hero {
    position: relative;
    isolation: isolate;
    background:
      linear-gradient(90deg, rgba(242,235,224,0.94) 0%, rgba(242,235,224,0.86) 43%, rgba(242,235,224,0.68) 100%),
      linear-gradient(180deg, rgba(184,147,90,0.08), rgba(61,46,26,0.12)),
      url("/assets/images/bg-a9205cadfec7.webp") center 42% / cover no-repeat;
  }

  .hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
      linear-gradient(90deg, rgba(250,246,240,0.86) 0%, rgba(250,246,240,0.76) 44%, rgba(250,246,240,0.48) 100%),
      rgba(184,147,90,0.10);
    mix-blend-mode: multiply;
    pointer-events: none;
  }

  .hero::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
      radial-gradient(circle at 72% 35%, rgba(232,221,208,0.16), transparent 36%),
      linear-gradient(180deg, rgba(26,20,16,0.03), rgba(26,20,16,0.10));
    pointer-events: none;
  }

  .hero-left,
  .hero-card {
    position: relative;
    z-index: 2;
  }

  .hero-card {
    background: rgba(255,255,255,0.90);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 18px 50px rgba(26,20,16,0.11);
  }

  .hero-h1,
  .hero-sub,
  .hero-eyebrow {
    text-shadow: 0 1px 18px rgba(250,246,240,0.85);
  }

  @media (max-width: 900px) {
    .hero {
      background-position: 58% 44%;
      background-size: cover;
    }

    .hero::before {
      background:
        linear-gradient(180deg, rgba(250,246,240,0.94) 0%, rgba(250,246,240,0.88) 58%, rgba(250,246,240,0.78) 100%),
        rgba(184,147,90,0.14);
    }
  }


  /* ─── FOR WHOM SCROLL-SIDE IMAGES ───────────────────── */
  .for-whom-section {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }

  .for-whom-content {
    position: relative;
    z-index: 3;
    max-width: 860px;
    margin: 0 auto;
  }

  .for-whom-content .section-eyebrow,
  .for-whom-content .section-h2 {
    text-align: center;
    justify-content: center;
  }

  .for-whom-content .section-h2 {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }

  .for-whom-content .whom-grid {
    max-width: 820px;
    margin: 0 auto;
  }

  .for-whom-side {
    position: absolute;
    top: 50%;
    z-index: 1;
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 56px;
    pointer-events: none;
    opacity: 0;
    will-change: transform, opacity;
  }

  .for-whom-side.left {
    left: 18px;
    transform: translate(-120%, -50%);
  }

  .for-whom-side.right {
    right: 18px;
    transform: translate(120%, -50%);
    padding-top: 84px;
  }

  .for-whom-side.is-active {
    opacity: 1;
  }

  .for-whom-side-card {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(184,147,90,0.24);
    background:
      linear-gradient(145deg, rgba(255,255,255,0.84), rgba(232,221,208,0.88));
    box-shadow: 0 18px 48px rgba(26,20,16,0.10);
  }

  .for-whom-side-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 30% 25%, rgba(212,180,131,0.34), transparent 30%),
      linear-gradient(135deg, rgba(122,101,85,0.14), rgba(255,255,255,0.02));
  }

  .for-whom-side-card::after {
    content: attr(data-label);
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 16px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.78);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-size: 11px;
    line-height: 1.35;
    color: var(--espresso);
    border: 1px solid rgba(255,255,255,0.42);
  }

  .for-whom-side-card .placeholder-shape {
    position: absolute;
    inset: 20px;
    border-radius: 14px;
    background:
      linear-gradient(155deg, rgba(184,147,90,0.18), rgba(168,152,128,0.26));
    border: 1px dashed rgba(138,106,56,0.28);
  }

  .for-whom-side.left .for-whom-side-card:nth-child(2) {
    transform: translateX(34px);
  }

  .for-whom-side.right .for-whom-side-card:nth-child(1) {
    transform: translateX(-34px);
  }

  @media (max-width: 1180px) {
    .for-whom-side {
      width: 180px;
      opacity: 0.72;
    }

    .for-whom-content {
      max-width: 760px;
    }

    .for-whom-content .whom-grid {
      max-width: 720px;
    }
  }

  @media (max-width: 980px) {
    .for-whom-side {
      display: none;
    }

    .for-whom-content,
    .for-whom-content .whom-grid {
      max-width: none;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .for-whom-side {
      opacity: 0.32 !important;
      transform: translateY(-50%) !important;
    }
  }


  /* Реальные изображения в боковых карточках */
  .for-whom-side-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    filter: saturate(0.88) contrast(0.98) brightness(0.93);
    transform: scale(1.02);
  }

  .for-whom-side-card::before {
    z-index: 1;
    background:
      linear-gradient(180deg, rgba(61,46,26,0.02) 35%, rgba(61,46,26,0.38) 100%),
      rgba(184,147,90,0.05);
  }

  .for-whom-side-card::after {
    z-index: 2;
  }


  /* Боковые карточки без подписей */
  .for-whom-side-card::after {
    content: none !important;
    display: none !important;
  }


  /* ─── LOWER RIGHT IMAGE OVERLAPS PROGRAMME ───────────── */
  .for-whom-section {
    overflow: visible !important;
    z-index: 2;
  }

  .for-whom-side.right {
    overflow: visible;
  }

  .for-whom-side.right .for-whom-side-card:nth-child(2) {
    transform: translateY(74px);
    z-index: 6;
    box-shadow: 0 24px 56px rgba(26,20,16,0.16);
  }

  #programme {
    position: relative;
    z-index: 1;
    padding-top: 120px;
  }

  @media (max-width: 1180px) {
    .for-whom-side.right .for-whom-side-card:nth-child(2) {
      transform: translateY(52px);
    }

    #programme {
      padding-top: 100px;
    }
  }

  @media (max-width: 980px) {
    .for-whom-section {
      overflow: hidden !important;
    }

    #programme {
      padding-top: 56px;
    }
  }


  /* ─── COMPACT SIDE IMAGES INSIDE FOR-WHOM BLOCK ─────── */
  .for-whom-section {
    overflow: hidden !important;
  }

  .for-whom-side {
    width: 185px;
    gap: 24px;
  }

  .for-whom-side.right {
    padding-top: 42px;
  }

  .for-whom-side.left .for-whom-side-card:nth-child(2) {
    transform: translateX(22px);
  }

  .for-whom-side.right .for-whom-side-card:nth-child(1) {
    transform: translateX(-22px);
  }

  .for-whom-side.right .for-whom-side-card:nth-child(2) {
    transform: none !important;
  }

  #programme {
    padding-top: 80px !important;
  }

  @media (max-width: 1180px) {
    .for-whom-side {
      width: 160px;
      gap: 18px;
    }

    .for-whom-side.right {
      padding-top: 28px;
    }

    .for-whom-side.left .for-whom-side-card:nth-child(2) {
      transform: translateX(16px);
    }

    .for-whom-side.right .for-whom-side-card:nth-child(1) {
      transform: translateX(-16px);
    }

    #programme {
      padding-top: 72px !important;
    }
  }

  @media (max-width: 980px) {
    #programme {
      padding-top: 56px !important;
    }
  }


  /* ─── AUTHOR PHOTO INSERTED ──────────────────────────── */
  .author-portrait img {
    object-fit: cover !important;
    object-position: center 24% !important;
    filter: saturate(0.96) contrast(1.02);
  }


  /* ─── AUTHOR INSTAGRAM ───────────────────────────────── */
  .author-instagram {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: -10px 0 24px;
    color: var(--gold);
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.03em;
    transition: color 0.2s ease, transform 0.2s ease;
  }

  .author-instagram svg {
    width: 18px;
    height: 18px;
    color: var(--gold-lt);
    flex-shrink: 0;
  }

  .author-instagram:hover {
    color: var(--gold-dk);
    transform: translateY(-1px);
  }

  .author-instagram:hover svg {
    color: var(--gold);
  }


  /* ─── AUTHOR SOCIAL LINKS ────────────────────────────── */
  .author-socials {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 20px;
    margin: -10px 0 24px;
  }

  .author-socials .author-instagram,
  .author-social {
    margin: 0 !important;
  }

  .author-social {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--gold);
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.03em;
    transition: color 0.2s ease, transform 0.2s ease;
  }

  .author-social svg {
    width: 18px;
    height: 18px;
    color: var(--gold-lt);
    flex-shrink: 0;
  }

  .author-social:hover {
    color: var(--gold-dk);
    transform: translateY(-1px);
  }

  .author-social:hover svg {
    color: var(--gold);
  }


.for-whom-section{perspective:1400px}
.for-whom-side{transform-style:preserve-3d}
.for-whom-side-card{
  position:relative;overflow:visible!important;border-radius:28px!important;padding:8px;
  background:linear-gradient(145deg,rgba(255,255,255,.52),rgba(232,221,208,.22));
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 22px 55px rgba(26,20,16,.16),inset 0 1px 0 rgba(255,255,255,.78);
  backdrop-filter:blur(18px) saturate(135%);-webkit-backdrop-filter:blur(18px) saturate(135%);
  transform-style:preserve-3d;will-change:transform;
  transition:transform .38s cubic-bezier(.22,.61,.36,1),box-shadow .32s ease,border-color .32s ease
}
.for-whom-side-card::before{
  content:'';position:absolute;inset:0;z-index:3;border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.58),rgba(255,255,255,.10) 24%,transparent 48%),linear-gradient(315deg,rgba(184,147,90,.12),transparent 42%);
  pointer-events:none;mix-blend-mode:screen
}
.for-whom-side-card::after{
  content:''!important;display:block!important;position:absolute;inset:-1px;z-index:-1;border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(184,147,90,.22),rgba(255,255,255,.28));
  filter:blur(10px);opacity:.34;pointer-events:none
}
.for-whom-side-card img{
  width:100%;height:100%;display:block;object-fit:cover;border-radius:21px;
  transform:translateZ(18px) scale(1.025);filter:saturate(.9) contrast(1.02) brightness(.95);
  box-shadow:0 10px 28px rgba(26,20,16,.14);
  transition:transform .38s cubic-bezier(.22,.61,.36,1),filter .32s ease
}
.for-whom-side-card:hover{box-shadow:0 30px 70px rgba(26,20,16,.22),inset 0 1px 0 rgba(255,255,255,.9);border-color:rgba(212,180,131,.7)!important}
.for-whom-side-card:hover img{transform:translateZ(28px) scale(1.055);filter:saturate(.98) contrast(1.04) brightness(.99)}
@keyframes glassFloatA{0%,100%{translate:0 0}50%{translate:0 -4px}}
@keyframes glassFloatB{0%,100%{translate:0 0}50%{translate:0 4px}}
.for-whom-side.left .for-whom-side-card:nth-child(1),
.for-whom-side.right .for-whom-side-card:nth-child(2){animation:glassFloatA 7s ease-in-out infinite}
.for-whom-side.left .for-whom-side-card:nth-child(2),
.for-whom-side.right .for-whom-side-card:nth-child(1){animation:glassFloatB 8s ease-in-out infinite}
@media(max-width:1180px){.for-whom-side-card{border-radius:24px!important;padding:6px}.for-whom-side-card img{border-radius:18px}}
@media(prefers-reduced-motion:reduce){.for-whom-side-card,.for-whom-side-card img{animation:none!important;transition:none!important}}


/* ─── RESPONSIVE ADAPTATION: FOR-WHOM GLASS CARDS ─────── */

/* Desktop / large web */
@media (min-width: 1181px) {
  .for-whom-section {
    padding-left: clamp(230px, 18vw, 300px);
    padding-right: clamp(230px, 18vw, 300px);
  }

  .for-whom-side {
    width: 190px;
    gap: 26px;
  }

  .for-whom-side.left {
    left: 28px;
  }

  .for-whom-side.right {
    right: 28px;
  }

  .for-whom-content {
    max-width: 820px;
  }

  .for-whom-content .whom-grid {
    max-width: 780px;
  }
}

/* Laptop / tablet landscape */
@media (min-width: 981px) and (max-width: 1180px) {
  .for-whom-section {
    padding-left: 170px;
    padding-right: 170px;
  }

  .for-whom-side {
    width: 150px !important;
    gap: 18px !important;
  }

  .for-whom-side.left {
    left: 14px;
  }

  .for-whom-side.right {
    right: 14px;
  }

  .for-whom-side-card {
    border-radius: 22px !important;
    padding: 5px !important;
  }

  .for-whom-side-card img {
    border-radius: 17px !important;
  }

  .for-whom-content {
    max-width: 720px;
  }

  .for-whom-content .whom-grid {
    max-width: 680px;
  }
}

/* Mobile and tablet portrait */
@media (max-width: 980px) {
  .for-whom-section {
    display: grid;
    grid-template-columns: 1fr;
    gap: 26px;
    overflow: hidden !important;
    padding-left: 20px;
    padding-right: 20px;
    perspective: none !important;
  }

  .for-whom-content {
    order: 1;
    max-width: none !important;
    width: 100%;
  }

  .for-whom-content .whom-grid {
    max-width: none !important;
  }

  .for-whom-side {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 680px;
    margin: 0 auto;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .for-whom-side.left {
    order: 2;
  }

  .for-whom-side.right {
    order: 3;
  }

  .for-whom-side-card,
  .for-whom-side.left .for-whom-side-card:nth-child(1),
  .for-whom-side.left .for-whom-side-card:nth-child(2),
  .for-whom-side.right .for-whom-side-card:nth-child(1),
  .for-whom-side.right .for-whom-side-card:nth-child(2) {
    width: 100% !important;
    aspect-ratio: 4 / 5;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    border-radius: 22px !important;
    padding: 5px !important;
  }

  .for-whom-side-card img {
    border-radius: 17px !important;
    transform: none !important;
  }

  .for-whom-side-card:hover {
    transform: translateY(-3px) !important;
  }

  .for-whom-side-card:hover img {
    transform: scale(1.025) !important;
  }
}

/* Small phones */
@media (max-width: 560px) {
  .for-whom-section {
    gap: 20px;
    padding-left: 14px;
    padding-right: 14px;
  }

  .for-whom-side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px !important;
  }

  .for-whom-side-card {
    border-radius: 18px !important;
    padding: 4px !important;
    box-shadow:
      0 14px 32px rgba(26,20,16,0.13),
      inset 0 1px 0 rgba(255,255,255,0.72) !important;
  }

  .for-whom-side-card img {
    border-radius: 14px !important;
  }
}

/* Very narrow phones */
@media (max-width: 390px) {
  .for-whom-side {
    grid-template-columns: 1fr;
    max-width: 280px;
  }

  .for-whom-side-card {
    aspect-ratio: 5 / 4;
  }
}


.review-stars{
    display:none !important;
}


  /* ─── CENTER LEGAL LINKS ─────────────────────────────── */
  .footer-links,
  .legal-links,
  .cta-assurances {
    justify-content: center !important;
    text-align: center;
  }

  .footer-link,
  .legal-link {
    text-align: center;
  }

  .footer-inner,
  .footer-content {
    text-align: center;
  }


/* Force center legal links row */
.footer-legal,
.footer-links,
.legal-links{
    width:100%;
    display:flex !important;
    justify-content:center !important;
    align-items:center;
    gap:16px;
    margin:0 auto !important;
}

.footer-legal a,
.footer-links a,
.legal-links a{
    display:inline-flex;
}

.footer{
    text-align:center;
}


/* Footer: legal links exactly centered at the bottom */
.footer {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 24px !important;
}

.footer-logo {
  justify-self: start !important;
}

.footer-links {
  justify-self: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 24px !important;
  width: auto !important;
  margin: 0 !important;
}

.footer-copy {
  justify-self: end !important;
  text-align: right !important;
  max-width: 520px;
}

@media (max-width: 900px) {
  .footer {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    text-align: center !important;
  }

  .footer-logo,
  .footer-links,
  .footer-copy {
    justify-self: center !important;
    text-align: center !important;
  }
}


/* ─── MOBILE VISIBILITY SAFETY FIX ────────────────────── */
@media (max-width: 980px) {
  /* На мобильных контент не зависит от IntersectionObserver */
  [data-anim],
  [data-stagger],
  [data-stagger] > *,
  .hero-left,
  .hero-right,
  .prog-col,
  .prog-index,
  .review-card,
  .whom-card,
  .trust-item,
  .author-portrait,
  .hc-num,
  .astat-num,
  .eyebrow-rule,
  .eyebrow-tick {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    animation: none !important;
  }

  /* Боковые фото блока «Для кого» показываются сеткой */
  .for-whom-side {
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    position: relative !important;
    inset: auto !important;
  }

  /* Не даём декоративным слоям перекрывать контент */
  .reviews-bg-motion {
    opacity: 0.16 !important;
    pointer-events: none !important;
  }

  .hero,
  .section,
  #reviews,
  #programme,
  .author-section {
    overflow-x: clip;
  }
}

/* Резервный режим для браузеров без поддержки анимационной логики */
.no-js [data-anim],
.no-js [data-stagger] > *,
.no-js .hero-left,
.no-js .hero-right,
.no-js .prog-col,
.no-js .review-card,
.no-js .whom-card,
.no-js .trust-item,
.no-js .author-portrait {
  opacity: 1 !important;
  transform: none !important;
}


  /* ─── REVIEW AUTHOR AVATAR ───────────────────────────── */
  .review-author-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
  }

  .review-avatar {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 18%;
    border: 1px solid rgba(184,147,90,0.28);
    box-shadow: 0 6px 16px rgba(26,20,16,0.10);
  }

  .review-author-text {
    min-width: 0;
  }

  .review-author-row .review-name,
  .review-author-row .review-meta {
    margin: 0;
  }

  @media (max-width: 560px) {
    .review-avatar {
      width: 38px;
      height: 38px;
      flex-basis: 38px;
    }
  }


  /* ─── MORE REVIEWS BUTTON & POPUP ───────────────────── */
  .more-reviews-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px;
  }

  .more-reviews-btn {
    min-width: 190px;
    min-height: 48px;
    padding: 13px 26px;
    border: 1px solid rgba(184,147,90,0.48);
    border-radius: 999px;
    background: rgba(255,255,255,0.76);
    color: var(--espresso);
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 10px 28px rgba(26,20,16,0.08);
    transition: transform .22s ease, background-color .22s ease, color .22s ease;
  }

  .more-reviews-btn:hover {
    transform: translateY(-2px);
    background: var(--espresso);
    color: #fff;
  }

  .more-reviews-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(15,12,8,0.72);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .more-reviews-modal.is-open {
    display: flex;
  }

  .more-reviews-dialog {
    position: relative;
    width: min(900px, 100%);
    max-height: 86vh;
    overflow-y: auto;
    border-radius: 22px;
    padding: 38px;
    background: rgba(250,246,240,0.98);
    border: 1px solid rgba(184,147,90,0.22);
    box-shadow: 0 34px 100px rgba(0,0,0,0.32);
    animation: reviewModalIn .24s ease both;
  }

  .more-reviews-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--linen);
    color: var(--espresso);
    font-size: 21px;
    cursor: pointer;
  }

  .more-reviews-title {
    margin: 10px 0 26px;
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(30px, 4vw, 46px);
    color: var(--espresso);
  }

  .more-reviews-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .more-review-placeholder {
    grid-column: 1 / -1;
    padding: 34px;
    border-radius: 16px;
    border: 1px dashed rgba(184,147,90,0.40);
    background: rgba(255,255,255,0.64);
    color: var(--muted);
    text-align: center;
    line-height: 1.7;
  }

  @media (max-width: 700px) {
    .more-reviews-dialog {
      padding: 30px 20px 24px;
    }

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


  /* ─── INTEGRATE MORE REVIEWS BUTTON INTO REVIEWS BLOCK ─ */
  #reviews {
    padding-bottom: 56px !important;
  }

  .more-reviews-wrap {
    margin-top: 24px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  .more-reviews-btn {
    background: rgba(255,255,255,0.82);
  }

  /* Remove any separate white strip around the button */
  #reviews + .more-reviews-wrap,
  .more-reviews-wrap + .review-modal,
  .more-reviews-wrap + .more-reviews-modal {
    border-top: 0 !important;
  }


  /* Поднимаем кнопку «Ещё отзывы» ближе к карточкам */
  .more-reviews-wrap {
    margin-top: 8px !important;
    transform: translateY(-10px);
  }

  #reviews {
    padding-bottom: 38px !important;
  }

  @media (max-width: 700px) {
    .more-reviews-wrap {
      margin-top: 4px !important;
      transform: translateY(-8px);
    }

    #reviews {
      padding-bottom: 32px !important;
    }
  }


  /* ─── REMOVE WHITE STRIP AROUND MORE REVIEWS BUTTON ─── */
  #reviews {
    background: var(--linen) !important;
    padding-bottom: 34px !important;
  }

  .more-reviews-wrap {
    width: 100%;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .more-reviews-btn {
    border: none !important;
    box-shadow: none !important;
    background: rgba(255,255,255,0.88) !important;
  }

  .more-reviews-btn:hover {
    background: var(--espresso) !important;
    color: #fff !important;
  }


/* ─── MOBILE UX FIXES ─────────────────────────────────── */
@media (max-width: 980px) {
  /* 1. Contrast for “Смотреть программу” */
  .hero-actions {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 12px !important;
    width: 100%;
  }

  .hero-actions .btn-primary,
  .hero-actions .btn-ghost {
    width: 100%;
    min-height: 52px;
    justify-content: center;
    text-align: center;
  }

  .hero-actions .btn-ghost {
    color: var(--espresso) !important;
    background: rgba(255, 255, 255, 0.82) !important;
    border: 1px solid rgba(138, 106, 56, 0.34) !important;
    border-radius: 999px;
    padding: 14px 20px !important;
    box-shadow: 0 8px 24px rgba(26, 20, 16, 0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    text-shadow: none !important;
  }

  .hero-actions .btn-ghost-arrow {
    display: inline-grid;
    place-items: center;
    width: 25px;
    height: 25px;
    margin-left: 8px;
    border-radius: 50%;
    background: rgba(184, 147, 90, 0.16);
    color: var(--gold-dk);
  }

  /* 2. Four trust items strictly 2 × 2 and centered */
  .trust-bar {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 18px 14px !important;
    align-items: stretch !important;
  }

  .trust-item {
    width: 100%;
    min-width: 0;
    min-height: 76px;
    padding: 12px 8px !important;
    display: flex !important;
    flex-direction: column;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    text-align: center !important;
    line-height: 1.3;
    border: 1px solid rgba(184, 147, 90, 0.16);
    border-radius: 14px;
    background: rgba(255,255,255,0.48);
  }

  .trust-item .trust-icon {
    margin: 0 !important;
    flex: 0 0 auto;
  }

  /* The same tidy 2 × 2 logic for lower guarantees */
  .cta-assurances {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: min(100%, 430px);
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .cta-assurance {
    min-width: 0;
    justify-content: center !important;
    text-align: center;
  }

  .cta-assurance:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc(50% - 5px);
  }

  /* 3. Programme cards: active card in viewport gets desktop dark state */
  .prog-col {
    background: var(--white) !important;
    transition:
      background-color .34s ease,
      color .34s ease,
      box-shadow .34s ease,
      transform .34s ease,
      border-color .34s ease !important;
  }

  .prog-col.mobile-active {
    background: #12100E !important;
    border-color: rgba(232, 154, 69, 0.48) !important;
    box-shadow: 0 18px 42px rgba(26,20,16,0.22) !important;
    transform: scale(.985) !important;
  }

  .prog-col.mobile-active .prog-index,
  .prog-col.mobile-active .prog-tag {
    color: #E89A45 !important;
  }

  .prog-col.mobile-active .prog-h3 {
    color: #FFFFFF !important;
  }

  .prog-col.mobile-active .prog-item {
    color: rgba(255,255,255,.84) !important;
    border-bottom-color: rgba(255,255,255,.10) !important;
  }

  .prog-col.mobile-active .prog-dot {
    background: #E89A45 !important;
    box-shadow: 0 0 10px rgba(232,154,69,.42);
  }

  /* 4. Popup must always be clickable and above everything */
  .review-card {
    position: relative;
    z-index: 3;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .review-modal {
    z-index: 99999 !important;
    padding: 12px !important;
    align-items: center !important;
  }

  .review-modal-dialog {
    width: 100% !important;
    max-width: 560px;
    max-height: 86dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    padding: 30px 20px 24px !important;
  }

  .review-modal-close {
    position: sticky !important;
    top: 0;
    margin-left: auto;
    z-index: 5;
  }

  .review-modal-body {
    white-space: pre-line;
  }

  .reviews-bg-motion {
    pointer-events: none !important;
    z-index: 0 !important;
  }

  #reviews > .reviews-grid,
  #reviews > .section-eyebrow,
  #reviews > .section-h2 {
    z-index: 3 !important;
  }
}

@media (max-width: 390px) {
  .trust-bar {
    gap: 8px !important;
    padding: 14px 10px !important;
  }

  .trust-item {
    min-height: 72px;
    font-size: 10px;
  }
}


/* ─── MOBILE UX FIX V2 ────────────────────────────────── */
@media (max-width: 980px) {
  /* More transparent “Смотреть программу”, slightly bolder */
  .hero-actions .btn-ghost {
    background: rgba(255,255,255,0.58) !important;
    border: 1px solid rgba(255,255,255,0.62) !important;
    color: var(--espresso) !important;
    font-weight: 600 !important;
    backdrop-filter: blur(16px) saturate(130%);
    -webkit-backdrop-filter: blur(16px) saturate(130%);
    box-shadow:
      0 8px 24px rgba(26,20,16,0.08),
      inset 0 1px 0 rgba(255,255,255,0.70);
  }

  .hero-actions .btn-ghost-arrow {
    background: rgba(255,255,255,0.48) !important;
    border: 1px solid rgba(184,147,90,0.20);
  }

  /* Compact and move trust blocks upward */
  .trust-bar {
    margin-top: 8px !important;
    padding: 10px 12px 14px !important;
    gap: 8px !important;
  }

  .trust-item {
    min-height: 58px !important;
    padding: 8px 6px !important;
    gap: 5px !important;
    border-radius: 12px !important;
    font-size: 9px !important;
    line-height: 1.2 !important;
  }

  .trust-item .trust-icon,
  .trust-item svg {
    width: 16px !important;
    height: 16px !important;
  }

  /* Make “Читать полностью” more visible */
  .review-card::after {
    font-weight: 700 !important;
    font-size: 11px !important;
    letter-spacing: 0.06em !important;
    color: var(--gold-dk) !important;
  }

  /* Ensure active programme state wins over all previous mobile resets */
  .prog-col.mobile-active,
  .prog-col.mobile-active:hover {
    background: #12100E !important;
    border-color: rgba(232,154,69,0.52) !important;
    box-shadow: 0 18px 42px rgba(26,20,16,0.24) !important;
    transform: scale(0.985) !important;
  }

  .prog-col.mobile-active .prog-index,
  .prog-col.mobile-active .prog-tag {
    color: #E89A45 !important;
  }

  .prog-col.mobile-active .prog-h3 {
    color: #FFFFFF !important;
  }

  .prog-col.mobile-active .prog-item {
    color: rgba(255,255,255,0.86) !important;
    border-bottom-color: rgba(255,255,255,0.10) !important;
  }

  .prog-col.mobile-active .prog-dot {
    background: #E89A45 !important;
    box-shadow: 0 0 10px rgba(232,154,69,0.42) !important;
  }

  /* Robust modal full-screen behavior on mobile */
  .review-modal {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483647 !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px !important;
    background: rgba(15,12,8,0.78) !important;
  }

  .review-modal.is-open {
    display: flex !important;
  }

  .review-modal-dialog {
    display: block !important;
    width: 100% !important;
    max-width: 560px !important;
    max-height: 88dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    background: var(--white) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .review-modal-quote,
  .review-modal-body,
  .review-modal-name,
  .review-modal-meta {
    opacity: 1 !important;
    visibility: visible !important;
  }

  .review-modal-body {
    white-space: pre-line !important;
  }
}


@media (max-width: 980px) {
  .review-read-more {
    display: none !important;
  }

  .review-card::after {
    content: none !important;
    display: none !important;
  }
}


/* Center carousel arrows precisely inside circular buttons */
.reviews-carousel-arrow {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  font-family: Arial, sans-serif !important;
  font-size: 22px !important;
}

.reviews-carousel-arrow::before,
.reviews-carousel-arrow::after {
  line-height: 1 !important;
}


/* Raise arrow glyphs slightly inside the circular buttons */
.reviews-carousel-arrow {
  text-indent: 0 !important;
}

.reviews-carousel-arrow {
  padding-bottom: 3px !important;
}


/* Индикатор проходит всю доступную ширину трека */
.reviews-progress-thumb {
  left: 0 !important;
  right: auto !important;
  will-change: transform;
}


/* Увеличение боковых изображений в блоке «Для кого» в 2 раза */
@media (min-width: 1181px) {
  .for-whom-side {
    width: 370px !important;
    gap: 24px !important;
  }

  .for-whom-side.left {
    left: 8px !important;
  }

  .for-whom-side.right {
    right: 8px !important;
  }
}

@media (min-width: 981px) and (max-width: 1180px) {
  .for-whom-side {
    width: 320px !important;
    gap: 18px !important;
  }

  .for-whom-side.left {
    left: 6px !important;
  }

  .for-whom-side.right {
    right: 6px !important;
  }
}


/* ─── REBUILT FOR-WHOM: TEXT + CASCADE CAROUSEL ───────── */
.fw-rebuilt {
  position: relative;
  overflow: hidden;
  padding-top: 96px;
  padding-bottom: 96px;
}

.fw-rebuilt__inner {
  width: min(1220px, calc(100% - 120px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(420px, 1.05fr);
  gap: clamp(56px, 7vw, 110px);
  align-items: center;
}

.fw-rebuilt__text .section-eyebrow,
.fw-rebuilt__text .section-h2 {
  text-align: left;
  justify-content: flex-start;
}

.fw-rebuilt__text .section-h2 {
  margin-bottom: 34px;
}

.fw-rebuilt__list {
  display: grid;
  gap: 13px;
}

.fw-rebuilt__item {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  align-items: start;
  padding: 18px 0;
  border-bottom: 1px solid rgba(184,147,90,.18);
}

.fw-rebuilt__item:first-child {
  border-top: 1px solid rgba(184,147,90,.18);
}

.fw-rebuilt__item .whom-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(242,235,224,.9);
  border: 1px solid rgba(184,147,90,.22);
}

.fw-rebuilt__title {
  margin: 0 0 5px;
  font-size: 15px;
  font-weight: 500;
  color: var(--espresso);
  line-height: 1.35;
}

.fw-rebuilt__copy {
  margin: 0;
  font-size: 12px;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.7;
}

.fw-rebuilt__visual {
  position: relative;
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fw-carousel {
  position: relative;
  width: min(100%, 520px);
  min-height: 610px;
  display: grid;
  place-items: center;
  touch-action: pan-y;
}

.fw-carousel__viewport {
  position: relative;
  width: 390px;
  height: 520px;
  overflow: visible;
}

.fw-carousel__stack {
  position: relative;
  width: 100%;
  height: 100%;
  perspective: 1500px;
}

.fw-carousel__slide {
  position: absolute;
  inset: 0;
  margin: 0;
  border-radius: 30px;
  padding: 9px;
  background: linear-gradient(145deg, rgba(255,255,255,.76), rgba(232,221,208,.38));
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: 0 28px 70px rgba(26,20,16,.18), inset 0 1px 0 rgba(255,255,255,.92);
  backdrop-filter: blur(18px) saturate(135%);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
  transform-origin: 50% 100%;
  transition:
    transform .62s cubic-bezier(.22,.61,.36,1),
    opacity .45s ease,
    filter .45s ease,
    z-index 0s linear;
  will-change: transform, opacity;
  overflow: hidden;
}

.fw-carousel__slide img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  border-radius: 22px;
  user-select: none;
  -webkit-user-drag: none;
}

.fw-carousel__slide.is-current {
  z-index: 5;
  opacity: 1;
  transform: translate3d(0,0,0) rotate(0deg) scale(1);
  filter: saturate(.98) contrast(1.02);
}

.fw-carousel__slide.is-next-1 {
  z-index: 4;
  opacity: .88;
  transform: translate3d(34px, 20px, -55px) rotate(3.2deg) scale(.965);
  filter: saturate(.86) brightness(.96);
}

.fw-carousel__slide.is-next-2 {
  z-index: 3;
  opacity: .64;
  transform: translate3d(66px, 40px, -105px) rotate(6deg) scale(.925);
  filter: saturate(.74) brightness(.92);
}

.fw-carousel__slide.is-next-3 {
  z-index: 2;
  opacity: .38;
  transform: translate3d(92px, 58px, -155px) rotate(8deg) scale(.89);
  filter: saturate(.62) brightness(.88);
}

.fw-carousel__slide.is-past {
  z-index: 1;
  opacity: 0;
  transform: translate3d(-90px, 12px, -100px) rotate(-7deg) scale(.9);
  pointer-events: none;
}

.fw-carousel__arrow {
  position: absolute;
  top: 45%;
  z-index: 10;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(184,147,90,.28);
  background: rgba(250,246,240,.78);
  color: var(--espresso);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 19px;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.fw-carousel__arrow:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.96);
  border-color: rgba(184,147,90,.55);
}

.fw-carousel__arrow--prev { left: -2px; }
.fw-carousel__arrow--next { right: -2px; }

.fw-carousel__dots {
  position: absolute;
  left: 50%;
  bottom: 2px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 12;
}

.fw-carousel__dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(138,106,56,.24);
  cursor: pointer;
  transition: width .28s ease, border-radius .28s ease, background .28s ease;
}

.fw-carousel__dot.is-active {
  width: 30px;
  border-radius: 999px;
  background: var(--gold);
}

/* Entrance animation: text from left, carousel from right */
@media (prefers-reduced-motion: no-preference) {
  .fw-rebuilt__text,
  .fw-rebuilt__visual {
    opacity: 0;
    transition:
      opacity .8s cubic-bezier(.22,.61,.36,1),
      transform .9s cubic-bezier(.22,.61,.36,1);
  }

  .fw-rebuilt__text {
    transform: translate3d(-44px, 0, 0);
  }

  .fw-rebuilt__visual {
    transform: translate3d(150px, 0, 0);
  }

  .fw-rebuilt.is-visible .fw-rebuilt__text,
  .fw-rebuilt.is-visible .fw-rebuilt__visual {
    opacity: 1;
    transform: translate3d(0,0,0);
  }

  .fw-rebuilt.is-visible .fw-rebuilt__visual {
    transition-delay: .12s;
  }
}

@media (max-width: 980px) {
  .fw-rebuilt {
    padding: 68px 0 74px;
  }

  .fw-rebuilt__inner {
    width: min(100% - 40px, 760px);
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .fw-rebuilt__visual {
    min-height: 560px;
    order: 2;
  }

  .fw-carousel {
    width: 100%;
    min-height: 560px;
  }

  .fw-carousel__viewport {
    width: min(78vw, 360px);
    height: min(104vw, 480px);
  }

  .fw-carousel__arrow--prev { left: 6px; }
  .fw-carousel__arrow--next { right: 6px; }
}

@media (max-width: 620px) {
  .fw-rebuilt__inner {
    width: min(100% - 28px, 520px);
    gap: 34px;
  }

  .fw-rebuilt__text .section-h2 {
    font-size: 36px;
    margin-bottom: 24px;
  }

  .fw-rebuilt__item {
    grid-template-columns: 40px 1fr;
    gap: 13px;
    padding: 15px 0;
  }

  .fw-rebuilt__item .whom-icon {
    width: 38px;
    height: 38px;
  }

  .fw-rebuilt__visual {
    min-height: 510px;
  }

  .fw-carousel {
    min-height: 510px;
  }

  .fw-carousel__viewport {
    width: min(76vw, 330px);
    height: min(101vw, 440px);
  }

  .fw-carousel__slide {
    border-radius: 24px;
    padding: 6px;
  }

  .fw-carousel__slide img {
    border-radius: 18px;
  }

  .fw-carousel__arrow {
    width: 42px;
    height: 42px;
  }

  .fw-carousel__arrow--prev { left: -2px; }
  .fw-carousel__arrow--next { right: -2px; }

  .fw-carousel__slide.is-next-1 {
    transform: translate3d(22px, 16px, -55px) rotate(3deg) scale(.965);
  }

  .fw-carousel__slide.is-next-2 {
    transform: translate3d(42px, 31px, -105px) rotate(5.4deg) scale(.925);
  }

  .fw-carousel__slide.is-next-3 {
    transform: translate3d(58px, 45px, -155px) rotate(7deg) scale(.89);
  }
}

@media (max-width: 430px) {
  .fw-carousel__arrow {
    top: auto;
    bottom: 0;
  }

  .fw-carousel__arrow--prev { left: calc(50% - 94px); }
  .fw-carousel__arrow--next { right: calc(50% - 94px); }

  .fw-carousel__dots {
    bottom: 14px;
  }
}

/* ── Infinite circular motion refinement ── */
.fw-carousel__slide {
  transition:
    transform .68s cubic-bezier(.22,.61,.36,1),
    opacity .48s ease,
    filter .48s ease;
}

.fw-carousel__slide.is-exiting-left {
  z-index: 8 !important;
  opacity: 0 !important;
  transform: translate3d(-145px, 10px, 20px) rotate(-8deg) scale(.92) !important;
  filter: saturate(.8) brightness(.92) !important;
  pointer-events: none;
}

.fw-carousel__slide.is-preparing-back {
  transition: none !important;
  opacity: 0 !important;
  transform: translate3d(108px, 72px, -190px) rotate(10deg) scale(.86) !important;
  z-index: 0 !important;
}

.fw-carousel__slide.is-entering-front {
  z-index: 8 !important;
  opacity: 1 !important;
  transform: translate3d(0,0,0) rotate(0deg) scale(1) !important;
}

.fw-carousel.is-animating .fw-carousel__arrow,
.fw-carousel.is-animating .fw-carousel__dot {
  pointer-events: none;
}


/* Надёжная кликабельность стрелок карусели */
.fw-carousel__arrow {
  z-index: 100 !important;
  pointer-events: auto !important;
  touch-action: manipulation;
}

.fw-carousel__dots {
  z-index: 100 !important;
  pointer-events: auto !important;
}

.fw-carousel__viewport {
  z-index: 1;
}

.fw-carousel__stack,
.fw-carousel__slide,
.fw-carousel__slide img {
  pointer-events: auto;
}


/* ── Attached Tumblr-style labels on cascade cards ── */
.fw-carousel__slide {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  padding: 0 !important;
  background: #f4eee5;
  border: 1px solid rgba(143, 101, 55, .25);
}

.fw-carousel__slide img {
  grid-row: 2;
  width: 100%;
  height: 100%;
  min-height: 0;
  border-radius: 0 !important;
  object-fit: cover;
}

.fw-card-label {
  position: relative;
  z-index: 3;
  width: 100%;
  box-sizing: border-box;
  background: #7a573b;
  color: #fffaf4;
  text-align: center;
  border: 0;
  margin: 0;
}

.fw-card-label--top {
  grid-row: 1;
  padding: 17px 22px 15px;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
  font-weight: 700;
  letter-spacing: -.025em;
  border-radius: 28px 28px 0 0;
}

.fw-card-label--bottom {
  grid-row: 3;
  padding: 14px 20px 16px;
  font-size: clamp(17px, 1.8vw, 23px);
  line-height: 1.2;
  font-weight: 500;
  font-style: italic;
  letter-spacing: .01em;
  border-radius: 0 0 28px 28px;
}

.fw-card-label.is-empty {
  display: none;
}

@media (max-width: 620px) {
  .fw-card-label--top {
    padding: 13px 16px 12px;
    font-size: 30px;
    border-radius: 22px 22px 0 0;
  }

  .fw-card-label--bottom {
    padding: 11px 14px 13px;
    font-size: 18px;
    border-radius: 0 0 22px 22px;
  }
}

/* ── Soft extended labels: labels are built onto the photo, not over it ── */
.fw-carousel__slide {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
  border: 1px solid rgba(151, 118, 84, .18) !important;
}

.fw-carousel__slide img {
  grid-row: 2 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  display: block !important;
}

.fw-card-label {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  border: 0 !important;
  text-align: center !important;
  font-family: 'Cormorant Garamond', serif !important;
  color: var(--espresso, #4a3428) !important;
  background:
    linear-gradient(
      180deg,
      rgba(243, 236, 226, .98) 0%,
      rgba(239, 229, 217, .94) 62%,
      rgba(232, 220, 207, .82) 100%
    ) !important;
  backdrop-filter: blur(10px) saturate(110%) !important;
  -webkit-backdrop-filter: blur(10px) saturate(110%) !important;
}

.fw-card-label--top {
  grid-row: 1 !important;
  padding: 18px 24px 16px !important;
  font-size: clamp(26px, 2.7vw, 38px) !important;
  line-height: 1.02 !important;
  font-weight: 600 !important;
  letter-spacing: -.025em !important;
  border-radius: 28px 28px 0 0 !important;
}

.fw-card-label--top::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -28px !important;
  height: 28px !important;
  pointer-events: none !important;
  background: linear-gradient(
    180deg,
    rgba(232, 220, 207, .82) 0%,
    rgba(232, 220, 207, .44) 42%,
    rgba(232, 220, 207, 0) 100%
  ) !important;
  z-index: 3 !important;
}

.fw-card-label--bottom {
  grid-row: 3 !important;
  padding: 15px 22px 18px !important;
  font-size: clamp(16px, 1.6vw, 21px) !important;
  line-height: 1.2 !important;
  font-weight: 500 !important;
  font-style: italic !important;
  letter-spacing: 0 !important;
  border-radius: 0 0 28px 28px !important;
  background:
    linear-gradient(
      180deg,
      rgba(232, 220, 207, .82) 0%,
      rgba(239, 229, 217, .94) 38%,
      rgba(243, 236, 226, .98) 100%
    ) !important;
}

.fw-card-label--bottom::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: -28px !important;
  height: 28px !important;
  pointer-events: none !important;
  background: linear-gradient(
    180deg,
    rgba(232, 220, 207, 0) 0%,
    rgba(232, 220, 207, .44) 58%,
    rgba(232, 220, 207, .82) 100%
  ) !important;
  z-index: 3 !important;
}

.fw-card-label.is-empty {
  display: none !important;
}

@media (max-width: 620px) {
  .fw-card-label--top {
    padding: 14px 18px 13px !important;
    font-size: 28px !important;
    border-radius: 22px 22px 0 0 !important;
  }

  .fw-card-label--bottom {
    padding: 12px 16px 15px !important;
    font-size: 17px !important;
    border-radius: 0 0 22px 22px !important;
  }

  .fw-card-label--top::after,
  .fw-card-label--bottom::before {
    height: 22px !important;
  }

  .fw-card-label--top::after {
    bottom: -22px !important;
  }

  .fw-card-label--bottom::before {
    top: -22px !important;
  }
}

/* ── Final fix: labels are separate blocks above/below the full photo ── */
.fw-carousel__viewport {
  width: 390px !important;
  height: 610px !important;
}

.fw-carousel,
.fw-rebuilt__visual {
  min-height: 700px !important;
}

.fw-carousel__slide {
  display: grid !important;
  grid-template-rows: 64px minmax(0, 1fr) 54px !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #f3ede5 !important;
  border: 1px solid rgba(151, 118, 84, .18) !important;
}

.fw-carousel__slide img {
  grid-row: 2 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 0 !important;
  background: #eee7de !important;
}

.fw-card-label {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  color: var(--espresso, #4a3428) !important;
  text-align: center !important;
  background: #f3ede5 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.fw-card-label--top {
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 20px 6px !important;
  border-radius: 28px 28px 0 0 !important;
}

.fw-card-label--bottom {
  grid-row: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6px 18px 9px !important;
  border-radius: 0 0 28px 28px !important;
  background: #f3ede5 !important;
}

/* Убираем любые наложения и градиенты поверх фотографии */
.fw-card-label--top::after,
.fw-card-label--bottom::before {
  display: none !important;
  content: none !important;
}

@media (max-width: 980px) {
  .fw-carousel__viewport {
    width: min(78vw, 360px) !important;
    height: min(122vw, 570px) !important;
  }

  .fw-carousel,
  .fw-rebuilt__visual {
    min-height: 650px !important;
  }
}

@media (max-width: 620px) {
  .fw-carousel__viewport {
    width: min(78vw, 330px) !important;
    height: min(123vw, 520px) !important;
  }

  .fw-carousel,
  .fw-rebuilt__visual {
    min-height: 590px !important;
  }

  .fw-carousel__slide {
    grid-template-rows: 54px minmax(0, 1fr) 46px !important;
  }
}


/* ── Gold labels matching the purchase button ── */
.fw-carousel__slide {
  background: transparent !important;
}

.fw-card-label {
  color: var(--white, #fff) !important;
  background: var(--gold, #B8935A) !important;
}

.fw-card-label--top {
  background:
    linear-gradient(
      180deg,
      var(--gold, #B8935A) 0%,
      var(--gold, #B8935A) 72%,
      rgba(184, 147, 90, .96) 100%
    ) !important;
}

.fw-card-label--bottom {
  background:
    linear-gradient(
      180deg,
      rgba(184, 147, 90, .96) 0%,
      var(--gold, #B8935A) 28%,
      var(--gold, #B8935A) 100%
    ) !important;
}

/* Плавный переход от общего фона секции к плашкам */
.fw-rebuilt__visual::before {
  content: "";
  position: absolute;
  inset: 8% 2% 5%;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(
      circle at 50% 45%,
      rgba(184, 147, 90, .16) 0%,
      rgba(184, 147, 90, .08) 34%,
      rgba(184, 147, 90, 0) 72%
    );
  filter: blur(22px);
}

.fw-carousel {
  z-index: 1;
}

.fw-carousel__slide::before,
.fw-carousel__slide::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 34px;
  pointer-events: none;
  z-index: 4;
}

.fw-carousel__slide::before {
  top: 64px;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, .22) 0%,
    rgba(184, 147, 90, .08) 42%,
    rgba(184, 147, 90, 0) 100%
  );
}

.fw-carousel__slide::after {
  bottom: 54px;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, 0) 0%,
    rgba(184, 147, 90, .08) 58%,
    rgba(184, 147, 90, .22) 100%
  );
}

@media (max-width: 620px) {
  .fw-carousel__slide::before {
    top: 54px;
    height: 26px;
  }

  .fw-carousel__slide::after {
    bottom: 46px;
    height: 26px;
  }
}


/* ── Smoother visual transition between photo and attached labels ── */
.fw-carousel__slide {
  --label-gold: var(--gold, #B8935A);
  --blend-size: 42px;
}

/* Фото остаётся полностью видимым; градиент располагается только на стыке */
.fw-carousel__slide img {
  position: relative !important;
  z-index: 1 !important;
}

/* Верхняя плашка мягко растворяется к фотографии */
.fw-card-label--top {
  position: relative !important;
  overflow: visible !important;
  background:
    linear-gradient(
      180deg,
      var(--label-gold) 0%,
      var(--label-gold) 70%,
      rgba(184, 147, 90, .97) 100%
    ) !important;
}

.fw-card-label--top::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: calc(var(--blend-size) * -1) !important;
  height: var(--blend-size) !important;
  z-index: 5 !important;
  pointer-events: none !important;
  background:
    linear-gradient(
      180deg,
      rgba(184, 147, 90, .34) 0%,
      rgba(184, 147, 90, .18) 34%,
      rgba(184, 147, 90, .07) 68%,
      rgba(184, 147, 90, 0) 100%
    ) !important;
}

/* Нижняя плашка так же плавно начинается от фотографии */
.fw-card-label--bottom {
  position: relative !important;
  overflow: visible !important;
  background:
    linear-gradient(
      180deg,
      rgba(184, 147, 90, .97) 0%,
      var(--label-gold) 30%,
      var(--label-gold) 100%
    ) !important;
}

.fw-card-label--bottom::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(var(--blend-size) * -1) !important;
  height: var(--blend-size) !important;
  z-index: 5 !important;
  pointer-events: none !important;
  background:
    linear-gradient(
      180deg,
      rgba(184, 147, 90, 0) 0%,
      rgba(184, 147, 90, .07) 32%,
      rgba(184, 147, 90, .18) 66%,
      rgba(184, 147, 90, .34) 100%
    ) !important;
}

/* Убираем прежние более резкие псевдоэлементы самой карточки */
.fw-carousel__slide::before,
.fw-carousel__slide::after {
  display: none !important;
  content: none !important;
}

@media (max-width: 620px) {
  .fw-carousel__slide {
    --blend-size: 30px;
  }
}


/* ── Seamless photo-to-label join: no beige seam ── */
.fw-carousel__slide {
  --label-gold: var(--gold, #B8935A);
  --join-overlap: 5px;
  --blend-size: 34px;
  background: transparent !important;
  border-color: rgba(184, 147, 90, .22) !important;
}

/* Убираем бежевую подложку, которая была видна между фото и плашками */
.fw-carousel__slide img {
  display: block !important;
  background: transparent !important;
  margin: calc(var(--join-overlap) * -1) 0 !important;
  height: calc(100% + (var(--join-overlap) * 2)) !important;
  position: relative !important;
  z-index: 1 !important;
}

/* Плашки слегка заходят на фотографию — только на несколько пикселей */
.fw-card-label--top {
  z-index: 3 !important;
  margin-bottom: calc(var(--join-overlap) * -1) !important;
}

.fw-card-label--bottom {
  z-index: 3 !important;
  margin-top: calc(var(--join-overlap) * -1) !important;
}

/* Плавное растворение верхней плашки в изображение */
.fw-card-label--top::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: calc((var(--blend-size) - var(--join-overlap)) * -1) !important;
  height: var(--blend-size) !important;
  pointer-events: none !important;
  z-index: 4 !important;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, .50) 0%,
    rgba(184, 147, 90, .28) 34%,
    rgba(184, 147, 90, .11) 68%,
    rgba(184, 147, 90, 0) 100%
  ) !important;
}

/* Плавное растворение изображения в нижнюю плашку */
.fw-card-label--bottom::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: calc((var(--blend-size) - var(--join-overlap)) * -1) !important;
  height: var(--blend-size) !important;
  pointer-events: none !important;
  z-index: 4 !important;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, 0) 0%,
    rgba(184, 147, 90, .11) 32%,
    rgba(184, 147, 90, .28) 66%,
    rgba(184, 147, 90, .50) 100%
  ) !important;
}

/* Полностью отключаем любые старые линии и промежуточные слои */
.fw-carousel__slide::before,
.fw-carousel__slide::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 620px) {
  .fw-carousel__slide {
    --join-overlap: 4px;
    --blend-size: 26px;
  }
}


/* ── Soft blur exactly at the label/photo boundaries ── */
.fw-carousel__slide {
  --edge-blur-height: 18px;
  --edge-overlap: 3px;
}

/* Убираем предыдущий длинный градиент */
.fw-card-label--top::after,
.fw-card-label--bottom::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  height: var(--edge-blur-height) !important;
  pointer-events: none !important;
  z-index: 6 !important;
  filter: blur(5px) !important;
  -webkit-filter: blur(5px) !important;
}

/* Небольшой блюр на верхней границе */
.fw-card-label--top::after {
  bottom: calc((var(--edge-blur-height) / 2) * -1) !important;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, .78) 0%,
    rgba(184, 147, 90, .42) 45%,
    rgba(184, 147, 90, 0) 100%
  ) !important;
}

/* Небольшой блюр на нижней границе */
.fw-card-label--bottom::before {
  top: calc((var(--edge-blur-height) / 2) * -1) !important;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, 0) 0%,
    rgba(184, 147, 90, .42) 55%,
    rgba(184, 147, 90, .78) 100%
  ) !important;
}

/* Минимальное перекрытие, чтобы на стыке не появлялась линия */
.fw-card-label--top {
  margin-bottom: calc(var(--edge-overlap) * -1) !important;
}

.fw-card-label--bottom {
  margin-top: calc(var(--edge-overlap) * -1) !important;
}

.fw-carousel__slide img {
  margin: calc(var(--edge-overlap) * -1) 0 !important;
  height: calc(100% + (var(--edge-overlap) * 2)) !important;
  background: transparent !important;
}

@media (max-width: 620px) {
  .fw-carousel__slide {
    --edge-blur-height: 14px;
    --edge-overlap: 2px;
  }

  .fw-card-label--top::after,
  .fw-card-label--bottom::before {
    filter: blur(4px) !important;
    -webkit-filter: blur(4px) !important;
  }
}


/* ── Show the same gold label blocks on every carousel image ── */
.fw-card-label.is-empty {
  display: flex !important;
}

.fw-carousel__slide .fw-card-label {
  visibility: visible !important;
  opacity: 1 !important;
  background-color: var(--gold, #B8935A) !important;
}

.fw-carousel__slide .fw-card-label--top {
  background:
    linear-gradient(
      180deg,
      var(--gold, #B8935A) 0%,
      var(--gold, #B8935A) 76%,
      rgba(184, 147, 90, .96) 100%
    ) !important;
}

.fw-carousel__slide .fw-card-label--bottom {
  background:
    linear-gradient(
      180deg,
      rgba(184, 147, 90, .96) 0%,
      var(--gold, #B8935A) 24%,
      var(--gold, #B8935A) 100%
    ) !important;
}

/* ── Smooth blur transition on every image/label boundary ── */
.fw-carousel__slide {
  --label-gold: var(--gold, #B8935A);
  --blur-band: 22px;
  --join-overlap: 3px;
  background: transparent !important;
}

/* Фото и плашки немного перекрываются, чтобы не появлялась линия */
.fw-carousel__slide img {
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
  margin-top: calc(var(--join-overlap) * -1) !important;
  margin-bottom: calc(var(--join-overlap) * -1) !important;
  height: calc(100% + (var(--join-overlap) * 2)) !important;
  background: transparent !important;
}

.fw-carousel__slide .fw-card-label--top {
  position: relative !important;
  z-index: 3 !important;
  margin-bottom: calc(var(--join-overlap) * -1) !important;
}

.fw-carousel__slide .fw-card-label--bottom {
  position: relative !important;
  z-index: 3 !important;
  margin-top: calc(var(--join-overlap) * -1) !important;
}

/* Мягкий блюр между верхней плашкой и фотографией */
.fw-carousel__slide .fw-card-label--top::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: -2px !important;
  right: -2px !important;
  bottom: calc((var(--blur-band) / 2) * -1) !important;
  height: var(--blur-band) !important;
  z-index: 5 !important;
  pointer-events: none !important;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, .80) 0%,
    rgba(184, 147, 90, .48) 42%,
    rgba(184, 147, 90, .12) 76%,
    rgba(184, 147, 90, 0) 100%
  ) !important;
  filter: blur(6px) !important;
  -webkit-filter: blur(6px) !important;
}

/* Мягкий блюр между фотографией и нижней плашкой */
.fw-carousel__slide .fw-card-label--bottom::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: -2px !important;
  right: -2px !important;
  top: calc((var(--blur-band) / 2) * -1) !important;
  height: var(--blur-band) !important;
  z-index: 5 !important;
  pointer-events: none !important;
  background: linear-gradient(
    180deg,
    rgba(184, 147, 90, 0) 0%,
    rgba(184, 147, 90, .12) 24%,
    rgba(184, 147, 90, .48) 58%,
    rgba(184, 147, 90, .80) 100%
  ) !important;
  filter: blur(6px) !important;
  -webkit-filter: blur(6px) !important;
}

/* Убираем старые переходы, чтобы не было двойной полосы */
.fw-carousel__slide::before,
.fw-carousel__slide::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 620px) {
  .fw-carousel__slide {
    --blur-band: 17px;
    --join-overlap: 2px;
  }

  .fw-carousel__slide .fw-card-label--top::after,
  .fw-carousel__slide .fw-card-label--bottom::before {
    filter: blur(5px) !important;
    -webkit-filter: blur(5px) !important;
  }
}


/* ── Lighter gold labels ── */
.fw-carousel__slide {
  --label-gold: #D2B27A !important;
}

.fw-carousel__slide .fw-card-label,
.fw-carousel__slide .fw-card-label--top,
.fw-carousel__slide .fw-card-label--bottom {
  background-color: #D2B27A !important;
}

.fw-carousel__slide .fw-card-label--top {
  background:
    linear-gradient(
      180deg,
      #D8BC88 0%,
      #D2B27A 74%,
      rgba(210, 178, 122, .96) 100%
    ) !important;
}

.fw-carousel__slide .fw-card-label--bottom {
  background:
    linear-gradient(
      180deg,
      rgba(210, 178, 122, .96) 0%,
      #D2B27A 26%,
      #D8BC88 100%
    ) !important;
}

.fw-carousel__slide .fw-card-label--top::after {
  background: linear-gradient(
    180deg,
    rgba(210, 178, 122, .78) 0%,
    rgba(210, 178, 122, .46) 42%,
    rgba(210, 178, 122, .12) 76%,
    rgba(210, 178, 122, 0) 100%
  ) !important;
}

.fw-carousel__slide .fw-card-label--bottom::before {
  background: linear-gradient(
    180deg,
    rgba(210, 178, 122, 0) 0%,
    rgba(210, 178, 122, .12) 24%,
    rgba(210, 178, 122, .46) 58%,
    rgba(210, 178, 122, .78) 100%
  ) !important;
}



/* ── Restructured course programme ── */
#programme .programme-title {
  margin-bottom: 42px;
}

#programme .programme-stack {
  display: grid;
  gap: 22px;
  max-width: 1120px;
  margin: 0 auto;
}

#programme .programme-card {
  position: relative;
  overflow: hidden;
  padding: 34px 38px 36px;
  border: 1px solid rgba(184, 147, 90, .24);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.82), rgba(250,246,240,.68));
  box-shadow: 0 16px 42px rgba(61, 46, 26, .055);
}

#programme .programme-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--gold-lt), var(--gold));
}

#programme .programme-card-head {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 25px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(184, 147, 90, .18);
}

#programme .programme-card .prog-index {
  flex: 0 0 auto;
  margin: 0;
  font-size: 42px;
  line-height: 1;
  color: rgba(184, 147, 90, .55);
}

#programme .programme-heading-wrap {
  min-width: 0;
}

#programme .programme-card .prog-tag {
  margin: 0;
  font-size: 13px;
  letter-spacing: .16em;
  color: var(--gold-dk);
}

#programme .programme-groups {
  display: grid;
  gap: 24px;
}

#programme .programme-group {
  min-width: 0;
}

#programme .programme-card .prog-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 34px;
  margin: 0;
}

#programme .programme-card .prog-item {
  display: grid;
  grid-template-columns: 8px 1fr;
  align-items: start;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(61, 46, 26, .09);
  line-height: 1.55;
}

#programme .programme-card .prog-item:nth-last-child(-n + 2) {
  border-bottom-color: transparent;
}

#programme .programme-card .prog-dot {
  width: 6px;
  height: 6px;
  margin-top: .62em;
  border-radius: 50%;
  background: var(--gold);
}

#programme .programme-card .prog-item span {
  min-width: 0;
}

@media (max-width: 820px) {
  #programme .programme-card {
    padding: 28px 24px 30px;
  }

  #programme .programme-card .prog-list {
    grid-template-columns: 1fr;
    gap: 0;
  }

  #programme .programme-card .prog-item:nth-last-child(-n + 2) {
    border-bottom-color: rgba(61, 46, 26, .09);
  }

  #programme .programme-card .prog-item:last-child {
    border-bottom-color: transparent;
  }
}

@media (max-width: 520px) {
  #programme .programme-title {
    margin-bottom: 28px;
  }

  #programme .programme-stack {
    gap: 16px;
  }

  #programme .programme-card {
    padding: 24px 18px 26px;
    border-radius: 14px;
  }

  #programme .programme-card-head {
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 17px;
    padding-bottom: 16px;
  }

  #programme .programme-card .prog-index {
    font-size: 34px;
  }

  #programme .programme-card .prog-tag {
    padding-top: 4px;
    font-size: 11px;
    line-height: 1.45;
  }

  #programme .programme-card .prog-item {
    gap: 10px;
    padding: 12px 0;
    font-size: 14px;
  }
}

/* ── Programme cards: dark premium hover + subtle 3D lift ── */
#programme .programme-card {
  transform: perspective(1100px) translateY(0) rotateX(0deg) scale(1);
  transform-origin: center center;
  transition:
    transform .42s cubic-bezier(.2,.75,.2,1),
    background .35s ease,
    border-color .35s ease,
    box-shadow .42s ease,
    color .3s ease;
  will-change: transform;
}

#programme .programme-card,
#programme .programme-card .prog-item span,
#programme .programme-card .prog-index,
#programme .programme-card .prog-tag,
#programme .programme-card .programme-card-head,
#programme .programme-card .prog-dot,
#programme .programme-card::before {
  transition:
    color .3s ease,
    background .3s ease,
    border-color .3s ease,
    opacity .3s ease,
    box-shadow .3s ease;
}

@media (hover: hover) and (pointer: fine) {
  #programme .programme-card:hover {
    color: #ffffff;
    background: #111111;
    border-color: rgba(224, 151, 70, .72);
    transform: perspective(1100px) translateY(-9px) rotateX(1.4deg) scale(1.012);
    box-shadow:
      0 28px 60px rgba(0, 0, 0, .24),
      0 10px 24px rgba(0, 0, 0, .16);
    z-index: 3;
  }

  #programme .programme-card:hover::before {
    background: linear-gradient(180deg, #f0a64f 0%, #d97822 100%);
    box-shadow: 0 0 20px rgba(224, 126, 34, .34);
  }

  #programme .programme-card:hover .programme-card-head {
    border-bottom-color: rgba(255, 255, 255, .18);
  }

  #programme .programme-card:hover .prog-index {
    color: #e8943a;
  }

  #programme .programme-card:hover .prog-tag {
    color: #f2a34d;
  }

  #programme .programme-card:hover .prog-item {
    border-bottom-color: rgba(255, 255, 255, .12);
  }

  #programme .programme-card:hover .prog-item:last-child {
    border-bottom-color: transparent;
  }

  #programme .programme-card:hover .prog-item span {
    color: #ffffff;
  }

  #programme .programme-card:hover .prog-dot {
    background: #ed963f;
    box-shadow: 0 0 0 4px rgba(237, 150, 63, .12);
  }
}

/* Мягкая активная реакция на сенсорных устройствах */
#programme .programme-card:active {
  transform: perspective(1100px) translateY(-3px) scale(.998);
}

@media (prefers-reduced-motion: reduce) {
  #programme .programme-card,
  #programme .programme-card *,
  #programme .programme-card::before {
    transition: none !important;
  }

  #programme .programme-card:hover {
    transform: none;
  }
}

/* ── Slower and smoother programme hover ── */
#programme .programme-card {
  transition:
    transform .72s cubic-bezier(.16, 1, .3, 1),
    background-color .62s cubic-bezier(.22, 1, .36, 1),
    border-color .62s ease,
    box-shadow .72s cubic-bezier(.16, 1, .3, 1),
    color .5s ease !important;
}

#programme .programme-card .prog-item span,
#programme .programme-card .prog-index,
#programme .programme-card .prog-tag,
#programme .programme-card .programme-card-head,
#programme .programme-card .prog-dot,
#programme .programme-card::before {
  transition:
    color .52s ease,
    background-color .52s ease,
    border-color .52s ease,
    opacity .52s ease,
    box-shadow .52s ease !important;
}

@media (hover: hover) and (pointer: fine) {
  #programme .programme-card:hover {
    transform:
      perspective(1100px)
      translateY(-8px)
      rotateX(1deg)
      scale(1.009);
  }
}


/* ── Programme cards in one horizontal row ── */
#programme .programme-stack {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 18px;
  max-width: 1440px;
}

#programme .programme-card {
  height: 100%;
  padding: 28px 24px 30px;
}

#programme .programme-card-head {
  align-items: flex-start;
  gap: 14px;
}

#programme .programme-card .prog-index {
  font-size: 36px;
}

#programme .programme-card .prog-tag {
  line-height: 1.45;
}

#programme .programme-card .prog-list {
  grid-template-columns: 1fr;
  gap: 0;
}

#programme .programme-card .prog-item,
#programme .programme-card .prog-item:nth-last-child(-n + 2) {
  border-bottom-color: rgba(61, 46, 26, .09);
}

#programme .programme-card .prog-item:last-child {
  border-bottom-color: transparent;
}

@media (hover: hover) and (pointer: fine) {
  #programme .programme-card:hover .prog-item,
  #programme .programme-card:hover .prog-item:nth-last-child(-n + 2) {
    border-bottom-color: rgba(255, 255, 255, .12);
  }

  #programme .programme-card:hover .prog-item:last-child {
    border-bottom-color: transparent;
  }
}

@media (max-width: 1050px) {
  #programme .programme-stack {
    grid-template-columns: 1fr;
    max-width: 820px;
  }

  #programme .programme-card {
    padding: 30px 28px 32px;
  }
}

@media (max-width: 520px) {
  #programme .programme-card {
    padding: 24px 18px 26px;
  }
}


/* ── Slightly raise the round carousel arrows in “Для кого” ── */
@media (min-width: 431px) {
  .fw-carousel__arrow {
    top: 42.5%;
  }
}


/* ── Text labels on “Для кого” images ── */
#for-whom .fw-card-label--bottom {
  max-width: min(88%, 430px);
  padding: 10px 14px;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
}

@media (max-width: 640px) {
  #for-whom .fw-card-label--bottom {
    max-width: 86%;
    padding: 8px 11px;
    font-size: 12px;
    line-height: 1.22;
  }
}


/* Smaller bottom labels */
#for-whom .fw-card-label--bottom{
    font-size:11px !important;
    line-height:1.2 !important;
    padding:8px 12px !important;
    letter-spacing:.01em;
}
@media (max-width:640px){
    #for-whom .fw-card-label--bottom{
        font-size:10px !important;
        padding:7px 10px !important;
    }
}


/* Slightly larger bottom labels */
#for-whom .fw-card-label--bottom{
    font-size:12px !important;
    line-height:1.22 !important;
    padding:8px 12px !important;
}
@media (max-width:640px){
    #for-whom .fw-card-label--bottom{
        font-size:11px !important;
        padding:7px 10px !important;
    }
}


/* Slightly larger bottom labels */
#for-whom .fw-card-label--bottom{
    font-size:13px !important;
    line-height:1.24 !important;
    padding:8px 13px !important;
}
@media (max-width:640px){
    #for-whom .fw-card-label--bottom{
        font-size:12px !important;
        line-height:1.22 !important;
        padding:7px 11px !important;
    }
}


/* ── Mobile reliability fix for “Для кого” ── */
@media (max-width: 980px) {
  #for-whom,
  #for-whom .fw-rebuilt__inner,
  #for-whom .fw-rebuilt__text,
  #for-whom .fw-rebuilt__visual {
    display: block !important;
    visibility: visible !important;
  }

  #for-whom .fw-rebuilt__text,
  #for-whom .fw-rebuilt__visual {
    opacity: 1 !important;
    transform: none !important;
  }

  #for-whom .fw-rebuilt__visual {
    margin-top: 34px;
  }
}


/* Hero image mobile position */
@media (max-width: 768px){
  .hero img,
  .hero__image img,
  .hero-image img,
  .hero-media img,
  .hero picture img{
    object-position:center 18% !important;
    transform: none;
  }
  /* background decorative hero images may still crop via object-position;
     .hero-photo is a content image and must never scale out of its grid cell */
  .hero-photo {
    transform: none !important;
  }
}


/* Raise the main hero background image further on mobile */
@media (max-width: 768px) {
  .hero {
    background-position: center center, center center, center 8% !important;
  }
}


/* Custom hero background image for mobile */
@media (max-width: 768px) {
  .hero {
    background:
      linear-gradient(180deg, rgba(250,246,240,0.90) 0%, rgba(250,246,240,0.84) 58%, rgba(250,246,240,0.74) 100%),
      linear-gradient(180deg, rgba(184,147,90,0.05), rgba(61,46,26,0.10)),
      url("/assets/images/bg-42bc6a5eab60.webp") !important;
    background-size: cover !important;
    background-position: center 24% !important;
    background-repeat: no-repeat !important;
  }
}


:root {
  --mobile-hero-image: url("/assets/images/bg-dd55c04a94bb.webp");
}

/* Brighter and sharper mobile hero image */
@media (max-width: 768px) {
  .hero {
    background:
      linear-gradient(180deg, rgba(250,246,240,0.82) 0%, rgba(250,246,240,0.74) 58%, rgba(250,246,240,0.64) 100%),
      linear-gradient(180deg, rgba(184,147,90,0.05), rgba(61,46,26,0.07)),
      var(--mobile-hero-image) !important;
    background-size: cover !important;
    background-position: center 24% !important;
    background-repeat: no-repeat !important;
    filter: none !important;
    backdrop-filter: none !important;
  }

  .hero::before,
  .hero::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
  }
}



/* ---- style block ---- */


.reviews-bg-real{opacity:.34!important}
.reviews-bg-real .student-profile-card{
  grid-template-columns:46px 1fr!important;
  width:210px;min-height:92px;padding:13px 15px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(184,147,90,.20);
  box-shadow:0 12px 32px rgba(26,20,16,.08);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
}
.student-avatar-photo{
  width:46px;height:46px;border-radius:50%;object-fit:cover;
  border:1px solid rgba(184,147,90,.26);
  box-shadow:0 5px 14px rgba(26,20,16,.10)
}
.reviews-bg-real .student-name{font-size:11px;color:rgba(26,20,16,.78)}
.reviews-bg-real .student-handle{font-size:9px;color:rgba(122,101,85,.68);margin-top:4px}
@media(max-width:900px){
  .reviews-bg-real{opacity:.18!important}
  .reviews-bg-real .student-profile-card{width:180px;min-height:80px;grid-template-columns:40px 1fr!important}
  .student-avatar-photo{width:40px;height:40px}
}


/* ---- style block ---- */


@media (max-width: 980px) {
  /* “Смотреть программу” — только текст и стрелка */
  .program-text-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    min-height: auto !important;
    padding: 4px 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: var(--espresso) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    text-shadow: 0 1px 12px rgba(250,246,240,.95) !important;
  }

  .program-text-link:hover,
  .program-text-link:active {
    background: transparent !important;
    color: var(--gold-dk) !important;
    transform: none !important;
  }

  .program-text-link .btn-ghost-arrow {
    margin-left: 8px !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--gold-dk) !important;
  }

  /* Настоящая кнопка внутри карточки отзыва */
  .review-card::after {
    content: none !important;
    display: none !important;
  }

  .review-read-more {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    align-self: flex-start !important;
    margin-top: 14px !important;
    padding: 4px 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--gold-dk) !important;
    font-family: inherit !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .review-read-more:active {
    opacity: .65;
  }

  /* Поп-ап гарантированно поверх всей страницы */
  #reviewModal.review-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483647 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px !important;
    background: rgba(15,12,8,.82) !important;
  }

  #reviewModal.review-modal.is-open {
    display: flex !important;
  }

  #reviewModal .review-modal-dialog {
    position: relative !important;
    display: block !important;
    width: min(100%, 560px) !important;
    max-height: 88dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
}


/* ---- style block ---- */


.review-card::after,
.review-read-more {
  content: none !important;
  display: none !important;
}

.review-card {
  cursor: default !important;
}


/* ---- style block ---- */


.trust-bar,
.cta-assurances,
.trust-items,
.assurances {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}


/* ---- style block ---- */


/* Clean “Смотреть программу” link */
.program-text-link,
.program-text-link:visited,
.program-text-link:hover,
.program-text-link:active,
.program-text-link:focus {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: auto !important;
  padding: 5px 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #3A2A1A !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  text-shadow: 0 1px 12px rgba(250,246,240,.92) !important;
  outline: none !important;
}

.program-text-link .btn-ghost-arrow {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #A8793E !important;
  font-size: 18px !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.program-text-link:hover {
  color: #A8793E !important;
  transform: translateX(2px);
}

.footer-links {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 24px !important;
  flex-wrap: wrap !important;
}

@media (max-width: 980px) {
  .program-text-link {
    font-size: 13px !important;
    font-weight: 650 !important;
  }

  .footer-links {
    gap: 14px 20px !important;
  }
}


/* ---- style block ---- */


a.program-text-link:link,
a.program-text-link:visited,
a.program-text-link:hover,
a.program-text-link:active,
a.program-text-link:focus {
  color: #3A2A1A !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

a.program-text-link:hover {
  color: #A8793E !important;
}


/* ---- style block ---- */


/* Hero CTA — same corner rounding as the 4 390 ₽ purchase button */
.hero-enroll-rounded,
.hero-enroll-rounded:link,
.hero-enroll-rounded:visited,
.hero-enroll-rounded:hover,
.hero-enroll-rounded:active,
.hero-enroll-rounded:focus {
  border-radius: 4px !important;
  overflow: hidden !important;
}

@media (max-width: 980px) {
  .hero-enroll-rounded {
    border-radius: 4px !important;
  }
}


/* ---- style block ---- */


/* Updated icons in “Для кого” */
.whom-icon svg,
.for-whom-icon svg,
.audience-icon svg,
.whom-card svg {
  width: 24px !important;
  height: 24px !important;
  display: block;
  color: #C39452;
  flex-shrink: 0;
}


/* ---- style block ---- */


.reviews-carousel{position:relative;z-index:4;width:min(1120px,calc(100% - 40px));margin:42px auto 0;padding:0 58px 22px}
.reviews-carousel-viewport{overflow:hidden;border-radius:26px;touch-action:pan-y pinch-zoom}
.reviews-carousel-track{display:flex;gap:22px;transition:transform .48s cubic-bezier(.22,.61,.36,1);will-change:transform}
.reviews-carousel-slide{flex:0 0 calc((100% - 44px)/3);border-radius:22px;overflow:hidden;background:#fff;border:1px solid rgba(184,147,90,.18);box-shadow:0 18px 46px rgba(26,20,16,.10)}
.reviews-carousel-slide img{display:block;width:100%;height:520px;object-fit:contain;background:#fff;user-select:none;-webkit-user-drag:none}
.reviews-carousel-arrow{position:absolute;top:46%;z-index:6;width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(184,147,90,.34);border-radius:50%;background:rgba(255,255,255,.9);color:var(--espresso);font-size:20px;cursor:pointer;box-shadow:0 12px 30px rgba(26,20,16,.1)}
.reviews-carousel-prev{left:0}.reviews-carousel-next{right:0}
.reviews-carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:20px}
.reviews-carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(184,147,90,.28)}
.reviews-carousel-dot.is-active{width:24px;border-radius:999px;background:var(--gold)}
@media(max-width:980px){
.reviews-carousel{width:min(100%,680px);margin-top:28px;padding:0 14px 18px}
.reviews-carousel-viewport{overflow:hidden;border-radius:22px}
.reviews-carousel-track{gap:14px}
.reviews-carousel-slide{flex:0 0 92%;border-radius:20px}
.reviews-carousel-slide img{height:auto;max-height:72dvh;object-fit:contain}
.reviews-carousel-arrow{display:none}
}


/* ---- style block ---- */


@media (max-width: 980px) {
  .reviews-carousel { padding-left: 14px !important; padding-right: 14px !important; }
  .reviews-carousel-arrow { display: none !important; }
  .reviews-carousel-viewport {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    touch-action: pan-x !important;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
  }
  .reviews-carousel-viewport::-webkit-scrollbar { display: none; }
  .reviews-carousel-track {
    width: max-content !important;
    transform: none !important;
    transition: none !important;
    gap: 14px !important;
  }
  .reviews-carousel-slide {
    flex: 0 0 min(88vw, 560px) !important;
    width: min(88vw, 560px) !important;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }
}
@media (max-width: 560px) {
  .reviews-carousel-slide {
    flex-basis: 90vw !important;
    width: 90vw !important;
  }
}


/* ---- style block ---- */


@media (max-width: 980px) {
  .reviews-carousel-dots {
    position: relative;
    z-index: 10;
    pointer-events: auto;
  }

  .reviews-carousel-dot {
    cursor: pointer;
    transition:
      width .22s ease,
      background-color .22s ease,
      opacity .22s ease;
  }

  .reviews-carousel-dot.is-active {
    width: 24px !important;
    background: var(--gold) !important;
    opacity: 1 !important;
  }
}


/* ---- style block ---- */


@media (max-width: 980px) {
  .reviews-carousel-arrow {
    display: none !important;
  }

  .reviews-carousel-viewport {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y !important;
    scrollbar-width: none;
  }

  .reviews-carousel-viewport::-webkit-scrollbar {
    display: none;
  }

  .reviews-carousel-track {
    display: flex !important;
    width: max-content !important;
    transform: none !important;
    transition: none !important;
    gap: 14px !important;
    padding-left: 4vw;
    padding-right: 4vw;
  }

  .reviews-carousel-slide {
    flex: 0 0 88vw !important;
    width: 88vw !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always !important;
  }

  .reviews-carousel-dots {
    position: relative;
    z-index: 20;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    pointer-events: auto !important;
  }

  .reviews-carousel-dot {
    display: block !important;
    width: 8px !important;
    height: 8px !important;
    min-width: 8px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(184,147,90,.28) !important;
    opacity: .72;
    pointer-events: auto !important;
    cursor: pointer;
    transition:
      width .2s ease,
      background-color .2s ease,
      opacity .2s ease !important;
  }

  .reviews-carousel-dot.is-active {
    width: 24px !important;
    min-width: 24px !important;
    background: var(--gold) !important;
    opacity: 1 !important;
  }
}


/* ---- style block ---- */


@media (max-width: 980px) {
  .reviews-carousel-arrow {
    display: none !important;
  }

  .reviews-carousel-viewport {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
    touch-action: pan-x !important;
  }

  .reviews-carousel-viewport::-webkit-scrollbar {
    display: none !important;
  }

  .reviews-carousel-track {
    display: flex !important;
    width: max-content !important;
    gap: 14px !important;
    padding: 0 6vw !important;
    transform: none !important;
    transition: none !important;
  }

  .reviews-carousel-slide {
    flex: 0 0 88vw !important;
    width: 88vw !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always !important;
  }

  .reviews-carousel-dots {
    position: relative !important;
    z-index: 30 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 18px !important;
    pointer-events: auto !important;
  }

  .reviews-carousel-dot {
    display: block !important;
    width: 8px !important;
    min-width: 8px !important;
    height: 8px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(184,147,90,.30) !important;
    opacity: .7 !important;
    pointer-events: auto !important;
    transition: width .2s ease, background-color .2s ease, opacity .2s ease !important;
  }

  .reviews-carousel-dot.is-active {
    width: 24px !important;
    min-width: 24px !important;
    background: #B8935A !important;
    opacity: 1 !important;
  }
}


/* ---- style block ---- */


/* Smooth carousel progress indicator */
.reviews-progress {
  position: relative;
  z-index: 20;
  width: min(240px, 62%);
  margin: 20px auto 0;
  padding: 8px 0;
  cursor: pointer;
  touch-action: manipulation;
  outline: none;
}

.reviews-progress-track {
  position: relative;
  width: 100%;
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(184,147,90,.22);
  box-shadow: inset 0 1px 2px rgba(26,20,16,.06);
}

.reviews-progress-thumb {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% / 6);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #C7A36B, #A97D43);
  box-shadow: 0 2px 8px rgba(169,125,67,.28);
  transform: translate3d(0,0,0);
  transition: transform .16s linear;
  will-change: transform;
}

.reviews-progress:focus-visible .reviews-progress-track {
  outline: 2px solid rgba(184,147,90,.42);
  outline-offset: 4px;
}

@media (max-width: 980px) {
  .reviews-carousel-arrow {
    display: none !important;
  }

  .reviews-carousel-viewport {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
    touch-action: pan-x !important;
  }

  .reviews-carousel-viewport::-webkit-scrollbar {
    display: none !important;
  }

  .reviews-carousel-track {
    display: flex !important;
    width: max-content !important;
    gap: 14px !important;
    padding: 0 6vw !important;
    transform: none !important;
    transition: none !important;
  }

  .reviews-carousel-slide {
    flex: 0 0 88vw !important;
    width: 88vw !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always !important;
  }

  .reviews-progress {
    width: min(210px, 58%);
    margin-top: 16px;
  }

  .reviews-progress-track {
    height: 4px;
  }

  .reviews-progress-thumb {
    transition: transform .08s linear;
  }
}


/* ── Final fix: stable lower caption panel in “Для кого” carousel ── */
#for-whom .fw-carousel__slide {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border-radius: 28px !important;
  background: #d2b27a !important;
}

#for-whom .fw-carousel__slide > img {
  display: block !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  object-fit: cover !important;
  position: relative !important;
  z-index: 1 !important;
}

#for-whom .fw-carousel__slide .fw-card-label--bottom {
  position: relative !important;
  inset: auto !important;
  z-index: 4 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 11px 18px 13px !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
  background: linear-gradient(180deg, #d2b27a 0%, #d8bc88 100%) !important;
  color: #241a0f !important;
  font-size: 13px !important;
  line-height: 1.28 !important;
  font-weight: 600 !important;
  text-align: center !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  transform: none !important;
}

#for-whom .fw-carousel__slide .fw-card-label--bottom::before,
#for-whom .fw-carousel__slide .fw-card-label--bottom::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 640px) {
  #for-whom .fw-carousel__slide {
    border-radius: 22px !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--bottom {
    min-height: 54px !important;
    padding: 10px 14px 12px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
  }
}



/* Match lower caption typography to the top week label */
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  color: #fffaf1 !important;
  font-weight: 600 !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.28) !important;
}


/* Increase bottom label font size */
#for-whom .fw-carousel__slide .fw-card-label--bottom{
    font-size:15px !important;
    line-height:1.3 !important;
}
@media (max-width:640px){
    #for-whom .fw-carousel__slide .fw-card-label--bottom{
        font-size:14px !important;
        line-height:1.28 !important;
    }
}



/* ── Mobile carousel final fixes ── */
@media (max-width: 640px) {
  /* Верхняя плашка стала чуть крупнее и без белых щелей по углам */
  #for-whom .fw-carousel__slide .fw-card-label--top {
    top: 13px !important;
    left: 50% !important;
    right: auto !important;
    min-width: 116px !important;
    min-height: 40px !important;
    padding: 9px 18px 10px !important;
    box-sizing: border-box !important;
    border-radius: 999px !important;
    background: linear-gradient(180deg, #d6b574 0%, #bd9250 100%) !important;
    color: #fffaf1 !important;
    font-size: 15px !important;
    line-height: 1.1 !important;
    font-weight: 600 !important;
    text-align: center !important;
    white-space: nowrap !important;
    transform: translateX(-50%) !important;
    overflow: hidden !important;
    box-shadow: 0 8px 20px rgba(52, 35, 16, .18) !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--top::before,
  #for-whom .fw-carousel__slide .fw-card-label--top::after {
    content: none !important;
    display: none !important;
  }

  /* Свайп должен обрабатываться каруселью, вертикальный скролл страницы сохраняется */
  #for-whom .fw-carousel,
  #for-whom .fw-carousel__viewport,
  #for-whom .fw-carousel__stack,
  #for-whom .fw-carousel__slide {
    touch-action: pan-y !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }

  /* Стрелки разведены дальше и вынесены за область карточки */
  #for-whom .fw-carousel {
    padding-bottom: 64px !important;
  }

  #for-whom .fw-carousel__arrow {
    top: auto !important;
    bottom: 4px !important;
    z-index: 40 !important;
    width: 44px !important;
    height: 44px !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    left: calc(50% - 142px) !important;
    right: auto !important;
  }

  #for-whom .fw-carousel__arrow--next {
    right: calc(50% - 142px) !important;
    left: auto !important;
  }

  #for-whom .fw-carousel__dots {
    bottom: 18px !important;
    z-index: 35 !important;
    pointer-events: auto !important;
  }

  /* Возвращаем плавное появление блока на мобильных */
  @media (prefers-reduced-motion: no-preference) {
    #for-whom .fw-rebuilt__text,
    #for-whom .fw-rebuilt__visual {
      opacity: 0 !important;
      will-change: opacity, transform !important;
    }

    #for-whom .fw-rebuilt__text {
      transform: translate3d(0, 24px, 0) !important;
    }

    #for-whom .fw-rebuilt__visual {
      transform: translate3d(0, 38px, 0) scale(.985) !important;
    }

    #for-whom.fw-rebuilt.is-visible .fw-rebuilt__text,
    #for-whom.fw-rebuilt.is-visible .fw-rebuilt__visual {
      opacity: 1 !important;
      transform: translate3d(0, 0, 0) scale(1) !important;
      transition:
        opacity .72s cubic-bezier(.22,.61,.36,1),
        transform .82s cubic-bezier(.22,.61,.36,1) !important;
    }

    #for-whom.fw-rebuilt.is-visible .fw-rebuilt__visual {
      transition-delay: .1s !important;
    }
  }

  /* Более заметная анимация смены карточек на телефоне */
  #for-whom .fw-carousel__slide {
    transition:
      transform .56s cubic-bezier(.22,.61,.36,1),
      opacity .42s ease,
      filter .42s ease !important;
  }

  #for-whom .fw-carousel__slide.is-exiting-left {
    transform: translate3d(-112px, 8px, 18px) rotate(-7deg) scale(.93) !important;
  }
}

@media (max-width: 380px) {
  #for-whom .fw-carousel__arrow--prev {
    left: 8px !important;
  }

  #for-whom .fw-carousel__arrow--next {
    right: 8px !important;
  }
}



/* ── Critical mobile visibility fix for “Для кого” ── */
@media (max-width: 640px) {
  #for-whom,
  #for-whom.fw-rebuilt,
  #for-whom .fw-rebuilt__inner,
  #for-whom .fw-rebuilt__text,
  #for-whom .fw-rebuilt__visual,
  #for-whom .fw-carousel,
  #for-whom .fw-carousel__viewport,
  #for-whom .fw-carousel__stack {
    display: block !important;
    visibility: visible !important;
  }

  #for-whom {
    opacity: 1 !important;
    height: auto !important;
    min-height: 1px !important;
    overflow: visible !important;
  }

  #for-whom .fw-rebuilt__text,
  #for-whom .fw-rebuilt__visual {
    opacity: 1 !important;
    transform: none !important;
  }

  #for-whom .fw-rebuilt__visual {
    margin-top: 34px !important;
  }

  /* Мягкая анимация без зависимости от IntersectionObserver */
  @media (prefers-reduced-motion: no-preference) {
    #for-whom .fw-rebuilt__text {
      animation: fwMobileRevealText .65s cubic-bezier(.22,.61,.36,1) both !important;
    }

    #for-whom .fw-rebuilt__visual {
      animation: fwMobileRevealVisual .78s cubic-bezier(.22,.61,.36,1) .08s both !important;
    }
  }
}

@keyframes fwMobileRevealText {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fwMobileRevealVisual {
  from {
    opacity: 0;
    transform: translate3d(0, 26px, 0) scale(.985);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}



/* ── Mobile centered cascade carousel ── */
@media (max-width: 640px) {
  #for-whom,
  #for-whom.fw-rebuilt {
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  #for-whom .fw-rebuilt__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100% - 24px, 520px) !important;
    margin-inline: auto !important;
  }

  #for-whom .fw-rebuilt__text {
    display: block !important;
    width: 100% !important;
  }

  #for-whom .fw-rebuilt__visual {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 535px !important;
    margin: 26px auto 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

  #for-whom .fw-carousel {
    display: grid !important;
    place-items: center !important;
    position: relative !important;
    width: 100% !important;
    max-width: 390px !important;
    min-height: 535px !important;
    margin-inline: auto !important;
    padding: 0 0 66px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  #for-whom .fw-carousel__viewport {
    display: block !important;
    position: relative !important;
    width: min(76vw, 318px) !important;
    height: min(101vw, 430px) !important;
    margin-inline: auto !important;
    overflow: visible !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

  #for-whom .fw-carousel__stack {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    margin-inline: auto !important;
    perspective: 1400px !important;
    transform-style: preserve-3d !important;
  }

  #for-whom .fw-carousel__slide {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    transform-origin: 50% 78% !important;
    transition:
      transform .58s cubic-bezier(.22,.61,.36,1),
      opacity .42s ease,
      filter .42s ease !important;
  }

  /* Центральная карточка */
  #for-whom .fw-carousel__slide.is-current {
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1) !important;
    opacity: 1 !important;
    z-index: 6 !important;
  }

  /* Каскад карточек виден справа за центральной */
  #for-whom .fw-carousel__slide.is-next-1 {
    transform: translate3d(20px, 15px, -50px) rotate(2.8deg) scale(.968) !important;
    opacity: .9 !important;
    z-index: 5 !important;
  }

  #for-whom .fw-carousel__slide.is-next-2 {
    transform: translate3d(38px, 29px, -95px) rotate(5deg) scale(.936) !important;
    opacity: .68 !important;
    z-index: 4 !important;
  }

  #for-whom .fw-carousel__slide.is-next-3 {
    transform: translate3d(54px, 42px, -140px) rotate(6.8deg) scale(.905) !important;
    opacity: .43 !important;
    z-index: 3 !important;
  }

  #for-whom .fw-carousel__slide.is-past {
    transform: translate3d(72px, 54px, -175px) rotate(8deg) scale(.88) !important;
    opacity: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
  }

  /* При перелистывании активная карточка уходит вправо */
  #for-whom .fw-carousel__slide.is-exiting-left {
    transform: translate3d(125px, 3px, 20px) rotate(7deg) scale(.94) !important;
    opacity: 0 !important;
    z-index: 8 !important;
  }

  #for-whom .fw-carousel__slide.is-preparing-back {
    transform: translate3d(72px, 54px, -175px) rotate(8deg) scale(.88) !important;
  }

  #for-whom .fw-carousel__slide.is-entering-front {
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1) !important;
  }

  #for-whom .fw-carousel__arrow {
    top: auto !important;
    bottom: 4px !important;
    width: 44px !important;
    height: 44px !important;
    z-index: 50 !important;
    pointer-events: auto !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    left: 8px !important;
    right: auto !important;
  }

  #for-whom .fw-carousel__arrow--next {
    right: 8px !important;
    left: auto !important;
  }

  #for-whom .fw-carousel__dots {
    left: 50% !important;
    right: auto !important;
    bottom: 18px !important;
    transform: translateX(-50%) !important;
  }
}

@media (max-width: 380px) {
  #for-whom .fw-carousel__viewport {
    width: min(74vw, 286px) !important;
    height: min(99vw, 390px) !important;
  }

  #for-whom .fw-rebuilt__visual,
  #for-whom .fw-carousel {
    min-height: 495px !important;
  }
}



/* ── Final mobile carousel repair ── */
@media (max-width: 640px) {
  #for-whom .fw-rebuilt__inner {
    width: min(100% - 16px, 520px) !important;
    margin-inline: auto !important;
  }

  #for-whom .fw-rebuilt__visual {
    width: 100% !important;
    min-height: 590px !important;
    margin-top: 24px !important;
    overflow: visible !important;
  }

  #for-whom .fw-carousel {
    position: relative !important;
    width: 100% !important;
    max-width: 430px !important;
    min-height: 590px !important;
    margin-inline: auto !important;
    padding: 0 52px 72px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  #for-whom .fw-carousel__viewport {
    /* Абсолютное центрирование по факту центра контейнера — надёжнее,
       чем margin:auto/grid-центрирование, когда сама область просмотра
       шире доступного места и норовит "прилипнуть" влево, из-за чего
       стрелки оказывались на разном расстоянии от фото. */
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    transform: translate(-50%, -50%) !important;
    width: min(84vw, 350px) !important;
    height: min(116vw, 485px) !important;
    margin-inline: 0 !important;
    overflow: visible !important;
  }

  #for-whom .fw-carousel__stack {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    overflow: visible !important;
  }

  #for-whom .fw-carousel__slide {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    padding: 7px !important;
    box-sizing: border-box !important;
    border-radius: 27px !important;
    overflow: hidden !important;
    transition:
      transform .48s cubic-bezier(.22,.61,.36,1),
      opacity .38s ease,
      filter .38s ease !important;
    pointer-events: none !important;
  }

  #for-whom .fw-carousel__slide.is-current {
    transform: translate3d(0,0,0) rotate(0deg) scale(1) !important;
    opacity: 1 !important;
    z-index: 8 !important;
    pointer-events: auto !important;
  }

  #for-whom .fw-carousel__slide.is-next-1 {
    transform: translate3d(17px,14px,-45px) rotate(2.1deg) scale(.978) !important;
    opacity: .92 !important;
    z-index: 7 !important;
  }

  #for-whom .fw-carousel__slide.is-next-2 {
    transform: translate3d(31px,27px,-90px) rotate(3.8deg) scale(.954) !important;
    opacity: .70 !important;
    z-index: 6 !important;
  }

  #for-whom .fw-carousel__slide.is-next-3 {
    transform: translate3d(43px,39px,-130px) rotate(5.2deg) scale(.93) !important;
    opacity: .46 !important;
    z-index: 5 !important;
  }

  #for-whom .fw-carousel__slide.is-prev-1 {
    transform: translate3d(-82px,5px,15px) rotate(-5deg) scale(.95) !important;
    opacity: 0 !important;
    z-index: 9 !important;
  }

  #for-whom .fw-carousel__slide.is-past {
    transform: translate3d(56px,48px,-160px) rotate(6deg) scale(.90) !important;
    opacity: 0 !important;
    z-index: 1 !important;
  }

  #for-whom .fw-carousel__slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 21px !important;
  }

  /* Верхняя плашка перекрывает рамку без белых щелей */
  #for-whom .fw-card-label--top {
    top: 5px !important;
    left: 50% !important;
    min-width: 132px !important;
    min-height: 44px !important;
    padding: 11px 22px 12px !important;
    border-radius: 999px !important;
    transform: translateX(-50%) !important;
    box-sizing: border-box !important;
    line-height: 1.05 !important;
    z-index: 20 !important;
    box-shadow:
      0 7px 18px rgba(62,42,16,.22),
      0 0 0 2px #c39a57 !important;
  }

  /* Нижняя плашка также слегка заходит на рамку */
  #for-whom .fw-card-label--bottom {
    left: 5px !important;
    right: 5px !important;
    bottom: 5px !important;
    width: auto !important;
    min-height: 58px !important;
    padding: 12px 15px 13px !important;
    box-sizing: border-box !important;
    border-radius: 0 0 20px 20px !important;
    z-index: 20 !important;
  }

  #for-whom .fw-carousel__arrow {
    top: 50% !important;
    bottom: auto !important;
    width: 46px !important;
    height: 46px !important;
    transform: translateY(-50%) !important;
    z-index: 1000 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  #for-whom .fw-carousel__arrow:hover {
    transform: translateY(-50%) !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    left: -16px !important;
    right: auto !important;
  }

  #for-whom .fw-carousel__arrow--next {
    right: -16px !important;
    left: auto !important;
  }

  #for-whom .fw-carousel__dots {
    left: 50% !important;
    right: auto !important;
    bottom: 18px !important;
    transform: translateX(-50%) !important;
    z-index: 1000 !important;
    pointer-events: auto !important;
  }

  #for-whom .fw-carousel__dot {
    min-width: 10px !important;
    min-height: 10px !important;
    touch-action: manipulation !important;
    pointer-events: auto !important;
  }

  #for-whom .fw-carousel__dot.is-active {
    width: 31px !important;
  }
}

@media (max-width: 390px) {
  #for-whom .fw-rebuilt__visual,
  #for-whom .fw-carousel {
    min-height: 545px !important;
  }

  #for-whom .fw-carousel {
    padding-inline: 45px !important;
  }

  #for-whom .fw-carousel__viewport {
    width: min(82vw, 318px) !important;
    height: min(113vw, 438px) !important;
  }

  #for-whom .fw-carousel__arrow {
    width: 42px !important;
    height: 42px !important;
  }
}


/* ── ОКОНЧАТЕЛЬНЫЙ ФИКС: карусель «Для кого» на мобильных ──
   Ранее на слайд одновременно действовали два независимых набора правил
   (flex-колонка из старого макета и absolute-оверлей из нового), и они
   не полностью перекрывали друг друга по свойствам — в итоге плашки
   позиционировались как relative вместо absolute (отсюда смещение вниз
   и белые просветы), а фото сжималось конфликтом flex/width-height.
   Этот блок стоит последним в файле и полностью переопределяет разметку
   слайда, фото и обеих плашек единым, непротиворечивым способом.
   Область действия ограничена мобильной раскладкой (≤980px) — на вебе
   карусель отображается по исходным правилам, объявленным выше. */
@media (max-width: 980px) {
#for-whom .fw-carousel__slide {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 7px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  border-radius: 27px !important;
  background: #d2b27a !important;
}

#for-whom .fw-carousel__slide > img,
#for-whom .fw-carousel__slide img {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 21px !important;
  z-index: 1 !important;
}

/* Верхняя плашка: тот же цвет и та же форма (полноширинная лента
   со скруглением только в сторону своего края), что и нижняя. */
#for-whom .fw-carousel__slide .fw-card-label--top {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: -3px !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 46px !important;
  padding: 12px 16px 13px !important;
  box-sizing: border-box !important;
  border-radius: 21px 21px 0 0 !important;
  background: linear-gradient(180deg, #d8bc88 0%, #d2b27a 100%) !important;
  border: none !important;
  color: #fffaf1 !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
  font-weight: 600 !important;
  text-align: center !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.28) !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  z-index: 3 !important;
  box-shadow: 0 -2px 10px rgba(52, 35, 16, .12) !important;
}

#for-whom .fw-carousel__slide .fw-card-label--bottom {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -3px !important;
  top: auto !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  min-height: 62px !important;
  padding: 13px 16px 16px !important;
  box-sizing: border-box !important;
  border-radius: 0 0 21px 21px !important;
  background: linear-gradient(180deg, #d2b27a 0%, #d8bc88 100%) !important;
  color: #fffaf1 !important;
  font-size: 14px !important;
  line-height: 1.28 !important;
  font-weight: 600 !important;
  text-align: center !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.28) !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  z-index: 3 !important;
}

/* Мягкий блюр-переход между фото и плашками: размытая полупрозрачная
   растяжка цвета плашки поверх края фотографии, без жёсткой линии стыка. */
#for-whom .fw-carousel__slide .fw-card-label--top::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  bottom: -16px !important;
  height: 20px !important;
  margin: 0 !important;
  background: linear-gradient(180deg, rgba(210,178,122,.5) 0%, rgba(210,178,122,0) 100%) !important;
  filter: blur(7px) !important;
  -webkit-filter: blur(7px) !important;
  pointer-events: none !important;
  z-index: 2 !important;
  border-radius: 0 !important;
}

#for-whom .fw-carousel__slide .fw-card-label--bottom::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  top: -16px !important;
  height: 20px !important;
  margin: 0 !important;
  background: linear-gradient(180deg, rgba(210,178,122,0) 0%, rgba(210,178,122,.5) 100%) !important;
  filter: blur(7px) !important;
  -webkit-filter: blur(7px) !important;
  pointer-events: none !important;
  z-index: 2 !important;
}
}

/* ── Новая анимация перелистывания: слайд в сторону ──
   Заменяет прежний веерный каскад (карточки лесенкой позади) на
   обычный горизонтальный слайд: текущее фото уезжает в сторону,
   следующее подъезжает на его место. Смещение задано в процентах
   от ширины самого слайда, поэтому работает одинаково и в вебе,
   и на мобильных — без отдельных правил под каждый брейкпоинт. */
#for-whom .fw-carousel__slide {
  transition:
    transform .5s cubic-bezier(.22,.61,.36,1),
    opacity .4s ease !important;
}

#for-whom .fw-carousel__slide.is-current {
  transform: translate3d(0, 0, 0) rotate(0deg) scale(1) !important;
  opacity: 1 !important;
  z-index: 5 !important;
  pointer-events: auto !important;
}

#for-whom .fw-carousel__slide.is-next-1,
#for-whom .fw-carousel__slide.is-next-2,
#for-whom .fw-carousel__slide.is-next-3 {
  transform: translate3d(100%, 0, 0) rotate(0deg) scale(1) !important;
  opacity: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

#for-whom .fw-carousel__slide.is-prev-1,
#for-whom .fw-carousel__slide.is-past {
  transform: translate3d(-100%, 0, 0) rotate(0deg) scale(1) !important;
  opacity: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

/* ── Стрелки по центру кружков (веб + моб) ──
   Символы ←/→ наследовали line-height:1.6 от body, из-за чего
   строка текста внутри круглой кнопки была выше самого кружка и
   grid-центрирование центрировало эту раздутую строку, а не сам
   символ — стрелка визуально съезжала вниз. Прижимаем line-height
   к 1 и слегка поднимаем символ, чтобы он стоял по центру круга. */
#for-whom .fw-carousel__arrow {
  line-height: 1 !important;
}

#for-whom .fw-carousel__arrow span {
  display: block !important;
  line-height: 1 !important;
  transform: translateY(-1px) !important;
}

/* ── Возвращаем стрелки карусели отзывов учениц (веб + моб) ──
   На мобильных они были скрыты (display:none) в расчёте только на
   нативный свайп — возвращаем их как видимый и рабочий способ
   пролистывания на всех размерах экрана. */
.reviews-carousel-arrow {
  display: grid !important;
}

@media (max-width: 980px) {
  .reviews-carousel-arrow {
    width: 40px !important;
    height: 40px !important;
    font-size: 16px !important;
    z-index: 50 !important;
    pointer-events: auto !important;
  }

  .reviews-carousel-prev {
    left: 6px !important;
  }

  .reviews-carousel-next {
    right: 6px !important;
  }

  /* Подстраховка: гарантируем нативный горизонтальный скролл слайдов
     на мобильных, независимо от прочих правил выше по каскаду. */
  .reviews-carousel-viewport {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    touch-action: pan-x !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
  }

  .reviews-carousel-track {
    transform: none !important;
  }

  .reviews-carousel-slide {
    scroll-snap-align: center !important;
  }
}

/* ── Плашки больше не перекрывают фото в карусели «Для кого» ──
   Раньше обе плашки лежали поверх фотографии абсолютным позиционированием.
   Теперь карточка — это грид из трёх строк: плашка сверху (своя высота),
   фото посередине (тянется на всё оставшееся место, размер снимка не
   меняется), плашка снизу (своя высота). Из-за этого карточка становится
   выше, зато плашки нигде не закрывают изображение. Действует одинаково
   в вебе и на мобильных — меняется только итоговая высота-контейнеров. */
#for-whom .fw-carousel__slide {
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  grid-template-columns: 100% !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 7px !important;
  gap: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  border-radius: 27px !important;
  background: #d2b27a !important;
}

#for-whom .fw-carousel__slide > img,
#for-whom .fw-carousel__slide img {
  display: block !important;
  position: static !important;
  grid-row: 2 !important;
  grid-column: 1 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
  inset: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 0 !important;
  z-index: 1 !important;
}

#for-whom .fw-carousel__slide .fw-card-label--top {
  position: static !important;
  grid-row: 1 !important;
  grid-column: 1 !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 42px !important;
  padding: 10px 18px 11px !important;
  box-sizing: border-box !important;
  border-radius: 21px 21px 0 0 !important;
  background: linear-gradient(180deg, #d8bc88 0%, #d2b27a 100%) !important;
  border: none !important;
  box-shadow: none !important;
  color: #fffaf1 !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.28) !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  overflow: visible !important;
  z-index: 3 !important;
}

#for-whom .fw-carousel__slide .fw-card-label--bottom {
  position: static !important;
  grid-row: 3 !important;
  grid-column: 1 !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  top: auto !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 54px !important;
  padding: 12px 16px 14px !important;
  box-sizing: border-box !important;
  border-radius: 0 0 21px 21px !important;
  background: linear-gradient(180deg, #d2b27a 0%, #d8bc88 100%) !important;
  color: #fffaf1 !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  line-height: 1.28 !important;
  text-align: center !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.28) !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  z-index: 3 !important;
}

/* Плашки больше не соприкасаются с фото внахлёст, шва больше нет —
   отключаем прежний блюр-переход, он был нужен только для нахлёста. */
#for-whom .fw-carousel__slide .fw-card-label--top::before,
#for-whom .fw-carousel__slide .fw-card-label--top::after,
#for-whom .fw-carousel__slide .fw-card-label--bottom::before,
#for-whom .fw-carousel__slide .fw-card-label--bottom::after {
  content: none !important;
  display: none !important;
}

/* Карточка стала выше на высоту двух плашек — увеличиваем область
   просмотра карусели и её контейнеры на всех размерах экрана, чтобы
   более высокая карточка помещалась целиком, а фото не обрезалось. */
#for-whom .fw-carousel__viewport {
  height: 650px !important;
}

#for-whom .fw-carousel,
#for-whom .fw-rebuilt__visual {
  min-height: 700px !important;
}

@media (max-width: 980px) {
  #for-whom .fw-carousel__viewport {
    height: calc(min(104vw, 480px) + 130px) !important;
  }

  #for-whom .fw-carousel,
  #for-whom .fw-rebuilt__visual {
    min-height: calc(min(104vw, 480px) + 170px) !important;
  }
}

@media (max-width: 640px) {
  #for-whom .fw-carousel__viewport {
    height: calc(min(116vw, 485px) + 130px) !important;
  }

  #for-whom .fw-carousel,
  #for-whom .fw-rebuilt__visual {
    min-height: calc(min(116vw, 485px) + 170px) !important;
  }
}

@media (max-width: 390px) {
  #for-whom .fw-carousel__viewport {
    height: calc(min(113vw, 438px) + 130px) !important;
  }

  #for-whom .fw-carousel,
  #for-whom .fw-rebuilt__visual {
    min-height: calc(min(113vw, 438px) + 170px) !important;
  }
}

/* ── Точный жирный (не курсив), опущенный индикатор, объём карточек ──
   1) Где-то ниже по каскаду на плашки цеплялся font-style:italic —
      явно прибиваем normal, чтобы остался только жирный Cormorant Garamond.
   2) Индикатор-точки раньше цеплялись к нижнему краю контейнера, который
      был впритык к фото — теперь контейнер выше, а точки явно отодвинуты
      вниз с большим запасом, чтобы не заходить на карточку.
   3) Добавлена многослойная тень + лёгкий блик сверху — карточкам
      объём вместо плоского вида. */
#for-whom .fw-carousel__slide .fw-card-label--top,
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
}

#for-whom .fw-carousel__slide {
  box-shadow:
    0 22px 46px rgba(35, 24, 10, 0.30),
    0 8px 18px rgba(35, 24, 10, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.28) !important;
}

#for-whom .fw-carousel__viewport {
  height: 650px !important;
}

#for-whom .fw-carousel,
#for-whom .fw-rebuilt__visual {
  min-height: 740px !important;
}

#for-whom .fw-carousel__dots {
  bottom: 8px !important;
  top: auto !important;
}

@media (max-width: 980px) {
  #for-whom .fw-carousel__viewport {
    height: calc(min(104vw, 480px) + 130px) !important;
  }

  #for-whom .fw-carousel,
  #for-whom .fw-rebuilt__visual {
    min-height: calc(min(104vw, 480px) + 220px) !important;
  }
}

@media (max-width: 640px) {
  #for-whom .fw-carousel__viewport {
    height: calc(min(116vw, 485px) + 130px) !important;
  }

  #for-whom .fw-carousel,
  #for-whom .fw-rebuilt__visual {
    min-height: calc(min(116vw, 485px) + 220px) !important;
  }

  #for-whom .fw-carousel__dots {
    bottom: 8px !important;
  }
}

@media (max-width: 390px) {
  #for-whom .fw-carousel__viewport {
    height: calc(min(113vw, 438px) + 130px) !important;
  }

  #for-whom .fw-carousel,
  #for-whom .fw-rebuilt__visual {
    min-height: calc(min(113vw, 438px) + 220px) !important;
  }
}

/* ── Только веб-версия: уменьшаем карточку, чтобы она целиком влезала
   в экран без прокрутки. Мобильная раскладка (≤980px) не затронута —
   у неё выше собственные, отдельные правила на max-width. */
@media (min-width: 981px) {
  #for-whom .fw-carousel {
    width: min(100%, 400px) !important;
  }

  #for-whom .fw-carousel__viewport {
    width: 300px !important;
    height: 500px !important;
  }

  #for-whom .fw-carousel,
  #for-whom .fw-rebuilt__visual {
    min-height: 570px !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--top {
    font-size: 14px !important;
    min-height: 36px !important;
    padding: 8px 14px 9px !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--bottom {
    font-size: 13px !important;
    min-height: 44px !important;
    padding: 10px 14px 11px !important;
  }

  #for-whom .fw-carousel__arrow {
    width: 36px !important;
    height: 36px !important;
    font-size: 15px !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    left: -6px !important;
  }

  #for-whom .fw-carousel__arrow--next {
    right: -6px !important;
  }

  #for-whom .fw-carousel__dots {
    bottom: 6px !important;
    gap: 7px !important;
  }

  #for-whom .fw-carousel__dot {
    width: 7px !important;
    height: 7px !important;
  }

  #for-whom .fw-carousel__dot.is-active {
    width: 22px !important;
  }
}

/* ── Фото рядом с карточкой статистики в hero (веб + моб) ──
   .hero-right теперь обёртка на фото + карточку, они стоят друг
   над другом столбцом внутри той же колонки, где раньше была
   только карточка. */
.hero-right {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.hero-photo {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 38%;
  border-radius: var(--r-md);
  border: 0.5px solid var(--border);
  box-shadow: 0 18px 50px rgba(26, 20, 16, 0.14);
}

/* ── Веб: фото убрано, справа снова только карточка статистики ── */
@media (min-width: 901px) {
  .hero-photo {
    display: none !important;
  }

  .hero-right {
    display: block !important;
  }
}

/* ── Моб: фото стоит прямо справа от заголовка «Формула тотальной
   сцепки», а не под карточкой. Раскладка идёт через grid-area на
   самой .hero — hero-left/hero-right становятся "прозрачными"
   (display:contents), так что их дети (эйброу, заголовок, текст,
   кнопки, фото, карточка) свободно расставляются по сетке без
   переноса HTML. */
@media (max-width: 900px) {
  .hero {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "eyebrow eyebrow"
      "heading photo"
      "sub sub"
      "actions actions"
      "card card" !important;
    column-gap: 18px !important;
    row-gap: 16px !important;
  }

  .hero-left,
  .hero-right {
    display: contents !important;
  }

  .hero-eyebrow {
    grid-area: eyebrow !important;
  }

  .hero-h1 {
    grid-area: heading !important;
    align-self: center !important;
    margin-bottom: 0 !important;
  }

  .hero-sub {
    grid-area: sub !important;
  }

  .hero-actions {
    grid-area: actions !important;
  }

  .hero-card {
    grid-area: card !important;
  }

  .hero-photo {
    grid-area: photo !important;
    align-self: center !important;
    justify-self: end !important;
    width: clamp(96px, 30vw, 150px) !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
  }
}

/* ═══ MOBILE/WEB SYNC PASS: unified card typography + centering ═══ */
#for-whom .fw-carousel__slide .fw-card-label,
#for-whom .fw-carousel__slide .fw-card-label--top,
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-family: 'Cormorant Garamond', serif !important;
}
#for-whom .fw-carousel__slide .fw-card-label--top {
  color: #fffaf1 !important;
  font-size: clamp(15px, 3.4vw, 17px) !important;
  line-height: 1.2 !important;
}
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  color: #fffaf1 !important;
  font-size: clamp(13px, 2.8vw, 15px) !important;
  line-height: 1.32 !important;
}

#programme .programme-card-head {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  position: relative !important;
}
#programme .programme-card .prog-index {
  display: none !important;
}
#programme .programme-heading-wrap {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
#programme .programme-card .prog-tag {
  width: 100% !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ═══ SYNC PASS 2: top-plate text 2x, true-center bottom-plate (mobile) ═══ */
#for-whom .fw-carousel__slide .fw-card-label--top {
  font-size: clamp(30px, 6.8vw, 34px) !important;
  line-height: 1.12 !important;
  min-height: 76px !important;
  padding: 16px 20px 14px !important;
  font-weight: 700 !important;
}
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

@media (max-width: 980px) {
  #for-whom .fw-carousel__slide .fw-card-label--top {
    font-size: clamp(28px, 8.6vw, 32px) !important;
    min-height: 70px !important;
    padding: 14px 18px 12px !important;
  }
  #for-whom .fw-carousel__slide .fw-card-label--bottom {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    min-height: 58px !important;
    width: 100% !important;
    margin: 0 auto !important;
  }
}

/* ═══ SYNC PASS 3: reviews-carousel arrows in side gutter, off the photo (mobile) ═══ */
@media (max-width: 980px) {
  .reviews-carousel {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
  .reviews-carousel-arrow {
    width: 36px !important;
    height: 36px !important;
    font-size: 15px !important;
    z-index: 50 !important;
  }
  .reviews-carousel-prev {
    left: 6px !important;
    right: auto !important;
  }
  .reviews-carousel-next {
    right: 6px !important;
    left: auto !important;
  }
}

/* ═══ SYNC PASS 4: identical, proportional arrow size across "Для кого" and "Отзывы учениц" ═══ */
@media (min-width: 981px) {
  #for-whom .fw-carousel__arrow,
  .reviews-carousel-arrow {
    width: 46px !important;
    height: 46px !important;
    font-size: 19px !important;
  }
}
@media (max-width: 980px) {
  #for-whom .fw-carousel__arrow,
  .reviews-carousel-arrow {
    width: 38px !important;
    height: 38px !important;
    font-size: 16px !important;
  }
}

/* ═══ SYNC PASS 5: mobile 9:16 carousel fix, scroll-through, no-zoom, safe margins ═══ */
html, body { overflow-x: hidden; }

@media (max-width: 980px) {
  /* Photos were being cropped: slides were sized in vw (device-relative) while the
     carousel container had its own side padding, so each slide was wider than the
     visible scroll window. Switching the track to a definite 100% width and slides
     to a percentage of THAT width fixes the mismatch. */
  .reviews-carousel-track {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    transform: none !important;
    transition: none !important;
    gap: 12px !important;
    padding: 0 10% !important;
  }
  .reviews-carousel-slide {
    flex: 0 0 80% !important;
    width: 80% !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always !important;
  }
  .reviews-carousel-slide img {
    height: auto !important;
    max-height: 68dvh !important;
    object-fit: contain !important;
  }

  /* Smoother, uninterrupted scrolling */
  .reviews-carousel-viewport {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
    scrollbar-width: none !important;
    overscroll-behavior-x: contain !important;
  }
  .reviews-carousel-viewport::-webkit-scrollbar { display: none !important; }

  /* Arrows: stable, identical, centered vertically, never overlapping the photo */
  .reviews-carousel-arrow {
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 50 !important;
  }
  .reviews-carousel-prev { left: 4px !important; right: auto !important; }
  .reviews-carousel-next { right: 4px !important; left: auto !important; }

  /* Pull the for-whom carousel arrows back from the screen edge */
  #for-whom .fw-carousel__arrow--prev { left: 4px !important; }
  #for-whom .fw-carousel__arrow--next { right: 4px !important; }
}

/* Disable pinch/double-tap zoom everywhere on touch devices */
html {
  touch-action: manipulation;
}

/* ═══ SYNC PASS 6: beige letterbox (not white) + true-centered photos in reviews ═══ */
.reviews-carousel-slide {
  background: var(--linen) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.reviews-carousel-slide img {
  background: var(--linen) !important;
}

/* ═══ SYNC PASS 7: for-whom plates -> Inter font, smaller top plate ═══ */
#for-whom .fw-carousel__slide .fw-card-label,
#for-whom .fw-carousel__slide .fw-card-label--top,
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  font-family: 'Inter', sans-serif !important;
}
#for-whom .fw-carousel__slide .fw-card-label--top {
  font-size: clamp(19px, 4.4vw, 22px) !important;
  line-height: 1.15 !important;
  min-height: 52px !important;
  padding: 12px 18px 10px !important;
  font-weight: 600 !important;
}
@media (max-width: 980px) {
  #for-whom .fw-carousel__slide .fw-card-label--top {
    font-size: clamp(18px, 5.4vw, 20px) !important;
    min-height: 48px !important;
    padding: 10px 16px 9px !important;
  }
}

/* ═══ SYNC PASS 8: sharpen plate text (was hazy from a 6px blur text-shadow) ═══ */
#for-whom .fw-carousel__slide .fw-card-label,
#for-whom .fw-carousel__slide .fw-card-label--top,
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased !important;
  text-rendering: optimizeLegibility !important;
}

/* ═══ SYNC PASS 9: true-center plate text — symmetric padding, no drift ═══ */
#for-whom .fw-carousel__slide .fw-card-label,
#for-whom .fw-carousel__slide .fw-card-label--top,
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.15 !important;
}
#for-whom .fw-carousel__slide .fw-card-label--top {
  padding: 13px 18px !important;
  min-height: 52px !important;
}
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  padding: 13px 16px !important;
  min-height: 52px !important;
}
@media (max-width: 980px) {
  #for-whom .fw-carousel__slide .fw-card-label--top {
    padding: 10px 16px !important;
    min-height: 46px !important;
  }
  #for-whom .fw-carousel__slide .fw-card-label--bottom {
    padding: 11px 14px !important;
    min-height: 46px !important;
  }
}


/* ═══ AUDIT FIX 2026-08: fixed nav + readable reviews + side arrows + centered plates ═══ */

/* Nav: keep fixed over any later sticky/overflow rules; opaque; no scroll jitter */
.nav {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  height: var(--nav-offset, 60px) !important;
  padding-top: var(--nav-safe-top, env(safe-area-inset-top, 0px)) !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
  z-index: 1000 !important;
  background: #FAF6F0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transform: none !important;
  animation: none !important;
}

body {
  padding-top: var(--nav-offset, 60px) !important;
}

@media (max-width: 900px) {
  .nav {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* ── Reviews carousel: equal-row height, images vertically centered ── */
#reviews .reviews-carousel-track {
  align-items: stretch !important;
}

#reviews .reviews-carousel-slide {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--linen, #F2EBE0) !important;
  overflow: hidden !important;
}

#reviews .reviews-carousel-slide img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: var(--linen, #F2EBE0) !important;
  transform: none !important;
  margin: auto 0 !important;
}

#reviews .reviews-progress {
  width: min(320px, 100%) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 980px) {
  #reviews.section {
    padding-left: max(12px, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(12px, env(safe-area-inset-right, 0px)) !important;
  }

  #reviews .section-h2,
  #reviews .section-eyebrow {
    text-align: left;
  }

  #reviews .reviews-carousel {
    position: relative !important;
    z-index: 4 !important;
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
    grid-template-rows: auto auto !important;
    column-gap: 8px !important;
    row-gap: 14px !important;
    align-items: center !important;
    justify-items: center !important;
    width: 100% !important;
    max-width: 560px !important;
    margin: 22px auto 0 !important;
    padding: 0 0 16px !important;
    box-sizing: border-box !important;
    container-type: inline-size !important;
    container-name: reviews-carousel !important;
  }

  #reviews .reviews-carousel-viewport {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-radius: 16px !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
    overscroll-behavior-x: contain !important;
  }

  #reviews .reviews-carousel-viewport::-webkit-scrollbar {
    display: none !important;
  }

  #reviews .reviews-carousel-track {
    display: flex !important;
    align-items: stretch !important;
    width: max-content !important;
    max-width: none !important;
    transform: none !important;
    transition: none !important;
    gap: 12px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* Dominant card nearly full carousel width for readable screenshot text */
  #reviews .reviews-carousel-slide {
    flex: 0 0 96cqw !important;
    width: 96cqw !important;
    max-width: 96cqw !important;
    border-radius: 14px !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always !important;
    box-sizing: border-box !important;
    transform: none !important;
  }

  #reviews .reviews-carousel-track {
    padding-left: 2cqw !important;
    padding-right: 2cqw !important;
  }

  #reviews .reviews-carousel-prev,
  #reviews .reviews-carousel-next {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    z-index: 2 !important;
    pointer-events: auto !important;
    grid-row: 2 !important;
  }

  #reviews .reviews-carousel-prev {
    grid-column: 1 !important;
    justify-self: end !important;
  }

  #reviews .reviews-carousel-next {
    grid-column: 3 !important;
    justify-self: start !important;
  }

  /* Progress centered under the card, between/with arrows row */
  #reviews .reviews-progress {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: min(200px, 46%) !important;
    margin: 0 auto !important;
    align-self: center !important;
    justify-self: center !important;
    z-index: 1 !important;
  }
}

@media (max-width: 560px) {
  #reviews .reviews-carousel {
    max-width: 100% !important;
  }

  #reviews .reviews-carousel-slide {
    flex: 0 0 96cqw !important;
    width: 96cqw !important;
    max-width: 96cqw !important;
  }

  #reviews .reviews-carousel-track {
    padding-left: 2cqw !important;
    padding-right: 2cqw !important;
  }

  #reviews .reviews-progress {
    width: min(160px, 40%) !important;
  }
}

/* Desktop: arrows in side gutters, cards top-aligned, progress centered */
@media (min-width: 981px) {
  #reviews .reviews-carousel {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) 48px !important;
    grid-template-rows: auto auto !important;
    column-gap: 12px !important;
    row-gap: 18px !important;
    align-items: center !important;
    width: min(1120px, calc(100% - 40px)) !important;
    margin: 42px auto 0 !important;
    padding: 0 0 22px !important;
    box-sizing: border-box !important;
  }

  #reviews .reviews-carousel-viewport {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    border-radius: 26px !important;
  }

  #reviews .reviews-carousel-track {
    align-items: stretch !important;
    gap: 22px !important;
  }

  #reviews .reviews-carousel {
    container-type: inline-size !important;
  }

  #reviews .reviews-carousel-slide {
    flex: 0 0 min(320px, 30cqw) !important;
    width: min(320px, 30cqw) !important;
    max-width: 360px !important;
    border-radius: 22px !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #reviews .reviews-carousel-slide img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  #reviews .reviews-carousel-prev,
  #reviews .reviews-carousel-next {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    width: 46px !important;
    height: 46px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto !important;
    grid-row: 1 !important;
    align-self: center !important;
  }

  #reviews .reviews-carousel-prev {
    grid-column: 1 !important;
  }

  #reviews .reviews-carousel-next {
    grid-column: 3 !important;
  }

  #reviews .reviews-progress {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: min(280px, 40%) !important;
    margin: 0 auto !important;
  }
}

/* ── For-whom / results carousel: normal page flow, auto height on mobile ── */
#for-whom {
  scroll-margin-top: var(--nav-offset, 60px);
}

/* Desktop keeps the cascade fan; compact, no extra empty section height */
#for-whom .fw-rebuilt__visual {
  position: relative;
  min-height: 0;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0;
  overflow: visible;
}

#for-whom .fw-carousel {
  display: grid !important;
  grid-template-columns: 48px auto 48px !important;
  grid-template-rows: auto auto !important;
  column-gap: 10px !important;
  row-gap: 16px !important;
  align-items: center !important;
  justify-content: center !important;
  justify-items: center !important;
  width: max-content !important;
  max-width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 auto !important;
  place-items: unset !important;
  box-sizing: border-box !important;
}

#for-whom .fw-carousel__viewport {
  grid-column: 2 !important;
  grid-row: 1 !important;
  position: relative !important;
  width: 390px !important;
  max-width: min(390px, calc(100vw - 140px)) !important;
  height: 610px !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
  justify-self: center !important;
}

#for-whom .fw-carousel__stack {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
}

#for-whom .fw-carousel__arrow,
#for-whom .fw-carousel__arrow--prev,
#for-whom .fw-carousel__arrow--next {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  z-index: 2 !important;
  display: grid !important;
  place-items: center !important;
  align-self: center !important;
}

#for-whom .fw-carousel__arrow--prev {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

#for-whom .fw-carousel__arrow--next {
  grid-column: 3 !important;
  grid-row: 1 !important;
}

#for-whom .fw-carousel__dots {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin-top: 4px !important;
  width: 100% !important;
  justify-content: center !important;
}

/* Card structure: title / photo / caption */
#for-whom .fw-carousel__slide {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  overflow: hidden !important;
}

#for-whom .fw-carousel__slide .fw-card-label,
#for-whom .fw-carousel__slide .fw-card-label--top,
#for-whom .fw-carousel__slide .fw-card-label--bottom {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
  line-height: 1.25 !important;
  overflow-wrap: break-word !important;
}

#for-whom .fw-carousel__slide .fw-card-label--top {
  grid-row: 1 !important;
  min-height: 48px !important;
  padding: 12px 16px !important;
}

#for-whom .fw-carousel__slide .fw-card-label--bottom {
  grid-row: 3 !important;
  min-height: 56px !important;
  padding: 12px 14px 14px !important;
}

#for-whom .fw-carousel__slide img {
  grid-row: 2 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

/* ── Mobile: leave document flow, height = active card only ── */
@media (max-width: 980px) {
  #for-whom.fw-rebuilt,
  #for-whom {
    overflow: visible !important;
  }

  #for-whom .fw-rebuilt__inner {
    align-items: start !important;
    gap: 28px !important;
  }

  #for-whom .fw-rebuilt__visual {
    order: 2 !important;
    min-height: 0 !important;
    height: auto !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: visible !important;
  }

  #for-whom .fw-rebuilt__visual::before {
    display: none !important;
  }

  #for-whom .fw-carousel {
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
    column-gap: 8px !important;
    row-gap: 14px !important;
    width: min(100%, 400px) !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #for-whom .fw-carousel__viewport {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  #for-whom .fw-carousel__stack {
    height: auto !important;
    perspective: none !important;
  }

  /* Only the active slide participates in layout height */
  #for-whom .fw-carousel__slide {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    height: auto !important;
    min-height: 0 !important;
    transform: none !important;
    filter: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  #for-whom .fw-carousel__slide.is-current {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    grid-template-rows: auto auto auto !important;
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    filter: none !important;
    z-index: 2 !important;
  }

  #for-whom .fw-carousel__slide.is-next-1,
  #for-whom .fw-carousel__slide.is-next-2,
  #for-whom .fw-carousel__slide.is-next-3,
  #for-whom .fw-carousel__slide.is-past,
  #for-whom .fw-carousel__slide.is-prev-1,
  #for-whom .fw-carousel__slide.is-exiting-left,
  #for-whom .fw-carousel__slide.is-preparing-back,
  #for-whom .fw-carousel__slide.is-entering-front {
    position: absolute !important;
    display: none !important;
    transform: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  #for-whom .fw-carousel__slide img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    max-height: none !important;
    min-height: 0 !important;
    object-fit: cover !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--top {
    min-height: 44px !important;
    padding: 10px 14px !important;
    font-size: clamp(16px, 4.6vw, 20px) !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--bottom {
    min-height: 52px !important;
    padding: 12px 14px 14px !important;
    font-size: clamp(13px, 3.6vw, 16px) !important;
    max-height: none !important;
    overflow: visible !important;
  }

  #for-whom .fw-carousel__dots {
    position: static !important;
    margin-top: 2px !important;
  }
}

@media (max-width: 360px) {
  #for-whom .fw-carousel {
    grid-template-columns: 1fr 44px 44px 1fr !important;
    grid-template-rows: auto auto auto !important;
    width: 100% !important;
  }

  #for-whom .fw-carousel__viewport {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  #for-whom .fw-carousel__arrow--next {
    grid-column: 3 !important;
    grid-row: 2 !important;
  }

  #for-whom .fw-carousel__dots {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
  }
}


/* Kill legacy oversized visual min-heights (were causing multi-screen gaps) */
#for-whom .fw-rebuilt__visual {
  min-height: 0 !important;
}
@media (min-width: 981px) {
  #for-whom .fw-rebuilt__visual {
    min-height: 620px !important;
  }

  /* Restore desktop cascade fan (later mobile rules must not leak here) */
  #for-whom .fw-carousel__slide {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
  }

  #for-whom .fw-carousel__slide.is-current {
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1) !important;
    opacity: 1 !important;
    z-index: 6 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    display: grid !important;
  }

  #for-whom .fw-carousel__slide.is-next-1 {
    transform: translate3d(20px, 15px, -50px) rotate(2.8deg) scale(.968) !important;
    opacity: .9 !important;
    z-index: 5 !important;
    display: grid !important;
    visibility: visible !important;
  }

  #for-whom .fw-carousel__slide.is-next-2 {
    transform: translate3d(38px, 29px, -95px) rotate(5deg) scale(.936) !important;
    opacity: .68 !important;
    z-index: 4 !important;
    display: grid !important;
    visibility: visible !important;
  }

  #for-whom .fw-carousel__slide.is-next-3 {
    transform: translate3d(54px, 42px, -140px) rotate(6.8deg) scale(.905) !important;
    opacity: .43 !important;
    z-index: 3 !important;
    display: grid !important;
    visibility: visible !important;
  }

  #for-whom .fw-carousel__slide.is-past,
  #for-whom .fw-carousel__slide.is-prev-1 {
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 1 !important;
  }
}

/* Prevent horizontal page scroll from decorative stacks without breaking layout */
html {
  overflow-x: clip;
}
body {
  overflow-x: clip;
}


/* ═══ FLOW FIX FINAL 2026-08-01: kill absolute centering + restore document flow ═══
   Root cause of mobile overlap/huge gap:
   .fw-carousel__viewport still had transform:translate(-50%,-50%) (and formerly
   position:absolute; top/left:50%) from an earlier “centering” patch. Combined with
   position:relative from later rules, the card painted upward over the text list
   while still reserving layout space — creating overlap + empty region below.
   This block is intentionally last and fully resets carousel geometry on mobile. */
@media (max-width: 980px) {
  #for-whom,
  #for-whom.fw-rebuilt {
    position: relative !important;
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #for-whom .fw-rebuilt__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 28px !important;
    width: min(100% - 24px, 520px) !important;
    margin-inline: auto !important;
  }

  #for-whom .fw-rebuilt__text {
    position: relative !important;
    transform: none !important;
    opacity: 1 !important;
    order: 1 !important;
  }

  #for-whom .fw-rebuilt__visual {
    position: relative !important;
    order: 2 !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    transform: none !important;
    opacity: 1 !important;
    will-change: auto !important;
  }

  #for-whom .fw-rebuilt__visual::before,
  #for-whom .fw-rebuilt__visual::after {
    content: none !important;
    display: none !important;
  }

  #for-whom .fw-carousel {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
    grid-template-rows: auto auto !important;
    column-gap: 8px !important;
    row-gap: 16px !important;
    align-items: center !important;
    justify-items: center !important;
    place-items: unset !important;
    width: min(100%, 400px) !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    transform: none !important;
  }

  #for-whom .fw-carousel__viewport {
    position: relative !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    inset: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    overflow: hidden !important;
    justify-self: stretch !important;
  }

  #for-whom .fw-carousel__stack {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    perspective: none !important;
    transform: none !important;
    transform-style: flat !important;
  }

  /* Only active slide in document flow */
  #for-whom .fw-carousel__slide {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    transform: none !important;
    filter: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    overflow: hidden !important;
  }

  #for-whom .fw-carousel__slide.is-current {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    display: flex !important;
    flex-direction: column !important;
    grid-template-rows: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    filter: none !important;
    z-index: 2 !important;
  }

  #for-whom .fw-carousel__slide.is-next-1,
  #for-whom .fw-carousel__slide.is-next-2,
  #for-whom .fw-carousel__slide.is-next-3,
  #for-whom .fw-carousel__slide.is-past,
  #for-whom .fw-carousel__slide.is-prev-1,
  #for-whom .fw-carousel__slide.is-exiting-left,
  #for-whom .fw-carousel__slide.is-preparing-back,
  #for-whom .fw-carousel__slide.is-entering-front {
    position: absolute !important;
    display: none !important;
    transform: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--top,
  #for-whom .fw-carousel__slide .fw-card-label--bottom {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: break-word !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
    box-sizing: border-box !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--top {
    order: 1 !important;
    min-height: 44px !important;
    padding: 10px 14px !important;
    font-size: clamp(16px, 4.6vw, 20px) !important;
    line-height: 1.2 !important;
  }

  #for-whom .fw-carousel__slide img,
  #for-whom .fw-carousel__slide > img {
    order: 2 !important;
    position: static !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
    transform: none !important;
  }

  #for-whom .fw-carousel__slide .fw-card-label--bottom {
    order: 3 !important;
    min-height: 56px !important;
    padding: 12px 14px 14px !important;
    font-size: clamp(13px, 3.6vw, 16px) !important;
    line-height: 1.32 !important;
  }

  #for-whom .fw-carousel__arrow,
  #for-whom .fw-carousel__arrow--prev,
  #for-whom .fw-carousel__arrow--next {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    z-index: 3 !important;
    display: grid !important;
    place-items: center !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }

  #for-whom .fw-carousel__arrow--next {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: start !important;
  }

  #for-whom .fw-carousel__arrow:hover {
    transform: none !important;
  }

  #for-whom .fw-carousel__dots {
    position: static !important;
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 4px 0 0 !important;
    width: 100% !important;
    justify-content: center !important;
  }
}

@media (max-width: 360px) {
  #for-whom .fw-carousel {
    grid-template-columns: 1fr 44px 44px 1fr !important;
    grid-template-rows: auto auto auto !important;
    width: 100% !important;
  }

  #for-whom .fw-carousel__viewport {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    grid-column: 2 !important;
    grid-row: 2 !important;
    justify-self: center !important;
  }

  #for-whom .fw-carousel__arrow--next {
    grid-column: 3 !important;
    grid-row: 2 !important;
    justify-self: center !important;
  }

  #for-whom .fw-carousel__dots {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
  }
}

/* Desktop: keep compact fixed viewport + fan; never inherit mobile translate centering */
@media (min-width: 981px) {
  #for-whom .fw-carousel__viewport {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    width: 300px !important;
    height: 500px !important;
    max-width: 300px !important;
  }

  #for-whom .fw-carousel {
    display: grid !important;
    grid-template-columns: 48px auto 48px !important;
    grid-template-rows: auto auto !important;
    min-height: 0 !important;
    height: auto !important;
    width: max-content !important;
    padding: 0 !important;
  }

  #for-whom .fw-rebuilt__visual {
    min-height: 560px !important;
    height: auto !important;
    transform: none !important;
  }
}


/* ═══ MOBILE LAYOUT FIX 2026-08-01b: full-width cards, no shrink/overlap ═══
   Issues found in live mobile audit:
   1) Results carousel used side-arrow columns (44|1fr|44) → card only ~262px
      on a 390px screen (“сильно уменьшаются”).
   2) .hero img { transform:scale(1.08) } also hit .hero-photo and let it
      visually spill into the title column.
   3) Controls belong under the card so the photo can use nearly full width. */
@media (max-width: 980px) {
  /* Hero photo: no scale bleed into title */
  .hero img,
  .hero__image img,
  .hero-image img,
  .hero-media img,
  .hero picture img,
  .hero-photo {
    transform: none !important;
    max-width: 100% !important;
  }

  .hero-photo {
    width: clamp(96px, 28vw, 140px) !important;
    height: auto !important;
    object-fit: cover !important;
    object-position: center 30% !important;
  }

  /* For-whom results: card first (full width), controls under it */
  #for-whom .fw-rebuilt__visual {
    margin-top: 20px !important;
    margin-bottom: 0 !important;
  }

  #for-whom .fw-carousel {
    display: grid !important;
    grid-template-columns: 1fr 48px 48px 1fr !important;
    grid-template-rows: auto auto auto !important;
    column-gap: 10px !important;
    row-gap: 14px !important;
    align-items: center !important;
    justify-items: center !important;
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  #for-whom .fw-carousel__viewport {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    inset: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    justify-self: stretch !important;
  }

  #for-whom .fw-carousel__slide.is-current {
    width: 100% !important;
    max-width: 100% !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    grid-column: 2 !important;
    grid-row: 2 !important;
    justify-self: center !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

  #for-whom .fw-carousel__arrow--next {
    grid-column: 3 !important;
    grid-row: 2 !important;
    justify-self: center !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

  #for-whom .fw-carousel__dots {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    position: static !important;
    transform: none !important;
    margin: 0 !important;
  }

  /* List items stay in normal flow, readable size */
  #for-whom .fw-rebuilt__item {
    position: relative !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  #for-whom .fw-rebuilt__title {
    font-size: clamp(18px, 5vw, 22px) !important;
  }

  #for-whom .fw-rebuilt__copy {
    font-size: clamp(14px, 3.8vw, 16px) !important;
    line-height: 1.45 !important;
  }

  /* Programme / reviews: keep full-bleed mobile cards */
  #programme .programme-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #reviews .reviews-carousel {
    width: 100% !important;
    max-width: 100% !important;
  }

  #reviews .reviews-carousel-slide {
    flex: 0 0 96cqw !important;
    width: 96cqw !important;
    max-width: 96cqw !important;
    height: auto !important;
    align-self: stretch !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #reviews .reviews-carousel-slide img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  #reviews .reviews-carousel-track {
    align-items: stretch !important;
  }
}


/* ═══ REVIEWS CENTER ALIGN 2026-08-01: all review images vertically centered ═══ */
#reviews .reviews-carousel-track {
  align-items: stretch !important;
}
#reviews .reviews-carousel-slide {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: stretch !important;
}
#reviews .reviews-carousel-slide img {
  object-fit: contain !important;
  object-position: center center !important;
  margin-block: auto !important;
}


/* ═══ RESULTS CAROUSEL NAV/ANIM 2026-08-01c: side arrows + smooth slide ═══
   Keeps existing card geometry; only repositions arrows and enables
   horizontal slide transitions on mobile. Desktop fan cascade unchanged. */
@media (max-width: 980px) {
  #for-whom .fw-carousel {
    position: relative !important;
    display: block !important;
    width: min(100%, 420px) !important;
    max-width: min(420px, calc(100vw - 8px)) !important;
    margin-inline: auto !important;
    padding: 0 20px !important; /* gutters so side arrows never cause x-scroll */
    box-sizing: border-box !important;
    height: auto !important;
    min-height: 0 !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
  }

  #for-whom .fw-carousel__viewport {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    transform: none !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
  }

  #for-whom .fw-carousel__stack {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    perspective: none !important;
    transform: none !important;
  }

  /* Base mobile slide: only current in flow; incoming overlays during anim */
  #for-whom .fw-carousel__slide,
  #for-whom .fw-carousel__slide.is-next-1,
  #for-whom .fw-carousel__slide.is-next-2,
  #for-whom .fw-carousel__slide.is-next-3,
  #for-whom .fw-carousel__slide.is-past,
  #for-whom .fw-carousel__slide.is-prev-1,
  #for-whom .fw-carousel__slide.is-exiting-left,
  #for-whom .fw-carousel__slide.is-preparing-back,
  #for-whom .fw-carousel__slide.is-entering-front {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    width: 100% !important;
    height: auto !important;
    transform: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    filter: none !important;
  }

  #for-whom .fw-carousel__slide.is-current {
    position: relative !important;
    inset: auto !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) !important;
    z-index: 2 !important;
  }

  #for-whom .fw-carousel__slide.is-incoming {
    display: flex !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    z-index: 3 !important;
  }

  #for-whom .fw-carousel__slide.is-incoming-from-right {
    transform: translate3d(100%, 0, 0) !important;
  }
  #for-whom .fw-carousel__slide.is-incoming-from-left {
    transform: translate3d(-100%, 0, 0) !important;
  }
  #for-whom .fw-carousel__slide.is-incoming.is-in {
    transform: translate3d(0, 0, 0) !important;
  }

  #for-whom .fw-carousel__slide.is-current.is-out-left {
    transform: translate3d(-100%, 0, 0) !important;
  }
  #for-whom .fw-carousel__slide.is-current.is-out-right {
    transform: translate3d(100%, 0, 0) !important;
  }

  #for-whom .fw-carousel__slide.is-animating-slide {
    transition: transform 500ms cubic-bezier(.22, .61, .36, 1) !important;
    will-change: transform !important;
  }

  /* Side arrows at photo vertical center; slight overlap on gold frame */
  #for-whom .fw-carousel__arrow,
  #for-whom .fw-carousel__arrow--prev,
  #for-whom .fw-carousel__arrow--next {
    position: absolute !important;
    top: var(--fw-arrow-top, 46%) !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    z-index: 8 !important;
    grid-column: auto !important;
    grid-row: auto !important;
    justify-self: auto !important;
    place-items: center !important;
    display: grid !important;
  }

  #for-whom .fw-carousel__arrow--prev {
    left: 2px !important;
    right: auto !important;
  }
  #for-whom .fw-carousel__arrow--next {
    right: 2px !important;
    left: auto !important;
  }
  #for-whom .fw-carousel__arrow:hover,
  #for-whom .fw-carousel__arrow:focus-visible {
    transform: translateY(-50%) !important;
  }
  #for-whom .fw-carousel__arrow:focus-visible {
    outline: 2px solid rgba(184, 147, 90, 0.85) !important;
    outline-offset: 2px !important;
  }

  #for-whom .fw-carousel__dots {
    position: static !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 14px 0 0 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    top: auto !important;
    transform: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  #for-whom .fw-carousel.is-animating .fw-carousel__arrow,
  #for-whom .fw-carousel.is-animating .fw-carousel__dot {
    pointer-events: none !important;
  }
}

@media (max-width: 360px) {
  #for-whom .fw-carousel {
    padding: 0 14px !important;
  }
  #for-whom .fw-carousel__arrow,
  #for-whom .fw-carousel__arrow--prev,
  #for-whom .fw-carousel__arrow--next {
    width: 44px !important;
    height: 44px !important;
  }
  #for-whom .fw-carousel__arrow--prev { left: 0 !important; }
  #for-whom .fw-carousel__arrow--next { right: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  #for-whom .fw-carousel__slide.is-animating-slide {
    transition-duration: 0.01ms !important;
  }
}


