/* =====================================================================
   home.css — 주식회사 이루 전환형 랜딩 (index 전용)
   style.css 위에 로드되어 lp-* 네임스페이스로 새 랜딩 UI를 구성.
   헤더/풋터/네비게이션은 style.css의 기존 클래스를 재사용한다.
   ===================================================================== */

:root {
    --lp-ink: #070b1a;
    --lp-ink-2: #0f1633;
    --lp-blue: #1428A0;        /* primary royal */
    --lp-blue-deep: #0d1c78;
    --lp-blue-bright: #2962FF; /* accent / links / highlights */
    --lp-blue-soft: #eaf0ff;
    --lp-text: #1f2937;
    --lp-text-soft: #6b7280;
    --lp-line: #e6e9f0;
    --lp-paper: #ffffff;
    --lp-paper-2: #f5f8fc;
    --lp-good: #12b76a;
    --lp-warn: #f04438;
    --lp-shadow: 0 20px 50px rgba(12, 22, 60, 0.10);
    --lp-shadow-sm: 0 4px 18px rgba(12, 22, 60, 0.08);
}

/* index 본문 기본 톤 재정의 */
body.lp {
    background: var(--lp-paper);
    color: var(--lp-text);
    -webkit-font-smoothing: antialiased;
}
body.lp .container { max-width: 1180px; }

.lp-section { padding: 96px 0; }
.lp-eyebrow {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--lp-blue-bright);
    margin-bottom: 16px;
}
.lp-h2 {
    font-size: 40px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -1.2px;
    color: #0b1020;
    margin: 0 0 16px;
}
.lp-sub {
    font-size: 17px;
    color: var(--lp-text-soft);
    line-height: 1.7;
    margin: 0;
    word-break: keep-all;
}
.lp-center { text-align: center; }
.lp-center .lp-sub { max-width: 620px; margin: 0 auto; }

/* 강조 하이라이트 텍스트 */
.lp-hl { color: var(--lp-blue-bright); }
.lp-underline {
    background: linear-gradient(transparent 62%, rgba(41,98,255,0.18) 0);
}

/* ===== 버튼 ===== */
.lp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 700;
    padding: 16px 30px;
    border-radius: 12px;
    border: none;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    text-decoration: none;
    line-height: 1;
}
.lp-btn-primary {
    background: var(--lp-blue);
    color: #fff;
    box-shadow: 0 10px 24px rgba(20, 40, 160, 0.28);
}
.lp-btn-primary:hover { background: var(--lp-blue-deep); transform: translateY(-2px); }
.lp-btn-ghost {
    background: rgba(255,255,255,0.08);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.25);
}
.lp-btn-ghost:hover { background: rgba(255,255,255,0.16); }
.lp-btn-lg { padding: 19px 40px; font-size: 17px; }
.lp-btn-block { width: 100%; }

/* =====================================================================
   HERO
   ===================================================================== */
.lp-hero {
    position: relative;
    background:
        radial-gradient(1200px 600px at 80% -10%, rgba(41,98,255,0.28), transparent 60%),
        radial-gradient(900px 500px at 0% 110%, rgba(20,40,160,0.35), transparent 55%),
        var(--lp-ink);
    color: #fff;
    overflow: hidden;
    padding: 84px 0 96px;
}
.lp-hero::before {
    /* subtle grid texture */
    content: "";
    position: absolute; inset: 0;
    background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: radial-gradient(700px 400px at 70% 20%, #000 30%, transparent 75%);
            mask-image: radial-gradient(700px 400px at 70% 20%, #000 30%, transparent 75%);
    pointer-events: none;
}
.lp-hero .container { position: relative; z-index: 1; }
.lp-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 56px;
    align-items: center;
}
.lp-hero-badges {
    display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px;
}
.lp-chip {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 13px; font-weight: 600;
    padding: 7px 13px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.16);
    color: rgba(255,255,255,0.92);
}
.lp-chip::before {
    content: ""; width: 6px; height: 6px; border-radius: 50%;
    background: var(--lp-blue-bright);
    box-shadow: 0 0 0 3px rgba(41,98,255,0.25);
}
.lp-hero h1 {
    font-size: 52px;
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -1.8px;
    margin: 0 0 22px;
    color: #fff;
}
.lp-hero h1 .q { color: #fff; }
.lp-hero h1 .lp-hl { color: #8fb0ff; }
.lp-hero-lead {
    font-size: 18px;
    line-height: 1.7;
    color: rgba(255,255,255,0.72);
    margin: 0 0 32px;
    max-width: 520px;
    word-break: keep-all;
}
.lp-hero-lead b { color: #fff; font-weight: 700; }
.lp-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 30px; }
.lp-hero-trust {
    display: flex; flex-wrap: wrap; gap: 18px 24px;
    padding-top: 26px;
    border-top: 1px solid rgba(255,255,255,0.12);
}
.lp-hero-trust div {
    font-size: 13px; color: rgba(255,255,255,0.6);
    display: flex; align-items: center; gap: 7px;
}
.lp-hero-trust b { color: #fff; font-weight: 700; font-size: 14px; }
.lp-check { color: #58e0a0; font-weight: 800; }

/* hero visual */
.lp-hero-visual { position: relative; }
.lp-hero-visual img {
    width: 100%; height: 460px; object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 30px 70px rgba(0,0,0,0.5);
    border: 1px solid rgba(255,255,255,0.08);
}
.lp-hero-float {
    position: absolute;
    background: rgba(255,255,255,0.98);
    color: var(--lp-text);
    border-radius: 14px;
    padding: 16px 18px;
    box-shadow: 0 18px 40px rgba(0,0,0,0.28);
    display: flex; align-items: center; gap: 12px;
}
.lp-hero-float .n { font-size: 22px; font-weight: 800; color: var(--lp-blue); letter-spacing: -0.5px; }
.lp-hero-float .l { font-size: 12px; color: var(--lp-text-soft); font-weight: 600; }
.lp-hero-float.a { top: 22px; left: -26px; }
.lp-hero-float.b { bottom: 26px; right: -22px; }
.lp-hero-float .ic {
    width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0;
    background: var(--lp-blue-soft); color: var(--lp-blue);
    display: flex; align-items: center; justify-content: center; font-size: 20px;
}

/* =====================================================================
   HERO STAT STRIP (overlap)
   ===================================================================== */
.lp-strip-wrap { background: var(--lp-ink); }
.lp-strip {
    position: relative; z-index: 2;
    margin-top: -1px;
    background: var(--lp-ink-2);
    border-top: 1px solid rgba(255,255,255,0.08);
}
.lp-strip .container {
    display: grid; grid-template-columns: repeat(4, 1fr);
}
.lp-strip-item {
    padding: 26px 20px; text-align: center;
    border-left: 1px solid rgba(255,255,255,0.08);
    color: #fff;
}
.lp-strip-item:first-child { border-left: none; }
.lp-strip-item .v { font-size: 30px; font-weight: 800; letter-spacing: -1px; }
.lp-strip-item .v .u { font-size: 16px; font-weight: 700; color: #8fb0ff; margin-left: 2px; }
.lp-strip-item .l { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 4px; }

/* =====================================================================
   LOAN CALCULATOR
   ===================================================================== */
.lp-calc { background: var(--lp-paper-2); }
.lp-calc-card {
    display: grid; grid-template-columns: 1fr 0.9fr;
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--lp-shadow);
    margin-top: 40px;
}
.lp-calc-form { padding: 40px; }
.lp-calc-form h3 { font-size: 22px; font-weight: 800; letter-spacing: -0.5px; margin: 0 0 6px; }
.lp-calc-form p.hint { font-size: 14px; color: var(--lp-text-soft); margin: 0 0 26px; }
.lp-field { margin-bottom: 20px; }
.lp-field > label {
    display: block; font-size: 14px; font-weight: 700; margin-bottom: 9px; color: #374151;
}
.lp-field input[type=text],
.lp-field select {
    width: 100%; padding: 13px 14px;
    border: 1.5px solid var(--lp-line); border-radius: 10px;
    font-size: 15px; font-family: inherit; color: var(--lp-text);
    background: #fff; transition: border-color .15s, box-shadow .15s;
}
.lp-field input:focus, .lp-field select:focus {
    outline: none; border-color: var(--lp-blue-bright);
    box-shadow: 0 0 0 4px rgba(41,98,255,0.12);
}
.lp-input-suffix { position: relative; }
.lp-input-suffix .suf {
    position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    font-size: 14px; color: var(--lp-text-soft); font-weight: 600; pointer-events: none;
}
.lp-input-suffix input { padding-right: 46px; }
.lp-chipset { display: flex; flex-wrap: wrap; gap: 8px; }
.lp-chipset button {
    padding: 10px 14px; border-radius: 9px;
    border: 1.5px solid var(--lp-line); background: #fff;
    font-size: 14px; font-weight: 600; color: #4b5563; cursor: pointer;
    font-family: inherit; transition: all .12s;
}
.lp-chipset button:hover { border-color: #b9c5ff; }
.lp-chipset button.on {
    border-color: var(--lp-blue); background: var(--lp-blue); color: #fff;
}

/* calculator result panel */
.lp-calc-result {
    background: linear-gradient(160deg, var(--lp-ink) 0%, var(--lp-ink-2) 100%);
    color: #fff; padding: 40px;
    display: flex; flex-direction: column;
}
.lp-calc-result .rlabel { font-size: 13px; color: rgba(255,255,255,0.6); font-weight: 600; }
.lp-calc-result .rmain {
    font-size: 40px; font-weight: 800; letter-spacing: -1.5px; margin: 6px 0 2px;
}
.lp-calc-result .rmain .u { font-size: 20px; color: #8fb0ff; }
.lp-calc-result .rnote { font-size: 12.5px; color: rgba(255,255,255,0.5); }
.lp-calc-rrow {
    display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 24px 0;
}
.lp-calc-rrow .box {
    background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px; padding: 16px;
}
.lp-calc-rrow .box .k { font-size: 12px; color: rgba(255,255,255,0.55); margin-bottom: 6px; }
.lp-calc-rrow .box .val { font-size: 22px; font-weight: 800; letter-spacing: -0.5px; }
.lp-calc-extra {
    font-size: 13px; line-height: 1.9; color: rgba(255,255,255,0.75);
    padding: 16px 0; border-top: 1px dashed rgba(255,255,255,0.18);
    margin-top: auto;
}
.lp-calc-extra b { color: #fff; }
.lp-calc-result .lp-btn { margin-top: 18px; }
.lp-calc-result .disc { font-size: 11.5px; color: rgba(255,255,255,0.4); margin-top: 12px; text-align: center; }

/* =====================================================================
   TRUST / PARTNER
   ===================================================================== */
.lp-trust { background: #fff; }
.lp-trust-badges {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 44px;
}
.lp-trust-badge {
    border: 1px solid var(--lp-line); border-radius: 14px; padding: 24px;
    text-align: center; background: var(--lp-paper-2);
}
.lp-trust-badge .t { font-size: 17px; font-weight: 800; color: #0b1020; letter-spacing: -0.5px; }
.lp-trust-badge .d { font-size: 13px; color: var(--lp-text-soft); margin-top: 5px; }
.lp-partner-row {
    margin-top: 30px; padding-top: 30px; border-top: 1px solid var(--lp-line);
}
.lp-partner-row .cap {
    text-align: center; font-size: 13px; color: var(--lp-text-soft); font-weight: 600; margin-bottom: 20px;
}
.lp-partner-logos {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 22px 40px;
}
.lp-partner-logos img {
    height: 34px; width: auto; max-width: 120px; object-fit: contain;
    filter: grayscale(1); opacity: 0.6; transition: all .2s;
}
.lp-partner-logos img:hover { filter: grayscale(0); opacity: 1; }
.lp-partner-logos .lp-plogo-text {
    display: inline-flex; align-items: center; height: 34px;
    font-size: 19px; font-weight: 800; letter-spacing: -0.6px;
    color: var(--lp-blue); opacity: 0.6; transition: opacity .2s; white-space: nowrap;
}
.lp-partner-logos .lp-plogo-text:hover { opacity: 1; }

/* =====================================================================
   PARTNER HOSPITAL MARQUEE
   ===================================================================== */
.lp-marquee {
    background:
        radial-gradient(900px 400px at 80% -20%, rgba(41,98,255,0.22), transparent 60%),
        var(--lp-ink);
    color: #fff; padding: 60px 0; overflow: hidden;
}
.lp-marquee .cap { text-align: center; margin-bottom: 30px; }
.lp-marquee .cap .pill {
    display: inline-block; font-size: 13px; font-weight: 700; color: #8fb0ff;
    background: rgba(41,98,255,0.14); border: 1px solid rgba(41,98,255,0.3);
    padding: 6px 14px; border-radius: 999px; margin-bottom: 14px;
}
.lp-marquee .cap h3 { font-size: 24px; font-weight: 800; letter-spacing: -0.6px; color: #fff; margin: 0; }
.lp-marquee .cap h3 b { color: #8fb0ff; }
.lp-marquee-row { position: relative; width: 100%; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.lp-marquee-track { display: flex; gap: 14px; width: max-content; animation: lpMarquee 38s linear infinite; }
.lp-marquee-row.rev .lp-marquee-track { animation-direction: reverse; margin-top: 14px; }
.lp-marquee-row:hover .lp-marquee-track { animation-play-state: paused; }
@keyframes lpMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.lp-hpill {
    flex-shrink: 0; font-size: 15px; font-weight: 600; color: rgba(255,255,255,0.85);
    background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);
    padding: 12px 22px; border-radius: 999px; white-space: nowrap;
}
.lp-hpill .dot { color: #58e0a0; margin-right: 7px; }

/* =====================================================================
   REVIEW CAROUSEL (여러 장 겹치기)
   ===================================================================== */
.lp-rc { position: relative; margin-top: 44px; }
.lp-rc-viewport { overflow: hidden; }
.lp-rc-track { display: flex; gap: 22px; transition: transform .5s cubic-bezier(.4,0,.2,1); }
.lp-rc-card {
    flex: 0 0 calc((100% - 44px) / 3); box-sizing: border-box;
    background: #fff; border: 1px solid var(--lp-line); border-radius: 18px;
    overflow: hidden; display: flex; flex-direction: column;
    box-shadow: var(--lp-shadow-sm);
}
.lp-rc-thumb { height: 150px; overflow: hidden; position: relative; }
.lp-rc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.lp-rc-thumb .tag {
    position: absolute; top: 12px; left: 12px; font-size: 12px; font-weight: 700; color: #fff;
    background: rgba(20,40,160,0.92); padding: 5px 11px; border-radius: 999px;
}
.lp-rc-inner { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.lp-rc-person { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.lp-rc-person img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.lp-rc-person .nm { font-size: 15px; font-weight: 800; color: #0b1020; display: flex; align-items: center; gap: 7px; }
.lp-rc-person .cert { font-size: 11px; font-weight: 700; color: var(--lp-blue-bright); background: var(--lp-blue-soft); padding: 3px 8px; border-radius: 999px; }
.lp-rc-person .meta { font-size: 12.5px; color: var(--lp-text-soft); margin-top: 3px; }
.lp-rc-quote {
    font-size: 14.5px; line-height: 1.75; color: #374151;
    background: var(--lp-paper-2); border-radius: 12px; padding: 16px; margin: 0 0 18px;
    position: relative; flex: 1;
}
.lp-rc-quote mark { background: rgba(41,98,255,0.16); color: #0b1020; font-weight: 700; padding: 0 2px; border-radius: 3px; }
.lp-rc-metrics { display: flex; gap: 8px; }
.lp-rc-metrics .m { flex: 1; text-align: center; background: #fff; border: 1px solid var(--lp-line); border-radius: 10px; padding: 11px 4px; }
.lp-rc-metrics .m .k { font-size: 11px; color: var(--lp-text-soft); margin-bottom: 4px; }
.lp-rc-metrics .m .v { font-size: 16px; font-weight: 800; color: var(--lp-blue); letter-spacing: -0.4px; }
.lp-rc-arrow {
    position: absolute; top: 40%; transform: translateY(-50%); z-index: 5;
    width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--lp-line);
    background: #fff; box-shadow: var(--lp-shadow-sm); cursor: pointer; font-size: 20px; color: #0b1020;
    display: flex; align-items: center; justify-content: center; transition: all .15s;
}
.lp-rc-arrow:hover { background: var(--lp-blue); color: #fff; border-color: var(--lp-blue); }
.lp-rc-arrow.prev { left: -20px; }
.lp-rc-arrow.next { right: -20px; }
.lp-rc-dots { display: flex; justify-content: center; gap: 9px; margin-top: 24px; }
.lp-rc-dots button { width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0; background: var(--lp-line); cursor: pointer; transition: all .2s; }
.lp-rc-dots button.on { background: var(--lp-blue); width: 26px; border-radius: 6px; }

@media (max-width: 960px) {
    .lp-rc-card { flex-basis: calc((100% - 22px) / 2); }
    .lp-rc-arrow.prev { left: 6px; }
    .lp-rc-arrow.next { right: 6px; }
    .lp-rc-arrow { background: rgba(255,255,255,0.92); }
    .lp-marquee .cap h3 { font-size: 19px; }
}
@media (max-width: 620px) {
    .lp-rc-card { flex-basis: 100%; }
}

/* =====================================================================
   WHY (pain points)
   ===================================================================== */
.lp-why { background: var(--lp-paper-2); }
.lp-why-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 44px; }
.lp-why-card {
    background: #fff; border: 1px solid var(--lp-line); border-radius: 16px;
    padding: 32px 28px; transition: transform .18s, box-shadow .18s, border-color .18s;
}
.lp-why-card:hover { transform: translateY(-6px); box-shadow: var(--lp-shadow); border-color: #cdd8ff; }
.lp-why-card .q {
    font-size: 13px; font-weight: 700; color: var(--lp-blue-bright);
    background: var(--lp-blue-soft); display: inline-block;
    padding: 5px 12px; border-radius: 999px; margin-bottom: 16px;
}
.lp-why-card h3 { font-size: 20px; font-weight: 800; letter-spacing: -0.5px; margin: 0 0 10px; color: #0b1020; }
.lp-why-card p { font-size: 15px; color: var(--lp-text-soft); line-height: 1.7; margin: 0; }

/* =====================================================================
   SERVICES (이미지 카드)
   ===================================================================== */
.lp-services { background: #fff; }
.lp-services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 44px; }
.lp-service-card {
    border: 1px solid var(--lp-line); border-radius: 16px; overflow: hidden;
    background: #fff; display: flex; flex-direction: column;
    transition: transform .18s, box-shadow .18s, border-color .18s;
    text-decoration: none; color: inherit;
}
.lp-service-card:hover { transform: translateY(-6px); box-shadow: var(--lp-shadow); border-color: #cdd8ff; }
.lp-service-thumb { position: relative; height: 170px; overflow: hidden; }
.lp-service-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.lp-service-card:hover .lp-service-thumb img { transform: scale(1.06); }
.lp-service-thumb .tag {
    position: absolute; top: 12px; left: 12px;
    font-size: 12px; font-weight: 700; color: #fff;
    background: rgba(20,40,160,0.92); padding: 5px 11px; border-radius: 999px;
}
.lp-service-body { padding: 20px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.lp-service-body h3 { font-size: 18px; font-weight: 800; letter-spacing: -0.5px; color: #0b1020; margin: 0 0 8px; }
.lp-service-body p { font-size: 14px; color: var(--lp-text-soft); line-height: 1.65; margin: 0 0 16px; }
.lp-service-body .more {
    margin-top: auto; font-size: 14px; font-weight: 700; color: var(--lp-blue-bright);
}

/* =====================================================================
   COMPARISON TABLE
   ===================================================================== */
.lp-compare { background: #fff; }
.lp-table-wrap { margin-top: 44px; border: 1px solid var(--lp-line); border-radius: 16px; overflow: hidden; box-shadow: var(--lp-shadow-sm); }
.lp-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.lp-table th, .lp-table td { padding: 18px 22px; text-align: left; }
.lp-table thead th { background: var(--lp-paper-2); font-weight: 700; color: #374151; font-size: 14px; }
.lp-table thead th.hl { background: var(--lp-blue); color: #fff; }
.lp-table tbody tr { border-top: 1px solid var(--lp-line); }
.lp-table td.rowkey { font-weight: 700; color: #0b1020; background: #fcfdff; }
.lp-table td.old { color: var(--lp-text-soft); }
.lp-table td.new { font-weight: 700; color: #0b1020; background: rgba(41,98,255,0.04); }
.lp-table td.new .lp-check { margin-right: 4px; }
.lp-compare-note { font-size: 12.5px; color: var(--lp-text-soft); margin-top: 14px; }

/* =====================================================================
   SIMULATION
   ===================================================================== */
.lp-sim { background: var(--lp-ink); color: #fff; }
.lp-sim .lp-h2 { color: #fff; }
.lp-sim .lp-sub { color: rgba(255,255,255,0.65); }
.lp-sim-card {
    margin-top: 44px; background: var(--lp-ink-2);
    border: 1px solid rgba(255,255,255,0.1); border-radius: 20px; padding: 36px;
    display: grid; grid-template-columns: 1fr 1.1fr; gap: 40px; align-items: center;
}
.lp-sim-controls .lp-field > label { color: rgba(255,255,255,0.8); }
.lp-sim-controls .lp-chipset button {
    background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.15); color: rgba(255,255,255,0.8);
}
.lp-sim-controls .lp-chipset button.on { background: var(--lp-blue-bright); border-color: var(--lp-blue-bright); color: #fff; }
.lp-sim-bars { display: flex; flex-direction: column; gap: 18px; }
.lp-bar-item .top { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 8px; }
.lp-bar-item .top .amt { font-weight: 800; }
.lp-bar-track { height: 44px; border-radius: 10px; background: rgba(255,255,255,0.07); overflow: hidden; position: relative; }
.lp-bar-fill { height: 100%; border-radius: 10px; transition: width .6s cubic-bezier(.4,0,.2,1); }
.lp-bar-fill.market { background: linear-gradient(90deg,#4b5563,#6b7280); }
.lp-bar-fill.iru { background: linear-gradient(90deg,var(--lp-blue),var(--lp-blue-bright)); }
.lp-sim-save {
    margin-top: 8px; padding: 18px; border-radius: 12px;
    background: rgba(41,98,255,0.12); border: 1px solid rgba(41,98,255,0.3);
    text-align: center;
}
.lp-sim-save .big { font-size: 30px; font-weight: 800; color: #8fb0ff; letter-spacing: -1px; }
.lp-sim-save .cap { font-size: 13px; color: rgba(255,255,255,0.6); }
.lp-sim-note { font-size: 12px; color: rgba(255,255,255,0.4); margin-top: 20px; }

/* =====================================================================
   REVIEWS
   ===================================================================== */
.lp-reviews { background: var(--lp-paper-2); }
.lp-reviews-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 44px; }
.lp-review {
    background: #fff; border: 1px solid var(--lp-line); border-radius: 16px; padding: 28px;
    display: flex; flex-direction: column;
}
.lp-review .stars { color: #ffb020; font-size: 15px; letter-spacing: 1px; margin-bottom: 12px; }
.lp-review .body { font-size: 15px; line-height: 1.75; color: #374151; margin: 0 0 20px; }
.lp-review-metrics { display: flex; gap: 10px; margin-bottom: 20px; }
.lp-review-metrics .m {
    flex: 1; text-align: center; background: var(--lp-paper-2);
    border: 1px solid var(--lp-line); border-radius: 10px; padding: 12px 6px;
}
.lp-review-metrics .m .k { font-size: 11px; color: var(--lp-text-soft); margin-bottom: 4px; }
.lp-review-metrics .m .v { font-size: 17px; font-weight: 800; color: var(--lp-blue); letter-spacing: -0.5px; }
.lp-review-person { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--lp-line); }
.lp-review-person img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.lp-review-person .nm { font-size: 15px; font-weight: 700; color: #0b1020; }
.lp-review-person .meta { font-size: 12.5px; color: var(--lp-text-soft); }
.lp-reviews-summary {
    display: flex; justify-content: center; gap: 40px; margin-top: 36px;
    padding: 24px; background: #fff; border: 1px solid var(--lp-line); border-radius: 14px;
}
.lp-reviews-summary .s { text-align: center; }
.lp-reviews-summary .s .v { font-size: 26px; font-weight: 800; color: var(--lp-blue); letter-spacing: -0.5px; }
.lp-reviews-summary .s .k { font-size: 13px; color: var(--lp-text-soft); margin-top: 2px; }
.lp-reviews-disclaimer { text-align:center; font-size:12.5px; color:var(--lp-text-soft); margin-top:16px; }

/* =====================================================================
   CASE SLIDER (고객사례)
   ===================================================================== */
.lp-caseslider { margin-top: 44px; position: relative; }
.lp-case-viewport {
    overflow: hidden; border-radius: 20px;
    border: 1px solid var(--lp-line); box-shadow: var(--lp-shadow); background: #fff;
}
.lp-case-track { display: flex; transition: transform .5s cubic-bezier(.4,0,.2,1); }
.lp-case-slide {
    min-width: 100%;
    display: grid; grid-template-columns: 46% 54%;
}
.lp-case-media { position: relative; min-height: 420px; }
.lp-case-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lp-case-media .badge {
    position: absolute; top: 18px; left: 18px; z-index: 2;
    background: rgba(20,40,160,0.95); color: #fff; font-size: 13px; font-weight: 700;
    padding: 7px 14px; border-radius: 999px;
}
.lp-case-body { padding: 44px; display: flex; flex-direction: column; }
.lp-case-body .stars { color: #ffb020; font-size: 17px; letter-spacing: 2px; margin-bottom: 16px; }
.lp-case-quote {
    font-size: 20px; line-height: 1.7; font-weight: 600; color: #0b1020;
    letter-spacing: -0.4px; margin: 0 0 26px;
}
.lp-case-metrics { display: flex; gap: 12px; margin-bottom: 28px; }
.lp-case-metrics .m {
    flex: 1; text-align: center; background: var(--lp-paper-2);
    border: 1px solid var(--lp-line); border-radius: 12px; padding: 16px 8px;
}
.lp-case-metrics .m .k { font-size: 12px; color: var(--lp-text-soft); margin-bottom: 6px; }
.lp-case-metrics .m .v { font-size: 22px; font-weight: 800; color: var(--lp-blue); letter-spacing: -0.5px; }
.lp-case-person { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 22px; border-top: 1px solid var(--lp-line); }
.lp-case-person img { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; }
.lp-case-person .nm { font-size: 16px; font-weight: 700; color: #0b1020; }
.lp-case-person .meta { font-size: 13px; color: var(--lp-text-soft); }

.lp-case-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
    width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--lp-line);
    background: #fff; box-shadow: var(--lp-shadow-sm); cursor: pointer;
    font-size: 20px; color: #0b1020; display: flex; align-items: center; justify-content: center;
    transition: all .15s;
}
.lp-case-arrow:hover { background: var(--lp-blue); color: #fff; border-color: var(--lp-blue); }
.lp-case-arrow.prev { left: -22px; }
.lp-case-arrow.next { right: -22px; }
.lp-case-dots { display: flex; justify-content: center; gap: 9px; margin-top: 22px; }
.lp-case-dots button {
    width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0;
    background: var(--lp-line); cursor: pointer; transition: all .2s;
}
.lp-case-dots button.on { background: var(--lp-blue); width: 26px; border-radius: 6px; }

@media (max-width: 860px) {
    .lp-case-slide { grid-template-columns: 1fr; }
    .lp-case-media { min-height: 220px; }
    .lp-case-body { padding: 28px 24px; }
    .lp-case-quote { font-size: 17px; }
    .lp-case-arrow.prev { left: 8px; }
    .lp-case-arrow.next { right: 8px; }
    .lp-case-arrow { width: 40px; height: 40px; background: rgba(255,255,255,0.92); }
}

/* =====================================================================
   FINAL CTA + FORM
   ===================================================================== */
.lp-cta { background: #fff; }
.lp-cta-card {
    background:
        radial-gradient(700px 300px at 90% 0%, rgba(41,98,255,0.35), transparent 60%),
        var(--lp-ink);
    border-radius: 24px; padding: 56px;
    display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center;
    color: #fff;
}
.lp-cta-card h2 { font-size: 34px; font-weight: 800; letter-spacing: -1px; line-height: 1.3; margin: 0 0 16px; color: #fff; }
.lp-cta-card .lead { font-size: 16px; color: rgba(255,255,255,0.72); line-height: 1.7; margin: 0 0 24px; }
.lp-cta-points { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.lp-cta-points li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: rgba(255,255,255,0.9); }
.lp-cta-points li .lp-check { font-size: 16px; }

.lp-form {
    background: #fff; border-radius: 16px; padding: 30px;
    box-shadow: 0 30px 60px rgba(0,0,0,0.3);
}
.lp-form h3 { font-size: 20px; font-weight: 800; color: #0b1020; margin: 0 0 4px; letter-spacing: -0.5px; }
.lp-form .fhint { font-size: 13px; color: var(--lp-text-soft); margin: 0 0 20px; }
.lp-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lp-form .lp-field { margin-bottom: 14px; }
.lp-form label .req { color: var(--lp-warn); }
.lp-form input, .lp-form select, .lp-form textarea {
    width: 100%; padding: 13px 14px; border: 1.5px solid var(--lp-line); border-radius: 10px;
    font-size: 15px; font-family: inherit; color: var(--lp-text); background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.lp-form input:focus, .lp-form select:focus, .lp-form textarea:focus {
    outline: none; border-color: var(--lp-blue-bright); box-shadow: 0 0 0 4px rgba(41,98,255,0.12);
}
.lp-form textarea { resize: vertical; min-height: 84px; }
.lp-form .submit-btn {
    width: 100%; margin-top: 6px; background: var(--lp-blue); color: #fff; border: none;
    padding: 17px; font-size: 17px; font-weight: 800; border-radius: 12px; cursor: pointer;
    transition: background .15s, transform .15s;
}
.lp-form .submit-btn:hover { background: var(--lp-blue-deep); transform: translateY(-1px); }
.lp-form .submit-btn:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.lp-form .legal { font-size: 11px; color: #9aa2b1; line-height: 1.6; margin-top: 12px; }

/* =====================================================================
   SUB-PAGE COMPONENTS (상품탭/혜택/절차/업종/FAQ)
   ===================================================================== */
/* 필터 탭 */
.lp-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 32px 0 8px; }
.lp-tabs button {
    padding: 11px 22px; border-radius: 999px; border: 1.5px solid var(--lp-line);
    background: #fff; font-size: 14px; font-weight: 700; color: #4b5563; cursor: pointer;
    font-family: inherit; transition: all .15s;
}
.lp-tabs button:hover { border-color: #b9c5ff; }
.lp-tabs button.on { background: var(--lp-blue); border-color: var(--lp-blue); color: #fff; }

/* 상품 카드 (3 + 2 중앙정렬) */
.lp-prod-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; margin-top: 32px; }
.lp-prod-card {
    flex: 1 1 300px; max-width: 340px; box-sizing: border-box;
    background: #fff; border: 1px solid var(--lp-line); border-radius: 16px; padding: 26px 22px;
    display: flex; flex-direction: column; box-shadow: var(--lp-shadow-sm);
    transition: transform .18s, box-shadow .18s, border-color .18s;
}
.lp-prod-card:hover { transform: translateY(-6px); box-shadow: var(--lp-shadow); border-color: #cdd8ff; }
.lp-prod-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; min-height: 30px; }
.lp-prod-top .ic {
    width: 46px; height: 46px; border-radius: 12px; background: var(--lp-blue-soft);
    display: flex; align-items: center; justify-content: center; font-size: 22px;
    color: var(--lp-blue);
}
.lp-prod-top .ic svg { width: 24px; height: 24px; }
.lp-prod-top .best { font-size: 11px; font-weight: 800; color: #fff; background: var(--lp-blue); padding: 5px 10px; border-radius: 999px; }
.lp-prod-card h3 { font-size: 19px; font-weight: 800; letter-spacing: -0.5px; color: #0b1020; margin: 0 0 8px; }
.lp-prod-card .d { font-size: 14px; color: var(--lp-text-soft); line-height: 1.6; margin: 0 0 18px; flex: 1; }
.lp-prod-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; }
.lp-prod-meta .k { font-size: 11.5px; color: var(--lp-text-soft); margin-bottom: 3px; }
.lp-prod-meta .v { font-size: 15px; font-weight: 800; color: #0b1020; letter-spacing: -0.3px; }

/* 혜택 번호 카드 */
.lp-benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; }
.lp-benefit {
    background: #fff; border: 1px solid var(--lp-line); border-radius: 16px; padding: 30px 26px;
    position: relative; overflow: hidden; transition: transform .18s, box-shadow .18s;
}
.lp-benefit:hover { transform: translateY(-5px); box-shadow: var(--lp-shadow); }
.lp-benefit .no {
    font-size: 44px; font-weight: 800; letter-spacing: -2px;
    color: transparent; -webkit-text-stroke: 1.5px var(--lp-blue-soft); line-height: 1; margin-bottom: 14px;
}
.lp-benefit h3 { font-size: 18px; font-weight: 800; color: #0b1020; margin: 0 0 10px; letter-spacing: -0.5px; }
.lp-benefit p { font-size: 14.5px; color: var(--lp-text-soft); line-height: 1.7; margin: 0; }

/* 절차 스텝 */
.lp-step-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 44px; }
.lp-step {
    background: #fff; border: 1px solid var(--lp-line); border-radius: 16px; padding: 28px 22px; position: relative;
}
.lp-step .sn {
    width: 40px; height: 40px; border-radius: 12px; background: var(--lp-blue); color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 800; margin-bottom: 16px;
}
.lp-step h3 { font-size: 17px; font-weight: 800; color: #0b1020; margin: 0 0 8px; letter-spacing: -0.5px; }
.lp-step p { font-size: 14px; color: var(--lp-text-soft); line-height: 1.65; margin: 0 0 14px; }
.lp-step .t { font-size: 12px; font-weight: 700; color: var(--lp-blue-bright); background: var(--lp-blue-soft); padding: 5px 11px; border-radius: 999px; }

/* 업종 (이미지 썸네일) */
.lp-elig-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 44px; }
.lp-elig {
    background: #fff; border: 1px solid var(--lp-line); border-radius: 14px; overflow: hidden;
    text-align: center; transition: transform .15s, box-shadow .15s, border-color .15s;
    padding-bottom: 20px;
}
.lp-elig:hover { transform: translateY(-4px); box-shadow: var(--lp-shadow); border-color: #cdd8ff; }
.lp-elig-thumb { height: 120px; overflow: hidden; margin-bottom: 16px; background: var(--lp-paper-2); }
.lp-elig-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.lp-elig:hover .lp-elig-thumb img { transform: scale(1.07); }
.lp-elig h4 { font-size: 16px; font-weight: 800; color: #0b1020; margin: 0 0 6px; }
.lp-elig p { font-size: 13px; color: var(--lp-text-soft); margin: 0; line-height: 1.5; padding: 0 12px; }

/* 렌탈 품목 그리드 (3열) */
.lp-rental-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; }
@media (max-width: 960px) { .lp-rental-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lp-rental-grid { grid-template-columns: 1fr; } }

/* 조건 카드 (보증금/선수금/한도) */
.lp-cond-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; }
.lp-cond {
    background: #fff; border: 1px solid var(--lp-line); border-radius: 16px; padding: 30px 26px;
    text-align: center;
}
.lp-cond .ic { width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 14px; background: var(--lp-blue-soft); color: var(--lp-blue); display: flex; align-items: center; justify-content: center; font-size: 26px; }
.lp-cond h3 { font-size: 19px; font-weight: 800; color: #0b1020; margin: 0 0 10px; }
.lp-cond p { font-size: 14.5px; color: var(--lp-text-soft); line-height: 1.7; margin: 0; }
@media (max-width: 860px) { .lp-cond-grid { grid-template-columns: 1fr; } }

/* 태그 pill 그리드 */
.lp-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 40px; }
.lp-pill-tag {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; border: 1px solid var(--lp-line); border-radius: 999px;
    padding: 13px 22px; font-size: 15px; font-weight: 700; color: #0b1020;
    transition: all .15s;
}
.lp-pill-tag:hover { border-color: var(--lp-blue); background: var(--lp-blue-soft); }
.lp-pill-tag .ic { color: var(--lp-blue-bright); font-size: 17px; }

/* 2단 이미지+텍스트 밴드 */
.lp-band { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; margin-top: 44px; }
.lp-band.rev .lp-band-media { order: 2; }
.lp-band-media img { width: 100%; height: 380px; object-fit: cover; border-radius: 18px; box-shadow: var(--lp-shadow); }
.lp-band-text h3 { font-size: 26px; font-weight: 800; letter-spacing: -0.7px; color: #0b1020; margin: 0 0 16px; }
.lp-band-text p { font-size: 16px; color: var(--lp-text-soft); line-height: 1.8; margin: 0 0 16px; word-break: keep-all; }
.lp-band-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.lp-band-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; color: #374151; }
.lp-band-list li .lp-check { color: var(--lp-blue-bright); font-size: 16px; margin-top: 1px; }
@media (max-width: 860px) {
    .lp-band { grid-template-columns: 1fr; gap: 28px; }
    .lp-band.rev .lp-band-media { order: 0; }
    .lp-band-media img { height: 260px; }
}

/* FAQ 아코디언 */
.lp-faq { margin-top: 40px; display: flex; flex-direction: column; gap: 12px; }
.lp-faq-item { border: 1px solid var(--lp-line); border-radius: 14px; overflow: hidden; background: #fff; }
.lp-faq-item .q {
    width: 100%; text-align: left; background: none; border: none; cursor: pointer;
    font-family: inherit; font-size: 16px; font-weight: 700; color: #0b1020;
    padding: 20px 54px 20px 22px; position: relative; line-height: 1.5;
}
.lp-faq-item .q::before { content: "Q"; color: var(--lp-blue-bright); font-weight: 800; margin-right: 10px; }
.lp-faq-item .q::after {
    content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%);
    font-size: 24px; font-weight: 400; color: var(--lp-text-soft); transition: transform .2s;
}
.lp-faq-item.open .q::after { transform: translateY(-50%) rotate(45deg); }
.lp-faq-item .a {
    max-height: 0; overflow: hidden; transition: max-height .28s ease, padding .28s ease;
    font-size: 14.5px; color: var(--lp-text-soft); line-height: 1.75; padding: 0 22px;
}
.lp-faq-item.open .a { max-height: 320px; padding: 0 22px 22px; }

@media (max-width: 960px) {
    .lp-prod-card { flex: 1 1 260px; max-width: 400px; }
    .lp-benefit-grid { grid-template-columns: 1fr; }
    .lp-step-grid { grid-template-columns: repeat(2, 1fr); }
    .lp-elig-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .lp-prod-card { flex: 1 1 100%; max-width: 100%; }
    .lp-step-grid { grid-template-columns: 1fr; }
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 960px) {
    .lp-section { padding: 68px 0; }
    .lp-h2 { font-size: 30px; }
    .lp-hero { padding: 60px 0 72px; }
    .lp-hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .lp-hero h1 { font-size: 38px; }
    .lp-hero-visual img { height: 340px; }
    .lp-hero-float.a { left: 10px; }
    .lp-hero-float.b { right: 10px; }
    .lp-strip .container { grid-template-columns: repeat(2,1fr); }
    .lp-strip-item:nth-child(3) { border-left: none; }
    .lp-strip-item { border-top: 1px solid rgba(255,255,255,0.08); }
    .lp-strip-item:nth-child(-n+2) { border-top: none; }
    .lp-calc-card { grid-template-columns: 1fr; }
    .lp-trust-badges { grid-template-columns: repeat(2,1fr); }
    .lp-services-grid { grid-template-columns: repeat(2,1fr); }
    .lp-why-grid { grid-template-columns: 1fr; }
    .lp-sim-card { grid-template-columns: 1fr; gap: 28px; padding: 26px; }
    .lp-reviews-grid { grid-template-columns: 1fr; }
    .lp-reviews-summary { flex-wrap: wrap; gap: 20px 30px; }
    .lp-cta-card { grid-template-columns: 1fr; padding: 34px 24px; gap: 30px; }
}
@media (max-width: 560px) {
    .lp-hero h1 { font-size: 31px; letter-spacing: -1px; }
    .lp-h2 { font-size: 25px; }
    .lp-hero-float { display: none; }
    .lp-table th, .lp-table td { padding: 13px 12px; font-size: 13px; }
    .lp-form .row2 { grid-template-columns: 1fr; }
    .lp-calc-form, .lp-calc-result { padding: 26px; }
    .lp-reviews-summary .s .v { font-size: 22px; }
}
