/* 관리자 키 컬러는 theme.css에서만 갱신한다. 이전 장기 캐시가 남은 URL과
   분리하고, 새 URL에는 서버의 재검증 캐시 정책을 적용한다. */
@import url('./theme.css?v=20260909');

:root {
    --bg-color: #090d16;
    --card-bg: #121824;
    --text-primary: #f3f4f6;
    --text-secondary: #9ca3af;
    --accent-gradient: linear-gradient(135deg, var(--accent-hover) 0%, var(--accent-deep) 100%);
    --border-color: rgba(var(--accent-hover-rgb), 0.35);
    /* 제목(히어로/섹션 타이틀) 전용 폰트. 기본값은 시스템 기본 서체(현재와 동일한
       모양)이고, ADMIN/font/index.php에서 폰트를 고르면 해당 페이지 <head>에
       삽입되는 @font-face 블록이 이 변수만 덮어써서 웹폰트로 바꾼다. */
    --heading-font: 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
}

/* ADMIN-FONT:START (ADMIN/font/index.php가 자동으로 관리 — 직접 수정하지 말 것) */
@font-face {
    font-family: 'KimJeongcheolMyoungjo';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/KimjungchulMyungjo-Light.woff2') format('woff2');
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: 'KimJeongcheolMyoungjo';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/KimjungchulMyungjo-Regular.woff2') format('woff2');
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'KimJeongcheolMyoungjo';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/KimjungchulMyungjo-Bold.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}
:root { --heading-font: 'KimJeongcheolMyoungjo', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif; }
/* ADMIN-FONT:END */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--bg-color);
    color: var(--text-primary);
    font-family: 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* 공통 헤더 */
.common-header {
    background-color: #0e1422;
    border-bottom: 1px solid var(--border-color);
    padding: 15px 20px;
    position: sticky;
    top: 0;
    z-index: 100;
}

.header-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1.5fr;
    column-gap: 24px;
    align-items: center;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 15px;
    justify-content: flex-start;
}

.back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: bold;
    padding: 8px 16px;
    border-radius: 8px;
    border: 0.5px solid var(--border-color);
    background-color: var(--card-bg);
    transition: all 0.2s ease;
}

.back-btn:hover {
    color: #ffffff;
    border-color: var(--accent);
    background-color: rgba(var(--accent-hover-rgb), 0.1);
}

.site-logo-link {
    display: inline-flex;
    align-items: center;
    line-height: 0;
    flex: 0 0 auto;
}

.site-logo-img {
    height: 46px;
    width: auto;
    max-width: none;
    flex: 0 0 auto;
    object-fit: contain;
    /* 전역 img 규칙(테두리/그림자/여백)이 로고에도 걸려 배경 위에 흰 박스처럼
       떠 보였다. 헤더 배경과 자연스럽게 어울리도록 여기서 모두 걷어낸다. */
    border: none;
    border-radius: 0;
    box-shadow: none;
    margin-top: 0;
    /* 원본 로고는 남색 텍스트라 다크 모드 배경에서는 거의 안 보인다.
       brightness(0)로 완전히 검게 만든 뒤 invert(1)로 흰색으로 뒤집어서
       다크 배경에서도 또렷하게 보이게 한다. 라이트 모드에서는 원본 남색 그대로. */
    filter: brightness(0) invert(1);
    transition: filter 0.2s ease;
}

/* 로고 옆 "지금 관리도구 화면입니다" 배지 — 실수로 공개 화면으로 착각하지 않도록 눈에 띄게 */
.admin-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 20px;
    background-color: #ef4444;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 2px 8px -1px rgba(239, 68, 68, 0.55);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.admin-badge:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px -1px rgba(239, 68, 68, 0.65);
}

.admin-badge i {
    font-size: 0.75rem;
}

/* 메인 콘텐츠 영역 */
.common-main {
    flex: 1;
    padding: 50px 20px;
    display: flex;
    justify-content: center;
}

.content-wrapper {
    max-width: 900px;
    width: 100%;
    background-color: var(--card-bg);
    border: 0.5px solid var(--border-color);
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4);
    text-align: center;
}

/* 개별 페이지들은 각자 <style>에서 .content-wrapper h1의 font-size/색상 등을
   따로 정의하지만 font-family는 지정하지 않으므로, ADMIN/font/index.php가
   바꾸는 --heading-font가 여기서 전 페이지 타이틀에 공통 적용된다. */
.content-wrapper h1 {
    font-family: var(--heading-font);
}

/* 공통 푸터 */
.common-footer {
    background-color: #080c14;
    border-top: 1px solid var(--border-color);
    padding: 30px 20px;
    text-align: center;
    color: var(--text-secondary);
}

.footer-container p {
    font-size: 0.85rem;
    margin-bottom: 6px;
}

.footer-sub {
    font-size: 0.75rem;
    opacity: 0.6;
}

/* 구서버 푸터(주소/전화/고유번호/단체명/대표자/저작권 6줄 + SNS 아이콘 3개)를
   아이폰 폭에서도 3줄로 압축해 보여준다. 아이콘은 루시드(Lucide) 라인 아이콘. */
.footer-icons {
    display: flex;
    justify-content: center;
    gap: 18px;
    margin-bottom: 16px;
}

.footer-icon-link {
    display: inline-flex;
    color: var(--text-secondary);
    transition: color 0.2s ease;
}

.footer-icon-link:hover {
    color: var(--accent);
}

.footer-lines {
    font-size: 0.78rem;
    line-height: 1.9;
    color: var(--text-secondary);
}

.footer-lines a {
    color: inherit;
    text-decoration: underline;
}

.footer-lines a:hover {
    color: var(--accent);
}

@media (max-width: 480px) {
    .footer-lines {
        font-size: 0.7rem;
    }
}

/* 상단 제목 위에 표시하는 경로 표시(예: "우리의 활동 › 선교센터 › 열린미사").
   MISSIONCENTER처럼 여러 하위 페이지를 가진 허브형 페이지에서, 진입 경로가 헷갈리지
   않도록 하위 페이지 제목 위에 붙인다. */
.breadcrumb {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 0.85rem;
    color: var(--text-secondary);
    margin-bottom: 10px;
}

.breadcrumb-link {
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.2s ease;
}

.breadcrumb-link:hover {
    color: var(--accent);
}

.breadcrumb-current {
    color: var(--text-primary);
    font-weight: 600;
}

.breadcrumb-sep {
    opacity: 0.5;
}

/* 새소식 카드 공통 컴포넌트 (원래 NEW/index.html 홈페이지 "골롬반 새소식" 위젯 전용이었으나,
   같은 카드 스타일을 다른 페이지(예: ART/index.html의 분류별 새소식)에서도 재사용하도록
   공통 CSS로 분리했다. 새로 만드는 카드 UI는 전부 이 스타일을 따른다. */
.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.news-card {
    display: block;
    background-color: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    transition: all 0.25s ease;
}

.news-card:hover {
    transform: translateY(-5px);
    border-color: var(--accent);
    box-shadow: 0 14px 22px -8px rgba(0, 0, 0, 0.35);
}

.news-card-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    background-color: #0d131f;
    overflow: hidden;
}

.news-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.news-card-body {
    padding: 16px;
    text-align: left;
}

.news-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    background-color: var(--accent);
    color: #ffffff;
    margin-bottom: 8px;
}

.news-pin-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    background-color: rgba(219, 39, 119, 0.15);
    color: #f472b6;
    margin-bottom: 8px;
    margin-right: 6px;
}

.news-card-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.9em;
}

.news-card-date {
    display: block;
    margin-top: 10px;
    font-size: 0.78rem;
    color: var(--text-secondary);
}

.news-empty {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--text-secondary);
    padding: 40px 0;
    font-size: 0.9rem;
}

@media (max-width: 1024px) {
    .news-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .news-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }
}

@media (max-width: 480px) {
    .news-grid {
        grid-template-columns: 1fr;
    }
}

/* 잡지 본문 스타일 재정의 */
h1 {
    font-size: 1.85rem;
    margin-bottom: 25px;
    color: #ffffff;
    font-weight: 700;
}

a.magazine-view-link {
    display: inline-block;
    color: #ffffff;
    background-color: var(--accent);
    padding: 12px 24px;
    border-radius: 30px;
    font-size: 1.05rem;
    font-weight: bold;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
    margin-bottom: 30px;
}

a.magazine-view-link:hover {
    background-color: var(--accent);
    transform: translateY(-2px);
}

/* 표지 이미지를 감싸는 링크는 같은 클래스를 재사용하지만 텍스트 버튼용
   두꺼운 배경/패딩(파란 알약 모양)을 그대로 물려받으면 이미지 둘레에
   거대한 파란 테두리처럼 보인다. 이미지를 감싼 경우엔 버튼 스타일을 걷어내고
   img 자체의 얇은 border만 남겨 표지 프레임처럼 보이게 한다. */
a.magazine-view-link:has(img) {
    background: none;
    padding: 0;
    border-radius: 8px;
}

a.magazine-view-link:has(img):hover {
    background: none;
    transform: none;
}

img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    border: 0.5px solid var(--border-color);
}

.magazine-pages img {
    display: block;
    margin: 20px auto;
    max-width: 800px;
}

@media (max-width: 768px) {
    .content-wrapper {
        padding: 20px;
    }
    h1 {
        font-size: 1.5rem;
    }
}

/* Light Mode overrides */
.light-mode {
    --bg-color: #f8fafc;
    --card-bg: #ffffff;
    --text-primary: #0f172a;
    --text-secondary: #475569;
    --border-color: rgba(15, 23, 42, 0.08);
}

.light-mode .common-header {
    background-color: #ffffff;
}

.light-mode .common-footer {
    background-color: #f1f5f9;
}

.light-mode .site-logo-img {
    /* 라이트 모드는 밝은 배경이라 원본 남색 로고가 그대로 잘 보인다 */
    filter: none;
}

.light-mode h1 {
    color: var(--text-primary);
}

.light-mode .back-btn:hover {
    color: var(--accent);
    background-color: rgba(var(--accent-rgb), 0.05);
}

/* 와이드 레이아웃 스타일 (1200px 리스트 화면 대응) */
.content-wrapper.wide {
    max-width: 1200px;
    background-color: transparent;
    border: none;
    box-shadow: none;
    padding: 20px 0;
}

/* 공통 GNB 스타일 (대분류 5개 + 드롭다운 서브메뉴, 2단계 구조) */
.common-gnb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.gnb-group {
    position: relative;
}

.gnb-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 700;
    font-family: inherit;
    padding: 8px 16px;
    border-radius: 20px;
    border: 1px solid transparent;
    background: none;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.gnb-trigger i {
    font-size: 0.7rem;
    transition: transform 0.2s ease;
}

.gnb-group:hover .gnb-trigger,
.gnb-group.open .gnb-trigger {
    color: var(--text-primary);
    background-color: rgba(255, 255, 255, 0.05);
    border-color: var(--border-color);
}

.gnb-group.open .gnb-trigger i {
    transform: rotate(180deg);
}

.gnb-trigger.active {
    color: #ffffff;
    background-color: var(--accent);
    border-color: var(--accent);
}

.light-mode .gnb-group:hover .gnb-trigger,
.light-mode .gnb-group.open .gnb-trigger {
    color: var(--text-primary);
    background-color: rgba(0, 0, 0, 0.03);
}

.light-mode .gnb-trigger.active {
    color: #ffffff;
    background-color: var(--accent);
}

/* 트리거와 드롭다운 사이 여백을 padding-top으로 잡아 hit-box에 포함시킨다.
   margin으로 띄우면 마우스가 그 사이 빈 공간을 지날 때 :hover가 끊겨
   패널이 닫혀버려서(PC에서 반드시 클릭해야만 열리는 것처럼 느껴짐),
   바깥 요소(.gnb-dropdown)는 빈틈 없이 트리거에 붙이고
   실제 카드 스타일은 안쪽(.gnb-dropdown-inner)에 준다. */
.gnb-dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 240px;
    padding-top: 10px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
    z-index: 200;
}

.gnb-group:hover .gnb-dropdown,
.gnb-group.open .gnb-dropdown {
    opacity: 1;
    pointer-events: auto;
}

.gnb-dropdown-inner {
    padding: 8px;
    background-color: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.35);
    transform: translateY(-6px);
    transition: transform 0.18s ease;
}

.gnb-group:hover .gnb-dropdown-inner,
.gnb-group.open .gnb-dropdown-inner {
    transform: translateY(0);
}

.gnb-subitem {
    display: block;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 500;
    padding: 10px 14px;
    border-radius: 10px;
    transition: all 0.15s ease;
}

.gnb-subitem:hover {
    color: var(--text-primary);
    background-color: rgba(var(--accent-rgb), 0.08);
}

.gnb-subitem.active {
    color: #ffffff;
    background-color: var(--accent);
    font-weight: 700;
}

/* 헤더 우측 및 테마 스위치 스타일 */
.header-right {
    display: flex;
    align-items: center;
    gap: 15px;
    justify-content: flex-end;
}

.theme-toggle-btn {
    background: none;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.95rem;
}

.theme-toggle-btn:hover {
    color: var(--text-primary);
    border-color: var(--text-primary);
    background-color: rgba(255, 255, 255, 0.05);
}

.light-mode .theme-toggle-btn:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.lang-toggle-btn {
    background: none;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    border-radius: 19px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.8rem;
    font-weight: 700;
}

.lang-toggle-btn:hover {
    color: var(--text-primary);
    border-color: var(--text-primary);
    background-color: rgba(255, 255, 255, 0.05);
}

.light-mode .lang-toggle-btn:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

/* 헤더 우측 [바로 후원하기] 버튼 (SNS 아이콘 바로 앞에 노출) */
.header-donate-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 12px;
    border-radius: 20px;
    background: var(--accent-gradient);
    color: #ffffff;
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 4px 12px -4px rgba(var(--accent-rgb), 0.55);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.header-donate-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px -6px rgba(var(--accent-rgb), 0.65);
}

.header-donate-btn i {
    font-size: 0.8rem;
    animation: header-donate-heartbeat 1.6s ease-in-out infinite;
}

@keyframes header-donate-heartbeat {
    0%, 100% { transform: scale(1); }
    15% { transform: scale(1.25); }
    30% { transform: scale(1); }
    45% { transform: scale(1.15); }
    60% { transform: scale(1); }
}

/* 헤더 우측 검색창 ([바로 후원하기]와 SNS 아이콘 사이에 노출) */
.header-search-form {
    display: flex;
    align-items: center;
}

.header-search-input {
    width: 120px;
    height: 34px;
    box-sizing: border-box;
    padding: 0 12px;
    margin: 0;
    border-radius: 20px 0 0 20px;
    border: 1px solid var(--border-color);
    border-right: none;
    background-color: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font-family: inherit;
    font-size: 0.82rem;
    line-height: normal;
    vertical-align: middle;
    transition: border-color 0.2s ease;
}

.header-search-input::placeholder {
    color: var(--text-secondary);
}

.header-search-input:focus {
    outline: none;
    border-color: var(--accent);
}

.header-search-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 34px;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    border-radius: 0 20px 20px 0;
    border: 1px solid var(--border-color);
    border-left: none;
    background-color: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font-family: inherit;
    font-size: 0.8rem;
    line-height: normal;
    cursor: pointer;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.header-search-btn:hover {
    color: var(--accent);
}

.header-search-form:focus-within .header-search-btn {
    border-color: var(--accent);
    color: var(--accent);
}

/* 모바일 전용 검색 아이콘 버튼(입력창 대신 노출, 검색 페이지로 이동) — 데스크톱에서는 숨김 */
.header-search-mobile-btn {
    display: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.85rem;
}

.header-search-mobile-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
}

/* 헤더 우측 SNS 아이콘 (푸터 .footer-icon-link와 동일한 링크 3개를 테마 버튼 앞에 재노출) */
.header-social-icons {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-right: 2px;
}

.header-social-link {
    display: inline-flex;
    color: var(--text-secondary);
    transition: color 0.2s ease;
}

.header-social-link:hover {
    color: var(--accent);
}

/* 햄버거 메뉴 버튼: 데스크톱에서는 숨기고 모바일(≤768px)에서만 노출 */
.gnb-toggle-btn {
    display: none;
}

/* 반응형 모바일 GNB 대응: 5개 대분류를 가로로 늘어놓던 방식(2줄로 어중간하게
   줄바꿈되는 문제)을 버리고, 햄버거 버튼으로 여닫는 세로 아코디언 메뉴로 전환 */
@media (max-width: 768px) {
    .header-container {
        display: flex;
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }

    .header-left {
        display: flex;
        justify-content: center;
        width: 100%;
        gap: 10px;
    }

    .site-logo-img {
        height: 36px;
        max-width: 100%;
    }

    .gnb-toggle-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 15px;
        left: 15px;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        border: 1px solid var(--border-color);
        background: none;
        color: var(--text-secondary);
        cursor: pointer;
        font-size: 1rem;
        transition: all 0.2s ease;
        z-index: 10;
    }

    .gnb-toggle-btn:hover {
        color: var(--text-primary);
        background-color: rgba(255, 255, 255, 0.05);
    }

    .light-mode .gnb-toggle-btn:hover {
        background-color: rgba(0, 0, 0, 0.03);
    }

    /* 기본은 접힌 상태. 햄버거 버튼 클릭 시 .common-header에 mobile-nav-open이
       붙으면서 세로로 펼쳐진다 (layout.js가 토글). */
    .common-gnb {
        display: none;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 4px;
    }

    .common-header.mobile-nav-open .common-gnb {
        display: flex;
    }

    .gnb-group {
        width: 100%;
    }

    .gnb-trigger {
        width: 100%;
        justify-content: space-between;
        font-size: 0.92rem;
        padding: 12px 16px;
    }

    .gnb-trigger i {
        margin-left: auto;
    }

    /* 데스크톱의 절대 위치 팝오버 대신, 트리거 바로 아래 제자리에서
       세로로 펼쳐지는 아코디언 패널로 전환 */
    .gnb-dropdown {
        position: static;
        transform: none;
        width: 100%;
        min-width: 0;
        max-width: none;
        padding-top: 0;
        opacity: 1;
        pointer-events: auto;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.25s ease;
    }

    .gnb-group.open .gnb-dropdown {
        max-height: 600px;
    }

    .gnb-dropdown-inner {
        width: 100%;
        max-width: none;
        transform: none;
        margin: 6px 0 4px;
    }

    .header-right {
        position: absolute;
        top: 15px;
        right: 15px;
    }

    /* 모바일에서는 헤더 공간이 좁아 SNS 아이콘은 숨기고 푸터 쪽만 노출한다 */
    .header-social-icons {
        display: none;
    }

    /* 모바일에서는 입력창 대신 아이콘 버튼만 노출 — 탭하면 검색 페이지로 이동해 거기서 입력한다 */
    .header-search-form {
        display: none;
    }

    .header-search-mobile-btn {
        display: inline-flex;
    }

    /* 모바일에서는 텍스트 없이 하트 아이콘만 남겨 좁은 공간에 맞춘다 */
    .header-donate-btn {
        padding: 8px 10px;
        border-radius: 50%;
    }

    .header-donate-btn .header-donate-label {
        display: none;
    }
}
