.content-page {
    background: #fff;
}

.content-page a {
    text-decoration: none;
}

.content-shell {
    width: min(100% - 40px, 1180px);
    max-width: 1180px;
    padding-right: 0;
    padding-left: 0;
}

.content-hero {
    padding: 36px 0 40px;
    background: #f4f8fc;
    border-bottom: 1px solid #e5edf5;
}

.content-hero--detail {
    padding: 22px 0;
}

.content-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
    padding: 0;
    color: #718096;
    font-size: 14px;
    list-style: none;
}

.content-breadcrumb li + li::before {
    margin-right: 8px;
    color: #a8b5c5;
    content: "/";
}

.content-breadcrumb a:hover,
.content-breadcrumb a:focus-visible {
    color: var(--primary);
}

.content-hero--detail .content-breadcrumb {
    margin-bottom: 0;
}

.content-kicker {
    margin: 0 0 7px;
    color: var(--primary);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .12em;
}

.content-hero h1 {
    margin: 0;
    color: #102a4c;
    font-size: clamp(28px, 3.4vw, 38px);
    font-weight: 780;
    letter-spacing: -.035em;
}

.content-hero__intro {
    max-width: 650px;
    margin: 10px 0 0;
    color: #596b80;
    font-size: 17px;
    line-height: 1.6;
}

.content-main {
    padding: 36px 0 20px;
}

.content-main--detail {
    padding-top: 48px;
}

.content-search {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
    padding: 18px 22px;
    border: 1px solid #dfe8f2;
    border-radius: 14px;
    background: #fff;
}

.content-search__count {
    color: #536477;
    font-size: 16px;
}

.content-search__count strong {
    color: var(--primary);
    font-size: 20px;
}

.content-search__controls {
    display: flex;
    width: min(100%, 430px);
}

.content-search .form-control {
    min-height: 48px;
    padding: 10px 16px;
    border-color: #ccd8e5;
    border-radius: 9px 0 0 9px;
    font-size: 16px;
    box-shadow: none;
}

.content-search .form-control:focus {
    border-color: var(--primary);
}

.content-search__button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 92px;
    justify-content: center;
    color: #fff;
    background: var(--primary);
    border-radius: 0 9px 9px 0;
    font-weight: 700;
}

.content-search__button:hover,
.content-search__button:focus-visible {
    color: #fff;
    background: var(--primary-dark);
}

.content-list {
    border-top: 2px solid #193754;
}

.content-card {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 30px;
    padding: 24px 4px;
    border-bottom: 1px solid #e4ebf3;
}

.content-card__thumb {
    position: relative;
    overflow: hidden;
    align-self: start;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
    background: #edf3f8;
}

.content-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.content-card:hover .content-card__thumb img {
    transform: scale(1.025);
}

.content-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    padding: 6px 9px;
    color: #075839;
    background: #e1f7ed;
    border: 1px solid #bdebd7;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 750;
}

.content-badge--inline {
    position: static;
    display: inline-flex;
    margin-left: 8px;
    vertical-align: middle;
}

.content-card__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.content-card__category,
.content-article__category {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 10px;
    color: var(--primary);
    font-size: 14px;
    font-weight: 700;
}

.content-card h2 {
    margin: 0 0 12px;
    color: #122b49;
    font-size: 20px;
    font-weight: 750;
    line-height: 1.4;
    letter-spacing: -.025em;
}

.content-card h2 a:hover,
.content-card h2 a:focus-visible {
    color: var(--primary);
}

.content-card__summary {
    display: -webkit-box;
    overflow: hidden;
    margin: 0 0 18px;
    color: #5d6c7e;
    font-size: 16px;
    line-height: 1.65;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.content-card__meta {
    display: flex;
    justify-content: space-between;
    margin: auto 0 0;
    color: #8793a3;
    font-size: 14px;
}

.content-card__meta span {
    color: #34516f;
    font-weight: 650;
}

.content-pagination {
    display: flex;
    justify-content: center;
    margin-top: 36px;
}

.content-pagination ul,
.content-pagination .pagination {
    gap: 5px;
    margin: 0;
}

.content-pagination a,
.content-pagination .page-link {
    display: inline-flex;
    min-width: 40px;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    color: #4e6074;
    border: 1px solid #dbe5ef;
    border-radius: 8px !important;
    background: #fff;
}

.content-pagination .active a,
.content-pagination .active .page-link,
.content-pagination a:hover {
    color: #fff;
    background: var(--primary);
    border-color: var(--primary);
}

.content-article {
    max-width: 920px;
    margin: 0 auto;
}

.content-article__header {
    padding-bottom: 32px;
    border-bottom: 1px solid #dfe8f1;
}

.content-article__header h1 {
    max-width: 850px;
    margin: 0;
    color: #102a4c;
    font-size: clamp(30px, 4.2vw, 44px);
    font-weight: 780;
    line-height: 1.3;
    letter-spacing: -.04em;
}

.content-article__meta {
    display: flex;
    gap: 22px;
    margin: 18px 0 0;
    color: #7a899a;
    font-size: 14px;
}

.content-article__meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.content-article__author strong {
    color: #40556d;
    font-weight: 700;
}

.content-richtext {
    padding: 42px 0 32px;
    color: #26394e;
    font-size: 17px;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.content-richtext :where(ul, ol, blockquote, table, figure) {
    margin-bottom: 1.5em;
}

/* 네이버 블로그 편집기는 한 줄마다 <p>를 만들고, 빈 줄도 <p>&nbsp;</p> 또는
   <p><br></p>로 넣는다. 문단마다 여백을 주면 줄 간격이 과도하게 벌어지므로,
   블로그와 같이 문단 여백을 없애고 본문의 빈 문단이 그대로 줄 간격 역할을 하게 둔다. */
.content-richtext p {
    margin-top: 0;
    margin-bottom: 0;
}

.content-richtext :where(h2, h3, h4) {
    margin: 1.8em 0 .7em;
    color: #142d4b;
    font-weight: 750;
    line-height: 1.4;
}

.content-richtext h2 { font-size: 28px; }
.content-richtext h3 { font-size: 23px; }
.content-richtext h4 { font-size: 19px; }

.content-richtext a {
    color: #075fc9;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.content-richtext img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 8px;
}

.content-richtext iframe,
.content-richtext video {
    display: block;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
}

.content-table-scroll {
    max-width: 100%;
    overflow-x: auto;
    margin: 1.5em 0;
    -webkit-overflow-scrolling: touch;
}

.content-richtext table {
    min-width: 620px;
    margin: 0;
    border-collapse: collapse;
}

.content-richtext th,
.content-richtext td {
    padding: 12px 14px;
    border: 1px solid #dce5ee;
}

.content-richtext blockquote {
    padding: 20px 24px;
    color: #3f5369;
    background: #f5f8fb;
    border-left: 4px solid var(--primary);
}

.content-actions {
    display: flex;
    justify-content: center;
    max-width: 920px;
    margin: 18px auto 0;
    padding-top: 30px;
    border-top: 1px solid #dfe8f1;
}

.content-return,
.content-service__button,
.content-consult__submit {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 22px;
    color: #fff;
    background: var(--primary);
    border: 1px solid var(--primary);
    border-radius: 9px;
    font-weight: 700;
}

.content-return:hover,
.content-return:focus-visible,
.content-service__button:hover,
.content-consult__submit:hover {
    color: #fff;
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.content-service {
    display: flex;
    max-width: 920px;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    margin: 0 auto 34px;
    padding: 26px 30px;
    background: #f1f7fd;
    border: 1px solid #d7e6f5;
    border-radius: 14px;
}

.content-service__eyebrow {
    margin: 0 0 10px;
    color: #607187;
    font-size: 14px;
}

.content-service h2 {
    margin: 0 0 8px;
    color: #112d4d;
    font-size: 22px;
    font-weight: 750;
}

.content-service__body > p:last-child { margin-bottom: 0; }
.content-service__price { color: #173d66; font-weight: 700; }
.content-service__button { flex: 0 0 auto; }

.content-consult { width: min(100%, 500px) !important; }
.content-consult .offcanvas-header { align-items: flex-start; padding: 26px 28px 18px; border-bottom: 1px solid #e3eaf2; }
.content-consult .offcanvas-title { color: #122c4a; font-size: 25px; font-weight: 760; }
.content-consult .offcanvas-body { padding: 26px 28px 36px; }
.content-consult__summary { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; padding: 14px; background: #f6f9fc; border-radius: 10px; }
.content-consult__summary img { width: 100px; height: 62px; object-fit: cover; border-radius: 7px; }
.content-consult fieldset { margin: 0 0 22px; padding: 0; border: 0; }
.content-consult legend,
.content-consult label { margin-bottom: 7px; color: #273e58; font-size: 14px; font-weight: 700; }
.content-required { margin-left: .2em; color: #d92d20; font-weight: 850; }
.content-required[hidden] { display: none !important; }
.content-consult__fields { display: grid; gap: 17px; }
.content-consult .form-control { min-height: 46px; border-color: #cedae7; border-radius: 8px; box-shadow: none; }
.content-consult .form-control:focus { border-color: var(--primary); }
.content-consult__notice { margin: -3px 0 0; color: #6a7a8d; font-size: 13px; line-height: 1.65; }
.content-consult__captcha { display: flex; justify-content: center; margin: 24px 0 18px; }
.content-consult__submit { width: 100%; }

.content-empty {
    padding: 78px 20px;
    text-align: center;
    border-bottom: 1px solid #e4ebf3;
}

.content-empty--page {
    max-width: 760px;
    margin: 0 auto;
    border: 1px solid #e2eaf2;
    border-radius: 16px;
}

.content-empty > i { display: block; margin-bottom: 14px; color: #93a5b9; font-size: 42px; }
.content-empty h1,
.content-empty h2 { margin: 0 0 10px; color: #183553; font-size: 24px; font-weight: 750; }
.content-empty p { margin: 0 0 24px; color: #708094; }

@media (max-width: 767.98px) {
    .content-shell { width: min(100% - 32px, 1180px); }
    .content-hero { padding: 30px 0 32px; }
    .content-hero--detail { padding: 18px 0; }
    .content-hero h1 { font-size: 28px; }
    .content-main,
    .content-main--detail { padding-top: 28px; }
    .content-search { align-items: stretch; flex-direction: column; gap: 14px; padding: 18px; }
    .content-search__controls { width: 100%; }
    .content-card { grid-template-columns: 170px minmax(0, 1fr); gap: 20px; padding: 22px 0; }
    .content-card h2 { font-size: 19px; }
    .content-card__summary { font-size: 15px; -webkit-line-clamp: 2; }
    .content-card__meta span { display: none; }
    .content-article__header h1 { font-size: 31px; }
    .content-richtext { padding-top: 32px; font-size: 16px; line-height: 1.75; }
    .content-service { align-items: stretch; flex-direction: column; gap: 20px; padding: 23px; }
    .content-service__button { align-self: flex-start; }
}

@media (max-width: 575.98px) {
    .content-shell { width: min(100% - 28px, 1180px); }
    .content-breadcrumb { margin-bottom: 18px; }
    .content-hero__intro { font-size: 16px; }
    .content-search__button { min-width: 76px; }
    .content-card { grid-template-columns: 1fr; gap: 16px; }
    .content-card__thumb { width: 100%; }
    .content-card h2 { font-size: 21px; }
    .content-card__summary { -webkit-line-clamp: 3; }
    .content-article__meta { gap: 14px; }
    .content-consult .offcanvas-header,
    .content-consult .offcanvas-body { padding-right: 20px; padding-left: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .content-card__thumb img { transition: none; }
}
