@charset "utf-8";
/* ---- _base ---- */
/* ==========================================================================
   sub.css — sub pages entrypoint (shared mechanics + per-page sections)
   ========================================================================== */
/* accordion mechanics (sub.js toggles .is-open / aria-expanded) */
[data-acc-panel]{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
[data-acc-panel]>*{min-height:0;overflow:hidden}
.is-open>[data-acc-panel]{grid-template-rows:1fr}
@media (prefers-reduced-motion:reduce){[data-acc-panel]{transition:none}}
/* slider mechanics */
[data-slider-track]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
[data-slider-track]::-webkit-scrollbar{display:none}
[data-slider-track]>*{scroll-snap-align:start;flex-shrink:0}
[data-slider].is-static [data-slider-prev],[data-slider].is-static [data-slider-next]{display:none}
/* tabs */
[role="tabpanel"][hidden]{display:none}
/* page body inner */
.page-body .inner{position:relative}

/* ---- about ---- */
/* about-festival (소개 > 축제 소개) — Figma 53:765 */
.about{display:block}
.about .inner{display:flex;flex-direction:column;gap:15rem}
.about-intro .split-box__media{padding:10rem 4.2rem}
.about-intro .split-box__media img{width:56.6rem;max-width:100%}
.about-intro__text{gap:5rem}
.sec-desc p{white-space:pre-wrap}
.sec-desc__gap{height:1.8em}
.info-value .ln{display:block}
.about-prog{display:flex;flex-direction:column;gap:3rem}
.about-prog__name{display:inline-block;align-self:flex-start;font-weight:600;line-height:1;color:#000;background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .35s var(--ease),color .25s ease}
.about-prog__name:hover,.about-prog__name:focus-visible{color:var(--c-blue);background-size:100% 1px}
.about-prog__group{display:flex;flex-direction:column;gap:1.5rem}
.about-prog__list{color:var(--c-444);line-height:1.6}
.about-prog__list .ln{display:block}

.about-place{display:flex;flex-direction:column;align-items:center;gap:5rem}
.about-place__title{text-align:center}
.about-place__slider{position:relative;width:100%}
.about-place__list{gap:2rem}
.place-card{display:flex;flex-direction:column;align-items:center;gap:10rem;width:calc((100% - 8rem) / 5);padding-top:10rem;background:#fff;border:1px solid #000;overflow:hidden;transition:border-color .3s ease}
.place-card__icon{display:flex;align-items:flex-end;justify-content:center;height:12rem;transition:transform .5s var(--ease-out)}
.place-card__icon img{height:100%;width:auto;max-width:none}
.place-card__name{display:block;width:100%;padding:2rem 0;background:var(--c-blue);color:#fff;font-size:max(16px,2.4rem);font-weight:700;line-height:1;text-align:center;transition:background-color .3s ease}
.place-card:hover .place-card__icon{transform:translateY(-1rem) scale(1.06)}
.place-card:hover .place-card__name{background:var(--c-navy)}
.slide-arrow{position:absolute;top:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:6rem;height:6rem;border:1px solid #000;border-radius:50%;background:#fff;transform:translateY(-50%);transition:background-color .25s ease,opacity .25s ease}
.slide-arrow img{width:3.4rem;height:3.4rem;transition:filter .25s ease}
.slide-arrow--prev{left:-3rem}
.slide-arrow--prev img{transform:scaleX(-1)}
.slide-arrow--next{right:-3rem}
.slide-arrow:hover:not(:disabled){background:#000}
.slide-arrow:hover:not(:disabled) img{filter:invert(1)}
.slide-arrow:disabled{opacity:.35;cursor:default}
@media (max-width:1279px){
  .about .inner{gap:100px}
  .about-intro .split-box__media{padding:56px 32px}
  .about-intro__text{gap:36px}
}
@media (max-width:1023px){
  .about-intro .split-box__media{padding:40px 24px}
  .about-intro .split-box__media img{width:min(100%,440px)}
  .place-card{width:calc((100% - 2rem) / 2.4);gap:60px;padding-top:60px}
  .place-card__icon{height:90px}
  .about-place{gap:32px}
  .slide-arrow{width:48px;height:48px}
  .slide-arrow img{width:26px;height:26px}
  .slide-arrow--prev{left:-12px}
  .slide-arrow--next{right:-12px}
}
@media (max-width:767px){
  .about .inner{gap:72px}
  .about-prog{gap:18px}
  .about-place__title{font-size:22px;line-height:1.4}
  .place-card{width:calc((100% - 2rem) / 1.6);gap:44px;padding-top:44px}
  .place-card__icon{height:76px}
  .place-card__name{font-size:18px;padding:16px 0}
  .slide-arrow{width:40px;height:40px}
  .slide-arrow img{width:22px;height:22px}
  .slide-arrow--prev{left:-8px}
  .slide-arrow--next{right:-8px}
  .info-value .ln{display:inline}
}

/* ---- archive ---- */
/* archive (아카이브) — Figma 62:1150 */
.archive-tabs{display:flex;flex-direction:column;gap:15rem}
.archive-tabs__list{display:flex;align-items:center;justify-content:center;gap:5rem}
.archive-tabs__tab{display:flex;align-items:center;justify-content:center;padding-bottom:1rem;border-bottom:5px solid transparent;font-size:max(20px,3rem);font-weight:700;line-height:1;color:#000;transition:border-color .3s ease,color .25s ease}
.archive-tabs__tab:hover{border-bottom-color:var(--c-ddd)}
.archive-tabs__tab[aria-selected="true"]{border-bottom-color:#000}
.archive-tabs__tab[aria-selected="true"]:hover{color:var(--c-blue);border-bottom-color:var(--c-blue)}
.archive-panel{display:flex;flex-direction:column;gap:15rem}
.archive-panel:focus-visible{outline-offset:8px}
.archive-empty{padding:10rem 0;border-top:2px solid #000;border-bottom:1px solid var(--c-ddd);font-size:max(15px,2rem);line-height:1.6;color:var(--c-555);text-align:center}

.archive-intro .split-box__media img{width:54.9rem;max-width:100%;aspect-ratio:2893/4096;object-fit:cover}
.archive-intro__eyebrow{font-size:max(14px,1.8rem);line-height:1;letter-spacing:.2em}
.archive-intro__title{font-size:7rem;font-weight:700;line-height:1.2}
.archive-intro__title .ln,.archive-intro__desc .ln{display:block;white-space:pre-wrap}
.archive-intro__desc{font-size:max(15px,2.2rem);line-height:1.8}

.archive-acc{border-top:2px solid #000}
.archive-acc__item{border-bottom:1px solid var(--c-ddd)}
.archive-acc__btn{display:flex;align-items:center;justify-content:space-between;gap:3rem;width:100%;min-height:11rem;padding:3rem;text-align:left;transition:background-color .25s ease}
.archive-acc__btn:hover,.archive-acc__btn:focus-visible{background:var(--c-f6)}
.archive-acc__left{display:flex;align-items:center;gap:1.5rem;min-width:0;line-height:1}
.archive-acc__num{flex-shrink:0;width:7rem;font-size:max(14px,1.8rem);font-weight:500;color:var(--c-555);text-align:center}
.archive-acc__title{font-size:max(18px,3rem);font-weight:700;color:var(--c-222);white-space:nowrap;transition:color .25s ease}
.archive-acc__btn:hover .archive-acc__title,.archive-acc__btn:focus-visible .archive-acc__title{color:var(--c-blue)}
.archive-acc__right{flex-shrink:0;display:flex;align-items:center;gap:5rem}
.archive-acc__meta{font-size:max(14px,1.8rem);font-weight:500;line-height:1;color:var(--c-555);white-space:nowrap}
.archive-acc__arrow{width:3rem;height:3rem;transition:transform .45s var(--ease)}
.archive-acc__item.is-open .archive-acc__arrow{transform:scaleY(-1)}
.archive-acc__body{display:flex;flex-direction:column;gap:3rem;padding:2rem 3rem 3rem 11.5rem}
.archive-acc__desc{font-size:max(15px,1.8rem);line-height:1.6;color:var(--c-222)}
.archive-grid{display:flex;flex-direction:column;gap:2rem}
.archive-grid__row{display:flex;gap:2rem;height:50rem}
.archive-grid__item{flex:1;min-width:0;margin:0;overflow:hidden}
.archive-grid__item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.archive-grid__item:hover img{transform:scale(1.04)}
.archive-grid__item--1{flex:0 0 80rem}
.archive-grid__item--3{flex:0 0 38.5rem}
.archive-grid__item--4{flex:0 0 56.5rem}
.archive-grid__item--6{flex:0 0 59rem}

@media (max-width:1279px){
  .archive-tabs,.archive-panel{gap:100px}
  .archive-intro__title{font-size:52px}
  .archive-acc__btn{min-height:90px;padding:24px 20px}
  .archive-acc__body{padding:12px 20px 28px 20px}
  .archive-acc__right{gap:24px}
}
@media (max-width:1023px){
  .archive-intro .split-box__media img{width:min(100%,440px)}
  .archive-intro__title .ln,.archive-intro__desc .ln{display:inline}
  .archive-acc__btn{flex-wrap:wrap;gap:10px 16px;position:relative;padding-right:60px}
  .archive-acc__right{display:contents}
  .archive-acc__meta{flex-basis:100%;padding-left:calc(56px + 12px);white-space:normal;line-height:1.5}
  .archive-acc__arrow{position:absolute;right:20px;top:50%;width:24px;height:24px;margin-top:-12px}
  .archive-acc__num{width:56px}
  .archive-acc__left{gap:12px}
  .archive-grid,.archive-grid__row{gap:12px}
  .archive-grid__row{height:auto;display:grid;grid-template-columns:1fr 1fr}
  .archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .archive-grid__row{display:contents}
  .archive-grid__item,.archive-grid__item--1,.archive-grid__item--3,.archive-grid__item--4,.archive-grid__item--6{flex:none;aspect-ratio:1/1}
  .archive-grid__item--7{grid-column:1/-1;aspect-ratio:2/1}
}
@media (max-width:767px){
  .archive-tabs,.archive-panel{gap:56px}
  .archive-tabs__list{gap:28px}
  .archive-tabs__tab{font-size:20px;border-bottom-width:4px;padding-bottom:8px}
  .archive-intro__eyebrow{font-size:13px}
  .archive-intro__title{font-size:34px}
  .archive-intro__desc{font-size:15px;line-height:1.75}
  .archive-acc__btn{padding:20px 44px 20px 8px;min-height:0}
  .archive-acc__num{width:28px;text-align:left}
  .archive-acc__left{gap:8px}
  .archive-acc__title{font-size:18px;white-space:normal;line-height:1.35}
  .archive-acc__meta{padding-left:36px;font-size:14px}
  .archive-acc__arrow{right:8px;width:22px;height:22px;margin-top:-11px}
  .archive-acc__body{padding:4px 8px 24px}
  .archive-grid{gap:8px}
  .archive-empty{padding:64px 0}
}

/* ---- fest ---- */
/* program-festivals (프로그램 > 세부 축제) — Figma 53:1348 */
.fest{display:block}
.fest-list{display:flex;flex-direction:column;gap:10rem}
.fest-item{display:flex;flex-direction:column;width:100%}
.fest-item__btn{display:flex;align-items:center;justify-content:space-between;gap:3rem;width:100%;min-height:9.4rem;padding:3rem 5rem;background:#338ccc;color:#fff;text-align:left;transition:background-color .3s ease}
.fest-item.is-open .fest-item__btn{background:#2576af}
.fest-item__btn:hover,.fest-item__btn:focus-visible{background:var(--c-navy)}
.fest-item__names{display:flex;align-items:center;gap:3rem;line-height:1}
.fest-item__en{font-size:3.4rem;font-weight:700}
.fest-item__ko{font-size:max(15px,2rem);font-weight:300}
.fest-item__arrow{flex-shrink:0;width:3rem;height:3rem;transition:transform .45s var(--ease)}
.fest-item.is-open .fest-item__arrow{transform:scaleY(-1)}
.fest-item__btn:hover .fest-item__arrow{translate:0 .3rem}
.fest-item__body{display:flex;align-items:center;gap:15rem;padding:7rem;border:1px solid #000}
/* poster */
.fest-poster{position:relative;flex-shrink:0;width:55rem;aspect-ratio:1}
.fest-poster__circle{position:absolute;inset:0;border-radius:50%;background:#f2f2f2}
.fest-poster__card{position:absolute;left:14.545%;top:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10rem;width:71.09%;height:100%;padding-bottom:3.5rem;background:var(--c-navy);box-shadow:1rem 1rem 3rem rgba(0,0,0,.25);transition:transform .5s var(--ease-out)}
.fest-poster__illust{width:auto;height:17rem;max-width:90%;object-fit:contain}
.fest-poster__text{font-size:3.4rem;line-height:1.4;color:rgba(255,255,255,.5);text-align:center;white-space:pre}
.fest-poster__light{font-weight:300}
.fest-poster__text strong{display:block;font-weight:700}
.fest-item__body:hover .fest-poster__card{transform:translateY(-1rem)}
/* text */
.fest-item__text{flex:1 0 0;min-width:1px;display:flex;flex-direction:column;align-items:flex-start;gap:5rem}
.fest-item__intro{display:flex;flex-direction:column;gap:3rem;color:#000}
.fest-item__title{font-size:4.6rem;font-weight:700;line-height:1}
.fest-item__desc{font-size:max(15px,2.2rem);line-height:1.6}
.fest-item__desc p{white-space:pre-wrap}
.fest-info{gap:3rem}
.fest-info .info-value .ln{display:block}
.fest-fee{display:flex;flex-direction:column;gap:1rem}
.fest-fee__note{color:var(--c-444)}
.fest-hosts{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 4rem}
.fest-host{position:relative;display:block;height:3.5rem;overflow:hidden}
.fest-host img{width:100%;height:100%;object-fit:contain}
.fest-host--seoul{aspect-ratio:138/35}
.fest-host--sto{aspect-ratio:192/35}
.fest-host--seoul img,.fest-host--sto img{object-fit:cover}
.fest-host--design{aspect-ratio:218/35}

.fest-host--sba{aspect-ratio:255/35}

.fest-host--sports{aspect-ratio:147/35}

@media (max-width:1279px){
  .fest-list{gap:72px}
  .fest-item__btn{min-height:76px;padding:22px 32px}
  .fest-item__en{font-size:26px}
  .fest-item__ko{font-size:16px}
  .fest-item__arrow{width:26px;height:26px}
  .fest-item__body{gap:48px;padding:48px 36px}
  .fest-poster{width:38%;max-width:420px}
  .fest-poster__card{gap:44px;padding-bottom:22px}
  .fest-poster__illust{height:auto;width:72%;max-width:none}
  .fest-poster__text{font-size:22px}
  .fest-item__text{gap:36px}
  .fest-item__intro{gap:20px}
  .fest-item__title{font-size:34px;line-height:1.25}
  .fest-item__desc{font-size:17px}
  .fest-item__desc p{display:inline;white-space:normal}
  .fest-host{height:30px}
}
@media (max-width:1023px){
  .fest-list{gap:56px}
  .fest-item__body{flex-direction:column;align-items:stretch;gap:40px;padding:48px 24px}
  .fest-poster{width:min(100%,400px);align-self:center}
  .fest-poster__text{font-size:24px}
  .fest-info{gap:20px}
}
@media (max-width:767px){
  .fest-list{gap:40px}
  .fest-item__btn{min-height:0;gap:16px;padding:18px 20px}
  .fest-item__names{flex-direction:column;align-items:flex-start;gap:8px}
  .fest-item__en{font-size:20px;line-height:1.25}
  .fest-item__ko{font-size:15px}
  .fest-item__arrow{width:22px;height:22px}
  .fest-item__body{gap:32px;padding:32px 20px 36px}
  .fest-poster{width:min(100%,320px)}
  .fest-poster__card{gap:28px;padding-bottom:16px}
  .fest-poster__text{font-size:17px}
  .fest-item__intro{gap:14px}
  .fest-item__title{font-size:26px}
  .fest-item__desc{font-size:15px}
  .fest-item__text{gap:28px}
  .fest-info .info-value .ln{display:inline}
  .fest-hosts{gap:12px 20px;padding-top:0}
  .fest-host{height:26px}
}

/* ---- join ---- */
/* join (참여하기) — join-apply 53:3707 · join-check 53:4207 · join-detail 53:3864 */
.join-title{line-height:1.4}
.join-title span{display:block}
.join .inner{display:flex;flex-direction:column;align-items:center;gap:7rem}
.join-form{display:flex;flex-direction:column;align-items:center;gap:7rem;width:100%}
.join-sections{display:flex;flex-direction:column;gap:5rem;width:100%}
.join-sec{display:flex;flex-direction:column;gap:3rem;width:100%;min-width:0}
.join-sec--line{padding-top:5rem;border-top:1px solid var(--c-ddd)}
.join-sec__head{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.join-sec__title{font-size:max(20px,2.6rem);font-weight:600;line-height:1;color:#000}
.join-sec__title label{cursor:default}

/* fields */
.join-grid{display:flex;flex-wrap:wrap;gap:5rem}
.join-field{display:flex;flex-direction:column;gap:1rem;width:calc((100% - 5rem) / 2);min-width:0;margin:0;padding:0;border:0}
.join-label{display:block;padding:0;font-size:max(15px,1.8rem);font-weight:600;line-height:1;color:#000}
fieldset.join-field>.join-label{float:left;width:100%;margin-bottom:1rem}
fieldset.join-field>.join-label+*{clear:both}
.join-stack{display:flex;flex-direction:column;gap:1rem}
.join-input,.join-select,.join-box{display:block;width:100%;height:5.6rem;min-height:48px;padding:0 2rem;border:1px solid var(--c-ddd);border-radius:1rem;background:#fff;font-size:max(15px,1.8rem);font-weight:400;line-height:1;color:var(--c-222);transition:border-color .25s ease,box-shadow .25s ease}
.join-input::placeholder,.join-area__input::placeholder{color:var(--c-999);opacity:1}
.join-input:hover,.join-select:hover,.join-area:hover{border-color:#999}
.join-input:focus,.join-input:not(:placeholder-shown),.join-select:focus{outline:0;border-color:var(--c-222)}
.join-input:focus-visible,.join-select:focus-visible{box-shadow:0 0 0 3px rgba(0,118,213,.18)}
.join-table .join-input:not(:focus){border-color:var(--c-ddd)}
.join-select{padding-right:5.6rem;appearance:none;-webkit-appearance:none;background:#fff url("../images/join/icon_select_arrow.svg") no-repeat right 2rem center/1.6rem 1.6rem;cursor:pointer}
.join-select:not(:focus){border-color:var(--c-ddd)}
.join-box{display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
[data-field].is-error .join-input,[data-field].is-error.join-input{border-color:#d93025}
[data-field].is-error .join-pill,[data-field].is-error .join-agree__box{border-color:#d93025}

/* age pills */
.join-pills{display:flex;flex-wrap:wrap;gap:1rem}
.join-pill{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:17rem;min-width:150px;height:5.6rem;min-height:48px;padding:0 2rem;border:1px solid var(--c-ddd);border-radius:1rem;background:#fff;color:var(--c-222);cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease}
.join-pill input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.join-pill__txt{font-size:max(15px,1.8rem);font-weight:600;line-height:1}
.join-pill__icon{flex-shrink:0;width:2.4rem;height:2.4rem;min-width:20px;min-height:20px;background:url("../images/join/icon_check_dark.svg") no-repeat center/contain}
.join-pill:hover{border-color:var(--c-blue);color:var(--c-blue)}
.join-pill:has(input:checked),.join-pill.is-checked{background:var(--c-blue);border-color:rgba(0,118,213,.43);color:#fff}
.join-pill:has(input:checked) .join-pill__icon,.join-pill.is-checked .join-pill__icon{background-image:url("../images/join/icon_check_white.svg")}
.join-pill:has(input:focus-visible){outline:3px solid var(--c-orange);outline-offset:3px}
.join-pill--static{cursor:default}
.join-pill--static:hover{border-color:var(--c-ddd);color:var(--c-222)}
.join-pill--static.is-checked:hover{border-color:rgba(0,118,213,.43);color:#fff}

/* member table */
.join-table-wrap{position:relative;width:100%}
.join-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}
.join-table th,.join-table td{border-right:1px solid var(--c-ddd);border-bottom:1px solid var(--c-ddd)}
.join-table tr>:first-child{border-left:1px solid var(--c-ddd)}
.join-table th{height:5.6rem;padding:1rem 0;background:#f2f2f2;border-top:1px solid var(--c-ddd);font-size:max(15px,1.8rem);font-weight:600;line-height:1;color:#000;text-align:center}
.join-table th:first-child{border-top-left-radius:1rem}
.join-table th:last-child{border-top-right-radius:1rem}
.join-table td{position:relative;padding:1rem;vertical-align:middle}
.join-table tbody tr:last-child td:first-child{border-bottom-left-radius:1rem}
.join-table tbody tr:last-child td:last-child{border-bottom-right-radius:1rem}
.join-add{display:inline-flex;align-items:center;gap:1rem;flex-shrink:0;padding:1.8rem 2rem;border-radius:1rem;background:var(--c-222);color:#fff;font-size:max(15px,1.8rem);font-weight:600;line-height:1;transition:background-color .25s ease}
.join-add img{width:2rem;height:2rem;min-width:18px;min-height:18px;transition:transform .35s var(--ease)}
.join-add:hover,.join-add:focus-visible{background:var(--c-blue)}
.join-add:hover img,.join-add:focus-visible img{transform:rotate(90deg)}

/* textarea */
.join-area{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;height:15rem;min-height:130px;padding:1.8rem 2rem;border:1px solid var(--c-ddd);border-radius:1rem;background:#fff;transition:border-color .25s ease}
.join-area:focus-within{border-color:var(--c-222)}
.join-area__input{flex:1;width:100%;min-height:0;padding:0;border:0;outline:0;resize:none;background:none;font-size:max(15px,1.8rem);line-height:1.5;color:var(--c-222)}
.join-area__count{align-self:flex-end;font-size:max(15px,1.8rem);line-height:1;color:var(--c-222)}
.join-area--view{justify-content:flex-start}
.join-area__txt{font-size:max(15px,1.8rem);line-height:1.5;color:var(--c-222);white-space:pre-wrap}

/* terms */
.join-terms-head{display:flex;align-items:center;padding-bottom:2rem;border-bottom:2px solid #000}
.join-terms-head__title{font-size:max(20px,3rem);font-weight:600;line-height:1;color:#000}
.join-terms{padding:1.8rem 3rem;border:1px solid var(--c-ddd);border-radius:1rem}
.join-terms__txt{font-size:max(15px,1.8rem);line-height:1.8;color:var(--c-222)}
.join-terms__txt strong{font-weight:600}
.join-terms__txt .join-terms__bold{font-weight:700}
.join-terms__txt--pre p{white-space:pre-wrap}
.join-terms__gap{height:1.8em}
.join-terms--scroll{max-height:19.8rem;min-height:140px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#bfbfbf transparent}
.join-terms--scroll::-webkit-scrollbar{width:6px}
.join-terms--scroll::-webkit-scrollbar-track{background:transparent;margin:1.2rem 0}
.join-terms--scroll::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:100px}
.join-terms--scroll .join-terms__txt{padding-right:2rem;padding-bottom:2rem}

/* agree pairs */
.join-agrees{display:flex;flex-wrap:wrap;gap:1.6rem 5rem;margin:0;padding:0;border:0}
.join-agree{position:relative;display:inline-flex;align-items:center;gap:1rem;cursor:pointer}
.join-agree input{position:absolute;width:3rem;height:3rem;margin:0;opacity:0;cursor:pointer}
.join-agree__box{flex-shrink:0;width:3rem;height:3rem;min-width:26px;min-height:26px;border:1px solid var(--c-ddd);border-radius:.5rem;background:#fff url("../images/join/icon_check_dark_lg.svg") no-repeat center/calc(100% - 2px);transition:background-color .25s ease,border-color .25s ease}
.join-agree__txt{font-size:max(15px,1.8rem);line-height:1.2;color:var(--c-222);transition:color .25s ease}
.join-agree:hover .join-agree__box{border-color:var(--c-blue)}
.join-agree:hover .join-agree__txt{color:var(--c-blue)}
.join-agree input:checked+.join-agree__box{background-color:var(--c-blue);background-image:url("../images/join/icon_check_white_lg.svg");border-color:var(--c-blue)}
.join-agree input:focus-visible+.join-agree__box{outline:3px solid var(--c-orange);outline-offset:3px}

/* notice + submit */
.join-notice{display:flex;align-items:center;justify-content:center;width:100%;min-height:10rem;padding:1.8rem 3rem;background:var(--c-f6);border:1px solid var(--c-ddd);border-radius:1rem;font-size:max(15px,2rem);line-height:1.8;color:var(--c-222);text-align:center}
.join-actions{display:flex;flex-direction:column;align-items:center;gap:2rem}
.join-msg{font-size:max(16px,1.8rem);font-weight:600;line-height:1.4;color:#d93025;text-align:center}
.join-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem}
.join-btns .btn,.join-actions .btn,.join-check__form .btn{font-size:max(15px,1.8rem)}

/* join-check */
.join-check{width:69.9rem;max-width:100%;border-radius:1rem}
.join-check__intro{display:flex;flex-direction:column;align-items:center;gap:3rem;margin-bottom:-1px;padding:5rem;background:var(--c-f6);border:1px solid var(--c-ddd);color:var(--c-222);text-align:center}
.join-check__lead{font-size:max(18px,3rem);font-weight:600;line-height:1.8}
.join-check__lead span{display:block}
.join-check__sub{font-size:max(15px,2rem);font-weight:300;line-height:1.4}
.join-check__form{display:flex;flex-direction:column;align-items:center;gap:3rem;padding:5rem;border:1px solid var(--c-ddd)}
.join-check__form .join-field{width:100%}

/* join-detail */
.join-detail .join-table td .join-box{border-color:var(--c-ddd)}

@media (max-width:1279px){
  .join .inner,.join-form{gap:56px}
  .join-sections{gap:44px}
  .join-grid{gap:36px 32px}
  .join-field{width:calc((100% - 32px) / 2)}
  .join-sec--line{padding-top:44px}
  .join-check{width:640px}
}
@media (max-width:1023px){
  .join .inner,.join-form{gap:48px}
  .join-sections{gap:40px}
  .join-sec{gap:24px}
  .join-sec--line{padding-top:40px}
  .join-sec__title{font-size:22px}
  .join-terms-head{padding-bottom:16px}
  .join-terms-head__title{font-size:24px}
  .join-grid{gap:28px}
  .join-field{width:100%;gap:10px}
  .join-input,.join-select,.join-box{height:52px;padding:0 16px;font-size:16px;border-radius:8px}
  .join-select{padding-right:44px;background-position:right 16px center;background-size:14px 14px}
  .join-pill{height:52px;padding:0 16px;border-radius:8px}
  .join-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:thin;scrollbar-color:#bfbfbf transparent}
  .join-table{min-width:720px}
  .join-table th{height:52px}
  .join-table td{padding:8px}
  .join-add{padding:14px 18px;border-radius:8px}
  .join-area{height:150px;padding:16px;border-radius:8px}
  .join-terms{padding:16px 20px;border-radius:8px}
  .join-terms--scroll{max-height:200px}
  .join-agrees{gap:14px 32px}
  .join-notice{min-height:0;padding:20px;font-size:16px;line-height:1.7}
  .join-check__intro,.join-check__form{padding:40px 32px}
  .join-check__intro{gap:20px}
  .join-check__lead{font-size:22px;line-height:1.6}
  .join-check__lead span{display:inline}
  .join-check__form{gap:24px}
}
@media (max-width:767px){
  .join .inner,.join-form{gap:40px}
  .join-sec__title{font-size:20px}
  .join-terms-head__title{font-size:20px}
  .join-sec__head{flex-wrap:wrap}
  .join-pill{flex:1;width:auto;min-width:0}
  .join-agrees{flex-direction:column;gap:14px}
  .join-agree__txt{font-size:15px}
  .join-terms__txt,.join-area__input,.join-area__txt,.join-area__count{font-size:15px}
  .join-terms__txt{line-height:1.75}
  .join-terms--scroll .join-terms__txt{padding-right:8px}
  .join-notice{font-size:15px}
  .join-check__intro,.join-check__form{padding:32px 20px}
  .join-check__lead{font-size:18px}
  .join-check__sub{font-size:15px}
  .join-btns{width:100%;flex-direction:column;align-items:center;gap:12px}
  .join-btns .btn,.join-actions .btn,.join-check__form .btn{width:100%;max-width:300px;padding:24px 20px}
  .join-actions{width:100%}
}

/* ---- news ---- */
/* event-news (행사소식 목록 53:4115) + event-news-view (상세, 시안 없음 — 목록 스타일 준용) */
.news-board{display:flex;flex-direction:column;align-items:center;gap:3rem}
.news-list{width:100%;border-top:2px solid #000}
.news-row{border-bottom:1px solid var(--c-ddd)}
.news-row__link{display:flex;align-items:center;gap:1.5rem;height:11rem;padding:3rem;transition:background-color .25s ease}
.news-row__lead{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:7rem}
.news-badge{display:flex;align-items:center;justify-content:center;width:7rem;padding:1rem 2rem;border:1px solid #000;border-radius:10rem;font-size:max(13px,1.6rem);font-weight:700;line-height:1;color:var(--c-222);white-space:nowrap}
.news-num{font-size:max(14px,1.8rem);font-weight:500;line-height:1;color:var(--c-555);text-align:center}
.news-row__title{flex:1;min-width:0;overflow:hidden;font-size:max(16px,2.2rem);font-weight:500;line-height:1.2;color:var(--c-222);white-space:nowrap;text-overflow:ellipsis;transition:color .25s ease}
.news-row__date{flex-shrink:0;margin-left:auto;padding-left:3rem;font-size:max(14px,1.8rem);font-weight:500;line-height:1;color:var(--c-555);white-space:nowrap}
.news-row__link:hover,.news-row__link:focus-visible{background:var(--c-f6)}
.news-row__link:hover .news-row__title,.news-row__link:focus-visible .news-row__title{color:var(--c-blue)}

.news-paging{display:flex;align-items:center;justify-content:center;gap:.4rem;padding-top:3rem}
.news-paging__list{display:flex;align-items:center;gap:.4rem}
.news-paging__num{display:flex;align-items:center;justify-content:center;width:5rem;height:5rem;border-radius:2.5rem;font-size:max(14px,1.6rem);font-weight:500;line-height:1;color:var(--c-222);transition:background-color .2s ease,color .2s ease}
.news-paging__num:hover,.news-paging__num:focus-visible{background:var(--c-eee)}
.news-paging__num[aria-current="page"]{background:var(--c-111);color:#fff}
.news-paging__num[aria-current="page"]:hover,.news-paging__num[aria-current="page"]:focus-visible{background:var(--c-blue)}
.news-paging__arrow{display:flex;align-items:center;justify-content:center;width:3.4rem;height:5rem;border-radius:.6rem;transition:background-color .2s ease}
.news-paging__arrow img{width:2.4rem;height:2.4rem}
.news-paging__arrow--first img,.news-paging__arrow--prev img{transform:scaleX(-1)}
.news-paging__arrow--prev{margin-right:.6rem}
.news-paging__arrow--next{margin-left:.6rem}
.news-paging__arrow:hover,.news-paging__arrow:focus-visible{background:var(--c-eee)}

/* view */
.news-view{border-top:2px solid #000}
.news-view__head{display:flex;flex-direction:column;gap:2rem;padding:4rem 3rem;border-bottom:1px solid var(--c-ddd)}
.news-view__title{font-size:3rem;font-weight:700;line-height:1.4;color:var(--c-222)}
.news-view__meta{display:flex;flex-wrap:wrap;gap:1rem 3rem;font-size:max(14px,1.8rem);font-weight:500;line-height:1;color:var(--c-555)}
.news-view__meta>div{display:flex;gap:1rem}
.news-view__meta>div+div{position:relative}
.news-view__meta>div+div::before{content:"";position:absolute;left:-1.5rem;top:50%;width:1px;height:1.2rem;background:var(--c-ddd);transform:translateY(-50%)}
.news-view__body{padding:6rem 3rem;border-bottom:1px solid var(--c-ddd);font-size:max(15px,1.8rem);line-height:1.8;color:var(--c-222)}
.news-view__note{margin-top:1.8em;color:var(--c-555)}
.news-adj{margin-top:5rem;border-top:1px solid #000}
.news-adj__row{display:flex;align-items:center;gap:3rem;padding:2.6rem 3rem;border-bottom:1px solid var(--c-ddd)}
.news-adj__label{flex-shrink:0;width:7rem;font-size:max(14px,1.8rem);font-weight:700;line-height:1;color:var(--c-222)}
.news-adj__link{flex:1;min-width:0;overflow:hidden;font-size:max(15px,1.8rem);font-weight:500;line-height:1.4;color:var(--c-555);white-space:nowrap;text-overflow:ellipsis;transition:color .25s ease}
.news-adj__link:hover,.news-adj__link:focus-visible{color:var(--c-blue)}
.news-view__btns{display:flex;justify-content:center;margin-top:7rem}
.news-view__list-btn{justify-content:center;width:20rem}

@media (max-width:1279px){
  .news-row__link{height:auto;min-height:90px;padding:24px 20px}
  .news-row__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;line-height:1.45}
  .news-view__title{font-size:26px}
  .news-view__list-btn{width:200px}
}
@media (max-width:767px){
  .news-row__link{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"lead title" ". date";gap:8px 12px;align-items:start;padding:20px 8px}
  .news-row__lead{grid-area:lead;width:52px;padding-top:2px}
  .news-badge{width:52px;padding:6px 0;font-size:13px}
  .news-num{font-size:14px;line-height:22px}
  .news-row__title{grid-area:title;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:16px;line-height:1.45;white-space:normal}
  .news-row__date{grid-area:date;margin-left:0;padding-left:0;font-size:14px}
  .news-paging{gap:0}
  .news-paging__list{gap:2px}
  .news-paging__num{width:36px;height:36px;border-radius:18px;font-size:14px}
  .news-paging__arrow{width:28px;height:36px}
  .news-paging__arrow img{width:20px;height:20px}
  .news-paging__arrow--prev{margin-right:2px}
  .news-paging__arrow--next{margin-left:2px}
  .news-view__head{padding:24px 8px;gap:14px}
  .news-view__title{font-size:20px;line-height:1.45}
  .news-view__meta{font-size:14px;gap:8px 24px}
  .news-view__meta>div+div::before{left:-12px}
  .news-view__body{padding:36px 8px;font-size:15px}
  .news-adj{margin-top:36px}
  .news-adj__row{gap:14px;padding:18px 8px}
  .news-adj__label{width:auto;font-size:14px}
  .news-adj__link{font-size:15px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}
  .news-view__btns{margin-top:44px}
  .news-view__list-btn{width:160px;justify-content:center}
}

/* ---- opening ---- */
/* program-opening (프로그램 > 개막식) — Figma 53:1307 */
.opening{display:block}
.opening .sec-desc p{white-space:pre-wrap}
.opening .sec-desc__gap{height:1.8em}
.opening .info-value .ln{display:block}
.opening-intro__photo{position:relative;width:55rem;max-width:100%;aspect-ratio:2893/4096;overflow:hidden;box-shadow:1rem 1rem 3rem rgba(0,0,0,.2)}
.opening-intro__photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;box-shadow:none}
@media (max-width:1023px){
  .opening-intro__photo{width:min(100%,440px)}
}
@media (max-width:767px){
  .opening .sec-desc p:not(.sec-desc__gap){display:inline}
  .opening .sec-desc__gap{display:block;height:.9em}
  .opening .info-list{gap:20px}
  .opening .info-value .ln{display:inline}
  .opening .info-value .ln+.ln::before{content:" "}
}

/* ---- partnership ---- */
/* partnership (파트너십) — Figma 53:3971 / 53:3987 */
.partner-wrap{position:relative;overflow-x:clip}
.partner-wrap>.inner,.partner-wrap>.page-body{position:relative;z-index:1}
.partner-deco{position:absolute;inset:0;z-index:0;pointer-events:none}
.partner-deco__item{position:absolute;max-width:none;animation:partner-float 7s ease-in-out infinite alternate}
.partner-deco__item--1{left:calc(50% - 80rem + 125.4rem);top:59.6rem;width:5.3rem;animation-duration:6.2s}
.partner-deco__item--2{left:calc(50% - 80rem + 132.2rem);top:105.5rem;width:11.4rem;animation-duration:8.4s;animation-delay:-2s}
.partner-deco__item--3{left:calc(50% - 80rem + 145.4rem);top:18.1rem;width:18.2rem;animation-duration:9.6s;animation-delay:-4s}
.partner-deco__item--4{left:calc(50% - 80rem - 27.6rem);top:99.1rem;width:20.6rem;animation-duration:10.8s;animation-delay:-1s}
.partner-deco__item--5{left:calc(50% - 80rem + 19rem);top:32.9rem;width:9.2rem;animation-duration:7.4s;animation-delay:-3s}
.partner-deco__item--6{left:calc(50% - 80rem + 23.6rem);top:90.8rem;width:4.6rem;animation-duration:5.6s;animation-delay:-1.5s}
@keyframes partner-float{
  0%{transform:translate(0,0)}
  50%{transform:translate(.8rem,-1.6rem)}
  100%{transform:translate(-.6rem,1.2rem)}
}
@media (prefers-reduced-motion:reduce){.partner-deco__item{animation:none}}

.partner .inner{display:flex;flex-direction:column;gap:15rem}
.partner-intro{display:flex;flex-direction:column;align-items:center;gap:5rem;text-align:center}
.partner-intro__title{line-height:1.8}
.partner-intro__title .ln{display:block}
.partner-intro__desc{font-size:max(15px,2rem);line-height:1.8}
.partner-intro__desc .sec-desc__gap{height:1.8em}
.partner-info{display:flex;flex-direction:column;align-items:flex-start;gap:2rem;width:80rem;max-width:100%;text-align:left}
.partner-info__title{display:flex;align-items:center;gap:.6rem;font-size:max(17px,2.4rem);font-weight:700;line-height:1}
.partner-info__title img{width:3rem;height:3rem}
.partner-info__box{display:flex;flex-direction:column;gap:3rem;width:100%;padding:5rem;background:var(--c-f6);border:1px solid var(--c-ddd)}
.partner-info__box li{position:relative;padding-left:1.6rem;font-size:max(15px,2rem);line-height:1}
.partner-info__box li::before{content:"";position:absolute;left:0;top:.7rem;width:.6rem;height:.6rem;border-radius:10rem;background:var(--c-222)}
.partner-info__box strong{font-weight:700}
.partner-info__mail{background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:color .25s ease,background-size .35s var(--ease)}
.partner-info__mail:hover,.partner-info__mail:focus-visible{color:var(--c-blue);background-size:100% 1px}
.partner-intro__cta{display:flex;flex-direction:column;align-items:center;gap:5rem}
@media (max-width:1279px){.partner-intro__cta{gap:36px}}
@media (max-width:767px){.partner-intro__cta{gap:28px}}
.partner-intro__closing{font-size:max(15px,2rem);font-weight:600;line-height:1.8}
.partner-intro .btn{text-align:left}

.partner-list__grid{display:flex;flex-wrap:wrap;gap:5rem}
.partner-card{display:flex;flex-direction:column;align-items:center;gap:3rem;width:calc((100% - 5rem) / 2);padding:5rem;background:#fff;border:1px solid #000;transition:box-shadow .35s ease,transform .45s var(--ease-out)}
.partner-card:hover{box-shadow:0 1.2rem 3rem rgba(0,0,0,.08);transform:translateY(-.6rem)}
.partner-card__logo{position:relative;width:26.4rem;height:15rem;overflow:hidden}
.partner-card__logo img{width:100%;height:100%;object-fit:contain}
.partner-card__text{display:flex;flex-direction:column;align-items:flex-start;gap:2rem;width:100%}
.partner-card__name{font-size:max(17px,2.4rem);font-weight:700;line-height:1}
.partner-card__desc{font-size:max(15px,1.8rem);line-height:1.8;color:var(--c-444)}
.partner-card__foot{width:100%;padding-top:2rem;border-top:1px solid #000}
.partner-card__link{display:inline-flex;align-items:center;gap:2rem;font-size:max(15px,1.8rem);font-weight:600;line-height:1;transition:color .25s ease}
.partner-card__link img{width:1.6rem;height:1.6rem;transform:rotate(-90deg);transition:transform .35s var(--ease),filter .25s ease}
.partner-card__link:hover,.partner-card__link:focus-visible{color:var(--c-blue)}
.partner-card__link:hover img,.partner-card__link:focus-visible img{transform:rotate(-90deg) translate(-.3rem,.3rem);filter:invert(31%) sepia(96%) saturate(2400%) hue-rotate(194deg) brightness(92%)}

@media (max-width:1279px){
  .partner .inner{gap:100px}
  .partner-intro{gap:36px}
  .partner-card{padding:40px 32px;gap:24px}
  .partner-card__logo{width:220px;height:125px}
}
@media (max-width:1023px){
  .partner-deco__item{opacity:.55}
  .partner-deco__item--1,.partner-deco__item--2,.partner-deco__item--6{display:none}
  .partner-deco__item--3{left:auto;right:-40px;top:40px;width:100px}
  .partner-deco__item--4{left:-60px;top:560px;width:110px}
  .partner-deco__item--5{left:-12px;top:150px;width:44px}
  .partner-intro__desc{font-size:17px}
  .partner-list__grid{gap:24px}
  .partner-card{width:100%}
  .partner-info__box{padding:36px 32px;gap:22px}
  .partner-info__box li{line-height:1.6}
  .partner-info__box li::before{top:.68em}
}
@media (max-width:767px){
  .partner .inner{gap:72px}
  .partner-intro{gap:28px}
  .partner-intro__title{font-size:22px;line-height:1.6}
  .partner-intro__title .ln{display:inline}
  .partner-info{gap:14px}
  .partner-info__box{padding:24px 20px;gap:14px}
  .partner-info__box li{font-size:15px}
  .partner-info__box strong{display:block}
  .partner-card{padding:32px 20px;gap:20px}
  .partner-card__logo{width:200px;height:114px}
  .partner-card__text{gap:14px}
  .partner-intro__desc{font-size:15px;line-height:1.75}
  .partner-deco__item--3{width:72px;right:-30px;top:30px}
  .partner-deco__item--4{display:none}
  .partner-deco__item--5{width:32px;left:-12px;top:100px}
}

/* ---- related ---- */
/* related-events (연계행사) — Figma 53:4080 */
.related-wrap{position:relative;overflow-x:clip}
.related-wrap>.inner,.related-wrap>.page-body{position:relative;z-index:1}
.related-deco{position:absolute;inset:0;z-index:0;pointer-events:none}
.related-deco__group{position:absolute;left:calc(50% - 80rem - 27.6rem);top:18.1rem;width:200.9rem;max-width:none;animation:related-float 9s ease-in-out infinite alternate}
@keyframes related-float{from{transform:translateY(0)}to{transform:translateY(-1.4rem)}}
@media (prefers-reduced-motion:reduce){.related-deco__group{animation:none}}
.related-intro{display:flex;flex-direction:column;align-items:center;gap:5rem;text-align:center}
.related-intro__lead{font-size:max(17px,3rem);line-height:1}
.related-intro__title{line-height:1.8}
.related-intro__title .ln{display:block}
.related-intro .btn{text-align:left}
@media (max-width:1279px){
  .related-intro{gap:36px}
  .related-intro__lead{font-size:22px;line-height:1.4}
}
@media (max-width:1023px){
  .related-deco__group{left:50%;top:150px;width:1000px;margin-left:-500px;opacity:.6}
}
@media (max-width:767px){
  .related-intro{gap:24px}
  .related-intro__lead{font-size:17px}
  .related-intro__title{font-size:22px;line-height:1.6}
  .related-intro__title .ln{display:inline}
  .related-deco__group{top:120px;width:760px;margin-left:-380px;opacity:.45}
}

/* ---- special ---- */
/* program-special (프로그램 > 특별프로그램) — Figma 53:2494 */
.special{display:block}
.special .inner{display:flex;flex-direction:column;gap:7rem}
.special-item__photo{position:relative;width:100%;height:40rem;overflow:hidden;box-shadow:1rem 1rem 3rem rgba(0,0,0,.2)}
.special-item__photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;box-shadow:none}
.special-item__photo--kperf img{object-position:16% 50%}
.special-item__text{gap:3rem}
.special-item__head{display:flex;flex-direction:column;gap:2rem;width:100%;color:#000}
.special-item__title{font-size:3rem;font-weight:700;line-height:1}
.special-item__lead{font-size:max(15px,2rem);line-height:1.8}
.special-item__info{display:flex;flex-direction:column;gap:2rem;width:100%}
.special-info{gap:2rem}
.special-info .info-row{gap:3rem}
.special-info .info-value .ln{display:block}
.special-elig{display:flex;flex-direction:column;gap:1rem;font-size:max(15px,1.8rem);line-height:1}
.special-elig__main{font-weight:600}
.special-elig__sub{color:var(--c-444)}
.special-note{font-size:max(15px,1.8rem);line-height:1}
@media (max-width:1279px){
  .special .inner{gap:56px}
  .special-item__photo{height:auto;aspect-ratio:549/400}
  .special-item__text{gap:24px}
  .special-item__title{font-size:26px;line-height:1.3}
  .special-item__lead{font-size:17px;line-height:1.7}
  .special-elig,.special-note{line-height:1.5}
  .special-info .info-row{gap:20px}
}
@media (max-width:1023px){
  .special-item__photo{max-width:440px;margin-inline:auto}
  .special-info .info-row{gap:14px}
}
@media (max-width:767px){
  .special .inner{gap:40px}
  .special-item__title{font-size:22px}
  .special-item__lead{font-size:15px}
  .special-info .info-value .ln{display:inline}
  .special-info .info-value .ln+.ln::before{content:" "}
}
