/* ═══════════════════════════════════════
   Landing Builder — 섹션 타입별 스타일
   기존 childcare.css / social.css 클래스를 그대로 활용하며
   빌더 전용 섹션(lp-*)만 추가 정의
   ═══════════════════════════════════════ */

:root {
    --lp-primary: #2563eb;
    --lp-primary-light: #dbeafe;
    --lp-accent: #f59e0b;
    --lp-dark: #0f172a;
    --lp-gray: #64748b;
    --lp-radius: 16px;
    --lp-max-w: 960px;
}

/* ── 과정별 테마 컬러 ── */
.lp-theme--engineer { --lp-primary: #1e3a5f; --lp-primary-light: #d1e3f6; --lp-accent: #2563eb; }
.lp-theme--beauty   { --lp-primary: #d63384; --lp-primary-light: #fce4f0; --lp-accent: #f7c948; }
.lp-theme--youth    { --lp-primary: #1a6b3c; --lp-primary-light: #d4edda; --lp-accent: #2563eb; }
.lp-theme--transfer { --lp-primary: #1a1a1a; --lp-primary-light: #e2e8f0; --lp-accent: #fc5230; }
.lp-theme--psychology { --lp-primary: #073b83; --lp-primary-light: #dbeafe; --lp-accent: #5d6dbe; }
.lp-theme--edu-planner { --lp-primary: #1e3a5f; --lp-primary-light: #d1e3f6; --lp-accent: #f59e0b; }
.lp-theme--korean   { --lp-primary: #2c3e7b; --lp-primary-light: #e0e7ff; --lp-accent: #7c3aed; }

/* hero 배지 테마 색상 */
.lp-theme .cc-hero__badge,
.lp-theme .sw-hero__badge { background: var(--lp-primary); }
.lp-theme .lp-highlight {
    background: linear-gradient(transparent 60%, rgba(37,99,235,.18) 60%);
    color: var(--lp-primary);
}
.lp-theme .lp-duration__badge { background: var(--lp-primary); }
.lp-theme .lp-duration__card { border-color: var(--lp-primary-light); }
.lp-theme .lp-duration__card-title { border-bottom-color: var(--lp-primary-light); }
.lp-theme .lp-contact-btn__btn--phone { border-color: var(--lp-primary); color: var(--lp-primary); }

/* ── 캐러셀 (편입 페이지용) ── */
.lp-carousel {
    padding: 4rem 1.5rem;
    overflow: hidden;
}
.lp-carousel__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
    text-align: center;
}
.lp-carousel__title {
    font-size: clamp(1.4rem, 3.5vw, 2rem);
    font-weight: 900;
    color: var(--lp-dark);
    margin-bottom: .5rem;
}
.lp-carousel__subtitle {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    font-weight: 700;
    padding-top:29px;
    margin-bottom: 2rem;
    line-height: 1.4;
}
.lp-carousel__track-wrap {
    position: relative;
    overflow: hidden;
    border-radius: var(--lp-radius);
    margin: 0 auto;
    max-width: 800px;
}
.lp-carousel__track {
    display: flex;
}
.lp-carousel__slide {
    flex: 0 0 65%;
    padding: 0 8px;
    opacity: .3;
    transform: scale(.88);
    transition: opacity .6s ease, transform .6s ease;
    box-sizing: border-box;
}
.lp-carousel__slide--active {
    opacity: 1;
    transform: scale(1);
    z-index: 2;
}
.lp-carousel__slide img {
    width: 100%;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,.15);
}
.lp-carousel__caption {
    margin-top: 2.3rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--lp-dark);
}
@media (max-width: 480px) {
    .lp-carousel__slide {
        flex: 0 0 80%;
    }
}

/* ── 히어로 오버레이 옵션 ── */
.cc-hero__overlay--dark {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(0,0,0,.45);
}

/* ── 공통 섹션 ── */
.lp-section-title {
    text-align: center;
    font-size: clamp(1.4rem, 3.5vw, 2rem);
    font-weight: 900;
    color: var(--lp-dark);
    margin-bottom: 2rem;
    line-height: 1.4;
}

.lp-highlight {
    background: linear-gradient(transparent 60%, rgba(37,99,235,.18) 60%);
    font-weight: 800;
    color: var(--lp-primary);
}

/* ── FEATURES 카드 3열 ── */
.lp-features {
    padding: 4rem 1.5rem;
}
.lp-features__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
}
.lp-features__grid {
    display: grid;
    gap: 1.5rem;
}
.lp-features__grid--2 { grid-template-columns: repeat(2, 1fr); }
.lp-features__grid--3 { grid-template-columns: repeat(3, 1fr); }
.lp-features__grid--4 { grid-template-columns: repeat(4, 1fr); }

.lp-features__card {
    background: #fff;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: var(--lp-radius);
    padding: 2rem 1.5rem;
    text-align: center;
    box-shadow: 0 2px 12px rgba(15,23,42,.06);
    transition: transform .2s, box-shadow .2s;
}
.lp-features__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(15,23,42,.1);
}
.lp-features__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
}
.lp-features__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.lp-features__title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--lp-dark);
    margin-bottom: .5rem;
}
.lp-features__desc {
    font-size: .875rem;
    color: var(--lp-gray);
    line-height: 1.6;
}

/* ── COMPARE 배경 ── */
.lp-compare {
    padding: 4rem 1.5rem;
    position: relative;
    background-size: cover;
    background-position: center;
}
.lp-compare--bg {
    color: #fff;
}
.lp-compare--bg .lp-section-title {
    color: #fff;
}
.lp-compare__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

/* ── CHECKLIST ── */
.lp-checklist {
    padding: 3rem 1.5rem;
}
.lp-checklist__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
    text-align: center;
}

/* ── CTA TEXT ── */
.lp-cta-text {
    padding: 3rem 1.5rem;
    text-align: center;
}
.lp-cta-text__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
}
.lp-cta-text__heading {
    font-size: clamp(1.3rem, 3vw, 1.8rem);
    font-weight: 900;
    color: var(--lp-dark);
    margin-bottom: 1rem;
    line-height: 1.5;
}
.lp-cta-text__body {
    font-size: 1rem;
    color: var(--lp-gray);
    line-height: 1.8;
    margin-bottom: 1.5rem;
}
.lp-cta-text__list {
    list-style: none;
    padding: 0;
    margin: 1.5rem auto 0;
    max-width: 600px;
    text-align: left;
}
.lp-cta-text__list li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .5rem 0;
    font-size: .95rem;
    color: var(--lp-dark);
    line-height: 1.6;
}
.lp-cta-text__list li .sw-recommend__check {
    flex-shrink: 0;
    margin-top: 2px;
}

/* ── DURATION ── */
.lp-duration {
    padding: 3rem 1.5rem;
    text-align: center;
}
.lp-duration__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
}
.lp-duration__badge {
    display: inline-block;
    background: var(--lp-primary);
    color: #fff;
    font-size: 1.1rem;
    font-weight: 800;
    padding: .7rem 2.5rem;
    border-radius: 999px;
    margin-bottom: 2rem;
}
.lp-duration__grid {
    display: grid;
    gap: 1.5rem;
}
.lp-duration__grid--2 { grid-template-columns: repeat(2, 1fr); }
.lp-duration__grid--3 { grid-template-columns: repeat(3, 1fr); }
.lp-duration__card {
    background: #fff;
    border: 2px solid rgba(37,99,235,.15);
    border-radius: var(--lp-radius);
    padding: 2rem 1.5rem;
    box-shadow: 0 2px 12px rgba(15,23,42,.06);
}
.lp-duration__card-title {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--lp-dark);
    margin-bottom: 1rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid var(--lp-primary-light);
}

/* ── CONTACT BTN ── */
.lp-contact-btn {
    padding: 2rem 1.5rem;
}
.lp-contact-btn__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.lp-contact-btn__btn {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .9rem 2rem;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform .15s, box-shadow .15s;
    border: 2px solid transparent;
}
.lp-contact-btn__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.lp-contact-btn__btn svg {
    width: 22px;
    height: 22px;
}
.lp-contact-btn__btn--phone {
    background: #fff;
    border-color: var(--lp-primary);
    color: var(--lp-primary);
}
.lp-contact-btn__btn--kakao {
    background: #fee500;
    color: #3c1e1e;
    border-color: #fee500;
}

/* ── CUSTOM HTML ── */
.lp-custom {
    position: relative;
}
.lp-custom__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

/* ── IMAGE GALLERY ── */
.lp-gallery {
    padding: 4rem 1.5rem;
}
.lp-gallery__inner {
    max-width: var(--lp-max-w);
    margin: 0 auto;
}
.lp-gallery__desc {
    text-align: center;
    color: var(--lp-gray);
    margin-bottom: 2rem;
    font-size: .95rem;
}
.lp-gallery__grid {
    display: grid;
    gap: 1.25rem;
}
.lp-gallery__grid--1 { grid-template-columns: 1fr; max-width: 500px; margin: 0 auto; }
.lp-gallery__grid--2 { grid-template-columns: repeat(2, 1fr); }
.lp-gallery__grid--3 { grid-template-columns: repeat(3, 1fr); }
.lp-gallery__grid--4 { grid-template-columns: repeat(4, 1fr); }
.lp-gallery__item {
    border-radius: var(--lp-radius);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 12px rgba(15,23,42,.08);
    border: 1px solid rgba(15,23,42,.06);
    transition: transform .2s, box-shadow .2s;
}
.lp-gallery__item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(15,23,42,.12);
}
.lp-gallery__img-wrap {
    aspect-ratio: auto;
    overflow: hidden;
}
.lp-gallery__img-wrap img {
    width: 100%;
    height: auto;
    display: block;
}
.lp-gallery__caption {
    padding: .75rem 1rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--lp-dark);
    text-align: center;
    background: #f8fafc;
}

/* ── 반응형 ── */
@media (max-width: 768px) {
    .lp-features__grid--3,
    .lp-features__grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }
    .lp-duration__grid--3 {
        grid-template-columns: 1fr;
    }
    .lp-gallery__grid--3,
    .lp-gallery__grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .lp-features__grid--2,
    .lp-features__grid--3,
    .lp-features__grid--4 {
        grid-template-columns: 1fr;
    }
    .lp-duration__grid--2 {
        grid-template-columns: 1fr;
    }
    .lp-contact-btn__inner {
        flex-direction: column;
        align-items: center;
    }
    .lp-contact-btn__btn {
        width: 100%;
        max-width: 280px;
        justify-content: center;
    }
    .lp-gallery__grid--2,
    .lp-gallery__grid--3,
    .lp-gallery__grid--4 {
        grid-template-columns: 1fr;
    }
}
