/* Survey-only tokens: the blue of the service, a calm reading surface and clear choices. */
body.survey-page {
    --sv-ink:#203653;
    --sv-blue:#2259c7;
    --sv-soft:#edf3fe;
    --sv-line:#dce5f0;
    --sv-muted:#60738c;
    background:#f5f8fd;
}
.survey-page #contents.sub_content_wrap {
    width:100%;
    max-width:1120px;
    margin:auto;
    padding:0 24px;
    box-sizing:border-box;
    min-width:0;
}
.survey-page .content_header {
    padding:36px 0 24px;
}
.survey-page .content_header .sub_big_title {
    font-size:28px;
    line-height:1.5;
    color:var(--sv-ink);
    letter-spacing:-1px;
    word-break:keep-all;
}
.survey-page .breadcrumb {
    margin-bottom:16px;
}
.survey-page .content_header.is-pinned {
    position:sticky;
    z-index:51;
    background:#f5f8fd;
    padding:14px 0 6px;
    box-shadow:0 -12px 0 #f5f8fd;
}
.survey-page .content_header.is-pinned .breadcrumb {
    margin-bottom:6px;
}
.survey-page .content_header.is-pinned .sub_big_title {
    font-size:22px;
    line-height:1.3;
}
.survey-page .svy {
    max-width:960px;
    margin:auto;
    padding:0 0 70px;
    font-family:'Noto Sans KR','Malgun Gothic',sans-serif;
    color:var(--sv-ink);
    line-height:1.65;
}
.svy * {
    box-sizing:border-box;
}
.svy :focus-visible {
    outline:3px solid #82aef1;
    outline-offset:4px;
}
.svy .svy-intro {
    background:#fff;
    border:1px solid var(--sv-line);
    border-radius:20px;
    padding:40px;
    box-shadow:0 8px 28px #20365306;
}
.svy-intro__badge {
    display:inline-flex;
    color:var(--sv-blue);
    background:var(--sv-soft);
    padding:5px 12px;
    border-radius:6px;
    font-size:12px;
    font-weight:700;
    margin-bottom:18px;
}
.svy-intro__hero-title {
    font-size:30px;
    line-height:1.5;
    letter-spacing:-1.1px;
    font-weight:700;
    margin-bottom:14px;
    word-break:keep-all;
}
.svy-intro__hero-desc {
    color:var(--sv-muted);
    font-size:15px;
    line-height:1.8;
    margin-bottom:28px;
}
.svy-intro__body {
    font-size:15px;
    line-height:1.9;
    color:#415773;
    border-top:1px solid var(--sv-line);
    padding-top:24px;
    margin-bottom:24px;
    overflow-wrap:anywhere;
}
.svy-intro__body p {
    margin:0 0 12px;
}
.svy-intro__body img,.svy-intro__notice img {
    max-width:100%;
    height:auto;
}
.svy-intro__infobox {
    display:flex;
    flex-wrap:wrap;
    border:1px solid var(--sv-line);
    border-radius:10px;
    overflow:hidden;
    margin:24px 0;
}
.svy-intro__infobox>div {
    flex:1 1 180px;
    background:#f7f9fd;
    padding:17px 20px;
    font-size:12px;
    color:var(--sv-muted);
}
.svy-intro__infobox>div:first-child {
    flex-basis:260px;
}
.svy-intro__infobox b {
    display:block;
    color:var(--sv-ink);
    font-size:14px;
    font-weight:600;
    margin-top:5px;
}
.svy-intro__notice {
    font-size:14px;
    color:#536783;
    line-height:1.8;
    background:#f1f6fc;
    border-left:3px solid #7198d5;
    border-radius:0 8px 8px 0;
    padding:18px 20px;
    margin-bottom:18px;
    overflow-wrap:anywhere;
}
.svy-intro__contact {
    font-size:12px;
    color:var(--sv-muted);
    margin:18px 0 28px;
}
.svy button,.svy a.svy-back-btn {
    font-family:inherit;
}
.svy-start-btn,.svy-submit-btn,.svy-next-btn,.svy-modal__confirm {
    border:1px solid var(--sv-blue);
    border-radius:10px;
    background:var(--sv-blue);
    color:#fff!important;
    font-weight:700;
    font-size:16px;
    padding:15px 28px;
    cursor:pointer;
    min-height:52px;
}
.svy-start-btn:hover,.svy-submit-btn:hover,.svy-next-btn:hover {
    background:#1949a8;
}
.svy button:disabled {
    opacity:.5;
    cursor:not-allowed;
}
.svy-back-btn,.svy-prev-btn,.svy-prize__auth-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #cdd9ea;
    border-radius:10px;
    background:#fff;
    color:var(--sv-ink)!important;
    padding:13px 25px;
    font-size:14px;
    min-height:50px;
    cursor:pointer;
    text-decoration:none;
}
.svy-actions {
    display:flex;
    gap:12px;
    justify-content:center;
    align-items:stretch;
    margin-top:12px;
}
.svy-actions .svy-start-btn {
    min-width:250px;
}
.svy-intro__thanks { margin: 26px 0 14px; text-align: center; color: var(--sv-muted); font-size: 15px; line-height: 1.8; }
.svy .svy-start-btn--completed:disabled { opacity: 1; background: #edf5f2; border-color: #b8d7ca; color: #27634d!important; cursor: default; }
.svy-back-btn {
    margin-top:20px;
}
.svy-actions .svy-back-btn {
    margin-top:0;
}
.svy-progress {
    position:sticky;
    top:110px;
    z-index:50;
    background:#f5f8fd;
    padding:16px 0;
    margin-bottom:18px;
}
.svy-progress__track {
    height:7px;
    background:#dfe7f2;
    border-radius:20px;
    overflow:hidden;
}
.svy-progress__bar {
    height:100%;
    width:0;
    background:var(--sv-blue);
    border-radius:20px;
    transition:width .2s;
}
.svy-progress__text {
    display:block;
    font-size:12px;
    font-weight:600;
    color:var(--sv-muted);
    margin-top:9px;
    text-align:right;
    font-variant-numeric:tabular-nums;
}
.svy-page-head {
    margin:0 0 24px;
    border-left:4px solid var(--sv-blue);
    padding:6px 0 6px 18px;
    scroll-margin-top:calc(var(--svy-sticky-h, 150px) + 16px);
}
.svy-page-head__no {
    font-size:23px;
    font-weight:700;
    color:var(--sv-blue);
    margin-right:10px;
}
.svy-page-head__title {
    font-size:23px;
    font-weight:700;
}
.svy-page-head__desc {
    color:var(--sv-muted);
    font-size:14px;
    margin-top:5px;
}
.svy-q {
    padding:28px;
    margin-bottom:18px;
    border:1px solid var(--sv-line);
    border-radius:14px;
    background:#fff;
    scroll-margin-top:calc(var(--svy-sticky-h, 150px) + 16px);
}
.svy-q__title {
    font-size:17px;
    font-weight:700;
    line-height:1.7;
    margin-bottom:16px;
    word-break:keep-all;
}
.svy-q__desc {
    font-size:14px;
    line-height:1.7;
    color:var(--sv-muted);
    margin:-6px 0 18px;
}
.svy-req,
.svy-opt {
    display:inline-block;
    font-size:11px;
    line-height:1;
    border-radius:4px;
    padding:4px 6px;
    vertical-align:middle;
    position:relative;
    top:-2px;
    margin-left:4px;
    font-weight:600;
    white-space:nowrap;
}
.svy-req {
    background:#fff0ee;
    color:#b53e37;
}
.svy-opt {
    background:#eef2f7;
    color:var(--sv-muted);
}
.svy-q__max {
    font-size:12px;
    font-weight:400;
    color:var(--sv-muted);
}
.svy-choices {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.svy-choice {
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 16px;
    border:1px solid var(--sv-line);
    border-radius:9px;
    font-size:15px;
    line-height:1.6;
    cursor:pointer;
    min-height:52px;
    background:#fff;
    overflow-wrap:anywhere;
}
.svy-choice:hover {
    background:#f6f9ff;
    border-color:#a9bfdf;
}
.svy-choice:has(input:checked) {
    background:var(--sv-soft);
    border-color:var(--sv-blue);
    color:#164ca9;
}
.svy input[type=radio],.svy input[type=checkbox] {
    appearance:auto;
    -webkit-appearance:auto;
    position:static;
    opacity:1;
    clip:auto;
    width:20px;
    height:20px;
    flex:none;
    margin:0;
    accent-color:var(--sv-blue);
    cursor:pointer;
}
.svy-choice--etc {
    grid-column:1/-1;
    flex-wrap:wrap;
}
.svy-input,.svy-textarea {
    border:1px solid #bacbe0;
    border-radius:8px;
    background:#fff;
    padding:13px 15px;
    font:inherit;
    font-size:15px;
    color:var(--sv-ink);
    width:100%;
    line-height:1.6;
}
.svy-input::placeholder,.svy-textarea::placeholder {
    color:#b8c2cf !important;
}
.svy-textarea {
    resize:vertical;
    min-height:110px;
}
.svy-input--etc {
    width:100%;
    margin-top:6px;
    min-height:70px;
}
.svy-q--invalid {
    border-color:#c9463d;
    background:#fffdfd;
}
.svy-q__error {
    margin-top:12px;
    font-size:13px;
    color:#b53e37;
}
.svy-matrix-wrap {
    overflow-x:auto;
    border:1px solid var(--sv-line);
    border-radius:9px;
}
.svy-matrix {
    width:100%;
    min-width:570px;
    table-layout:fixed;
    border-collapse:collapse;
    font-size:14px;
}
.svy-matrix th,.svy-matrix td {
    border-bottom:1px solid #e5ebf4;
    border-right:1px solid #e5ebf4;
    padding:14px 8px;
    text-align:center;
    line-height:1.6;
    word-break:keep-all;
}
.svy-matrix thead th {
    background:#f0f4fa;
    font-size:12px;
    font-weight:600;
    color:#536783;
}
.svy-matrix tbody th {
    font-weight:400;
    text-align:left;
    padding:16px;
}
.svy-matrix thead th:first-child,.svy-matrix tbody th {
    width:36%;
}
.svy-matrix td:has(input:checked) {
    background:#eaf2ff;
}
.svy-matrix td label {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    cursor:pointer;
}
.svy-matrix-hint {
    font-size:12px;
    color:var(--sv-muted);
    margin-bottom:8px;
}
.svy-page-actions {
    display:flex;
    justify-content:flex-end;
    gap:12px;
    padding:16px 0;
    position:sticky;
    bottom:0;
    background:#f5f8fdf5;
    z-index:40;
    border-top:1px solid var(--sv-line);
}
.svy-page-actions button {
    min-width:150px;
}
.svy-page-actions .svy-prev-btn {
    margin-right:auto;
}
.svy-form,.svy-prize,.svy-done {
    scroll-margin-top:var(--svy-pin-top, 135px);
}
.svy .svy-msg,.svy .svy-done {
    padding:60px 24px;
    text-align:center;
    background:#fff;
    border:1px solid var(--sv-line);
    border-radius:18px;
    font-size:18px;
    color:var(--sv-ink);
    line-height:1.8;
}
.svy-done__mark {
    display:flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    border-radius:50%;
    background:#e5f5ef;
    color:#12654b;
    font-size:30px;
    margin:0 auto 22px;
}
.svy-done h3 {
    font-size:25px;
    margin-bottom:8px;
}
.svy-done p {
    font-size:15px;
    color:var(--sv-muted);
}
.svy-modal-overlay {
    position:fixed;
    inset:0;
    background:#182e5080;
    z-index:500;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
}
.svy-modal {
    background:#fff;
    border-radius:18px;
    padding:32px;
    max-width:420px;
    width:100%;
    text-align:center;
    box-shadow:0 20px 70px #162c5030;
}
.svy-modal p {
    font-size:16px;
    line-height:1.8;
    margin-bottom:24px;
}
.svy-modal__actions {
    display:flex;
    gap:10px;
}
.svy-modal__actions a {
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:13px 20px;
    min-height:48px;
    border-radius:8px;
    font-size:14px;
    text-decoration:none;
}
.svy-modal__cancel {
    border:1px solid var(--sv-line);
    color:var(--sv-ink)!important;
    background:#fff;
}
.svy-prize__field {
    margin:14px 0;
}
.svy-prize__field>label {
    display:block;
    font-size:14px;
    margin-bottom:8px;
}
.svy-prize__field .svy-choice {
    display:flex;
}
.svy-prize__auth-btn {
    margin-top:12px;
}
.svy-prize__auth-status {
    font-size:14px;
    margin-top:12px;
    color:var(--sv-blue);
}
.svy-prize__auth-status--error {
    color:#d32f2f;
    font-weight:700;
}
.svy-prize__fields {
    display:flex;
    flex-direction:column;
    gap:12px;
}
.svy-submit-wrap {
    padding-top:24px;
}
@media(max-width:700px) {
    .survey-page #contents.sub_content_wrap {
        padding:0 16px;
    }
    .survey-page .content_header {
        padding:24px 0 20px;
    }
    .survey-page .content_header .sub_big_title {
        font-size:22px;
    }
    .survey-page .content_header.is-pinned .breadcrumb {
        display:none;
    }
    .survey-page .content_header.is-pinned .sub_big_title {
        font-size:17px;
    }
    .svy .svy-intro {
        padding:24px 20px;
        border-radius:14px;
    }
    .svy-intro__hero-title {
        font-size:24px;
    }
    .svy-intro__infobox>div {
        flex-basis:100%;
    }
    .svy-choices {
        grid-template-columns:1fr;
    }
    .svy-q {
        padding:22px 18px;
    }
    .svy-q__title {
        font-size:16px;
    }
    .svy-page-head__title,.svy-page-head__no {
        font-size:20px;
    }
    .svy-actions {
        flex-wrap:wrap;
    }
    .svy-actions .svy-start-btn {
        min-width:0;
        flex:1 1 100%;
    }
    .svy-actions .svy-back-btn {
        flex:1;
    }
    .svy-page-actions button {
        min-width:0;
        flex:1;
    }
    .svy-matrix {
        min-width:550px;
    }
    .svy-intro__body {
        font-size:14px;
    }
}
@media(prefers-reduced-motion:reduce) {
    .svy-progress__bar {
        transition:none;
    }
    .svy * {
        scroll-behavior:auto!important;
    }
}
.svy .svy-form,.svy .svy-prize {
    padding:0;
}
.svy-draft-note {
    font-size:12px;
    color:#60738c;
    text-align:center;
    margin:16px 0;
}
.svy-prize-card {
    max-width: 760px;
    margin: 0 auto;
    padding: 36px;
    background: #fff;
    border: 1px solid var(--sv-line);
    border-radius: 18px;
}
.svy-prize-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 22px;
    margin-bottom: 26px;
    border-bottom: 1px solid var(--sv-line);
    color: #12654b;
    font-size: 14px;
    font-weight: 600;
}
.svy-prize-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #e5f5ef;
}
.svy-prize-card h3 { font-size: 27px; font-weight: 700; margin-bottom: 12px; }
.svy-prize-lead { font-size: 16px; line-height: 1.8; color: var(--sv-ink); }
.svy-prize-note { margin-top: 8px; color: var(--sv-muted); font-size: 13px; }
.svy-prize-steps { padding: 22px; margin: 24px 0; background: #f4f7fc; border-radius: 12px; }
.svy-prize-steps li { display: flex; gap: 12px; margin: 0; }
.svy-prize-steps li + li { margin-top: 18px; }
.svy-prize-steps li > b { color: var(--sv-blue); font-size: 15px; }
.svy-prize-steps strong { font-size: 15px; color: var(--sv-ink); }
.svy-prize-steps p { margin-top: 4px; font-size: 13px; line-height: 1.7; color: var(--sv-muted); }
.svy-prize-privacy { padding: 16px 0; border-top: 1px solid var(--sv-line); font-size: 13px; }
.svy-prize-privacy summary { cursor: pointer; font-size: 14px; font-weight: 600; }
.svy-prize-privacy dl { display: grid; grid-template-columns: 90px 1fr; gap: 10px; margin: 16px 0; }
.svy-prize-privacy dt { color: var(--sv-ink); font-weight: 600; }
.svy-prize-privacy dd, .svy-prize-privacy > p { color: var(--sv-muted); line-height: 1.8; }
.svy-prize-consent { font-size: 14px; align-items: flex-start; }
.svy-prize-consent input { margin-top: 2px!important; }
.svy-prize-pass { width: 100%; margin-top: 22px; }
.svy-prize-recipient { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--sv-line); }
.svy-prize-recipient label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 10px; }
.svy-prize-recipient #svyPhoneHelp { color: var(--sv-muted); font-size: 12px; margin-top: 10px; line-height: 1.7; }
.svy-prize-recipient #svyPhoneError { font-size: 14px; margin: 6px 0 0; color: #d32f2f; font-weight: 700; }
.svy-prize-submit { display: block; width: 100%; margin-top: 20px; }
.svy-prize-optional { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--sv-line); text-align: center; }
.svy-prize-optional p { margin: 0; line-height: 1.7; }
.svy-prize-optional strong { display: block; color: #243247; font-size: 16px; font-weight: 700; }
.svy-prize-optional span { display: block; margin-top: 6px; color: var(--sv-muted); font-size: 14px; }
.svy-prize-skip { display: block; width: 100%; min-height: 54px; padding: 15px 12px; margin: 16px 0 0; border: 1px solid #a7b4c5; border-radius: 12px; background: #f3f6fa; color: #243247; font: inherit; font-size: 16px; font-weight: 700; line-height: 1.5; cursor: pointer; }
.svy-prize-skip:hover:not(:disabled) { background: #e8eef5; border-color: #65768c; }
.svy-prize-skip:focus-visible { outline: 3px solid #365fc7; outline-offset: 3px; }
.svy-prize-skip:disabled { opacity: .55; cursor: wait; }
@media (max-width:700px) {
    .svy-prize-card { padding: 24px 20px; }
    .svy-prize-card h3 { font-size: 23px; }
    .svy-prize-pass { font-size: 14px; padding: 14px 10px; }
}
.svy-choices--compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width:700px) {
    .svy-choices--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media(max-width:700px) {
    body.survey-page .ai-bot {
        bottom:100px!important;
        right:16px!important;
    }
    .svy .svy-msg h3 {
        font-size:21px;
    }
    .svy .svy-msg p {
        font-size:14px;
        margin-top:12px;
    }
}
