/* 서비스 소개 (PUB-01~04) */
.container { width: min(1200px, 100% - 40px); margin: 0 auto; }
.container--1120 { width: min(1120px, 100% - 40px); }
.brand-title {
    margin: 0;
    font-family: var(--vb-font-brand);
    font-weight: 800;
    color: var(--vb-color-text-title);
}
.eyebrow {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 20px;
    color: var(--vb-color-brand-green);
}
.btn--hero { height: 48px; padding: 0 24px; font-size: 14px; line-height: 22px; }
.main { flex: 1 0 auto; }

/* PUB-01 베리북스란? · 랜딩 */
.l-hero { background: #f7fbfd; }
.l-hero__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 600px;
    padding-block: 24px;
}
.l-hero__copy { flex: 0 1 646px; display: flex; flex-direction: column; gap: 24px; }
.l-hero__title { font-size: 44px; line-height: 1.4; }
.l-text { margin: 0; font-size: 16px; line-height: 26px; color: var(--vb-color-text-secondary); }
.l-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.l-hero__media {
    flex: 0 1 554px;
    aspect-ratio: 554 / 552;
    overflow: hidden;
    border: 1px solid var(--vb-color-brand-green-line);
    border-radius: 32px;
}
.l-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

.l-section { padding-block: 80px; }
.l-section--surface { background: var(--vb-color-brand-green-surface); }
.l-heading { display: flex; flex-direction: column; gap: 12px; }
.l-h2 { font-size: 28px; line-height: 1.5; }

.l-principles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 40px;
}
.l-principle {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 188px;
    padding: 24px;
    border: 1px solid var(--vb-color-border-subtle);
    border-radius: 20px;
    background: var(--vb-color-surface-white);
}
.l-principle__title { font-size: 24px; line-height: 1.5; }
.l-desc { margin: 0; font-size: 14px; line-height: 22px; color: var(--vb-color-text-secondary); }

.l-values-section { padding-block: 88px; }
.l-values { display: flex; flex-direction: column; gap: 40px; margin-top: 20px; }
.l-value { display: flex; align-items: center; gap: 72px; min-height: 383px; }
.l-value__content { flex: 0 1 648px; display: flex; flex-direction: column; gap: 14px; }
.l-value__title { font-size: 28px; line-height: 1.5; }
.l-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.l-chip {
    padding: 8px 16px;
    border: 1px solid var(--vb-color-brand-green-line);
    border-radius: 999px;
    background: var(--vb-color-brand-green-surface);
    font-size: 14px;
    font-weight: 600;
    line-height: 22px;
    color: var(--vb-color-brand-green-deep);
}
.l-value__media {
    position: relative;
    flex: 0 0 480px;
    height: 383px;
    overflow: hidden;
    border: 1px solid var(--vb-color-brand-green-line);
    border-radius: 24px;
}
.l-value__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.l-value__media--01 { border-color: var(--vb-color-border-subtle); border-radius: 20px; }
.l-value__media--02 { background: #f4fbfe; }
.l-value__media--02 img { position: absolute; left: 4.52%; top: -7%; width: 90.96%; height: 114%; object-fit: fill; }

.l-trust { padding-block: 88px 90px; background: var(--vb-color-brand-green-dark); color: var(--vb-color-text-inverse); }
.l-trust__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.l-trust__copy { flex: 0 1 640px; display: flex; flex-direction: column; gap: 20px; }
.l-trust .eyebrow { color: var(--vb-color-brand-green-light); }
.l-trust__title { color: var(--vb-color-text-inverse); font-size: 28px; line-height: 1.5; }
.l-trust .l-text { color: var(--vb-color-text-inverse); }
.l-checks { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.l-checks li {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 28px;
    font-size: 16px;
    font-weight: 600;
    line-height: 26px;
}
.l-checks img { flex: none; width: 20px; height: 20px; }
.l-trust__media {
    position: relative;
    flex: 0 0 540px;
    height: 430px;
    overflow: hidden;
    border: 1px solid var(--vb-color-brand-green-light);
    border-radius: 28px;
}
.l-trust__media img { position: absolute; left: -0.17%; top: -13%; width: 100.33%; height: 126%; }

.l-audience {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px;
    margin-top: 36px;
}
.l-audience__card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 193px;
    padding: 28px;
    border: 1px solid var(--vb-color-border-subtle);
    border-radius: 24px;
    background: var(--vb-color-brand-green-surface);
}
.l-audience__title { margin: 0; font-size: 20px; font-weight: 700; line-height: 30px; color: var(--vb-color-text-title); }

.l-cta { display: flex; align-items: center; min-height: 420px; padding-block: 76px; background: var(--vb-color-brand-green-surface); }
.l-cta__inner { display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.l-cta .l-actions { justify-content: center; }

/* 정보 페이지 공통 (PUB-02~04) */
.info-page { flex: 1 0 auto; padding-block: 75px 80px; }
.info-page--tint { background: #fcfdfc; }
.info-title { font-size: 34px; line-height: 1.5; }

/* PUB-02 인증 절차 안내 */
.info-title--steps { line-height: 45px; }
.steps { margin: 65px 0 0; padding: 0; list-style: none; }
.step { display: flex; gap: 20px; }
.step + .step { margin-top: 51px; }
.step__label {
    flex: none;
    width: 76px;
    height: 30px;
    border-radius: 999px;
    background: var(--vb-color-brand-green);
    font-size: 12px;
    font-weight: 700;
    line-height: 30px;
    text-align: center;
    color: var(--vb-color-text-inverse);
}
.step__title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 22px;
    line-height: 29px;
}
.step__tag {
    height: 26px;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--vb-color-brand-green-tint);
    font-family: var(--vb-font);
    font-size: 12px;
    font-weight: 600;
    line-height: 26px;
    color: var(--vb-color-brand-green);
}
.step__desc { margin: 11px 0 0; font-size: 16px; line-height: 23px; color: var(--vb-color-text-primary); }
.step__detail { margin: 7px 0 0; font-size: 13px; line-height: 19px; color: var(--vb-color-text-muted); }
.help-heading { margin: 74px 0 0; font-size: 16px; font-weight: 700; line-height: 23px; color: var(--vb-color-text-title); }
.help {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 32px;
    min-height: 108px;
    margin-top: 13px;
    padding: 24px;
    border-radius: 20px;
    background: #f3f7f4;
}
.help__item + .help__item { padding-left: 17px; border-left: 1px solid var(--vb-color-border-default); }
.help__title { margin: 0; font-size: 14px; font-weight: 600; line-height: 20px; color: var(--vb-color-brand-green); }
.help__desc { margin: 13px 0 0; font-size: 14px; line-height: 20px; color: var(--vb-color-text-secondary); }

/* PUB-03 KM 획득 안내 */
.formula {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 20px;
    row-gap: 8px;
    min-height: 88px;
    margin-top: 65px;
    padding: 12px 40px;
    border-radius: 20px;
    background: #edf2f8;
}
.formula + .formula { margin-top: 12px; }
.formula--tr { background: #f0edf7; }
.formula__chip {
    height: 32px;
    margin-right: 24px;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--vb-color-rr-blue-light);
    font-size: 13px;
    font-weight: 600;
    line-height: 32px;
    color: var(--vb-color-text-inverse);
}
.formula--tr .formula__chip { background: var(--vb-color-tr-purple-mid); }
.formula__term { font-size: 20px; font-weight: 700; line-height: 30px; color: var(--vb-color-text-title); }
.formula__term--key { color: var(--vb-color-rr-blue); }
.formula--tr .formula__term--key { color: var(--vb-color-tr-purple); }
.formula__op { font-size: 20px; font-weight: 600; line-height: 30px; color: var(--vb-color-text-secondary); }
.formula__note { margin-left: 28px; font-size: 13px; line-height: 20px; color: var(--vb-color-text-secondary); }

.km-heading { margin: 35px 0 0 13px; font-size: 20px; font-weight: 700; line-height: 30px; color: var(--vb-color-rr-blue); }
.km-heading small { margin-left: 8px; font-size: 14px; font-weight: 600; }
.km-heading--tr { margin-top: 65px; color: var(--vb-color-tr-purple); }
.km-table-wrap {
    margin-top: 23px;
    overflow-x: auto;
    border: 1px solid var(--vb-color-border-default);
    border-radius: 16px;
    box-shadow: 0 6px 18px rgba(15, 51, 26, 0.06);
}
.km-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 14px;
    line-height: 22px;
    text-align: center;
}
.km-table thead th {
    height: 48px;
    background: var(--vb-color-rr-blue-light);
    font-weight: 600;
    color: var(--vb-color-text-inverse);
}
.km-table tbody th {
    height: 40px;
    background: #edf2f8;
    font-size: 13px;
    font-weight: 600;
    color: var(--vb-color-rr-blue);
}
.km-table td { height: 40px; background: var(--vb-color-surface-white); color: var(--vb-color-text-primary); }
.km-table tbody tr + tr > * { border-top: 1px solid var(--vb-color-border-default); }
.km-table--tr thead th { background: var(--vb-color-tr-purple-mid); }
.km-table--tr tbody th { background: #f0edf7; color: var(--vb-color-tr-purple); }

.course-heading { margin: 65px 0 0 13px; font-size: 20px; font-weight: 700; line-height: 30px; color: var(--vb-color-text-title); }
.course { margin: 18px 0 0; }
.course__row {
    display: grid;
    grid-template-columns: 100px 240px 1fr;
    align-items: center;
    min-height: 68px;
    border-top: 1px solid var(--vb-color-border-default);
}
.course__row dt { font-size: 13px; line-height: 20px; color: var(--vb-color-text-secondary); }
.course__row dd { margin: 0; }
.course__value { font-size: 20px; font-weight: 700; line-height: 30px; color: var(--vb-color-text-title); }
.course__desc { font-size: 14px; line-height: 22px; color: var(--vb-color-text-secondary); }
@media (max-width: 600px) {
    .course__row { grid-template-columns: 72px 1fr; column-gap: 12px; padding: 10px 0; }
    .course__row .course__desc { grid-column: 1 / -1; }
}

/* PUB-04 요금제 안내 */
.plans {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 65px;
    padding-bottom: 64px;
}
.plan {
    min-height: 360px;
    padding: 28px;
    border: 1px solid var(--vb-color-border-default);
    border-radius: 24px;
    background: var(--vb-color-surface-white);
}
.plan--org { background: var(--vb-color-brand-green-surface); }
.plan__status {
    display: inline-block;
    height: 28px;
    padding: 0 14px;
    border-radius: 999px;
    background: var(--vb-color-brand-green-surface);
    font-size: 12px;
    line-height: 28px;
    color: var(--vb-color-text-secondary);
}
.plan__status--live { background: var(--vb-color-brand-green-tint); font-weight: 600; color: var(--vb-color-brand-green); }
.plan__title { margin-top: 16px; font-size: 24px; line-height: 36px; }
.plan__target { margin: 2px 0 0; font-size: 14px; line-height: 22px; color: var(--vb-color-text-secondary); }
.plan__features {
    margin: 16px 0 0;
    padding: 21px 0 0;
    border-top: 1px solid var(--vb-color-border-default);
    list-style: none;
}
.plan__features li {
    position: relative;
    padding-left: 18px;
    font-size: 14px;
    line-height: 22px;
    color: var(--vb-color-text-primary);
}
.plan__features li::before { content: "·"; position: absolute; left: 0; font-weight: 700; color: var(--vb-color-brand-green); }
.plan__features li + li { margin-top: 12px; }
.plan__price { display: flex; align-items: baseline; gap: 19px; margin: 22px 0 0; }
.plan__price dt { font-size: 13px; line-height: 20px; color: var(--vb-color-text-secondary); }
.plan__price dd { margin: 0; font-size: 14px; font-weight: 600; line-height: 22px; color: var(--vb-color-text-secondary); }

@media (max-width: 1100px) {
    .l-hero__inner,
    .l-value,
    .l-trust__inner { flex-direction: column; align-items: stretch; gap: 32px; padding-block: 48px; }
    .l-value--media-first { flex-direction: column-reverse; }
    .l-hero__media,
    .l-value__media,
    .l-trust__media { flex: none; width: 100%; }
    .l-hero__copy,
    .l-value__content,
    .l-trust__copy { flex: none; }
    .l-principles,
    .l-audience,
    .plans,
    .help { grid-template-columns: 1fr; gap: 16px; }
    .help__item + .help__item { padding-left: 0; padding-top: 16px; border-left: 0; border-top: 1px solid var(--vb-color-border-default); }
    .l-hero__title { font-size: 34px; }
    .formula__note { margin-left: 0; width: 100%; }
}

/* 요금제 카드 · 기관 등록 안내 (2026-09-16 디자인 변경 반영) */
.plan { display: flex; flex-direction: column; }
.plan__price { flex-wrap: wrap; }
.plan__price-link {
    margin-left: auto;
    font-size: 13px;
    font-weight: 600;
    line-height: 20px;
    color: var(--vb-color-brand-green);
}
.plan__note {
    margin: 8px 0 0;
    font-size: 12px;
    line-height: 18px;
    color: var(--vb-color-text-muted);
}
.plan__cta { margin-top: auto; }
.plan__note + .plan__cta { margin-top: 24px; }
