/* Játékok — az eredeti kétoszlopos megjelenés, pulzáló koronggal. */
.wedding-games {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(135deg, #eee7dc 0%, #f7f1e8 48%, #eae2d4 100%);
  padding-block: clamp(4.5rem, 7vw, 7.5rem);
}
.wedding-games::before {
  position: absolute;
  z-index: -1;
  top: -14rem;
  right: -16rem;
  width: min(58vw, 54rem);
  aspect-ratio: 1;
  content: "";
  background: url('assets/olive-shadow-top.png') center / contain no-repeat;
  opacity: .12;
  filter: grayscale(1) sepia(.3) blur(12px);
  transform: rotate(130deg);
  pointer-events: none;
}
.wedding-games__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(24rem, .82fr);
  align-items: center;
  gap: clamp(3rem, 6vw, 7rem);
}
.wedding-games__copy { max-width: 47rem; }
.wedding-games__rule {
  display: block;
  width: 4.75rem;
  height: 2px;
  margin-bottom: 1.75rem;
  background: var(--pb-gold);
}
.wedding-games h2 {
  font-size: clamp(2.9rem, 4.45vw, 4rem);
  line-height: .99;
  letter-spacing: -.035em;
}
.wedding-games h2 span { color: var(--pb-gold); }
.wedding-games__copy > p {
  margin-top: clamp(1.25rem, 1.8vw, 1.6rem);
  font-size: clamp(1rem, 1.22vw, 1.18rem);
  line-height: 1.52;
}
.wedding-games__copy > .wedding-games__pivot {
  margin-block: clamp(1.4rem, 2.3vw, 2rem);
  color: #8e693e;
  font: 600 clamp(1.7rem, 2.25vw, 2.4rem)/1.14 var(--pb-font-heading);
}
.wedding-games__callout {
  margin-top: clamp(2rem, 3.5vw, 3rem);
  padding: 1.5rem 2rem;
  border-left: 3px solid var(--pb-gold-on-dark);
  border-radius: .75rem;
  color: var(--pb-ivory-light);
  background: linear-gradient(110deg, #303a2b, #1f291f);
  box-shadow: 0 1rem 2rem rgba(34, 39, 28, .15);
  font: 500 clamp(1.5rem, 1.95vw, 2rem)/1.14 var(--pb-font-heading);
}
.wedding-games__callout p + p { margin-top: .4rem; color: var(--pb-gold-on-dark); }
.wedding-games__callout strong { font-weight: 600; }
.wedding-games__media {
  position: relative;
  display: grid;
  min-height: clamp(36rem, 51vw, 47rem);
  place-items: center;
}
.wedding-games__halo {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(clamp(26rem, 33vw, 36rem), calc(100vw - 3rem));
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 43% 36%, #f3eadb 0%, #ead9bc 61%, #ddc7a5 100%);
  transform: translate(-50%, -50%);
  animation: wedding-games-halo 5.5s ease-in-out infinite;
}
.wedding-games__phone {
  position: relative;
  z-index: 1;
  width: min(100%, 24rem);
  aspect-ratio: 9 / 16;
  padding: .55rem;
  border: 4px solid #2e2e2b;
  border-radius: 2.25rem;
  background: #171715;
  box-shadow: 0 1.75rem 2.4rem rgba(52, 42, 26, .25), inset 0 0 0 2px rgba(255, 255, 255, .33);
}
.wedding-games--enhanced .wedding-games__phone {
  opacity: var(--games-phone-opacity, 0);
  transform: translate3d(var(--games-phone-offset, 15rem), 0, 0);
  will-change: transform, opacity;
}
.wedding-games__phone::before {
  position: absolute;
  z-index: 2;
  top: .45rem;
  left: 50%;
  width: 34%;
  height: .35rem;
  border-radius: 99px;
  content: "";
  background: #1a1a18;
  transform: translateX(-50%);
  pointer-events: none;
}
.wedding-games__phone iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 1.62rem;
  background: #1a1a18;
}
@keyframes wedding-games-halo {
  0%, 100% { transform: translate(-50%, -50%) scale(.94); filter: brightness(.78); opacity: .78; }
  50% { transform: translate(-50%, -50%) scale(1.06); filter: brightness(1.12); opacity: 1; }
}
@media (max-width: 991px) {
  .wedding-games__grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .wedding-games__copy { max-width: 48rem; }
  .wedding-games__media { min-height: 36rem; }
  .wedding-games__phone { width: min(100%, 22rem); }
}
@media (max-width: 575px) {
  .wedding-games { padding-block: 4rem; }
  .wedding-games h2 { font-size: clamp(1.5rem, 7.4vw, 2.55rem); }
  .wedding-games__copy > p { font-size: 1rem; }
  .wedding-games__copy > .wedding-games__pivot { font-size: 1.75rem; }
  .wedding-games__callout { padding: 1.35rem 1.25rem; font-size: 1.48rem; }
  .wedding-games__media { min-height: 31rem; }
  .wedding-games__phone { width: min(100%, 17.5rem); border-radius: 1.8rem; }
  .wedding-games__phone iframe { border-radius: 1.25rem; }
  .wedding-games__halo { width: min(calc(100vw - 2.5rem), 24rem); }
}
@media (prefers-reduced-motion: reduce) {
  .wedding-games--enhanced .wedding-games__phone { opacity: 1; transform: none; will-change: auto; }
  .wedding-games__halo { animation: none; }
}
