.index-main { display: block; width: 100%; overflow: hidden; }
/* 메인 */
/* =========================================================
   메인 히어로 섹션
   ========================================================= */
.main-hero { --main-content-max: 1440px; --main-forest: #073f31; --main-forest-deep: #00281f; --main-champagne: #c7a45e; position: relative; isolation: isolate; width: 100%; max-width: 1920px; height: clamp(720px, 62.5vw, 1200px); min-height: 720px; margin-inline: auto; overflow: hidden; background-color: #d9c49a; font-family: "Noto Sans KR", sans-serif; }
.main-hero, .main-hero *, .main-hero *::before, .main-hero *::after { box-sizing: border-box; }
.main-hero > .main-hero__container { position: relative; z-index: 3; width: 100%; max-width: var(--main-content-max); height: 100%; margin-inline: auto; }
.main-hero__media, .main-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.main-hero__media { z-index: 0; }
.main-hero__media img { display: block; object-fit: cover; object-position: center center; }
.main-hero .weather_line { position: absolute; bottom: 20px; right: 20px; display: inline-flex; align-items: center; font-size: 0.9rem; color: #fff; z-index: 999; }
/*
  좌측 하단에서 시작해 우측 상단 방향으로 부드럽게 퍼지는 원형 오버레이.
  타원 중심을 좌측 하단 바깥쪽(-8% 108%)에 두어 첨부 시안처럼 자연스럽게 올라옵니다.
*/
.main-hero__shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse 88% 92% at -9% 100%, rgba(0, 40, 31, 0.98) 0%, rgba(0, 40, 31, 0.94) 24%, rgba(0, 40, 31, 0.82) 42%, rgba(0, 40, 31, 0.58) 58%, rgba(0, 40, 31, 0.28) 72%, rgba(0, 40, 31, 0.08) 84%, rgba(0, 40, 31, 0) 100%), radial-gradient(ellipse 70% 58% at 2% 100%, rgba(0, 28, 22, 0.72) 0%, rgba(0, 28, 22, 0.42) 46%, rgba(0, 28, 22, 0) 82%); }
.main-hero__content { max-width: 760px; padding-bottom: clamp(64px, 8.2vw, 158px); color: #fff; }
.main-hero__logo { margin-bottom: -60px; margin-left: 10px; }
.main-hero__title { margin: 0; color: #fff; font-size: clamp(42px, 3.3vw, 54px); line-height: 1.2; font-weight: 700; letter-spacing: -0.045em; text-shadow: 0 2px 18px rgba(0, 0, 0, 0.16); }
.main-hero__subtitle { margin: 18px 0 0; color: var(--main-champagne); font-size: clamp(23px, 1.6vw, 31px); line-height: 1.35; font-weight: 600; letter-spacing: -0.02em; }
.main-hero__meta { margin-top: clamp(42px, 4vw, 76px); }
.main-hero__date, .main-hero__place { margin: 0; color: #fff; font-size: clamp(23px, 1.55vw, 31px); line-height: 1.45; font-weight: 600; letter-spacing: -0.025em; }
.main-hero__date span { font-size: 0.76em; letter-spacing: 0.04em; }
.main-hero__actions { margin-top: clamp(34px, 3.4vw, 54px); display: flex; flex-wrap: wrap; gap: 1rem; }
.main-hero .main-hero__btn { display: inline-flex; align-items: center; justify-content: center; min-width: 258px; min-height: 64px; padding: 14px 34px; border-radius: 10px; font-size: 23px; font-weight: 600; letter-spacing: -0.025em; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease; }
.main-hero .main-hero__btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18); }
.main-hero .main-hero__btn--primary { border: 1px solid var(--main-champagne); background-color: var(--main-champagne); color: #fff; }
.main-hero .main-hero__btn--primary:hover, .main-hero .main-hero__btn--primary:focus { border-color: #d2b371; background-color: #d2b371; color: #fff; }
.main-hero .main-hero__btn--outline { border: 3px solid rgba(255, 255, 255, 0.92); background-color: rgba(0, 48, 37, 0.38); color: #fff; backdrop-filter: blur(2px); }
.main-hero .main-hero__btn--outline:hover, .main-hero .main-hero__btn--outline:focus { border-color: #fff; background-color: rgba(0, 48, 37, 0.72); color: #fff; }
.main-hero__container,.main-event-info__container,.main-cta__container,.main-notice-guide__container { position: relative; width: min(100% - 48px, 1440px); margin-inline: auto; }
.main-hero__layout { display: flex; align-items: flex-end; width: 100%; height: 100%; padding: 20px; }
.main-hero__column { width: 50%; max-width: 760px; }
.main-hero__day { display: inline-block; padding-inline: 0.5rem; }
/* =========================================================
   대회정보 섹션
   ========================================================= */
.main-event-info { --main-info-forest: #082f25; --main-info-gold: #b9914c; --main-info-text: #292b28; --main-info-line: rgba(177, 153, 109, 0.28); --main-info-border: #d8c8a9; position: relative; width: 100%; padding: 64px 0 88px; overflow: visible; background: linear-gradient(180deg, #fcfaf6 0%, #faf7f0 100%); }
.main-event-info__container { position: relative; width: 100%; max-width: 1440px; }
.main-event-info__details { position: relative; z-index: 5; height: 100%; padding: 4px 36px 4px 0; }
.main-event-info__heading { position: relative; width: 100%; height: 150px; z-index: 6; display: block; margin: 0 0 18px; }
.main-event-info__title { position: relative; z-index: 6; display: block; margin: 0; color: var(--main-info-forest); font-size: clamp(24px, 1.55vw, 30px); line-height: 1.25; font-weight: 800; letter-spacing: -0.04em; }
.main-event-info__title-line { display: block; width: 42px; height: 1px; margin-top: 12px; background: var(--main-info-gold); }
.main-event-info__list { position: relative; z-index: 5; width: 100%; }
.main-event-info__item { display: flex; align-items: center; gap: 16px; min-height: 78px; padding: 11px 0; border-bottom: 1px solid var(--main-info-line); }
.main-event-info__item:first-child { border-top: 1px solid var(--main-info-line); }
.main-event-info__icon { flex: 0 0 52px; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border: 1px solid var(--main-info-border); border-radius: 50%; background: rgba(255, 255, 255, 0.38); color: var(--main-info-gold); font-size: 19px; }
.main-event-info__text { min-width: 0; }
.main-event-info__text strong { display: block; margin-bottom: 3px; color: var(--main-info-gold); font-size: 12px; line-height: 1.35; font-weight: 700; }
.main-event-info__text p { margin: 0; color: var(--main-info-text); font-size: clamp(14px, 0.9vw, 16px); line-height: 1.45; font-weight: 500; letter-spacing: -0.025em; word-break: keep-all; }
.main-event-info__layout, .main-notice-guide__layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 1.5rem; }
.main-event-info__column, .main-notice-guide__column-wrap { min-width: 0; }
.main-event-info__name { margin: 0; padding-block: 1rem; }
.main-event-info__list, .main-notice__list { margin: 0; padding: 0; list-style: none; }
.main-course-grid { position: relative; display: grid; grid-template-columns: minmax(0, 56fr) minmax(0, 44fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; height: 100%; min-height: 520px; padding: 7px; border: 1px solid rgba(189, 152, 84, 0.2); border-radius: 60px; }
.main-course-card { position: relative; min-width: 0; overflow: visible; border-radius: 50px; isolation: isolate; }
.main-course-card__media { position: absolute; inset: 0; overflow: hidden; border: 1px solid var(--main-info-border); border-radius: 40px; background: #e9e0cf; box-shadow: 0 12px 26px rgba(72, 56, 25, 0.08); }
.main-course-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.main-course-card__shade { position: absolute; inset: 0; z-index: 2; border-radius: 16px; pointer-events: none; background: linear-gradient(180deg, rgba(250, 247, 240, 0.97) 0%, rgba(250, 247, 240, 0.86) 22%, rgba(250, 247, 240, 0.38) 43%, rgba(250, 247, 240, 0) 64%); }
.main-course-card__content { position: absolute; z-index: 5; top: 18px; left: 20px; right: 16px; display: block; min-width: 0; overflow: visible; pointer-events: none; }
.main-course-card__title { display: block; margin: 0; color: var(--main-info-forest); font-size: 15px; line-height: 1.25; font-weight: 800; letter-spacing: -0.015em; white-space: nowrap; }
.main-course-card__line { display: block; width: 30px; height: 1px; margin: 7px 0 6px; background: var(--main-info-gold); }
.main-course-card__distance { display: block; margin: 0; color: var(--main-info-gold); font-size: 12px; line-height: 1.3; font-weight: 600; white-space: nowrap; }
.main-course-card__link { position: absolute; z-index: 5; left: 20px; bottom: 20px; display: inline-flex; align-items: center; gap: 8px; padding-bottom: 5px; border-bottom: 1px solid rgba(255, 255, 255, 0.72); color: #fff; font-size: 12px; line-height: 1.3; font-weight: 600; text-decoration: none; }
.main-course-card__link:hover, .main-course-card__link:focus { color: #fff; }
.main-course-card--half { grid-column: 1; grid-row: 1 / 3; }
.main-course-card--ten { grid-column: 2; grid-row: 1; }
.main-course-card--five { grid-column: 2; grid-row: 2; }
.main-course-card--half .main-course-card__media, .main-course-card--half .main-course-card__shade { clip-path: polygon(0 0, 100% 0, 100% 89%, 91% 100%, 0 100%); }
.main-course-card--ten .main-course-card__media, .main-course-card--ten .main-course-card__shade { clip-path: polygon(0 0, 100% 0, 100% 86%, 89% 100%, 0 100%); }
.main-course-card--five .main-course-card__media, .main-course-card--five .main-course-card__shade { clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%, 0 14%); }
/* 오른쪽 작은 카드들은 폭이 좁기 때문에 별도 위치 적용 */
.main-course-card--ten .main-course-card__content { top: 16px; left: 16px; right: 12px; }
.main-course-card--five .main-course-card__content { top: 16px; left: 26px; right: 12px; }
.main-course-card--ten .main-course-card__title, .main-course-card--five .main-course-card__title { font-size: 13px; }
.main-course-card--ten .main-course-card__distance, .main-course-card--five .main-course-card__distance { font-size: 11px; }
.main-course-card--half .main-course-card__content { top: 22px; left: 22px; right: 18px; }
.main-course-card--half .main-course-card__title { font-size: 17px; }
.main-course-card--half .main-course-card__distance { font-size: 13px; }
/* =========================================================
   cta 섹션
   ========================================================= */
.main-cta { --main-cta-forest: #073d30; --main-cta-forest-deep: #002f25; --main-cta-gold: #bd9854; position: relative; width: 100%; padding: 62px 0 72px; overflow: hidden; background: linear-gradient(180deg, #fcfaf6 0%, #f9f5ed 100%); }
.main-cta__container { width: 100%; max-width: 1440px; }
.main-cta__box { position: relative; min-height: 330px; overflow: hidden; border-radius: 22px; box-shadow: 0 18px 42px rgba(42, 33, 17, 0.12); background: url(/images/common/main_bg-cta.png) no-repeat 50% 100%; background-size: cover; }
.main-cta__box::before, .main-cta__box::after { content: ""; position: absolute; border: 1px solid rgba(189, 152, 84, 0.08); border-radius: 50%; pointer-events: none; }
.main-cta__box::before { width: 440px; height: 440px; top: -300px; left: -160px; }
.main-cta__box::after { width: 520px; height: 520px; right: -220px; bottom: -410px; }
.main-cta__content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; min-height: 330px; padding: 42px 32px; text-align: center; color: #fff; }
.main-cta__title { max-width: 1000px; margin: 0 auto; color: #fff; font-size: clamp(28px, 2.2vw, 40px); line-height: 1.3; font-weight: 700; letter-spacing: -0.045em; word-break: keep-all; text-align: center; }
.main-cta__title-line { display: block; width: 44px; height: 1px; margin: 20px auto 18px; background: var(--main-cta-gold); }
.main-cta__info { text-align: center; }
.main-cta__capacity { display: block; margin-bottom: 3px; color: var(--main-cta-gold); font-size: clamp(17px, 1.25vw, 22px); line-height: 1.4; font-weight: 700; letter-spacing: -0.03em; }
.main-cta__date { margin: 0; color: #fff; font-size: clamp(15px, 1vw, 18px); line-height: 1.45; font-weight: 600; letter-spacing: -0.03em; }
.main-cta__button { margin-top: 22px; background: var(--main-cta-gold); color: #fff; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-width: 172px; min-height: 50px; padding: 11px 24px; border: 1px solid transparent; border-radius: 9px; font-size: 14px; line-height: 1.3; font-weight: 700; letter-spacing: -0.025em; text-decoration: none; white-space: nowrap; transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; }
.main-cta__button:hover, .main-cta__button:focus { border-color: #d0ad69; background: #d0ad69; color: #fff; transform: translateY(-2px); box-shadow: 0 9px 22px rgba(0, 0, 0, 0.18); }
.main-cta__info .cta-status { display: inline-block; background-color: #F58220; padding: 6px 16px; border-radius: 20px; font-size: 14px; font-weight: 700; margin: 10px auto; }
.main-cta__info .cta-status-0 { background-color: #9e9e9e; }
.main-cta__actions { display: flex; align-items: stretch; justify-content: center; flex-wrap: wrap; gap: 12px; width: 100%; margin-top: 24px; }
.main-cta__button :is(i, .app-icon) { flex: 0 0 auto; font-size: 14px; }
/* 개인 참가신청: 샴페인 골드 */
.main-cta__button--personal { border-color: #bd9854; background: #bd9854; color: #fff; }
.main-cta__button--personal:hover, .main-cta__button--personal:focus { border-color: #d0ad69; background: #d0ad69; color: #fff; }
/* 단체 참가신청: 밝은 포레스트 그린 */
.main-cta__button--group { border-color: #477d69; background: #477d69; color: #fff; }
.main-cta__button--group:hover, .main-cta__button--group:focus { border-color: #59917c; background: #59917c; color: #fff; }
/* 단체신청서 다운로드: 흰색 */
.main-cta__button--download { border-color: rgba(255, 255, 255, 0.92); background: #fff; color: #073d30; }
.main-cta__button--download:hover, .main-cta__button--download:focus { border-color: #f3ead8; background: #f3ead8; color: #002f25; }
/* =========================================================
   공지사항 섹션
   ========================================================= */
.main-notice-guide { width: 100%; padding: 72px 0 92px; background: linear-gradient(180deg, #faf7f0 0%, #fcfaf6 100%); }
.main-notice-guide__container { width: min(100% - 48px, 1440px); margin-inline: auto; }
.main-notice-guide__layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; }
.main-notice, .main-guide { min-width: 0; }
.main-section-heading { margin-bottom: 22px; }
.main-section-title { margin: 0; color: #082f25; font-size: clamp(24px, 1.55vw, 30px); line-height: 1.25; font-weight: 800; letter-spacing: -0.04em; }
.main-section-line { display: block; width: 42px; height: 1px; margin-top: 12px; background: #b9914c; }

.main-notice__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(177, 153, 109, 0.28); }
.main-notice__list li { border-bottom: 1px solid rgba(177, 153, 109, 0.28); }
.main-notice__list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; min-height: 68px; padding: 14px 0; color: #292b28; text-decoration: none; }
.main-notice__list span { overflow: hidden; font-size: 15px; line-height: 1.5; font-weight: 500; letter-spacing: -0.025em; text-overflow: ellipsis; white-space: nowrap; }
.main-notice__list time { color: #9c7b42; font-size: 12px; white-space: nowrap; }
.main-notice__more { display: inline-flex; align-items: center; gap: 18px; margin-top: 24px; padding-bottom: 6px; border-bottom: 1px solid #b9914c; color: #b9914c; font-size: 13px; font-weight: 600; text-decoration: none; }
.main-notice__more:hover, .main-notice__more:focus { color: #082f25; border-color: #082f25; }

.main-guide__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(177, 153, 109, 0.28); border-left: 1px solid rgba(177, 153, 109, 0.28); }
.main-guide__item { position: relative; min-height: 158px; padding: 22px 20px 20px; border-right: 1px solid rgba(177, 153, 109, 0.28); border-bottom: 1px solid rgba(177, 153, 109, 0.28); color: #292b28; text-decoration: none; transition: background-color 0.2s ease; }
.main-guide__item:hover, .main-guide__item:focus { background: rgba(185, 145, 76, 0.06); }
.main-guide__icon { position: absolute; top: 18px; right: 18px; display: block; width: auto; height: auto; max-width: 52px; max-height: 52px; object-fit: contain; }
.main-guide__item strong { position: absolute; left: 20px; bottom: 24px; right: 54px; overflow: hidden; font-size: 15px; line-height: 1.4; font-weight: 500; letter-spacing: -0.025em; text-overflow: ellipsis; white-space: nowrap; }
.main-guide__item > :is(i, .app-icon) { position: absolute; right: 20px; bottom: 24px; color: #7f6a42; font-size: 13px; transition: transform 0.2s ease; }
.main-guide__item:hover > :is(i, .app-icon), .main-guide__item:focus > :is(i, .app-icon) { transform: translateX(4px); }

/* 1200px ~ 1399.98px */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .main-course-grid { grid-template-columns: minmax(0, 54fr) minmax(0, 46fr); min-height: 490px; gap: 10px; }
    .main-course-card--half .main-course-card__title { font-size: 15px; }
    .main-course-card--ten .main-course-card__title, .main-course-card--five .main-course-card__title { font-size: 12px; }
}

/* 1199.98px 이하 */
@media (max-width: 1199.98px) {
    .main-hero .main-hero__btn { min-width: 220px; }
    .main-course-grid { min-height: 540px; }
    .main-notice-guide { padding: 60px 0 80px; }
    .main-hero__column { width: 58.333333%; }
    .main-event-info__layout, .main-notice-guide__layout { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* 991.98px 이하 */
@media (max-width: 991.98px) {
    .main-cta { padding: 54px 0 64px; }
    .main-cta__box, .main-cta__content { min-height: 310px; }
    .main-cta__content { padding: 40px 28px; }
    .main-cta__button { min-width: 162px; padding-inline: 20px; }
    .main-hero__column { width: 66.666667%; }
}

/* 767.98px 이하 */
@media (max-width: 767.98px) {
    .main-guide-menu__icon img { width: 42px; height: 42px; }
    .main-hero { width: 100%; max-width: none; height: max(760px, 100svh); min-height: 760px; }
    .main-hero__logo { margin-bottom: -63px; margin-left: -7px; }
    .main-hero__media img { object-position: center center; }
    .main-hero__shade { background: radial-gradient(ellipse 135% 72% at 0% 108%, rgba(0, 40, 31, 0.98) 0%, rgba(0, 40, 31, 0.90) 34%, rgba(0, 40, 31, 0.62) 56%, rgba(0, 40, 31, 0.24) 76%, rgba(0, 40, 31, 0) 100%); }
    .main-hero__content { max-width: 100%; padding-bottom: max(34px, env(safe-area-inset-bottom)); }
    .main-hero__title { font-size: clamp(33px, 9.3vw, 36px); line-height: 1.18; }
    .main-hero__subtitle { margin-top: 12px; font-size: clamp(18px, 5vw, 23px); }
    .main-hero__meta { margin-top: 28px; }
    .main-hero__date, .main-hero__place { font-size: clamp(18px, 5vw, 23px); }
    .main-hero__actions { width: 100%; margin-top: 26px; gap: 0.625rem; }
    .main-hero .main-hero__btn { flex: 1 1 calc(50% - 5px); min-width: 0; min-height: 54px; padding: 12px 14px; border-radius: 8px; font-size: 17px; }
    .main-hero .weather_line {bottom: 10px; right: 22px;}
    .main-course-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: none; min-height: 0; gap: 12px; }
    .main-course-card--half, .main-course-card--ten, .main-course-card--five { grid-column: auto; grid-row: auto; height: 270px; }
    .main-course-card__media, .main-course-card__shade { clip-path: none !important; }
    .main-course-card__content, .main-course-card--half .main-course-card__content, .main-course-card--ten .main-course-card__content, .main-course-card--five .main-course-card__content { top: 18px; left: 20px; right: 16px; }
    .main-course-card__title, .main-course-card--half .main-course-card__title, .main-course-card--ten .main-course-card__title, .main-course-card--five .main-course-card__title { font-size: 15px; }
    .main-course-card__distance, .main-course-card--half .main-course-card__distance, .main-course-card--ten .main-course-card__distance, .main-course-card--five .main-course-card__distance { font-size: 12px; }
    .main-notice-guide { padding: 46px 0 62px; }
    .main-notice-guide__heading { margin-bottom: 18px; }
    .main-notice-guide__title { font-size: 25px; }
    .main-notice__link { grid-template-columns: 36px minmax(0, 1fr) 18px; gap: 10px; min-height: 82px; padding: 13px 0; }
    .main-notice__icon { width: 36px; font-size: 20px; }
    .main-notice__subject { font-size: 14px; }
    .main-notice__date { display: none; }
    .main-guide-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .main-guide-menu__item { min-height: 138px; padding: 20px 14px 15px; }
    .main-guide-menu__icon { margin-bottom: 12px; }
    .main-guide-menu__title { font-size: 14px; }
    .main-cta { padding: 44px 0 56px; }
    .main-cta__box, .main-cta__content { min-height: 300px; }
    .main-cta__box { border-radius: 17px; }
    .main-cta__content { padding: 38px 22px; }
    .main-cta__title { max-width: 520px; font-size: clamp(24px, 7vw, 31px); }
    .main-cta__title-line { margin: 17px auto 15px; }
    .main-cta__capacity { font-size: 17px; }
    .main-cta__date { font-size: 15px; }
    .main-cta__button { margin-top: 19px; flex: 1 1 calc(50% - 5px); min-width: 0; min-height: 48px; padding: 10px 14px; font-size: 13px; }
    .main-cta__actions { gap: 9px; margin-top: 20px; }
    .main-cta__button--download { flex-basis: 100%; }
    .main-hero__container, .main-event-info__container, .main-cta__container, .main-notice-guide__container { width: min(100% - 32px, 1440px); }
    .main-hero__column { width: 100%; max-width: none; }
}

/* 419.98px 이하 */
@media (max-width: 419.98px) {
    .main-hero__actions { flex-direction: column; }
    .main-hero .main-hero__btn { width: 100%; }
    .main-guide-menu__item { min-height: 130px; padding-inline: 11px; }
    .main-guide-menu__title { font-size: 13px; }
    .main-cta__actions { flex-direction: column; }
    .main-cta__button { width: 100%; }
}

/* 동작 감소 설정 */
@media (prefers-reduced-motion: reduce) {
    .main-hero .main-hero__btn { transition: none; }
}