/* =================================================
   Reset & Base
================================================= */
html{
  font-size:18px;
}

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

body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;
  line-height:1.7;
  color:#222;
  background:#fff;
}

a{
  color:inherit;
  text-decoration:none;
}

a:hover{
  text-decoration:underline;
}

/* =================================================
   Layout — PC: 상단 고정 가로 네비게이션
================================================= */
.wrap{
  display:flex;
  flex-direction:column;
  gap:0;
  max-width:1200px;
  margin:0 auto;
  padding:0;
  min-height:100vh;
}

aside{
  width:100%;
  flex-shrink:0;
  position:sticky;
  top:0;
  z-index:200;
  background:#fff;
  display:flex;
  align-items:center;
  padding:0 20px;
  height:56px;
  gap:8px;
}
aside::after{
  content:'';
  position:absolute;
  bottom:0;
  left:20px;
  right:20px;
  height:1px;
  background:#e8e8e8;
}

main{
  flex:1;
  min-width:0;
  padding:20px;
}

/* =================================================
   Top Nav
================================================= */
.brand{
  font-size:1.05rem;
  font-weight:700;
  margin-bottom:0;
  padding-left:0;
  white-space:nowrap;
  margin-right:16px;
  color:#111;
}

nav{
  display:flex;
  flex-direction:row;
  gap:2px;
}

nav a{
  display:block;
  padding:7px 13px;
  border-radius:8px;
  font-size:.9rem;
  color:#555;
}

nav a:hover{
  background:#f3f5f9;
  text-decoration:none;
}

nav a.is-active{
  color:#111;
  font-weight:600;
}

.notice{
  display:none;
}
.notice-item{
  padding:10px 12px;
  line-height:1.7;
}
.notice-item + .notice-item{
  border-top:1px solid #e0e0e0;
}

/* =================================================
   Headings
================================================= */
h1{
  font-size:2rem;
  margin-bottom:10px;
}

h2{
  font-size:1.4rem;
  margin-bottom:16px;
}

/* =================================================
   공통 Round Box (카드)
================================================= */
.box{
  border:1px solid #e6e6e6;
  border-radius:20px;
  padding:28px 28px;
  background:transparent; /* 배경색 없음 */
}

/* =================================================
   모바일 전용 컴포넌트 — PC에서는 숨김
================================================= */
.mobile-header { display:none; }
.drawer {
  position:fixed;
  top:0; right:0; bottom:0;
  width:72vw; max-width:280px;
  background:#fff;
  z-index:400;
  padding:20px 24px;
  display:none;
  flex-direction:column;
  transform:translateX(100%);
  transition:transform .25s ease;
  box-shadow:-4px 0 20px rgba(0,0,0,.12);
}
.drawer.open { transform:translateX(0); }
.drawer-overlay {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.45);
  z-index:300;
  display:none;
}
.drawer-overlay.open { display:block; }
.mobile-notice { display:none; }
.bottom-nav { display:none; }

/* =================================================
   @media 768px — 모바일 오버라이드
================================================= */
@media (max-width:768px){
  body {
    padding-top:0;
    padding-bottom:60px;
  }

  /* 기존 PC 레이아웃 숨김 */
  aside { display:none !important; }
  .wrap { flex-direction:column; gap:0; padding:0; }

  /* ── Sticky Header ── */
  .mobile-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    position:sticky;
    top:0;
    z-index:200;
    background:#fff;
    border-bottom:1px solid #e8e8e8;
    padding:0 16px;
    height:52px;
    box-shadow:0 1px 6px rgba(0,0,0,.06);
  }
  .mobile-brand {
    font-size:1.05rem;
    font-weight:700;
    letter-spacing:-.01em;
    color:#111;
  }
  .hamburger {
    background:none;
    border:none;
    cursor:pointer;
    padding:8px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
  }
  .hamburger span {
    display:block;
    width:22px;
    height:2px;
    background:#222;
    border-radius:2px;
  }

  /* ── Drawer ── */
  .drawer { display:flex; }
  .drawer-close {
    align-self:flex-end;
    background:none;
    border:none;
    font-size:1.8rem;
    line-height:1;
    cursor:pointer;
    color:#444;
    margin-bottom:20px;
    padding:4px 8px;
  }
  .drawer a {
    font-size:1.15rem;
    font-weight:700;
    padding:11px 0;
    border-bottom:1px solid #f0f0f0;
    color:#111;
    text-decoration:none;
  }
  .drawer a:last-child { border-bottom:none; }
  .drawer a.is-active { color:#000; opacity:1; }
  #installBtn {
    display:none;
    margin-top:16px;
    padding:12px 0;
    width:100%;
    background:#111;
    color:#fff;
    border:none;
    border-radius:10px;
    font-size:1rem;
    font-weight:700;
    cursor:pointer;
    text-align:center;
  }
  #installBtn.visible { display:block; }

  /* ── 공지사항 슬라이드 배너 ── */
  .mobile-notice {
    overflow-x:auto;
    gap:10px;
    padding:10px 16px;
    background:#f7f7f7;
    border-bottom:1px solid #ebebeb;
    scrollbar-width:none;
  }
  .mobile-notice::-webkit-scrollbar { display:none; }
  .mobile-notice.has-items { display:flex; }
  .mobile-notice-item {
    flex-shrink:0;
    max-width:78vw;
    background:#fff;
    border:1px solid #e6e6e6;
    border-radius:10px;
    padding:8px 14px;
    font-size:0.75rem;
    line-height:1.6;
    color:#333;
  }

  /* ── Bottom Navigation Bar ── */
  .bottom-nav {
    display:flex;
    position:fixed;
    bottom:0; left:0; right:0;
    height:56px;
    background:#fff;
    border-top:1px solid #e8e8e8;
    z-index:200;
    box-shadow:0 -1px 8px rgba(0,0,0,.06);
  }
  .bottom-nav-item {
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    color:#111;
    font-size:0.6rem;
    font-weight:500;
    text-decoration:none;
    transition:color .15s, background .15s;
  }
  .bottom-nav-item.is-active {
    color:#fff;
    background:#111;
    border-radius:14px;
    padding:6px 14px;
    margin:6px 4px;
  }
  .bottom-nav-item svg { width:22px; height:22px; }

  .box { padding:20px 18px; border-radius:16px; }
}

/* =================================================
   인사말 전용 수정 ⭐ 핵심
================================================= */
/* 인사말 안쪽에 생기는 모든 내부 박스/테두리 제거 */
#pastor *{
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* 문단 간격만 정돈 */
#pastor p{
  margin-bottom:14px;
}

/* 서명/섬기는이들 구분선만 유지하고 싶을 때 */
#pastor .divider{
  margin-top:24px;
  padding-top:16px;
  border-top:1px solid #e6e6e6 !important;
}

/* =================================================
   기타 유틸
================================================= */
.muted{
  color:#666;
  font-size:0.95rem;
}
