/* ═══════════════════════════════════════════════════════════════════════
   landing-v3plus.css — 랜딩(메인) 페이지 [새 버전 개선] 판
   ───────────────────────────────────────────────────────────────────────
   V3 의 컴팩트 5열 포털, 절제된 레이아웃 장점을 살리면서,
   기존의 "부드러운 화사함"을 극대화하고
   admin/theme_settings.php 의 모든 테마 색상(기본, 클래식, 부활절, 크리스마스, 별밤)과
   유기적으로 조화되도록 전면 개선.
   ═══════════════════════════════════════════════════════════════════════ */

body.v3plus-landing {
    /* 듀얼 악센트 컬러 (라인 1: 핑크/레드/메인, 라인 2: 골드/서브) */
    --lp-accent-1:       var(--line-color-1, #e5a99e);
    --lp-accent-2:       var(--line-color-2, #c5a880);
    --lp-accent-1-rgb:   var(--accent-pink-deep-rgb, 229, 169, 158);
    --lp-accent-2-rgb:   var(--accent-gold-rgb, 197, 168, 128);

    /* 버튼 및 상호작용 */
    --lp-btn:            var(--btn-color, #a8604f);
    --lp-btn-hover:      var(--btn-color-hover, #8e4f40);
    --lp-btn-text:       var(--btn-text-color, #ffffff);

    /* 텍스트 가독성 */
    --lp-ink:            var(--text-primary, #1e293b);
    --lp-ink-soft:       var(--text-secondary, #64748b);
    --lp-ink-faint:      rgba(var(--text-primary-rgb, 30, 41, 59), 0.55);

    /* 표면 및 카드 */
    --lp-bg:             var(--bg-primary, #fdfbf7);
    --lp-surface:        var(--bg-secondary, #ffffff);
    --lp-card-bg:        rgba(255, 255, 255, 0.94);
    --lp-surface-sub:    rgba(var(--lp-accent-2-rgb), 0.05);

    /* 그라데이션 */
    --lp-line-grad:      linear-gradient(90deg, var(--lp-accent-1), var(--lp-accent-2));

    /* 경계선 */
    --lp-line:           rgba(var(--lp-accent-2-rgb), 0.28);
    --lp-line-soft:      rgba(var(--lp-accent-2-rgb), 0.16);
    --lp-line-strong:    rgba(var(--lp-accent-2-rgb), 0.45);

    /* 소프트 섀도우 */
    --lp-shadow-rgb:     var(--shadow-color-rgb, var(--lp-accent-1-rgb));
    --lp-shadow-sm:      0 2px 8px rgba(var(--lp-shadow-rgb), 0.08);
    --lp-shadow:         0 6px 20px -3px rgba(var(--lp-shadow-rgb), 0.14), 0 2px 6px rgba(0, 0, 0, 0.04);
    --lp-shadow-lg:      0 12px 36px -6px rgba(var(--lp-shadow-rgb), 0.20), 0 4px 12px rgba(0, 0, 0, 0.06);

    --lp-r:              10px;
    --lp-r-lg:           14px;
    --lp-ease:           cubic-bezier(0.16, 1, 0.3, 1);

    /* 공용 토큰 브릿지 */
    --v3-warm: 120, 96, 62;
    --v3-gold: var(--lp-accent-2-rgb);
    --v3-accent: var(--lp-accent-1);
    --v3-ink: var(--lp-ink);
    --v3-ink-soft: var(--lp-ink-soft);
    --v3-surface: var(--lp-surface);
    --v3-surface-sub: var(--lp-surface-sub);
    --v3-line: var(--lp-line);
    --v3-line-soft: var(--lp-line-soft);

    color: var(--lp-ink);
    -webkit-font-smoothing: antialiased;

    /* 맑고 화사한 배경 앰비언트 글로우 */
    background-color: var(--lp-bg);
    background-image:
        radial-gradient(ellipse at 50% -40px, rgba(var(--lp-accent-1-rgb), 0.16) 0%, transparent 60%),
        radial-gradient(circle at 95% 260px, rgba(var(--lp-accent-2-rgb), 0.12) 0%, transparent 48%),
        radial-gradient(circle at 5% 480px, rgba(var(--lp-accent-1-rgb), 0.10) 0%, transparent 42%);
    background-attachment: fixed;
    background-repeat: no-repeat;
}

/* 다크 모드 (별이 빛나는 밤) */
.dark-mode body.v3plus-landing {
    --lp-ink:            #e8eef8;
    --lp-ink-soft:       #cbd5e1;
    --lp-ink-faint:      rgba(232, 238, 248, 0.55);
    --lp-btn:            #f0c040;
    --lp-btn-text:       #0c1225;
    --lp-card-bg:        rgba(19, 28, 53, 0.92);
    --lp-surface:        rgba(26, 38, 70, 0.95);
    --lp-surface-sub:    rgba(255, 255, 255, 0.04);
    --lp-line:           rgba(107, 155, 210, 0.35);
    --lp-line-soft:      rgba(107, 155, 210, 0.18);
    --lp-line-strong:    rgba(107, 155, 210, 0.60);
    --lp-shadow:         0 8px 30px rgba(0, 0, 0, 0.6);
    background-image:
        radial-gradient(ellipse at 50% 0%, rgba(var(--lp-accent-1-rgb), 0.20) 0%, transparent 65%),
        radial-gradient(circle at 90% 300px, rgba(var(--lp-accent-2-rgb), 0.16) 0%, transparent 50%);
}

/* ───────────────────────────────────────────────
   1. 히어로 섹션 — 부드러운 공간감과 시인성
   ─────────────────────────────────────────────── */
body.v3plus-landing .hero-v2 {
    min-height: clamp(330px, 44vh, 450px);
    padding: 2.5rem 1.5rem;
    align-items: flex-end;
    justify-content: flex-start;
    text-align: left;
    border-bottom: 1.5px solid var(--lp-line-soft);
    position: relative;
}
body.v3plus-landing .hero-v2-content {
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    position: relative;
    z-index: 2;
}
body.v3plus-landing .hero-v2-parish {
    font-size: 0.80rem;
    letter-spacing: 0.14em;
    opacity: 0.9;
    margin-bottom: 0.5rem;
    font-weight: 600;
}
body.v3plus-landing .hero-v2 h1 {
    font-size: clamp(1.55rem, 1.15rem + 2vw, 2.4rem);
    line-height: 1.28;
    letter-spacing: -0.035em;
    margin-bottom: 0.5rem;
    font-family: 'Noto Serif KR', serif;
}
body.v3plus-landing .hero-v2-desc {
    font-size: 0.875rem;
    line-height: 1.65;
    max-width: 58ch;
    margin-left: 0;
    margin-right: 0;
    opacity: 0.92;
}

/* 다음 미사 라이브 칩 */
body.v3plus-landing .hero-mass-chip {
    border-radius: 9px;
    padding: 0.52rem 0.95rem;
    margin-top: 0.95rem;
    background: rgba(20, 20, 24, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.32);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
body.v3plus-landing .hero-scroll-cue { display: none; }

/* ───────────────────────────────────────────────
   2. 빠른 링크 — 화사한 듀얼 액센트 글래스 카드
   ─────────────────────────────────────────────── */
body.v3plus-landing .quick-links-v2 {
    max-width: 1100px;
    margin: -1.8rem auto 1.5rem;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 0.85rem;
    position: relative;
    z-index: 10;
}
body.v3plus-landing .quick-card-v2 {
    max-width: none;
    min-width: 0;
    padding: 1rem 1.2rem;
    gap: 0.9rem;
    border: 1.2px solid var(--lp-line);
    border-radius: var(--lp-r-lg);
    background: var(--lp-card-bg);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--lp-shadow);
    transition: all 0.22s var(--lp-ease);
    position: relative;
    overflow: hidden;
}
body.v3plus-landing .quick-card-v2::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3.5px;
    background: var(--lp-line-grad);
    opacity: 0.85;
    transition: opacity 0.2s ease;
}
body.v3plus-landing .quick-card-v2:hover {
    transform: translateY(-2.5px);
    border-color: var(--lp-accent-1);
    box-shadow: var(--lp-shadow-lg);
}
body.v3plus-landing .quick-card-v2:hover::before { opacity: 1; }

body.v3plus-landing .quick-icon-v2 {
    width: 44px; height: 44px;
    border-radius: 12px;
    font-size: 1.3rem;
    background: linear-gradient(135deg, rgba(var(--lp-accent-1-rgb), 0.15), rgba(var(--lp-accent-2-rgb), 0.15));
    border: 1px solid rgba(var(--lp-accent-2-rgb), 0.35);
    box-shadow: var(--lp-shadow-sm);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
body.v3plus-landing .quick-card-v2:hover .quick-icon-v2 {
    background: linear-gradient(135deg, rgba(var(--lp-accent-1-rgb), 0.25), rgba(var(--lp-accent-2-rgb), 0.25));
    transform: scale(1.04);
}
body.v3plus-landing .quick-text-v2 h3 {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--lp-ink);
}
body.v3plus-landing .quick-text-v2 p {
    font-size: 0.80rem;
    line-height: 1.5;
    color: var(--lp-ink-soft);
}
body.v3plus-landing .fresh-badge {
    background: var(--lp-btn);
    color: var(--lp-btn-text, #ffffff) !important;
    border-radius: 4px;
    font-size: 0.68rem;
    padding: 0.12rem 0.45rem;
    font-weight: 800;
    text-shadow: none;
}

/* ───────────────────────────────────────────────
   3. 전례력 리본 — 은은하고 성스러운 분위기
   ─────────────────────────────────────────────── */
body.v3plus-landing .liturgical-ribbon-v2 {
    max-width: 1100px;
    margin: 0 auto 1.5rem;
    padding: 0.65rem 1.2rem;
    background: var(--lp-card-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1.2px solid var(--lp-line-soft);
    border-radius: var(--lp-r);
    box-shadow: var(--lp-shadow-sm);
    font-size: 0.84rem;
    width: calc(100% - 3rem);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.45rem 0.65rem;
}
body.v3plus-landing .liturgical-ribbon-v2::before,
body.v3plus-landing .liturgical-ribbon-v2::after { display: none; }
body.v3plus-landing .lit-color-name {
    font-weight: 700;
    color: var(--lp-text-title, inherit);
}
body.v3plus-landing .lit-color.white {
    background: #ffffff !important;
    border: 1.5px solid var(--accent-gold, #c5a059) !important;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}

/* ───────────────────────────────────────────────
   4. 본문 레이아웃 그리드 (공지사항 및 안내 카드)
   ─────────────────────────────────────────────── */
body.v3plus-landing main.container {
    margin-bottom: 2rem !important;
}

body.v3plus-landing .v2-layout-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 1.15rem;
    align-items: start;
    margin-top: 1.2rem;
}

body.v3plus-landing .v2-col-notices,
body.v3plus-landing .v2-col-info {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

/* 4-1. 공지사항 섹션 */
body.v3plus-landing .notice-section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.65rem;
}

body.v3plus-landing .section-title-v2 {
    font-size: 1.06rem !important;
    font-weight: 800;
    letter-spacing: -0.025em;
    margin: 0 !important;
    color: var(--lp-ink);
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

body.v3plus-landing .notice-more-link {
    font-size: 0.80rem;
    color: var(--lp-ink-soft);
    text-decoration: none;
    font-weight: 700;
    transition: color 0.18s ease;
}
body.v3plus-landing .notice-more-link:hover {
    color: var(--lp-btn);
}

body.v3plus-landing .notice-board-list-v2 {
    border: 1.2px solid var(--lp-line-soft);
    background: var(--lp-card-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: var(--lp-r-lg);
    overflow: hidden;
    box-shadow: var(--lp-shadow-sm);
    display: flex;
    flex-direction: column;
    gap: 0;
}

body.v3plus-landing .notice-item-v2 {
    border: none !important;
    border-bottom: 1px solid var(--lp-line-soft) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer;
    transition: background 0.15s ease;
}
body.v3plus-landing .notice-item-v2:last-child {
    border-bottom: none !important;
}
body.v3plus-landing .notice-item-v2:hover {
    background: var(--lp-surface-sub) !important;
}
body.v3plus-landing .notice-item-v2.active {
    background: var(--lp-surface-sub) !important;
}

body.v3plus-landing .notice-header-v2 {
    padding: 0.82rem 1.15rem !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
}

body.v3plus-landing .notice-title-block {
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    min-width: 0;
}

body.v3plus-landing .notice-meta-v2 {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.72rem !important;
    color: var(--lp-ink-soft);
}

body.v3plus-landing .notice-date-v2 {
    font-weight: 700;
    color: var(--lp-btn);
}

body.v3plus-landing .notice-views-v2 {
    color: var(--lp-ink-soft);
    opacity: 0.85;
}

body.v3plus-landing .notice-title-v2 {
    font-family: 'Noto Serif KR', serif;
    font-size: 0.94rem !important;
    font-weight: 700;
    color: var(--lp-ink);
    margin: 0;
    line-height: 1.35;
    word-break: break-word;
}

body.v3plus-landing .notice-toggle-v2 {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--lp-surface-sub);
    color: var(--lp-ink-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    flex-shrink: 0;
    transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}
body.v3plus-landing .notice-item-v2.active .notice-toggle-v2 {
    transform: rotate(180deg);
    background: var(--lp-btn);
    color: #ffffff;
}

body.v3plus-landing .notice-inner-v2 {
    padding: 0.85rem 1.15rem 1.15rem 1.15rem !important;
    margin: 0 !important;
    border-top: 1px dashed var(--lp-line-soft) !important;
    font-size: 0.86rem;
    line-height: 1.7;
    color: var(--lp-ink);
    background: var(--lp-card-bg);
}

/* 공지사항 페이지네이션 하단 바 */
body.v3plus-landing .notice-pagination-v2 {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    padding: 0.55rem 1rem;
    background: var(--lp-surface-sub);
    border-top: 1px solid var(--lp-line-soft);
    font-size: 0.76rem;
}
body.v3plus-landing .notice-page-numbers {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
body.v3plus-landing .notice-page-btn,
body.v3plus-landing .notice-page-num {
    text-decoration: none;
    color: var(--lp-ink-soft);
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
    font-size: 0.76rem;
    transition: all 0.15s ease;
}
body.v3plus-landing .notice-page-num.active {
    color: var(--lp-btn);
    font-weight: 800;
    background: rgba(var(--accent-pink-deep-rgb, 229, 169, 158), 0.2);
}
body.v3plus-landing .notice-page-btn:hover,
body.v3plus-landing .notice-page-num:hover:not(.active) {
    color: var(--lp-ink);
    background: rgba(0, 0, 0, 0.04);
}

body.v3plus-landing .notice-empty-v2 {
    background: var(--lp-card-bg);
    border: 1.2px solid var(--lp-line-soft);
    border-radius: var(--lp-r-lg);
    padding: 2.2rem 1.5rem;
    text-align: center;
    color: var(--lp-ink-soft);
    font-size: 0.88rem;
    box-shadow: var(--lp-shadow-sm);
}

/* 4-2. 신청·예약 현황 조회 카드 */
body.v3plus-landing .status-check-card-v2 {
    position: relative;
    background: var(--lp-card-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1.2px solid var(--lp-line-soft);
    border-radius: var(--lp-r-lg);
    padding: 1.25rem 1.35rem;
    box-shadow: var(--lp-shadow-sm);
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
body.v3plus-landing .status-check-card-v2:hover {
    border-color: var(--lp-line);
    box-shadow: var(--lp-shadow);
}
body.v3plus-landing .status-check-accent-bar {
    position: absolute;
    top: 0; left: 0;
    width: 4px; height: 100%;
    background: var(--lp-accent-1);
}
body.v3plus-landing .status-check-head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.45rem;
}
body.v3plus-landing .status-check-icon {
    font-size: 1.15rem;
    line-height: 1;
}
body.v3plus-landing .status-check-head h4,
body.v3plus-landing .status-check-title {
    font-family: 'Noto Serif KR', serif;
    font-size: 1.06rem;
    font-weight: 800;
    color: var(--lp-ink);
    margin: 0;
}
body.v3plus-landing .status-check-desc {
    color: var(--lp-ink-soft);
    font-size: 0.83rem;
    line-height: 1.55;
    margin: 0 0 0.85rem 0;
}
body.v3plus-landing .btn-status-check {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.48rem 1.25rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #ffffff !important;
    background: var(--lp-btn);
    border: 1px solid var(--lp-btn);
    border-radius: 30px;
    text-decoration: none;
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    transition: all 0.2s var(--lp-ease);
}
body.v3plus-landing .btn-status-check:hover {
    background: var(--lp-btn-hover);
    border-color: var(--lp-btn-hover);
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

/* 4-3. 성당 사무실 안내 카드 */
body.v3plus-landing .office-card-v2 {
    border-radius: var(--lp-r-lg) !important;
    border: 1.2px solid var(--lp-line-soft) !important;
    box-shadow: var(--lp-shadow-sm);
    overflow: hidden;
    background: var(--lp-card-bg) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    background-size: cover;
    background-position: center;
}
body.v3plus-landing .office-overlay-v2 {
    padding: 1.25rem 1.35rem !important;
    background: var(--lp-card-bg) !important;
}
body.v3plus-landing .office-title-v2,
body.v3plus-landing .office-overlay-v2 h3 {
    font-size: 1.06rem !important;
    font-weight: 800;
    color: var(--lp-ink) !important;
    font-family: 'Noto Serif KR', serif;
    margin: 0 0 0.2rem 0 !important;
}
body.v3plus-landing .office-closed,
body.v3plus-landing .office-status {
    margin: 0 0 0.5rem 0 !important;
    font-size: 0.81rem !important;
    color: var(--lp-ink-soft);
    line-height: 1.4;
}
body.v3plus-landing .office-phone-v2 {
    font-size: 1.32rem !important;
    font-weight: 800;
    color: var(--lp-btn) !important;
    margin: 0 0 0.75rem 0 !important;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
body.v3plus-landing .office-phone-v2 a {
    color: inherit;
    text-decoration: none;
}
body.v3plus-landing .office-phone-v2 a:hover {
    text-decoration: underline;
}
body.v3plus-landing .office-schedule-list {
    display: flex;
    flex-direction: column;
    gap: 0.42rem;
    width: 100%;
}
body.v3plus-landing .office-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.44rem 0.75rem !important;
    border-radius: 8px !important;
    font-size: 0.79rem !important;
    border: 1px solid var(--lp-line-soft) !important;
    background: rgba(255, 255, 255, 0.65) !important;
    color: var(--lp-ink) !important;
    margin: 0 !important;
}
body.v3plus-landing .office-row strong,
body.v3plus-landing .office-row-day {
    color: var(--lp-btn);
    font-weight: 700;
}
body.v3plus-landing .office-row-lunch,
body.v3plus-landing .office-row-dinner {
    border-color: rgba(229, 62, 62, 0.2) !important;
}
body.v3plus-landing .office-row-lunch strong,
body.v3plus-landing .office-row-lunch-title,
body.v3plus-landing .office-row-dinner strong,
body.v3plus-landing .office-row-dinner-title {
    color: #e53e3e !important;
}

/* 4-4. AI 신앙 도우미 카드 */
body.v3plus-landing .ai-helper-card-v2,
body.v3plus-landing .v2-layout-grid div[style*="linear-gradient"] {
    background: linear-gradient(135deg, var(--ai-card-color-1, var(--lp-ink)) 0%, var(--ai-card-color-2, var(--lp-btn)) 100%) !important;
    color: #ffffff !important;
    border-radius: var(--lp-r-lg) !important;
    padding: 1.25rem 1.35rem !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.10) !important;
    display: flex;
    flex-direction: column;
}
body.v3plus-landing .ai-helper-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.45rem;
}
body.v3plus-landing .ai-helper-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.88rem;
    flex-shrink: 0;
}
body.v3plus-landing .ai-helper-head h4,
body.v3plus-landing .ai-helper-title {
    font-family: 'Outfit', 'Noto Sans KR', sans-serif;
    font-size: 1.06rem;
    color: #ffffff !important;
    margin: 0;
    font-weight: 700;
    letter-spacing: -0.3px;
}
body.v3plus-landing .ai-helper-desc {
    font-size: 0.82rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.92) !important;
    margin: 0 0 0.85rem 0;
}
body.v3plus-landing .btn-ai-helper {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #ffffff;
    color: var(--lp-btn) !important;
    border: 1px solid #ffffff;
    font-weight: 700;
    padding: 0.48rem 1.25rem;
    font-size: 0.82rem;
    border-radius: 30px;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    transition: all 0.2s var(--lp-ease);
    align-self: flex-start;
}
body.v3plus-landing .btn-ai-helper:hover {
    background: rgba(255, 255, 255, 0.92);
    color: var(--lp-btn-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 5px 14px rgba(0, 0, 0, 0.22);
}

/* ───────────────────────────────────────────────
   5. ★ 신청 포털 — 5열 컴팩트 + 부드럽고 화사한 카드 디자인
   ─────────────────────────────────────────────── */
body.v3plus-landing .portal-section-v2 { margin-bottom: 1.8rem; }

body.v3plus-landing .portal-menu-grid-v2 {
    grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
    gap: 0.65rem;
}

/* 개별 포털 카드 — 가로 행 배치 + 은은한 테마 액센트 */
body.v3plus-landing .portal-card-v2 {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    column-gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border: 1.2px solid var(--lp-line-soft);
    border-radius: var(--lp-r);
    background: var(--lp-card-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--lp-shadow-sm);
    text-decoration: none;
    transition: all 0.2s var(--lp-ease);
    position: relative;
    overflow: hidden;
}
/* 카드 상단 미세 호버 바 */
body.v3plus-landing .portal-card-v2::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--lp-line-grad);
    opacity: 0;
    transition: opacity 0.2s ease;
}
body.v3plus-landing .portal-card-v2:hover {
    transform: translateY(-2px);
    border-color: var(--lp-accent-1);
    box-shadow: var(--lp-shadow);
}
body.v3plus-landing .portal-card-v2:hover::before { opacity: 1; }

body.v3plus-landing .portal-icon-v2 {
    grid-row: 1 / 4; grid-column: 1;
    align-self: start;
    width: 36px; height: 36px;
    border-radius: 9px;
    font-size: 1.15rem;
    margin-bottom: 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(var(--lp-accent-1-rgb), 0.12), rgba(var(--lp-accent-2-rgb), 0.14));
    border: 1px solid rgba(var(--lp-accent-2-rgb), 0.28);
    transition: all 0.2s var(--lp-ease);
}
body.v3plus-landing .portal-card-v2:hover .portal-icon-v2 {
    background: linear-gradient(135deg, rgba(var(--lp-accent-1-rgb), 0.22), rgba(var(--lp-accent-2-rgb), 0.24));
    transform: scale(1.05);
}

body.v3plus-landing .portal-tag-v2 {
    grid-column: 2; grid-row: 1;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-bottom: 0.15rem;
    color: var(--lp-btn);
}
body.v3plus-landing .portal-card-v2 h3 {
    grid-column: 2; grid-row: 2;
    font-size: 0.92rem !important;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 0.18rem;
    line-height: 1.35;
    color: var(--lp-ink);
}
body.v3plus-landing .portal-card-v2 p {
    grid-column: 2; grid-row: 3;
    font-size: 0.77rem;
    line-height: 1.5;
    color: var(--lp-ink-soft);
    word-break: keep-all;
    margin: 0;
}

/* 교적 전입/전출 와이드 카드 */
body.v3plus-landing .portal-card-wide-v2 {
    grid-column: 1 / -1;
    background: linear-gradient(90deg, rgba(var(--lp-accent-2-rgb), 0.08) 0%, rgba(var(--lp-accent-1-rgb), 0.04) 100%), var(--lp-card-bg);
}

/* 카테고리 소제목 */
body.v3plus-landing .portal-section-v2 h4 {
    font-size: 0.82rem !important;
    font-weight: 800;
    letter-spacing: 0.06em !important;
    margin-bottom: 0.6rem !important;
    padding-left: 0.55rem !important;
    border-left: 3px solid var(--lp-accent-1) !important;
    color: var(--lp-ink) !important;
    font-family: inherit !important;
}
body.v3plus-landing .portal-section-v2 > div[style*="gap: 2.5rem"] { gap: 1.35rem !important; }

/* ───────────────────────────────────────────────
   6. 모바일 및 태블릿 반응형
   ─────────────────────────────────────────────── */
@media (max-width: 980px) {
    body.v3plus-landing .v2-layout-grid {
        grid-template-columns: 1fr !important;
        gap: 1.15rem !important;
    }
}

@media (max-width: 720px) {
    body.v3plus-landing .hero-v2 { min-height: clamp(280px, 42vh, 360px); padding: 2rem 1.1rem; }
    body.v3plus-landing .quick-links-v2 { margin-top: -1.2rem; padding: 0 1rem; }
    body.v3plus-landing .liturgical-ribbon-v2 { width: calc(100% - 2rem); }
    body.v3plus-landing .portal-menu-grid-v2 { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.5rem; }
    body.v3plus-landing .portal-card-v2 { padding: 0.7rem 0.75rem; column-gap: 0.55rem; }
    body.v3plus-landing .portal-icon-v2 { width: 30px; height: 30px; font-size: 1rem; }
    body.v3plus-landing .portal-card-v2 h3 { font-size: 0.85rem !important; }
    body.v3plus-landing .portal-card-v2 p { font-size: 0.72rem; }

    body.v3plus-landing .v2-layout-grid {
        gap: 1rem !important;
    }
    body.v3plus-landing .notice-header-v2 {
        padding: 0.75rem 0.95rem !important;
    }
    body.v3plus-landing .notice-inner-v2 {
        padding: 0.75rem 0.95rem 0.95rem 0.95rem !important;
    }
    body.v3plus-landing .status-check-card-v2,
    body.v3plus-landing .office-overlay-v2,
    body.v3plus-landing .ai-helper-card-v2 {
        padding: 1.15rem 1.15rem !important;
    }
}

/* ───────────────────────────────────────────────
   7. 다크 모드 (별이 빛나는 밤) 가독성 오버라이드
   ─────────────────────────────────────────────── */
.dark-mode body.v3plus-landing .portal-tag-v2 {
    color: #f0c040 !important;
    font-weight: 800 !important;
}
.dark-mode body.v3plus-landing .portal-card-v2 {
    background: rgba(19, 28, 53, 0.95) !important;
    border-color: rgba(107, 155, 210, 0.3) !important;
}
.dark-mode body.v3plus-landing .portal-card-v2:hover {
    border-color: #f0c040 !important;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.6) !important;
}
.dark-mode body.v3plus-landing .portal-icon-v2 {
    background: rgba(30, 48, 96, 0.7) !important;
    border-color: rgba(107, 155, 210, 0.4) !important;
}

/* 공지사항 다크모드 */
.dark-mode body.v3plus-landing .notice-board-list-v2 {
    background: rgba(19, 28, 53, 0.95) !important;
    border-color: rgba(107, 155, 210, 0.3) !important;
}
.dark-mode body.v3plus-landing .notice-item-v2 {
    border-bottom-color: rgba(107, 155, 210, 0.25) !important;
}
.dark-mode body.v3plus-landing .notice-item-v2:hover,
.dark-mode body.v3plus-landing .notice-item-v2.active {
    background: rgba(30, 48, 96, 0.5) !important;
}
.dark-mode body.v3plus-landing .notice-title-v2 {
    color: #e8eef8 !important;
}
.dark-mode body.v3plus-landing .notice-inner-v2 {
    background: rgba(15, 23, 42, 0.92) !important;
    border-top-color: rgba(107, 155, 210, 0.25) !important;
    color: #e2e8f0 !important;
}
.dark-mode body.v3plus-landing .notice-toggle-v2 {
    background: rgba(255, 255, 255, 0.1) !important;
    color: #cbd5e1 !important;
}
.dark-mode body.v3plus-landing .notice-pagination-v2 {
    background: rgba(12, 18, 37, 0.65) !important;
    border-top-color: rgba(107, 155, 210, 0.25) !important;
}
.dark-mode body.v3plus-landing .notice-page-btn,
.dark-mode body.v3plus-landing .notice-page-num {
    color: #94a3b8 !important;
}
.dark-mode body.v3plus-landing .notice-page-num.active {
    color: #f0c040 !important;
    background: rgba(240, 192, 64, 0.2) !important;
}
.dark-mode body.v3plus-landing .notice-empty-v2 {
    background: rgba(19, 28, 53, 0.95) !important;
    border-color: rgba(107, 155, 210, 0.3) !important;
    color: #94a3b8 !important;
}

/* 신청 현황 카드 다크모드 */
.dark-mode body.v3plus-landing .status-check-card-v2 {
    background: rgba(19, 28, 53, 0.95) !important;
    border-color: rgba(107, 155, 210, 0.3) !important;
}
.dark-mode body.v3plus-landing .status-check-card-v2:hover {
    border-color: #f0c040 !important;
}
.dark-mode body.v3plus-landing .status-check-head h4,
.dark-mode body.v3plus-landing .status-check-title {
    color: #e8eef8 !important;
}
.dark-mode body.v3plus-landing .status-check-desc {
    color: #cbd5e1 !important;
}

/* 성당 사무실 카드 다크모드 */
.dark-mode body.v3plus-landing .office-card-v2 {
    background: rgba(19, 28, 53, 0.95) !important;
    border-color: rgba(107, 155, 210, 0.3) !important;
}
.dark-mode body.v3plus-landing .office-overlay-v2 {
    background: rgba(19, 28, 53, 0.95) !important;
}
.dark-mode body.v3plus-landing .office-title-v2,
.dark-mode body.v3plus-landing .office-overlay-v2 h3 {
    color: #e8eef8 !important;
}
.dark-mode body.v3plus-landing .office-row {
    background: rgba(255, 255, 255, 0.05) !important;
    color: #e2e8f0 !important;
    border-color: rgba(107, 155, 210, 0.25) !important;
}
.dark-mode body.v3plus-landing .office-phone-v2 {
    color: #f0c040 !important;
}
.dark-mode body.v3plus-landing .fresh-badge {
    background: #f0c040 !important;
    color: #0c1225 !important;
    font-weight: 800 !important;
}
.dark-mode body.v3plus-landing .quick-card-v2 {
    background: rgba(19, 28, 53, 0.95) !important;
    border-color: rgba(107, 155, 210, 0.3) !important;
}
.dark-mode body.v3plus-landing .quick-card-v2:hover {
    border-color: #f0c040 !important;
}
.dark-mode body.v3plus-landing .liturgical-ribbon-v2 {
    background: rgba(19, 28, 53, 0.92) !important;
    border-color: rgba(107, 155, 210, 0.3) !important;
    color: #e8eef8 !important;
}

/* AI 신앙 도우미 다크모드 */
.dark-mode body.v3plus-landing .ai-helper-card-v2 {
    background: linear-gradient(135deg, #131c35 0%, #1e3060 100%) !important;
    border: 1.2px solid rgba(107, 155, 210, 0.35) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5) !important;
}
.dark-mode body.v3plus-landing .btn-ai-helper {
    background: #f0c040 !important;
    color: #0c1225 !important;
    border-color: #f0c040 !important;
}
