/* ===========================================================
   링컨비전교회 공통 스타일 (Lincoln Vision Community Church)
   모든 페이지가 이 파일 하나를 공유합니다.
   색상이나 폰트를 바꾸려면 아래 :root 값만 수정하세요.
   =========================================================== */

/* 색상은 교회 로고에서 그대로 가져왔습니다.
   그린 #4E9E82 (나무·테두리) · 블루 #4F76AB · 퍼플 #7C619E
   딥네이비 #263C51 (잎이 겹치는 부분) · 민트 #EEF3F0 (로고 안쪽 배경) */
:root{
  --navy:#263C51;        /* 주조색 — 로고 잎 겹침부 */
  --navy-dark:#1A2B3A;   /* 헤더·푸터용 더 짙은 톤 */
  --gold:#4E9E82;        /* 강조색 — 로고 그린 (버튼·라벨) */
  --gold-light:#7CC4AA;  /* 어두운 배경 위 그린 */
  --blue:#4F76AB;        /* 로고 블루 */
  --purple:#7C619E;      /* 로고 퍼플 */
  --brown:#9A6B4A;       /* 로고 나무줄기 */
  --bg:#ffffff;
  --bg-soft:#EEF3F0;     /* 로고 안쪽 민트 */
  --text:#2C2C31;        /* 로고 '교회' 글자색 */
  --text-soft:#5F6570;
  --border:#DDE5E1;
  --radius:10px;
  --max:1120px;
}
*{box-sizing:border-box;}
body{margin:0;font-family:"Pretendard","Noto Sans KR","Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;}
h1,h2,h3{font-family:"Georgia","Noto Serif KR",serif;font-weight:700;margin:0;color:var(--navy);}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px;}
.btn{display:inline-block;padding:12px 26px;border-radius:999px;font-weight:600;font-size:15px;transition:transform .15s ease, box-shadow .15s ease;}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--gold);color:#fff;}
.btn-primary:hover{box-shadow:0 6px 16px rgba(200,150,62,.35);}
.btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.7);}
.btn-outline:hover{background:rgba(255,255,255,.12);}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- Header ---------- */
header{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--border);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;max-width:var(--max);margin:0 auto;}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--navy);}
.brand img.brand-logo{height:46px;width:auto;}
@media(max-width:600px){ .brand img.brand-logo{height:38px;} }
/* 로고 이미지를 못 불러올 때만 쓰이는 대체 표기 */
.brand-mark{width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:16px;flex-shrink:0;}
.brand-text{line-height:1.2;}
.brand-text small{display:block;font-weight:400;color:var(--text-soft);font-size:11px;letter-spacing:.02em;}
/* 히어로 안의 큰 심볼 */
.hero-symbol{width:96px;height:96px;margin:0 auto 20px;display:block;}
footer .footer-logo{height:54px;width:auto;margin-bottom:14px;background:#EEF3F0;padding:7px 12px;border-radius:8px;}
nav ul{list-style:none;display:flex;flex-wrap:nowrap;gap:15px;margin:0;padding:0;align-items:center;}
nav ul li{flex-shrink:0;}
nav a.nav-link{font-size:14.5px;font-weight:500;color:var(--text);position:relative;white-space:nowrap;letter-spacing:-.01em;}
nav a.nav-link:hover{color:var(--navy);}
nav a.nav-link.current{color:var(--navy);font-weight:700;}
.has-dropdown{position:relative;}
.dropdown{display:none;position:absolute;top:130%;left:0;background:#fff;border:1px solid var(--border);border-radius:8px;min-width:190px;box-shadow:0 10px 24px rgba(0,0,0,.08);padding:6px;}
.has-dropdown:hover .dropdown{display:block;}
.dropdown a{display:block;padding:9px 12px;border-radius:6px;font-size:14px;}
.dropdown a:hover{background:var(--bg-soft);}
.donate-btn{font-size:15px;font-weight:500;color:var(--text);}
.donate-btn:hover{color:var(--navy);}
.menu-toggle{display:none;background:none;border:none;font-size:26px;cursor:pointer;color:var(--navy);}
.lang-toggle{display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:999px;padding:4px;font-size:13px;font-weight:600;}
.lang-toggle a{padding:5px 12px;border-radius:999px;color:var(--text-soft);}
.lang-toggle a.active{background:var(--navy);color:#fff;}
.lang-toggle a:hover:not(.active){color:var(--navy);}

@media(max-width:1060px){
  nav.desktop-nav{display:none;}
  .menu-toggle{display:block;}
  .mobile-nav{display:none;flex-direction:column;gap:2px;padding:10px 20px 18px;border-top:1px solid var(--border);}
  .mobile-nav.open{display:flex;}
  .mobile-nav a{padding:10px 6px;font-size:15px;border-bottom:1px solid var(--border);}
}
@media(min-width:1061px){ .mobile-nav{display:none;} }

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(160deg,var(--navy) 0%,var(--navy-dark) 100%);color:#fff;padding:88px 0 70px;text-align:center;}
.hero > .wrap{position:relative;z-index:2;}

/* 배경: 푸른 초장과 흘러가는 구름 (동영상 파일 대신 코드로 그립니다) */
.hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;}
.hero-bg > div{position:absolute;inset:0;}

/* 하늘 — 청명한 낮하늘 */
.sky{background:linear-gradient(180deg,#3E86C0 0%,#62A8DA 34%,#9BCDEC 68%,#D2E9F7 100%);}

/* 구름 — 세 겹이 서로 다른 속도로 흘러 깊이감을 만듭니다 */
.clouds{background-repeat:repeat-x;background-position:0 0;will-change:background-position;}
@keyframes drift{from{background-position:0 0;} to{background-position:-1400px 0;}}

.clouds-far{
  height:62%;opacity:.5;animation:drift 190s linear infinite;
  background-size:1400px 100%;
  background-image:
    radial-gradient(78px 26px at 150px 22%, rgba(255,255,255,.85), rgba(255,255,255,0) 72%),
    radial-gradient(56px 20px at 220px 26%, rgba(255,255,255,.75), rgba(255,255,255,0) 72%),
    radial-gradient(96px 30px at 640px 15%, rgba(255,255,255,.8),  rgba(255,255,255,0) 72%),
    radial-gradient(64px 22px at 730px 19%, rgba(255,255,255,.7),  rgba(255,255,255,0) 72%),
    radial-gradient(86px 26px at 1080px 28%, rgba(255,255,255,.78), rgba(255,255,255,0) 72%);
}
.clouds-mid{
  height:70%;opacity:.72;animation:drift 125s linear infinite;
  background-size:1400px 100%;
  background-image:
    radial-gradient(120px 40px at 380px 34%, rgba(255,255,255,.92), rgba(255,255,255,0) 70%),
    radial-gradient(84px 30px at 470px 38%,  rgba(255,255,255,.85), rgba(255,255,255,0) 70%),
    radial-gradient(70px 26px at 300px 39%,  rgba(255,255,255,.8),  rgba(255,255,255,0) 70%),
    radial-gradient(130px 42px at 950px 24%, rgba(255,255,255,.9),  rgba(255,255,255,0) 70%),
    radial-gradient(90px 30px at 1050px 29%, rgba(255,255,255,.82), rgba(255,255,255,0) 70%);
}
.clouds-near{
  height:78%;opacity:.85;animation:drift 78s linear infinite;
  background-size:1400px 100%;
  background-image:
    radial-gradient(160px 52px at 120px 50%,  rgba(255,255,255,.95), rgba(255,255,255,0) 68%),
    radial-gradient(110px 38px at 240px 55%,  rgba(255,255,255,.88), rgba(255,255,255,0) 68%),
    radial-gradient(180px 56px at 820px 46%,  rgba(255,255,255,.92), rgba(255,255,255,0) 68%),
    radial-gradient(120px 40px at 950px 52%,  rgba(255,255,255,.85), rgba(255,255,255,0) 68%);
}

/* 푸른 초장 — 완만한 언덕 두 겹
   (선택자를 .hero-bg > .hills 로 적는 이유: 위쪽 `.hero-bg > div{inset:0}` 보다
    우선순위가 높아야 top:auto 가 적용되어 언덕이 화면 아래에 붙습니다) */
.hero-bg > .hills{top:auto;bottom:0;height:44%;}
.hills::before,.hills::after{content:"";position:absolute;bottom:0;left:-16%;right:-16%;border-radius:50% 50% 0 0 / 100% 100% 0 0;}
.hills::before{height:100%;background:linear-gradient(180deg,#4E9E82 0%,#3B7D66 100%);opacity:.92;}
.hills::after{height:66%;left:-26%;right:-4%;background:linear-gradient(180deg,#3E8469 0%,#2C6151 100%);}

/* 글자가 잘 읽히도록 덮는 층 — 하늘을 밝게 하되 흰 글자는 또렷하게 */
.hero-scrim{background:
  linear-gradient(180deg, rgba(16,32,50,.50) 0%, rgba(16,32,50,.34) 45%, rgba(16,32,50,.48) 100%);}

/* 밝은 배경 위에서 제목과 본문이 묻히지 않도록 */
.hero h1{text-shadow:0 2px 14px rgba(10,24,40,.45);}
.hero p.sub{text-shadow:0 1px 8px rgba(10,24,40,.5);}
.hero-symbol{filter:drop-shadow(0 3px 10px rgba(10,24,40,.4));}

@media(max-width:768px){
  .clouds-far{animation-duration:150s;}
  .clouds-mid{animation-duration:100s;}
  .clouds-near{animation-duration:62s;}
  .hero-bg > .hills{height:46%;}
  .service-badge{background:rgba(10,26,40,.42);}
}
/* 움직임을 불편해하는 분들을 위해 구름을 멈춥니다 */
@media (prefers-reduced-motion:reduce){ .clouds{animation:none !important;} }
.hero h1{color:#fff;font-size:40px;letter-spacing:.02em;margin-bottom:14px;}
.hero p.sub{color:#d9def0;font-size:17px;max-width:560px;margin:0 auto 26px;}
/* 예배시간 안내 — 초록 언덕 위에 놓이므로 배경을 살짝 어둡게 깔아 글자를 띄웁니다 */
.service-badge{display:inline-flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;
  background:rgba(10,26,40,.38);border:1px solid rgba(255,255,255,.3);
  border-radius:999px;padding:14px 28px;margin-bottom:30px;font-size:15px;
  text-shadow:0 1px 6px rgba(6,18,30,.5);}
/* 시간은 따뜻한 금빛으로 — 초록 언덕과 파란 하늘 양쪽에서 잘 구분됩니다 */
.service-badge b{color:#FFD98A;font-weight:700;}
.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
@media(max-width:600px){ .hero{padding:60px 0 52px;} .hero h1{font-size:31px;} .hero p.sub{font-size:15.5px;} }

/* 하위 페이지용 작은 헤더 */
.page-hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-dark) 100%);color:#fff;padding:56px 0 48px;text-align:center;}
.page-hero h1{color:#fff;font-size:32px;margin-bottom:10px;}
.page-hero p{color:#c3cbe2;font-size:16px;max-width:600px;margin:0 auto;}
@media(max-width:600px){ .page-hero h1{font-size:25px;} }

/* ---------- 공통 섹션 ---------- */
section{padding:64px 0;}
.section-label{color:var(--gold);font-weight:700;letter-spacing:.08em;font-size:13px;text-transform:uppercase;display:block;margin-bottom:10px;text-align:center;}
.section-title{text-align:center;font-size:28px;margin-bottom:16px;}
.section-intro{text-align:center;color:var(--text-soft);max-width:640px;margin:0 auto 40px;font-size:16px;}
.title-en{display:block;font-family:"Segoe UI",Arial,sans-serif;font-weight:500;color:var(--text-soft);font-size:14px;letter-spacing:.02em;margin-top:6px;}
.title-en-sm{display:block;font-family:"Segoe UI",Arial,sans-serif;font-weight:500;color:var(--text-soft);font-size:12px;letter-spacing:.02em;margin-top:4px;}

/* ---------- Vision ---------- */
.vision-box{background:var(--bg-soft);border-radius:var(--radius);padding:40px;text-align:center;max-width:760px;margin:0 auto;}
.vision-box p{font-size:19px;color:var(--navy);font-weight:500;}
@media(max-width:600px){ .vision-box{padding:26px 20px;} .vision-box p{font-size:17px;} }

/* ---------- Visit ---------- */
.visit-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start;}
@media(max-width:800px){.visit-grid{grid-template-columns:1fr;}}
.map-frame{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);height:280px;}
.map-frame iframe{width:100%;height:100%;border:0;}
.schedule-table{width:100%;border-collapse:collapse;font-size:15px;}
.schedule-table th,.schedule-table td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;}
.schedule-table th{color:var(--text-soft);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;}
.visit-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;}
.visit-card h3{font-size:19px;margin-bottom:14px;}
.visit-actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap;}
.visit-actions .btn{background:var(--navy);color:#fff;padding:10px 20px;font-size:14px;}
.visit-actions .btn:hover{background:var(--navy-dark);}

/* 처음 오신 분 안내 (FAQ 스타일) */
.firsttime{background:var(--bg-soft);border-radius:var(--radius);padding:30px;margin-top:34px;}
.firsttime h3{font-size:19px;margin-bottom:6px;}
.firsttime > p{color:var(--text-soft);font-size:14.5px;margin:0 0 18px;}
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 26px;}
@media(max-width:700px){.faq-grid{grid-template-columns:1fr;} .firsttime{padding:22px 18px;}}
.faq-item strong{display:block;color:var(--navy);font-size:15px;margin-bottom:4px;}
.faq-item p{margin:0;color:var(--text-soft);font-size:14.5px;}

/* ---------- 사역 카드 ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:800px){.cards{grid-template-columns:1fr;}}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;}
.card .icon{width:44px;height:44px;border-radius:10px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:16px;}
.card h3{font-size:18px;margin-bottom:10px;}
.card p{color:var(--text-soft);font-size:14.5px;margin:0;}

/* ---------- 헌금 (Give) ---------- */
.give-cards .card{display:flex;flex-direction:column;}
.give-cards .card > p{margin:0 0 12px;}
.give-detail{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:0 0 10px;font-size:14.5px;line-height:1.75;color:var(--text);}
.give-detail .label{display:block;color:var(--text-soft);font-size:12px;letter-spacing:.03em;text-transform:uppercase;}
.give-detail .value{font-family:"Menlo","Consolas",monospace;font-size:15px;letter-spacing:.02em;word-break:break-all;}
.give-detail .value.big{font-size:17px;font-weight:600;font-family:inherit;letter-spacing:0;}
.copy-btn{align-self:flex-start;margin-top:auto;background:transparent;border:1px solid var(--border);color:var(--text-soft);border-radius:999px;padding:6px 15px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease;}
.copy-btn:hover{border-color:var(--navy);color:var(--navy);}
.copy-btn.done{border-color:var(--gold);color:var(--gold);}
.give-note{text-align:center;color:var(--text-soft);font-size:14px;max-width:640px;margin:30px auto 0;}

/* ---------- 설교 (홈 미리보기) ---------- */
.sermon-section{background:var(--bg-soft);}
.sermon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:900px){.sermon-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.sermon-grid{grid-template-columns:1fr;}}
.sermon-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s ease, transform .18s ease;}
.sermon-card:hover{box-shadow:0 10px 26px rgba(27,42,74,.12);transform:translateY(-2px);}
.sermon-thumb{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,var(--navy),var(--navy-dark));display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-size:14px;overflow:hidden;}
.sermon-thumb img{width:100%;height:100%;object-fit:cover;}
.sermon-thumb iframe{width:100%;height:100%;border:0;display:block;}
.play-badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(16,28,51,.28);transition:background .18s ease;}
.sermon-card:hover .play-badge{background:rgba(16,28,51,.42);}
.play-badge span{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:19px;padding-left:4px;}
.duration{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.72);color:#fff;font-size:12px;padding:2px 7px;border-radius:4px;letter-spacing:.02em;}
.sermon-body{padding:18px 20px;flex:1;}
.sermon-body .tag{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:.04em;}
.sermon-body h3{font-size:16.5px;margin:6px 0 6px;line-height:1.4;}
.sermon-body p{margin:0;color:var(--text-soft);font-size:14px;}
.more-link{display:block;text-align:center;margin-top:28px;font-weight:600;color:var(--navy);}

/* ---------- 설교 아카이브 페이지 ---------- */
.archive-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:22px;}
.tabs{display:flex;flex-wrap:wrap;gap:8px;}
.tab{border:1px solid var(--border);background:#fff;color:var(--text-soft);padding:8px 16px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;}
.tab:hover{border-color:var(--navy);color:var(--navy);}
.tab.active{background:var(--navy);border-color:var(--navy);color:#fff;}
.search-box{position:relative;flex:1;min-width:220px;max-width:320px;}
.search-box input{width:100%;padding:10px 14px 10px 38px;border:1px solid var(--border);border-radius:999px;font-size:14.5px;font-family:inherit;color:var(--text);}
.search-box input:focus{outline:none;border-color:var(--navy);}
.search-box::before{content:"🔍";position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.55;}
.result-count{color:var(--text-soft);font-size:14px;margin:0 0 18px;}
.series-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px;}
.chip{border:1px solid var(--border);background:#fff;color:var(--text-soft);padding:5px 13px;border-radius:999px;font-size:13px;cursor:pointer;font-family:inherit;transition:all .15s ease;}
.chip:hover{border-color:var(--gold);color:var(--gold);}
.chip.active{background:var(--gold);border-color:var(--gold);color:#fff;}
.empty-state{text-align:center;padding:60px 20px;color:var(--text-soft);}
.empty-state strong{display:block;color:var(--navy);font-size:18px;margin-bottom:8px;}

/* 영상 모달 */
.modal{position:fixed;inset:0;background:rgba(10,16,28,.86);z-index:100;display:none;align-items:center;justify-content:center;padding:20px;}
.modal.open{display:flex;}
.modal-inner{width:100%;max-width:900px;}
.modal-video{position:relative;aspect-ratio:16/9;background:#000;border-radius:8px;overflow:hidden;}
.modal-video iframe{width:100%;height:100%;border:0;}
.modal-caption{color:#e6eaf3;margin-top:14px;font-size:15px;}
.modal-caption small{display:block;color:#98a3ba;font-size:13.5px;margin-top:4px;}
.modal-close{position:absolute;top:18px;right:22px;background:none;border:none;color:#fff;font-size:34px;cursor:pointer;line-height:1;opacity:.85;}
.modal-close:hover{opacity:1;}

/* ---------- 교회소식 (게시판) ---------- */
.post-list{display:flex;flex-direction:column;gap:14px;}
.post{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;transition:box-shadow .18s ease;}
.post:hover{box-shadow:0 6px 18px rgba(38,60,81,.09);}
.post-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:9px;}
.badge{font-size:12px;font-weight:700;letter-spacing:.02em;padding:3px 11px;border-radius:999px;}
.badge-notice{background:#E3EAF1;color:#263C51;}
.badge-event{background:#E3F1EB;color:#2F6B57;}
.badge-news{background:#EDE8F3;color:#5B4478;}
.badge-pin{background:var(--gold);color:#fff;}
.post-date{font-size:13px;color:var(--text-soft);margin-left:auto;}
.post h3{font-size:18px;margin:0 0 8px;}
.post-summary{color:var(--text-soft);font-size:15px;margin:0;}
.post-body{font-size:15px;color:var(--text);line-height:1.85;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--border);white-space:pre-line;display:none;}
.post.open .post-body{display:block;}
.post-toggle{background:none;border:none;color:var(--navy);font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;padding:10px 0 0;}
.post-toggle:hover{color:var(--gold);}

/* ---------- 갤러리 ---------- */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;}
.photo{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--bg-soft);cursor:pointer;}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.photo:hover img{transform:scale(1.04);}
.photo-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(26,43,58,.82));color:#fff;font-size:13px;padding:22px 12px 10px;}
.lightbox{position:fixed;inset:0;background:rgba(16,24,32,.92);z-index:100;display:none;align-items:center;justify-content:center;padding:24px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%;max-height:82vh;border-radius:8px;}
.lightbox-cap{color:#e6eaf3;text-align:center;margin-top:14px;font-size:15px;}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.14);border:none;color:#fff;font-size:28px;width:46px;height:46px;border-radius:50%;cursor:pointer;line-height:1;}
.lb-nav:hover{background:rgba(255,255,255,.26);}
.lb-prev{left:18px;} .lb-next{right:18px;}

/* ---------- 교육자료 ---------- */
.res-group{margin-bottom:44px;}
.res-group > h3{font-size:20px;margin-bottom:6px;}
.res-group > p.desc{color:var(--text-soft);font-size:14.5px;margin:0 0 18px;}
.res-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.res-item{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;transition:box-shadow .18s ease,border-color .18s ease;}
.res-item:hover{box-shadow:0 6px 18px rgba(38,60,81,.09);border-color:var(--gold);}
.res-icon{flex-shrink:0;width:40px;height:40px;border-radius:8px;background:var(--bg-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;}
.res-item h4{margin:0 0 4px;font-size:16px;font-family:inherit;font-weight:600;color:var(--navy);}
.res-item p{margin:0;font-size:14px;color:var(--text-soft);}
.res-meta{font-size:12.5px;color:var(--text-soft);margin-top:6px;}

/* ---------- 유튜브 재생목록 (성경통독 · 성경암송) ---------- */
.playlist-frame{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:#000;}
.playlist-frame iframe{width:100%;height:100%;border:0;display:block;}
.playlist-link{margin:12px 0 0;font-size:14.5px;font-weight:600;}
.playlist-link a{color:var(--navy);}
.playlist-link a:hover{color:var(--gold);}
@media(max-width:768px){ .playlist-link{font-size:14px;} }

/* ---------- 담임목사 ---------- */
.pastor{display:flex;gap:32px;align-items:center;}
@media(max-width:800px){.pastor{flex-direction:column;text-align:center;}}
.pastor-photo{width:180px;height:180px;border-radius:50%;background:var(--bg-soft);border:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-soft);font-size:13px;text-align:center;overflow:hidden;}
.pastor-photo img{width:100%;height:100%;object-fit:cover;}
.pastor-text h3{font-size:22px;margin-bottom:8px;}
.pastor-text .role{color:var(--gold);font-weight:600;font-size:14px;margin-bottom:14px;display:block;}
.pastor-text p{color:var(--text-soft);font-size:15.5px;}

/* ---------- 협력기관 및 단체 ---------- */
.partners{margin-top:40px;padding-top:34px;border-top:1px solid var(--border);}
.partners h3{font-size:17px;text-align:center;margin-bottom:6px;}
.partners > p.desc{text-align:center;color:var(--text-soft);font-size:14.5px;margin:0 0 24px;}
.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media(max-width:820px){.partner-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:420px){.partner-grid{grid-template-columns:1fr;}}
.partner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px 14px;
  transition:box-shadow .18s ease,border-color .18s ease;}
a.partner:hover{box-shadow:0 6px 18px rgba(38,60,81,.09);border-color:var(--gold);}
.partner-logo{height:52px;display:flex;align-items:center;justify-content:center;}
.partner-logo img{max-height:52px;width:auto;object-fit:contain;}
.partner-abbr{height:52px;min-width:52px;padding:0 14px;border-radius:10px;background:var(--bg-soft);
  color:var(--navy);display:flex;align-items:center;justify-content:center;
  font-family:Georgia,serif;font-weight:700;font-size:16px;letter-spacing:.02em;}
.partner-ko{font-size:14.5px;font-weight:600;color:var(--navy);line-height:1.45;}
.partner-en{font-size:12.5px;color:var(--text-soft);line-height:1.45;}
@media(max-width:768px){
  .partners{margin-top:32px;padding-top:28px;}
  .partner{padding:18px 12px;}
  .partner-ko{font-size:14px;}
}

/* ---------- Footer ---------- */
footer{background:var(--navy-dark);color:#cfd6e6;padding:50px 0 26px;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px;margin-bottom:32px;}
@media(max-width:800px){.footer-grid{grid-template-columns:1fr;}}
footer h4{color:#fff;font-size:15px;margin-bottom:14px;}
footer p, footer a{color:#aab3c8;font-size:14px;}
footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
footer a:hover{color:#fff;}
.social{display:flex;gap:14px;margin-top:14px;}
.social a{font-size:13px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;text-align:center;font-size:12.5px;color:#8892a8;}

/* ===========================================================
   모바일 최적화 (Mobile hardening)
   ─────────────────────────────────────────────────────────
   이 아래 규칙은 위쪽 규칙보다 나중에 나오므로 항상 우선 적용됩니다.
   휴대폰에서 무언가 이상해 보이면 이 구역만 보시면 됩니다.
   =========================================================== */

/* 1) 기본 안전장치 — 가로 스크롤 방지, iOS 자동 확대 방지 */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;}
body{overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img,iframe,video,table{max-width:100%;}
/* 긴 URL·이메일 주소가 화면을 뚫고 나가지 않게 */
p,li,td,th,h1,h2,h3,h4{overflow-wrap:anywhere;word-break:keep-all;}

/* 2) 스크롤 이동 시 상단 고정 헤더에 제목이 가리지 않도록 */
section[id],div[id]{scroll-margin-top:84px;}

/* 3) 아이폰 노치·홈바 영역 확보 */
.wrap,.nav-inner{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));}
footer{padding-bottom:max(26px,env(safe-area-inset-bottom));}

/* 4) 손가락 터치 영역 최소 44px 확보 (Apple/Google 접근성 권장치)
      — 마우스가 아닌 '손가락으로 누르는 기기'에서만 적용해 PC 화면은 그대로 둡니다. */
.menu-toggle{display:none;align-items:center;justify-content:center;}
.btn,.copy-btn,.tab,.chip,.post-toggle{display:inline-flex;align-items:center;justify-content:center;}
@media (pointer:coarse){
  .menu-toggle{min-width:44px;min-height:44px;}
  .btn,.copy-btn,.tab,.post-toggle,.lang-toggle a{min-height:44px;}
  .chip{min-height:38px;}
  .lb-nav{width:48px;height:48px;}
}

/* 5) 키보드 사용자·시각장애인을 위한 포커스 표시 */
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px;}

/* 6) 애니메이션을 불편해하는 사용자 배려 */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
  .btn:hover,.sermon-card:hover{transform:none;}
}

/* ---------- 태블릿 이하 (1060px) : 햄버거 메뉴 ---------- */
@media(max-width:1060px){
  .menu-toggle{display:inline-flex;}
  /* 메뉴 항목이 많아도 화면을 넘지 않고 스크롤되게 */
  .mobile-nav{max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px);overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg);}
  .mobile-nav a{min-height:48px;display:flex;align-items:center;}
  .mobile-nav a:last-of-type{border-bottom:none;}
}

/* ---------- 휴대폰 (768px 이하) ---------- */
@media(max-width:768px){
  section{padding:44px 0;}
  .section-title{font-size:23px;}
  .section-intro{font-size:15px;margin-bottom:28px;}
  .nav-inner{padding-top:10px;padding-bottom:10px;}
  section[id],div[id]{scroll-margin-top:70px;}

  /* 히어로: 알약 모양 뱃지는 줄바꿈되면 보기 나쁘므로 사각 카드로 */
  .service-badge{display:flex;flex-direction:column;align-items:center;gap:8px;border-radius:14px;padding:14px 18px;font-size:14.5px;width:100%;max-width:420px;margin-left:auto;margin-right:auto;}
  .hero-symbol{width:76px;height:76px;margin-bottom:16px;}
  .hero-ctas{flex-direction:column;align-items:stretch;gap:10px;max-width:320px;margin:0 auto;}
  .hero-ctas .btn{width:100%;}

  /* 표: 여백을 줄이고 글자를 키워 읽기 쉽게 */
  .schedule-table{font-size:14.5px;}
  .schedule-table th,.schedule-table td{padding:11px 6px;vertical-align:top;}
  .schedule-table td:first-child{white-space:nowrap;padding-right:12px;font-weight:600;}
  .visit-card{padding:20px 18px;}
  .visit-actions{flex-direction:column;align-items:stretch;}
  .visit-actions .btn{width:100%;}
  .map-frame{height:220px;}

  /* 카드 여백 축소 */
  .card{padding:22px 18px;}
  .post{padding:18px 18px;}
  .post h3{font-size:17px;}
  .post-date{margin-left:0;width:100%;order:3;}

  /* 설교/자료 목록 */
  .sermon-body{padding:16px 16px;}
  .res-item{padding:16px 16px;gap:12px;}
  .archive-tools{flex-direction:column;align-items:stretch;}
  .search-box{max-width:none;width:100%;}

  /* 갤러리: 작은 화면에서는 2열 */
  .photo-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .lb-prev{left:8px;} .lb-next{right:8px;}
  .lightbox,.modal{padding:14px;}
  .modal-close{top:10px;right:12px;}

  /* 담임목사 */
  .pastor-photo{width:150px;height:150px;}
  .pastor-text h3{font-size:20px;}

  footer{padding-top:38px;}
}

/* ---------- 작은 휴대폰 (430px 이하) ---------- */
@media(max-width:430px){
  .wrap,.nav-inner{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
  .brand-text{font-size:15px;}
  .brand-text small{font-size:10px;}
  .photo-grid{grid-template-columns:1fr;}
  .give-detail .value{font-size:14px;}
}

/* 7) iOS 사파리는 입력창 글자가 16px 미만이면 자동 확대됩니다 — 방지 */
@media(max-width:1060px){
  input,select,textarea,.search-box input{font-size:16px;}
}

/* 8) 가로 모드(landscape)에서 히어로가 화면을 다 잡아먹지 않게 */
@media(max-height:520px) and (orientation:landscape){
  .hero{padding:40px 0 34px;}
  .hero-symbol{display:none;}
}

/* 9) 인쇄용 (주보·안내문 출력 시) */
@media print{
  header,.menu-toggle,.mobile-nav,.hero-ctas,.modal,.lightbox,footer .social{display:none !important;}
  .hero,.page-hero{background:none;color:#000;}
  .hero h1,.page-hero h1{color:#000;}
  body{font-size:12pt;}
}
