.info-card { position: relative; }
.card-discover { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 44px; margin-block-start: 12px; padding: 9px 0; border: 0; background: transparent; color: var(--terracotta-dark); font: 600 .87rem/1.6 var(--font-body); text-align: start; cursor: pointer; }
.card-discover::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.card-discover .icon { width: 18px; height: 18px; flex: none; }
.info-card:has(.card-discover:focus-visible) { outline: 2px solid var(--terracotta-dark); outline-offset: 4px; }
.info-card .card-discover:focus-visible { outline: none; }
.info-card:hover .card-discover { text-decoration: underline; text-underline-offset: 4px; }
.program.info-card .program-details, .news-card.info-card .news-details { display: none; }
.program.info-card .program__link { position: relative; z-index: 2; margin-block-start: 0; order: 3; min-height: 48px; border-block-start: 1px solid var(--line); font-size: .82rem; font-weight: 500; }
.program.info-card .card-discover { margin-block-start: auto; padding-block: 18px 12px; }
.club.info-card { padding-inline-end: 48px; }
.club .card-discover { position: static; width: 24px; margin: 0; padding: 0; min-height: 24px; }
.club .card-discover > span, .fac-gallery__item .card-discover > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.club .card-discover > .icon { position: absolute; inset-inline-end: 14px; top: calc(50% - 9px); width: 18px; height: 18px; }
.fac-gallery__item { cursor: pointer; }
.fac-gallery__item .card-discover { position: absolute; inset: 0; background: none; width: 100%; height: 100%; margin: 0; min-height: 0; padding: 0; }
.fac-gallery__item .card-discover > .icon { position: absolute; inset-inline-end: 14px; inset-block-start: 14px; background: var(--paper); padding: 6px; box-sizing: content-box; border-radius: 50%; box-shadow: 0 2px 8px #2f100f15; }
.step.info-card .card-discover { grid-column: 2; margin: 0; padding: 6px 0 0; min-height: 36px; }
.info-open { overflow: hidden; }
.school-info { width: min(800px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 40px); padding: 0; margin: auto; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); color: var(--ink); box-shadow: 0 24px 90px #2f100f38; overflow: hidden; }
.school-info[open] { display: flex; flex-direction: column; }
.school-info::backdrop { background: #231b1860; backdrop-filter: blur(3px); }
.school-info [hidden] { display: none !important; }
.info-top { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 22px; border-block-end: 1px solid var(--line); }
.info-category { color: var(--terracotta-dark); font-size: .8rem; font-weight: 600; }
.info-close { display: grid; place-items: center; width: 40px; height: 40px; padding: 8px; border: 0; border-radius: 8px; background: none; color: var(--ink); cursor: pointer; }
.info-close:hover { background: var(--cream); }
.info-close .icon { width: 20px; height: 20px; }
.info-scroll { overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding: 24px; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 28px; }
.info-image { position: relative; margin: 0; align-self: start; }
.info-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 12px; }
.info-image figcaption { margin-block-start: 8px; color: var(--muted); font-size: .72rem; }
.info-copy { min-width: 0; }
.info-scroll:has(.info-image[hidden]) { grid-template-columns: minmax(0, 1fr); }
.info-scroll:has(.info-image[hidden]) .info-copy { max-width: 65ch; }
.info-copy h2 { font: 600 1.7rem/1.55 var(--font-body); margin-block: 0 16px; color: var(--ink); }
.info-lead { font-size: 1rem; line-height: 1.8; }
.info-description { font-size: .92rem; line-height: 1.8; color: var(--muted); margin-block-start: 14px; }
.info-points { margin-block-start: 22px; padding-block-start: 20px; border-block-start: 1px solid var(--line); }
.info-points h3 { font: 600 .92rem/1.6 var(--font-body); margin-block-end: 12px; }
.info-points ul { display: grid; gap: 9px; }
.info-points li { display: flex; gap: 10px; font-size: .9rem; line-height: 1.7; }
.info-points li::before { content: ""; width: 5px; height: 5px; flex: none; margin-block-start: .75em; border-radius: 50%; background: var(--terracotta); }
.info-note { margin-block: 22px 0; padding: 14px; border-radius: 8px; background: var(--cream); color: var(--muted); font-size: .8rem; line-height: 1.8; }
.info-footer { padding: 14px 24px; border-block-start: 1px solid var(--line); background: var(--paper); flex: none; }
.info-footer .btn { min-height: 46px; font-size: .9rem; white-space: normal; }
@media (max-width: 767px) {
  .school-info { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 16px; }
  .info-scroll { grid-template-columns: minmax(0, 1fr); padding: 18px; gap: 20px; }
  .info-image img { aspect-ratio: 2 / 1; }
  .info-copy h2 { font-size: 1.4rem; margin-block-end: 12px; }
  .info-lead { font-size: .94rem; }
  .info-top { padding: 8px 16px; }
  .info-footer { padding: 12px 18px max(12px, env(safe-area-inset-bottom)); }
  .info-footer .btn { width: 100%; }
  .club.info-card { padding-inline-end: 36px; }
  .club .card-discover > .icon { inset-inline-end: 10px; width: 15px; height: 15px; }
  .fac-gallery__item .card-discover { min-height: 0; padding: 0; }
  .fac-gallery__item figcaption { padding-inline-end: 20px; }
  .fac-gallery__item .card-discover > .icon { inset-block-start: auto; bottom: 0; inset-inline-end: 0; padding: 0; box-shadow: none; background: none; width: 16px; height: 16px; }
  .step.info-card { padding-inline-end: 30px; }
}
