/* ─── HERO ─── */
.hero {
  background: var(--surface);
  padding: 25px 0 40px;
}

.gift-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--white);
  border-radius: var(--r-lg);
  min-height: 460px;
  position: relative;
  /* overflow: visible — изображение выходит за край карточки */
}

.hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 56px 48px 56px 60px;
  position: relative;
  z-index: 1;
}

.gift-hero__red { color: var(--red); }

.hero__title {
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 16px;
}

.hero__sub--lead {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 36px;
}

.hero__btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* Hero слайдер */
.gift-hero__slider {
  position: relative;
  overflow: hidden;
  border-radius: 0 var(--r-lg) var(--r-lg) 0;
}

.gift-hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .7s ease;
}

.gift-hero__slide.active { opacity: 1; pointer-events: auto; }

.gift-hero__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.gift-hero__dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}

.gift-hero__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,.45);
  cursor: pointer;
  transition: background .2s, transform .2s;
  border: none;
  padding: 10px;
  box-sizing: content-box;
  display: block;
  background-clip: content-box;
}

.gift-hero__dot.active {
  background: var(--white);
  background-clip: content-box;
  transform: scale(1.35);
}

/* ─── ПОЧЕМУ СЕРТИФИКАТЫ ─── */
.gift-why {
  padding: 0 0 40px;
}

.gift-why__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--ink);
}

.gift-why__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.gift-why__item {
  background: var(--white);
  border-radius: var(--r-lg);
  padding: 32px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gift-why__icon {
  width: 48px;
  height: 48px;
  background: var(--red-dim);
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--red);
  flex-shrink: 0;
}

.gift-why__item-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
}

.gift-why__item-text {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.6;
}

/* ─── ПРАЙС-ТАБЛИЦА ─── */
.gift-prices-sec { padding: 0 0 40px; }
.gift-prices__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 8px;
  color: var(--ink);
}
.gift-prices__sub {
  font-size: 15px;
  color: var(--muted);
  margin-bottom: 24px;
}
.gift-prices__card {
  background: var(--white);
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: 24px;
}
.gift-prices__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.gift-prices__table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}
.gift-prices__col-qty { width: 20%; }

.gift-prices__table thead th {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--muted);
  padding: 18px 24px;
  text-align: right;
  vertical-align: bottom;
  background: var(--surface);
  border-bottom: 2px solid var(--border);
  line-height: 1.45;
}
.gift-prices__table thead th:first-child {
  text-align: left;
}
.gift-prices__table thead th:nth-child(2) {
  color: var(--ink);
  box-shadow: inset 0 3px 0 var(--red);
}
.gift-prices__table tbody tr {
  border-bottom: 1px solid var(--border);
  transition: background .1s;
}
.gift-prices__table tbody tr:nth-child(even) { background: var(--surface); }
.gift-prices__table tbody tr:last-child { border-bottom: none; }
.gift-prices__table tbody tr:not(.gift-prices__popular):hover { background: rgba(0,0,0,.03); }
.gift-prices__table tbody td {
  padding: 14px 24px;
  font-size: 15px;
  color: var(--muted);
  text-align: right;
  white-space: nowrap;
}
.gift-prices__table tbody td:first-child {
  text-align: left;
  color: var(--ink2);
  font-weight: 500;
}
.gift-prices__table tbody td:nth-child(2) {
  font-weight: 700;
  font-size: 16px;
  color: var(--ink);
}
.gift-prices__popular > td {
  background: var(--red-dim) !important;
}
.gift-prices__popular > td:first-child {
  border-left: 3px solid var(--red);
  padding-left: 21px;
  color: var(--ink);
  font-weight: 700;
}
.gift-prices__badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--red);
  background: rgba(255,0,0,.12);
  border-radius: 4px;
  padding: 2px 6px;
  vertical-align: middle;
  line-height: 1.5;
}
.gift-prices__note {
  padding: 14px 24px;
  font-size: 13px;
  color: var(--muted);
  border-top: 1px solid var(--border);
}

@media (max-width: 680px) {
  .gift-prices__table {
    table-layout: auto;
    min-width: 560px;
  }
}

/* ─── ШАГИ ─── */
.dsc-steps {
  padding: 0 0 40px;
}

.dsc-steps__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--ink);
}

.dsc-steps__flow {
  display: flex;
  align-items: stretch;
}

.dsc-steps__arr {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  color: var(--muted);
}

.dsc-step {
  flex: 1;
  background: var(--white);
  border-radius: var(--r-lg);
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.dsc-step__icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  margin-bottom: 10px;
  flex-shrink: 0;
}

.dsc-step__title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
  margin-bottom: 5px;
}

.dsc-step__text {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.55;
}

/* ─── STATS BAR ─── */
.gift-bar { padding: 0 0 40px; }
.gift-bar__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--white);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.gift-bar__item {
  padding: 24px 28px;
  text-align: center;
  border-top: 3px solid var(--red);
  position: relative;
}
.gift-bar__item:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0; top: 20%; bottom: 20%;
  width: 1px;
  background: var(--border);
}
.gift-bar__val {
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -.02em;
  margin-bottom: 4px;
}
.gift-bar__lbl { font-size: 13px; color: var(--muted); }

/* ─── НЕ КОНВЕРТ — ПРОДУКТ ─── */
.gift-product { padding: 0 0 40px; }
.gift-product__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
}
.gift-product__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--ink);
}
.gift-product__sub {
  font-size: 16px;
  color: var(--muted);
  margin-bottom: 20px;
  line-height: 1.5;
}

.gift-qcards { display: flex; flex-direction: column; gap: 12px; }
.gift-qcard { border-radius: var(--r-md); padding: 22px 24px; }
.gift-qcard--light { background: var(--white); border: 1px solid var(--border); }
.gift-qcard__text { font-size: 16px; font-weight: 600; line-height: 1.5; }
.gift-qcard--light em { font-style: normal; color: var(--red); font-weight: 700; }
.gift-product__img-wrap { border-radius: var(--r-lg); overflow: hidden; }
.gift-product__img { width: 100%; display: block; object-fit: cover; }

/* ─── ДЕНЬГИ ─── */
.gift-money { padding: 0 0 16px; }
.gift-money__cta { text-align: center; padding: 0 0 40px; }
.gift-money__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--ink);
}
.gift-mcards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.gift-mcard { background: var(--white); border-radius: var(--r-lg); padding: 28px 24px; }
.gift-mcard__num {
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 800;
  color: var(--red);
  line-height: 1;
  letter-spacing: -1px;
  margin-bottom: 10px;
}
.gift-mcard__title { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 6px; line-height: 1.3; }
.gift-mcard__text { font-size: 14px; color: var(--muted); line-height: 1.6; }

/* ─── ВИДЕО ─── */
.gift-video { padding: 0 0 40px; }
.gift-video__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--ink);
}
.gift-video__wrap {
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--ink);
  box-shadow: var(--shadow-md);
}
.gift-video__wrap video { width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; }

/* ─── ГАЛЕРЕЯ ─── */
.gift-gallery-sec { padding: 0 0 40px; }
.gift-gallery__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--ink);
}
.gift-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.gift-gallery__item {
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--surface);
  cursor: zoom-in;
}
.gift-gallery__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s;
}
.gift-gallery__item:hover img { transform: scale(1.04); }

/* Lightbox */
.gift-lb {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(0,0,0,.9);
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.gift-lb.open { display: flex; }
.gift-lb__img { max-width: 100%; max-height: 90vh; border-radius: var(--r-md); object-fit: contain; }
.gift-lb__close,
.gift-lb__prev,
.gift-lb__next {
  position: absolute;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; border: none;
  transition: background .15s;
}
.gift-lb__close:hover,
.gift-lb__prev:hover,
.gift-lb__next:hover { background: rgba(255,255,255,.28); }
.gift-lb__close { top: 16px; right: 16px; }
.gift-lb__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.gift-lb__next { right: 12px; top: 50%; transform: translateY(-50%); }

/* ─── ЦЕНА ─── */
.gift-price { padding: 0 0 40px; }
.gift-price__card {
  background: var(--red);
  border-radius: var(--r-lg);
  padding: 40px 48px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 40px;
  align-items: center;
  color: var(--white);
}
.gift-price__title { font-size: clamp(20px, 2.4vw, 28px); font-weight: 800; line-height: 1.2; margin-bottom: 6px; }
.gift-price__sub { font-size: 14px; opacity: .8; }
.gift-price__center { text-align: center; }
.gift-price__from { font-size: 14px; opacity: .8; margin-bottom: 2px; }
.gift-price__val { font-size: clamp(48px, 5vw, 72px); font-weight: 800; line-height: 1; letter-spacing: -2px; }
.gift-price__unit { font-size: 13px; opacity: .8; margin-top: 4px; }
.gift-price__right { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.gift-price__btn { background: var(--white); color: var(--red); }
.gift-price__btn:hover { background: #f5f5f5; }
.gift-price__note { font-size: 12px; opacity: .75; text-align: right; line-height: 1.4; }

/* ─── FAQ ─── */
.gift-faq-sec { padding: 0 0 40px; }
.gift-faq__title {
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--ink);
}
.gift-faq { display: flex; flex-direction: column; gap: 8px; }
.gift-faq-item { background: var(--white); border-radius: var(--r-md); overflow: hidden; }
.gift-faq-q {
  width: 100%;
  padding: 18px 20px;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  font-family: inherit;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.gift-faq-q__icon { flex-shrink: 0; color: var(--muted); transition: transform .2s; }
.gift-faq-item.open .gift-faq-q__icon { transform: rotate(180deg); color: var(--red); }
.gift-faq-a {
  overflow: hidden;
  max-height: 0;
  padding: 0 20px;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.65;
  transition: max-height .25s ease, padding .25s ease;
}
.gift-faq-item.open .gift-faq-a {
  max-height: 200px;
  padding: 14px 20px 18px;
  border-top: 1px solid var(--border);
}

/* ─── МЕНЕДЖЕР ─── */
.gift-manager-sec { padding: 0 0 40px; }
.gift-manager {
  background: var(--white);
  border-radius: var(--r-lg);
  padding: 32px 40px;
  display: flex;
  align-items: center;
  gap: 28px;
}
.gift-manager__photo {
  width: 80px; height: 80px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 3px solid var(--border);
}
.gift-manager__info { flex: 1; }
.gift-manager__name { font-size: 18px; font-weight: 800; color: var(--ink); margin-bottom: 2px; }
.gift-manager__role { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.gift-manager__text { font-size: 14px; color: var(--muted); line-height: 1.5; }

/* ─── АДАПТИВ ─── */
@media (max-width: 900px) {
  .gift-product__inner {
    grid-template-columns: 1fr;
  }
  .gift-product__img-wrap {
    max-width: 400px;
    margin: 0 auto;
  }

  .gift-mcards {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .gift-mcard {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 24px;
  }
  .gift-mcard__num {
    font-size: 36px;
    flex-shrink: 0;
    min-width: 80px;
    margin-bottom: 0;
  }

  .gift-price__card {
    grid-template-columns: 1fr;
    gap: 24px;
    text-align: center;
    padding: 32px 28px;
  }
  .gift-price__right { align-items: center; }
  .gift-price__note { text-align: center; }

  .gift-manager {
    flex-direction: column;
    text-align: center;
    padding: 28px 24px;
    gap: 16px;
  }
  .gift-manager__info { text-align: center; }

  .gift-hero__inner {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .hero__content {
    padding: 40px 24px 32px;
  }

  .gift-hero__slider {
    height: 280px;
    border-radius: 0 0 var(--r-lg) var(--r-lg);
  }

  .gift-stats__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .gift-stat {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 24px;
  }

  .gift-stat__num {
    font-size: 40px;
    flex-shrink: 0;
    margin-bottom: 0;
    min-width: 90px;
  }

  .gift-pack__card {
    padding: 28px 24px 32px;
  }

}

@media (max-width: 860px) {
  .dsc-steps__flow {
    flex-direction: column;
    gap: 0;
  }

  .dsc-steps__arr {
    align-self: center;
    width: auto;
    padding: 4px 0;
    transform: rotate(90deg);
  }

}

@media (max-width: 680px) {
  .gift-why__grid {
    grid-template-columns: 1fr;
  }

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

  .gift-bar__grid {
    grid-template-columns: 1fr;
  }
  .gift-bar__item::after { display: none; }
  .gift-bar__item {
    border-top-width: 0;
    border-left: 3px solid var(--red);
    display: flex;
    align-items: center;
    gap: 12px;
    text-align: left;
    padding: 14px 20px;
  }
  .gift-bar__val { font-size: 18px; margin-bottom: 0; }
}

@media (max-width: 560px) {
  .hero__btns {
    flex-direction: column;
  }

  .hero__btns .btn {
    width: 100%;
    justify-content: center;
  }

  .gift-pack__card {
    padding: 24px 16px 28px;
  }

  .pack-gal__btn { display: none; }

  .pack-gal__item {
    flex: 0 0 200px;
    height: 160px;
  }

  .gift-price__card { padding: 28px 20px; }
  .gift-manager { padding: 24px 16px; }
}

/* ─── ФОКУС ─── */
.gift-faq-q:focus-visible,
.gift-hero__dot:focus-visible,
.gift-lb__close:focus-visible,
.gift-lb__prev:focus-visible,
.gift-lb__next:focus-visible,
.gift-related__item:focus-visible,
.gift-gallery__item:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

/* ─── СМЕЖНЫЕ УСЛУГИ ─── */
.gift-related { padding: 0 0 40px; }
.gift-related__title { font-size: clamp(20px, 2.2vw, 26px); font-weight: 700; margin-bottom: 20px; }
.gift-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap);
}
.gift-related__item {
  display: block;
  padding: 24px 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  text-decoration: none;
  color: var(--ink);
  transition: border-color .18s, box-shadow .18s;
}
.gift-related__item:hover {
  border-color: var(--red);
  box-shadow: var(--shadow-sm);
}
.gift-related__name { font-weight: 600; font-size: 16px; margin-bottom: 6px; }
.gift-related__desc { font-size: 14px; color: var(--muted); }

@media (max-width: 560px) {
  .gift-related__grid { grid-template-columns: 1fr; }
}
