@charset "utf-8";

.floating-menu { display: none !important; }

.theme-clr { color: var(--clr-primary400); }
section { padding: 10rem 0; }
.content { margin: 8rem 0 0; }

.no-aos [data-aos] { opacity: 1 !important; transform: none !important; }
.sub-landing main { overflow-x: clip; }
.title {
    font-family: 'Paperlogy';
    font-size: 3.6rem;
    font-weight: 700;
    color: var(--clr-black);
    line-height: 1.4;
    text-align: center;
}
.title-p {
    font-size: 2rem;
    font-weight: 300;
    margin: 1rem 0 0;
    text-align: center;
}

/* ****************************** 과정 상세 인트로 (lecture/view.asp) ****************************** */
.lec-intro {
    padding: 8rem 0;
    background: linear-gradient(160deg, #fff 35%, #f2f4f9);
}
.lec-intro .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6rem;
}
.lec-intro-txt {
    flex: 1 1 auto;
    min-width: 0;
}
.lec-intro-badge {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 3rem;
}
.lec-intro-badge > p {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1.4rem 2rem;
    font-size: var(--fs-medium);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
    border-radius: 2px;
    white-space: nowrap;
}
/* 로고(2.4rem)가 글자보다 높아 위아래 여백을 줄여야 옆 배지와 높이가 같다.
   (0 으로 두면 배지가 두 줄로 접힐 때 이 배지만 납작해진다) */
.lec-intro-badge .badge-org {
    padding: 1.1rem 2.4rem 1.1rem 1.6rem;
    font-family: 'Paperlogy';
    color: var(--clr-black);
    background: var(--clr-gray100);
}
.lec-intro-badge .badge-org > img { width: 2.4rem; }
.lec-intro-badge .badge-eid {
    color: #fff;
    background: linear-gradient(90deg, #e93f1a, #d354a3);
}
.lec-intro-tit {
    margin: 0;
    font-family: 'Paperlogy';
    font-size: 6.8rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: var(--clr-black);
    word-break: keep-all;
}
.lec-intro-desc {
    margin: 1rem 0 0;
    font-size: var(--fs-regular);
    font-weight: 500;
    color: var(--clr-gray600);
}
/* 수강료 + 응시료 0원 박스. 안의 p 는 base.css 의 p 색상(회색)을 받으므로 흰색을 직접 준다 */
.lec-intro-fee {
    display: flex;
    align-items: center;
    gap: 3rem;
    width: fit-content;
    max-width: 100%;
    margin: 2.4rem 0 0;
    padding: 2rem 3rem;
    box-sizing: border-box;
    background: #000;
    border-radius: 6px;
}
.lec-intro-fee .fee-txt { min-width: 0; }
.lec-intro-fee .fee-plan {
    font-family: 'Paperlogy';
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
}
.lec-intro-fee .fee-plan > span {
    margin: 0 0.4rem;
    font-weight: 400;
}
.lec-intro-fee .fee-workbook {
    margin: 0.4rem 0 0;
    font-size: 2rem;
    color: #fff;
}
.lec-intro-fee .fee-workbook > b { font-weight: 700; }
/* 점 5개 : 위에 덮은 검정 그라데이션으로 왼쪽일수록 어둡게 한다 */
.lec-intro-fee .fee-dots {
    flex: 0 0 8rem;
    height: 0.6rem;
    background:
        linear-gradient(90deg, #000, rgba(0,0,0,0)),
        radial-gradient(circle, rgba(255,255,255,0.75) 0.2rem, rgba(255,255,255,0) 0.25rem) 0 50% / 1.6rem 100% repeat-x;
}
.lec-intro-fee .fee-price {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.2rem;
    margin-left: auto;
    font-family: 'Paperlogy';
    font-size: 3.6rem;
    font-weight: 500;
    line-height: 1;
    color: red;
}
.lec-intro-fee .fee-price > strong {
    font-size: 6.4rem;
    font-weight: 900;
    animation: lecBlink 1s ease-in-out infinite;
}
/* 깜빡임 : 인트로 0원 · 강의정보 100% ONLINE 공용 */
@keyframes lecBlink {
    50% { opacity: 0.2; }
}
@media (prefers-reduced-motion: reduce) {
    .lec-intro-fee .fee-price > strong,
    .lec-info-list .info-online,
    .lec-comp .comp-after::before { animation: none; }
}
.lec-intro-img {
    flex: 0 0 40%;
    border-radius: 2rem;
    overflow: hidden;
    box-shadow: 0 1.6rem 4rem rgba(40,50,80,0.16);
}
.lec-intro-img > img {	/* 관리자 썸네일 규격 320*170 */
    display: block;
    width: 100%;
    aspect-ratio: 320 / 170;
    object-fit: cover;
}

/* ****************************** 기관정보 · 강의정보 (lecture/view.asp) ****************************** */
.lec-info {
    padding: 8rem 0;
    background: #eef1fa;
}
.lec-info .container {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}
.lec-info-org {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
}
.lec-info-card {
    padding: 4rem;
    background: #fff;
    border-radius: 2rem;
}
/* 라벨 - 값 목록 (기관정보 · 강의정보 공용) */
.lec-info-list > li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.2rem;
    box-sizing: border-box;
    border-bottom: 1px dashed var(--clr-gray100);
    font-weight: 600;
}
.lec-info-list > li:last-child { border-bottom: none; }
.lec-info-list > li > span {
    flex: 0 0 auto;
    font-size: var(--fs-regular);
    color: var(--clr-gray400);
}
.lec-info-list > li > span::before { content: '- '; }
.lec-info-list > li > b {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem 1.2rem;
    min-width: 0;
    font-size: var(--fs-medium);
    font-weight: 700;
    text-align: right;
    color: var(--clr-black);
    word-break: keep-all;
}
.lec-info-list .info-online {
    padding: 0.6rem 0.8rem;
    font-size: var(--fs-mini);
    font-weight: 400;
    line-height: 1;
    color: #f0412e;
    background: #fdecea;
    border-radius: 2px;
    animation: lecBlink 1s ease-in-out infinite;
}
/* 정식등록 카드 */
.lec-info-reg {
    display: flex;
    flex-direction: column;
}
.lec-info-reg .reg-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.lec-info-reg .reg-label {
    font-size: var(--fs-small);
    font-weight: 300;
    letter-spacing: 0.12em;
    color: var(--clr-gray400);
}
.lec-info-reg .reg-badge {
    padding: 0.8rem 1.8rem;
    font-size: var(--fs-mini);
    font-weight: 600;
    line-height: 1;
    color: var(--clr-primary400);
    background: var(--clr-primary50);
    border-radius: 99px;
    white-space: nowrap;
}
.lec-info-reg .reg-tit {
    margin: 1rem 0 0;
    font-family: 'Paperlogy';
    font-size: 3rem;
    font-weight: 700;
    color: var(--clr-black);
    word-break: keep-all;
}
.lec-info-reg .reg-no {
    margin: 1rem 0 0;
    padding: 2.3rem 1rem;
    font-size: 4.2rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    color: #fff;
    background: linear-gradient(90deg, #4a65ad, #d9509f);
    border-radius: 4px;
}
.lec-info-reg .reg-desc {
    margin: 2rem 0 0;
    font-size: var(--fs-xsmall);
    color: var(--clr-gray400);
}
.lec-info-reg .reg-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    margin-top: auto;
}
.lec-info-reg .reg-issuer {
    font-size: var(--fs-small);
    color: var(--clr-gray600);
}
.lec-info-reg .reg-issuer > span::before {
    content: '|';
    margin: 0 1rem;
    color: var(--clr-gray200);
}
/* 강의정보 2열 + 가운데 세로 구분선 */
.lec-info-cols {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 10rem;
}
.lec-info-cols::before {
    content: '';
    position: absolute;
    top: -1rem;
    bottom: -1rem;
    left: 50%;
    width: 1px;
    background: var(--clr-gray100);
}

/* ****************************** FAQ (lecture/view.asp) ****************************** */
/* 커뮤니티 FAQ(.faq-item)와 섞이지 않도록 lec-faq-* 를 따로 쓴다.
   Q1/A1 번호는 CSS 카운터로 매기므로 항목을 늘리거나 줄여도 마크업을 고칠 필요가 없다 */
.lec-faq {
    padding: 10rem 0;
    background: #fff;
}
.lec-faq .container {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 4rem;
}
/* 제목 글꼴·크기는 공용 .title 을 따른다. 여기서는 좌우 배치와 과정명 줄 나눔만 */
.lec-faq .title {
    flex: 1 1 auto;
    min-width: 0;
    word-break: keep-all;
}
.lec-faq .title > small {
    display: block;
    font-size: 0.75em;
}
.lec-faq-body { flex: 0 0 70%; }
.lec-faq-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    counter-reset: lecFaq;
}
/* 여닫힘 색 전환에 transition 을 걸지 않는다 : AOS 의 transition-property 가 뒤에 로드되어 덮어쓴다 */
.lec-faq-item {
    counter-increment: lecFaq;
    background: #fff;
    border: 1px solid var(--clr-gray100);
    border-radius: 1.6rem;
}
.lec-faq-item.active {
    border-color: #e04fa5;
    box-shadow: 0 0.4rem 1.2rem rgba(224,79,165,0.1);
}
.lec-faq-item.active:nth-child(even) {
    border-color: #5566b8;
    box-shadow: 0 0.4rem 1.2rem rgba(85,102,184,0.1);
}
/* 질문 : Q 번호는 첫 줄에 맞추고, 화살표는 줄 수와 상관없이 가운데 */
.lec-faq-q {
    position: relative;
    padding: 2.8rem 7rem 2.8rem 9rem;
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -0.03em;
    color: var(--clr-black);
    word-break: keep-all;
    cursor: pointer;
}
.lec-faq-q::before,
.lec-faq-a::before {
    position: absolute;
    left: 3rem;
    font-family: 'Paperlogy';	/* base.css 가 의사요소에 remixicon 을 먼저 걸어 두므로 글자 폰트를 직접 준다 */
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}
.lec-faq-q::before {
    content: 'Q' counter(lecFaq);
    top: 2.8rem;
    color: #d6388f;
}
.lec-faq-item:nth-child(even) .lec-faq-q::before { color: #3f51a3; }
.lec-faq-q::after {	/* ri-arrow-down-s-fill */
    content: '\ea4d';
    position: absolute;
    top: 50%;
    right: 3.6rem;
    font-size: 2rem;
    line-height: 1;
    color: var(--clr-gray400);
    transform: translateY(-50%);
    transition: transform 0.3s;
}
.lec-faq-item.active .lec-faq-q::after { transform: translateY(-50%) rotate(180deg); }
/* 답변 : 본문에 <br> 이 들어가므로 flex 를 쓰지 않고 A 번호를 absolute 로 띄운다 */
.lec-faq-a {
    position: relative;
    max-height: 0;
    padding: 0 7rem 0 9rem;
    overflow: hidden;
    font-size: var(--fs-regular);
    line-height: 1.8;
    color: var(--clr-gray600);
    overflow-wrap: anywhere;	/* 끊을 곳 없는 긴 문자열(URL 등)이 들어와도 박스를 넘지 않게 */
    transition: max-height 0.3s ease, padding 0.3s ease;
}
.lec-faq-a::before {
    content: 'A' counter(lecFaq);
    top: 0;
    color: var(--clr-gray200);
}
.lec-faq-item.active .lec-faq-a {
    max-height: 50rem;
    padding-bottom: 3rem;
}

/* ****************************** 커리큘럼 · 샘플강의 (lecture/view.asp) ****************************** */
/* 배경 이미지는 추후 추가 예정. 지금은 바탕색만 */
.lec-curri {
    padding: 10rem 0 12rem;
    background: #152135 url(/images/landing/lec_curri_bg.png) no-repeat bottom center;
}
.lec-curri .container {
    display: flex;
    flex-direction: column;
    gap: 12rem;
}
/* 한 줄 = 왼쪽 제목 + 오른쪽 70% 본문 (FAQ 와 같은 배치) */
.lec-curri-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 4rem;
}
.lec-curri-head {
    flex: 1 1 auto;
    min-width: 0;
}
.lec-curri-body { flex: 0 0 70%; }
.lec-curri .title { color: #fff; }
.lec-curri .title-p { color: rgba(255,255,255,0.6); }
/* 총 강의 구성 : 왼쪽 위 꼬리가 달린 말풍선 카드 */
.lec-curri .curri-total {
    position: relative;
    width: 14rem;
    margin: 3rem 0 0;
    padding: 2.8rem 1rem 2.6rem;
    box-sizing: border-box;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    color: #fff;
    background: #131a29;
    border-radius: 0 1.2rem 1.2rem 1.2rem;
    box-shadow: inset 0 1.2rem 2.4rem rgba(0,0,0,0.25);
}
.lec-curri .curri-total::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 0;
    border-left: 1.6rem solid #131a29;
    border-top: 1.2rem solid transparent;
}
.lec-curri .curri-total > b {
    font-family: 'Paperlogy';
    font-size: 4.4rem;
    font-weight: 700;
    color: #e0559f;
}
.lec-curri .curri-total > small {
    display: block;
    margin-top: 0.8rem;
    font-size: var(--fs-xsmall);
    font-weight: 400;
    color: rgba(255,255,255,0.7);
}
/* 차시 목록 : 번호는 CSS 카운터(01, 02 ...) */
.curri-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    counter-reset: curri;
}
.curri-item {
    counter-increment: curri;
    display: flex;
    align-items: center;
    gap: 2.4rem;
    padding: 1.8rem 2.4rem;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 1.2rem;
}
.curri-item::before {
    content: counter(curri, decimal-leading-zero);
    flex: 0 0 5rem;
    height: 5rem;
    display: grid;
    place-items: center;
    font-family: 'Paperlogy';	/* base.css 가 의사요소에 remixicon 을 먼저 걸어 두므로 글자 폰트를 직접 준다 */
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0;
    color: #fff;
    background: linear-gradient(135deg, #d6509f, #9a59b0);
    border-radius: 1rem;
}
.curri-item .curri-tit {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 2.2rem;
    font-weight: 600;
    color: #fff;
}
.curri-item .curri-time {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 1.2rem;
    font-size: var(--fs-small);
    font-variant-numeric: tabular-nums;
    color: rgba(255,255,255,0.85);
    background: rgba(0,0,0,0.25);
    border-radius: 0.6rem;
}
.curri-item .curri-time > i { font-size: 1.1em; }
/* a:hover { color: inherit } (base.css) 보다 특이도를 높여 글자색을 지킨다 */
.lec-curri .curri-more {
    display: block;
    margin: 1rem 0 0;
    padding: 2.4rem;
    text-align: center;
    font-size: var(--fs-medium);
    font-weight: 700;
    color: #fff;
    background: linear-gradient(90deg, #d6509f, #5a6cb5);
    border-radius: 0.6rem;
    box-shadow: 0 1rem 2rem rgba(0,0,0,0.25);
    cursor: pointer;
}
/* 샘플강의 : 영상 좌우 뒤로 보라색 빛 번짐 (::before 왼쪽, ::after 오른쪽).
   closest-side 로 원이 자기 상자 끝에서 투명해지므로 상자 경계에서 잘린 선이 생기지 않는다 */
.curri-glow { position: relative; }
.curri-glow::before,
.curri-glow::after {
    content: '';
    position: absolute;
    top: 60%;
    width: 52rem;
    aspect-ratio: 5 / 4;
    background: radial-gradient(closest-side, rgba(98,72,214,0.2), rgba(98,72,214,0));
    transform: translate(-50%, -50%);
    pointer-events: none;
}
.curri-glow::before { left: -4rem; }
.curri-glow::after { left: calc(100% + 4rem); }
.curri-video {
    position: relative;
    z-index: 1;	/* 뒤따르는 ::after(오른쪽 빛)가 영상 위를 덮지 않게 */
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 0.8rem;
    overflow: hidden;
    box-shadow: 0 2rem 4rem rgba(0,0,0,0.35);
}
.curri-video video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.curri-video .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70px;
    height: 70px;
    padding: 0;
    border: 0;
    border-radius: 100%;
    background: rgba(0,0,0,0.7);
    color: #fff;
    font-family: 'remixicon';
    font-size: 35px;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
}
.curri-video .play-button::before { content: '\f00b'; }
.curri-video .play-button.pa::before { content: '\efd8'; }
.curri-video .play-button.hide { display: none; }

/* 합격 후기 : 카드는 main.asp 합격후기와 같은 .rv-cards (sub.css 공용).
   흐름·고정 배치·카드 폭·3줄 말줄임은 main.css .sec-pass 규칙을 옮겨 온 것 (main.css 는 이 페이지에서 불러오지 않음).
   흐를지(4개 이상) 고정할지(3개 이하)는 view.asp renderingReview 가 rv-marquee / rv-static 을 붙여 정한다 */
.section-review {
    padding: 14rem 0 12rem;
    background: url('/images/landing/review_bg.png') no-repeat center 2rem;	/* KLVEA 엠블럼 워터마크 (826x678) */
}
.section-review .review-list-wrap {
    overflow: hidden;
    padding: 1rem 0 2rem;	/* 카드 그림자가 잘리지 않게 */
}
.section-review .rv-cards > li {
    flex: 0 0 auto;
    width: min(50rem, 86vw);
    box-shadow: 0 8px 16px rgba(0,0,0,0.05);
}
/* 4개 이상 : 같은 목록 두 벌을 이어 붙여 -50% 까지 흐르고 처음으로 돌아간다.
   카드 간격을 gap 대신 오른쪽 여백으로 주어야 한 벌 폭이 정확히 전체의 절반이 되어 되돌아갈 때 튀지 않는다 */
.section-review .review-list.rv-marquee {
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    width: max-content;
    animation: lecRvMarquee 60s linear infinite;	/* 실제 길이는 renderingReview 가 카드 수로 정한다 */
}
.section-review .rv-marquee > li { margin-right: 4rem; }
.section-review .review-list-wrap:hover .rv-marquee { animation-play-state: paused; }
@keyframes lecRvMarquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
/* 3개 이하 : 흐르지 않고 가운데 고정 */
.section-review .review-list-wrap.rv-fixed {
    width: 140rem;
    max-width: 92%;
    margin: 0 auto;
}
.section-review .review-list.rv-static {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 2.4rem;
}
.section-review .rv-static > li {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    max-width: 50rem;
}
.section-review .rv-cards .review-txt {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: var(--fs-small);
}
@media (prefers-reduced-motion: reduce) {
    .section-review .review-list.rv-marquee { animation: none; }
    .section-review .review-list-wrap { overflow-x: auto; }
}

/* ****************************** 절차 안내 (lecture/view.asp) ****************************** */
/* main.asp 자격증 취득 절차(.sec-steps)와 같은 마크업·모양.
   main.css 는 이 페이지에서 불러오지 않으므로 규칙을 옮겨 두고, 메인과 섞이지 않게 .lec-guide 안으로 한정한다 */
.lec-guide .steps-list {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    max-width: 90%;
    margin: 6rem auto 0;
}
.lec-guide .steps-item {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
}
.lec-guide .steps-arrow {
    position: absolute;
    left: 0;
    bottom: 2rem;
    transform: translateX(-50%);
    font-size: 3rem;
    line-height: 1;
    color: var(--clr-gray300);
    transition: 0.3s;
}
.lec-guide .steps-item.on + .steps-item > .steps-arrow { color: var(--clr-primary400); }
.lec-guide .steps-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18rem;
    height: 18rem;
    margin: 0 auto 2rem;
}
.lec-guide .steps-icon::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    height: 100%;
    border-radius: 100%;
    background: #fff;
    transform: translate(-50%, -50%) scale(0.5);
    opacity: 0;
    transition: 0.5s;
}
.lec-guide .steps-icon > img {
    position: relative;
    z-index: 1;
    width: 9rem;
}
.lec-guide .steps-item.on .steps-icon::before {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    animation: lecStepsGlow 2s ease-in-out infinite;
}
.lec-guide .steps-item.on .steps-icon > img { animation: lecStepsFloat 2s ease-in-out infinite; }
@keyframes lecStepsFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-1rem); }
}
@keyframes lecStepsGlow {
    0%, 100% { box-shadow: 0 0 3rem 1rem rgba(211, 84, 163, 0.1); }
    50% { box-shadow: 0 0 5rem 2rem rgba(211, 84, 163, 0.2); }
}
.lec-guide .steps-num {
    font-size: var(--fs-small);
    color: var(--clr-gray500);
    transition: 0.3s;
}
.lec-guide .steps-num > b {
    font-size: 1.2em;
    font-weight: 700;
    color: var(--clr-black);
}
.lec-guide .steps-name {
    display: block;
    font-size: var(--fs-large);
    font-weight: 600;
    transition: 0.3s;
}
.lec-guide .steps-item.on .steps-name {
    font-weight: 700;
    color: var(--clr-primary400);
}

.section-resume {
    background: linear-gradient(0deg, #ecf1ff, transparent);
    overflow: hidden;
}
.section-resume .resume {
    background: #fff;
    text-align: center;
    width: 60%;
    padding: 6rem;
    box-sizing: border-box;
    margin: 0 auto;
    box-shadow: 0px 60px 120px 0px #ecf1ff;
    position: relative;
}
.resume::after {
    content: '';
    position: absolute;
    top: 100%; left: 0;
    width: 100%; height: 50%;
    background: #fff;
    z-index: 0;
}
.section-resume .resume h4 {
    font-size: 3rem;
    letter-spacing: 1em;
    margin: 0 0 3rem;
}
.resume .resume-con {
    display: grid;
    grid-template-columns: 16.5rem 1fr;
    text-align: left;
    border: var(--line-base);
}
.resume .resume-con .img-wrap {
    border-right: var(--line-base);
    border-bottom: var(--line-base);
    display: grid;
    place-items: center;
}
.resume .resume-con > .rt-th {
    display: block;
    letter-spacing: 0.35em;
    text-align: center;
    grid-column: span 2;
    padding: 1.3rem;
    background: var(--clr-gray50);
}
.resume .resume-table > li {
    border-bottom: var(--line-base);
    line-height: 1;
    font-size: var(--fs-normal);
    color: var(--clr-gray600);
}
.resume .resume-table > li .rt-th {
    display: inline-block;
    border-right: var(--line-base);
    color: var(--clr-gray500);
    width: 13rem; padding: 1.6rem 0.5em;
    box-sizing: border-box;
    text-align: center;
    margin-right: 2rem;
    background: var(--clr-gray50);
}
.resume .resume-table > li:first-child .rt-th,
.resume .resume-table > li:last-child .rt-th {
    letter-spacing: 1.55em;
    padding-left: 3.2rem;
}
.resume .resume-table > li:nth-child(4) .rt-th {
    letter-spacing: 0.35em;
    padding-left: 1.4rem;
}
.resume .resume-more {
    position: relative;
    z-index: 1;
}
.resume .resume-more ul {
    position: absolute;
    top: 0; left: 50%; transform: translatex(-50%);
    width: 110rem;
    box-shadow: 0px 20px 40px 0px #e1e7fa;
    border-radius: 0.4rem;
    overflow: hidden;
}
.resume .resume-more ul > li {
    display: grid;
    grid-template-columns: 28% 1fr 32%;
}
.resume .resume-more ul > li:first-child { background: linear-gradient(90deg, #8b5aa8, #4f64a8); }
.resume .resume-more .rm-th {
    color: #fff;
    font-size: var(--fs-medium);
    font-weight: 600;
    padding: 1.3rem;
    border-right: 1px solid rgba(0,0,0,0.12);
}
.resume .resume-more .rm-td {
    background: #fff;
    font-size: var(--fs-xlarge);
    font-weight: 600;
    padding: 1.5rem;
    border-right: var(--line-base);
}
.resume .resume-more .rm-th:last-child,
.resume .resume-more .rm-td:last-child {
    border: none;
}

/* ****************************** 활동 유형 TOP 5 (lecture/view.asp) ****************************** */
.lec-career .career-list {
    display: flex;
    flex-wrap: wrap;
    gap: 3rem;
    margin: 7rem 0 0;
    counter-reset: career;
}
.lec-career .career-list > li {
    counter-increment: career;
    position: relative;
    flex: 1 1 16rem;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 17rem;
    padding: 3rem 2rem;
    box-sizing: border-box;
    font-size: var(--fs-large);
    font-weight: 600;
    text-align: center;
    word-break: keep-all;
    overflow-wrap: anywhere;
    color: var(--clr-gray500);
    background: #f8f8f8;
    border: 2px solid transparent;
    border-radius: 2rem;
    box-shadow: inset 0 0 2.4rem rgba(0,0,0,0.035);
    transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s;
}
.lec-career .career-list > li.on {
    color: var(--clr-black);
    background: #fff;
    border-color: #e04fa5;
    box-shadow: 0 0.8rem 2rem rgba(224,79,165,0.12);
}
.lec-career .career-list > li::before {
    content: counter(career, decimal-leading-zero);
    position: absolute;
    top: 0;
    left: 50%;
    width: 6rem;
    height: 6rem;
    display: grid;
    place-items: center;
    font-family: 'Paperlogy';
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0;
    color: #fff;
    background: linear-gradient(135deg, #d6509f, #8b5aa8);
    border-radius: 50%;
    box-shadow: 0 0 0 1.2rem #fff;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.3s;
}
.lec-career .career-list > li.on::before { transform: translate(-50%, -50%) scale(1); }

/* ****************************** 선택해야 하는 이유 (lecture/view.asp) ****************************** */
.lec-reason .title { word-break: keep-all; }	/* 모바일에서 둘째 줄이 접힐 때 '협회' 같은 단어 중간에서 끊기지 않게 */
.lec-reason .title > span,
.lec-reason .title > small { display: block; }
.lec-reason .title > small { font-size: 0.85em; }
.lec-reason .title > small > span { font-weight: 300; }
.lec-reason .reason-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
    margin: 7rem 0 0;
    counter-reset: reason;
    padding: 0 4rem;
}
.lec-reason .reason-list > li {
    counter-increment: reason;
    position: relative;
    display: flex;
    align-items: center;
    gap: 6rem;
    padding: 2.5rem 4rem 2.5rem 10rem;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--clr-gray200);
    border-radius: 1.6rem;
    overflow: hidden;
    box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.1);
}
/* 번호 태그 01 ~ 04 (CSS 카운터) */
.lec-reason .reason-list > li::before {
    content: counter(reason, decimal-leading-zero);
    position: absolute;
    top: 0;
    left: 0;
    width: 6rem;
    height: 6rem;
    display: grid;
    place-items: center;
    font-family: 'Paperlogy';	/* base.css 가 의사요소에 remixicon 을 먼저 걸어 두므로 글자 폰트를 직접 준다 */
    font-size: 2.1rem;
    font-weight: 700;
    letter-spacing: 0;
    color: #d6388f;
    background: #fbeef6;
    border-radius: 0 0 1.6rem 0;
}
.lec-reason .reason-icon {
    flex: 0 0 16rem;
    display: flex;
    justify-content: center;
}
.lec-reason .reason-icon > img {
    display: block;
    max-height: 16rem;
}
.lec-reason .reason-txt { min-width: 0; }
.lec-reason .reason-txt > h4 {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--clr-black);
    word-break: keep-all;
}
.lec-reason .reason-txt > p {
    font-size: 2rem;
    color: var(--clr-gray600);
}

/* ****************************** 비교 : 시작부터 결과까지 (lecture/view.asp) ****************************** */
.lec-comp .title { word-break: keep-all; }
.lec-comp .title > small {
    display: block;
    font-size: 0.85em;
    font-weight: 300;
}
.lec-comp .comp-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem;
    margin: 7rem 0 0;
}
.lec-comp .comp-list > li {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    text-align: center;
    word-break: keep-all;
}
/* 위 : 고민 (회색 카드) */
.lec-comp .comp-before {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 18rem;
    padding: 3rem 2rem 5rem;	/* 아래는 화살표 원이 걸쳐지는 자리 */
    box-sizing: border-box;
    background: #f8f8f8;
    border-radius: 2rem;
    box-shadow: inset 0 0 2.4rem rgba(0,0,0,0.05);
}
.lec-comp .comp-before > h4 {
    font-size: var(--fs-xlarge);
    font-weight: 600;
    color: var(--clr-gray500);
}
.lec-comp .comp-before > p {
    margin: 1rem 0 0;
    font-size: var(--fs-medium);
    color: var(--clr-gray500);
}
/* 아래 : 해결 (사진 카드). 사진 아래쪽을 검정으로 덮어 흰 글자를 읽히게 한다 */
.lec-comp .comp-after {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    min-height: 42rem;
    padding: 4rem 2rem;
    box-sizing: border-box;
    background: #333 no-repeat center / cover;
    border-radius: 2rem;
}
.lec-comp .comp-list > li:nth-child(1) .comp-after { background-image: url('/images/landing/comp_bg01.jpg'); }
.lec-comp .comp-list > li:nth-child(2) .comp-after { background-image: url('/images/landing/comp_bg02.jpg'); }
.lec-comp .comp-list > li:nth-child(3) .comp-after { background-image: url('/images/landing/comp_bg03.jpg'); }
.lec-comp .comp-after::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.85) 85%, #000);
}
.lec-comp .comp-after > * {
    position: relative;
    z-index: 1;
}
.lec-comp .comp-after::before {
    content: '\ea4c';
    position: absolute;
    top: -1rem;
    left: 50%;
    z-index: 2;
    width: 7.6rem;
    height: 7.6rem;
    display: grid;
    place-items: center;
    font-size: 4rem;
    line-height: 1;
    color: #d6388f;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 0.4rem 1.2rem rgba(0,0,0,0.06);
    transform: translate(-50%, -50%);
    box-sizing: border-box;
    animation: compArrowBounce 0.9s ease-in-out infinite;
}
@keyframes compArrowBounce {
    0%, 100% { padding-top: 0; }
    50% { padding-top: 1.4rem; }
}
.lec-comp .comp-after > h4 {
    font-size: var(--fs-subtitle);
    font-weight: 700;
    color: #fff;
}
.lec-comp .comp-after > h4::before {
    content: '';
    position: absolute;
    top: -0.4rem;
    left: -1rem;
    z-index: -1;
    width: 2.4rem;
    height: 2.4rem;
    background: var(--clr-primary400);
    border-radius: 50%;
    box-shadow: 0 0 1rem rgba(224,79,165,0.8);
}
.lec-comp .comp-after > p {
    margin: 1.6rem 0 0;
    font-size: var(--fs-medium);
    color: #fff;
    letter-spacing: -0.025em;
}

/* 모바일 학습 : 왼쪽 아이콘 목록 + 오른쪽 폰 이미지. 폰 이미지는 섹션 바닥에 붙여 화면 아래가 잘린 듯 보이게 한다 */
.section-mobile {
    padding: 0;
    background: #152135;
    overflow: hidden;	/* 폰 이미지가 컨테이너 오른쪽 밖으로 나가고 fade-left 시작 위치도 화면 밖이라 섹션에서 자른다 */
}
.section-mobile .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
}
.section-mobile .mobile-list {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 5rem;
    padding: 10rem 0;
}
.section-mobile .mobile-list > li {
    display: flex;
    align-items: center;
    gap: 4rem;
}
.section-mobile .mobile-icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 9rem;
    height: 9rem;
    background: rgba(255,255,255,0.08);
    border-radius: 1.8rem;
}
.section-mobile .mobile-icon > img { width: 8rem; }
.section-mobile .mobile-txt { word-break: keep-all; }
.section-mobile .mobile-txt > h4 {
    font-family: 'Paperlogy';
    font-size: var(--fs-subtitle);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.03em;
    color: #fff;
}
.section-mobile .mobile-txt > p {
    margin: 1.2rem 0 0;
    font-size: var(--fs-regular);
    font-weight: 300;
    color: rgba(255,255,255,0.8);
}
.section-mobile .mobile-img {
    flex: 0 1 100rem;	/* 원본 폭(1000px) 이상으로 키우지 않는다 */
    min-width: 82rem;	/* 1280~1439px 에서 폰이 목록보다 작아지지 않게. 모자란 폭은 오른쪽 투명 영역이 화면 밖으로 밀려 채운다 */
    align-self: flex-end;
    margin-right: -14rem;	/* 이미지 오른쪽은 투명한 빛 번짐이라 컨테이너 밖으로 밀어 폰을 글 쪽으로 붙인다 */
}
.section-mobile .mobile-img > img {
    display: block;
    width: 100%;
}

body:has(.fixed-cta) { padding-bottom: 10rem; }

.fixed-cta {
    position: fixed;
    left: 0; bottom: 0;
    width: 100%;
    height: 10rem;
    z-index: 90;
    background: #000;
    box-shadow: 0 -0.6rem 3rem rgba(0, 0, 0, 0.4);
}
.fixed-cta .cta-inner {
    width: 144rem;
    max-width: 100%;
    height: 100%;
    margin: 0 auto;
    padding: 0 4rem;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 3rem;
}
.fixed-cta .cta-badge {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}
.fixed-cta .cta-badge img {
    height: 12rem;
    transform: translatex(-1rem);
}
.fixed-cta .badge-tit {
    font-family: 'Paperlogy';
    font-size: var(--fs-xlarge);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.03em;
    white-space: nowrap;
    color: transparent;
    background: linear-gradient(90deg, #ffe15a 0%, #ff9d1a 45%, #ff4f2b 100%);
    -webkit-background-clip: text;
    background-clip: text;
}

.fixed-cta .cta-timer {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
}
.fixed-cta .digit {
    font-size: 3.8rem;
    font-weight: 800;
    color: var(--clr-black);
    background: linear-gradient(360deg, #ffffff 0 50%, #d7dde6 50% 100%);
    width: 5.4rem; height: 6.4rem;
    border-radius: 1rem;
    display: grid;
    place-items: center;
    position: relative;
}
.fixed-cta .digit::after {
    content: '';
    position: absolute;
    left: 0; top: 50%;
    width: 100%; height: 0.1rem;
    background: rgba(0, 0, 0, 0.15);
}
.fixed-cta .unit {
    font-family: 'Paperlogy';
    font-style: normal;
    font-size: var(--fs-xlarge);
    font-weight: 500;
    color: #fff;
    margin: 0 1rem 0 0;
}
.fixed-cta .cta-msg {
    font-family: 'Paperlogy';
    font-size: var(--fs-large);
    font-weight: 500;
    color: #fff;
    white-space: nowrap;
}

.fixed-cta .cta-apply {
    flex-shrink: 0;
    font-family: 'Paperlogy';
    font-size: var(--fs-xlarge);
    font-weight: 800;
    color: #fff;
    background: linear-gradient(180deg, #e25ba9 0%, #c63f8e 100%);
    border-radius: 1.2rem;
    padding: 1rem 5.5rem;
    box-shadow: 0 0.6rem 1.6rem rgba(0, 0, 0, 0.35);
    transition: filter 0.2s ease;	/* 그라데이션 배경은 transition 이 안 되므로 밝기로 hover 를 준다 */
}
.fixed-cta .cta-apply:hover { filter: brightness(0.9); }

/* ****************************** 반응형 ****************************** */
@media all and (max-width:1279px) {
    /* 과정 인트로 : 1024px 에서 글 영역이 약 520px 뿐이라 0원 박스 글자를 줄여야 문구가 접히지 않는다 */
    .lec-intro .container { gap: 4rem; }
    .lec-intro-tit { font-size: 5.6rem; }
    .lec-intro-fee {
        gap: 2rem;
        padding: 2rem 2.4rem;
    }
    .lec-intro-fee .fee-plan { font-size: 3rem; }
    .lec-intro-fee .fee-workbook { font-size: 1.7rem; }
    .lec-intro-fee .fee-price { font-size: 3rem; }
    .lec-intro-fee .fee-price > strong { font-size: 5.6rem; }
    /* 기관정보 · 강의정보 : 카드가 좁아져 정식등록 제목이 두 줄로 접히지 않게 줄인다 */
    .lec-info-reg .reg-tit { font-size: 2.6rem; }
    .lec-info-cols { gap: 0 8rem; }
    /* FAQ : 목록 폭이 줄어드므로 질문 글자를 줄인다 */
    .lec-faq-q { font-size: 2rem; }
    /* 커리큘럼 */
    .curri-item .curri-tit { font-size: 2rem; }
    /* 선택해야 하는 이유 : 1열 전환(1023) 전까지 2열이 유지되는데, 데스크톱 크기 그대로면
       1024px 에서 카드 안 글 폭이 약 50px 까지 줄어든다. 목록 좌우 여백·아이콘·간격·글자를 줄인다 */
    .lec-reason .reason-list { padding: 0; }
    .lec-reason .reason-list > li {
        gap: 3rem;
        padding-right: 3rem;
        padding-left: 8rem;
    }
    .lec-reason .reason-icon { flex-basis: 12rem; }
    .lec-reason .reason-icon > img { max-height: 12rem; }
    .lec-reason .reason-txt > h4 { font-size: 2.6rem; }
    .lec-reason .reason-txt > p { font-size: 1.8rem; }
    /* 비교 : 카드가 좁아져 데스크톱 글자 그대로면 설명이 대부분 두 줄로 접히고,
       1023 에서 글자가 한 번에 크게 줄어든다. 그 사이 크기로 한 단계 줄인다 */
    .lec-comp .comp-list { gap: 3rem; }
    .lec-comp .comp-before > h4 { font-size: 2.4rem; }
    .lec-comp .comp-before > p { font-size: 1.7rem; }
    .lec-comp .comp-after { min-height: 36rem; }
    .lec-comp .comp-after > h4 { font-size: 2.8rem; }
    .lec-comp .comp-after > p { font-size: 1.7rem; }
    /* 모바일 학습 : 좌우로 두면 폰 이미지(최소 82rem)와 목록이 한 줄에 들어가지 않아 여기서부터 목록 아래로 내린다 */
    .section-mobile { padding: 8rem 0 0; }
    .section-mobile .container {
        flex-direction: column;
        align-items: stretch;
        gap: 4rem;
    }
    .section-mobile .mobile-list {
        align-self: center;
        gap: 4rem;
        padding: 0;
    }
    .section-mobile .mobile-list > li { gap: 2.8rem; }
    .section-mobile .mobile-icon {
        width: 7.6rem;
        height: 7.6rem;
    }
    .section-mobile .mobile-icon > img { width: 6.6rem; }
    .section-mobile .mobile-txt > h4 { font-size: 2.8rem; }
    .section-mobile .mobile-img {
        flex: none;
        align-self: center;
        width: 100%;
        min-width: 0;
        max-width: 80rem;
        margin: 0;
    }
}

@media all and (max-width:1023px) {
    section { padding: 7rem 0; }
    .content { margin: 6rem 0 0; }
    .title { font-size: 3.2rem; }
    .title-p { font-size: var(--fs-medium); }

    /* 과정 인트로 : 이미지 폭을 줄여 글 자리를 확보한다.
       768px 에서는 글 영역이 약 410px 라 점을 3개로 줄이고 안내 문구도 한 단계 줄인다 */
    .lec-intro .container { gap: 3rem; }
    .lec-intro-img { flex-basis: 38%; }
    .lec-intro-tit { font-size: 5rem; }
    .lec-intro-fee .fee-dots { flex-basis: 4.8rem; }
    .lec-intro-fee .fee-workbook { font-size: 1.5rem; }
    /* 기관정보 · 강의정보 : 768px 에서 두 카드를 나란히 두면 카드 안쪽이 약 280px 라 기관정보 카드를 한 열로 쌓는다 */
    .lec-info { padding: 7rem 0; }
    .lec-info .container,
    .lec-info-org { gap: 3rem; }
    .lec-info-org { grid-template-columns: minmax(0, 1fr); }
    .lec-info-card { padding: 3.2rem; }
    .lec-info-cols { gap: 0 6rem; }
    /* FAQ : 768px 에서 좌우로 두면 질문 글 폭이 약 350px(한 줄 19자) 뿐이라 여기서부터 제목을 위로 올린다 */
    .lec-faq { padding: 7rem 0; }
    .lec-faq .container {
        flex-direction: column;
        align-items: stretch;
        gap: 3rem;
    }
    .lec-faq-body { flex: none; }
    /* 커리큘럼 · 샘플강의 : FAQ 와 같은 이유로 여기서부터 제목을 위로 올린다 */
    .lec-curri { padding: 7rem 0 8rem; }
    .lec-curri .container { gap: 8rem; }
    .lec-curri-row {
        flex-direction: column;
        align-items: stretch;
        gap: 3rem;
    }
    .lec-curri-body { flex: none; }
    /* 절차 안내 : 아이콘·화살표를 줄인다 (main.css 와 같은 값) */
    .lec-guide .steps-icon {
        width: 13rem;
        height: 13rem;
    }
    .lec-guide .steps-icon > img { width: 7rem; }
    .lec-guide .steps-arrow { font-size: 2.2rem; }

    /* 합격 후기 : 카드 크기 단계는 main.css .sec-pass 와 같은 값 */
    .section-review {
        padding: 10rem 0 8rem;
        background-size: 66rem auto;
    }
    .section-review .rv-cards > li { padding: 2.4rem; gap: 1.6rem; }
    .section-review .rv-static > li { flex-basis: calc(50% - 1.2rem); }	/* 고정 배치는 2열로 */
    .section-review .rv-cards .review-photo { width: 7.6rem; height: 8rem; }

    .section-resume { padding: 7rem 0 0; }
    .section-resume .resume { width: 90%; padding: 5rem; }
    .resume .resume-more ul {
        position: relative;
        width: calc(100% + 30%);
    }

    /* 활동 유형 TOP 5 : 768px 에서도 5칸이 한 줄에 들어가도록 기본 폭(16rem → 12rem)·좌우 여백·글자를 줄인다 */
    .lec-career .career-list { gap: 2rem; }
    .lec-career .career-list > li {
        flex-basis: 12rem;
        min-height: 15rem;
        padding: 2rem 1rem;
        font-size: 1.9rem;
    }
    /* 선택해야 하는 이유 : 768px 에서 2열이면 카드 안 글 폭이 약 80px 뿐이라 1열로 쌓는다 */
    .lec-reason .reason-list {
        grid-template-columns: minmax(0, 1fr);
        gap: 2rem;
    }
    /* 비교 : 768px 에서 3열 카드 폭이 약 217px 라 여백·글자·사진 높이를 줄인다 (1열 전환은 767) */
    .lec-comp .comp-list { gap: 2rem; }
    .lec-comp .comp-before { padding: 2.4rem 1.6rem 4.4rem; }
    .lec-comp .comp-before > h4 { font-size: 2.2rem; }
    .lec-comp .comp-before > p { font-size: 1.5rem; }
    .lec-comp .comp-after {
        min-height: 30rem;
        padding: 3rem 1.6rem;
    }
    .lec-comp .comp-after > h4 { font-size: 2.4rem; }
    .lec-comp .comp-after > p { font-size: 1.5rem; }

    .fixed-cta { height: unset; }
    .fixed-cta .cta-inner { position: relative; display: block; width: 100%; }
    .fixed-cta .cta-inner { padding: 1.5rem; gap: 1rem; }
    .fixed-cta .cta-badge,
    .fixed-cta .cta-timer { gap: 0.3rem; }
    .fixed-cta .cta-badge { margin: 0.5rem 0 0; }
    .fixed-cta .cta-timer { margin: 2rem 0 0; }
    .fixed-cta .digit { font-size: var(--fs-xlarge); width: 4rem; height: 5rem; border-radius: 0.6rem; }
    .fixed-cta .unit, .fixed-cta .cta-msg { font-size: var(--fs-medium); margin: 0 0.3rem 0 0; }
    .fixed-cta .badge-tit { font-size: var(--fs-large); }
    .fixed-cta .cta-badge img { transform: translatex(0); height: 4rem; }
    .fixed-cta .cta-apply {
        position: absolute;
        top: 1.5rem; right: 1.5rem;
        font-size: var(--fs-medium);
        padding: 1.4rem 3.4rem;
        border-radius: 0.8rem;
    }
}

@media all and (max-width: 767px) {
    .title { font-size: 2.6rem; }
    .title-p { font-size: var(--fs-normal); }
    .curri-video .play-button { display: none !important; }

    section { padding: 7rem 0; }
    .content { margin: 4rem 0 0; }

    /* 과정 인트로 : 1단으로 쌓고 이미지는 글 아래 전체 폭 */
    .lec-intro { padding: 4rem 0; }
    .lec-intro .container {
        flex-direction: column;
        align-items: stretch;
        gap: 3rem;
    }
    .lec-intro-img { flex: none; }
    .lec-intro-badge { margin-bottom: 2rem; }
    .lec-intro-tit { font-size: 4.4rem; }
    .lec-intro-fee {
        width: 100%;
        padding: 1.8rem 2rem;
    }
    /* 기관정보 · 강의정보 : 강의정보 두 열을 한 열로 */
    .lec-info { padding: 6rem 0; }
    .lec-info-card { padding: 2.8rem 2.4rem; }
    .lec-info-list > li {
        min-height: 5.4rem;
        padding: 1rem 0.4rem;
    }
    .lec-info-cols { grid-template-columns: minmax(0, 1fr); }
    .lec-info-cols::before { display: none; }
    /* 두 목록이 위아래로 이어지므로 앞 목록의 마지막 줄에도 구분선을 둔다 */
    .lec-info-cols > .lec-info-list:first-child > li:last-child { border-bottom: 1px dashed var(--clr-gray100); }
    .lec-info-reg .reg-no {
        padding: 2rem 1rem;
        font-size: 3.6rem;
    }
    /* FAQ : 카드 여백·글자를 줄인다. Q10 까지 번호가 질문 글자와 겹치지 않는 여백 */
    .lec-faq { padding: 6rem 0; }
    .lec-faq-q {
        padding: 2.2rem 5rem 2.2rem 7rem;
        font-size: 1.8rem;
    }
    .lec-faq-q::before,
    .lec-faq-a::before {
        left: 2rem;
        font-size: 2rem;
    }
    .lec-faq-q::before { top: 2.2rem; }
    .lec-faq-q::after { right: 2.2rem; }
    .lec-faq-a {
        padding: 0 2.4rem 0 7rem;
        font-size: var(--fs-small);
        line-height: 1.6;
    }
    .lec-faq-a::before { top: 0.2rem; }	/* 답변 줄높이가 번호보다 커서 첫 줄 가운데에 맞춘다 */
    /* 폭이 좁아 같은 답변도 줄이 늘어난다. 50rem(450px)이면 360px 화면에서 약 370자부터 잘리므로 올린다
       (첫 두 답변은 관리자 입력값이라 길이를 알 수 없다) */
    .lec-faq-item.active .lec-faq-a {
        max-height: 80rem;
        padding-bottom: 2.4rem;
    }

    /* 커리큘럼 · 샘플강의 : 차시 카드 여백·글자를 줄인다 */
    .lec-curri { padding: 6rem 0; }
    .lec-curri .container { gap: 6rem; }
    /* 총 강의 구성 : 제목 밑이 아니라 옆으로 옮기고 한 줄로. 말풍선 꼬리는 제목 쪽(왼쪽)을 가리킨다
       (샘플강의 줄의 제목·부제는 그대로 위아래로 두려고 카드가 있는 줄에만 건다) */
    .lec-curri-head:has(.curri-total) {
        display: flex;
        align-items: center;
        gap: 2rem;
    }
    .lec-curri .curri-total {
        display: flex;
        align-items: center;
        width: auto;
        margin: 0;
        padding: 1rem 1.6rem;
        border-radius: 1rem;
        gap: 0.3rem;
    }
    .lec-curri .curri-total::before {
        top: 50%;
        right: 100%;
        bottom: auto;
        left: auto;
        border-top: 0.7rem solid transparent;
        border-bottom: 0.7rem solid transparent;
        border-right: 1rem solid #131a29;
        border-left: 0;
        transform: translateY(-50%);
    }
    .lec-curri .curri-total > b { font-size: 3rem; }
    .lec-curri .curri-total > small { margin: 0 0 0 0.8rem; }
    .curri-item {
        gap: 1.4rem;
        padding: 1.4rem 1.6rem;
    }
    .curri-item::before {
        flex-basis: 4rem;
        height: 4rem;
        font-size: 1.6rem;
        border-radius: 0.8rem;
    }
    .curri-item .curri-tit { font-size: 1.7rem; }
    .curri-item .curri-time {
        padding: 0.5rem 1rem;
        font-size: var(--fs-mini);
    }
    .lec-curri .curri-more {
        padding: 1.8rem;
        font-size: var(--fs-normal);
    }
    .curri-glow::before,
    .curri-glow::after { width: 30rem; }

    .section-review {
        padding: 7rem 0 5rem;
        background-size: 46rem auto;
        background-position: center 1rem;
    }
    .section-review .rv-marquee > li { margin-right: 1.6rem; }
    .section-review .review-list.rv-static { gap: 1.6rem; }
    .section-review .rv-static > li { flex-basis: 100%; max-width: none; }	/* 고정 배치는 1열로 */
    .section-review .rv-cards > li { padding: 2rem; gap: 1.4rem; }
    .section-review .rv-cards .rv-tag { padding: 0.6rem 1.2rem; }
    .section-review .rv-cards .review-h { font-size: var(--fs-regular); }
    .section-review .rv-cards .review-photo { width: 6.7rem; height: 7rem; }

    /* 절차 안내 : 한 줄 3개로 접고 화살표는 뺀다 (main.css 와 같은 값) */
    .lec-guide .steps-list {
        flex-wrap: wrap;
        row-gap: 3rem;
        margin-top: 4rem;
    }
    .lec-guide .steps-item { flex: 0 0 33.333%; }
    .lec-guide .steps-arrow { display: none; }
    .lec-guide .steps-icon {
        width: 10rem;
        height: 10rem;
        margin-bottom: 1rem;
    }
    .lec-guide .steps-icon > img { width: 5.5rem; }
    .lec-guide .steps-name { font-size: var(--fs-normal); }

    .section-resume .resume { width: 100%; padding: 3rem; }
    .section-resume .resume h4 { font-size: 2.4rem; letter-spacing: 0.5em; }
    .section-resume .resume::after { display: none; }
    .resume .resume-con { grid-template-columns: 25% 1fr; }
    .resume .resume-con .img-wrap > img { width: 90%; max-width: 12rem; }
    .resume .resume-table > li { font-size: var(--fs-xsmall); letter-spacing: -0.05em; }
    .resume .resume-table > li .rt-th {
        font-size: var(--fs-xsmall);
        width: 6.5rem;
        margin-right: 0.5rem;
        letter-spacing: 0 !important;
        padding: 1.3rem 0 !important;
    }
    .resume .resume-more ul {
        width: calc(100% + 15%);
    }
    .resume .resume-more .rm-th { font-size: var(--fs-normal); }
    .resume .resume-more .rm-td { font-size: var(--fs-regular); padding: 1.4rem 0; }

    /* 활동 유형 TOP 5 : 한 줄에 5칸이 안 들어가 4+1 로 어긋나므로 세로 목록으로 바꾸고,
       번호 배지는 카드 위가 아니라 왼쪽 안에 둔다(위로 튀어나오면 윗 카드와 겹친다) */
    .lec-career .career-list {
        flex-direction: column;
        gap: 1.2rem;
        margin-top: 4rem;
    }
    .lec-career .career-list > li {
        flex: none;
        min-height: 6.4rem;
        padding: 1.6rem 7rem;
        font-size: var(--fs-medium);
        border-radius: 1.4rem;
    }
    .lec-career .career-list > li::before {
        top: 50%;
        left: 1.6rem;
        width: 4.2rem;
        height: 4.2rem;
        font-size: 1.6rem;
        box-shadow: none;
        transform: translateY(-50%) scale(0);
    }
    .lec-career .career-list > li.on::before { transform: translateY(-50%) scale(1); }

    .lec-reason .reason-list { margin-top: 4rem; }
    .lec-reason .reason-list > li {
        gap: 2.4rem;
        padding: 2.4rem 2.4rem 2.4rem 6.4rem;
    }
    .lec-reason .reason-list > li::before {
        width: 4.8rem;
        height: 4.8rem;
        font-size: 1.7rem;
        border-radius: 0 0 1.2rem 0;
    }
    .lec-reason .reason-icon { flex-basis: 10rem; }
    .lec-reason .reason-icon > img { max-height: 10rem; }
    .lec-reason .reason-txt > h4 { font-size: 2.4rem; }
    .lec-reason .reason-txt > p { font-size: var(--fs-normal); }

    /* 비교 : 3열이 너무 좁아 1열로 쌓고 사진 카드 높이를 줄인다 */
    .lec-comp .comp-list {
        grid-template-columns: minmax(0, 1fr);
        gap: 3rem;
        margin-top: 4rem;
    }
    .lec-comp .comp-list > li { gap: 1.6rem; }
    .lec-comp .comp-before {
        min-height: 0;
        padding: 2.4rem 2rem 4rem;
    }
    .lec-comp .comp-after { padding: 3rem 2rem; }
    .lec-comp .comp-after::before {
        top: -0.8rem;
        width: 6rem;
        height: 6rem;
        font-size: 2.6rem;
    }

    /* 모바일 학습 : 폰 이미지 좌우는 투명한 빛 번짐이라 컨테이너보다 넓혀 폰을 키운다 (넘친 부분은 섹션에서 잘림) */
    .section-mobile .mobile-list { gap: 3rem; }
    .section-mobile .mobile-list > li { gap: 2rem; }
    .section-mobile .mobile-icon {
        width: 6.4rem;
        height: 6.4rem;
        border-radius: 1.4rem;
    }
    .section-mobile .mobile-icon > img { width: 5.6rem; }
    .section-mobile .mobile-txt > h4 { font-size: 2.2rem; }
    .section-mobile .mobile-txt > p {
        margin: 0.6rem 0 0;
        font-size: var(--fs-small);
    }
    .section-mobile .mobile-img {
        align-self: stretch;
        width: auto;
        max-width: none;
        margin: 0 -15%;
    }

    body:has(.fixed-cta) [class^="floating-menu"] { display: none; }
    .fixed-cta { height: unset; }
    .fixed-cta .badge-tit { font-size: var(--fs-medium); }
    .fixed-cta .cta-apply {
        padding: 1rem 2.4rem;
    }
    .fixed-cta .digit { font-size: 2.6rem; width: 3.4rem; height: 4.8rem; }
    .fixed-cta .unit, .fixed-cta .cta-msg { font-size: var(--fs-normal); }
}
@media all and (max-width:480px) {
    section { padding: 5rem 0; }
    .title > small { font-size: 0.75em; }

    /* 과정 인트로 : 박스 폭이 모자라 점을 빼고 글자·여백을 줄인다 */
    .lec-intro-badge > p {
        padding: 1rem;
        font-size: 1.3rem;
    }
    .lec-intro-badge .badge-org {
        padding: 0.75rem 1.6rem 0.75rem 1rem;
        font-size: var(--fs-small);
    }
    .lec-intro-badge .badge-org > img { width: 2rem; }
    .lec-intro-tit { font-size: 3.6rem; }
    .lec-intro-fee .fee-dots { display: none; }
    .lec-intro-fee .fee-plan { font-size: 2.2rem; }
    .lec-intro-fee .fee-workbook { font-size: 1.3rem; }
    .lec-intro-fee .fee-price { font-size: 2.2rem; }
    .lec-intro-fee .fee-price > strong { font-size: 5.2rem; }
    /* 기관정보 · 강의정보 : 글자를 줄이고 정식등록 카드 하단은 위아래로 쌓는다 */
    .lec-info-card { padding: 2.4rem 2rem; }
    .lec-info-list > li { gap: 1.2rem; }
    .lec-info-list > li > span { font-size: var(--fs-small); }
    .lec-info-list > li > b { font-size: var(--fs-normal); }
    .lec-info-reg .reg-label { font-size: var(--fs-mini); }
    .lec-info-reg .reg-tit { font-size: 2.2rem; }
    .lec-info-reg .reg-no {
        padding: 1.8rem 1rem;
        font-size: 3rem;
    }
    .lec-info-reg .reg-desc { font-size: var(--fs-mini); }
    .lec-info-reg .reg-foot {
        flex-direction: column;
        align-items: stretch;
        gap: 1.2rem;
    }
    /* FAQ : 카드 안쪽 여백과 글자를 한 단계 더 줄인다 */
    .lec-faq-q {
        padding: 2rem 4.4rem 2rem 6rem;
        font-size: var(--fs-normal);
    }
    .lec-faq-q::before,
    .lec-faq-a::before {
        left: 1.8rem;
        font-size: 1.8rem;
    }
    .lec-faq-q::before { top: 2rem; }
    .lec-faq-q::after { right: 1.8rem; }
    .lec-faq-a {
        padding: 0 1.8rem 0 6rem;
        font-size: var(--fs-xsmall);
    }
    .lec-faq-a::before { top: 0.25rem; }
    .lec-faq-item.active .lec-faq-a { padding-bottom: 2rem; }

    .curri-item {
        gap: 1.2rem;
        padding: 1.2rem 1.4rem;
    }
    .curri-item .curri-tit { font-size: var(--fs-normal); }
    .curri-item .curri-time > i { display: none; }

    .section-resume .resume { padding: 3rem 2rem; }
    .section-resume .resume h4 { margin: 0 0 1.5rem; }
    .resume .resume-more ul { width: calc(100% + 20%); }
    .resume .resume-more ul > li { grid-template-columns: 25% 1fr 1fr; }
    .resume .resume-more .rm-th { padding: 1rem; }
    .resume .resume-more .rm-td { font-size: var(--fs-small); }
    .resume .resume-con .img-wrap { padding: 2rem 0; }

    /* 선택해야 하는 이유 : 아이콘을 더 줄여 글 자리를 확보한다 (360px 에서 설명 한 줄 유지) */
    .lec-reason .reason-list > li {
        gap: 1.6rem;
        padding: 2rem 1.6rem 2rem 5.6rem;
    }
    .lec-reason .reason-list > li::before {
        width: 4.2rem;
        height: 4.2rem;
        font-size: 1.5rem;
    }
    .lec-reason .reason-icon { flex-basis: 7.6rem; }
    .lec-reason .reason-icon > img { max-height: 7.6rem; }
    .lec-reason .reason-txt > h4 { font-size: 2rem; }
    /* 비교 : 글자와 사진 카드 높이를 한 단계 더 줄인다 */
    .lec-comp .comp-before > h4 { font-size: 2rem; }
    .lec-comp .comp-before > p { font-size: var(--fs-small); }
    .lec-comp .comp-after { min-height: 24rem; }
    .lec-comp .comp-after > h4 { font-size: 2.2rem; }
    .lec-comp .comp-after > p { font-size: var(--fs-small); }

    .section-review .rv-cards > li { padding: 1.8rem; }
    .section-review .rv-cards .review-photo { width: 5.7rem; height: 6rem; }

    .section-mobile .mobile-list > li { gap: 1.6rem; }
    .section-mobile .mobile-icon {
        width: 5.6rem;
        height: 5.6rem;
        border-radius: 1.2rem;
    }
    .section-mobile .mobile-icon > img { width: 4.8rem; }
    .section-mobile .mobile-txt > h4 { font-size: 1.9rem; }
    .section-mobile .mobile-txt > p { font-size: var(--fs-xsmall); }

    body:has(.fixed-cta) { padding-bottom: 5rem; }
    .fixed-cta .digit { font-size: 2.2rem; width: 2.8rem; height: 4rem; }
    .fixed-cta .unit { font-size: 1.3rem; }
    .fixed-cta .cta-apply { font-size: 1.6rem; }
    .fixed-cta .cta-timer { justify-content: flex-start; }
}
@media all and (max-width:360px) {
    .lec-intro-tit { font-size: 3.2rem; }
}

