.partners-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #07152b;
  background:
    radial-gradient(ellipse at 51% 83%, rgba(242, 174, 184, 0.2), transparent 51%),
    linear-gradient(135deg, #f4f5f6, #f1f2f3 60%, #f7f5f5);
}

.partners-layout {
  width: min(89.5%, 1360px);
  margin-inline: auto;
  padding: clamp(32px, 2.6vw, 48px) 0 clamp(16px, 1.3vw, 24px);
}

.partners-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 31.5%;
  align-items: end;
  column-gap: 5.2%;
}
.partners-copy { min-width: 0; }
.section-kicker {
  margin: 0 0 clamp(8px, 0.6vw, 11px);
  color: #15243f;
  font-size: clamp(12px, 0.85vw, 15px);
  font-weight: 600;
  letter-spacing: 0.3em;
  line-height: 1.2;
  text-transform: uppercase;
}
.section-kicker span { padding-inline: 9px; color: #ed1535; }
.partners-copy h2 {
  width: max-content;
  max-width: 100%;
  margin: 0;
  font-size: clamp(44px, 4.5vw, 80px);
  font-weight: 850;
  letter-spacing: -0.065em;
  line-height: 0.94;
}
.partners-copy h2 > span { display: block; white-space: nowrap; }
.partners-title-accent { color: #e90e32; }

.partners-invitation { padding-bottom: 3px; }
.partners-invitation p {
  margin: 0 0 clamp(14px, 1vw, 18px);
  color: #424d5f;
  font-size: clamp(16px, 1.15vw, 20px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.35;
}
.partners-section .partners-button {
  position: relative;
  isolation: isolate;
  display: flex;
  width: 100%;
  min-height: clamp(52px, 3.2vw, 60px);
  justify-content: center;
  gap: clamp(12px, 1.4vw, 24px);
  padding: 11px 18px;
  border: 2px solid #fff1f3;
  border-radius: 999px;
  background: linear-gradient(175deg, #ff7a8b 0%, #f21b3c 19%, #d80a29 65%, #fa2947 100%);
  box-shadow: 0 0 0 1px #ea1536, 0 17px 25px rgba(198, 16, 47, 0.28), inset 0 3px 2px #ffe4e9, inset 0 -4px 7px rgba(131, 0, 24, 0.22);
  color: #fff;
  font-size: clamp(15px, 1.05vw, 19px);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1.2;
  text-align: center;
}
.partners-button::before {
  position: absolute;
  z-index: -1;
  inset: 5px 5px 43%;
  border-radius: 999px 999px 25% 25%;
  background: linear-gradient(rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0));
  content: "";
  pointer-events: none;
}
.partners-button svg { width: 26px; height: 22px; flex: 0 0 26px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.partners-section .partners-button:hover { background: linear-gradient(175deg, #ff8797, #e71335 30%, #cb0928 75%, #f72a47); }

.partners-visual { margin-top: clamp(24px, 1.8vw, 32px); }
.partners-visual h3 {
  position: relative;
  z-index: 3;
  margin: 0;
  font-size: clamp(18px, 1.25vw, 22px);
  font-weight: 750;
  letter-spacing: -0.055em;
  line-height: 1.3;
}
.partners-stage {
  position: relative;
  width: 104.5%;
  height: auto;
  aspect-ratio: 1421 / 350;
  margin-top: clamp(16px, 1.4vw, 26px);
  margin-left: -2.25%;
}
.partners-stage::after {
  position: absolute;
  z-index: -1;
  right: 3%;
  bottom: 4%;
  left: 3%;
  height: 10%;
  border-radius: 50%;
  background: rgba(63, 35, 50, 0.18);
  filter: blur(22px);
  content: "";
}
.partners-ribbon { position: absolute; z-index: 0; top: 7%; left: 50%; width: 100vw; height: 83%; overflow: visible; transform: translateX(-50%); }
.company-row {
  position: absolute;
  z-index: 2;
  right: 4%;
  bottom: 20%;
  left: 4%;
  display: grid;
  grid-template-columns: 25% 26% 25% 24%;
  align-items: end;
}
.company-card { position: relative; display: grid; min-width: 0; justify-items: center; align-items: end; margin: 0; }
.brand-object { position: relative; z-index: 2; display: block; width: 100%; height: auto; filter: drop-shadow(0 10px 7px rgba(71, 22, 45, 0.1)); }
.company-card::after {
  position: absolute;
  z-index: 0;
  top: 92%;
  left: 50%;
  width: var(--object-width, 100%);
  aspect-ratio: 1;
  background: var(--brand-art) center / contain no-repeat;
  mask-image: linear-gradient(to top, #000, transparent 23%);
  opacity: 0.22;
  transform: translateX(-50%) scaleY(-1);
  content: "";
  pointer-events: none;
}
.company-card--airbnb { --brand-art: url("assets/airbnb-glass-v2.webp"); --object-width: 92%; }
.company-card--disney { --brand-art: url("assets/disney-glass-v2.webp"); --object-width: 108%; }
.company-card--netflix { --brand-art: url("assets/netflix-glass-v2.webp"); --object-width: 104%; }
.company-card--totalplay { --brand-art: url("assets/totalplay-glass-v2.webp"); --object-width: 108%; }
.company-card--airbnb .brand-object { width: 92%; transform: translateY(-3%); }
.company-card--disney .brand-object { width: 108%; }
.company-card--netflix .brand-object { width: 104%; }
.company-card--totalplay .brand-object { width: 108%; transform: translateY(3%); }
.company-plinth {
  position: absolute;
  z-index: 1;
  right: 8%;
  bottom: -3%;
  left: 8%;
  height: 12%;
  border: 2px solid rgba(255, 255, 255, 0.95);
  border-radius: 50% / 30%;
  background: linear-gradient(180deg, #fff6f8 0%, rgba(255, 255, 255, 0.25) 18%, #fd9da9 24%, rgba(255, 255, 255, 0.88) 39%, rgba(242, 74, 101, 0.6) 64%, #fff1f5 83%, #ec1d44 94%, #ffdae2);
  box-shadow: 0 5px 8px rgba(216, 48, 77, 0.25), inset 8px 0 7px #fff, inset -8px 0 7px #fff;
}
.glass-platform {
  position: absolute;
  z-index: 1;
  top: 74%;
  right: 0;
  left: 0;
  height: 17%;
  border: 2px solid rgba(255, 255, 255, 0.95);
  border-radius: 12% / 39%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.3) 25%, rgba(208, 190, 200, 0.55) 36%, rgba(255, 255, 255, 0.72) 55%, #f7bcc6 64%, rgba(255, 255, 255, 0.7) 81%, #e82547 91%, #ffdce3 96%);
  box-shadow: 0 5px 0 rgba(243, 89, 112, 0.4), 0 12px 23px rgba(238, 57, 91, 0.24), inset 2px 3px 5px #fff, inset -2px -3px 4px #fff;
}
.glass-platform::before {
  position: absolute;
  inset: 3px 8px 22%;
  border: 2px solid #fff;
  border-radius: inherit;
  background: linear-gradient(100deg, rgba(252, 78, 112, 0.18), rgba(255, 255, 255, 0.52) 28%, rgba(122, 158, 205, 0.15) 52%, rgba(255, 255, 255, 0.7) 70%, rgba(255, 124, 147, 0.16));
  box-shadow: inset 0 -4px 6px rgba(238, 65, 102, 0.3);
  content: "";
}
.glass-platform-front {
  position: absolute;
  z-index: 4;
  top: 84%;
  right: 1%;
  left: 1%;
  height: 5%;
  border-top: 2px solid rgba(255, 255, 255, 0.9);
  border-bottom: 2px solid rgba(255, 241, 245, 0.95);
  border-radius: 0 0 8% 8% / 0 0 45% 45%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 249, 252, 0.8) 35%, rgba(236, 45, 84, 0.3) 65%, rgba(255, 255, 255, 0.65));
  pointer-events: none;
}

@media (max-width: 1100px) {
  .partners-layout { width: calc(100% - 64px); padding-top: 36px; }
  .partners-heading { grid-template-columns: 1fr; row-gap: 20px; }
  .partners-copy h2 { font-size: clamp(44px, 6.2vw, 68px); }
  .partners-invitation { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 30px; }
  .partners-invitation p { margin: 0; font-size: 18px; }
  .partners-section .partners-button { min-height: 56px; font-size: 16px; }
  .partners-visual { margin-top: 28px; }
  .partners-stage { height: auto; min-height: 0; aspect-ratio: auto; margin-top: 14px; padding-bottom: 26px; }
  .company-row { position: relative; inset: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; padding-inline: 6%; }
  .company-card { width: 100%; max-width: 240px; justify-self: center; }
  .company-card .brand-object { width: 100%; transform: none; }
  .company-card--airbnb .brand-object, .company-card--totalplay .brand-object { width: 94%; }
  .company-card--airbnb, .company-card--totalplay { --object-width: 94%; }
  .company-card::after { display: none; }
  .company-plinth { bottom: -2%; }
  .partners-ribbon { top: 15%; height: 70%; opacity: 0.6; }
  .glass-platform, .glass-platform-front { display: none; }
}

@media (max-width: 600px) {
  .partners-layout { width: calc(100% - 36px); padding: 28px 0 18px; }
  .section-kicker { margin-bottom: 15px; font-size: 11px; letter-spacing: 0.25em; }
  .section-kicker span { padding-inline: 6px; }
  .partners-copy h2 { width: auto; max-width: 100%; font-size: clamp(34px, 7.7vw, 44px); line-height: 0.99; }
  .partners-copy h2 > span { white-space: normal; }
  .partners-invitation { grid-template-columns: 1fr; gap: 18px; }
  .partners-invitation p { max-width: 390px; font-size: 16px; line-height: 1.4; }
  .partners-section .partners-button { width: min(100%, 350px); min-height: 52px; gap: 14px; padding-inline: 16px; font-size: 16px; }
  .partners-button svg { width: 26px; flex-basis: 26px; }
  .partners-visual { margin-top: 24px; }
  .partners-visual h3 { max-width: 100%; font-size: 19px; letter-spacing: -0.045em; }
  .partners-stage { width: 100%; margin: 12px 0 0; padding-bottom: 12px; }
  .company-row { gap: 16px 6px; padding-inline: 8px; }
  .company-plinth { border-width: 1px; }
  .partners-ribbon { left: 50%; width: 140%; opacity: 0.4; }
}
