* {
    box-sizing:border-box
}
body {
    margin:0;
    font-family:'Pretendard','Noto Sans KR',Arial,sans-serif;
    color:#111827;
    background:#fff;
    letter-spacing:-.04em
}
a {
    text-decoration:none;
    color:inherit
}
.wrap {
    max-width:1180px;
    margin:0 auto;
    padding:0 24px
}
.topbar {
    height:62px;
    border-bottom:1px solid #eee;
    background:rgba(255,255,255,.94);
    position:sticky;
    top:0;
    z-index:50
}
.nav-wrap {
    height:62px;
    display:flex;
    align-items:center;
    justify-content:space-between
}
.brand {
    display:flex;
    gap:10px;
    align-items:flex-end
}
.brand-small {
    font-size:12px;
    color:#777
}
.brand b {
    font-size:26px;
    font-weight:900
}
.nav {
    display:flex;
    gap:54px;
    font-size:14px;
    font-weight:700
}
.nav a {
    height:62px;
    display:flex;
    align-items:center;
    border-bottom:2px solid transparent
}
.nav a:hover,.nav a.is-active {
    border-color:#111
}
.section {
    padding:90px 0
}
.hero {
    padding:78px 0 70px
}
.hero-grid {
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:72px;
    align-items:center
}
.eyebrow {
    display:inline-flex;
    padding:9px 18px;
    border-radius:999px;
    background:#f4f7fb;
    color:#0b356c;
    font-weight:800;
    font-size:13px;
    margin-bottom:34px
}
.hero h1 {
    font-size:48px;
    line-height:1.25;
    margin:0 0 28px;
    font-weight:700
}
.hero p,.lead {
    font-size:18px;
    line-height:1.8;
    color:#334155
}
.btn-pair {
    display:flex;
    gap:16px;
    margin-top:30px
}
.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:5px;
    padding:15px 32px;
    font-size:16px;
    font-weight:800;
    border:1px solid #111;
    transition:.22s
}
.btn.dark {
    background:#06162e;
    color:#fff;
    border-color:#06162e;
    box-shadow:0 14px 28px rgba(6,22,46,.18)
}
.btn.line {
    background:#fff;
    color:#111
}
.btn:hover {
    transform:translateY(-3px)
}
.hero-actions:hover .btn.dark {
    background:#fff;
    color:#06162e
}
.hero-actions .btn.dark:hover {
    background:#06162e;
    color:#fff
}
.hero-actions .btn.line:hover {
    background:#06162e;
    color:#fff;
    border-color:#06162e
}
.dash-card {
    background:#fff;
    border:1px solid #e5e9f0;
    border-radius:18px;
    padding:34px;
    box-shadow:0 22px 60px rgba(15,23,42,.08)
}
.dash-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:28px
}
.dash-head b {
    font-size:22px
}
.dash-head a {
    font-size:13px;
    color:#334155
}
.tabs {
    display:flex;
    gap:34px;
    border-bottom:1px solid #eee;
    margin-bottom:18px
}
.tabs span {
    font-size:14px;
    font-weight:800;
    color:#64748b;
    padding-bottom:14px
}
.tabs .on {
    color:#111;
    border-bottom:3px solid #f3bd15
}
.metric-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px
}
.metric {
    border:1px solid #e3e8ef;
    border-radius:10px;
    min-height:126px;
    text-align:center;
    padding:22px 12px
}
.metric small {
    display:block;
    font-weight:700;
    color:#334155
}
.metric strong {
    font-size:34px;
    display:block;
    margin:18px 0 8px
}
.metric em {
    font-style:normal;
    font-weight:700
}
.center-title {
    text-align:center;
    font-size:30px;
    margin:0 0 36px
}
.problem-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px
}

.problem-card {
    padding:0 0 28px;
    overflow:hidden;
}
.problem-card .problem-image {
    height:150px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#f7f8fa 0%,#eef1f5 100%);
    border-bottom:1px solid #eef1f5;
}
.problem-card .problem-image img {
    width:118px;
    height:118px;
    object-fit:contain;
    display:block;
}
.problem-card h3 {
    margin:24px 28px 16px;
}
.problem-card p {
    margin:0 28px;
}
.card {
    border:1px solid #e5e7eb;
    border-radius:10px;
    background:#fff;
    padding:34px 28px;
    box-shadow:0 10px 30px rgba(2,8,23,.035);
    transition:.25s
}
.card:hover {
    transform:translateY(-8px);
    box-shadow:0 18px 44px rgba(2,8,23,.1);
    border-color:#0b2a55
}
.ico {
    width:44px;
    height:44px;
    border-radius:50%;
    background:#06194c;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    margin-bottom:24px
}
.card h3 {
    font-size:20px;
    margin:0 0 18px
}
.card p {
    line-height:1.75;
    color:#333
}
.process {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:42px;
    align-items:stretch
}
.step {
    position:relative;
    text-align:left
}
.step:not(:last-child):after {
    content:'›';
    position:absolute;
    right:-31px;
    top:50%;
    transform:translateY(-50%);
    font-size:42px;
    color:#9ca3af
}
.badge {
    width:26px;
    height:26px;
    border-radius:50%;
    background:#06194c;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    margin-bottom:24px
}
.cta-band {
    margin-top:70px;
    margin-bottom:70px;
    background:#f8f8f8;
    border:1px solid #eee;
    border-radius:8px;
    padding:42px 56px;
    display:flex;
    justify-content:space-between;
    align-items:center
}
.cta-band h2 {
    margin:0 0 12px;
    font-size:28px
}
.page-hero {
    padding:80px 0 70px
}
.page-hero.two {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center
}
.page-hero h1 {
    font-size:42px;
    line-height:1.35;
    margin:0 0 20px
}
.report-mini {
    width:420px;
    max-width:100%;
    margin:0 auto
}
.qrow {
    display:grid;
    grid-template-columns:250px 1fr 1fr;
    gap:34px;
    align-items:center;
    margin:80px auto;
    max-width:980px
}
.qmark {
    font-size:42px;
    color:#09275a;
    font-weight:900
}
.problem-list div,.solution-list div {
    padding:20px 24px;
    border-radius:8px;
    margin-bottom:16px
}
.problem-list div {
    background:#f6f6f6
}
.solution-list div {
    background:#06132d;
    color:white
}
.arrow {
    font-size:34px;
    text-align:center;
    color:#333
}
.mini-report {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px
}
.bar {
    height:8px;
    background:#e5e7eb;
    border-radius:999px;
    overflow:hidden
}
.bar i {
    display:block;
    height:100%;
    background:#06194c
}
.price-flow {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:34px;
    text-align:center;
    margin-bottom:42px
}
.price-card {
    border:1px solid #e5e7eb;
    border-radius:10px;
    padding:40px 34px;
    min-height:420px;
    transition:.25s;
    background:#fff
}
.price-card.featured,.price-card.is-selected {
    background:#111;
    color:#fff;
    box-shadow:0 20px 50px rgba(0,0,0,.18)
}
.price-card:hover {
    background:#111;
    color:#fff;
    transform:translateY(-10px)
}
.price-card h3 {
    font-size:22px
}
.price-card ul {
    line-height:2;
    text-align:left
}
.price {
    font-size:38px;
    font-weight:900;
    margin:28px 0
}
.info-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px
}
.value-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-top:26px
}
.case-hero-img,.apply-hero-img,.faq-hero-img,.contact-hero-img {
    height:260px;
    background:linear-gradient(135deg,#fff,#f5f5f5);
    border-radius:0;
    position:relative;
    overflow:hidden
}

.report-wide {
    border:1px solid #eee;
    border-radius:10px;
    padding:24px;
    background:#fff;
    box-shadow:0 14px 36px rgba(0,0,0,.04)
}
.report-top {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px
}
.report-bottom {
    display:grid;
    grid-template-columns:2fr 1.2fr 1fr;
    gap:16px;
    margin-top:16px
}
.comment-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px
}
.criteria-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    column-gap:28px;
    row-gap:38px
}
.criteria {
    overflow:hidden;
    padding:0;
    border-radius:14px;
    box-shadow:0 18px 40px rgba(0,0,0,.045)
}
.criteria .thumb {
    aspect-ratio:1/1;
    width:100%;
    background:#f3f3f3;
    overflow:hidden
}
.criteria .thumb img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover
}
.criteria-body {
    position:relative;
    min-height:126px;
    padding:24px 22px 26px;
    background:#fff
}
.criteria-body::before {
    content:"";
    position:absolute;
    top:-18px;
    left:22px;
    width:44px;
    height:44px;
    border-radius:14px;
    background:#fff;
    box-shadow:0 10px 24px rgba(0,0,0,.08)
}
.criteria h3,.criteria p {
    position:relative;
    z-index:1;
    margin:0
}
.criteria h3 {
    font-size:20px;
    line-height:1.35
}
.criteria p {
    margin-top:18px;
    color:#333;
    line-height:1.7
}
.apply-flow {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:36px;
    text-align:center;
    align-items:start;
    margin-top:34px
}
.apply-step {
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:0
}
.apply-step:not(:last-child)::after {
    content:"›";
    position:absolute;
    top:35px;
    right:-25px;
    color:#06194c;
    font-size:34px;
    font-weight:500;
    line-height:1
}
.apply-step-number {
    position:absolute;
    top:-12px;
    left:50%;
    z-index:2;
    width:24px;
    height:24px;
    margin-left:-12px;
    border-radius:50%;
    background:#06194c;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    font-weight:900
}
.apply-step-icon {
    width:84px;
    height:84px;
    border-radius:50%;
    background:#f3f5f8;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:10px auto 22px
}
.apply-step-icon img {
    width:38px;
    height:38px;
    object-fit:contain;
    display:block
}
.apply-step b {
    display:block;
    font-size:16px;
    line-height:1.35;
    font-weight:900;
    color:#111827
}
.apply-step p {
    margin:12px 0 0;
    font-size:14px;
    line-height:1.5;
    color:#333
}
.apply-form,.contact-form {
    border:1px solid #ddd;
    border-radius:8px;
    padding:38px;
    background:#fff
}
.form-grid {
    display:grid;
    grid-template-columns:170px 1fr;
    gap:18px;
    align-items:center
}
.form-grid label {
    font-weight:800
}
.form-grid input,.form-grid select,.form-grid textarea {
    width:100%;
    border:1px solid #ddd;
    border-radius:4px;
    padding:15px;
    font-size:15px
}
.form-grid textarea {
    min-height:100px
}
.full {
    grid-column:1/3
}
.radio-row {
    display:flex;
    gap:30px
}
.faq-tabs {
    display:flex;
    gap:50px;
    border-bottom:1px solid #111;
    margin-bottom:25px
}
.faq-tabs span {
    padding:18px 0;
    font-weight:800
}
.faq-tabs .on {
    border-bottom:2px solid #111
}
.faq-item {
    border-bottom:1px solid #e5e7eb
}
.faq-q {
    padding:28px 24px;
    display:flex;
    justify-content:space-between;
    font-size:18px;
    font-weight:700;
    cursor:pointer
}
.faq-a {
    display:none;
    padding:32px 90px;
    background:#f7f7f7;
    color:#555;
    line-height:1.8
}
.faq-item.open .faq-a {
    display:block
}
.contact-table {
    max-width:980px;
    margin:0 auto;
    border:1px solid #ddd;
    border-radius:8px;
    padding:38px
}
.choice-box {
    border:1px solid #ddd;
    border-radius:4px;
    padding:18px;
    line-height:2.2
}
.footer {
    border-top:1px solid #eee;
    margin-top:80px;
    padding:36px 0 20px;
    background:#fff
}
.footer-box {
    display:grid;
    grid-template-columns:1.1fr 1.8fr 1.4fr 1.2fr 1.4fr 1.3fr;
    gap:24px;
    align-items:stretch
}
.footer-logo b {
    font-size:30px
}
.foot-info,.footer p,.contact-chip {
    font-size:13px;
    color:#555;
    line-height:1.8
}
.copy {
    display:flex;
    gap:24px;
    border-top:1px solid #eee;
    margin-top:28px;
    padding-top:18px;
    font-size:12px;
    color:#666
}
.copy em {
    margin-left:auto;
    font-style:normal
}
.quick {
    position:fixed;
    right:30px;
    bottom:86px;
    z-index:40;
    display:flex;
    flex-direction:column;
    gap:10px
}
.quick a {
    width:58px;
    height:58px;
    border-radius:50%;
    background:#0b3970;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    font-size:12px;
    font-weight:800
}
.quick .black {
    background:#000
}
.reveal {
    opacity:0;
    transform:translateY(35px);
    transition:.7s
}
.reveal.show {
    opacity:1;
    transform:none
}
.admin-layout {
    display:flex;
    min-height:100vh;
    background:#f6f7fb
}
.admin-side {
    width:240px;
    background:#111827;
    color:white;
    padding:28px
}
.admin-side h1 {
    font-size:24px
}
.admin-side a {
    display:block;
    padding:13px 0;
    color:#d1d5db
}
.admin-main {
    flex:1;
    padding:34px
}
.admin-card {
    background:white;
    border:1px solid #e5e7eb;
    border-radius:12px;
    padding:24px;
    margin-bottom:20px
}
.admin-table {
    width:100%;
    border-collapse:collapse
}
.admin-table th,.admin-table td {
    border-bottom:1px solid #eee;
    padding:14px;
    text-align:left
}
.login-box {
    max-width:420px;
    margin:120px auto;
    border:1px solid #ddd;
    border-radius:12px;
    padding:34px
}
.login-box input {
    width:100%;
    padding:14px;
    margin:8px 0;
    border:1px solid #ddd
}
.login-box button {
    width:100%;
    padding:15px;
    background:#111;
    color:#fff;
    border:0;
    border-radius:6px
}
@media(max-width:900px) {
    .hero-grid,.page-hero.two,.qrow {
        grid-template-columns:1fr
    }
    .problem-grid,.process,.price-flow,.info-grid,.value-grid,.mini-report,.criteria-grid,.comment-grid,.apply-flow {
        grid-template-columns:1fr 1fr
    }
    .footer-box {
        grid-template-columns:1fr
    }
    .nav {
        gap:16px;
        font-size:12px
    }
    .hero h1,.page-hero h1 {
        font-size:34px
    }
    .form-grid {
        grid-template-columns:1fr
    }
    .full {
        grid-column:auto
    }
}
@media(max-width:560px) {
    .problem-grid,.process,.price-flow,.info-grid,.value-grid,.mini-report,.criteria-grid,.comment-grid,.apply-flow {
        grid-template-columns:1fr
    }
    .nav {
        display:none
    }
    .hero h1 {
        font-size:30px
    }
    .section {
        padding:55px 0
    }
    .cta-band {
        display:block;
        padding:28px
    }
    .metric-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

/* ===== About page refined to match requested reference design ===== */
.about-hero {
    display:grid;
    grid-template-columns:1fr 520px;
    gap:70px;
    align-items:center;
    padding:92px 24px 80px;
    max-width:1080px
}
.about-hero-copy {
    text-align:center
}
.about-hero-copy h1 {
    font-size:38px;
    line-height:1.36;
    margin:0 0 24px;
    font-weight:700;
    letter-spacing:-.06em
}
.about-hero-copy p {
    font-size:15px;
    line-height:1.9;
    color:#6b7280;
    margin:0
}
.about-report-card {
    background:#fff;
    border:1px solid #e6eaf1;
    border-radius:12px;
    padding:22px 22px 20px;
    box-shadow:0 16px 45px rgba(15,23,42,.08)
}
.report-card-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:18px;
    font-size:14px
}
.report-card-head a {
    font-size:12px;
    color:#64748b
}
.about-report-metrics {
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:12px
}
.report-metric {
    border:1px solid #e5e7eb;
    border-radius:8px;
    padding:18px 16px;
    min-height:108px
}
.report-metric span {
    display:block;
    font-size:13px;
    font-weight:800;
    color:#374151;
    margin-bottom:8px
}
.report-metric strong {
    font-size:30px;
    letter-spacing:-.05em
}
.report-metric strong em {
    font-size:16px;
    color:#64748b;
    font-style:normal
}
.report-metric small {
    display:block;
    color:#6b7280;
    margin-top:4px
}
.stars {
    color:#f8c12d;
    font-size:17px;
    letter-spacing:1px
}
.metric-line {
    height:7px;
    background:#e5e7eb;
    border-radius:99px;
    margin-top:14px;
    overflow:hidden
}
.metric-line i {
    display:block;
    height:100%;
    background:#246ad9;
    border-radius:99px
}
.keyword-row {
    display:flex;
    gap:10px;
    align-items:center;
    margin-top:14px;
    border:1px solid #edf0f5;
    border-radius:8px;
    padding:13px 14px;
    font-size:12px
}
.keyword-row span {
    font-weight:800;
    margin-right:6px
}
.keyword-row b {
    padding:7px 14px;
    border-radius:999px;
    background:#f5f6f8;
    font-size:12px
}
.keyword-row em {
    margin-left:auto;
    color:#9ca3af;
    font-style:normal
}
.about-question-section {
    max-width:1180px
}
.about-question-block {
    display:grid;
    grid-template-columns:330px 1fr;
    gap:40px;
    align-items:center;
    margin:180px auto
}
.about-q-title {
    position:relative
}
.about-q-title span {
    font-size:42px;
    color:#062a64;
    font-weight:700;
    position:absolute;
    left:-54px;
    top:-8px
}
.about-q-title h2 {
    font-size:25px;
    line-height:1.55;
    margin:0 0 24px;
    font-weight:700;
    color:#111827
    white-space:nowrap
}
.about-q-title p {
    font-size:14px;
    line-height:1.9;
    color:#555;
    margin:0
}
.about-solve-grid {
    display:grid;
    grid-template-columns:1fr 44px 1.45fr;
    gap:12px 22px;
    align-items:center
}
.solve-title {
    font-size:15px;
    font-weight:900;
    margin-bottom:6px
}
.problem-title {
    grid-column:1
}
.solution-title {
    grid-column:3
}
.problem-card {
    background:#f7f7f7;
    border-radius:8px;
    padding:22px 26px;
    font-size:15px;
    line-height:1.65;
    font-weight:700;
    color:#222
}
.solve-arrow {
    text-align:center;
    font-size:30px;
    color:#2d3748
}
.solution-card {
    background:#061331;
    color:#fff;
    border-radius:5px;
    padding:22px 28px;
    font-size:15px;
    line-height:1.75;
    box-shadow:0 7px 20px rgba(6,19,49,.12)
}
.solution-card b {
    font-weight:800
}
.process-block,.report-block {
    align-items:center
}
.about-process-row {
    display:grid;
    grid-template-columns:repeat(5,124px);
    gap:32px;
    align-items:stretch;
    justify-content:space-between
}
.about-process-row>em {
    display:none
}
.about-step-card {
    border:1px solid #f0f3f7;
    background:#fff;
    border-radius:10px;
    min-height:214px;
    padding:26px 14px 20px;
    text-align:center;
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    box-shadow:0 10px 28px rgba(15,23,42,.025)
}
.about-step-card:not(:last-child):after {
    content:'';
    position:absolute;
    right:-25px;
    top:50%;
    width:9px;
    height:9px;
    border-top:2px solid #0b1f3f;
    border-right:2px solid #0b1f3f;
    transform:translateY(-50%) rotate(45deg);
    z-index:2
}
.about-step-card>i {
    position:absolute;
    left:50%;
    top:-14px;
    transform:translateX(-50%);
    width:26px;
    height:26px;
    background:#061331;
    color:#fff;
    border-radius:50%;
    font-style:normal;
    font-weight:900;
    display:flex;
    align-items:center;
    justify-content:center
}
.circle-icon {
    width:58px;
    height:58px;
    border-radius:50%;
    background:#f3f5f9;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:8px auto 12px;
    flex:0 0 58px;
    font-size:27px;
    color:#111827
}
.circle-icon img {
    display:block;
    width:32px;
    height:32px;
    object-fit:contain
}
.about-step-card h3 {
    font-size:16px;
    min-height:20px;
    margin:0 0 10px;
    font-weight:900
}
.about-step-card b {
    display:block;
    width:18px;
    height:1px;
    background:#cbd5e1;
    margin:0 auto 12px
}
.about-step-card p {
    font-size:11px;
    line-height:1.6;
    color:#555;
    min-height:36px;
    margin:0
}
.about-mini-report {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px
}
.mini-card {
    border:1px solid #e6eaf1;
    background:#fff;
    border-radius:10px;
    padding:22px 20px;
    min-height:180px;
    box-shadow:0 10px 30px rgba(15,23,42,.035)
}
.mini-card h3 {
    font-size:13px;
    margin:0 0 14px;
    font-weight:900
}
.mini-card strong {
    display:block;
    font-size:24px;
    color:#0b3470;
    margin-bottom:8px
}
.mini-card strong em {
    font-size:13px;
    color:#111;
    font-style:normal
}
.stars.navy {
    color:#062a64
}
.score p {
    display:grid;
    grid-template-columns:26px 1fr 30px;
    align-items:center;
    gap:8px;
    margin:7px 0;
    font-size:11px
}
.score p i {
    height:6px;
    background:#062a64;
    border-radius:999px
}
.score p b {
    font-size:10px;
    color:#64748b
}
.bars {
    height:105px;
    display:flex;
    gap:10px;
    align-items:flex-end;
    margin-top:16px
}
.bars i {
    flex:1;
    background:#d8dde5;
    border-radius:3px 3px 0 0
}
.bars i.on {
    background:#062a64
}
.bar-labels {
    display:flex;
    justify-content:space-between;
    font-size:9px;
    color:#64748b;
    margin-top:8px
}
.improve-list p,.selling-list p {
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin:11px 0;
    font-size:12px;
    font-weight:700
}
.improve-list p b {
    width:18px;
    height:18px;
    background:#062a64;
    color:#fff;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:10px
}
.improve-list p em {
    margin-left:auto;
    font-style:normal;
    color:#64748b
}
.selling-list {
    display:flex;
    flex-direction:column
}
.selling-list p {
    justify-content:flex-start;
    font-size:13px
}
.selling-list small {
    display:block;
    align-self:flex-end;
    text-align:center;
    color:#9ca3af;
    margin-top:auto;
    padding-top:22px
}
.about-center-title {
    text-align:center;
    margin:110px 0 34px;
    font-size:24px;
    font-weight:900
}
.about-need-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
    margin-bottom:40px
}
.need-card {
    border:1px solid #e6eaf1;
    border-radius:9px;
    background:#fff;
    padding:26px 24px;
    display:grid;
    grid-template-columns:42px 1fr;
    gap:10px 16px;
    box-shadow:0 8px 25px rgba(15,23,42,.035);
    transition:.25s
}
.need-card:hover {
    transform:translateY(-6px);
    border-color:#061331;
    box-shadow:0 14px 36px rgba(15,23,42,.09)
}
.need-card i {
    grid-row:1/3;
    width:40px;
    height:40px;
    border:1px solid #111827;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-style:normal;
    font-size:20px
}
.need-card h3 {
    font-size:16px;
    margin:0;
    font-weight:900
}
.need-card p {
    font-size:12px;
    line-height:1.75;
    color:#555;
    margin:0
}
@media(max-width:980px) {
    .about-hero,.about-question-block {
        grid-template-columns:1fr
    }
    .about-hero-copy {
        text-align:left
    }
    .about-solve-grid {
        grid-template-columns:1fr
    }
    .problem-title,.solution-title {
        grid-column:auto
    }
    .solve-arrow {
        transform:rotate(90deg)
    }
    .about-process-row,.about-mini-report,.about-need-grid {
        grid-template-columns:1fr 1fr
    }
    .about-q-title span {
        position:static;
        display:block;
        margin-bottom:10px
    }
    .about-step-card:not(:last-child):after {
        display:none
    }
}
@media(max-width:600px) {
    .about-report-metrics,.about-process-row,.about-mini-report,.about-need-grid {
        grid-template-columns:1fr
    }
    .about-step-card {
        min-height:190px;
        padding:24px 18px 18px
    }
    .about-step-card p {
        max-width:280px;
        min-height:0;
        font-size:16px;
        line-height:1.6
    }
    .about-step-card p br {
        display:none
    }
    .keyword-row {
        flex-wrap:wrap
    }
    .keyword-row em {
        margin-left:0
    }
    .about-hero-copy h1 {
        font-size:31px
    }
    .about-q-title h2 {
        font-size:22px
    }
}

/* about brand/service stats band */
.about-brand-band {
    margin:86px 0 0;
    border:1px solid #e7ebf1;
    border-radius:12px;
    background:#fff;
    box-shadow:0 18px 48px rgba(15,23,42,.045);
    padding:26px 32px;
    display:grid;
    grid-template-columns:76px 1.7fr 2fr;
    gap:28px;
    align-items:center
}
.brand-symbol {
    width:60px;
    height:60px;
    border-radius:50%;
    background:#072b66;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:34px;
    font-weight:900
}
.brand-copy h3 {
    margin:0 0 10px;
    font-size:20px;
    line-height:1.35;
    color:#06142b
}
.brand-copy p {
    margin:0;
    color:#334155;
    font-size:14px;
    line-height:1.7
}
.brand-stats {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    align-items:center
}
.brand-stat {
    min-height:86px;
    text-align:center;
    border-left:1px solid #e7ebf1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px
}
.brand-stat i {
    font-style:normal;
    color:#06142b;
    font-size:26px;
    line-height:1
}
.brand-stat strong {
    font-size:24px;
    color:#06142b;
    letter-spacing:-.02em
}
.brand-stat span {
    font-size:13px;
    color:#475569;
    font-weight:700
}
@media(max-width:900px) {
    .about-brand-band {
        grid-template-columns:1fr;
        text-align:center
    }
    .brand-symbol {
        margin:0 auto
    }
    .brand-stats {
        grid-template-columns:repeat(2,1fr);
        gap:0
    }
    .brand-stat {
        border-left:0;
        border-top:1px solid #e7ebf1
    }
}
@media(max-width:560px) {
    .brand-stats {
        grid-template-columns:1fr
    }
    .brand-stat {
        border-left:0;
        border-top:1px solid #e7ebf1
    }
}

/* Apply page one-line form alignment patch */
.form-grid .radio-row, .apply-form .radio-row {
    display: flex;
    align-items: center;
    gap: 34px;
    flex-wrap: nowrap;
}
.form-grid .radio-row label, .apply-form .radio-row label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    font-weight: 600;
}
.form-grid .radio-row input[type="radio"], .form-grid .radio-row input[type="checkbox"], .apply-form .radio-row input[type="radio"], .apply-form .radio-row input[type="checkbox"] {
    width: auto;
    margin: 0;
}
.form-grid .agree-row, .apply-form .agree-row, .agree-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    white-space: nowrap;
    text-align: center;
}
.form-grid .agree-row input[type="checkbox"], .apply-form .agree-row input[type="checkbox"], .agree-row input[type="checkbox"] {
    width: auto;
    margin: 0;
}

@media(max-width:900px) {
    .apply-flow {
        grid-template-columns:repeat(3,1fr);
        row-gap:46px
    }
    .apply-step:nth-child(3)::after,
    .apply-step:nth-child(6)::after {
        display:none
    }
}
@media(max-width:560px) {
    .apply-flow {
        grid-template-columns:1fr;
        gap:34px
    }
    .apply-step::after {
        display:none !important
    }
}

/* Service package hover behavior
- Report 제품검증형(.featured)은 기본 추천 패키지로 진하게 표시합니다.
- 다른 패키지 카드에 마우스를 올리면 기본 추천 스타일은 즉시 해제됩니다.
- 현재 마우스가 올라간 카드만 진하게 표시됩니다.
*/
.package-grid:hover .price-card.featured:not(:hover) {
    background: #fff;
    color: #111;
    box-shadow: none;
}
.package-grid:hover .price-card.featured:not(:hover) .eyebrow {
    background: #f4f7fb !important;
    color: #0b356c !important;
}
.package-grid .price-card:hover .eyebrow {
    background: #fff !important;
    color: #111 !important;
}

/* Service package card line alignment patch
- 추천 패키지 배지 영역을 모든 카드에 동일하게 확보합니다.
- 카드 제목과 설명 문구가 같은 높이에서 시작되도록 맞춥니다.
- 설명 문구가 2줄로 꺾이지 않도록 한 줄 표시를 유지합니다.
*/
.package-grid .price-card {
    padding-left: 22px;
    padding-right: 22px;
}
.package-grid .package-badge-slot {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    margin-bottom: 12px;
}
.package-grid .package-badge-slot .eyebrow {
    margin: 0;
    background: #fff;
    color: #111;
}
.package-grid .price-card h3 {
    margin-top: 0;
    margin-bottom: 18px;
    font-size: 21px;
    line-height: 1.25;
    letter-spacing: -0.06em;
    white-space: nowrap;
}
.package-grid .price-card p {
    min-height: 24px;
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: -0.08em;
    white-space: nowrap;
}

/* Service page icon card layout */
.icon-card-grid .icon-card {
    display:flex;
    align-items:center;
    gap:22px;
    min-height:132px;
    padding:28px;
}
.icon-card-grid .icon-card h3 {
    margin:0 0 10px;
}
.icon-card-grid .icon-card p {
    margin:0;
}
.card-icon {
    flex:0 0 52px;
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.card-icon img {
    display:block;
    width:52px;
    height:52px;
    object-fit:contain;
}

@media(max-width:560px) {
    .icon-card-grid .icon-card {
        align-items:flex-start;
        gap:16px;
        padding:24px;
    }
    .card-icon,
    .card-icon img {
        width:42px;
        height:42px;
        flex-basis:42px;
    }
}

/* v15 about icon image slots */
.need-card-icon {
    grid-row:1/3;
    width:40px;
    height:40px;
    border:1px solid #111827;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    flex-shrink:0;
}
.need-card-icon img {
    width:24px;
    height:24px;
    display:block;
    object-fit:contain;
}
.need-card i {
    display:none;
}
.brand-symbol img {
    width:38px;
    height:38px;
    display:block;
    object-fit:contain;
}
.brand-stat-icon {
    width:28px;
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.brand-stat-icon img {
    width:26px;
    height:26px;
    display:block;
    object-fit:contain;
}
.brand-stat i {
    display:none;
}

/* case.php - 제품 유형 / 리포트 결정 섹션 이미지 슬롯 */
.case-design-hero {
    align-items: center;
}

.case-design-hero .case-hero-img {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 260px;
    background: #f7f7f7;
    border-radius: 0;
    overflow: hidden;
}

.case-design-hero .case-hero-img::after {
    display: none;
}

.case-design-hero .case-hero-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.case-report-section > h2:first-child {
    margin-bottom: 26px;
}

.case-decision-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

.case-decision-card {
    min-height: 180px;
    padding: 26px 18px 24px;
    text-align: center;
}

.case-decision-card:hover {
    transform: translateY(-6px);
}

.case-decision-icon {
    width: 46px;
    height: 46px;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.case-decision-icon img {
    width: 46px;
    height: 46px;
    object-fit: contain;
    display: block;
}

.case-decision-card h3 {
    margin: 0 0 12px;
    font-size: 17px;
    line-height: 1.35;
}

.case-decision-card p {
    margin: 0;
    font-size: 13px;
    line-height: 1.65;
    color: #333;
}

@media (max-width: 900px) {
    .case-decision-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }
}

@media (max-width: 560px) {
    .case-decision-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== Case page report icon slots ===== */
.case-report-section .report-wide .report-top .report-summary-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 168px;
  padding: 20px 18px;
}

.report-summary-icon,
.report-detail-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.report-summary-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 12px;
}

.report-summary-icon img,
.report-detail-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.case-report-section .report-wide .report-top .report-summary-card strong {
  margin-top: 12px;
}

.case-report-section .report-bottom .report-detail-card {
  position: relative;
  padding-top: 28px;
}

.report-detail-icon {
  width: 42px;
  height: 42px;
  margin-bottom: 14px;
}

.case-report-section .report-bottom .report-detail-card h3 {
  margin-top: 0;
}

/* ===== v18 report dashboard layout ===== */
.case-report-section .report-dashboard {
    padding: 22px;
    border: 1px solid #e8edf4;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(2, 8, 23, .04);
}

.case-report-section .report-dashboard .report-top {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.case-report-section .report-dashboard .report-bottom {
    display: grid;
    grid-template-columns: 1.55fr 1.2fr .9fr 1.05fr;
    gap: 10px;
    margin-top: 10px;
}

.case-report-section .report-dashboard .metric,
.case-report-section .report-dashboard .report-detail-card {
    border: 1px solid #e8edf4;
    border-radius: 10px;
    box-shadow: none;
    background: #fff;
}

.case-report-section .report-dashboard .report-summary-card {
    min-height: 142px;
    padding: 20px 16px 18px;
    text-align: center;
}

.case-report-section .report-dashboard .report-summary-card small {
    display: block;
    margin-bottom: 12px;
    color: #111827;
    font-size: 14px;
    font-weight: 900;
}

.case-report-section .report-dashboard .report-summary-card small span {
    font-size: 12px;
    color: #475569;
}

.case-report-section .report-dashboard .report-summary-card strong {
    display: block;
    margin: 0;
    color: #020617;
    font-size: 38px;
    line-height: 1;
    font-weight: 900;
}

.case-report-section .report-dashboard .report-summary-card strong em {
    display: inline;
    margin-left: 4px;
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
}

.case-report-section .report-dashboard .rating-stars {
    margin-top: 12px;
    color: #020617;
    font-size: 23px;
    letter-spacing: 2px;
}

.case-report-section .report-dashboard .summary-progress {
    width: 98px;
    height: 8px;
    margin: 16px auto 0;
    overflow: hidden;
    border-radius: 999px;
    background: #e5e7eb;
}

.case-report-section .report-dashboard .summary-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #020617;
}

.case-report-section .report-dashboard .report-detail-card {
    padding: 22px 20px;
    min-height: 250px;
}

.case-report-section .report-dashboard .report-detail-card h3 {
    margin: 0 0 18px;
    color: #020617;
    font-size: 16px;
    font-weight: 900;
}

.case-report-section .report-dashboard .report-detail-card h3 span {
    font-size: 12px;
    color: #64748b;
    font-weight: 700;
}

.case-report-section .report-dashboard .report-satisfaction-card {
    padding-bottom: 14px;
}

.case-report-section .report-dashboard .report-row {
    display: grid;
    grid-template-columns: 96px 1fr 34px;
    gap: 12px;
    align-items: center;
    margin: 13px 0;
}

.case-report-section .report-dashboard .report-row b {
    color: #111827;
    font-size: 13px;
    font-weight: 800;
}

.case-report-section .report-dashboard .report-row .bar {
    height: 10px;
    background: #eff1f4;
}

.case-report-section .report-dashboard .report-row .bar i {
    background: #020617;
}

.case-report-section .report-dashboard .report-row em {
    color: #475569;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    text-align: right;
}

.case-report-section .report-dashboard .report-scale {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    width: calc(100% - 142px);
    margin: 8px 34px 0 auto;
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
}

.case-report-section .report-dashboard .report-price-card {
    display: grid;
    grid-template-columns: 128px 1fr;
    gap: 16px;
    align-items: center;
}

.case-report-section .report-dashboard .report-price-card h3 {
    grid-column: 1 / 3;
    margin-bottom: 2px;
}

.case-report-section .report-dashboard .price-donut {
    position: relative;
    width: 124px;
    height: 124px;
    border-radius: 50%;
    background: conic-gradient(#020617 0 12%, #52565f 12% 38%, #9ca3af 38% 72%, #cfd4dc 72% 90%, #edf0f4 90% 100%);
}

.case-report-section .report-dashboard .price-donut::after {
    content: '';
    position: absolute;
    inset: 28px;
    border-radius: 50%;
    background: #fff;
}

.case-report-section .report-dashboard .donut-center {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: #020617;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
}

.case-report-section .report-dashboard .donut-center b {
    font-size: 15px;
}

.case-report-section .report-dashboard .price-legend {
    margin: 0;
    padding: 0;
    list-style: none;
}

.case-report-section .report-dashboard .price-legend li {
    display: grid;
    grid-template-columns: 8px 1fr 34px;
    gap: 8px;
    align-items: center;
    margin: 10px 0;
    color: #334155;
    font-size: 11px;
    font-weight: 700;
}

.case-report-section .report-dashboard .price-legend li i {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #020617;
}

.case-report-section .report-dashboard .price-legend li:nth-child(2) i { background: #52565f; }
.case-report-section .report-dashboard .price-legend li:nth-child(3) i { background: #9ca3af; }
.case-report-section .report-dashboard .price-legend li:nth-child(4) i { background: #cfd4dc; }
.case-report-section .report-dashboard .price-legend li:nth-child(5) i { background: #edf0f4; border: 1px solid #cbd5e1; }

.case-report-section .report-dashboard .price-legend li b {
    color: #020617;
    text-align: right;
}

.case-report-section .report-dashboard .respondent-list p,
.case-report-section .report-dashboard .point-list li {
    display: grid;
    align-items: center;
    margin: 11px 0;
    color: #334155;
    font-size: 13px;
    line-height: 1.35;
}

.case-report-section .report-dashboard .respondent-list p {
    grid-template-columns: 24px 1fr 38px;
    gap: 8px;
}

.case-report-section .report-dashboard .report-inline-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
}

.case-report-section .report-dashboard .report-inline-icon img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.case-report-section .report-dashboard .respondent-list hr {
    border: 0;
    border-top: 1px solid #e5e7eb;
    margin: 12px 0;
}

.case-report-section .report-dashboard .respondent-list b,
.case-report-section .report-dashboard .point-list b {
    color: #111827;
    font-weight: 800;
}

.case-report-section .report-dashboard .respondent-list em,
.case-report-section .report-dashboard .point-list em {
    color: #475569;
    font-style: normal;
    font-weight: 800;
    text-align: right;
}

.case-report-section .report-dashboard .point-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.case-report-section .report-dashboard .point-list li {
    grid-template-columns: 24px 1fr 38px;
    gap: 8px;
}

.case-report-section .report-dashboard .point-list span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #020617;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

@media (max-width: 900px) {
    .case-report-section .report-dashboard .report-bottom {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .case-report-section .report-dashboard .report-top,
    .case-report-section .report-dashboard .report-bottom {
        grid-template-columns: 1fr;
    }

    .case-report-section .report-dashboard .report-price-card {
        grid-template-columns: 1fr;
    }

    .case-report-section .report-dashboard .report-price-card h3 {
        grid-column: auto;
    }
}

.comment-head {
    margin-top:70px;
    margin-bottom:26px
}
.comment-head h2 {
    margin:0;
    font-size:26px;
    line-height:1.35
}
.comment-head p {
    margin:12px 0 0;
    color:#555;
    line-height:1.65
}
.comment-grid-upgraded {
    gap:22px
}
.comment-card {
    position:relative;
    min-height:220px;
    border:1px solid #e5e7eb;
    border-radius:16px;
    background:#fff;
    padding:34px 28px 28px;
    box-shadow:0 16px 38px rgba(2,8,23,.045);
    overflow:hidden;
    transition:.25s
}
.comment-card:hover {
    transform:translateY(-6px);
    border-color:#d7dde7;
    box-shadow:0 24px 54px rgba(2,8,23,.09)
}
.comment-quote {
    position:absolute;
    color:#eef1f6;
    font-size:78px;
    font-weight:900;
    line-height:1;
    font-family:Georgia,serif;
    pointer-events:none
}
.comment-quote-left {
    top:18px;
    left:22px
}
.comment-quote-right {
    right:24px;
    bottom:76px
}
.comment-text {
    position:relative;
    z-index:1;
    margin:18px 0 28px;
    color:#061327;
    font-size:18px;
    font-weight:700;
    line-height:1.65;
    word-break:keep-all
}
.comment-divider {
    width:100%;
    height:1px;
    margin:0 0 18px;
    background:#eef1f5
}
.comment-meta {
    color:#061327;
    font-size:14px;
    font-weight:800;
    margin-bottom:12px
}
.comment-tags {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:16px
}
.comment-tags span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:0 12px;
    border-radius:999px;
    background:#f4f6f9;
    color:#4b5563;
    font-size:13px;
    font-weight:700
}
.comment-stars {
    color:#06194c;
    font-size:17px;
    letter-spacing:2px
}

@media (max-width:900px) {
    .comment-grid-upgraded {
        grid-template-columns:repeat(2,1fr)
    }
}

@media (max-width:600px) {
    .comment-grid-upgraded {
        grid-template-columns:1fr
    }
    .comment-card {
        min-height:auto
    }
}

/* ===== v21 report dashboard layout fix ===== */
.case-report-section .report-dashboard .report-scale {
    display: none;
}

.case-report-section .report-dashboard .report-bottom {
    grid-template-columns: 1.42fr 1.38fr .82fr .96fr;
}

.case-report-section .report-dashboard .report-price-card {
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 18px;
}

.case-report-section .report-dashboard .price-legend li {
    grid-template-columns: 8px minmax(124px, 1fr) 34px;
    column-gap: 8px;
    white-space: nowrap;
}

.case-report-section .report-dashboard .price-legend li b {
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .case-report-section .report-dashboard .report-bottom {
        grid-template-columns: 1fr 1fr;
    }

    .case-report-section .report-dashboard .report-price-card {
        grid-template-columns: 132px minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    .case-report-section .report-dashboard .report-price-card {
        grid-template-columns: 1fr;
    }

    .case-report-section .report-dashboard .report-price-card h3 {
        grid-column: 1;
    }
}

/* ===== v23 report dashboard price percent + top 5 spacing fix ===== */
.case-report-section .report-dashboard .report-bottom {
    grid-template-columns: 1.34fr 1.56fr .82fr 1.03fr;
    align-items: stretch;
}

.case-report-section .report-dashboard .report-price-card {
    grid-template-columns: 118px minmax(188px, 1fr);
    gap: 18px;
    overflow: hidden;
}

.case-report-section .report-dashboard .price-donut {
    width: 114px;
    height: 114px;
}

.case-report-section .report-dashboard .price-donut::after {
    inset: 26px;
}

.case-report-section .report-dashboard .price-legend {
    min-width: 188px;
}

.case-report-section .report-dashboard .price-legend li {
    display: grid;
    grid-template-columns: 8px minmax(112px, 1fr) max-content;
    column-gap: 8px;
    align-items: center;
    margin: 9px 0;
    white-space: nowrap;
    font-size: 10.5px;
}

.case-report-section .report-dashboard .price-legend li b {
    display: block;
    min-width: 28px;
    white-space: nowrap;
    text-align: right;
}

.case-report-section .report-dashboard .report-point-card {
    display: flex;
    flex-direction: column;
}

.case-report-section .report-dashboard .report-point-card h3 {
    margin-bottom: 14px;
}

.case-report-section .report-dashboard .point-list {
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: space-between;
    min-height: 176px;
}

.case-report-section .report-dashboard .point-list li {
    margin: 0;
}

@media (max-width: 1100px) {
    .case-report-section .report-dashboard .report-bottom {
        grid-template-columns: 1fr 1fr;
    }

    .case-report-section .report-dashboard .report-price-card {
        grid-template-columns: 118px minmax(188px, 1fr);
    }
}

@media (max-width: 720px) {
    .case-report-section .report-dashboard .report-price-card {
        grid-template-columns: 1fr;
    }

    .case-report-section .report-dashboard .price-legend {
        min-width: 0;
    }
}

/* ===== v24 report dashboard vertical alignment fix ===== */
.case-report-section .report-dashboard .report-bottom {
    align-items: stretch;
}

.case-report-section .report-dashboard .report-detail-card {
    align-self: stretch;
}

.case-report-section .report-dashboard .report-price-card {
    align-content: start;
    align-items: center;
    grid-template-rows: auto 1fr;
}

.case-report-section .report-dashboard .report-price-card h3 {
    align-self: start;
    grid-column: 1 / -1;
    margin: 0 0 18px;
}

.case-report-section .report-dashboard .price-legend li {
    grid-template-columns: 8px minmax(120px, 1fr) max-content;
    white-space: nowrap;
}

.case-report-section .report-dashboard .price-legend li b {
    white-space: nowrap;
}

.case-report-section .report-dashboard .report-point-card {
    align-content: start;
}

.case-report-section .report-dashboard .point-list {
    min-height: 180px;
}

/* ===== v25 report dashboard spacing refinement ===== */
.case-report-section .report-dashboard .report-satisfaction-card {
    display: flex;
    flex-direction: column;
}

.case-report-section .report-dashboard .report-satisfaction-card h3 {
    margin-bottom: 20px;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row {
    margin: 0;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row + .report-row {
    margin-top: 17px;
}

.case-report-section .report-dashboard .report-price-card {
    grid-template-columns: 146px 1fr;
    gap: 18px;
    align-content: center;
}

.case-report-section .report-dashboard .price-donut {
    width: 144px;
    height: 144px;
}

.case-report-section .report-dashboard .price-donut::after {
    inset: 32px;
}

.case-report-section .report-dashboard .price-legend li {
    grid-template-columns: 8px minmax(112px, 1fr) 36px;
    margin: 12px 0;
    font-size: 11px;
    white-space: nowrap;
}

.case-report-section .report-dashboard .price-legend li b {
    white-space: nowrap;
}

/* ===== v26 price distribution 2-stage layout ===== */
.case-report-section .report-dashboard .report-price-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    padding: 22px 24px;
    overflow: hidden;
}

.case-report-section .report-dashboard .report-price-card h3 {
    width: 100%;
    margin: 0 0 16px;
}

.case-report-section .report-dashboard .price-donut {
    width: 118px;
    height: 118px;
    margin: 0 auto 16px;
    flex: 0 0 auto;
}

.case-report-section .report-dashboard .price-donut::after {
    inset: 27px;
}

.case-report-section .report-dashboard .donut-center {
    font-size: 11px;
}

.case-report-section .report-dashboard .donut-center b {
    font-size: 14px;
}

.case-report-section .report-dashboard .price-legend {
    width: 100%;
    min-width: 0;
    padding-top: 14px;
    border-top: 1px solid #eef2f6;
}

.case-report-section .report-dashboard .price-legend li {
    display: grid;
    grid-template-columns: 8px minmax(112px, 1fr) 70px 34px;
    column-gap: 8px;
    align-items: center;
    margin: 8px 0;
    color: #334155;
    font-size: 10.5px;
    line-height: 1.2;
    white-space: nowrap;
}

.case-report-section .report-dashboard .price-legend li::after {
    content: '';
    display: block;
    height: 7px;
    border-radius: 999px;
    background: #edf0f4;
}

.case-report-section .report-dashboard .price-legend li:nth-child(1)::after {
    background: linear-gradient(to right, #020617 0 35%, #edf0f4 35% 100%);
}

.case-report-section .report-dashboard .price-legend li:nth-child(2)::after {
    background: linear-gradient(to right, #52565f 0 62%, #edf0f4 62% 100%);
}

.case-report-section .report-dashboard .price-legend li:nth-child(3)::after {
    background: linear-gradient(to right, #9ca3af 0 82%, #edf0f4 82% 100%);
}

.case-report-section .report-dashboard .price-legend li:nth-child(4)::after {
    background: linear-gradient(to right, #cfd4dc 0 48%, #edf0f4 48% 100%);
}

.case-report-section .report-dashboard .price-legend li:nth-child(5)::after {
    background: linear-gradient(to right, #d9dee6 0 28%, #edf0f4 28% 100%);
}

.case-report-section .report-dashboard .price-legend li b {
    display: block;
    min-width: 0;
    color: #020617;
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .case-report-section .report-dashboard .report-price-card {
        min-height: 280px;
    }
}

@media (max-width: 720px) {
    .case-report-section .report-dashboard .price-legend li {
        grid-template-columns: 8px minmax(120px, 1fr) 80px 36px;
    }
}

/* ===== v27 report dashboard spacing refinement ===== */
.case-report-section .report-dashboard .report-bottom {
    grid-template-columns: 1.42fr 1.66fr .9fr 1.08fr;
    align-items: stretch;
}

.case-report-section .report-dashboard .report-detail-card {
    min-height: 340px;
    padding: 24px 20px;
}

.case-report-section .report-dashboard .report-detail-card h3 {
    margin-bottom: 22px;
}

.case-report-section .report-dashboard .report-satisfaction-card {
    display: flex;
    flex-direction: column;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row {
    margin: 0;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row + .report-row {
    margin-top: 21px;
}

.case-report-section .report-dashboard .report-row {
    grid-template-columns: 98px 1fr 34px;
}

.case-report-section .report-dashboard .report-row .bar {
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
}

.case-report-section .report-dashboard .report-price-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.case-report-section .report-dashboard .report-price-card h3 {
    margin-bottom: 10px;
}

.case-report-section .report-dashboard .price-donut {
    width: 128px;
    height: 128px;
    margin: 0 auto 14px;
    flex: 0 0 auto;
}

.case-report-section .report-dashboard .price-legend {
    width: 100%;
    margin-top: 0;
    padding-top: 16px;
    border-top: 1px solid #e8edf4;
}

.case-report-section .report-dashboard .price-legend li {
    grid-template-columns: 8px minmax(108px, 1fr) 32px 44px;
    gap: 8px;
    margin: 9px 0;
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
}

.case-report-section .report-dashboard .price-legend li b {
    font-size: 12px;
    text-align: right;
}

.case-report-section .report-dashboard .price-legend li::after {
    content: '';
    display: block;
    height: 7px;
    border-radius: 999px;
    background: linear-gradient(to right, #020617 var(--price-bar, 50%), #e8edf4 var(--price-bar, 50%));
}

.case-report-section .report-dashboard .price-legend li:nth-child(1) { --price-bar: 35%; }
.case-report-section .report-dashboard .price-legend li:nth-child(2) { --price-bar: 76%; }
.case-report-section .report-dashboard .price-legend li:nth-child(3) { --price-bar: 100%; }
.case-report-section .report-dashboard .price-legend li:nth-child(4) { --price-bar: 53%; }
.case-report-section .report-dashboard .price-legend li:nth-child(5) { --price-bar: 29%; }

.case-report-section .report-dashboard .report-respondent-card,
.case-report-section .report-dashboard .report-point-card {
    display: flex;
    flex-direction: column;
}

.case-report-section .report-dashboard .respondent-list,
.case-report-section .report-dashboard .point-list {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.case-report-section .report-dashboard .respondent-list {
    justify-content: space-between;
}

.case-report-section .report-dashboard .respondent-list p {
    margin: 0;
}

.case-report-section .report-dashboard .respondent-list hr {
    width: 100%;
    margin: 2px 0;
}

.case-report-section .report-dashboard .point-list {
    justify-content: space-between;
}

.case-report-section .report-dashboard .point-list li {
    margin: 0;
    min-height: 34px;
}

.case-report-section .report-dashboard .point-list span {
    width: 21px;
    height: 21px;
}

@media (max-width: 900px) {
    .case-report-section .report-dashboard .report-bottom {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .case-report-section .report-dashboard .report-bottom {
        grid-template-columns: 1fr;
    }

    .case-report-section .report-dashboard .price-legend li {
        grid-template-columns: 8px minmax(120px, 1fr) 34px 48px;
    }
}

/* ===== v28 report satisfaction spacing refinement ===== */
.case-report-section .report-dashboard .report-satisfaction-card {
    display: flex;
    flex-direction: column;
    padding-bottom: 22px;
}

.case-report-section .report-dashboard .report-satisfaction-card h3 {
    margin-bottom: 0;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row-wrap,
.case-report-section .report-dashboard .report-satisfaction-card .report-bars,
.case-report-section .report-dashboard .report-satisfaction-card .report-list {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row:first-of-type {
    margin-top: 26px;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row {
    grid-template-columns: 98px minmax(0, 1fr) 34px;
    gap: 13px;
    margin: 0;
    min-height: 35px;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row b {
    font-size: 13px;
    line-height: 1.25;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row .bar {
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-row em {
    font-size: 12px;
}

.case-report-section .report-dashboard .report-satisfaction-card .report-scale {
    display: none !important;
}

/* v32 Service package button line alignment
- 패키지 카드 내부 요소를 세로 플렉스 구조로 정리합니다.
- 리스트 개수가 달라도 가격과 자세히 보기 버튼이 동일한 라인에 오도록 맞춥니다.
*/
.package-grid .price-card {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.package-grid .price-card ul {
    width: 100%;
    margin-bottom: 24px;
}
.package-grid .price-card .price {
    margin-top: auto;
    margin-bottom: 28px;
}
.package-grid .price-card .btn {
    margin-top: 0;
}

/* Contact form phone/email split + privacy detail */
.phone-split,
.email-split {
    display: grid;
    align-items: center;
    gap: 10px;
}
.phone-split {
    grid-template-columns: 1fr auto 1fr auto 1fr;
}
.email-split {
    grid-template-columns: 1fr auto 1fr 180px;
}
.phone-split span,
.email-split span {
    font-weight: 800;
    color: #111827;
    text-align: center;
}
.phone-split input,
.email-split input,
.email-split select {
    min-width: 0;
}
.privacy-agree {
    margin: 24px 0 12px;
}
.privacy-agree label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
}
.privacy-detail-btn {
    border: 1px solid #111827;
    border-radius: 999px;
    background: #fff;
    color: #111827;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}
.privacy-detail-box {
    max-width: 760px;
    margin: 0 auto 22px;
    padding: 18px 20px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #f8fafc;
    color: #374151;
    line-height: 1.7;
    text-align: left;
}
.privacy-detail-box strong {
    display: block;
    margin-bottom: 8px;
    color: #06132d;
}
.privacy-detail-box p {
    margin: 0;
}
@media(max-width: 900px) {
    .phone-split {
        grid-template-columns: 1fr auto 1fr auto 1fr;
    }
    .email-split {
        grid-template-columns: 1fr auto 1fr;
    }
    .email-split select {
        grid-column: 3 / 4;
    }
}
@media(max-width: 560px) {
    .phone-split,
    .email-split {
        grid-template-columns: 1fr;
    }
    .phone-split span,
    .email-split span {
        display: none;
    }
    .email-split select {
        grid-column: auto;
    }
    .privacy-agree {
        flex-direction: column;
        white-space: normal;
    }
}


/* ===== v34 admin product controls ===== */
.admin-inline-form {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    align-items: center;
    margin-top: 16px;
}
.admin-inline-form input[type="text"],
.admin-inline-form input:not([type]) {
    border: 1px solid #d9dfe7;
    border-radius: 6px;
    padding: 13px 14px;
    font-size: 15px;
}
.admin-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    font-weight: 700;
}
.admin-table-input {
    width: 100%;
    border: 1px solid #d9dfe7;
    border-radius: 6px;
    padding: 10px 12px;
    font-size: 14px;
}
.admin-delete-btn {
    border: 1px solid #ef4444;
    background: #fff;
    color: #ef4444;
    border-radius: 6px;
    padding: 8px 12px;
    font-weight: 800;
    cursor: pointer;
}
@media(max-width: 760px) {
    .phone-split {
        grid-template-columns: 1fr;
    }
    .phone-split span {
        display: none;
    }
    .admin-inline-form {
        grid-template-columns: 1fr;
    }
}


/* ===== v36 apply/contact privacy detail alignment fix ===== */
.privacy-agree {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 24px 0 12px;
    text-align: center;
    flex-wrap: wrap;
}
.privacy-agree label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 800;
    line-height: 1.4;
}
.privacy-agree input[type="checkbox"] {
    width: 15px;
    height: 15px;
    margin: 0;
}
.privacy-detail-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    padding: 0 14px;
    border: 1px solid #111827;
    border-radius: 999px;
    background: #fff;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}
.privacy-detail-box {
    max-width: 780px;
    margin: 0 auto 24px;
    padding: 18px 20px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f8fafc;
    color: #374151;
    text-align: left;
    line-height: 1.7;
    font-size: 14px;
}
.privacy-detail-box[hidden] {
    display: none !important;
}
.privacy-detail-box strong {
    display: block;
    margin-bottom: 8px;
    color: #06132d;
    font-weight: 900;
}
.privacy-detail-box p {
    margin: 6px 0;
}

/* Backward compatibility: hide old apply privacy classes if any remain after partial updates */
.privacy-detail[hidden] {
    display: none !important;
}
.privacy-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 24px 0 12px;
    flex-wrap: wrap;
}
.privacy-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    padding: 0 14px;
    border: 1px solid #111827;
    border-radius: 999px;
    background: #fff;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

/* 메인 - 이런 고민, 있으셨나요? */
.concern-section .center-title {
    margin-bottom:14px;
    font-size:42px;
    color:#081737;
}
.concern-subtitle {
    margin:0 0 54px;
    text-align:center;
    font-size:18px;
    line-height:1.7;
    color:#273650;
}
.concern-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
}
.concern-card {
    min-height:590px;
    padding:30px 28px 34px;
    border-radius:18px;
    text-align:center;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    align-items:center;
}
.concern-card:hover {
    border-color:#d7dfeb;
}
.concern-image {
    width:100%;
    height:265px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:24px;
}
.concern-image img {
    width:100%;
    max-width:300px;
    height:100%;
    object-fit:contain;
    display:block;
}
.concern-card h3 {
    min-height:72px;
    margin:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
    line-height:1.45;
    color:#081737;
}
.concern-line {
    width:46px;
    height:1px;
    margin:20px 0 22px;
    background:#dce3ed;
}
.concern-card p {
    margin:0;
    font-size:17px;
    line-height:1.95;
    color:#26344d;
}
@media(max-width:900px) {
    .concern-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .concern-section .center-title {
        font-size:34px;
    }
}
@media(max-width:560px) {
    .concern-grid {
        grid-template-columns:1fr;
    }
    .concern-subtitle {
        margin-bottom:34px;
        font-size:15px;
    }
    .concern-card {
        min-height:auto;
    }
}

/* 20260710_v01 - 서비스 사례 8가지 기준 아이콘 위치 조정 */
.criteria-body {
    position: relative;
    padding-top: 38px;
}
.criteria-body::before {
    display: none;
}
.criteria-icon {
    position: absolute;
    top: -24px;
    left: 20px;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(6, 27, 67, .08);
    color: #061b43;
    font-size: 23px;
    font-weight: 700;
    line-height: 1;
    z-index: 2;
}
.criteria .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media (max-width: 760px) {
    .criteria-body {
        padding-top: 34px;
    }
    .criteria-icon {
        top: -22px;
        left: 18px;
        width: 42px;
        height: 42px;
        font-size: 21px;
    }
}

/* ===== 20260710 v02 FAQ admin redesign ===== */
.faq-admin-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 4px 0 24px;
}
.faq-admin-head h2 {
    margin: 2px 0 8px;
    font-size: 30px;
    color: #172033;
}
.faq-admin-head > div > p:last-child {
    margin: 0;
    color: #6b7280;
}
.faq-admin-eyebrow {
    margin: 0;
    color: #1677ff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
}
.faq-add-open,
.faq-save-btn {
    border: 0;
    border-radius: 8px;
    background: #1677ff;
    color: #fff;
    padding: 12px 18px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(22,119,255,.18);
}
.faq-save-message {
    margin-bottom: 16px;
    border: 1px solid #b7ebc6;
    border-radius: 9px;
    background: #effcf3;
    color: #15803d;
    padding: 13px 16px;
    font-weight: 800;
}
.faq-admin-board {
    background: #fff;
    border: 1px solid #e5eaf1;
    border-radius: 13px;
    padding: 20px;
    box-shadow: 0 12px 34px rgba(15,23,42,.04);
}
.faq-admin-tabs {
    display: flex;
    gap: 8px;
    border-bottom: 1px solid #e5eaf1;
    margin-bottom: 24px;
}
.faq-admin-tab {
    position: relative;
    border: 0;
    background: transparent;
    padding: 13px 20px 16px;
    color: #5f6878;
    font-weight: 800;
    cursor: pointer;
}
.faq-admin-tab span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    margin-left: 7px;
    padding: 0 6px;
    border-radius: 999px;
    background: #eef2f7;
    font-size: 11px;
}
.faq-admin-tab.is-active {
    color: #1677ff;
}
.faq-admin-tab.is-active::after {
    content: '';
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: -1px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: #1677ff;
}
.faq-admin-tab.is-active span {
    background: #e7f1ff;
}
.faq-admin-panel {
    display: none;
}
.faq-admin-panel.is-active {
    display: block;
}
.faq-admin-list {
    display: grid;
    gap: 12px;
}
.faq-admin-item {
    overflow: hidden;
    border: 1px solid #dfe5ed;
    border-radius: 10px;
    background: #fff;
    transition: border-color .2s, box-shadow .2s;
}
.faq-admin-item:hover,
.faq-admin-item.is-editing {
    border-color: #a8c9f8;
    box-shadow: 0 8px 22px rgba(30,87,153,.07);
}
.faq-admin-summary {
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 16px;
}
.faq-drag {
    color: #8994a4;
    font-size: 17px;
    letter-spacing: -5px;
    cursor: grab;
    user-select: none;
}
.faq-q-number {
    color: #1677ff;
    font-size: 16px;
    font-weight: 900;
    min-width: 30px;
}
.faq-question-toggle {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 18px 0;
    text-align: left;
    color: #172033;
    font-size: 15px;
    font-weight: 900;
    cursor: pointer;
}
.faq-row-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.faq-action-btn,
.faq-chevron,
.faq-cancel-btn {
    border: 1px solid #dce2ea;
    border-radius: 7px;
    background: #fff;
    color: #4b5563;
    padding: 8px 11px;
    font-weight: 800;
    cursor: pointer;
}
.faq-action-btn.danger {
    color: #dc2626;
}
.faq-chevron {
    border: 0;
    font-size: 17px;
    padding: 8px;
}
.faq-answer-preview {
    display: none;
    border-top: 1px solid #edf0f4;
    background: #f8fafc;
    color: #5c6675;
    padding: 15px 58px;
    font-size: 14px;
    line-height: 1.75;
}
.faq-answer-preview.is-open {
    display: block;
}
.faq-admin-item.answer-closed .faq-chevron {
    transform: rotate(180deg);
}
.faq-edit-area {
    display: none;
    border-top: 1px solid #dfe5ed;
    background: #f8fbff;
    padding: 22px;
}
.faq-admin-item.is-editing .faq-edit-area {
    display: block;
}
.faq-admin-item.is-editing .faq-answer-preview {
    display: none;
}
.faq-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.faq-form-grid.compact {
    grid-template-columns: 140px 1fr;
}
.faq-form-grid label {
    display: grid;
    gap: 7px;
}
.faq-form-grid label > span {
    color: #374151;
    font-size: 13px;
    font-weight: 900;
}
.faq-form-wide {
    grid-column: 1 / -1;
}
.faq-form-grid input,
.faq-form-grid select,
.faq-form-grid textarea {
    width: 100%;
    border: 1px solid #d7dee8;
    border-radius: 8px;
    background: #fff;
    padding: 12px 13px;
    color: #172033;
    font: inherit;
    box-sizing: border-box;
}
.faq-form-grid textarea {
    resize: vertical;
    line-height: 1.65;
}
.faq-edit-buttons,
.faq-add-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
}
.faq-switch {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
}
.faq-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.faq-switch span {
    position: relative;
    width: 34px;
    height: 19px;
    border-radius: 999px;
    background: #cbd5e1;
    transition: .2s;
}
.faq-switch span::after {
    content: '';
    position: absolute;
    width: 15px;
    height: 15px;
    left: 2px;
    top: 2px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.18);
    transition: .2s;
}
.faq-switch input:checked + span {
    background: #1677ff;
}
.faq-switch input:checked + span::after {
    transform: translateX(15px);
}
.faq-switch em {
    color: #7b8492;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
}
.faq-empty {
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    color: #64748b;
    padding: 42px 20px;
    text-align: center;
}
.faq-add-panel {
    position: fixed;
    inset: 0;
    z-index: 5000;
    visibility: hidden;
    opacity: 0;
    transition: .2s;
}
.faq-add-panel.is-open {
    visibility: visible;
    opacity: 1;
}
.faq-add-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15,23,42,.48);
}
.faq-add-sheet {
    position: absolute;
    top: 0;
    right: 0;
    width: min(560px, 92vw);
    height: 100%;
    overflow-y: auto;
    background: #fff;
    padding: 30px;
    box-shadow: -18px 0 50px rgba(15,23,42,.2);
    transform: translateX(100%);
    transition: transform .25s ease;
}
.faq-add-panel.is-open .faq-add-sheet {
    transform: translateX(0);
}
.faq-add-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 26px;
}
.faq-add-title p {
    margin: 0 0 4px;
    color: #1677ff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .1em;
}
.faq-add-title h3 {
    margin: 0;
    font-size: 26px;
}
.faq-add-title > button {
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 30px;
    cursor: pointer;
}
.faq-new-active {
    grid-column: 1 / -1;
    display: flex !important;
    align-items: center;
    grid-template-columns: auto 1fr;
    color: #4b5563;
    font-size: 13px;
    font-weight: 700;
}
.faq-new-active input {
    width: auto;
}
.admin-modal-open {
    overflow: hidden;
}
@media (max-width: 980px) {
    .faq-admin-summary {
        align-items: flex-start;
        flex-wrap: wrap;
        padding: 14px;
    }
    .faq-question-toggle {
        flex-basis: calc(100% - 70px);
        padding: 4px 0;
    }
    .faq-row-actions {
        width: 100%;
        justify-content: flex-end;
        padding-left: 44px;
    }
    .faq-answer-preview {
        padding: 15px 24px;
    }
}
@media (max-width: 680px) {
    .faq-admin-head {
        align-items: flex-start;
        flex-direction: column;
    }
    .faq-add-open {
        width: 100%;
    }
    .faq-admin-board {
        padding: 14px;
    }
    .faq-action-btn {
        font-size: 0;
    }
    .faq-action-btn::first-letter {
        font-size: 14px;
    }
    .faq-form-grid,
    .faq-form-grid.compact {
        grid-template-columns: 1fr;
    }
    .faq-form-wide {
        grid-column: auto;
    }
}

/* ===== 20260710 v03 관리자 계정관리 화면 복구 ===== */
.admin-users-card {
    padding: 30px;
}
.admin-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}
.admin-section-head h2 {
    margin: 0 0 8px;
    font-size: 20px;
    line-height: 1.35;
    letter-spacing: -.03em;
}
.admin-section-head p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.7;
}
.admin-tip {
    flex: 0 0 auto;
    padding: 10px 14px;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 12px;
    font-weight: 700;
}
.admin-account-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: end;
}
.admin-account-form--password {
    grid-template-columns: minmax(220px, 360px) minmax(220px, 360px) auto;
    justify-content: start;
}
.admin-account-form label,
.admin-user-edit-form label {
    display: grid;
    gap: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
}
.admin-account-form input,
.admin-user-edit-form input,
.admin-user-edit-form select,
.admin-reset-form input {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #d7dee8;
    border-radius: 8px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    outline: none;
    box-sizing: border-box;
}
.admin-account-form input:focus,
.admin-user-edit-form input:focus,
.admin-user-edit-form select:focus,
.admin-reset-form input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .1);
}
.admin-account-form .btn,
.admin-form-actions .btn {
    min-height: 44px;
    padding: 0 22px;
    border-radius: 8px;
    font-weight: 800;
}
.admin-manager-form {
    display: grid;
    gap: 24px;
}
.admin-permission-block {
    padding-top: 4px;
}
.admin-permission-title {
    margin-bottom: 14px;
}
.admin-permission-title h3 {
    margin: 0 0 6px;
    font-size: 16px;
}
.admin-permission-title p {
    margin: 0;
    color: #64748b;
    font-size: 12px;
}
.admin-permission-table {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
}
.permission-head,
.permission-row {
    display: grid;
    grid-template-columns: minmax(180px, 1.5fr) repeat(5, minmax(72px, .55fr));
    align-items: center;
    min-height: 48px;
}
.permission-head {
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
    font-weight: 900;
}
.permission-row {
    border-top: 1px solid #edf2f7;
}
.permission-head > span,
.permission-row > strong,
.permission-row > label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 8px 10px;
    box-sizing: border-box;
}
.permission-head > span:first-child,
.permission-row > strong {
    justify-content: flex-start;
    padding-left: 18px;
}
.permission-row > strong {
    color: #1e293b;
    font-size: 13px;
}
.permission-check {
    cursor: pointer;
}
.permission-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.permission-check span {
    width: 20px;
    height: 20px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    background: #fff;
    position: relative;
}
.permission-check input:checked + span {
    border-color: #2563eb;
    background: #2563eb;
}
.permission-check input:checked + span::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.permission-check.is-disabled {
    cursor: default;
    color: #cbd5e1;
}
.permission-check em {
    color: #cbd5e1;
    font-style: normal;
}
.admin-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}
.admin-alert {
    margin-bottom: 16px;
    padding: 13px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
}
.admin-alert.is-success {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}
.admin-alert.is-error {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #dc2626;
}
.admin-user-table {
    table-layout: fixed;
}
.admin-user-table th {
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
}
.admin-user-table td {
    color: #334155;
    font-size: 13px;
    vertical-align: middle;
}
.admin-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #059669;
    font-size: 11px;
    font-weight: 900;
}
.admin-status.is-off {
    background: #f1f5f9;
    color: #64748b;
}
.admin-user-detail summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid #d7dee8;
    border-radius: 7px;
    background: #fff;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}
.admin-user-detail summary::-webkit-details-marker {
    display: none;
}
.admin-user-detail[open] {
    position: relative;
}
.admin-user-detail[open] > summary {
    border-color: #2563eb;
    color: #2563eb;
}
.admin-user-edit-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 14px;
    padding: 18px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
}
.admin-user-edit-form .admin-permission-table,
.admin-user-edit-form > .btn {
    grid-column: 1 / -1;
}
.admin-reset-form {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}
.admin-reset-form input {
    max-width: 220px;
}
.admin-reset-form button,
.admin-delete-btn {
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid #d7dee8;
    border-radius: 7px;
    background: #fff;
    color: #334155;
    font-weight: 800;
    cursor: pointer;
}
.admin-delete-btn {
    margin-top: 8px;
    border-color: #fecaca;
    color: #dc2626;
}

@media (max-width: 1100px) {
    .admin-account-form,
    .admin-account-form--password {
        grid-template-columns: 1fr 1fr;
    }
    .admin-account-form .btn {
        width: max-content;
    }
    .permission-head,
    .permission-row {
        grid-template-columns: minmax(150px, 1.3fr) repeat(5, minmax(58px, .5fr));
    }
}
@media (max-width: 760px) {
    .admin-users-card {
        padding: 20px;
    }
    .admin-section-head {
        flex-direction: column;
    }
    .admin-account-form,
    .admin-account-form--password,
    .admin-user-edit-form {
        grid-template-columns: 1fr;
    }
    .admin-account-form .btn {
        width: 100%;
    }
    .admin-permission-table {
        overflow-x: auto;
    }
    .permission-head,
    .permission-row {
        min-width: 650px;
    }
    .admin-form-actions {
        flex-direction: column-reverse;
    }
    .admin-form-actions .btn {
        width: 100%;
    }
    .admin-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* ===== 20260710 v04 관리자 모바일 내비게이션 ===== */
.admin-mobile-bar {
    display: none;
}
.admin-side-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}
.admin-side-head h1 {
    margin: 0;
}
.admin-side-close {
    display: none;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.admin-side a.is-active {
    margin: 0 -12px;
    padding: 13px 12px;
    border-radius: 10px;
    background: #173f78;
    color: #fff;
    font-weight: 800;
}
.admin-side-overlay {
    display: none;
}

@media (max-width: 900px) {
    body.admin-menu-open {
        overflow: hidden;
    }
    .admin-mobile-bar {
        position: sticky;
        top: 0;
        z-index: 1200;
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        align-items: center;
        min-height: 64px;
        padding: 10px 16px;
        border-bottom: 1px solid #e5e7eb;
        background: rgba(255,255,255,.96);
        backdrop-filter: blur(12px);
        box-shadow: 0 4px 18px rgba(15,23,42,.06);
    }
    .admin-mobile-bar strong {
        overflow: hidden;
        padding: 0 10px;
        font-size: 18px;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: #0f172a;
    }
    .admin-mobile-bar > a {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 40px;
        border-radius: 10px;
        color: #334155;
        font-size: 13px;
        font-weight: 800;
    }
    .admin-menu-toggle {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        width: 40px;
        height: 40px;
        padding: 0;
        border: 1px solid #dbe2ea;
        border-radius: 10px;
        background: #fff;
        cursor: pointer;
    }
    .admin-menu-toggle span {
        display: block;
        width: 19px;
        height: 2px;
        border-radius: 999px;
        background: #0f172a;
        transition: transform .2s ease, opacity .2s ease;
    }
    .admin-layout {
        display: block;
        min-height: calc(100vh - 64px);
    }
    .admin-side {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 1300;
        width: min(82vw, 320px);
        height: 100dvh;
        overflow-y: auto;
        padding: 22px 20px 30px;
        box-shadow: 18px 0 40px rgba(15,23,42,.25);
        transform: translateX(-105%);
        transition: transform .25s ease;
    }
    body.admin-menu-open .admin-side {
        transform: translateX(0);
    }
    .admin-side-head {
        position: sticky;
        top: -22px;
        z-index: 2;
        margin: -22px -20px 14px;
        padding: 22px 20px 14px;
        background: #111827;
    }
    .admin-side-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .admin-side a {
        margin-bottom: 4px;
        padding: 13px 12px;
        border-radius: 10px;
    }
    .admin-side a.is-active {
        margin: 0 0 4px;
    }
    .admin-side-overlay {
        position: fixed;
        inset: 0;
        z-index: 1250;
        display: block;
        background: rgba(15,23,42,.52);
        opacity: 0;
        visibility: hidden;
        transition: opacity .2s ease, visibility .2s ease;
    }
    body.admin-menu-open .admin-side-overlay {
        opacity: 1;
        visibility: visible;
    }
    .admin-main {
        width: 100%;
        padding: 22px 16px 40px;
    }
    .admin-main > h1 {
        display: none;
    }
}

@media (max-width: 480px) {
    .admin-mobile-bar {
        padding-inline: 12px;
    }
    .admin-mobile-bar strong {
        font-size: 16px;
    }
    .admin-main {
        padding-inline: 12px;
    }
}

/* ===== Front mobile navigation ===== */
.site-menu-toggle,
.site-menu-overlay {
    display: none;
}

@media (max-width: 560px) {
    body.site-menu-open {
        overflow: hidden;
    }

    .topbar {
        height: 60px;
        z-index: 1100;
    }

    .nav-wrap {
        position: relative;
        z-index: 1120;
        height: 60px;
        padding-inline: 24px;
        background: #fff;
    }

    .brand b {
        font-size: 24px;
    }

    .site-menu-toggle {
        position: relative;
        z-index: 1140;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        width: 42px;
        height: 42px;
        margin-left: auto;
        padding: 0;
        border: 0;
        border-radius: 10px;
        background: transparent;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

    .site-menu-toggle span {
        display: block;
        width: 22px;
        height: 2px;
        border-radius: 999px;
        background: #111827;
        transition: transform .24s ease, opacity .18s ease;
    }

    body.site-menu-open .site-menu-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    body.site-menu-open .site-menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    body.site-menu-open .site-menu-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .nav {
        position: fixed;
        top: 60px;
        right: 0;
        bottom: 0;
        left: auto;
        z-index: 1110;
        display: flex;
        flex-direction: column;
        gap: 0;
        width: min(84vw, 340px);
        padding: 22px 24px 28px;
        border-left: 1px solid #e5e7eb;
        background: #fff;
        box-shadow: -18px 0 38px rgba(15,23,42,.16);
        overflow-y: auto;
        overscroll-behavior: contain;
        visibility: hidden;
        transform: translateX(100%);
        transition: transform .28s cubic-bezier(.22,.61,.36,1), visibility .28s ease;
    }

    body.site-menu-open .nav {
        visibility: visible;
        transform: translateX(0);
    }

    .nav a {
        width: 100%;
        height: auto;
        min-height: 56px;
        padding: 17px 6px;
        border-bottom: 1px solid #eef1f5;
        font-size: 16px;
        font-weight: 800;
    }

    .nav a:last-child {
        margin-top: 14px;
        justify-content: center;
        min-height: 52px;
        border: 1px solid #0b356c;
        border-radius: 10px;
        background: #0b356c;
        color: #fff;
    }

    .nav a:hover,
    .nav a.is-active {
        border-color: #eef1f5;
        color: #0b356c;
    }

    .nav a:last-child:hover,
    .nav a:last-child.is-active {
        border-color: #0b356c;
        color: #fff;
    }

    .nav a.is-active::after {
        content: '';
        width: 7px;
        height: 7px;
        margin-left: auto;
        border-radius: 50%;
        background: #0b356c;
    }

    .nav a:last-child.is-active::after {
        background: #fff;
    }

    .site-menu-overlay {
        position: fixed;
        inset: 60px 0 0;
        z-index: 1090;
        display: block;
        width: 100%;
        height: calc(100dvh - 60px);
        padding: 0;
        border: 0;
        background: rgba(15,23,42,.48);
        opacity: 0;
        visibility: hidden;
        transition: opacity .24s ease, visibility .24s ease;
    }

    body.site-menu-open .site-menu-overlay {
        opacity: 1;
        visibility: visible;
    }
}

/* 체험단 신청 - 시/도, 시/군/구 연동 선택 */
.region-select-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.region-select-row select:disabled {
    color: #9ca3af;
    background: #f8fafc;
    cursor: not-allowed;
}
@media(max-width:560px) {
    .region-select-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* ===== 20260710 v08 전체 모바일 반응형 안정화 ===== */
html {
    overflow-x: hidden;
}
img,
svg,
video,
canvas {
    max-width: 100%;
}

@media (max-width: 900px) {
    .wrap {
        width: 100%;
        padding-inline: 20px;
    }

    .hero,
    .page-hero {
        padding-block: 58px 48px;
    }

    .hero-grid,
    .page-hero.two,
    .about-hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 36px;
    }

    .page-hero.two > *,
    .hero-grid > *,
    .about-hero > * {
        min-width: 0;
    }

    .case-hero-img,
    .apply-hero-img,
    .faq-hero-img,
    .contact-hero-img {
        width: 100%;
        height: auto;
        min-height: 220px;
        aspect-ratio: 16 / 8;
        border-radius: 18px;
    }

    .case-hero-img img,
    .apply-hero-img img,
    .faq-hero-img img,
    .contact-hero-img img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
    }

    .process {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    .step:not(:last-child)::after {
        display: none;
    }

    .price-flow,
    .package-grid,
    .criteria-grid,
    .comment-grid,
    .comment-grid-upgraded,
    .case-decision-grid,
    .problem-grid,
    .info-grid,
    .value-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .apply-flow {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 28px 18px;
    }

    .apply-step:not(:last-child)::after {
        display: none;
    }

    .report-top,
    .report-bottom {
        grid-template-columns: 1fr;
    }

    .report-bottom > *,
    .report-top > * {
        min-width: 0;
    }

    .footer-box {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .quick {
        right: 18px;
        bottom: 24px;
    }
}

@media (max-width: 560px) {
    body {
        font-size: 15px;
        letter-spacing: -.025em;
    }

    .wrap {
        padding-inline: 18px;
    }

    .section {
        padding-block: 52px;
    }

    .hero,
    .page-hero {
        padding-block: 44px 38px;
    }

    .hero-grid,
    .page-hero.two,
    .about-hero {
        gap: 28px;
    }

    .eyebrow {
        margin-bottom: 22px;
        padding: 8px 14px;
        font-size: 12px;
    }

    .hero h1,
    .page-hero h1,
    .about-hero h1 {
        margin-bottom: 18px;
        font-size: clamp(30px, 9vw, 38px);
        line-height: 1.28;
        word-break: keep-all;
    }

    .hero p,
    .lead {
        font-size: 16px;
        line-height: 1.75;
        word-break: keep-all;
    }

    .center-title {
        margin-bottom: 28px;
        font-size: 25px;
        line-height: 1.35;
        word-break: keep-all;
    }

    .btn-pair,
    .hero-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        width: 100%;
    }

    .btn-pair .btn,
    .hero-actions .btn {
        width: 100%;
        min-width: 0;
        padding: 14px 12px;
        font-size: 15px;
        text-align: center;
    }

    .card,
    .dash-card,
    .report-wide {
        padding: 22px 18px;
        border-radius: 14px;
    }

    .card:hover,
    .price-card:hover {
        transform: none;
    }

    .problem-grid,
    .process,
    .price-flow,
    .package-grid,
    .info-grid,
    .value-grid,
    .mini-report,
    .criteria-grid,
    .comment-grid,
    .comment-grid-upgraded,
    .case-decision-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .process .step {
        min-height: auto;
    }

    .price-card {
        min-height: 0;
        padding: 28px 22px;
    }

    .package-grid .price-card .btn {
        width: 100%;
    }

    .apply-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 12px;
    }

    .apply-step-icon {
        width: 72px;
        height: 72px;
        margin-bottom: 16px;
    }

    .apply-step b {
        font-size: 14px;
    }

    .apply-step p {
        font-size: 12px;
    }

    .case-hero-img,
    .apply-hero-img,
    .faq-hero-img,
    .contact-hero-img {
        min-height: 0;
        aspect-ratio: 16 / 9;
        border-radius: 14px;
    }

    .apply-form,
    .contact-form,
    .contact-table {
        width: 100%;
        padding: 24px 18px;
        border-radius: 12px;
    }

    .form-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .form-grid label {
        margin-top: 8px;
    }

    .form-grid input,
    .form-grid select,
    .form-grid textarea {
        min-width: 0;
        min-height: 48px;
        padding: 13px 12px;
        font-size: 16px;
    }

    .phone-split,
    .email-split,
    .region-select-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .phone-split > span,
    .email-split > span {
        display: none;
    }

    .radio-row,
    .form-grid .radio-row,
    .apply-form .radio-row {
        display: flex;
        flex-wrap: wrap;
        gap: 12px 18px;
    }

    .privacy-agree,
    .agree-row {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 10px;
    }

    .privacy-detail-btn {
        margin-left: 0;
    }

    .faq-tabs {
        gap: 28px;
        overflow-x: auto;
        margin-bottom: 12px;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .faq-tabs span {
        flex: 0 0 auto;
        padding-block: 14px;
    }

    .faq-q {
        gap: 14px;
        padding: 22px 4px;
        font-size: 16px;
        line-height: 1.5;
    }

    .faq-a {
        padding: 22px 18px;
        font-size: 14px;
    }

    .report-wide {
        overflow: hidden;
    }

    .report-top,
    .report-bottom {
        gap: 12px;
    }

    .criteria-body {
        min-height: auto;
        padding: 22px 18px 24px;
    }

    .cta-band {
        margin-block: 44px;
        padding: 26px 20px;
    }

    .cta-band h2 {
        font-size: 23px;
        line-height: 1.35;
    }

    .footer {
        margin-top: 54px;
        padding-top: 28px;
    }

    .footer-box {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .copy {
        flex-direction: column;
        gap: 8px;
    }

    .copy em {
        margin-left: 0;
    }

    .quick {
        right: 14px;
        bottom: 18px;
        gap: 8px;
    }

    .quick a {
        width: 52px;
        height: 52px;
        font-size: 11px;
    }

    /* 관리자 공통 모바일 */
    .admin-main {
        min-width: 0;
        padding: 18px 12px 36px;
    }

    .admin-card,
    .admin-users-card,
    .faq-admin-board {
        width: 100%;
        padding: 18px 14px;
        border-radius: 12px;
        overflow: hidden;
    }

    .admin-inline-form,
    .admin-account-form,
    .admin-account-form--password {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .admin-inline-form > *,
    .admin-account-form > * {
        width: 100%;
        min-width: 0;
    }

    .admin-table {
        display: block;
        width: 100%;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .admin-table th,
    .admin-table td {
        padding: 12px 10px;
        font-size: 12px;
    }

    .faq-admin-head,
    .admin-section-head {
        gap: 12px;
    }

    .faq-admin-tabs {
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .faq-admin-summary {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 10px;
        align-items: center;
    }

    .faq-question-toggle {
        min-width: 0;
        font-size: 14px;
        line-height: 1.45;
    }

    .faq-row-actions {
        grid-column: 1 / -1;
        width: 100%;
        padding-left: 0;
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .faq-answer-preview {
        padding: 16px;
        font-size: 13px;
    }

    .faq-add-sheet {
        width: 100%;
        padding: 22px 16px;
    }

    .admin-permission-table {
        max-width: 100%;
        overflow-x: auto;
    }

    .login-box {
        width: calc(100% - 32px);
        margin: 60px auto;
        padding: 26px 20px;
    }
}

@media (max-width: 380px) {
    .wrap {
        padding-inline: 14px;
    }

    .nav-wrap {
        padding-inline: 14px;
    }

    .brand b {
        font-size: 22px;
    }

    .hero h1,
    .page-hero h1,
    .about-hero h1 {
        font-size: 29px;
    }

    .btn-pair,
    .hero-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .apply-flow {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* 문의하기 페이지 핵심 안내 아이콘 */
.contact-feature-grid {
    margin-top:32px;
    gap:28px;
}
.contact-feature-item {
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:14px;
    align-items:start;
}
.contact-feature-icon {
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#111827;
    flex:0 0 auto;
}
.contact-feature-icon svg {
    width:40px;
    height:40px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.contact-feature-item b {
    display:block;
    margin:2px 0 8px;
    font-size:17px;
    line-height:1.35;
}
.contact-feature-item p {
    margin:0;
    line-height:1.6;
}
@media (max-width: 767px) {
    .contact-feature-grid {
        gap:20px;
    }
    .contact-feature-item {
        grid-template-columns:40px minmax(0,1fr);
        gap:12px;
    }
    .contact-feature-icon {
        width:40px;
        height:40px;
    }
    .contact-feature-icon svg {
        width:36px;
        height:36px;
    }
}

/* ===== 20260713 v08 문의/체험단 모바일 폼 개선 ===== */
@media (max-width: 560px) {
    .mobile-form-section,
    .apply-page-section {
        padding-top: 42px;
        padding-bottom: 56px;
    }

    .mobile-form-section > .mobile-form-heading,
    .mobile-form-card > .mobile-form-heading {
        margin: 0 0 18px;
        color: #071a35;
        font-size: 24px;
        line-height: 1.35;
        letter-spacing: -.04em;
        word-break: keep-all;
    }

    .mobile-form-section > .mobile-form-heading small {
        display: block;
        margin: 7px 0 0 !important;
        color: #758196 !important;
        font-size: 13px !important;
        font-weight: 500;
        line-height: 1.55;
    }

    .mobile-form-card,
    .contact-table.mobile-form-card {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding: 24px 16px 26px;
        border: 1px solid #e2e8f0;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 12px 30px rgba(15, 38, 72, .06);
        box-sizing: border-box;
    }

    .apply-form.mobile-form-card {
        margin-top: 54px !important;
    }

    .mobile-form-card .form-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .mobile-form-card .form-grid > label {
        margin: 0 0 8px;
        color: #101828;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.45;
    }

    .mobile-form-card .form-grid > input,
    .mobile-form-card .form-grid > select,
    .mobile-form-card .form-grid > textarea,
    .mobile-form-card .phone-split,
    .mobile-form-card .email-split,
    .mobile-form-card .region-select-row,
    .mobile-form-card .radio-row {
        margin-bottom: 20px;
    }

    .mobile-form-card .form-grid input,
    .mobile-form-card .form-grid select,
    .mobile-form-card .form-grid textarea {
        min-width: 0;
        min-height: 52px;
        padding: 13px 14px;
        border: 1px solid #d7dee8;
        border-radius: 10px;
        background: #fff;
        color: #172033;
        font-size: 16px;
        line-height: 1.45;
        box-sizing: border-box;
    }

    .mobile-form-card .form-grid textarea {
        min-height: 124px;
        resize: vertical;
    }

    .mobile-form-card .form-grid input:focus,
    .mobile-form-card .form-grid select:focus,
    .mobile-form-card .form-grid textarea:focus {
        border-color: #174ea6;
        outline: 3px solid rgba(23, 78, 166, .10);
    }

    /* 연락처: 모바일에서도 3칸을 한 줄로 배치 */
    .mobile-form-card .phone-split {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 10px minmax(0, 1fr) 10px minmax(0, 1fr);
        align-items: center;
        gap: 5px;
        width: 100%;
    }

    .mobile-form-card .phone-split > span {
        display: block;
        width: 10px;
        color: #6b7280;
        text-align: center;
        font-weight: 700;
    }

    .mobile-form-card .phone-split input {
        width: 100%;
        padding-left: 8px;
        padding-right: 8px;
        text-align: center;
    }

    /* 이메일: 아이디/도메인 영역을 묶어 구조를 명확하게 표시 */
    .mobile-form-card .email-split {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr);
        gap: 8px;
        align-items: center;
        width: 100%;
    }

    .mobile-form-card .email-split > span {
        display: block;
        color: #172033;
        text-align: center;
        font-weight: 800;
    }

    .mobile-form-card .email-split .email-domain-select {
        grid-column: 1 / -1;
    }

    /* 체험단 거주지역은 시/도, 시/군/구 2단 유지 */
    .mobile-form-card .region-select-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .mobile-form-card .radio-row {
        display: flex;
        flex-wrap: wrap;
        gap: 10px 18px;
        min-height: 34px;
        align-items: center;
    }

    .mobile-form-card .radio-row label {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        margin: 0;
        min-height: 32px;
        font-size: 14px;
        font-weight: 600;
    }

    .mobile-form-card input[type="radio"],
    .mobile-form-card input[type="checkbox"] {
        width: 20px !important;
        min-width: 20px !important;
        height: 20px !important;
        min-height: 20px !important;
        margin: 0 !important;
        padding: 0 !important;
        accent-color: #174ea6;
        outline: none !important;
    }

    .mobile-form-card .full {
        grid-column: auto;
        width: 100%;
    }

    .mobile-form-card .privacy-agree {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 10px;
        margin: 6px 0 12px;
    }

    .mobile-form-card .privacy-agree label {
        display: grid;
        grid-template-columns: 20px minmax(0, 1fr);
        align-items: center;
        gap: 8px;
        margin: 0;
        font-size: 13px;
        line-height: 1.45;
        font-weight: 700;
    }

    .mobile-form-card .privacy-detail-btn {
        min-height: 38px;
        padding: 0 12px;
        white-space: nowrap;
        font-size: 12px;
    }

    .mobile-form-card .privacy-detail-box {
        margin: 0 0 18px;
        padding: 16px;
        border-radius: 10px;
        font-size: 13px;
    }

    .mobile-form-card .btn.dark,
    .mobile-form-card button[type="submit"] {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 56px;
        margin-top: 8px;
        border-radius: 10px;
        font-size: 16px;
        box-shadow: 0 12px 24px rgba(6, 26, 56, .16);
    }
}

@media (max-width: 380px) {
    .mobile-form-card,
    .contact-table.mobile-form-card {
        padding-left: 13px;
        padding-right: 13px;
    }

    .mobile-form-card .phone-split {
        gap: 3px;
    }

    .mobile-form-card .phone-split input {
        padding-left: 5px;
        padding-right: 5px;
        font-size: 15px;
    }

    .mobile-form-card .privacy-agree {
        grid-template-columns: minmax(0, 1fr);
    }

    .mobile-form-card .privacy-detail-btn {
        justify-self: start;
    }
}

/* === 20260713 v09 FAQ accordion state start === */
.faq-item .faq-answer,
.faq-item .answer,
.faq-item [data-faq-answer],
.faq-item .faq-content {
    display: none;
}

.faq-item.is-open .faq-answer,
.faq-item.is-open .answer,
.faq-item.is-open [data-faq-answer],
.faq-item.is-open .faq-content {
    display: block;
}

.faq-item .faq-question,
.faq-item .question,
.faq-item [data-faq-trigger] {
    cursor: pointer;
}

.faq-item .faq-question::after,
.faq-item .question::after,
.faq-item [data-faq-trigger]::after {
    transition: transform .2s ease;
}

.faq-item.is-open .faq-question::after,
.faq-item.is-open .question::after,
.faq-item.is-open [data-faq-trigger]::after {
    transform: rotate(180deg);
}
/* === 20260713 v09 FAQ accordion state end === */

/* === 20260713 v12 mail settings UI start === */
.settings-page-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin:4px 0 24px;
}
.settings-page-head h2{
    margin:7px 0 8px;
    font-size:28px;
    letter-spacing:-.04em;
}
.settings-page-head p{
    margin:0;
    color:#667085;
    font-size:14px;
}
.settings-eyebrow{
    display:inline-block;
    color:#2563eb;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
}
.settings-head-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    border:1px solid #dbe5f3;
    border-radius:999px;
    background:#fff;
    color:#334155;
    font-size:13px;
    font-weight:800;
    box-shadow:0 7px 20px rgba(15,23,42,.04);
}
.settings-head-badge-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#22c55e;
    box-shadow:0 0 0 4px rgba(34,197,94,.13);
}
.mail-admin-alert{
    display:flex;
    align-items:center;
    gap:10px;
    max-width:1180px;
    margin:0 0 18px;
    padding:14px 16px;
    border-radius:12px;
    font-weight:800;
}
.mail-admin-alert>span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    border-radius:50%;
    background:rgba(34,197,94,.12);
}
.mail-admin-alert.is-error{
    border-color:#fecaca;
    color:#b91c1c;
    background:#fff7f7;
}
.mail-admin-alert.is-error>span{
    background:#fee2e2;
}
.mail-settings-layout{
    max-width:1180px;
}
.mail-settings-card{
    padding:28px;
    border-color:#e6ebf2;
    border-radius:18px;
    box-shadow:0 10px 35px rgba(15,23,42,.045);
}
.mail-card-heading{
    display:flex;
    align-items:flex-start;
    gap:15px;
}
.mail-card-heading.is-compact{
    min-width:0;
}
.mail-card-heading h3,
.mail-settings-guide h3{
    margin:0;
    font-size:18px;
    letter-spacing:-.03em;
}
.mail-card-heading p{
    margin:6px 0 0;
    color:#667085;
    font-size:13px;
    line-height:1.65;
}
.mail-card-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 46px;
    width:46px;
    height:46px;
    border-radius:14px;
    color:#0f4caa;
    background:#edf5ff;
}
.mail-card-icon.is-blue{
    color:#1767d8;
    background:#eaf3ff;
}
.mail-card-icon.is-purple{
    color:#6d4bd1;
    background:#f1edff;
}
.mail-card-icon svg,
.mail-guide-icon svg,
.mail-settings-actions button svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.mail-card-title-row{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.mail-required-badge{
    padding:4px 8px;
    border-radius:999px;
    color:#1d4ed8;
    background:#eff6ff;
    font-size:11px;
    font-weight:900;
}
.mail-field-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-top:26px;
}
.mail-field-group{
    min-width:0;
}
.mail-field-group.is-full{
    margin-top:24px;
}
.mail-field-group label{
    display:block;
    margin-bottom:4px;
    color:#172033;
    font-size:14px;
    font-weight:900;
}
.mail-field-help{
    display:block;
    margin-bottom:10px;
    color:#8a94a6;
    font-size:12px;
    line-height:1.55;
}
.mail-field-group input,
.mail-field-group textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid #d8e0ea;
    border-radius:11px;
    background:#fff;
    color:#172033;
    font:inherit;
    transition:border-color .2s,box-shadow .2s;
}
.mail-field-group input{
    height:48px;
    padding:0 14px;
}
.mail-field-group textarea{
    min-height:128px;
    padding:14px;
    resize:vertical;
    line-height:1.6;
}
.mail-field-group input:focus,
.mail-field-group textarea:focus{
    outline:0;
    border-color:#3b82f6;
    box-shadow:0 0 0 4px rgba(59,130,246,.10);
}
.mail-info-note{
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin-top:18px;
    padding:13px 14px;
    border:1px solid #e5eaf1;
    border-radius:11px;
    color:#64748b;
    background:#f8fafc;
    font-size:12px;
    line-height:1.6;
}
.mail-info-note svg{
    flex:0 0 18px;
    width:18px;
    height:18px;
    margin-top:1px;
    fill:none;
    stroke:#64748b;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.mail-channel-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}
.mail-channel-card{
    display:flex;
    flex-direction:column;
    min-height:360px;
}
.mail-channel-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}
.mail-toggle{
    display:inline-flex;
    align-items:center;
    gap:9px;
    flex:0 0 auto;
    cursor:pointer;
    user-select:none;
}
.mail-toggle input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.mail-toggle-track{
    position:relative;
    display:block;
    width:42px;
    height:24px;
    border-radius:999px;
    background:#cbd5e1;
    transition:.2s;
}
.mail-toggle-track span{
    position:absolute;
    top:3px;
    left:3px;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 6px rgba(15,23,42,.22);
    transition:.2s;
}
.mail-toggle input:checked + .mail-toggle-track{
    background:#2563eb;
}
.mail-toggle input:checked + .mail-toggle-track span{
    transform:translateX(18px);
}
.mail-toggle strong{
    color:#64748b;
    font-size:12px;
    white-space:nowrap;
}
.mail-toggle input:checked ~ strong{
    color:#1d4ed8;
}
.mail-channel-preview{
    display:grid;
    gap:4px;
    margin-top:auto;
    padding:15px 16px;
    border:1px solid #e7ebf2;
    border-radius:12px;
    background:#f8fafc;
}
.mail-channel-preview-label{
    color:#8390a3;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
}
.mail-channel-preview strong{
    color:#1e293b;
    font-size:13px;
}
.mail-channel-preview>span:last-child{
    color:#64748b;
    font-size:12px;
}
.mail-settings-guide{
    display:flex;
    align-items:flex-start;
    gap:17px;
    padding:24px 28px;
    background:linear-gradient(135deg,#f8fbff,#fff);
}
.mail-guide-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 48px;
    width:48px;
    height:48px;
    border-radius:15px;
    color:#0f4caa;
    background:#eaf3ff;
}
.mail-guide-copy{
    flex:1;
}
.mail-guide-copy p{
    margin:6px 0 9px;
    color:#667085;
    font-size:13px;
}
.mail-guide-copy ul{
    margin:0;
    padding-left:18px;
    color:#667085;
    font-size:12px;
    line-height:1.85;
}
.mail-guide-copy code{
    padding:2px 5px;
    border-radius:5px;
    background:#edf2f7;
    color:#334155;
}
.mail-guide-status{
    display:grid;
    gap:4px;
    flex:0 0 auto;
    padding:12px 14px;
    border:1px solid #dfe6ef;
    border-radius:11px;
    background:#fff;
}
.mail-guide-status span{
    color:#8a94a6;
    font-size:11px;
    font-weight:800;
}
.mail-guide-status strong{
    color:#172033;
    font-size:13px;
}
.mail-settings-actions{
    position:sticky;
    bottom:0;
    z-index:5;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin:10px 0 0;
    padding:16px 18px;
    border:1px solid #e1e7ef;
    border-radius:16px;
    background:rgba(255,255,255,.95);
    box-shadow:0 -4px 24px rgba(15,23,42,.06);
    backdrop-filter:blur(10px);
}
.mail-settings-actions p{
    margin:0;
    color:#788497;
    font-size:12px;
}
.mail-settings-actions .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-width:230px;
    min-height:48px;
}
.mail-settings-actions button svg{
    width:18px;
    height:18px;
}
@media(max-width:1050px){
    .mail-channel-grid{
        grid-template-columns:1fr;
    }
    .mail-channel-card{
        min-height:0;
    }
    .mail-channel-preview{
        margin-top:22px;
    }
}
@media(max-width:767px){
    .settings-page-head{
        align-items:flex-start;
        flex-direction:column;
        gap:14px;
        margin-bottom:18px;
    }
    .settings-page-head h2{
        font-size:23px;
    }
    .settings-head-badge{
        display:none;
    }
    .mail-settings-card{
        padding:20px 16px;
        border-radius:14px;
    }
    .mail-card-heading{
        gap:12px;
    }
    .mail-card-icon{
        flex-basis:42px;
        width:42px;
        height:42px;
        border-radius:12px;
    }
    .mail-field-grid{
        grid-template-columns:1fr;
        gap:16px;
        margin-top:22px;
    }
    .mail-channel-top{
        flex-direction:column;
    }
    .mail-toggle{
        width:100%;
        justify-content:flex-end;
        padding-top:3px;
    }
    .mail-settings-guide{
        flex-direction:column;
        padding:20px 16px;
    }
    .mail-guide-status{
        width:100%;
        box-sizing:border-box;
    }
    .mail-settings-actions{
        flex-direction:column;
        align-items:stretch;
        padding:13px;
    }
    .mail-settings-actions p{
        display:none;
    }
    .mail-settings-actions .btn{
        width:100%;
        min-width:0;
    }
}
/* === 20260713 v12 mail settings UI end === */


/* === 20260713 v13 admin personal mail settings === */
.mail-purpose-notice{
    display:flex;
    align-items:flex-start;
    gap:16px;
    margin:0 0 20px;
    padding:18px 20px;
    border:1px solid #bdd7ff;
    border-radius:16px;
    background:#eef6ff;
    color:#17365f;
}
.mail-purpose-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 46px;
    width:46px;
    height:46px;
    border-radius:14px;
    background:#fff;
    color:#175dcc;
    box-shadow:0 8px 20px rgba(23,93,204,.12);
}
.mail-purpose-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mail-purpose-notice strong{display:block;margin:1px 0 5px;font-size:16px}
.mail-purpose-notice p{margin:0;font-size:14px;line-height:1.65;color:#45617f}
.mail-admin-profile-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px!important}
.mail-admin-profile{display:flex;align-items:center;gap:14px}
.mail-admin-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:#0b2d63;color:#fff;font-size:20px;font-weight:800}
.mail-admin-profile span,.mail-admin-profile small{display:block;color:#76859a;font-size:12px}
.mail-admin-profile strong{display:block;margin:2px 0;font-size:17px;color:#0c1f3c}
.mail-personal-badge{padding:7px 11px;border-radius:999px;background:#edf3ff;color:#2456a6;font-size:12px;font-weight:800}
.mail-settings-sender.is-readonly{background:#fbfcfe}
.mail-sender-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.mail-sender-summary>div{padding:15px 16px;border:1px solid #e4e9f0;border-radius:12px;background:#fff}
.mail-sender-summary span{display:block;margin-bottom:5px;color:#7a8798;font-size:12px}
.mail-sender-summary strong{display:block;overflow-wrap:anywhere;color:#172a45;font-size:14px}
.mail-info-note.is-warning{border-color:#f1d29a;background:#fff8e8;color:#79530d}
@media(max-width:767px){
    .mail-purpose-notice{padding:16px;gap:12px}
    .mail-purpose-icon{flex-basis:40px;width:40px;height:40px}
    .mail-admin-profile-card{align-items:flex-start;padding:17px!important}
    .mail-personal-badge{white-space:nowrap}
    .mail-sender-summary{grid-template-columns:1fr}
}

/* === 20260715 샘플 리포트 안내 디자인 시작 === */
.sample-report-notice {
    display: flex;
    align-items: center;
    gap: 22px;
    width: 100%;
    margin: 24px 0 30px;
    padding: 26px 30px;
    border: 1px solid;
    border-radius: 16px;
    box-sizing: border-box;
}

.sample-report-notice-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 2px solid currentColor;
    border-radius: 50%;
}

.sample-report-notice-icon svg {
    width: 30px;
    height: 30px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sample-report-notice-copy {
    min-width: 0;
}

.sample-report-notice-copy strong {
    display: block;
    margin-bottom: 7px;
    font-size: 20px;
    line-height: 1.45;
    letter-spacing: -0.035em;
}

.sample-report-notice-copy p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: inherit;
}

/* 컬러 버전 */
.sample-report-notice-color {
    color: #1758c7;
    background: #f6f9ff;
    border-color: #bdd4ff;
    box-shadow: 0 10px 28px rgba(36, 92, 182, 0.06);
}

.sample-report-notice-color .sample-report-notice-copy p {
    color: #25344d;
}

/* 흑백 버전 */
.sample-report-notice-mono {
    color: #171717;
    background: #f7f7f7;
    border-color: #d3d3d3;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.045);
}

.sample-report-notice-mono .sample-report-notice-copy p {
    color: #444;
}

@media (max-width: 767px) {
    .sample-report-notice {
        align-items: flex-start;
        gap: 14px;
        margin: 18px 0 24px;
        padding: 20px 17px;
        border-radius: 14px;
    }

    .sample-report-notice-icon {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }

    .sample-report-notice-icon svg {
        width: 24px;
        height: 24px;
    }

    .sample-report-notice-copy strong {
        margin-bottom: 5px;
        font-size: 17px;
        line-height: 1.45;
    }

    .sample-report-notice-copy p {
        font-size: 14px;
        line-height: 1.65;
    }
}

@media (max-width: 380px) {
    .sample-report-notice {
        gap: 11px;
        padding: 18px 14px;
    }

    .sample-report-notice-icon {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .sample-report-notice-copy strong {
        font-size: 16px;
    }

    .sample-report-notice-copy p {
        font-size: 13px;
    }
}
/* === 20260715 샘플 리포트 안내 디자인 끝 === */

/* === 20260715 서비스 상품카드 및 공통안내 시작 === */
.monthly-contract-note {
    display: block;
    margin: 7px 0 0;
    color: #666f7d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
}

.package-card,
.pricing-card,
.plan-card {
    padding-left: 28px;
    padding-right: 28px;
}

.package-card li,
.pricing-card li,
.plan-card li {
    font-size: 15px;
    line-height: 1.8;
    word-break: keep-all;
    overflow-wrap: normal;
}

.package-card h3,
.pricing-card h3,
.plan-card h3,
.package-card p,
.pricing-card p,
.plan-card p {
    word-break: keep-all;
}

.package-common-notice {
    width: 100%;
    margin: 28px auto 0;
    padding: 22px 28px;
    border: 1px solid #b8d0ff;
    border-radius: 14px;
    background: #f7faff;
    box-sizing: border-box;
}

.package-common-notice-list {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.package-common-notice-list li {
    position: relative;
    margin: 0;
    padding-left: 34px;
    color: #172033;
    font-size: 15px;
    line-height: 1.65;
    word-break: keep-all;
}

.package-common-notice-list li::before {
    content: "✓";
    position: absolute;
    top: 2px;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #2467d6;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.package-vat-notice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    margin: 24px auto 0;
    padding-top: 22px;
    border-top: 1px solid #e1e6ee;
    color: #1e293b;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
}

.package-vat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border: 2px solid currentColor;
    border-radius: 50%;
    font-size: 15px;
    font-weight: 800;
}

@media (max-width: 1200px) {
    .package-card,
    .pricing-card,
    .plan-card {
        padding-left: 22px;
        padding-right: 22px;
    }

    .package-card li,
    .pricing-card li,
    .plan-card li {
        font-size: 14px;
    }
}

@media (max-width: 767px) {
    .monthly-contract-note {
        margin-top: 5px;
        font-size: 12px;
    }

    .package-common-notice {
        margin-top: 22px;
        padding: 19px 17px;
        border-radius: 12px;
    }

    .package-common-notice-list {
        gap: 12px;
    }

    .package-common-notice-list li {
        padding-left: 30px;
        font-size: 14px;
    }

    .package-vat-notice {
        margin-top: 20px;
        padding-top: 19px;
        font-size: 14px;
    }
}
/* === 20260715 서비스 상품카드 및 공통안내 끝 === */

/* === 20260715 상품카드 항목 한 줄 정렬 시작 === */

/*
 * 서비스 상품 카드의 좌우 여백과 글자 폭을 조정해
 * 데스크톱에서 각 항목이 한 줄로 표시되도록 합니다.
 */
.price-flow.package-grid .price-card {
    padding-left: 16px;
    padding-right: 16px;
}

.price-flow.package-grid .price-card ul {
    padding-left: 22px;
}

.price-flow.package-grid .price-card li {
    font-size: 14px;
    line-height: 1.85;
    letter-spacing: -0.045em;
    white-space: nowrap;
    word-break: keep-all;
}

/* 카드 설명과 제목도 불필요한 줄바꿈 방지 */
.price-flow.package-grid .price-card > h3,
.price-flow.package-grid .price-card > p {
    white-space: nowrap;
    word-break: keep-all;
    letter-spacing: -0.04em;
}

/* 화면 폭이 줄어드는 구간에서는 글자 크기를 조금 더 조정 */
@media (max-width: 1280px) and (min-width: 768px) {
    .price-flow.package-grid .price-card {
        padding-left: 12px;
        padding-right: 12px;
    }

    .price-flow.package-grid .price-card ul {
        padding-left: 20px;
    }

    .price-flow.package-grid .price-card li {
        font-size: 13px;
        letter-spacing: -0.055em;
    }

    .price-flow.package-grid .price-card > p {
        font-size: 12px;
    }
}

/* 모바일에서는 카드 폭에 맞춰 자연스럽게 줄바꿈 허용 */
@media (max-width: 767px) {
    .price-flow.package-grid .price-card {
        padding-left: 20px;
        padding-right: 20px;
    }

    .price-flow.package-grid .price-card li,
    .price-flow.package-grid .price-card > h3,
    .price-flow.package-grid .price-card > p {
        white-space: normal;
    }

    .price-flow.package-grid .price-card li {
        font-size: 14px;
        letter-spacing: -0.025em;
    }
}

/* === 20260715 상품카드 항목 한 줄 정렬 끝 === */

/* === 20260715 서비스사례 섹션 간격 확대 시작 === */

/* 리포트 요약 영역 이후 제목 간격 */
.section-head[style*="margin-top:70px"],
h2[style*="margin-top:70px"] {
    margin-top: 120px !important;
}

/* 소비자 실제 코멘트 제목 */
.comment-head {
    margin-top: 120px !important;
}

/* 제품 반응 8가지 기준 제목 */
.case-reaction-title,
.reaction-section-title,
.section-head.case-section-title {
    margin-top: 120px !important;
}

/* case.php 안의 인라인 margin-top:70px 제목을 안정적으로 보정 */
body:has(.comment-head) .section-head {
    scroll-margin-top: 100px;
}

@media (max-width: 767px) {
    .section-head[style*="margin-top:70px"],
    h2[style*="margin-top:70px"],
    .comment-head,
    .case-reaction-title,
    .reaction-section-title,
    .section-head.case-section-title {
        margin-top: 72px !important;
    }
}
/* === 20260715 서비스사례 섹션 간격 확대 끝 === */


/* ===== 20260715 메인 모바일 카드 배열 및 진행 단계 간격 개선 ===== */
@media (max-width: 560px) {
    /* 이런 고민, 있으셨나요? : 모바일 2단 배열 */
    .concern-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .concern-card {
        min-height: 0;
        padding: 18px 10px 20px;
        border-radius: 14px;
    }

    .concern-image {
        height: 125px;
        margin-bottom: 14px;
    }

    .concern-image img {
        max-width: 150px;
    }

    .concern-card h3 {
        min-height: 48px;
        font-size: 16px;
        line-height: 1.45;
        word-break: keep-all;
    }

    .concern-line {
        width: 32px;
        margin: 13px 0 14px;
    }

    .concern-card p {
        font-size: 13px;
        line-height: 1.65;
        word-break: keep-all;
    }

    /* 써보고서는 이렇게 진행됩니다 : 설명을 1줄로 표시하고 카드 간격 축소 */
    .process {
        gap: 10px;
    }

    .process .step {
        padding: 16px 16px;
    }

    .process .step .badge {
        margin-bottom: 12px;
    }

    .process .step h3 {
        margin-bottom: 8px;
        font-size: 17px;
    }

    .process .step p {
        margin: 0;
        font-size: 13px;
        line-height: 1.45;
        white-space: nowrap;
    }

    .process .step p br {
        display: none;
    }
}

/* ===== 20260716 서비스 사례 - 제품 반응 기준 모바일 2단 배열 ===== */
@media (max-width: 560px) {
    .case-report-section .criteria-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 10px;
        row-gap: 12px;
    }

    .case-report-section .criteria {
        min-width: 0;
        border-radius: 12px;
        box-shadow: 0 10px 24px rgba(0, 0, 0, .045);
    }

    .case-report-section .criteria .thumb {
        aspect-ratio: 1 / .88;
    }

    .case-report-section .criteria-body {
        min-height: 118px;
        padding: 20px 12px 16px;
    }

    .case-report-section .criteria-body::before {
        top: -15px;
        left: 12px;
        width: 34px;
        height: 34px;
        border-radius: 10px;
    }

    .case-report-section .criteria-icon {
        font-size: 12px;
    }

    .case-report-section .criteria h3 {
        font-size: 15px;
        line-height: 1.4;
        letter-spacing: -0.045em;
        word-break: keep-all;
    }

    .case-report-section .criteria p {
        margin-top: 10px;
        font-size: 12px;
        line-height: 1.55;
        letter-spacing: -0.03em;
        word-break: keep-all;
    }
}
/* ===== 20260716 서비스 사례 모바일 2단 배열 끝 ===== */

/* ===== 20260716 서비스 사례 - 모바일 카드 하단 여백 축소 ===== */
@media (max-width: 560px) {
    .case-report-section .criteria-body {
        min-height: 0;
        padding: 20px 12px 14px;
    }

    .case-report-section .criteria h3 {
        margin-bottom: 0;
    }

    .case-report-section .criteria p {
        margin-top: 8px;
        margin-bottom: 0;
        line-height: 1.45;
    }
}

/* ===== 20260716 서비스 안내 - 모바일 단계/상품 교차 배치 ===== */
@media (max-width: 560px) {
    .service-package-sequence {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .service-package-sequence > .service-stage-list,
    .service-package-sequence > .package-grid {
        display: contents;
    }

    .service-stage-list > div {
        padding: 10px 8px 28px;
        text-align: center;
    }

    .service-stage-list > div .ico {
        margin-bottom: 14px !important;
    }

    .service-stage-list > div h3 {
        margin: 16px 0 10px;
        font-size: 18px;
        line-height: 1.45;
        word-break: keep-all;
    }

    .service-stage-list > div p {
        margin: 0;
        font-size: 14px;
        line-height: 1.65;
        word-break: keep-all;
    }

    .service-package-sequence .package-grid .price-card {
        width: 100%;
        margin: 0 0 46px;
    }

    .service-stage-list > div:nth-child(1) { order: 1; }
    .package-grid > .price-card:nth-child(1) { order: 2; }
    .service-stage-list > div:nth-child(2) { order: 3; }
    .package-grid > .price-card:nth-child(2) { order: 4; }
    .service-stage-list > div:nth-child(3) { order: 5; }
    .package-grid > .price-card:nth-child(3) { order: 6; }
    .service-stage-list > div:nth-child(4) { order: 7; }
    .package-grid > .price-card:nth-child(4) {
        order: 8;
        margin-bottom: 0;
    }
}
/* ===== 20260716 서비스 안내 모바일 교차 배치 끝 ===== */
