/*
 * 인트라매거진 약관·안내 페이지 전용 디자인 시스템
 *
 * 적용 페이지(body.intra-doc-page):
 *   /about/ /greeting/ /location/ /report/ /contribute/
 *   /terms-of-service/ /privacy-policy/ /youth-protection/
 *   /copyright-policy/ /anti-spam/
 *
 * 톤: 모던 매거진 × 한국 언론사 정통 절충.
 * 강한 흑백 대비, 빅 타이포, 절제된 브랜드 액센트(#bc1124).
 * 메인 사이트 page.php 에 얹히는 보강 레이어 — 모바일 우선, 점진적 향상.
 */

/* ============================================================
 * 디자인 토큰
 * ============================================================ */
:root {
    --idoc-accent: #bc1124;
    --idoc-accent-hover: #9a0d1c;
    --idoc-accent-soft: #fbf3f4;
    --idoc-ink: #0d0d0d;
    --idoc-text: #1a1a1a;
    --idoc-muted: #555;
    --idoc-soft: #888;
    --idoc-faint: #b8b8b8;
    --idoc-border: #e5e5e5;
    --idoc-border-strong: #1a1a1a;
    --idoc-bg: #fff;
    --idoc-bg-alt: #f7f7f7;
    --idoc-bg-deep: #111;
    --idoc-radius: 4px;
    --idoc-radius-lg: 8px;
    --idoc-shadow-card: 0 1px 2px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.04);
    --idoc-content-max: 820px;
    --idoc-content-pad: 1.125rem;
    --idoc-anchor-offset: 80px;
}

/* ============================================================
 * (1) 메인 사이트 page.php 위 레이아웃 보정
 *     사이드바 숨기고 본문 폭 확장
 * ============================================================ */
body.intra-doc-page .td-pb-span4,
body.intra-doc-page .td-main-sidebar {
    display: none !important;
}

body.intra-doc-page .td-pb-span8,
body.intra-doc-page .td-main-content {
    width: 100% !important;
    max-width: var(--idoc-content-max);
    margin: 0 auto;
    padding-left: var(--idoc-content-pad);
    padding-right: var(--idoc-content-pad);
    float: none;
    box-sizing: border-box;
}

body.intra-doc-page .td-main-content-wrap {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

body.intra-doc-page .td-ss-main-content {
    padding: 0;
}

/* 페이지 타이틀(td-page-header) — 매거진 헤드라인 */
body.intra-doc-page .td-page-header {
    padding: 1rem 0 2rem;
    margin: 0 0 3rem;
    border-bottom: 1px solid var(--idoc-border-strong);
    position: relative;
    text-align: left;
}

body.intra-doc-page .td-page-header::before {
    content: "INTRAMAGAZINE";
    display: block;
    font-size: .6875rem;
    letter-spacing: .22em;
    color: var(--idoc-accent);
    font-weight: 700;
    margin: 0 0 1rem;
}

body.intra-doc-page .td-page-title {
    font-size: 2.25rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: var(--idoc-ink);
    margin: 0;
    padding: 0;
}

body.intra-doc-page .td-page-title span {
    display: inline-block;
}

/* td-page-content 첫 자식 안전 마진 — 모든 자식 공통 */
body.intra-doc-page .td-page-content {
    padding-top: 0;
}

body.intra-doc-page .td-page-content > *:first-child {
    margin-top: 0;
}

/* 본문 baseline */
body.intra-doc-page .td-page-content {
    color: var(--idoc-text);
    font-size: 1rem;
    line-height: 1.85;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

body.intra-doc-page .td-page-content p {
    margin: 0 0 1.125rem;
}

body.intra-doc-page .td-page-content a {
    color: var(--idoc-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .15s ease;
}

body.intra-doc-page .td-page-content a:hover {
    color: var(--idoc-accent-hover);
}

/* breadcrumb 정리 */
body.intra-doc-page .td-crumb-container {
    margin-bottom: .5rem;
    font-size: .8125rem;
    color: var(--idoc-soft);
}

/* ============================================================
 * (2) 공용 디자인 요소 — eyebrow / lead / 섹션 번호
 * ============================================================ */
.idoc-eyebrow {
    display: inline-block;
    font-size: .75rem;
    letter-spacing: .22em;
    font-weight: 700;
    color: var(--idoc-accent);
    text-transform: uppercase;
    margin: 0 0 1rem;
}

.idoc-lead {
    font-size: 1.0625rem;
    line-height: 1.85;
    color: var(--idoc-text);
    margin: 0 0 1.5rem;
}

.idoc-block {
    margin: 0 0 3rem;
}

.idoc-block:last-child {
    margin-bottom: 0;
}

.idoc-section-title {
    display: flex;
    align-items: baseline;
    gap: .875rem;
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--idoc-ink);
    margin: 0 0 1.25rem;
    padding: 0 0 .75rem;
    border-bottom: 1px solid var(--idoc-border);
}

.idoc-section-title .idoc-num {
    flex: 0 0 auto;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--idoc-accent);
    letter-spacing: .05em;
    font-feature-settings: "tnum";
}

/* ============================================================
 * (3) /about/ 풀블리드 히어로
 *     본문 컨테이너(800px)를 깨고 100vw 로 펼침
 * ============================================================ */
.idoc-about .idoc-hero,
.idoc-greeting .idoc-greeting-hero {
    position: relative;
    margin: 0 0 3rem;
    padding: 3.5rem 1.75rem 4rem;
    background:
        radial-gradient(ellipse at top right, rgba(188, 17, 36, .08), transparent 60%),
        linear-gradient(180deg, #fafafa 0%, #fff 100%);
    border: 1px solid var(--idoc-border);
    border-radius: var(--idoc-radius-lg);
    text-align: center;
    box-sizing: border-box;
}

/* hero 내부 컨텐츠는 가운데 정렬 + 적당 폭 가둠
 * body.intra-doc-page 프리픽스로 명시도 0,0,3,1 → 부모 테마 .td-page-content p (0,0,2,2) 이김 */
body.intra-doc-page .idoc-about .idoc-hero > *,
body.intra-doc-page .idoc-greeting .idoc-greeting-hero > * {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.idoc-about .idoc-hero::before,
.idoc-greeting .idoc-greeting-hero::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 1.5rem;
    width: 40px;
    height: 3px;
    background: var(--idoc-accent);
    transform: translateX(-50%);
}

.idoc-hero-title {
    font-size: 2.75rem;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--idoc-ink);
    margin: .75rem 0 .75rem;
}

body.intra-doc-page .td-page-content .idoc-hero-lead {
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--idoc-muted);
    margin: 0 auto;
    max-width: 36em;
    font-weight: 400;
    text-align: center;
}

/* about/greeting 은 td-page-header(작은 타이틀) + hero 둘 다 살림 — hero 가 겹치지 않게 */
body.intra-doc-page.page-about .td-page-header,
body.intra-doc-page.page-greeting .td-page-header {
    margin-bottom: 1.5rem;
}

body.intra-doc-page.page-about .idoc-hero,
body.intra-doc-page.page-greeting .idoc-greeting-hero {
    margin-top: 0;
}

/* ============================================================
 * (4) /about/ 카드 그리드 — coverage / principles
 * ============================================================ */
.idoc-coverage {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .625rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.idoc-coverage li {
    margin: 0;
}

.idoc-coverage a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem .75rem;
    background: var(--idoc-bg-alt);
    border: 1px solid var(--idoc-border);
    border-radius: var(--idoc-radius);
    color: var(--idoc-ink) !important;
    text-decoration: none !important;
    font-size: .9375rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.3;
    transition: background .15s, color .15s, border-color .15s, transform .15s;
}

.idoc-coverage a:hover,
.idoc-coverage a:focus-visible {
    background: var(--idoc-ink);
    color: #fff !important;
    border-color: var(--idoc-ink);
    transform: translateY(-1px);
}

.idoc-principles {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: 0;
}

.idoc-principle {
    padding: 1.25rem 1.375rem;
    background: var(--idoc-bg-alt);
    border-left: 3px solid var(--idoc-accent);
    border-radius: var(--idoc-radius);
}

.idoc-principle dt {
    font-size: 1rem;
    font-weight: 700;
    color: var(--idoc-ink);
    margin: 0 0 .375rem;
    letter-spacing: -0.005em;
}

.idoc-principle dd {
    margin: 0;
    color: var(--idoc-muted);
    line-height: 1.75;
    font-size: .9375rem;
}

/* about 발행정보 표 */
.idoc-info-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    font-size: .9375rem;
    line-height: 1.7;
    border-top: 2px solid var(--idoc-ink);
    border-bottom: 2px solid var(--idoc-ink);
}

.idoc-info-table th,
.idoc-info-table td {
    padding: .875rem 1rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--idoc-border);
}

.idoc-info-table tr:last-child th,
.idoc-info-table tr:last-child td {
    border-bottom: none;
}

.idoc-info-table th {
    width: 32%;
    font-weight: 700;
    color: var(--idoc-soft);
    background: transparent;
    font-size: .8125rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.idoc-info-table td {
    color: var(--idoc-ink);
    font-weight: 500;
}

/* ============================================================
 * (5) /greeting/ — 인사말 본문
 * ============================================================ */
.idoc-greeting-hero {
    padding-top: 4.5rem;
    padding-bottom: 5rem;
}

.idoc-greeting-title {
    display: block;
    font-size: 2rem;
    line-height: 1.35;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: var(--idoc-ink);
    margin: .5rem 0 1rem;
}

.idoc-greeting-sub {
    color: var(--idoc-accent);
    font-size: 1.0625rem;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

.idoc-greeting-body {
    max-width: 38em;
    margin: 0 auto;
    line-height: 1.95;
    font-size: 1.0625rem;
    color: var(--idoc-text);
}

.idoc-greeting-body p {
    margin: 0 0 1.5rem;
}

.idoc-greeting-lead {
    font-size: 1.125rem;
}

.idoc-dropcap {
    float: left;
    font-size: 3.5rem;
    line-height: .9;
    font-weight: 800;
    color: var(--idoc-accent);
    margin: .25rem .625rem 0 0;
    padding: 0;
    letter-spacing: -0.02em;
}

.idoc-greeting-sign {
    margin-top: 2.5rem !important;
    padding-top: 1.5rem;
    border-top: 1px solid var(--idoc-border);
    text-align: right;
    font-size: 1rem;
    font-weight: 600;
    color: var(--idoc-ink);
    font-style: italic;
}

/* ============================================================
 * (6) 약관·정책 공용 — 옛 마크업(.privacy-*) 매거진 톤 매핑
 * ============================================================ */
body.intra-doc-page .user-com-about,
body.intra-doc-page .privacy {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
}

/* 인트로 헤더 → 매거진 lead */
body.intra-doc-page .privacy-list-header {
    display: block;
    margin: 0 0 2.5rem;
    padding: 1.5rem 0 1.5rem 1.25rem;
    border-left: 3px solid var(--idoc-accent);
    background: transparent;
    color: var(--idoc-text);
    font-size: 1.0625rem;
    line-height: 1.85;
    font-weight: 400;
}

/* 목차 박스 */
body.intra-doc-page .privacy-list {
    margin: 0 0 3rem;
    padding: 0;
    background: transparent;
    border: none;
}

body.intra-doc-page .privacy-list .row {
    display: grid;
    grid-template-columns: 1fr;
    gap: .5rem 1rem;
    padding: 1.5rem;
    margin: 0;
    background: var(--idoc-bg-alt);
    border-radius: var(--idoc-radius);
    position: relative;
}

body.intra-doc-page .privacy-list .row::before {
    content: "TABLE OF CONTENTS";
    display: block;
    grid-column: 1 / -1;
    font-size: .6875rem;
    letter-spacing: .22em;
    font-weight: 700;
    color: var(--idoc-accent);
    margin: 0 0 .25rem;
}

body.intra-doc-page .privacy-list .columns {
    margin: 0;
    padding: 0;
    width: auto;
    display: contents;
}

body.intra-doc-page .privacy-list-groups {
    list-style: none;
    margin: 0;
    padding: 0;
    display: contents;
}

body.intra-doc-page .privacy-list-groups li {
    margin: 0;
    padding: 0;
}

body.intra-doc-page .privacy-list-groups li a {
    display: flex;
    align-items: baseline;
    gap: .625rem;
    padding: .625rem .75rem;
    background: #fff;
    border: 1px solid transparent;
    border-radius: var(--idoc-radius);
    color: var(--idoc-text) !important;
    text-decoration: none !important;
    font-size: .9375rem;
    line-height: 1.4;
    transition: border-color .15s, color .15s, background .15s;
}

body.intra-doc-page .privacy-list-groups li a:hover,
body.intra-doc-page .privacy-list-groups li a:focus-visible,
body.intra-doc-page .privacy-list-groups li a.is-active {
    border-color: var(--idoc-accent);
    color: var(--idoc-accent) !important;
    background: #fff;
}

/* "1조" 라벨 */
body.intra-doc-page .privacy-list-groups li a {
    color: var(--idoc-soft) !important;
}

body.intra-doc-page .privacy-list-groups li a strong {
    color: var(--idoc-ink);
    font-weight: 600;
    flex: 1;
}

body.intra-doc-page .privacy-list-groups li a:hover strong,
body.intra-doc-page .privacy-list-groups li a:focus-visible strong,
body.intra-doc-page .privacy-list-groups li a.is-active strong {
    color: var(--idoc-accent);
}

/* hr 잔재 — 새 디자인은 섹션 border 가 대체 */
body.intra-doc-page .td-page-content > hr,
body.intra-doc-page .user-com-about > hr,
body.intra-doc-page .privacy > hr,
body.intra-doc-page .privacy-list ~ hr {
    display: none;
}

/* 섹션 — privacy-group */
body.intra-doc-page .privacy-group {
    padding: 2.25rem 0 0;
    margin: 2.25rem 0 0;
    border-top: 1px solid var(--idoc-border);
    scroll-margin-top: var(--idoc-anchor-offset);
}

body.intra-doc-page .privacy-list + .privacy-group,
body.intra-doc-page .privacy-group:first-of-type {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}

body.intra-doc-page .privacy-group-title {
    font-size: 1.375rem;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--idoc-ink);
    margin: 0 0 1rem;
    padding: 0;
    position: relative;
}

body.intra-doc-page .privacy-group-title::before {
    content: "";
    display: block;
    width: 28px;
    height: 2px;
    background: var(--idoc-accent);
    margin: 0 0 .75rem;
}

body.intra-doc-page .privacy-group-summary {
    margin: 0 0 1rem;
    color: var(--idoc-text);
    line-height: 1.85;
}

body.intra-doc-page .privacy-group-list {
    padding-left: 1.5rem;
    margin: 0 0 1rem;
}

body.intra-doc-page .privacy-group-list.no-bullet {
    list-style: none;
    padding-left: 0;
}

body.intra-doc-page .privacy-group-list li {
    margin-bottom: .625rem;
    line-height: 1.85;
}

body.intra-doc-page .privacy-group-list li::marker {
    color: var(--idoc-accent);
    font-weight: 700;
}

body.intra-doc-page .privacy-group-list li ul,
body.intra-doc-page .privacy-group-list li ol {
    margin-top: .5rem;
    margin-bottom: 0;
    padding-left: 1.25rem;
}

/* 섹션 안 h6 — 작은 라벨 */
body.intra-doc-page .privacy-group h6 {
    font-size: .8125rem;
    letter-spacing: .04em;
    font-weight: 700;
    color: var(--idoc-soft);
    margin: 1.75rem 0 .75rem;
    text-transform: uppercase;
}

body.intra-doc-page .privacy-group h6 strong {
    color: var(--idoc-accent);
    font-weight: 700;
}

/* ============================================================
 * (7) 표 — Foundation .hover/.unstriped + .table-responsive
 *     매거진 정보 박스 톤
 * ============================================================ */
body.intra-doc-page .td-page-content table.hover,
body.intra-doc-page .td-page-content table.unstriped,
body.intra-doc-page .table-responsive table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0 1.5rem;
    font-size: .9375rem;
    line-height: 1.7;
    border-top: 2px solid var(--idoc-ink);
    border-bottom: 2px solid var(--idoc-ink);
    background: transparent;
}

body.intra-doc-page .td-page-content table.hover th,
body.intra-doc-page .td-page-content table.hover td,
body.intra-doc-page .td-page-content table.unstriped th,
body.intra-doc-page .td-page-content table.unstriped td,
body.intra-doc-page .table-responsive table th,
body.intra-doc-page .table-responsive table td {
    padding: .875rem 1rem;
    border-bottom: 1px solid var(--idoc-border);
    text-align: left;
    vertical-align: top;
}

body.intra-doc-page .td-page-content table.hover tr:last-child th,
body.intra-doc-page .td-page-content table.hover tr:last-child td,
body.intra-doc-page .td-page-content table.unstriped tr:last-child th,
body.intra-doc-page .td-page-content table.unstriped tr:last-child td,
body.intra-doc-page .table-responsive table tr:last-child th,
body.intra-doc-page .table-responsive table tr:last-child td {
    border-bottom: none;
}

body.intra-doc-page .td-page-content table.hover th,
body.intra-doc-page .td-page-content table.unstriped th,
body.intra-doc-page .table-responsive table th {
    background: transparent;
    font-weight: 700;
    width: 32%;
    color: var(--idoc-soft);
    font-size: .8125rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-align: left !important; /* th .text-center 클래스 무시 */
}

body.intra-doc-page .td-page-content table.hover td,
body.intra-doc-page .td-page-content table.unstriped td,
body.intra-doc-page .table-responsive table td {
    color: var(--idoc-ink);
    font-weight: 500;
}

body.intra-doc-page .td-page-content table.hover td ul,
body.intra-doc-page .td-page-content table.hover td ol,
body.intra-doc-page .td-page-content table.unstriped td ul,
body.intra-doc-page .td-page-content table.unstriped td ol,
body.intra-doc-page .table-responsive table td ul,
body.intra-doc-page .table-responsive table td ol {
    margin: 0;
    padding-left: 1.25rem;
    font-weight: 400;
}

body.intra-doc-page .td-page-content table.hover td li,
body.intra-doc-page .td-page-content table.unstriped td li,
body.intra-doc-page .table-responsive table td li {
    color: var(--idoc-text);
    margin-bottom: .25rem;
}

/* 책임자 박스 — h6 + 표 묶음 시각 강조 */
body.intra-doc-page .privacy-group > div:has(> h6 + .table-responsive),
body.intra-doc-page .privacy-group > div:has(> h6 + table),
body.intra-doc-page .privacy-group > .clearfix:has(> h6 + table) {
    padding: 1.5rem;
    background: var(--idoc-bg-alt);
    border-left: 3px solid var(--idoc-accent);
    border-radius: var(--idoc-radius);
    margin: 1rem 0 1.5rem;
}

body.intra-doc-page .privacy-group > div:has(> h6 + .table-responsive) > h6,
body.intra-doc-page .privacy-group > div:has(> h6 + table) > h6,
body.intra-doc-page .privacy-group > .clearfix:has(> h6 + table) > h6 {
    margin-top: 0;
    color: var(--idoc-accent);
}

body.intra-doc-page .privacy-group > div:has(> h6 + .table-responsive) > .table-responsive table,
body.intra-doc-page .privacy-group > div:has(> h6 + table) > table,
body.intra-doc-page .privacy-group > .clearfix:has(> h6 + table) > table {
    border-top: 1px solid var(--idoc-border);
    border-bottom: 1px solid var(--idoc-border);
    margin: .75rem 0 0;
    background: #fff;
}

/* ============================================================
 * (8) 카카오맵 + 위치 카드
 * ============================================================ */
.idoc-map-wrap {
    margin: 0 0 1.5rem;
}

body.intra-doc-page .root_daum_roughmap {
    width: 100% !important;
    border-radius: var(--idoc-radius);
    overflow: hidden;
}

body.intra-doc-page .root_daum_roughmap_landing {
    max-width: 100%;
}

/* 카카오맵 lazy 로드 전 placeholder */
body.intra-doc-page .root_daum_roughmap:not(.is-loaded) {
    min-height: 320px;
    background:
        linear-gradient(0deg, rgba(0,0,0,.02), rgba(0,0,0,.02)),
        repeating-linear-gradient(45deg, transparent 0 14px, rgba(0,0,0,.03) 14px 28px);
    border: 1px dashed var(--idoc-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--idoc-soft);
    font-size: .8125rem;
    letter-spacing: .04em;
}

body.intra-doc-page .root_daum_roughmap:not(.is-loaded)::before {
    content: "지도 불러오는 중…";
}

body.intra-doc-page .idoc-location-card,
body.intra-doc-page #com-map {
    margin: 0;
    padding: 1.5rem 1.625rem;
    background: var(--idoc-bg-alt);
    border-left: 3px solid var(--idoc-accent);
    border-radius: var(--idoc-radius);
}

body.intra-doc-page #com-map .map-header {
    display: none;
}

body.intra-doc-page #com-map .group {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}

body.intra-doc-page #com-map .item.subject {
    flex: 0 0 auto;
    color: var(--idoc-accent);
    font-weight: 700;
    font-size: .8125rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding-top: .125rem;
    display: flex;
    align-items: center;
    gap: .375rem;
}

body.intra-doc-page #com-map dl.inadd {
    margin: 0;
    flex: 1;
}

body.intra-doc-page #com-map dl.inadd dt {
    font-size: .75rem;
    color: var(--idoc-soft);
    margin: 0 0 .25rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.intra-doc-page #com-map dl.inadd dd {
    margin: 0;
    line-height: 1.7;
    color: var(--idoc-ink);
    font-weight: 500;
    font-size: 1rem;
}

/* ============================================================
 * (9) /anti-spam/ 콜아웃
 * ============================================================ */
body.intra-doc-page .idoc-callout {
    padding: 1.75rem 1.75rem;
    background: var(--idoc-bg-alt);
    border-left: 4px solid var(--idoc-accent);
    border-radius: var(--idoc-radius);
    color: var(--idoc-text);
    line-height: 1.85;
    margin: 1rem 0 0;
}

body.intra-doc-page .idoc-callout .privacy-group-title {
    font-size: 1.25rem;
    margin: 0 0 .75rem;
}

body.intra-doc-page .idoc-callout .privacy-group-title::before {
    display: none;
}

body.intra-doc-page .idoc-callout .privacy-group-summary {
    margin: 0;
    font-size: 1rem;
}

/* ============================================================
 * (9.5) /report/ /contribute/ — CF7 폼 톤
 * ============================================================ */
body.intra-doc-page .wpcf7 {
    margin: 1rem 0 0;
    padding: 2rem 1.75rem;
    background: var(--idoc-bg-alt);
    border-radius: var(--idoc-radius-lg);
}

body.intra-doc-page .wpcf7 form > label,
body.intra-doc-page .wpcf7 form > p > label {
    display: block;
    margin: 0 0 1.25rem;
    font-size: .75rem;
    font-weight: 700;
    color: var(--idoc-soft);
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.intra-doc-page .wpcf7 .wpcf7-form-control-wrap {
    display: block;
    margin-top: .5rem;
}

body.intra-doc-page .wpcf7 input[type="text"],
body.intra-doc-page .wpcf7 input[type="email"],
body.intra-doc-page .wpcf7 input[type="tel"],
body.intra-doc-page .wpcf7 input[type="url"],
body.intra-doc-page .wpcf7 input[type="number"],
body.intra-doc-page .wpcf7 input[type="date"],
body.intra-doc-page .wpcf7 textarea,
body.intra-doc-page .wpcf7 select {
    width: 100%;
    padding: .75rem .9375rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--idoc-ink);
    background: #fff;
    border: 1px solid var(--idoc-border);
    border-radius: var(--idoc-radius);
    box-shadow: none;
    box-sizing: border-box;
    font-family: inherit;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    transition: border-color .15s ease, box-shadow .15s ease;
}

body.intra-doc-page .wpcf7 input::placeholder,
body.intra-doc-page .wpcf7 textarea::placeholder {
    color: var(--idoc-faint);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
}

body.intra-doc-page .wpcf7 input:focus,
body.intra-doc-page .wpcf7 textarea:focus,
body.intra-doc-page .wpcf7 select:focus {
    outline: none;
    border-color: var(--idoc-accent);
    box-shadow: 0 0 0 3px rgba(188, 17, 36, .12);
}

body.intra-doc-page .wpcf7 textarea {
    min-height: 180px;
    resize: vertical;
}

body.intra-doc-page .wpcf7 input[type="file"] {
    display: block;
    width: 100%;
    padding: .625rem;
    font-size: .875rem;
    color: var(--idoc-text);
    background: #fff;
    border: 1px dashed var(--idoc-border);
    border-radius: var(--idoc-radius);
    cursor: pointer;
}

body.intra-doc-page .wpcf7 input[type="submit"],
body.intra-doc-page .wpcf7 button[type="submit"] {
    display: inline-block;
    margin: 1.25rem 0 0;
    padding: .9375rem 2.5rem;
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff !important;
    background: var(--idoc-ink);
    border: none;
    border-radius: var(--idoc-radius);
    cursor: pointer;
    transition: background .15s ease, transform .15s ease;
    -webkit-appearance: none;
    appearance: none;
}

body.intra-doc-page .wpcf7 input[type="submit"]:hover,
body.intra-doc-page .wpcf7 button[type="submit"]:hover {
    background: var(--idoc-accent);
}

body.intra-doc-page .wpcf7 input[type="submit"]:active,
body.intra-doc-page .wpcf7 button[type="submit"]:active {
    transform: translateY(1px);
}

/* CF7 6.x — hidden field 래퍼 fieldset 가리기 (시각 콘텐츠 0인데 보더만 살아있음) */
body.intra-doc-page .wpcf7 .hidden-fields-container {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0;
    display: contents;
}

body.intra-doc-page .wpcf7 form > p {
    margin: 0 0 1.25rem;
}

body.intra-doc-page .wpcf7 form > p:last-child {
    margin-bottom: 0;
}

body.intra-doc-page .wpcf7 .wpcf7-not-valid-tip {
    color: var(--idoc-accent);
    font-size: .8125rem;
    margin-top: .375rem;
    display: block;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}

body.intra-doc-page .wpcf7 .wpcf7-response-output {
    margin: 1.25rem 0 0;
    padding: 1rem 1.25rem;
    border: none;
    border-left: 3px solid var(--idoc-soft);
    border-radius: var(--idoc-radius);
    background: #fff;
    font-size: .9375rem;
    line-height: 1.6;
    color: var(--idoc-text);
}

/* 빈 응답 박스 가리기 — 제출 결과 메시지가 없을 때 빈 카드처럼 보이는 잔재 정리.
 * form 안/바깥 둘 다 적용 (CF7 6.x 가 양쪽에 placeholder div 를 둠). */
body.intra-doc-page .wpcf7 .wpcf7-response-output:empty,
body.intra-doc-page .wpcf7-response-output:empty {
    display: none;
}

body.intra-doc-page .wpcf7 form.invalid .wpcf7-response-output,
body.intra-doc-page .wpcf7 form.unaccepted .wpcf7-response-output,
body.intra-doc-page .wpcf7 form.failed .wpcf7-response-output {
    border-left-color: var(--idoc-accent);
    background: var(--idoc-accent-soft);
}

body.intra-doc-page .wpcf7 form.sent .wpcf7-response-output {
    border-left-color: #0a7d31;
    background: #f1f9f3;
    color: #0a7d31;
}

body.intra-doc-page .wpcf7 form.spam .wpcf7-response-output {
    border-left-color: #f0a500;
    background: #fff7e6;
}

body.intra-doc-page .wpcf7 .wpcf7-spinner {
    margin: 0 .75rem 0 .75rem;
    vertical-align: middle;
}

/* Cloudflare Turnstile 위젯 — CF7 통합이 폼 맨 위에 주입하는 걸
 * flex order 로 submit 버튼 바로 위로 이동 */
body.intra-doc-page .wpcf7 form.wpcf7-form {
    display: flex;
    flex-direction: column;
}

body.intra-doc-page .wpcf7 form > .wpcf7-turnstile,
body.intra-doc-page .wpcf7 form > .cf-turnstile {
    order: 90;
    margin: 1.5rem 0 0;
    align-self: flex-start;
}

body.intra-doc-page .wpcf7 form > p:has(input[type="submit"]),
body.intra-doc-page .wpcf7 form > p:has(button[type="submit"]),
body.intra-doc-page .wpcf7 form > p:last-of-type {
    order: 100;
    margin-top: 1rem;
}

body.intra-doc-page .wpcf7 form > .wpcf7-response-output {
    order: 110;
}

/* reCAPTCHA badge — cf7sr 폐기로 더는 안 쓰지만 향후 다른 통합 호환 */
body.intra-doc-page .wpcf7 .g-recaptcha {
    margin: .75rem 0 0;
}

@media (max-width: 600px) {
    body.intra-doc-page .wpcf7 {
        padding: 1.5rem 1.125rem;
    }

    body.intra-doc-page .wpcf7 input[type="submit"],
    body.intra-doc-page .wpcf7 button[type="submit"] {
        width: 100%;
        text-align: center;
    }
}

/* ============================================================
 * (10) 링크 강조 — 본문 내 inline link 톤 보정
 * ============================================================ */
body.intra-doc-page .privacy-group a:not(.button):not([class*="hd-"]) {
    color: var(--idoc-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

body.intra-doc-page .privacy-group a:not(.button):not([class*="hd-"]):hover {
    color: var(--idoc-accent-hover);
}

/* ============================================================
 * 폼·접근성 — focus-visible 통일
 * ============================================================ */
body.intra-doc-page :focus-visible {
    outline: 2px solid var(--idoc-accent);
    outline-offset: 2px;
    border-radius: 2px;
}

/* clearfix 잔재 정리 */
body.intra-doc-page .clearfix::after {
    content: '';
    display: table;
    clear: both;
}

/* ============================================================
 * 모바일 — 600px 이하
 * ============================================================ */
@media (max-width: 600px) {
    :root {
        --idoc-content-pad: 1rem;
    }

    body.intra-doc-page .td-main-content-wrap {
        padding-top: 1.25rem;
        padding-bottom: 2.5rem;
    }

    body.intra-doc-page .td-page-header {
        padding: .5rem 0 1.25rem;
        margin: 0 0 1.75rem;
    }

    body.intra-doc-page .td-page-header::before {
        font-size: .625rem;
        margin-bottom: .625rem;
    }

    body.intra-doc-page .td-page-title {
        font-size: 1.625rem;
    }

    body.intra-doc-page .td-page-content {
        font-size: .9375rem;
        line-height: 1.8;
    }

    body.intra-doc-page.page-about .td-page-header,
    body.intra-doc-page.page-greeting .td-page-header {
        margin-bottom: 1rem;
    }

    /* 히어로 — 모바일에서 짧게 */
    .idoc-about .idoc-hero,
    .idoc-greeting .idoc-greeting-hero {
        padding: 2.5rem 1.125rem 2.75rem;
        margin: 0 0 2.25rem;
        border-radius: var(--idoc-radius);
    }

    .idoc-about .idoc-hero::before,
    .idoc-greeting .idoc-greeting-hero::before {
        top: 1rem;
        width: 32px;
    }

    .idoc-hero-title {
        font-size: 1.875rem;
    }

    body.intra-doc-page .td-page-content .idoc-hero-lead {
        font-size: 1rem;
    }

    .idoc-greeting-title {
        font-size: 1.5rem;
    }

    .idoc-greeting-sub {
        font-size: .9375rem;
    }

    .idoc-greeting-body {
        font-size: 1rem;
        line-height: 1.85;
    }

    .idoc-greeting-lead {
        font-size: 1rem;
    }

    .idoc-dropcap {
        font-size: 2.75rem;
    }

    /* 섹션 헤딩 */
    .idoc-section-title {
        font-size: 1.25rem;
        gap: .625rem;
    }

    .idoc-section-title .idoc-num {
        font-size: 1rem;
    }

    body.intra-doc-page .privacy-group-title {
        font-size: 1.125rem;
    }

    /* 카드 그리드 — 모바일 2열 유지하되 간격 좁힘 */
    .idoc-coverage {
        gap: .5rem;
    }

    .idoc-coverage a {
        padding: .875rem .5rem;
        font-size: .875rem;
    }

    /* 목차 */
    body.intra-doc-page .privacy-list .row {
        padding: 1.125rem;
    }

    body.intra-doc-page .privacy-list-groups li a {
        padding: .5rem .625rem;
        font-size: .875rem;
    }

    /* 표 → stack */
    body.intra-doc-page .td-page-content table.hover,
    body.intra-doc-page .td-page-content table.unstriped,
    body.intra-doc-page .table-responsive table,
    .idoc-info-table {
        border-top: 2px solid var(--idoc-ink);
        border-bottom: 2px solid var(--idoc-ink);
    }

    body.intra-doc-page .td-page-content table.hover thead,
    body.intra-doc-page .td-page-content table.unstriped thead,
    body.intra-doc-page .table-responsive table thead,
    .idoc-info-table thead {
        display: none;
    }

    body.intra-doc-page .td-page-content table.hover,
    body.intra-doc-page .td-page-content table.hover tbody,
    body.intra-doc-page .td-page-content table.hover tr,
    body.intra-doc-page .td-page-content table.unstriped,
    body.intra-doc-page .td-page-content table.unstriped tbody,
    body.intra-doc-page .td-page-content table.unstriped tr,
    body.intra-doc-page .table-responsive,
    body.intra-doc-page .table-responsive table,
    body.intra-doc-page .table-responsive tbody,
    body.intra-doc-page .table-responsive tr,
    .idoc-info-table,
    .idoc-info-table tbody,
    .idoc-info-table tr {
        display: block;
        width: 100%;
    }

    body.intra-doc-page .td-page-content table.hover tr,
    body.intra-doc-page .td-page-content table.unstriped tr,
    body.intra-doc-page .table-responsive tr,
    .idoc-info-table tr {
        padding: .875rem 0;
        border-bottom: 1px solid var(--idoc-border);
    }

    body.intra-doc-page .td-page-content table.hover tr:last-child,
    body.intra-doc-page .td-page-content table.unstriped tr:last-child,
    body.intra-doc-page .table-responsive tr:last-child,
    .idoc-info-table tr:last-child {
        border-bottom: none;
    }

    body.intra-doc-page .td-page-content table.hover th,
    body.intra-doc-page .td-page-content table.hover td,
    body.intra-doc-page .td-page-content table.unstriped th,
    body.intra-doc-page .td-page-content table.unstriped td,
    body.intra-doc-page .table-responsive th,
    body.intra-doc-page .table-responsive td,
    .idoc-info-table th,
    .idoc-info-table td {
        display: block;
        width: 100%;
        padding: .25rem 0;
        border-bottom: none;
    }

    body.intra-doc-page .td-page-content table.hover th,
    body.intra-doc-page .td-page-content table.unstriped th,
    body.intra-doc-page .table-responsive th,
    .idoc-info-table th {
        padding: 0 0 .25rem;
        font-size: .75rem;
        color: var(--idoc-soft);
    }

    body.intra-doc-page #com-map .group {
        flex-direction: column;
        gap: .5rem;
    }
}

/* ============================================================
 * 데스크탑 — 900px 이상
 * ============================================================ */
@media (min-width: 900px) {
    :root {
        --idoc-content-max: 860px;
        --idoc-content-pad: 1.5rem;
    }

    body.intra-doc-page .td-main-content-wrap {
        padding-top: 2.5rem;
    }

    body.intra-doc-page .td-page-content {
        font-size: 1.0625rem;
    }

    body.intra-doc-page .td-page-header {
        padding: 1.25rem 0 2.25rem;
        margin: 0 0 3.5rem;
    }

    body.intra-doc-page .td-page-title {
        font-size: 2.5rem;
    }

    .idoc-hero-title {
        font-size: 3.25rem;
    }

    body.intra-doc-page .td-page-content .idoc-hero-lead {
        font-size: 1.1875rem;
    }

    .idoc-greeting-title {
        font-size: 2.375rem;
    }

    .idoc-section-title {
        font-size: 1.625rem;
    }

    body.intra-doc-page .privacy-group-title {
        font-size: 1.5rem;
    }

    /* coverage 4열 */
    .idoc-coverage {
        grid-template-columns: repeat(4, 1fr);
    }

    /* principles 3열 */
    .idoc-principles {
        grid-template-columns: repeat(3, 1fr);
    }

    /* 목차 2열 */
    body.intra-doc-page .privacy-list .row {
        grid-template-columns: 1fr 1fr;
    }
}

/* ============================================================
 * 광폭 데스크탑 — 1200px 이상
 * ============================================================ */
@media (min-width: 1200px) {
    :root {
        --idoc-content-max: 920px;
        --idoc-content-pad: 1.75rem;
    }

    .idoc-about .idoc-hero,
    .idoc-greeting .idoc-greeting-hero {
        padding: 4.5rem 2rem 5rem;
    }

    .idoc-about .idoc-hero > *,
    .idoc-greeting .idoc-greeting-hero > * {
        max-width: 680px;
    }

    .idoc-hero-title {
        font-size: 3.25rem;
    }
}

/* ============================================================
 * 모션 감소 선호 — 트랜지션 제거
 * ============================================================ */
@media (prefers-reduced-motion: reduce) {
    body.intra-doc-page *,
    body.intra-doc-page *::before,
    body.intra-doc-page *::after {
        transition: none !important;
        animation: none !important;
    }

    .idoc-coverage a:hover {
        transform: none;
    }
}

/* ============================================================
 * 인쇄 — 약관·정책은 인쇄 수요 있음
 * ============================================================ */
@media print {
    body.intra-doc-page .td-page-header::before,
    body.intra-doc-page .privacy-list,
    .idoc-eyebrow,
    .idoc-about .idoc-hero::before,
    .idoc-greeting .idoc-greeting-hero::before {
        display: none !important;
    }

    body.intra-doc-page .td-page-content {
        font-size: 11pt;
        line-height: 1.6;
        color: #000;
    }

    .idoc-about .idoc-hero,
    .idoc-greeting .idoc-greeting-hero {
        position: static;
        width: auto;
        margin: 0 0 1rem;
        padding: 0;
        background: none;
        border: none;
    }

    body.intra-doc-page .privacy-group {
        page-break-inside: avoid;
        border-top: 1px solid #000;
    }

    body.intra-doc-page a {
        color: #000;
        text-decoration: none;
    }
}
