@charset "UTF-8";
/* ============================================
   CSS 변수 및 리셋
   ============================================ */
:root {
    --color-primary:    #005CFF;
    --color-accent:     #22CC6D;
    --color-text:       #1B1B1B;
    --color-text-muted: #7A7A7A;
    --color-border:     #e4e7ec;
    --color-bg-light:   #f8f9fc;
    --color-white:      #ffffff;
    --font-main:        'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --max-width:        1160px;
    --radius:           8px;
    --shadow-sm:        0 1px 4px rgba(0,0,0,.08);
    --shadow-md:        0 4px 16px rgba(0,0,0,.10);
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-main);
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text);
    background-image:
        linear-gradient(rgba(131,114,58,.4), rgba(131,114,58,.4)),
        url('../images/background_pattern.jpg');
    background-repeat: repeat;
    background-size: 17% auto;
    background-color: #c4b57a;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

ul, ol { list-style: none; }

/* ============================================
   레이아웃 공통
   ============================================ */
.container {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 20px;
}

.section { padding: 0; }

/* 섹션 내부 컨테이너에 흰색 배경 적용 → 양쪽에 배경 패턴 노출 */
.section > .container {
    background: var(--color-white);
    padding: 56px 20px;
}

.section-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 12px;
    line-height: 1.35;
}

.section-subtitle {
    font-size: 1rem;
    color: var(--color-text-muted);
    margin-bottom: 40px;
}

/* ============================================
   헤더
   ============================================ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #FFF7D7;
    border-bottom: 1px solid #e8dfc8;
    box-shadow: var(--shadow-sm);
}

.site-header .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 68px;
}

.site-logo img {
    height: 44px;
    width: auto;
}

.site-logo .logo-text {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--color-primary);
}

/* 내비게이션 */
.site-nav ul {
    display: flex;
    gap: 4px;
    align-items: center;
}

.site-nav a {
    display: block;
    padding: 7px 16px;
    font-size: .95rem;
    font-weight: 600;
    color: #181818;
    border-radius: var(--radius);
    transition: color .18s;
}

.site-nav a:hover,
.site-nav a.active {
    background: transparent;
    color: #FF9C00;
}

/* 햄버거 메뉴 (모바일) */
.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    flex-direction: column;
    gap: 5px;
}

.menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-text);
    border-radius: 2px;
    transition: transform .25s, opacity .25s;
}

/* ============================================
   히어로 섹션
   ============================================ */
.hero {
    text-align: center;
}

.hero .container {
    background: var(--color-white);
    padding: 24px 20px 48px;
}

.hero-banner {
    width: 70%;
    margin: 0 auto 20px;
    overflow: hidden;
}

.hero-banner img {
    width: 100%;
    height: auto;
    display: block;
}

.hero h1 {
    font-size: 1.31rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 20px auto 20px;
    color: #003594;
    max-width: 760px;
    padding: 0 20px;
}

.hero-buttons {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
    padding: 0 20px;
}

/* ============================================
   버튼
   ============================================ */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    border-radius: 50px;
    font-size: 1.0625rem;
    font-weight: 500;
    cursor: pointer;
    transition: transform .18s, box-shadow .18s, opacity .18s;
    border: 1px solid transparent;
    text-decoration: none;
}

.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn:active { transform: translateY(0); }

.btn-primary {
    background-image: linear-gradient(90deg, #22CC6D 0%, #078B8D 100%);
    color: #ffffff;
    border-color: #2CFFC0;
}

/* ============================================
   안전 접속 체크리스트
   ============================================ */
.checklist-content {
    max-width: 760px;
    margin-top: 24px;
}

.checklist-content > p {
    font-size: .97rem;
    color: var(--color-text-muted);
    line-height: 1.8;
    margin-bottom: 12px;
}

.check-row {
    margin-top: 20px !important;
    margin-bottom: 6px !important;
    font-size: 1rem !important;
    color: var(--color-text) !important;
}

.check-row strong {
    color: var(--color-primary);
}

.checklist-content ul {
    list-style: disc;
    padding-left: 22px;
    margin-bottom: 4px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.checklist-content ul li {
    font-size: .92rem;
    color: var(--color-text-muted);
    line-height: 1.7;
}

.checklist-content code {
    font-family: monospace;
    background: #f0f4ff;
    padding: 1px 5px;
    border-radius: 4px;
    font-size: .85rem;
}

/* ============================================
   접속 불가 안내 섹션 (이미지 + 텍스트)
   ============================================ */
.why-section .section-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
}

.why-image {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

.why-image img {
    width: 100%;
    border-radius: 12px;
}

/* why-content 내부의 H2 다중 스타일 */
.why-content h2 {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--color-primary);
    margin: 28px 0 12px;
    line-height: 1.35;
}

.why-content h2:first-child { margin-top: 0; }

.why-content p {
    font-size: .97rem;
    color: var(--color-text-muted);
    line-height: 1.85;
    margin-bottom: 10px;
}

.why-list { margin-top: 16px; display: flex; flex-direction: column; gap: 14px; }

.why-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: .95rem;
    color: var(--color-text-muted);
}

.why-list li::before {
    content: '';
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-accent);
    margin-top: 9px;
}

/* ============================================
   FAQ 아코디언
   ============================================ */
.faq-list { max-width: 760px; margin: 40px auto 0; display: flex; flex-direction: column; gap: 12px; }

.faq-item {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
}

.faq-question {
    width: 100%;
    background: none;
    border: none;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: .98rem;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
    text-align: left;
    transition: background .15s;
}

.faq-question:hover { background: var(--color-bg-light); }

.faq-question[aria-expanded="true"] { color: var(--color-primary); }

.faq-arrow {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-bg-light);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s, background .18s;
    font-style: normal;
    font-size: .75rem;
    color: var(--color-text-muted);
}

.faq-question[aria-expanded="true"] .faq-arrow {
    transform: rotate(180deg);
    background: #e8f0fe;
    color: var(--color-primary);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease, padding .3s ease;
}

.faq-answer.open { max-height: 400px; }

.faq-answer-inner {
    padding: 0 24px 20px;
    font-size: .92rem;
    color: var(--color-text-muted);
    line-height: 1.8;
    border-top: 1px solid var(--color-border);
    padding-top: 16px;
}

/* ============================================
   플랫폼 특징
   ============================================ */
.features-content {
    max-width: 760px;
    margin-top: 20px;
}

.features-content > p {
    font-size: .97rem;
    color: var(--color-text-muted);
    line-height: 1.85;
    margin-bottom: 16px;
}

.features-content ul {
    list-style: disc;
    padding-left: 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 0;
}

.features-content ul li {
    font-size: .95rem;
    color: var(--color-text-muted);
    line-height: 1.7;
}

.features-content ul li strong {
    color: var(--color-text);
}

.features-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 28px 0;
}

.features-update-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 14px;
}

/* ============================================
   최신 포스트 그리드
   ============================================ */
.posts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
    margin-top: 40px;
}

.post-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow .22s, transform .22s;
    display: flex;
    flex-direction: column;
}

.post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }

.post-thumb {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: #e4e7ec;
}

.post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s;
}

.post-card:hover .post-thumb img { transform: scale(1.04); }

.post-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }

.post-category {
    font-size: .77rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-accent);
    margin-bottom: 8px;
}

.post-title {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 10px;
    line-height: 1.45;
    flex: 1;
}

.post-excerpt {
    font-size: .87rem;
    color: var(--color-text-muted);
    line-height: 1.65;
    margin-bottom: 16px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.post-read-more {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: .87rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-top: auto;
}

.post-read-more:hover { color: var(--color-accent); }

/* ============================================
   플랫폼 소개 섹션
   ============================================ */
.platform-section p {
    font-size: .97rem;
    color: var(--color-text-muted);
    line-height: 1.85;
    max-width: 760px;
    margin-bottom: 16px;
}

/* ============================================
   아티클 페이지 (게시글)
   ============================================ */
.post-category-badge {
    display: inline-block;
    background: #f0f4ff;
    border: 1px solid #c8d8ff;
    border-radius: 20px;
    padding: 3px 14px;
    font-size: .8rem;
    font-weight: 600;
    margin-bottom: 14px;
    color: var(--color-primary);
}

.article-title {
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1.35;
    color: var(--color-text);
    margin-bottom: 36px;
    text-align: center;
}

.page-content {
    max-width: 760px;
    margin: 0 auto;
}

.page-content h2 {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--color-primary);
    margin: 36px 0 14px;
}

.page-content p {
    font-size: .97rem;
    color: var(--color-text-muted);
    line-height: 1.85;
    margin-bottom: 18px;
}

.page-content strong { color: var(--color-text); }

.page-content ul {
    list-style: disc;
    padding-left: 22px;
    margin-bottom: 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-content ul li {
    font-size: .95rem;
    color: var(--color-text-muted);
    line-height: 1.7;
}

.article-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 32px 0;
}

.article-image {
    margin: 24px 0 32px;
    text-align: center;
}

.article-image img {
    max-width: 380px;
    border-radius: 10px;
    box-shadow: var(--shadow-md);
    margin: 0 auto;
}

/* 추천 카드 (총평 등) */
.recommend-box {
    background: var(--color-bg-light);
    border-left: 4px solid var(--color-accent);
    border-radius: 0 var(--radius) var(--radius) 0;
    padding: 20px 24px;
    margin: 24px 0;
}

.recommend-box p {
    margin: 0;
    font-size: .95rem;
    color: var(--color-text);
    line-height: 1.8;
}

/* 관련 포스트 */
.related-posts { padding: 0; }

.related-posts > .container {
    background: var(--color-white);
    padding: 48px 20px 64px;
}

.related-posts .section-title { text-align: center; margin-bottom: 32px; }

/* ============================================
   연락처 페이지
   ============================================ */
.contact-card {
    max-width: 480px;
    margin: 0 auto;
    text-align: center;
}

.contact-card h1 {
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 14px;
}

.contact-card > p {
    font-size: .95rem;
    color: var(--color-text-muted);
    margin-bottom: 28px;
    line-height: 1.8;
}

.contact-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 32px 0;
}

.contact-card h2 {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 16px;
}

.contact-list {
    list-style: disc;
    padding-left: 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: left;
    margin-bottom: 0;
}

.contact-list li {
    font-size: .95rem;
    color: var(--color-text-muted);
    line-height: 1.7;
}

.contact-faq {
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: left;
    margin-top: 4px;
}

.contact-faq-item {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 18px 22px;
}

.contact-faq-item strong {
    display: block;
    font-size: .95rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 8px;
}

.contact-faq-item p {
    font-size: .9rem;
    color: var(--color-text-muted);
    line-height: 1.75;
    margin: 0;
}


/* ============================================
   푸터
   ============================================ */
.site-footer {
    background: #FFD457;
    color: rgba(0,0,0,.6);
    padding: 40px 0;
}

.site-footer .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}

.footer-logo img { height: 38px; width: auto; }
.footer-logo .logo-text { font-size: 1.05rem; font-weight: 700; color: rgba(0,0,0,.8); }

.footer-copy {
    font-size: .83rem;
    color: rgba(0,0,0,.5);
}

/* ============================================
   댓글 폼 (Leave a Reply)
   ============================================ */
.comments-area {
    margin-top: 0;
}

.comments-area .container {
    background: var(--color-white);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    padding: 40px 48px 52px;
    max-width: var(--max-width);
    margin: 0 auto;
}

.comment-respond { max-width: 680px; }

.comment-reply-title {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 20px;
}

.comment-notes {
    font-size: .88rem;
    color: var(--color-text-muted);
    margin-bottom: 24px;
}

.comment-notes .required { color: #e53e3e; }

.comment-form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 18px;
}

.comment-form-field label {
    font-size: .9rem;
    font-weight: 600;
    color: var(--color-text);
}

.comment-form-field label .required { color: #e53e3e; }

.comment-form-field textarea,
.comment-form-field input[type="text"],
.comment-form-field input[type="email"],
.comment-form-field input[type="url"] {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-family: var(--font-main);
    font-size: .95rem;
    color: var(--color-text);
    background: var(--color-white);
    transition: border-color .18s;
    outline: none;
}

.comment-form-field textarea:focus,
.comment-form-field input:focus {
    border-color: var(--color-primary);
}

.comment-form-field textarea { resize: vertical; min-height: 140px; }

.comment-form-cookies {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 24px;
    font-size: .85rem;
    color: var(--color-text-muted);
}

.comment-form-cookies input[type="checkbox"] {
    margin-top: 3px;
    flex-shrink: 0;
    accent-color: var(--color-primary);
}

.form-submit input[type="submit"] {
    background: var(--color-primary);
    color: #fff;
    border: none;
    padding: 12px 32px;
    border-radius: var(--radius);
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;
    transition: opacity .18s, transform .18s;
    font-family: var(--font-main);
}

.form-submit input[type="submit"]:hover {
    opacity: .88;
    transform: translateY(-2px);
}

/* ============================================
   반응형 (768px 이하)
   ============================================ */
@media (max-width: 768px) {
    .menu-toggle { display: flex; }

    .site-nav {
        display: none;
        position: absolute;
        top: 68px;
        left: 0;
        right: 0;
        background: #FFF7D7;
        border-bottom: 1px solid #e8dfc8;
        padding: 12px 20px 20px;
        box-shadow: var(--shadow-md);
    }

    .site-nav.open { display: block; }

    .site-nav ul { flex-direction: column; gap: 2px; }

    .site-nav a { padding: 12px 16px; }

    .hero h1 { font-size: 1.15rem; }

    .why-section .section-inner { grid-template-columns: 1fr; gap: 32px; }
    .why-image { order: -1; }

    .section > .container { padding: 40px 20px; }
    .section-title { font-size: 1.45rem; }

    .article-title { font-size: 1.4rem; }

    .site-footer .container { flex-direction: column; text-align: center; }

    .contact-card { max-width: 100%; }
}

@media (max-width: 480px) {
    .hero h1 { font-size: 1.05rem; }
    .hero-buttons { flex-direction: column; align-items: center; }
    .btn { width: 100%; justify-content: center; max-width: 300px; }
    .posts-grid { grid-template-columns: 1fr; }
}
