/* ==========================================================================
   Giving Back (1.7.0) — Figma 3285:3 (desktop 1440) / 3292:431 (mobile 390).
   Секції giving_back_intro (.gb-hero) і giving_back_partner (.gb-partner).
   Desktop: крихти y=187, H1 y=305, лід y=423; фігура 458×686 по центру (y=226);
   логотипи y=659 і тексти y=744 у колонках x=100 / x=941. Партнер: фото 720 + бежева панель 720×817.
   ========================================================================== */

/* ---------- Intro ---------- */

.gb-hero {
  position: relative;
  max-width: var(--frame);
  min-height: 840px;
  margin: 0 auto 125px;
}

.gb-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 386fr) minmax(0, 455fr) minmax(0, 399fr);
  grid-template-rows: minmax(472px, auto) auto;
  align-items: start;
  padding-top: 115px;
}

.gb-hero__head { grid-column: 1 / 3; grid-row: 1; }
.gb-hero__head,
.gb-hero__text,
.gb-hero__side { position: relative; z-index: 1; } /* текст над фігурою (JPEG з білим фоном) */

.gb-hero__title {
  max-width: 535px;
  margin-top: 104px;
  font-weight: var(--fw-light);
  font-size: min(45px, 3.125vw);
  line-height: 0.97;
  text-transform: uppercase;
}

.gb-hero__lead {
  max-width: 469px;
  margin-top: 31px;
  font-weight: var(--fw-regular);
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0.07em;
}

.gb-hero__figure {
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 154px;
  width: 458px;
  height: 686px;
  transform: translateX(-50%);
}
.gb-hero__figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gb-hero__text {
  font-weight: var(--fw-light);
  font-size: 15px;
  line-height: 1.2;
  letter-spacing: 0.07em;
}
.gb-hero__text--left { grid-column: 1; grid-row: 2; max-width: 386px; margin-top: 85px; }

.gb-hero__side { grid-column: 3; grid-row: 2; max-width: 399px; }

.gb-hero__logos {
  display: flex;
  align-items: center;
  height: 49px;
  margin-bottom: 36px;
}
.gb-hero__logos li + li { margin-left: -30px; } /* у макеті рамки логотипів перекриваються на 30 px (прозорі поля PNG) */
.gb-hero__logos img { display: block; width: auto; height: 49px; }
.gb-hero__logos a { display: block; transition: opacity var(--t-fast) var(--ease); }
.gb-hero__logos a:hover { opacity: 0.6; }

/* ---------- Partner ---------- */

.gb-partner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: var(--frame);
  min-height: 817px;
  margin: 0 auto;
}

.gb-partner__media {
  position: relative;
  overflow: hidden;
  background: #2b2925;
}
.gb-partner__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gb-partner__logo {
  position: absolute;
  top: 34px;
  left: var(--gutter);
  width: auto;
  height: 56px;
  filter: brightness(0) invert(1); /* логотип на фото — білий */
}
.gb-partner--photo-right .gb-partner__media { order: 2; }
.gb-partner--photo-right .gb-partner__logo { top: 30px; left: auto; right: 34px; }

.gb-partner__panel {
  padding: 85px var(--gutter) 60px 70px;
  background: var(--c-stone);
}
.gb-partner--photo-right .gb-partner__panel { padding: 85px 70px 60px var(--gutter); }

.gb-partner__title { max-width: 550px; }

.gb-partner__body,
.gb-partner__items,
.gb-partner__facts p {
  font-weight: var(--fw-light);
  font-size: 15px;
  line-height: 19px;
  letter-spacing: 0.04em;
}
.gb-partner__body { max-width: 555px; }
.gb-partner__body p + p { margin-top: 19px; }
.gb-partner__body p:has(+ ul) { max-width: 473px; }
.gb-partner__body ul { margin-top: 19px; opacity: 0.9; }
.gb-partner__body li { position: relative; padding-left: 16px; }
.gb-partner__body li::before { content: "·"; position: absolute; left: 0; top: 0; }
.gb-partner__body li + li { margin-top: 6px; }
.gb-partner__body a { text-decoration: underline; text-underline-offset: 0.15em; }

.gb-partner__intro { margin-top: 61px; }

.gb-partner__mid { max-width: 550px; margin-top: 30px; }
.gb-partner__rule { height: 0; margin: 0; border: 0; border-top: 1px solid var(--c-line-stone); }
.gb-partner__subtitle {
  margin-top: 30px;
  font-weight: var(--fw-regular);
  font-size: 18px;
  line-height: 19px;
  letter-spacing: 0.04em;
}

.gb-partner__items { margin-top: 19px; max-width: 475px; }
.gb-partner__item {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: start;
}
.gb-partner__item + .gb-partner__item { margin-top: 10px; }
.gb-partner__icon { display: flex; height: 38px; padding-top: 4px; }
.gb-partner__icon img { display: block; width: auto; height: auto; max-width: 25px; max-height: 25px; }

.gb-partner__text { margin-top: 30px; }
.gb-partner__items + .gb-partner__text { margin-top: 43px; }

.gb-partner__facts {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  max-width: 550px;
  margin-top: 60px;
}
.gb-partner__fact-top,
.gb-partner__num { display: block; height: 54px; } /* однакова висота верхнього рядка — підписи на одній лінії */
.gb-partner__fact-top { padding-top: 4px; }
.gb-partner__pin { display: block; width: 31px; height: 31px; margin: 0 0 0 -6px; }
.gb-partner__num {
  font-weight: var(--fw-light);
  font-size: 40px;
  line-height: 1;
  letter-spacing: 0.07em;
}
.gb-partner__fact p { max-width: 284px; }
.gb-partner__fact:first-child p { max-width: 206px; }

@media (max-width: 1240px) {
  .gb-hero__figure { width: 32vw; height: auto; aspect-ratio: 458 / 686; }
  .gb-partner__panel,
  .gb-partner--photo-right .gb-partner__panel { padding-inline: 50px var(--gutter); }
  .gb-partner--photo-right .gb-partner__panel { padding-inline: var(--gutter) 50px; }
}

/* ---------- Tablet / mobile: усе стовпчиком (mobile 3292:431) ---------- */
@media (max-width: 1023px) {
  .gb-hero { min-height: 0; margin-bottom: 57px; }
  .gb-hero__grid { display: flex; flex-direction: column; padding-top: 38px; }
  .gb-hero__title { max-width: 520px; margin-top: 30px; font-size: 35px; line-height: 0.9; }
  .gb-hero__lead { max-width: 341px; margin-right: -11px; margin-top: 20px; font-size: 13px; line-height: 1.23; letter-spacing: 0.04em; }
  .gb-hero__figure {
    position: relative;
    left: auto;
    top: auto;
    width: 352px;
    max-width: calc(100% + 22px); /* у макеті фігура на 11 px ширша за колонку */
    height: auto;
    aspect-ratio: 352 / 528;
    margin: 30px auto 0;
    align-self: center;
    transform: none;
  }
  .gb-hero__figure::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -30px;
    width: 100vw;
    max-width: calc(100vw - 2 * var(--gutter));
    border-top: 1px solid var(--c-line);
    transform: translateX(-50%);
  }
  .gb-hero__text { font-size: 13px; letter-spacing: 0.04em; max-width: 330px; }
  .gb-hero__text--left { margin-top: 61px; }
  .gb-hero__side { max-width: none; margin-top: 16px; }
  .gb-hero__logos { display: none; }

  .gb-partner { display: flex; flex-direction: column; min-height: 0; }
  .gb-partner__panel,
  .gb-partner--photo-right .gb-partner__panel { order: -1; padding: 63px var(--gutter) 47px; }
  .gb-partner--photo-right .gb-partner__panel { padding-bottom: 60px; }
  .gb-partner__media { height: 462px; }
  .gb-partner__logo { top: 21px; left: var(--gutter); height: 43px; }
  .gb-partner--photo-right .gb-partner__logo { top: 17px; right: 24px; height: 38px; }
  .gb-partner__title { max-width: none; }
  .gb-partner__intro { margin-top: 31px; }
  .gb-partner__mid { display: flex; flex-direction: column-reverse; margin-top: 30px; }
  .gb-partner__subtitle { margin: 0 0 20px; }
}

@media (max-width: 767px) {
  .gb-hero__text { font-size: 13px; }
  .gb-partner__body,
  .gb-partner__items,
  .gb-partner__facts p { font-size: 13px; line-height: 1.2; letter-spacing: 0.04em; }
  .gb-partner__body p + p { margin-top: 1.2em; }
  .gb-partner__body ul { margin-top: 25px; }
  .gb-partner__body li { padding-left: 13px; }
  .gb-partner__body li + li { margin-top: 5px; }
  .gb-partner__subtitle { font-size: 15px; }
  .gb-partner__items { margin-top: 30px; }
  .gb-partner__item { grid-template-columns: 41px minmax(0, 1fr); }
  .gb-partner__item + .gb-partner__item { margin-top: 14px; }
  .gb-partner__icon { height: auto; padding-top: 2px; }
  .gb-partner__icon img { max-width: 19px; max-height: 19px; }
  .gb-partner__items + .gb-partner__text { margin-top: 45px; }
  .gb-partner__facts { grid-template-columns: 175px minmax(0, 1fr); margin-top: 40px; }
  .gb-partner__fact-top,
  .gb-partner__num { height: 46px; }
  .gb-partner__fact-top { padding-top: 0; }
  .gb-partner__pin { width: 25px; height: 25px; margin: 0 0 0 -3px; }
  .gb-partner__num { font-size: 30px; }
  .gb-partner__fact p { max-width: 178px; }
  .gb-partner__fact:last-child p { max-width: 155px; }
}
