/******************************************
	main.css
	1px = 1rem (html font-size: 1px)
	max-width: 991px 구간도 rem 사용
******************************************/

/* ========== 기본 / 레이아웃 ========== */

* {box-sizing: border-box;}
html {scroll-behavior: smooth; -webkit-text-size-adjust: 100%;}
html:has(#main.main) {font-size: 1px;}
html:has(#main.main) body {font-size: 20rem;}
/* ========== 공통 컴포넌트 ========== */

main.main{margin-top: -80rem;}
.sec {padding: 96rem 0;}
.main .sec-head {text-align: center; margin-bottom: 60rem;}
.main .eyebrow {display: inline-flex; align-items: center; gap: 7rem; color: var(--green-600); font-weight: 800; font-size: 15rem; letter-spacing: .02em; margin-bottom: 14rem; background: var(--green-50); padding: 7rem 16rem; border-radius: var(--rfull);}
.main .sec-head h2,
.main .sec-head .saf-main-sub-title {font-size: 40rem; font-weight: 700; letter-spacing: -.8rem; line-height: 1.3; color: #000; margin: 0;}
.main .sec-head h2 .hl,
.main .sec-head .saf-main-sub-title .hl {color: #000;}
.main .mbr {display: none;}
.main .sec-head p,
.main .sec-head .saf-main-sub-text {display: block; margin: 8rem auto 0; font-size: 22rem; font-weight: 400; line-height: 1.5; letter-spacing: -.22rem; color: #333; text-wrap: pretty;}
.main .sec-head p span,
.main .sec-head .saf-main-sub-text span,
.main .sec-head p b,
.main .sec-head .saf-main-sub-text b {color: #fc1d01; font-weight: 500;}
.promo-block {margin-top: 64rem;}
.main .pill {display: inline-flex; align-items: center; gap: 8rem; background: var(--ink); color: #fff; font-weight: 800; font-size: 15rem; padding: 9rem 20rem; border-radius: var(--rfull); margin-bottom: 16rem;}
.main .pill.green {background: var(--green);}
.main .pill.gold {background: var(--lime); color: #3a2e00;}
.main .block-title {font-size: 26rem; font-weight: 700; letter-spacing: -.02em; margin-bottom: 8rem;}
.main .block-sub {font-size: 17rem; color: var(--t3); margin-bottom: 28rem;}
.main .btnWrap {display: flex; justify-content: center; gap: 14rem; margin-top: 0; flex-wrap: wrap;}
.main .btn a {display: inline-flex; align-items: center; justify-content: center; height: 48rem; padding: 0 24rem; border-radius: 8rem; background-color: #000; color: #fff; font-size: 16rem; letter-spacing: -0.16rem; font-weight: 600; transition: all .2s cubic-bezier(.2, .8, .2, 1); box-shadow: none; box-sizing: border-box;}
.main .btn a svg{margin-left: 4rem;}
.main .btn a:hover {background: #222;}
.main .btn .btnInner {display: flex; align-items: center; gap: 8rem;}
.main .btn .btnInner figure.arrow {display: block; width: 8rem; height: 14rem; margin: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 14' fill='none'%3E%3Cpath d='M1 1l6 6-6 6' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;}
.main .mainTag {margin: 0;}
.main .mainTag > em {display: inline-flex; align-items: center; gap: 8rem; background: linear-gradient(90deg, #6E31F5, #0086FA); color: #fff; font-weight: 600; font-size: 22rem; letter-spacing: -0.22rem; line-height: 1.5; padding: 6rem 16rem; border-radius: 9999rem; }
.main .urgent {display: flex; align-items: center; gap: 8rem; color: var(--red); font-weight: 800; font-size: 17rem; margin-bottom: 26rem;}
.main .winner {background: var(--green-50); border: 1rem solid var(--green-100); border-radius: var(--r12); padding: 20rem; text-align: center;}
.main .winner .sch {font-size: 22rem; font-weight: 700; color: var(--green-700); letter-spacing: .02em;}
.main .winner .desc {font-size: 13rem; color: var(--t3); margin-top: 6rem; font-weight: 600;}
.main section.sec {padding: 140rem 0;}


/* ========== catnav ========== */

.main .catnav { position: sticky; top: var(--site-header-offset); z-index: 90; width: 100%; text-align: center; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8rem); -webkit-backdrop-filter: blur(8rem); border-bottom: 1rem solid #eee; box-shadow: 0 4rem 14rem rgba(0, 0, 0, .04); }
.main .catnav-in { width: min(var(--content), 100% - 48rem); margin: 0 auto; display: flex; align-items: stretch; justify-content: center; gap: 6rem; overflow-x: auto; scrollbar-width: none; }
.main .catnav-in::-webkit-scrollbar { display: none; }
.main .catnav a { flex: 0 0 auto; padding: 16rem 18rem; font-size: 20rem; font-weight: 600; color: #666; border-bottom: 3rem solid transparent; transition: .2s; white-space: nowrap; }
.main .catnav a:hover {color: #1EC95B;}
.main .catnav a.active {color: var(--green); border-bottom-color: var(--green); font-weight: 700;}


/* ========== 메인 비주얼 (hero) ========== */

.main .saf-main-section01 {position: relative; color: #000000; overflow: hidden; background: url("https://s3.ap-northeast-2.amazonaws.com/img.edmtw.com/lfair/main/2610-hero-bg-pc.webp") top center / cover no-repeat; min-height: 47.24vw; padding: 204rem 0 239rem; display: flex; align-items: flex-start;}
.main .saf-main-section01 .cloud {display: none;}
.main .saf-main-section01 .hfloat {position: absolute; z-index: 1; pointer-events: none; user-select: none; filter: drop-shadow(0 14rem 24rem rgba(110, 90, 180, .18));}
.main .saf-main-section01 .hf1 {width: 138rem; top: 175rem; left: 1.5%; animation: hdrift 8s ease-in-out infinite;}
.main .saf-main-section01 .hf2 {width: 146rem; top: 400rem; left: 14%; animation: hdrift 10s ease-in-out infinite reverse;}
.main .saf-main-section01 .hf3 {width: 146rem; top: 160rem; right: 2%; animation: hdrift 9s ease-in-out infinite;}
.main .saf-main-section01 .btn a{font-size: 18rem; height: 56rem; background-color: var(--green); letter-spacing: -0.18rem; border-radius: 12rem;}
.main .saf-main-section01 .btn a:hover{background-color: #18A149;}
.main .saf-main-section01 .btn a .hero-cta-arrow {width: 24rem; height: 24rem; flex-shrink: 0;}
.main .hero-floor-mo {display: none;}
@keyframes hdrift {
    0%, 100% {transform: translateY(0) rotate(-3deg);}
    50% {transform: translateY(-22rem) rotate(4deg);}
}
.main .hero-grid {position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 48rem; align-items: center;}
.main .hero-sub-badge {display: inline-flex; align-items: center; gap: 8rem; background: linear-gradient(90deg, #6E31F5, #0086FA); color: #fff; font-weight: 700; font-size: 15rem; padding: 9rem 20rem; border-radius: var(--rfull); margin-bottom: 22rem;}
.main .saf-main-section01 h1 {font-size: clamp(42rem, 4.5vw, 70rem); margin: 24rem 0 40rem; font-weight: 700; line-height: 1.3; letter-spacing: -1.4rem; color: #111;}
.main .saf-main-section01 h1 .hl {color: var(--green);}
.main .saf-main-section01 .lead {font-size: clamp(16rem, 1.6vw, 20rem); color: #555; font-weight: 500; margin-bottom: 28rem; line-height: 1.55;}
.main .hero-copy {text-align: center; display: flex; flex-direction: column; align-items: center;}
.main .saf-main-section01 .lead b {color: #111; font-weight: 700;}
.main .saf-main-section01 .urgent {font-size: 22rem; font-weight: 700; color: #FC1D01; margin-bottom: 32rem; gap: 0; letter-spacing: -0.22rem; line-height: 1.5;}
.main .hero-info {background: rgba(255, 255, 255, .8); border: none; border-radius: 12rem; padding: 24rem 0; margin: 0 auto 32rem; backdrop-filter: blur(4rem); width: fit-content; max-width: 100%; width: 684rem; font-size: 18rem; font-weight: 400; line-height: 1.5; letter-spacing: -0.18rem; color: #111; text-align: center;}
.main .hi-row {display: flex; align-items: center; gap: 16rem; font-size: 18rem; line-height: 1.5; justify-content: center; white-space: nowrap;}
.main .hi-row .lab {flex: 0 0 auto; text-align: left; color: #666; font-weight: 400; white-space: nowrap;}
.main .hi-row .val {white-space: nowrap; color: #333; font-weight: 700;}
.main .hi-row .lab, .main .hi-row .val {font-size: 18rem;}
.main .hi-row + .hi-row {margin-top: 8rem;}
.main .saf-main-section01 .hi-row .val {font-weight: 700; color: #333;}
.main .hero-cta {display: flex; gap: 14rem; flex-wrap: wrap; align-items: center;}
.main .saf-main-section01 .btn-lg {font-size: 20rem;}
.hero-visual {position: relative; display: flex; justify-content: center; align-items: center;}
.main .hero-window {position: relative; width: 100%; max-width: 520rem; margin: 0 auto; container-type: inline-size;}
.main .win-content {position: absolute; top: 22%; left: 0; right: 0; display: flex; flex-direction: column; align-items: center; gap: 12rem; z-index: 2;}
.main .win-cap {display: inline-flex; align-items: center; background: var(--red); color: #fff; font-weight: 600; font-size: 15rem; padding: 7rem 18rem; border-radius: var(--rfull);}
.main .win-headline {font-size: 6.2cqw; font-weight: 700; letter-spacing: -.03em; color: #111; line-height: 1; text-align: center;}
.main .win-headline .wh-pre {font-size: 6.2cqw; font-weight: 700; color: #111;}
.main .win-headline .wh-num {font-size: 13.5cqw; font-weight: 700; color: #006BC8; letter-spacing: -3rem; vertical-align: -2rem;}
.main .win-headline .wh-unit {font-size: 7.7cqw; font-weight: 700; color: #006BC8;}
.main .win-headline .wh-suf {font-size: 6.2cqw; font-weight: 700; color: #111;}
.main .win-prizes {position: absolute; bottom: calc(12% - 50rem); left: 50%; transform: translateX(-50%); width: 414rem; max-width: 90%; height: auto; z-index: 2; filter: drop-shadow(0 14rem 22rem rgba(0, 0, 0, .18));}
.hero-band {background: #4F7BF0; color: #fff; padding: 52rem 0;}
.main .hero-band-in {width: min(var(--content), 100% - 48rem); margin: 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12rem; text-align: center;}
.main .hero-band .band-eyebrow {font-size: 18rem; font-weight: 600; letter-spacing: -.01em; color: rgba(255, 255, 255, .9); white-space: nowrap;}
.main .hero-band .big {font-size: 40rem; font-weight: 700; letter-spacing: -.03em; line-height: 1.15; color: #fff;}
.main .hero-band .tag {font-size: 20rem; font-weight: 700; letter-spacing: -.02em; color: #fff;}
.main .prize-hero-pill {position: relative; z-index: 1; background: linear-gradient(125deg, #7A2EF2, #9A4BFF); color: #fff; border-radius: 90rem; padding: 54rem 90rem 54rem 60rem; text-align: center;}
.main .prize-hero-pill .ph-lab {font-size: 22rem; font-weight: 700; color: #A6F24E; margin-bottom: 12rem; letter-spacing: -.01em;}
.main .prize-hero-pill .ph-amt {font-size: 28rem; font-weight: 700; letter-spacing: -.02em; white-space: nowrap;}
.main .prize-hero-pill .ph-amt span {font-size: 62rem; vertical-align: -4rem; margin: 0 6rem;}
.main .prize-hero-img {position: relative; z-index: 2; width: 480rem; margin-left: -72rem;}


/* ========== 참가 이유 (#reason) ========== */

.main #reason {padding: 100rem 0 0;}
.main .reason-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 24rem; max-width: 1248rem; margin: 0 auto;}
.main .reason-card {display: flex; gap: 24rem; align-items: flex-start; background: #F5F5F7; border: 1rem solid #E4E8F1; border-radius: 12rem; padding: 24rem; box-shadow: none;}
.main .reason-card .ric {position: relative; width: 56rem; height: 56rem; flex: 0 0 56rem; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden;}
.main .reason-card .ric picture {display: block; width: 100%; height: 100%;}
.main .reason-card .ric img {display: block; width: 100%; height: 100%; object-fit: contain;}
.main .reason-card .reason-body {flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8rem; justify-content: center;}
.main .reason-card h3 {font-size: 22rem; font-weight: 600; line-height: 1.5; margin: 0; letter-spacing: -0.22rem; color: #111;}
.main .reason-card h3.pt,
.main .reason-card h3 .pt {color: #006BC8;}
.main .reason-card p {font-size: 16rem; font-weight: 400; color: #333; line-height: 1.5; letter-spacing: -0.16rem; margin: 0;}
.main .reason-card p strong {color: #006BC8; font-weight: 400;}


/* ========== 추천 대상 (#recommend) ========== */

.main #recommend {background: #fff; }
.main .rec-grid {display: grid; grid-template-columns: repeat(6, 1fr); gap: 24rem;}
.main .rec-card {display: flex; flex-direction: column; align-items: center; gap: 16rem; text-align: center; background: none; border: none; border-radius: 0; overflow: visible; box-shadow: none;}
.main .rec-card .rec-av {width: 160rem; max-width: 160rem; aspect-ratio: 1/1; height: auto; border-radius: 50%; background: #D9D9D9; margin: 0; display: block; overflow: hidden; object-fit: cover;}
.main .rec-card .rec-body {padding: 0; display: flex; flex-direction: column; gap: 4rem; align-items: center; justify-content: center; width: 100%;}
.main .rec-card h4 {font-size: 20rem; font-weight: 500; margin: 0; letter-spacing: -0.2rem; line-height: 1.5; color: #000;}
.main .rec-card p {font-size: 16rem; font-weight: 400; color: #333; line-height: 1.5; letter-spacing: -0.16rem; margin: 0;}


.main #benefit{background: linear-gradient(162deg, #FEDEFF 4.69%, #C9EFFF 95.31%);}
.main #benefit #prize .panel{padding-top: 84rem;}


/* ========== 상담 가능 학교 (#schools) ========== */

.main #schools {background: #fff;}
.main #schools .school-marquee {position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 18rem; width: 100vw; margin-left: calc(-50vw + 50%); padding: 6rem 0 16rem; -webkit-mask-image: linear-gradient(90deg, transparent, #000 13%, #000 87%, transparent); mask-image: linear-gradient(90deg, transparent, #000 13%, #000 87%, transparent);}
.main #schools .school-row {display: flex; overflow-x: clip; overflow-y: visible;}
.main #schools .school-track {display: flex; width: max-content; will-change: transform;}
.main #schools .school-track.rtl {animation: schoolMarqRtl 48s linear infinite; animation-fill-mode: both;}
.main #schools .school-track.ltr {transform: translateX(-33.333333%); animation: schoolMarqLtr 48s linear infinite; animation-fill-mode: both;}
.main #schools .school-row.sm-row {display: none;}
.main #schools .school-row:hover .school-track {animation-play-state: paused;}
.main #schools .school-marquee .school-card {width: 296rem; flex: 0 0 auto; margin-right: 18rem;}
.main .school-card {background: #fff; border: 1rem solid var(--line); border-radius: var(--r16); padding: 26rem 24rem; box-shadow: var(--shadow-1); transition: .2s; text-align: left; display: flex; flex-direction: column;}
.main .school-card:hover {box-shadow: var(--shadow-1);}
.main .school-card .slogo {height: 54rem; max-width: 160rem; width: auto; object-fit: contain; object-position: left center; margin: 0 0 18rem; display: block;}
.main .school-card .sname {font-size: 16rem; font-weight: 800; line-height: 1.4; letter-spacing: -.02em; color: var(--t1); margin-bottom: 14rem; flex: 1;}
.main .school-card .scountry {display: flex; flex-wrap: wrap; gap: 7rem; align-items: center;}
.main .school-card .scountry .fimg {width: 26rem; height: 18rem; object-fit: cover; border-radius: 3rem; box-shadow: 0 0 0 1rem rgba(0, 0, 0, .1); display: block;}
.main .school-foot {text-align: center; margin-top: 36rem;}
.main .school-note {font-size: 13rem; color: var(--t4); margin-bottom: 20rem;}
.main #schools .btn-dark {display: inline-flex; align-items: center; justify-content: center; height: 52rem; padding: 0 30rem; font-size: 17rem; font-weight: 600; background: var(--ink); color: #fff; border-radius: 8rem; text-decoration: none; transition: background .2s;}
.main #schools .btn-dark:hover {background: #2a2f36;}

@keyframes schoolMarqRtl {
    from {transform: translateX(0);}
    to {transform: translateX(-33.333333%);}
}
@keyframes schoolMarqLtr {
    from {transform: translateX(-33.333333%);}
    to {transform: translateX(0);}
}


/* ========== 후기 / 영상 (#review) ========== */

.main #review {background: #F5F5F7; overflow: hidden;}
.main #review .sec-head p {color: var(--t3);}
.main #review .yt-wrap {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24rem; margin-bottom: 60rem; align-items: start;}
.main #review .yt-card {display: flex; flex-direction: column; gap: 16rem; min-width: 0;}
.main #review .yt-player {position: relative; aspect-ratio: 612 / 343; border-radius: 24rem; overflow: hidden; background: #000;}
.main #review .yt-player iframe {position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block;}
.main #review .yt-facade {position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; cursor: pointer; display: block; background: #000;}
.main #review .yt-facade img {width: 100%; height: 100%; object-fit: cover; display: block;}
.main #review .yt-facade .pbtn {position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 80rem; height: 80rem; border-radius: 50%; background: rgba(0, 0, 0, .8); display: flex; align-items: center; justify-content: center; transition: background .2s; pointer-events: none;}
.main #review .yt-facade .pbtn svg {width: 25rem; height: 32rem; margin-left: 4rem; display: block;}
.main #review .yt-caption {margin: 0; font-size: 18rem; font-weight: 600; line-height: 1.5; letter-spacing: -.18rem; color: #000;}
.main .review-grid {margin: 0; padding: 0;}
.main .review-carousel .slide-navigation:has(.swiper-pagination-lock) {display: none;}
/* .main .review-carousel .slide {overflow: hidden;} */
.main .review-carousel .slide{position: relative; width: 100%; order: 2;}
.main .review-carousel .slide::before{content: ''; position: absolute; top: 0; left: -100%; height: calc(100% + 24rem); background: linear-gradient(90deg, #F5F5F7 calc(100% - 14rem), transparent); z-index: 10; width: 100%;}
.main .review-carousel .slide::after{content: ''; position: absolute; top: 0; right: -100%; height: calc(100% + 24rem); background: linear-gradient(-90deg, #F5F5F7 calc(100% - 14rem), transparent); z-index: 10; width: 100%;}
.main .review-carousel.lock .slide {overflow: visible;}
.main .review-carousel .review-grid.swiper-wrapper {align-items: stretch;}
.main .review-carousel .rv-card.swiper-slide {display: flex; flex-direction: column; height: auto; box-sizing: border-box; max-width: calc(100%/5);}
.main .rv-card {background: #fff; border: 1rem solid var(--line); border-radius: var(--r16); overflow: hidden; box-shadow: var(--shadow-1); transition: .2s; display: flex; flex-direction: column; height: 100%; min-height: 100%;}
.main .rv-card:hover {box-shadow: var(--shadow-2);}
.main .rv-photo {width: 100%; height: 188rem; object-fit: cover; display: block; background: #eef1f4;}
.main .rv-body {padding: 24rem 16rem 24rem; display: flex; flex-direction: column; flex: 1;}
.main .rv-head {display: flex; align-items: center; gap: 8rem; margin-bottom: 16rem;}
.main .rv-head .av {width: 20rem; height: 20rem; flex: 0 0 20rem; }
.main .rv-head .nm {font-weight: 500; font-size: 14rem; letter-spacing: -0.14rem; line-height: 150%; color: #000000;}
.main .rv-head .rv-stars {margin-left: auto; background-image: url('https://s3.ap-northeast-2.amazonaws.com/img.edmtw.com/lfair/main/2610-rv-stars.svg'); background-repeat: norepeat; background-size: contain; background-position: center; width: 85rem; height: 16rem;}
.main .rv-card p {font-size: 14rem; color: var(--t2); line-height: 150%; letter-spacing: -0.14rem; flex: 1; word-break: normal;}
.main .rv-counter {display: none;}

/* 후기 카드 Swiper */
.main .review-carousel{display: flex; flex-wrap: wrap;}
.main .review-carousel .slide-navigation.type1 {align-items: center; justify-content: flex-end; width: 100%; order: 1; display: flex; margin-bottom: 40rem;}
.main .review-carousel .slide-navigation.type1 button {width: 40rem; height: 40rem; border: none; border-radius: 50%; background-color: #E2E2E5; background-size: contain; background-repeat: no-repeat; background-position: center; cursor: pointer; padding: 0; font-size: 0; transition: opacity .2s;}
.main .review-carousel .slide-navigation.type1 button.swiper-button-disabled {opacity: .5; pointer-events: none;}
.main .review-carousel .slide-navigation.type1 button:hover{background-color: #DADADA;}
.main .review-carousel .slide-navigation.type1 .nav-next {margin-left: 8rem;}
.main .review-carousel .slide-navigation.type1 .nav-prev {background-image: url("https://s3.ap-northeast-2.amazonaws.com/img.edmuhak.com/uhak/renewal/common/slide-prev.svg");}
.main .review-carousel .slide-navigation.type1 .nav-next {background-image: url("https://s3.ap-northeast-2.amazonaws.com/img.edmuhak.com/uhak/renewal/common/slide-next.svg");}


/* ========== 聯絡我們 (#map) ========== */

.main #map {background: #fff; }
.main #map .contact-wrap {display: flex; align-items: center; justify-content: space-between; gap: 40rem;}
.main #map .contact-info {flex: 0 0 383rem; width: 383rem; display: flex; flex-direction: column; gap: 40rem;}
.main #map .contact-block h3 {font-size: 32rem; font-weight: 700; letter-spacing: -.64rem; line-height: 1.3; color: #000; margin: 0 0 8rem;}
.main #map .contact-block h4 {font-size: 20rem; font-weight: 700; letter-spacing: -.4rem; line-height: 1.3; color: #000; margin: 0 0 8rem;}
.main #map .contact-block p {font-size: 18rem; font-weight: 400; letter-spacing: -.36rem; line-height: 1.3; color: #333; margin: 0;}
.main #map .contact-block p + p {margin-top: 2rem;}
.main #map .contact-block p.contact-addr {margin-bottom: 12rem;}
.main #map .contact-more {display: inline-flex; align-items: center; justify-content: center; height: 29rem; padding: 0 12rem; background: #FC1D01; color: #fff; font-size: 16rem; font-weight: 500; letter-spacing: -.32rem; line-height: 1.3; border-radius: 4rem; text-decoration: none; transition: background .2s; }
.main #map .contact-more:visited{color: #fff; text-decoration: none;}
.main #map .contact-block a[href^="tel:"] {color: inherit; text-decoration: none;}
.main #map .contact-block a.line{text-decoration: underline;}
.main #map .contact-map {flex: 0 1 620rem; width: 620rem; max-width: min(620rem, 100%); min-width: 0;}
.main #map .contact-map img {display: block; width: 100%; height: auto; aspect-ratio: 620 / 330; object-fit: cover;}

@media screen and (max-width: 1200px) {
	.main #map .contact-info {flex: 1 1 320rem; width: auto; min-width: 0;}
	.main #map .contact-map {flex: 1 1 420rem; width: auto;}
}


/* ========== 수상·국제기구 협력 (assoc) ========== */

.main .assoc {background: var(--bg-band); padding: 96rem 0;}
.main .assoc .sec-head {margin-bottom: 32rem;}
.main .assoc-tabs {display: flex; justify-content: center; gap: 8rem; margin-bottom: 40rem;}
.main .assoc-tab {font-family: inherit; font-size: 16rem; font-weight: 600; color: var(--t3); background: #EAEAEE; border: none; border-radius: var(--rfull); padding: 9rem 24rem; cursor: pointer; transition: background .2s, color .2s;}
.main .assoc-tab.active {background: var(--green); color: #fff;}
.main .assoc-marquee {position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);}
.main .assoc-pane {display: none;}
.main .assoc-pane.active {display: block;}
.main .assoc-track {display: flex; align-items: flex-start; width: max-content; animation: assocScroll 24s linear infinite;}
.main .assoc-logo {flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; gap: 16rem; text-align: center; margin-right: 32rem;}
.main .assoc-logo img {height: 60rem; width: auto; object-fit: contain; display: block;}
.main .assoc-logo .acap {font-size: 14rem; color: #666; line-height: 1.4; font-weight: 400; white-space: nowrap;}
@keyframes assocScroll {
    from {transform: translateX(0);}
    to {transform: translateX(-33.333333%);}
}


/* ========== 기타 유틸 ========== */

svg {flex-shrink: 0;}
a {color: inherit; text-decoration: none;}
.main section {scroll-margin-top: calc(var(--site-header-offset) + var(--catnav-h));}
.main .winimg {width: 100%; display: block; filter: drop-shadow(0 24rem 50rem rgba(80, 110, 160, .22));}
@keyframes floaty {
    0%, 100% {transform: translateY(0);}
    50% {transform: translateY(-12rem);}
}
.main .sec.alt {background: var(--bg-soft);}

/* ========== 常見問題 (.common-questions) ========== */
.main .sec.common-questions {text-align: left; padding-bottom: 0;}
.main .common-questions .sec-head p b{color: inherit; font-weight: 700;}
.main .common-questions .list li {background-color: #F5F5F7; border-radius: 12rem; box-shadow: 0 0 0 1px #E4E8F1; cursor: pointer;}
.main .common-questions .list li + li {margin-top: 12rem;}
.main .common-questions .list li .front {width: 26rem; height: 26rem; border-radius: 50%; line-height: 26rem; text-align: center; color: #fff; position: absolute; left: 40rem; top: 27rem; font-size: 16rem; font-weight: 600; display: flex; justify-content: center; align-items: center;}
.main .common-questions .list li .q {position: relative; font-size: 20rem; font-weight: 700; line-height: 1.5; letter-spacing: -.2rem; padding: 24rem 40rem 24rem 82rem;}
.main .common-questions .list li .q .icon-arrow {position: absolute; right: 40rem; top: 50%; transform: translateY(-50%); width: 30rem; height: 30rem; background-image: url('https://s3.ap-northeast-2.amazonaws.com/img.edmuhak.com/uhak/renewal/language-study/guide/common-questions-arrow-30.svg'); background-size: contain; background-repeat: no-repeat; background-position: center;}
.main .common-questions .list li .q .front {background-color: #000;}
.main .common-questions .list li .q h3 {font-size: 20rem; font-weight: 500; line-height: 1.5; letter-spacing: -.2rem; color: #000; margin: 0; padding-right: 20rem;}
.main .common-questions .list li .a {padding: 8rem 40rem 24rem 82rem; position: relative; color: #666; font-size: 18rem; line-height: 1.6; letter-spacing: -.18rem; display: none;}
.main .common-questions .list li .a .front {background-color: #006BC8; top: 8rem; opacity: 0; transition: opacity .3s ease;}
.main .common-questions .list li .a .txt {opacity: 0; transition: opacity .3s ease;}
.main .common-questions .list li .a .txt b {font-weight: 700;}
.main .common-questions .list li.active .icon-arrow {background-image: url('https://s3.ap-northeast-2.amazonaws.com/img.edmuhak.com/uhak/renewal/common/common-questions-arrow2-30.svg');}
.main .common-questions .list li.active .a .front,
.main .common-questions .list li.active .a .txt {opacity: 1;}


/* ========== 반응형 ========== */

@media (prefers-reduced-motion:reduce) {
    .main .saf-main-section01 .hfloat {animation: none;}
    .main .assoc-track {animation: none;}
    .main #schools .school-track {animation: none;}
}

@media screen and (min-width: 992px) {
    html:has(#main.main) *[class^="pc-"] {display: block;}
    html:has(#main.main) *[class^="mo-"] {display: none;}
    .main .catnav {top: var(--site-header-offset);}
    .main .catnav-in {justify-content: center; align-items: stretch;}
    .main .catnav a {font-size: 20rem; font-weight: 500; padding: 18rem; height: auto;}
}

@media screen and (max-width: 1180px){
	.main .review-carousel .slide::before{background: linear-gradient(90deg, #F5F5F7 calc(100% - 8rem), transparent);}
	.main .review-carousel .slide::after{background: linear-gradient(-90deg, #F5F5F7 calc(100% - 8rem), transparent);}
}

/* --- max-width: 1024px — rec-grid --- */
@media screen and (max-width:1024px) {
    .main .rec-grid {grid-template-columns:repeat(3,1fr);gap:30rem;}
    .main .rec-card .rec-av {max-width:150rem;}
}

/* --- max-width: 991px --- */
@media screen and (max-width: 991px) {
    /* 레이아웃 */
    *[class^="pc-"] {display: none;}
    *[class^="mo-"] {display: block;}
    .main .mbr {display:inline;}
	/* sticky(catnav) 바로 밑부터 섹션이 보이도록 — 헤더 show/hide에 연동 */
	.main section {scroll-margin-top: calc(var(--site-header-offset) + var(--catnav-h));}
	.main #map {scroll-margin-top: calc(var(--site-header-offset) + var(--catnav-h));}
	main.main{margin-top: -64rem;}
	.main #review .sec-head p{color: var(--t2);}

    /* 헤더 / 네비 */
    #navigation .logo-pc {display: none;}
    #navigation .logo-mo {display: block;}
    #navigation .nav-pc,
    #navigation .head-cta .btn {display: none;}
    #navigation .hamburger {display: flex;}
    #navigation .head-in {height: 64rem;}
    .main .catnav-in {height:54rem;align-items:center;gap:20rem;justify-content:center;width:max-content;max-width:calc(100% - 32rem);}
    .main .catnav a {font-size:15rem;font-weight:400;padding:0;height:54rem;display:flex;align-items:center;}
    .main .catnav a:hover {font-weight:600;}

    /* 메인 비주얼 (hero) */
    .main .saf-main-section01 {min-height:0;background:url("https://s3.ap-northeast-2.amazonaws.com/img.edmuhak.com/lfair/main/hero-bg-mo.jpg") top center / cover no-repeat;}
	.main section.saf-main-section01{padding: 104rem 0 0;}
    .main .saf-main-section01 .hfloat {display:none;}
    .main .saf-main-section01 .hf1 {display:block;position:absolute;top:auto;bottom:14%;left:6%;width:80rem;right:auto;z-index:6;}
    .main .hero-cta {display:flex; flex-direction:column; align-items:stretch;}
    .main .saf-main-section01 .urgent {display:flex;justify-content:center;font-size:16rem;font-weight:600;margin-bottom:16rem;letter-spacing:-0.16rem;line-height:1.5;}
    .main .hero-sub-badge {font-size:15rem;font-weight:600;padding:6rem 16rem;margin-bottom:16rem;}
    .main .saf-main-section01 h1 {font-size:32rem;margin:0 0 24rem;letter-spacing:-0.64rem;line-height:1.3;}
    .main .saf-main-section01 .lead {font-size:16rem;font-weight:500;color:#666;margin-bottom:16rem;}
    .main .hero-info {padding:16rem;margin-left:auto;margin-right:auto;margin-bottom:16rem; max-width:none;width:100%; font-size:14rem; font-weight:400; line-height:1.5; letter-spacing:-0.14rem; color:#333;}
    .main .hero-copy {text-align:center;display:flex;flex-direction:column;align-items:center;}
    .main .hi-row {flex-wrap:nowrap;gap:16rem;justify-content:flex-start;width:100%;}
    .main .hi-row .lab {font-size:14rem;font-weight:400;color:#666;flex:0 0 auto;white-space:nowrap;}
    .main .hi-row .val {font-size:14rem;font-weight:600;color:#333;white-space:nowrap;}
    .main .win-cap {font-size:12rem;font-weight:700;height:26rem;padding:0 14rem;}
    .main .win-content {gap:8rem;}
    .main .win-headline .wh-pre, .main .win-headline .wh-suf {font-size:18rem;}
    .main .win-headline .wh-unit {font-size:28rem;}
    .main .win-headline .wh-num {font-size:46rem;}
    .main .hero-floor-mo {display:block;width:100vw;margin-left:calc(-50vw + 50%);margin-top:55rem;position:relative;z-index:1;}
    .main .hero-grid {grid-template-columns:1fr;gap:0;}
    .main .hero-window {max-width:252rem;}
    .main .saf-main-section01 .btn a{font-size:16rem;height:40rem;border-radius:8rem;letter-spacing:-0.16rem;}
    .main .saf-main-section01 .btn a .hero-cta-arrow {width:16rem;height:16rem;}
    .main .saf-main-section01 .btn-lg {width:100%;font-size:16rem;padding:12rem 24rem;height:40rem;line-height:1;}
    .main .mainTag > em {font-size:15rem; font-weight:700; padding:6rem 16rem; margin-bottom:16rem; letter-spacing:-0.15rem; line-height:1.5;}

    /* 히어로 밴드 */
    .main .hero-band {padding:34rem 0;}
    .main .hero-band .band-eyebrow {font-size:16rem;}
    .main .hero-band .big {font-size:28rem;}
    .main .hero-band .tag {font-size:18rem;font-weight:600;}

    /* 섹션 공통 */
    .main section.sec {padding:100rem 0 ;}
    .main .sec-head {margin-bottom:24rem;}
    .main .sec-head h2,
    .main .sec-head .saf-main-sub-title {font-size:22rem; letter-spacing:-.44rem;}
    .main .sec-head p,
    .main .sec-head .saf-main-sub-text {font-size:16rem; margin-top:4rem; letter-spacing:-.16rem;}
    .main .block-title {font-size:22rem;}

    /* 참가 이유 (reason) */
	.main #reason{padding: 50rem 0 0;}
    .main .reason-grid {grid-template-columns:1fr;gap:16rem;}
    .main .reason-card {display:flex;gap:12rem;align-items:flex-start;padding:16rem;}
    .main .reason-card .ric {width:40rem;height:40rem;flex:0 0 40rem;}
    .main .reason-card h3 {font-size:16rem; letter-spacing:-0.2rem; line-height:150%;}
    .main .reason-card p {font-size:14rem; letter-spacing:-0.14rem; line-height:150%;}

    /* 추천 대상 (recommend) */
	.main .sec.saf-main-recommend{padding-bottom: 60rem;}
    .main .rec-grid {grid-template-columns:repeat(2,1fr);gap:24rem;}
    .main .rec-card .rec-av {max-width:140rem;width:140rem;}
    .main .rec-card h4 {font-size:14rem;font-weight:600;letter-spacing:-0.14rem;}
    .main .rec-card p {font-size:14rem;letter-spacing:-0.14rem;}

	.main #benefit{padding: 60rem 0; background: linear-gradient(175deg, #FEDEFF -3.91%, #C8EEFF 104.44%);}

    /* 상담 가능 학교 (schools) */
	.main #schools{padding: 60rem 0 50rem;}
    .main #schools .school-marquee {gap: 8rem;}
    .main #schools .school-marquee .school-card {width: 200rem; margin-right: 8rem;}
    .main #schools .school-row:not(.sm-row) {display: none;}
    .main #schools .school-row.sm-row {display: flex;}
    .main #schools .school-card {padding:16rem;min-width:0;}
    .main #schools .school-card .slogo {max-width:100%; height: 47rem; margin-bottom: 16rem;}
	.main .school-card .sname{margin-bottom: 17rem; font-size: 14rem; ne-height: 22.4rem; letter-spacing: -0.32rem;}
	.main .school-foot{margin-top: 24rem;}
	.main .school-note{margin-bottom: 16rem;}

    /* 후기 / 영상 (review) */
	.main #review{padding: 50rem 0 60rem;}
    .main #review .yt-wrap {grid-template-columns: 1fr; gap: 24rem; margin-bottom: 24rem;}
    .main #review .yt-card {gap: 12rem;}
    .main #review .yt-player {border-radius: 12rem;}
    .main #review .yt-facade .pbtn {width: 48rem; height: 48rem;}
    .main #review .yt-facade .pbtn svg {width: 12rem; height: 16rem; margin-left: 2rem;}
    .main #review .yt-caption {display: none;}
	.main .review-carousel .slide{width: 100%; padding-bottom: 4rem; order: 1;}
	.main .review-carousel .slide::after{display: none;}
	.main .review-carousel .slide-navigation.type1{order: 2; margin: 0;}
	.main .review-carousel .slide-navigation.type1 button{display: none;}
	.main .review-carousel .slide-navigation.type1 .fraction{display: flex; background: #C5C5C5; margin: 16rem 0 0 auto; width: auto; display: flex; justify-content: center; align-items: center; font-size: 15rem;line-height: 150%; letter-spacing: -0.15rem; padding: 0 12rem; border-radius: 999999px; color: var(--t2);}
	.main .review-carousel .slide-navigation.type1 .fraction .swiper-pagination-current{font-weight: 700; color: var(--ink);}
	.main .review-carousel .rv-card.swiper-slide{max-width: 200rem;}

	.main .sec.common-questions{padding: 60rem 0;}
	.main .common-questions .list li .front {width: 24rem; height: 24rem; font-size: 14rem; line-height: 24rem; font-weight: 500;}
    .main .common-questions .list li .q {padding: 16rem 16rem 16rem 52rem; font-size: 16rem;}
    .main .common-questions .list li .q h3 {font-size: 16rem; letter-spacing: -.16rem;}
    .main .common-questions .list li .q .icon-arrow {background-image: url('https://s3.ap-northeast-2.amazonaws.com/img.edmuhak.com/uhak/renewal/common/common-questions-arrow-20.svg'); width: 20rem; height: 20rem; right: 16rem;}
    .main .common-questions .list li .q .front {top: 16rem; left: 16rem;}
    .main .common-questions .list li .a {padding: 8rem 16rem 16rem 52rem; font-size: 15rem;}
    .main .common-questions .list li .a .front {top: 8rem; left: 16rem;}
    .main .common-questions .list li.active .q .icon-arrow {background-image: url('https://s3.ap-northeast-2.amazonaws.com/img.edmuhak.com/uhak/renewal/common/common-questions-arrow2-20.svg');}

    .main .rv-photo {height:120rem;}
    .main .rv-body {padding:14rem 14rem 16rem;}
    .main .rv-head .av {display:none;}
    .main .rv-head .nm {font-size:13rem;}
    .main .rv-card p {font-size:13rem;}

    /* 聯絡我們 (map) */
    .main #map {padding: 50rem 0 60rem;}
    .main #map .contact-wrap {flex-direction: column; align-items: stretch; gap: 24rem;}
    .main #map .contact-info {flex: none; width: 100%; gap: 24rem;}
    .main #map .contact-block h3 {font-size: 20rem; letter-spacing: -.2rem; line-height: 1.5;}
    .main #map .contact-block h4 {font-size: 16rem; letter-spacing: -.32rem;}
    .main #map .contact-block p {font-size: 14rem; letter-spacing: -.28rem;}
    .main #map .contact-more {height: 26rem; font-size: 14rem; letter-spacing: -.28rem;}
    .main #map .contact-map {flex: none; width: 100%;}

    /* 수상·국제기구 협력 (assoc) */
    .main .assoc {padding:60rem 0;}
    .main .assoc-tab {font-size:14rem;padding:7rem 18rem;}
    .main .assoc-tabs {margin-bottom:24rem;}
    .main .assoc-logo {gap:8rem;margin-right:40rem;}
    .main .assoc-logo img {height:44rem;}
    .main .assoc-logo .acap {font-size:13rem;}

    /* 플로팅 CTA */
    .floating-in {width:100%;padding:0;}
    .floating-bar {flex-direction:column;gap:0;padding:12rem 16rem;min-height:0;border-radius:0;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;border-top:1rem solid #E4E8F1;}
    .floating-msg {display:none;}
    .floating-btns {width:100%;}
    .floating-btns .btn {flex:1;height:56rem;padding:0 12rem;box-shadow:none;}

    /* 버튼 / 공통 */
    .main .btnWrap {gap: 8rem;}
    .main .btn a {width: auto; height: 40rem; font-size: 15rem; padding: 0 18rem; letter-spacing: -0.15rem; font-weight: 400;}
    .main .btn .btnInner figure.arrow {width: 6rem; height: 11rem;}

	.main .catnav {top: var(--site-header-offset);}
}

/* --- max-width: 768px — catnav, review-carousel --- */
@media screen and (max-width: 768px) {
	.main .review-carousel .slide{width: calc(100% + 16rem);}
    
}

/* --- max-width: 380px — rec-grid --- */
@media screen and (max-width: 380px) {
    .main .rec-grid {grid-template-columns:repeat(2,1fr);}
}

/* ========== reveal (scroll fade-up) ========== */

.main .reveal {transition: opacity .7s var(--ease), transform .7s var(--ease);}
.main .reveal.armed {opacity: 0; transform: translateY(28rem);}
.main .reveal.armed.in {opacity: 1; transform: none;}
.main .reveal.d1 {transition-delay: .08s;}
.main .reveal.d2 {transition-delay: .16s;}
.main .reveal.d3 {transition-delay: .24s;}
.main .reveal.d4 {transition-delay: .32s;}
@media (prefers-reduced-motion: reduce) {
    .main .reveal.armed {opacity: 1; transform: none;}
}
