.registration-qr {
  display: grid;
  grid-template-columns: 116px 1fr;
  align-items: center;
  gap: 20px;
  max-width: 520px;
  margin-top: 30px;
  padding: 18px;
  border: 1px solid #bdbdb7;
  background: #fff;
  color: #111;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.registration-qr:hover {
  transform: translateY(-2px);
  border-color: #777;
  box-shadow: 0 16px 40px rgba(0,0,0,.1);
}
.registration-qr img {
  display: block;
  width: 116px;
  height: 116px;
  object-fit: contain;
}
.registration-qr span { display: grid; gap: 6px; }
.registration-qr small {
  color: #777;
  font: 600 10px/1.4 Poppins, sans-serif;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.registration-qr strong { font: 500 16px/1.35 Poppins, sans-serif; }
.registration-qr em { color: #666; font: normal 400 12px/1.55 Montserrat, sans-serif; }

.registration-card {
  display: grid;
  grid-template-columns: minmax(220px, 320px) 1fr;
  align-items: center;
  gap: clamp(24px, 4vw, 52px);
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid #bdbdb7;
  background: #fff;
  color: #111;
  box-shadow: 0 24px 70px rgba(0,0,0,.1);
  transition: transform .2s ease, box-shadow .2s ease;
}
.registration-card:hover { transform: translateY(-3px); box-shadow: 0 30px 80px rgba(0,0,0,.14); }
.registration-card img { display: block; width: 100%; height: auto; object-fit: contain; }
.registration-card span { display: grid; gap: 10px; }
.registration-card small { color: #777; font: 600 10px/1.4 Poppins, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.registration-card strong { font: 500 clamp(24px, 3vw, 38px)/1.15 Poppins, sans-serif; letter-spacing: -.035em; }
.registration-card em { color: #666; font: normal 400 14px/1.65 Montserrat, sans-serif; }
.registration-card b { width: fit-content; margin-top: 14px; padding-bottom: 5px; border-bottom: 1px solid #777; font: 600 11px Poppins, sans-serif; letter-spacing: .06em; text-transform: uppercase; }

.official-booking-frame {
  padding: 10px;
  border: 1px solid #b7b7b1;
  background: #fff;
  box-shadow: 0 26px 70px rgba(0,0,0,.09);
}
.official-booking-frame iframe { display: block; min-height: 450px; }
.official-booking-frame > p { margin: 14px 12px 7px; color: #666; font-size: 12px; }
.official-booking-frame > p a { border-bottom: 1px solid #777; color: #111; font-weight: 600; }

@media (max-width: 520px) {
  .registration-qr { grid-template-columns: 92px 1fr; gap: 15px; padding: 14px; }
  .registration-qr img { width: 92px; height: 92px; }
  .registration-qr strong { font-size: 14px; }
  .registration-card { grid-template-columns: 1fr; padding: 20px; text-align: center; }
  .registration-card img { width: min(100%, 280px); margin: 0 auto; }
  .registration-card span { justify-items: center; }
  .official-booking-frame { padding: 4px; }
}
