/* AFC Asian Cup 2027 groups (groups.js) on the dark teal background with sand-coloured corner patterns */
.msgroups {
  --sand: rgb(214, 196, 158);
  width: 100%; padding: 96px 20px 104px; box-sizing: border-box; color: #fff;
  /* the sand corner patterns of the supplied background, cut out so they stay whole at any section height */
  background:
    url("/assets/opt/groups_corner_tl-6318cb00.webp") left top / min(19vw, 320px) auto no-repeat,
    url("/assets/opt/groups_corner_br-36a66c4f.webp") right bottom / min(19.8vw, 334px) auto no-repeat,
    rgb(12, 40, 49);
  font-family: "Inter", "Inter Placeholder", sans-serif;
}
.msgroups-inner { max-width: 1200px; margin: 0 auto; text-align: center; }
.msgroups-logo { display: block; height: 220px; width: auto; margin: 0 auto 28px; }
.msgroups-title {
  margin: 0; font-size: 40px; font-weight: 700; line-height: 1.1; letter-spacing: -1px; color: #fff;
}
.msgroups-dates { margin: 12px 0 48px; font-size: 17px; letter-spacing: -0.2px; color: var(--sand); }
.msgroups-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; text-align: left; }
.msgroups-card {
  padding: 22px 24px 14px; border-radius: 16px; position: relative;
  background: rgb(24, 51, 59);  /* same tone as 5% white over the teal, but opaque: the corner patterns stay behind */
  border: 1px solid rgba(214, 196, 158, 0.28);
}
.msgroups-name {
  margin: 0 0 10px; font-size: 15px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--sand);
}
.msgroups-card ul { margin: 0; padding: 0; list-style: none; }
.msgroups-card li {
  display: flex; align-items: center; gap: 12px; margin: 0 -10px; padding: 10px; border-radius: 10px;
  font-size: 17px; font-weight: 500; letter-spacing: -0.2px;
}
.msgroups-card li + li { border-top: 1px solid rgba(255, 255, 255, 0.07); }
.msgroups-card li img {
  flex: none; width: 32px; height: 24px; border-radius: 4px; object-fit: cover;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.15);
}
.msgroups-card li.is-home { background: rgba(214, 196, 158, 0.16); color: var(--sand); font-weight: 700; }
.msgroups-card li.is-home + li { border-top-color: transparent; }

/* reveal on scroll (groups.js adds .is-in): logo + title, then group A..F one after another, their teams in turn */
.msgroups-logo, .msgroups-title, .msgroups-dates {
  opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
}
.msgroups-inner.is-in .msgroups-logo, .msgroups-inner.is-in .msgroups-title, .msgroups-inner.is-in .msgroups-dates {
  opacity: 1; transform: none;
}
.msgroups-inner.is-in .msgroups-title { transition-delay: .12s; }
.msgroups-inner.is-in .msgroups-dates { transition-delay: .22s; }
.msgroups-card {
  opacity: 0; transform: translateY(40px) scale(.97);
  transition: opacity .6s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
  transition-delay: calc(var(--i) * 140ms);
}
.msgroups-card li {
  opacity: 0; transform: translateX(-12px);
  transition: opacity .45s ease, transform .45s ease;
  transition-delay: calc(var(--i) * 140ms + 250ms + var(--j) * 70ms);
}
.msgroups-grid.is-in .msgroups-card, .msgroups-grid.is-in .msgroups-card li { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .msgroups-logo, .msgroups-title, .msgroups-dates, .msgroups-card, .msgroups-card li {
    opacity: 1; transform: none; transition: none;
  }
}

/* clickable group cards -> schedule */
.msgroups-card { cursor: pointer; display: flex; flex-direction: column; }
.msgroups-card:hover { border-color: rgba(214, 196, 158, 0.6); background: rgb(28, 58, 67); }
.msgroups-card:focus-visible { outline: 2px solid var(--sand); outline-offset: 3px; }
.msgroups-open {
  align-self: flex-end; margin: 6px 0 4px; font-size: 13px; font-weight: 600; letter-spacing: .3px; color: var(--sand);
  opacity: .7; transition: opacity .2s ease, transform .2s ease;
}
.msgroups-card:hover .msgroups-open { opacity: 1; transform: translateX(3px); }

/* schedule card (modal) */
html.msgroups-lock, html.msgroups-lock body { overflow: hidden !important; }
.msgroups-modal {
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px;
  background: rgba(4, 16, 20, 0.6); backdrop-filter: blur(4px); opacity: 0; transition: opacity .25s ease;
  font-family: "Inter", "Inter Placeholder", sans-serif;
}
.msgroups-modal.is-open { opacity: 1; }
.msgroups-sched {
  --sand: rgb(214, 196, 158);
  width: min(620px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; overscroll-behavior: contain;
  padding: 26px 28px 20px; border-radius: 20px; background: rgb(12, 40, 49); color: #fff;
  border: 1px solid rgba(214, 196, 158, 0.35); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
  transform: translateY(16px) scale(.98); transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.msgroups-modal.is-open .msgroups-sched { transform: none; }
.msgroups-sched-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.msgroups-sched-head h3 {
  margin: 0; font-size: 18px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--sand);
}
.msgroups-sched-head span { font-size: 15px; color: rgba(255, 255, 255, 0.6); }
.msgroups-close {
  margin-left: auto; width: 36px; height: 36px; border: 0; border-radius: 50%; cursor: pointer;
  background: rgba(255, 255, 255, 0.08); color: #fff; font-size: 22px; line-height: 1;
}
.msgroups-close:hover { background: rgba(255, 255, 255, 0.16); }
.msgroups-matches { margin: 0; padding: 0; list-style: none; }
.msgroups-matches li { padding: 14px 12px; margin: 0 -12px; border-radius: 12px; }
.msgroups-matches li + li { border-top: 1px solid rgba(255, 255, 255, 0.07); }
.msgroups-matches li.is-home { background: rgba(214, 196, 158, 0.12); }
.msgroups-matches li.is-home + li { border-top-color: transparent; }
.msgroups-when { font-size: 13px; font-weight: 600; letter-spacing: .3px; color: var(--sand); margin-bottom: 8px; }
.msgroups-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 14px; }
.msgroups-team { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 500; min-width: 0; }
.msgroups-team span { overflow-wrap: anywhere; }
.msgroups-team.is-left { flex-direction: row-reverse; justify-content: flex-start; text-align: right; }  /* name, flag | time */
.msgroups-team.is-home { color: var(--sand); font-weight: 700; }
.msgroups-team img { flex: none; width: 30px; height: 22px; border-radius: 4px; object-fit: cover; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.15); }
.msgroups-time {
  padding: 6px 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.08);
  font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .3px;
}
.msgroups-where { margin-top: 8px; text-align: center; font-size: 12.5px; color: rgba(255, 255, 255, 0.5); }
.msgroups-note { margin: 14px 0 0; font-size: 13px; color: rgba(255, 255, 255, 0.55); text-align: center; }

@media (max-width: 1199.98px) {
  .msgroups-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 809.98px) {
  .msgroups { padding: 64px 16px 72px; background-size: 30vw auto, 31vw auto, auto; }
  .msgroups-logo { height: 160px; margin-bottom: 20px; }
  .msgroups-title { font-size: 30px; }
  .msgroups-dates { font-size: 15px; margin-bottom: 32px; }
  .msgroups-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .msgroups-card { padding: 16px 14px 8px; border-radius: 14px; }
  .msgroups-name { font-size: 13px; letter-spacing: 1.2px; margin-bottom: 4px; }
  .msgroups-card li { gap: 8px; margin: 0 -6px; padding: 8px 6px; font-size: 14px; }
  .msgroups-card li img { width: 24px; height: 18px; border-radius: 3px; }
  .msgroups-open { font-size: 12px; margin-top: 4px; }
  .msgroups-sched { padding: 20px 16px 14px; border-radius: 16px; }
  .msgroups-matches li { padding: 12px 8px; margin: 0 -8px; }
  .msgroups-row { gap: 8px; }
  .msgroups-team { font-size: 14px; gap: 7px; }
  .msgroups-team img { width: 24px; height: 18px; }
  .msgroups-time { font-size: 15px; padding: 5px 8px; }
}
