/* ─────────── 대회·행사 (목록 / 회차 목록 / 상세 / 참가 신청 / 신청 내역) ─────────── */

/* 진행 상태 필터 (.chip-list) */
.event-tab {
    gap: var(--gap-3);
    padding-bottom: var(--padding-6);
}

/* 목록 테이블 : 버튼 칸 */
.board-table .td-btn .btn-base {
    white-space: nowrap;
}
.board-table .td-empty-txt {
    font-size: var(--font-size-label-md);
    color: var(--color-font-neutral-subtler);
}

/* 회차 목록 상단 탭 (목록 / 갤러리)
 * - nav.event-tabs > a.event-tab-link(.is-active)
 */
.event-tabs {
    display: flex;
    align-items: center;
    gap: var(--gap-9);
    margin-bottom: var(--spacing-bottom-md);
    border-bottom: var(--border-1) solid var(--color-border-neutral-subtler);
}
.event-tab-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-family: var(--font-family-title);
    font-size: var(--font-size-heading-sm);
    color: var(--color-font-neutral-subtle);
    font-weight: var(--font-weight-medium);
    line-height: 140%;
    letter-spacing: -0.0297rem;
    padding: var(--padding-5) var(--padding-1);
    transition: var(--transition-fast);
}
.event-tab-link:hover {
    color: var(--color-font-neutral-strong);
}
.event-tab-link.is-active {
    color: var(--color-font-neutral-strong);
    font-weight: var(--font-weight-bold);
}
.event-tab-link.is-active::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(var(--border-1) * -1);
    height: var(--border-2);
    background: var(--color-element-neutral-strong);
}

/* 상세 : 제목 영역 (상태 + 제목 / 참가 신청 버튼) */
.event-head {
    flex-wrap: wrap;
}
.event-head .title-group {
    align-items: flex-start;
    gap: var(--gap-3);
}

/* 상세 : 행사 기간 · 접수 기간 · 장소 카드
 * - ul.event-summary > li.event-summary-item > .event-summary-label(.ico) + .event-summary-value
 */
.event-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--gap-7);
    padding: 0 0 var(--gap-12);
    list-style: none;
}
.event-summary-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--gap-5);
    padding: var(--card-padding-lg) var(--card-padding-xlg);
    border: var(--border-1) solid var(--color-border-neutral-subtle);
    border-radius: var(--card-radius-md);
    background: var(--color-surface-neutral-default);
}
.event-summary-label {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--gap-3);
    font-family: var(--font-family-body);
    font-size: var(--font-size-label-xlg);
    color: var(--color-font-theme-primary);
    font-style: normal;
    font-weight: var(--font-weight-medium);
    line-height: 100%;
    letter-spacing: -0.0313rem;
}
.event-summary-label .ico {
    font-size: var(--icon-6);
    color: var(--color-icon-theme-primary);
}
.event-summary-value {
    font-family: var(--font-family-body);
    font-size: var(--font-size-body-lg);
    color: var(--color-font-neutral-default);
    font-style: normal;
    font-weight: var(--font-weight-regular);
    line-height: 140%;
    letter-spacing: -0.0297rem;
    word-break: keep-all;
}

/* 상세 : 섹션 (행사 정보 / 첨부 파일) */
.event-section + .event-section {
    padding-top: var(--gap-12);
}
.event-section-tit {
    font-family: var(--font-family-title);
    font-size: var(--font-size-display-sm);
    color: var(--color-font-neutral-strong);
    font-style: normal;
    font-weight: var(--font-weight-bold);
    line-height: 130%;
    letter-spacing: -0.0406rem;
    padding-bottom: var(--spacing-bottom-md);
}
.event-box {
    display: flex;
    flex-direction: column;
    gap: var(--gap-5);
    padding: var(--card-padding-lg) var(--card-padding-xlg);
    border-radius: var(--card-radius-lg);
    background: var(--color-surface-neutral-gray);
}
.event-box-tit {
    font-family: var(--font-family-title);
    font-size: var(--font-size-heading-md);
    color: var(--color-font-neutral-strong);
    font-style: normal;
    font-weight: var(--font-weight-medium);
    line-height: 140%;
    letter-spacing: -0.0375rem;
    word-break: keep-all;
}
.event-box-body {
    display: flex;
    flex-direction: column;
    gap: var(--gap-3);
    font-family: var(--font-family-body);
    font-size: var(--font-size-body-lg);
    color: var(--color-font-neutral-default);
    font-style: normal;
    font-weight: var(--font-weight-regular);
    line-height: 140%;
    letter-spacing: -0.0297rem;
    word-break: keep-all;
}

/* 첨부 파일 카드 */
.event-file-list {
    display: flex;
    flex-direction: column;
    gap: var(--gap-4);
    padding: 0;
    list-style: none;
}
.event-file {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}
.event-file-info {
    display: flex;
    flex-direction: column;
    gap: var(--gap-4);
    min-width: 0;
}
.event-file-name {
    font-family: var(--font-family-title);
    font-size: var(--font-size-heading-md);
    color: var(--color-font-neutral-strong);
    font-style: normal;
    font-weight: var(--font-weight-medium);
    line-height: 140%;
    letter-spacing: -0.0375rem;
    word-break: break-all;
}
.event-file-desc {
    font-family: var(--font-family-body);
    font-size: var(--font-size-body-lg);
    color: var(--color-font-neutral-default);
    font-style: normal;
    font-weight: var(--font-weight-regular);
    line-height: 140%;
    letter-spacing: -0.0297rem;
    word-break: keep-all;
}
.event-file .btn-base {
    flex-shrink: 0;
}

/* ─────────── 참가 신청서 ─────────── */

/* 그룹 구성원
 * - .member-list[data-member-list] > .member-row(.is-leader) > .member-tag + .member-fields + .btn
 * - .member-util > .member-note + .member-count + 추가 버튼
 */
.member-list {
    display: flex;
    flex-direction: column;
    gap: var(--gap-3);
}
.member-row {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) 3.5rem;
    align-items: center;
    gap: var(--gap-3);
}
.member-tag {
    justify-self: start;
    white-space: nowrap;
}
.member-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--gap-3);
}
.member-row .member-remove {
    width: 100%;
    padding: 0;
}
.member-util {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--gap-3);
    padding-top: var(--gap-2);
}

.member-util-right {
    display: flex;
    align-items: center;
    gap: var(--gap-4);
}
.member-count {
    font-family: var(--font-family-body);
    font-size: var(--font-size-label-sm);
    color: var(--color-font-neutral-subtle);
    font-style: normal;
    font-weight: var(--font-weight-regular);
    line-height: 140%;
    letter-spacing: -0.0234rem;
}

/* 신청유형에 따라 숨김 (모바일에서 tr 이 flex 라 hidden 속성 보강) */
.registration-table-wrap .table tr[hidden] {
    display: none;
}

/* 접수 안내 (.info-box) / 선택형 약관 묶음 */
.apply-guide,
.apply-terms {
    margin-bottom: var(--spacing-bottom-md);
}

.agree-box .info-box {
    align-self: stretch;
}

/* 최종 확인 체크 목록 */
.agree-check-list {
    display: flex;
    flex-direction: column;
    gap: var(--gap-5);
    width: 100%;
    padding: var(--padding-7) var(--padding-8);
    border: var(--border-1) solid var(--color-border-neutral-subtle);
    border-radius: var(--radius-5);
}
/* 세로 flex 기본값(stretch)이면 label 이 한 줄 전체로 늘어나 빈 여백을 눌러도 체크됨 → 내용 너비만큼만 */
.agree-check-list {
    align-items: flex-start;
}
/* registration.css 의 .page-container .checkbox { width: 100% } 해제 */
.agree-check-list .checkbox,
.agree-check-list .checkbox-content {
    width: auto;
}

/* 개인정보 수집·이용 동의 표 */
.agree-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
}
.agree-table .th,
.agree-table .td {
    font-family: var(--font-family-body);
    text-align: left;
    letter-spacing: -0.0203rem;
    padding: var(--padding-4) var(--padding-5);
    border-bottom: var(--border-1) solid var(--color-border-neutral-subtler);
}
.agree-table .th {
    font-size: var(--font-size-label-sm);
    color: var(--color-font-neutral-subtle);
    font-weight: var(--font-weight-regular);
    line-height: 140%;
    background: var(--color-surface-neutral-gray);
}
.agree-table .td {
    font-size: var(--font-size-body-md);
    color: var(--color-font-neutral-default);
    line-height: 150%;
    word-break: keep-all;
}

/* ─────────── 갤러리 ───────────
 * - 목록 : ul.gallery-list > li > a.event-card (메인 대회·행사 카드 재사용)
 * - 상세 : .board-view-body > .gallery-figures > figure.gallery-figure > img
 */
.gallery-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--grid-gutter-md);
}
.gallery-list .event-title {
    font-size: var(--font-size-heading-sm);
}

.gallery-figures {
    display: flex;
    flex-direction: column;
    gap: var(--gap-5);
    margin-bottom: var(--gap-9);
}
/* 이미지 한 장당 최대 높이 45rem, 비율 유지 · 가운데 정렬 */
.gallery-figure img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 45rem;
    margin: 0 auto;
    border-radius: var(--radius-4);
}

/* 태블릿 */
@media (max-width: 1023px) {
    .gallery-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .event-summary {
        grid-template-columns: minmax(0, 1fr);
    }
    .member-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* 모바일 */
@media (max-width: 767px) {
    .gallery-list {
        grid-template-columns: minmax(0, 1fr);
    }
    .event-head .btn-base {
        width: 100%;
        margin-top: var(--gap-5);
    }

    .event-summary-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .event-box {
        padding: var(--card-padding-sm);
    }
    .event-file {
        flex-direction: column;
        align-items: flex-start;
    }
    .event-file .btn-base {
        align-self: flex-end;
    }

    .member-row {
        grid-template-columns: minmax(0, 1fr) auto;
        padding-bottom: var(--gap-4);
        border-bottom: var(--border-1) dashed var(--color-border-neutral-subtler);
    }
    .member-row .member-remove {
        width: auto;
        grid-row: 1;
        grid-column: 2;
        padding: 0 var(--form-padding-sm);
    }
    .member-fields {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 1fr);
    }

    .agree-table thead {
        display: none;
    }
    .agree-table,
    .agree-table tbody,
    .agree-table tr {
        display: block;
    }
    /* td 한 칸 = 한 줄 : 왼쪽 data-label, 오른쪽 내용 */
    .agree-table .td {
        display: flex;
        align-items: baseline;
    }
    .agree-table .td:first-child {
        border-top: var(--border-1) solid var(--color-border-neutral-default);
    }
    .agree-table .td[data-label]::before {
        content: attr(data-label);
        flex: 0 0 6rem;
        font-size: var(--font-size-label-sm);
        color: var(--color-font-neutral-subtle);
        font-weight: var(--font-weight-regular);
        line-height: 140%;
    }
}

/* 신청 내역 조회 : 섹션(.page-subtitle + .registration-table-wrap) 간격 */
.registration-table-wrap + .page-subtitle {
    padding-top: var(--spacing-top-md);
}
