@charset "utf-8";
/* =========================================================
   작전동성당 — Parish Editorial skin (anti AI-slop)
   레퍼런스 방향:
   - St. Louis Catholic (stlouiswaco.com): 실사·절제된 악센트·존중감
   - St. John Cantius (stjohncantiuschurch.org): 전통·무게감
   - 한국 교구 본당: 정보 우선, 과장 없는 행정 웹
   원칙: blur/글래스/그라데이션 블롭 금지 · 실색·얇은 선·여백
   ========================================================= */

:root {
  --paper: #f3efe8;
  --paper-card: #fffcf7;
  --paper-line: #d8d0c4;
  --ink: #2a2420;
  --ink-soft: #5a524a;
  --ink-faint: #8a8278;
  --stone: #3c3530;
  --stone-soft: #4a433c;
  --wine: #7a1a2e;
  --wine-deep: #5c1522;
  --gold-line: #b8a078;
  --shadow: none;
  --radius: 2px;
  --font-ui: "NotoKrR", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-title: "nanum-square-b", "NanumSquare", "NotoKrM", "Malgun Gothic", sans-serif;
}

/* ---------- Base: 단색 종이 (방사형 그라데이션 제거) ---------- */
html, body {
  color: var(--ink-soft) !important;
  background: var(--paper) !important;
  background-image: none !important;
  -webkit-font-smoothing: antialiased;
}

/* 본문 기본 타이포: 기존 사이트 폰트 존중 (전역 Noto Sans 강제 해제) */
body,
input, button, textarea, select {
  font-family: var(--font-ui) !important;
}

a:link, a:visited { color: var(--ink); }
a:hover, a:focus, a:active { color: var(--wine); }

/* glass helper → solid paper */
.glass-panel {
  background: var(--paper-card) !important;
  border: 1px solid var(--paper-line) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* ---------- Header: 흰 종이 + 얇은 선 ---------- */
#hd {
  background: #fffcf7 !important;
  border-bottom: 1px solid var(--paper-line) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

#tlog_naviA,
#gnb_bg {
  background: transparent !important;
}

/* 로고 최적 크기: 워드마크 아랫줄(로고 높이의 23%)이 GNB 메뉴 글자(~17px)와 동급이 되는
   높이 76px. 헤더 90px 안에서 상하 7px 여백 확보 */
#logo {
  width: auto !important;
  max-width: 420px !important;
}
#logo img {
  max-height: 76px !important;
  max-width: 420px !important;
  width: auto;
  image-rendering: auto;
}
/* 로고 실폭(76px 높이 ≈ 202px)이 default.css의 210px 예약폭 내이지만 숨통용 여백 확보 */
@media (min-width: 1241px) {
  /* 5개 메뉴를 로고~회원바 사이 구간에 균등 배치. :after(옛 float 클리어)가
     flex 6번째 칸이 되면 묶음이 로고 쪽으로 붙는다. */
  #gnb { width: 1200px !important; padding: 0 !important; }
  #gnb_1dul:after {
    content: none !important;
    display: none !important;
  }
  #gnb_1dul {
    display: flex !important;
    justify-content: space-evenly !important;
    align-items: center !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 210px !important;
    padding-right: 128px !important;
    box-sizing: border-box !important;
    flex-wrap: nowrap !important;
  }
  /* 로그인 시 회원바가 길어지므로 오른쪽 예약만 늘린다(비로그인 정렬은 유지) */
  #hd:has(a[href="/member/logout"]) #gnb_1dul {
    padding-right: 310px !important;
  }
  /* '본당 소개' 처럼 공백이 든 항목이 두 줄로 접히면 둘째 줄이 90px 줄 밖으로
     나가 잘려 보인다. 좌우 패딩은 줄여 다섯 칸이 구간을 채우게 한다. */
  .gnb_1da {
    white-space: nowrap !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  /* 서브메뉴 화살표 위치는 /js/nav_caret.js 가 실제 메뉴 중심을 재서 지정한다.
     (가운데 정렬 + 로그인 시 회원바 폭 변화 때문에 고정 px 로는 못 맞춤) */
  #gnb_1dul .gnb_1dli { float: none !important; width: auto !important; }
  /* 본문 칼럼: 사이드바와 제목·카드 사이 간격 확보 */
  #container { padding-left: 28px !important; box-sizing: border-box !important; }
}

.gnb_1da {
  color: var(--ink) !important;
  font-family: var(--font-title) !important;
  font-weight: normal !important;
  letter-spacing: -0.02em !important;
  font-size: 17px !important;
  transition: color 0.15s ease;
}
.gnb_1da:hover,
.gnb_1dli_on .gnb_1da {
  color: var(--wine) !important;
  text-shadow: none !important;
}

/* Mega menu: 불투명 종이 */
#snb_wrap {
  background: #fffcf7 !important;
  border-bottom: 1px solid var(--paper-line) !important;
  box-shadow: 0 8px 0 rgba(42, 36, 32, 0.04) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
#snb_wrap .snb h3 {
  color: var(--ink) !important;
  font-family: var(--font-title) !important;
  font-weight: normal !important;
}
#snb_wrap .snb a {
  color: var(--ink-soft) !important;
  font-weight: 400 !important;
}
#snb_wrap .snb a:hover {
  /* default.css가 hover 배경을 와인색(#7a0039)으로 칠해 와인색 글자와 겹치면 안 보임 → 밝은 배경으로 통일 */
  color: var(--wine) !important;
  background: #ebe4d8 !important;
  border-color: var(--paper-line) !important;
}

#tnb dt {
  background-color: transparent !important;
  border-color: var(--paper-line) !important;
  border-radius: var(--radius);
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
#tnb dd {
  background: #fffcf7 !important;
  border-color: var(--paper-line) !important;
  border-radius: var(--radius);
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* ---------- Hero text: 불투명 스톤 패널 (블러 금지) ---------- */
#showcase .showcase-content,
#showcase a.thumb {
  position: relative !important;
  display: block !important;
}
/* 페이드 전환 중 이전 장 문구가 같은 자리에 남는 겹침 방지 */
#showcase .showcase-content-container > div:not(:last-child) .mvisTxt,
#showcase .showcase-content-container > div:not(:last-child) .mtxt_go {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
#mVisualA .mvisTxt {
  left: auto !important;
  right: 0 !important;
  overflow: hidden !important;
  background: rgba(38, 32, 28, 0.96) !important;
  border: none !important;
  border-left: 3px solid var(--gold-line) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border-radius: 0 !important;
  text-align: left !important;
}
#mVisualA .mvisTxt h3 {
  font-family: var(--font-title) !important;
  font-weight: normal !important;
  letter-spacing: -0.03em !important;
  text-shadow: none !important;
  color: #fff !important;
}
#mVisualA .mvisTxt .mtxt_exp {
  font-weight: 400 !important;
  color: rgba(255, 250, 240, 0.9) !important;
  text-shadow: none !important;
  line-height: 1.55 !important;
  height: auto !important;
  max-height: 7.5em !important;
  overflow: hidden !important;
}
#mVisualA .mtxt_go {
  left: auto !important;
  right: 40px !important;
  width: auto !important;
  padding: 9px 18px !important;
  box-sizing: border-box !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  text-align: center !important;
  background: none !important;
  border: 1px solid rgba(240,230,212,0.55) !important;
  border-radius: 2px !important;
  color: #f0e6d4 !important;
  transition: background .2s ease, border-color .2s ease !important;
}
#mVisualA a:hover .mtxt_go,
#showcase .showcase-slide a:hover .mtxt_go {
  background: rgba(240,230,212,0.12) !important;
  border-color: rgba(240,230,212,0.9) !important;
}
#showcase .showcase-button-wrapper {
  left: auto !important;
  right: 40px !important;
  text-align: right !important;
}
#mVisualA,
#showcase {
  border-radius: 0;
  overflow: hidden;
  border-bottom: 1px solid var(--paper-line);
}
#mVisualA .mpimg {
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
}
/* 세로 사진 슬라이드(주일학교): center top이면 하늘만 보임 — 인물 밴드(56%)에 포커스 */
#mVisualA .mpimg.mpimg-school,
#showcase .mpimg.mpimg-school {
  /* 우측 텍스트 패널이 인물을 가리므로 초점을 좌측(35%)으로 이동 */
  background-position: 35% 56% !important;
}
#mtopArea {
  filter: none;
  background: #fffcf7;
}

/* ---------- Quick menu: 플랫 타일 ---------- */
.quickArea {
  margin-top: 0 !important;
  border-bottom: 1px solid var(--paper-line);
  background: #fffcf7 !important;
}
.quickArea ul.quick li a {
  background: #fffcf7 !important;
  border: none !important;
  border-left: 1px solid var(--paper-line) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  transition: background 0.15s ease, color 0.15s ease;
  border-radius: 0 !important;
}
.quickArea ul.quick li:first-child a {
  border-left: none !important;
}
.quickArea ul.quick li a:hover {
  background: #ebe4d8 !important;
  color: var(--wine) !important;
  transform: none !important;
}
.quickArea ul.quick li a p {
  margin-top: 14px;
  font-weight: 500 !important;
  font-size: 13.5px !important;
  letter-spacing: -0.02em;
  color: inherit !important;
}
.quickArea .qicon {
  opacity: 1;
  filter: none;
}

/* quick-equal-grid: 아이콘 개수와 무관하게 전체 폭을 균등 분할
   (원본은 170px 고정폭이라 7개가 아니면 우측이 빈다) */
.quickArea ul.quick {
  display: flex !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.quickArea ul.quick:after { content: none !important; }
.quickArea ul.quick li {
  float: none !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
}
.quickArea ul.quick li a { width: auto !important; }

/* 본당 신부님 카드: 사제 1명일 때 .fl3(3열)로 찌그러지던 것 대체 */
.priest-card {
  display: block !important;
  width: 100% !important;
  max-width: 480px !important;
  margin: 0 auto !important;
  float: none !important;
  padding: 26px 28px;
  background: var(--paper-card);
  border: 1px solid var(--paper-line);
  border-top: 3px solid var(--wine);
  border-radius: 2px;
  text-align: center;
  box-sizing: border-box;
}
.priest-photo {
  display: block;
  width: 168px;
  height: 196px;
  object-fit: cover;
  object-position: center 12%;
  margin: 0 auto 16px;
  border: 1px solid var(--paper-line);
  background: #ece8e2;
}
.priest-card .tit02 { font-size: 22px !important; margin: 0 0 6px !important; }
.priest-card .pott7 { display: block; margin-bottom: 14px; }
.priest-card .bul { display: inline-block; text-align: left; margin: 0 0 6px !important; }
.priest-card .bd2 { margin: 16px 0 14px; border: 0; border-top: 1px solid var(--paper-line); }
.priest-motto { margin: 0 0 6px; line-height: 1.8; color: var(--ink-soft); }

/* 통합 게시판의 단체명 배지 */
.grp-tag {
  display: inline-block;
  margin-right: 8px;
  padding: 2px 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--wine);
  background: rgba(122, 26, 46, 0.07);
  border: 1px solid rgba(122, 26, 46, 0.18);
  border-radius: 2px;
  vertical-align: middle;
}

/* 수녀님 카드 그리드 */
.sister-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}
.sister-card { max-width: none; margin: 0; text-align: center; }
.sister-card .bul { display: inline-block; text-align: left; }
.sister-card .bul li { list-style: none; font-size: 13.5px; color: var(--ink-soft); margin: 2px 0; }

/* ---------- Content bands ---------- */
#wrapper {
  background: var(--paper) !important;
  border-top: none !important;
  padding-bottom: 28px !important;
}
#wrapper .wrap {
  background: transparent !important;
  background-image: none !important;
  border-bottom: none !important;
  /* 하단 3카드 제거 후 공지·모집만 남음 → 여백 정리 */
  min-height: 0 !important;
  padding-bottom: 8px !important;
  overflow: visible !important;
}
/* 홈 하단 카드 미사용 시 float 잔여 높이 방지 */
#wrapper .basicA,
#wrapper .basicB,
#wrapper .serviceA {
  display: none !important;
}

/* Notice / recruit — flex 유지, 플랫 행정 배너 */
dl.notiArea,
dl.recArea {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  float: none !important;
  box-sizing: border-box !important;
  width: 1200px !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 84px !important;
  border: 1px solid var(--paper-line) !important;
  border-radius: var(--radius) !important;
  overflow: hidden !important;
  box-shadow: none !important;
  background: var(--paper-card) !important;
  margin: 0 auto 12px auto !important;
  padding: 0 !important;
}
dl.notiArea:after,
dl.recArea:after {
  display: none !important;
}
dl.notiArea dt,
dl.recArea dt {
  float: none !important;
  flex: 0 0 172px !important;
  width: 172px !important;
  height: auto !important;
  min-height: 84px !important;
  line-height: normal !important;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box !important;
  font-family: var(--font-title) !important;
  font-weight: normal !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border-radius: 0 !important;
}
dl.notiArea dt {
  background: var(--wine) !important; /* solid, no gradient */
}
dl.recArea dt {
  background: var(--stone) !important;
}
dl.notiArea dt a,
dl.recArea dt a {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 84px !important;
  line-height: 1.3 !important;
  padding: 14px 16px !important;
  box-sizing: border-box !important;
  color: #fff !important;
  letter-spacing: -0.02em;
}
dl.notiArea dt a .bt_more,
dl.recArea dt a .bt_more {
  top: 50% !important;
  transform: translateY(-50%);
  height: 24px !important;
  right: 16px !important;
  opacity: 0.7 !important;
}
/* 제목과 화살표가 붙지 않도록 제목 쪽에 여백 확보 */
dl.notiArea dt a,
dl.recArea dt a {
  padding-right: 52px !important;
}
dl.notiArea dd,
dl.recArea dd {
  float: none !important;
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 84px !important;
  padding: 8px 4px !important;
  box-sizing: border-box !important;
  border: none !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  background: var(--paper-card) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
dl.notiArea dd ul.notiA,
dl.recArea dd ul.recA {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
  clear: none !important;
}
dl.notiArea dd .notiA li,
dl.recArea dd .recA li {
  float: none !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  overflow: hidden !important;
  border-left: 1px solid var(--paper-line) !important;
  box-sizing: border-box !important;
}
dl.notiArea dd .notiA li:first-child,
dl.recArea dd .recA li:first-child {
  border-left: none !important;
}
dl.notiArea dd .notiA li a,
dl.recArea dd .recA li a {
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  line-height: 1.45 !important;
  padding: 12px 14px !important;
  text-align: left !important;
  color: var(--ink) !important;
  font-weight: 400 !important;
  box-sizing: border-box !important;
  word-break: keep-all !important;
  font-size: 14.5px !important;
}
dl.notiArea dd .notiA li a:hover,
dl.recArea dd .recA li a:hover,
dl.notiArea dd .notiA li a:hover strong,
dl.recArea dd .recA li a:hover strong {
  color: var(--wine) !important;
}

/* Bottom cards — 종이 카드, 둥근 글래스 금지 */
.basicA,
.basicB,
.serviceA {
  border-radius: var(--radius) !important;
  overflow: hidden !important;
  border: 1px solid var(--paper-line) !important;
  box-shadow: none !important;
  background: var(--paper-card) !important;
  box-sizing: border-box !important;
}
.basicA a,
.basicB a {
  background-image: none !important;
  background-color: transparent !important;
  opacity: 1 !important;
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  transition: background 0.15s ease !important;
}
.basicA a:hover,
.basicB a:hover {
  opacity: 1 !important;
  background-color: #f0ebe3 !important;
  transform: none !important;
}
.basicA a::after,
.basicB a::after {
  display: none !important;
}
.basicA h3,
.basicB h3,
.serviceA h3 {
  background: var(--stone) !important; /* solid */
  background-image: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  font-family: var(--font-title) !important;
  font-weight: normal !important;
  letter-spacing: -0.02em !important;
  position: relative;
  z-index: 1;
  color: #f7f2ea !important;
  border-bottom: 1px solid rgba(184, 160, 120, 0.35);
  border-radius: 0 !important;
}
.basicA .txt,
.basicB .txt {
  position: relative;
  z-index: 1;
  color: var(--ink-soft) !important;
  text-shadow: none !important;
  font-weight: 400 !important;
  text-align: left !important;
  padding: 26px 24px 22px !important;
  line-height: 1.7 !important;
  font-size: 15px !important;
}
.basicA a:hover .txt,
.basicB a:hover .txt {
  color: var(--ink) !important;
}

.serviceA {
  background-image: none !important;
  background-color: var(--paper-card) !important;
}
.serviceA .txt {
  position: relative;
  z-index: 1;
  padding: 20px 22px 18px !important;
}
.serviceA .txt .telnum {
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  color: var(--ink) !important;
  text-align: left !important;
  margin: 4px 0 12px !important;
}
.serviceA .txt .telnum p.num {
  background: none !important;
  padding-left: 0 !important;
  color: var(--ink) !important;
  font-size: 28px !important;
  height: auto !important;
  line-height: 1.2 !important;
  font-family: var(--font-title) !important;
}
.serviceA .txt .telnum p.num::before {
  content: none;
}
.serviceA .txt li {
  font-weight: 400 !important;
  color: var(--ink-soft) !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.55 !important;
  margin: 6px 0 !important;
  font-size: 14px !important;
  letter-spacing: -0.3px !important;
  white-space: normal !important;
  overflow: visible !important;
}
.serviceA .txt li span {
  color: var(--wine) !important;
  font-weight: 600 !important;
  width: auto !important;
  min-width: 56px !important;
  margin-right: 10px !important;
  display: inline-block !important;
}
.serviceA .txt li span span {
  display: none !important;
}
.serviceA .txt .extt {
  color: var(--wine) !important;
  font-weight: 600 !important;
  margin-top: 12px !important;
  font-size: 14px !important;
}
.basicA:hover h3,
.basicB:hover h3,
.serviceA:hover h3 {
  background: var(--stone-soft) !important;
}

/* ---------- Sub pages ---------- */
#sideA h2 {
  background: transparent !important;
  background-image: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border: none !important;
  border-bottom: 1px solid var(--gold-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--font-title) !important;
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
  color: var(--wine) !important;
}
#sideA h2 p {
  opacity: 1 !important;
  color: var(--ink-faint) !important;
}
#sideA .snb_2dul {
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  border: 0;
}
#sideA li .snb_2da {
  background-color: transparent !important;
  background-image: none !important;
  border-color: var(--paper-line) !important;
  color: var(--ink-soft) !important;
  font-weight: 400 !important;
  padding-left: 12px !important;
  transition: color 0.15s ease;
}
#sideA li .snb_2da:hover,
#sideA li:first-child .snb_2da:hover {
  background-color: transparent !important;
  background-image: none !important;
  color: var(--wine) !important;
}
#sideA .snb_2dli .on,
#sideA .snb_2dli a:hover.on,
#sideA li .snb_2da.on {
  background-color: transparent !important;
  background-image: none !important;
  border-color: var(--paper-line) !important;
  border-left: 3px solid var(--wine) !important;
  color: var(--wine) !important;
  font-weight: 600 !important;
}
#sideA .on2 {
  color: var(--wine) !important;
}

#container {
  background: transparent !important;
}
/* 서브 상단 비주얼: AI 일러 배경 제거 → 깔끔한 단색 배너 (제목만 유지) */
#sVisualA {
  border-radius: 0 !important;
  box-shadow: none !important;
  background: var(--paper) !important;
  background-image: none !important;
  position: relative;
  border: none !important;
  border-bottom: 1px solid var(--paper-line) !important;
  height: 120px !important;
}
#sVisualA::after { content: none !important; }
/* svbg 배경 이미지 전부 제거 */
.svbg1, .svbg2, .svbg3, .svbg4, .svbg5,
.svbg6, .svbg7, .svbg8, .svbg9 {
  background: var(--paper) !important;
  background-image: none !important;
}
/* 배너 텍스트: 흰색+그림자 → 어두운 잉크색 (밝은 배경 대응) */
#sVisualA .svisTxt .tit { color: var(--ink-soft) !important; text-shadow: none !important; margin-top: 30px !important; }
#sVisualA .svisTxt .name { color: var(--wine) !important; text-shadow: none !important; }
/* 타이틀 박스 배경 이미지(tit_bg, tit_bg08) 제거 → 단색 */
#ctt_con .titA .titbox,
div.titA .titbox {
  background: var(--paper-card) !important;
  background-image: none !important;
}
#ctt_con .titA .titbox::after { content: none !important; }
#container .titbox3, .titbox3 {
  background: var(--paper-card) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border: 1px solid var(--paper-line) !important;
}

#container_title {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 8px 0 4px !important;
  box-sizing: border-box !important;
  border: none !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
#container_title .conTit_tt {
  border-bottom: 1px solid var(--paper-line) !important;
  font-family: var(--font-title) !important;
  font-weight: normal !important;
  color: var(--ink) !important;
  letter-spacing: -0.03em !important;
  padding-bottom: 14px !important;
}
#locationA .cloc a,
#locationA .cloc span {
  color: var(--ink-faint) !important;
}

.scontA {
  background: var(--paper-card) !important;
  border: 1px solid var(--paper-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
#ctt_con,
#ctt header h1 {
  font-family: var(--font-ui) !important;
}
#ctt header h1 {
  font-size: 0 !important;
  line-height: 0 !important;
}

#ctt_con .titA {
  position: relative !important;
  overflow: visible !important;
  margin-bottom: 12px !important;
}
#ctt_con .titA .titbox {
  position: relative !important;
  top: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 26px 26px 26px 28px !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background-size: cover !important;
  background-position: center !important;
}
#ctt_con .titA .titbox::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(42, 36, 32, 0.48);
  pointer-events: none;
}
#ctt_con .titA .titbox .tit01 {
  position: relative;
  z-index: 1;
  color: #fff !important;
  font-family: var(--font-title) !important;
}

/* Board */
#bo_list .tbl_head01,
#bo_v .tbl_head01 {
  border-radius: 0;
  overflow: hidden;
  border: 1px solid var(--paper-line);
}
#bo_list .tbl_head01 thead th,
#bo_v .tbl_head01 thead th {
  background: #ebe4d8 !important;
  color: var(--ink) !important;
  border-color: var(--paper-line) !important;
  font-weight: 600 !important;
}
#bo_list .tbl_head01 td,
#bo_v .tbl_head01 td {
  border-color: var(--paper-line) !important;
  color: var(--ink-soft) !important;
  vertical-align: middle !important;
}
#bo_list .td_date,
#bo_list .td_datetime,
#bo_list .td_num {
  white-space: nowrap !important;
  word-break: keep-all !important;
}
#bo_list .td_date {
  width: 96px !important;
  min-width: 96px !important;
}
#bo_list .td_num {
  width: 64px !important;
}
#bo_list .btn_b02,
#bo_v .btn_b02,
.btn_submit {
  background: var(--stone) !important;
  border-color: var(--stone) !important;
  color: #fff !important;
  border-radius: var(--radius) !important;
}
/* default.css a.btn_b01은 #494949 배경 — 글자만 검게 덮으면 안 보인다. 종이톤 보조 버튼으로 통일 */
#bo_list .btn_b01,
#bo_v .btn_b01,
a.btn_b01 {
  border-radius: var(--radius) !important;
  background: var(--paper-card) !important;
  border: 1px solid var(--paper-line) !important;
  color: var(--ink) !important;
  padding: 8px 18px !important;
}
#bo_list .btn_b01:hover,
#bo_v .btn_b01:hover,
a.btn_b01:hover {
  border-color: var(--wine) !important;
  color: var(--wine) !important;
}
#bo_v_title {
  color: var(--ink) !important;
  border-bottom-color: var(--paper-line) !important;
}
#bo_v_info {
  background: #ebe4d8 !important;
  border-bottom-color: var(--paper-line) !important;
  border-radius: 0;
}
#bo_list .cnt_cmt {
  color: var(--wine) !important;
}

a.btn_admin,
.btn_admin {
  background: var(--wine) !important;
  border-color: var(--wine) !important;
}

#container .tit01 {
  color: var(--ink) !important;
  font-family: var(--font-title) !important;
  font-weight: normal !important;
}
#container .tit01 span {
  color: var(--ink-faint) !important;
  font-weight: 400 !important;
  opacity: 1;
}
#container .tit02 {
  color: var(--wine) !important;
}
#container .tit04 {
  color: var(--ink) !important;
  font-weight: 600 !important;
}

.tbl01 {
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  border-radius: 0;
  border: 1px solid var(--paper-line) !important;
  background: var(--paper-card) !important;
}
.tbl01 th {
  background: #ebe4d8 !important;
  color: var(--ink) !important;
  font-weight: 600 !important;
  border-color: var(--paper-line) !important;
}
.tbl01 td {
  background: var(--paper-card) !important;
  color: var(--ink-soft) !important;
  border-color: var(--paper-line) !important;
  font-weight: 400 !important;
}

/* ---------- Footer: 솔리드 스톤 ---------- */
#ft {
  background: var(--stone) !important;
  border-top: 1px solid #2a2420 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  color: rgba(255, 250, 240, 0.88) !important;
}
#ft .flogo {
  color: #fff !important;
  font-family: var(--font-title) !important;
  font-weight: normal !important;
  letter-spacing: -0.02em !important;
}
#ft .info,
#ft .cp {
  color: rgba(255, 255, 255, 0.68) !important;
  font-weight: 400 !important;
}
#ft .info_poin {
  color: rgba(255, 255, 255, 0.92) !important;
  font-weight: 500 !important;
}
#ft .frmenu a {
  color: rgba(255, 255, 255, 0.82) !important;
  font-weight: 400 !important;
}
#ft .frmenu a:hover {
  color: #fff !important;
}

/* 코너 배너: 좌하단으로 이동 (우측 공지 스트립과 위계 충돌 방지) */
/* 미사 안내 블록을 대문에 추가 → 떠다니는 코너 배너는 중복이라 제거 */
#connerBanner {
  display: none !important;
}
#connerBanner img {
  border-radius: 0 !important;
  border: none !important;
  width: 100% !important;
  height: auto !important;
  display: block !important;
}
/* 퀵메뉴 자체는 배너보다 위 레이어 유지 */
.quickArea {
  position: relative;
  z-index: 35 !important;
}

.page_top_down a,
#page_top_down a {
  border-radius: 0 !important;
  box-shadow: none !important;
  opacity: 0.85 !important;
}

#showcase .showcase-arrow-next,
#showcase .showcase-arrow-previous {
  opacity: 0.55 !important;
}
#showcase .showcase-button-wrapper span {
  text-shadow: none;
  font-weight: 500 !important;
  letter-spacing: 0.06em;
}

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
  }
}

/* === BOARD STABILITY (audit fix) === */
#bo_list,
#bo_v {
  width: 100% !important;
  box-sizing: border-box !important;
}
#bo_list .tbl_head01,
#bo_list .tbl_wrap {
  width: 100% !important;
  overflow-x: auto !important;
}
#bo_list .tbl_head01 table {
  width: 100% !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
}
#bo_list .tbl_head01 th,
#bo_list .tbl_head01 td {
  padding: 12px 10px !important;
  vertical-align: middle !important;
  border-bottom: 1px solid var(--paper-line) !important;
}
#bo_list .td_num { width: 56px !important; text-align: center !important; color: #8a8278 !important; }
#bo_list .td_name { width: 110px !important; color: #5a524a !important; }
#bo_list .td_date { width: 100px !important; white-space: nowrap !important; color: #8a8278 !important; }
#bo_list .td_subject {
  white-space: normal !important;
  word-break: keep-all !important;
  line-height: 1.45 !important;
}
#bo_list .td_subject a {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow: visible !important;
  text-overflow: clip !important;
  color: #2a2420 !important;
  font-weight: 500 !important;
}
#bo_list .td_subject a:hover { color: #8b3a32 !important; }
#bo_v_con img,
.scontA img {
  max-width: 100% !important;
  height: auto !important;
}
/* ---------- 정보 위계 (hierarchy) ---------- */
/* 페이지 크롬 타이틀: 서브 페이지 1순위 제목 */
#container_title .conTit_tt,
#container_title .conTit_tt span {
  font-size: 26px !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  letter-spacing: -0.03em !important;
}
/* 본문 내 대제목은 페이지 타이틀보다 한 단계 낮춤 (역전 방지) */
.scontA .tit01,
#ctt_con .tit01,
#container .tit01 {
  font-size: 22px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
}
.scontA .tit02,
#container .tit02 {
  font-size: 18px !important;
  font-weight: 600 !important;
}
.scontA .tit03,
#container .tit03 {
  font-size: 16px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
}
.scontA .tit04,
#container .tit04 {
  font-size: 17px !important;
  font-weight: 600 !important;
}
/* 게시글 상세: 글 제목이 섹션명보다 우위 */
#bo_v_title {
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  word-break: keep-all !important;
  color: var(--ink) !important;
  letter-spacing: -0.03em !important;
  margin: 4px 0 10px !important;
}
/* 상세에서 섹션 타이틀(conTit)은 맥락, 글 제목이 주인공 */
#bo_v ~ * #container_title .conTit_tt,
body:has(#bo_v_title) #container_title .conTit_tt,
body:has(#bo_v_title) #container_title .conTit_tt span {
  font-size: 20px !important;
  font-weight: 500 !important;
  color: var(--ink-soft) !important;
}
/* 카페 출처 노트: 메타 톤 (제목과 경쟁 금지) */
.cafe-board-note {
  font-size: 12.5px !important;
  color: var(--ink-faint) !important;
  background: transparent !important;
  border: none !important;
  border-left: 2px solid var(--paper-line) !important;
  padding: 4px 0 4px 10px !important;
  margin: 0 0 16px !important;
}
/* 목록 메타보다 제목 강조 */
#bo_list .td_subject a {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
}
#bo_list .td_num,
#bo_list .td_date,
#bo_list .td_name {
  font-size: 13px !important;
  font-weight: 400 !important;
}
/* 브레드크럼은 항상 2순위 */
#locationA,
#locationA .cloc,
#locationA .cloc a,
#locationA .cloc span {
  font-size: 12.5px !important;
  color: var(--ink-faint) !important;
  font-weight: 400 !important;
}
/* 사이드 그룹(H2) > 메뉴 항목 */
/* sideA h2 는 sub.css 높이(230px) 레이아웃 유지 — 글자만 위계 */
#sideA h2 {
  font-size: 24px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}
#sideA h2 p {
  font-size: 12.5px !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
  margin-top: 10px !important;
  opacity: 0.78 !important;
}
#sideA li .snb_2da {
  font-size: 14.5px !important;
  font-weight: 400 !important;
}
#sideA li .snb_2da.on {
  font-weight: 600 !important;
}
/* GNB 1차 내비 */
.gnb_1da {
  font-size: 15px !important;
  font-weight: 500 !important;
}
#sideA .snb_2dul {
  overflow: visible !important;
}
#sideA {
  overflow: visible !important;
}
/* side menu many items: allow natural height, no clip */
#wrapper .wrap {
  overflow: visible !important;
}
#container {
  overflow: visible !important;
}
.pg_wrap { clear: both; }

/* ===== 홈 미사 안내 + 오시는 길 블록 ===== */
.homeInfo {
  display: flex;
  gap: 20px;
  width: 1200px;
  max-width: 100%;
  margin: 0 auto 22px;
  box-sizing: border-box;
}
.homeInfo-mass { flex: 1.4; }
.homeInfo-way { flex: 1; }
.homeInfo-mass, .homeInfo-way {
  background: var(--paper-card);
  border: 1px solid var(--paper-line);
  border-radius: 2px;
  padding: 22px 26px;
  box-sizing: border-box;
  /* 두 카드는 flex로 높이가 같아진다. 내부도 세로 flex로 만들어
     남는 공간을 표/지도가 흡수하게 해야 카드 아래가 비지 않는다. */
  display: flex;
  flex-direction: column;
}
/* 미사 시간표가 남는 세로 공간을 나눠 갖는다 */
.homeInfo-mass .massTable { flex: 1; }
/* 지도는 오시는 길 카드의 남는 공간을 채운다 */
.homeInfo-way .homeInfo-mapbox { flex: 1; display: flex; }
.homeInfo-tit {
  font-family: var(--font-title);
  font-size: 19px;
  color: var(--wine);
  margin: 0 0 14px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--paper-line);
  font-weight: 600;
}
.homeInfo-sub {
  font-size: 13px;
  color: var(--ink-faint);
  font-weight: 400;
  margin-left: 10px;
  letter-spacing: 0;
}
.massTable { width: 100%; border-collapse: collapse; }
.massTable th, .massTable td {
  text-align: left;
  padding: 9px 4px;
  font-size: 15px;
  border-bottom: 1px solid #efeae2;
  vertical-align: middle;
}
.massTable th {
  width: 90px;
  color: var(--wine);
  font-weight: 600;
  white-space: nowrap;
}
.massTable td { color: var(--ink-soft); letter-spacing: -0.01em; word-break: keep-all; }
.massTable tr:last-child th, .massTable tr:last-child td { border-bottom: none; }
.homeInfo-note {
  font-size: 13px;
  color: var(--ink-faint);
  line-height: 1.5;
  margin: 12px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--paper-line);
}
.homeInfo-addr { font-size: 15.5px; color: var(--ink); margin: 4px 0 8px; letter-spacing: -0.01em; }
.homeInfo-tel { font-size: 14px; color: var(--ink-soft); margin: 0 0 12px; }
.homeInfo-hours {
  font-size: 13.5px;
  color: var(--ink-soft);
  margin: 0 0 16px;
  padding: 9px 14px;
  background: rgba(122, 26, 46, 0.045);
  border-left: 2px solid var(--gold-line);
  border-radius: 2px;
  letter-spacing: -0.01em;
  word-break: keep-all;
}
.homeInfo-hours .hours-label { color: var(--wine); font-weight: 600; margin-right: 10px; }
.homeInfo-more, .homeInfo-map {
  display: inline-block;
  font-size: 13.5px;
  color: var(--wine);
  text-decoration: none;
  font-weight: 600;
  margin-top: 6px;
}
.homeInfo-more:hover, .homeInfo-map:hover { text-decoration: underline; }
@media (max-width: 1240px) {
  .homeInfo { width: 100%; flex-direction: column; padding: 0 16px; }
  /* 세로 스택에서는 높이를 맞출 짝이 없으므로 늘리기를 끈다 */
  .homeInfo-mass .massTable,
  .homeInfo-way .homeInfo-mapbox { flex: none; }
  .homeInfo-way .homeInfo-mapbox { display: block; }
  .homeInfo-mapbox iframe { height: 200px; }
}

/* ===== 홈 회원 영역 ===== */
.homeMember {
  width: 1200px;
  max-width: 100%;
  margin: 0 auto 22px;
  box-sizing: border-box;
  background: var(--paper-card);
  border: 1px solid var(--paper-line);
  border-left: 3px solid var(--wine);
  border-radius: 2px;
  padding: 22px 26px;
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}
.homeMember-head { display: flex; align-items: baseline; gap: 12px; }
.homeMember-eyebrow { font-size: 12px; letter-spacing: 0.22em; color: var(--gold-line); font-weight: 700; }
.homeMember-head strong {
  font-family: var(--font-title);
  font-size: 19px;
  color: var(--ink);
  font-weight: 600;
  letter-spacing: -0.02em;
}
.homeMember-desc {
  flex: 1 1 260px;
  margin: 0;
  font-size: 14.5px;
  color: var(--ink-soft);
  line-height: 1.6;
  word-break: keep-all;
}
.homeMember-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.homeMember-btn {
  display: inline-block;
  padding: 9px 18px;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--paper-line);
  border-radius: 2px;
  color: var(--ink) !important;
  background: #fff;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.homeMember-btn:hover { border-color: var(--wine); color: var(--wine) !important; }
.homeMember-btn.primary { background: var(--wine); border-color: var(--wine); color: #fff !important; }
.homeMember-btn.primary:hover { background: var(--wine-deep); border-color: var(--wine-deep); color: #fff !important; }

/* ===== 홈 환영 인사말 ===== */
.homeWelcome {
  display: flex;
  gap: 20px;
  width: 1200px;
  max-width: 100%;
  margin: 0 auto 22px;
  box-sizing: border-box;
}
.homeWelcome-txt {
  flex: 1.5;
  background: var(--paper-card);
  border: 1px solid var(--paper-line);
  border-radius: 2px;
  padding: 30px 34px;
  box-sizing: border-box;
}
.homeWelcome-eyebrow {
  display: inline-block;
  font-size: 13px;
  letter-spacing: 0;
  color: var(--ink-soft);
  font-weight: 500;
  margin-bottom: 10px;
}
.homeWelcome-txt h3 {
  font-family: var(--font-title);
  font-size: 23px;
  color: var(--ink);
  margin: 0 0 14px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.homeWelcome-txt p {
  font-size: 15px;
  line-height: 1.85;
  color: var(--ink-soft);
  margin: 0 0 18px;
  letter-spacing: -0.01em;
  word-break: keep-all;
}
.homeWelcome-more {
  display: inline-block;
  font-size: 13.5px;
  color: var(--wine);
  font-weight: 600;
  text-decoration: none;
}
.homeWelcome-more:hover { text-decoration: underline; }
.homeWelcome-verse {
  flex: 1;
  background: var(--stone);
  border-radius: 2px;
  padding: 30px 34px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-left: 3px solid var(--gold-line);
}
.verse-quote {
  font-family: var(--font-title);
  font-size: 18px;
  line-height: 1.7;
  color: #f3ebe0;
  margin: 0 0 14px;
  word-break: keep-all;
}
.verse-ref { font-size: 14px; color: var(--gold-line); margin: 0; text-align: right; }

/* ===== 홈 본당 갤러리 ===== */
.homeGallery {
  width: 1200px;
  max-width: 100%;
  margin: 0 auto 22px;
  box-sizing: border-box;
}
.homeGallery-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 14px;
}
.homeGallery-head h3 {
  font-family: var(--font-title);
  font-size: 20px;
  color: var(--wine);
  margin: 0;
  font-weight: 600;
}
.homeGallery-head a { font-size: 13.5px; color: var(--ink-faint); text-decoration: none; }
.homeGallery-head a:hover { color: var(--wine); }
.homeGallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.homeGallery-grid li { margin: 0; }
.homeGallery-grid a {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 2px;
  border: 1px solid var(--paper-line);
  text-decoration: none;
}
.homeGallery-grid img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.homeGallery-grid a:hover img { transform: scale(1.04); }
.homeGallery-grid span {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 10px 14px;
  background: linear-gradient(to top, rgba(38,32,28,0.82), rgba(38,32,28,0));
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
@media (max-width: 1240px) {
  .homeWelcome, .homeGallery { width: 100%; padding: 0 16px; }
  .homeWelcome { flex-direction: column; }
  .homeGallery-grid { grid-template-columns: 1fr; }
}

/* 오시는 길 지도 iframe */
.homeInfo-mapbox {
  margin: 14px 0 16px;
  border: 1px solid var(--paper-line);
  border-radius: 2px;
  overflow: hidden;
  line-height: 0;
}
.homeInfo-mapbox iframe {
  width: 100%;
  /* 200px는 최소치. 카드가 더 높으면 부모 flex를 따라 늘어난다. */
  min-height: 200px;
  height: 100%;
  border: 0;
  display: block;
  filter: grayscale(0.15) contrast(1.02);
}

/* 데스크톱: 햄버거 버튼 숨김 (모바일에서만 노출) */
#m_navToggle { display: none; }

/* ===== 모바일 반응형 (max-width: 1240px — 태블릿 포함) ===== */
@media (max-width: 1240px) {
  /* a11y-touch-target: 모바일 최소 터치 영역(44px) 확보 */
  #ft a, #ft_copy a,
  .td_subject a, .bo_v_nb a,
  .notiA li a, .recA li a,
  .snb_2da, #sideA a,
  .member-bar a,
  .links a, .homeInfo-more, .homeInfo-map, .homeWelcome-more,
  .homeGallery-head a, .bt_more {
    display: inline-block;
    min-height: 44px;
    line-height: 1.5;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    box-sizing: border-box;
  }
  .td_subject a, .notiA li a, .recA li a { width: 100%; }
  /* 브레드크럼도 터치 영역 확보 */
  #locationA a, .cloc a {
    display: inline-block;
    min-height: 40px;
    line-height: 40px;
    padding: 0 2px !important;
    box-sizing: border-box;
  }
  .homeMember {
    width: 100% !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 20px 18px !important;
  }
  .homeMember-head { flex-wrap: wrap !important; gap: 8px !important; }
  .homeMember-desc { flex: 1 1 auto !important; width: 100% !important; max-width: 100% !important; }
  .homeMember-actions {
    width: 100% !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .homeMember-btn {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    text-align: center;
    padding: 10px 6px !important;
  }
  #ft #ft_copy { padding: 18px 16px !important; box-sizing: border-box !important; }
  /* --- 데스크톱 고정폭 해제 (default.css 1200px/min-width:1200px 덮기) --- */
  #totalWrap,
  #hd,
  #hd_wrapper,
  #tlog_naviA,
  #tlog_naviA .wrap,
  #snb_wrap .snb,
  #wrapper,
  #wrapper .wrap,
  .wrap,
  #ft,
  #ft #ft_copy,
  #mtopArea,
  #mVisualA,
  #showcase,
  .quickArea,
  dl.notiArea,
  dl.recArea,
  .homeInfo,
  .homeWelcome,
  .homeGallery {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  #hd_pop { width: 100% !important; }

  html, body { overflow-x: hidden !important; }
  /* 모바일 한글 본문 최소 가독성 */
  body { font-size: 15px !important; }

  /* --- 서브페이지 본문: sub.css의 880px 고정폭(+50px 여백) 해제 --- */
  /* 좌측 섹션메뉴(#sideA)는 햄버거 내비와 중복 → 본문 우선 */
  #sideA { display: none !important; }
  /* 서브 비주얼: 배경 제거 후 빈 띠만 남음 → 모바일 공간 회수 */
  #sVisualA { display: none !important; }
  #container {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  #container_title,
  .sub_tab, .sub_tab2, .sub_tabmenu {
    width: auto !important;
    max-width: 100% !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
    box-sizing: border-box !important;
  }
  .scontA {
    width: auto !important;
    max-width: 100% !important;
    padding: 14px !important;
    box-sizing: border-box !important;
  }

  /* --- 헤더 / 로고 --- */
  #hd { min-height: 56px !important; }
  #hd_wrapper { height: auto !important; overflow: visible !important; }
  #tlog_naviA { height: auto !important; }
  #tlog_naviA .wrap { position: static !important; }

  #gnb {
    width: 100% !important;
    padding: 0 !important;
    height: auto !important;
    position: relative !important;
  }
  #gnb_bg { height: auto !important; }

  #logo {
    position: static !important;
    left: auto !important;
    margin: 0 !important;
    width: auto !important;
    max-width: 70% !important;
    height: 56px !important;
    padding-left: 14px !important;
    display: flex !important;
    align-items: center !important;
  }
  #logo img { max-height: 48px !important; max-width: 100% !important; }

  /* 회원 바(로그인/회원가입/글쓰기): 헤더 우측 상단 유지, 로고와 겹치지 않게 축소 */
  #hd .member-bar {
    right: 62px !important;
    top: 18px !important;
    font-size: 12px !important;
    z-index: 60 !important;
  }
  #hd .member-bar a { margin-left: 6px !important; }

  /* --- 햄버거 버튼 --- */
  #m_navToggle {
    display: block !important;
    position: absolute !important;
    top: 10px !important;
    right: 12px !important;
    width: 40px !important;
    height: 40px !important;
    padding: 9px 8px !important;
    background: transparent !important;
    border: 1px solid var(--paper-line) !important;
    border-radius: var(--radius) !important;
    box-sizing: border-box !important;
    z-index: 70 !important;
    cursor: pointer;
  }
  #m_navToggle span {
    display: block;
    width: 100%;
    height: 2px;
    margin: 4px 0;
    background: var(--stone);
    transition: transform 0.2s ease, opacity 0.2s ease;
  }
  body.m_navOpen #m_navToggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  body.m_navOpen #m_navToggle span:nth-child(2) { opacity: 0; }
  body.m_navOpen #m_navToggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  /* --- 메인 메뉴: 세로 드롭다운 (햄버거 토글) --- */
  #gnb h2 { display: none !important; }
  #gnb_1dul {
    display: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fffcf7 !important;
    border-top: 1px solid var(--paper-line) !important;
  }
  body.m_navOpen #gnb_1dul { display: block !important; }
  #gnb_1dul:after { content: none !important; }
  .gnb_1dli {
    float: none !important;
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid var(--paper-line) !important;
  }
  .gnb_1da {
    display: block !important;
    text-align: left !important;
    height: auto !important;
    line-height: normal !important;
    min-height: 48px !important;
    padding: 14px 18px !important;
    font-size: 16px !important;
  }

  /* 모바일에선 메가 메뉴(hover 기반 2차 패널) 숨김 — 1차 링크로 진입 */
  #snb_wrap { display: none !important; }

  /* Language 셀렉트(tnb): 메뉴 목록 하단에 편입 */
  #tnb {
    position: static !important;
    left: auto !important;
    margin: 0 !important;
    top: auto !important;
    width: 100% !important;
    display: none !important;
    border-top: 1px solid var(--paper-line) !important;
  }
  body.m_navOpen #tnb { display: none !important; }
  #tnb dt {
    width: 100% !important;
    box-sizing: border-box !important;
    height: auto !important;
    min-height: 44px !important;
    line-height: 44px !important;
    padding-left: 18px !important;
    background-position: center right 16px !important;
  }
  #tnb dd {
    position: static !important;
    width: 100% !important;
    box-sizing: border-box !important;
    display: block !important;
    border: none !important;
  }
  #tnb dd li { padding-left: 18px !important; }

  /* 코너 배너: 모바일 숨김 (데스크톱도 이미 숨김) */
  #connerBanner { display: none !important; }

  /* --- 히어로: 텍스트 패널을 사진 아래로 세로 스택 --- */
  #mVisualA { height: auto !important; }
  #showcase, #showcase .showcase-slide, #showcase .showcase-content { width: 100% !important; }
  #showcase .showcase-slide a.thumb { display: block !important; position: relative !important; }
  #mVisualA .mpimg {
    position: relative !important;
    width: 100% !important;
    height: 240px !important;
  }
  #mVisualA .mpimg img { width: 100% !important; height: 240px !important; }
  #mVisualA .mvisTxt {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    height: auto !important;
    padding: 20px 18px !important;
    box-sizing: border-box !important;
  }
  #mVisualA .mvisTxt h3 { font-size: 22px !important; margin-bottom: 12px !important; }
  #mVisualA .mvisTxt .mtxt_exp { font-size: 15px !important; line-height: 1.55 !important; height: auto !important; }
  #mVisualA .mtxt_go {
    position: relative !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: inline-block !important;
    margin-top: 14px !important;
    padding: 8px 16px !important;
  }
  #mVisualA .mvisBd { display: none !important; }
  /* 슬라이더 화살표/버튼: 좁은 화면에서 겹침 방지 */
  #showcase .showcase-arrow-next,
  #showcase .showcase-arrow-previous { display: none !important; }
  #showcase .showcase-button-wrapper { left: 18px !important; bottom: auto !important; }

  /* --- 퀵메뉴 아이콘: 7개 → 4열 그리드 --- */
  .quickArea { height: auto !important; padding: 0 !important; overflow: visible !important; }
  .quickArea ul.quick {
    display: grid !important;
    /* 아이콘 6개 기준 3열(3+3). 개수가 바뀌어도 빈칸이 남지 않게 auto-fit 사용 */
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0 !important;
  }
  .quickArea ul.quick:after { content: none !important; }
  .quickArea ul.quick li {
    float: none !important;
    width: auto !important;
    border-top: 1px solid var(--paper-line) !important;
  }
  .quickArea ul.quick li a {
    height: auto !important;
    min-height: 96px !important;
    padding: 60px 4px 12px 4px !important;
    border-left: 1px solid var(--paper-line) !important;
  }
  .quickArea a .qoff, .quickArea a .qon { top: 14px !important; height: 40px !important; }
  .quickArea a .qicon { max-height: 40px !important; }
  .quickArea ul.quick li a p {
    margin-top: 0 !important;
    font-size: 12.5px !important;
    line-height: 1.3 !important;
    word-break: keep-all !important;
  }
  /* 7개 아이템이 4열이면 마지막 줄 3개+빈칸 1개 → 마지막 셀을 2칸으로 늘려 줄을 채운다 */
  /* 항목 수가 열 수의 배수일 때 균등 배치 — 특수 규칙 불필요 */

  /* --- 콘텐츠 좌우 여백 --- */
  #wrapper { padding-bottom: 20px !important; }
  #wrapper .wrap { padding: 0 14px 8px !important; }

  /* 홈 블록: 세로 스택 (1240 미디어쿼리 보강) */
  .homeInfo, .homeWelcome { flex-direction: column !important; padding: 0 !important; }
  .homeGallery { padding: 0 !important; }
  .homeGallery-grid { grid-template-columns: 1fr !important; }
  .homeWelcome-txt, .homeWelcome-verse { padding: 22px 20px !important; }
  .homeWelcome-txt h3 { font-size: 20px !important; }
  .homeInfo-mass, .homeInfo-way { padding: 20px 18px !important; }

  /* 갤러리 목록: 좁은 화면에서는 1열 (266px 고정폭 해제) */
  #bo_gall #gall_ul { grid-template-columns: repeat(2, 1fr) !important; gap: 12px 10px !important; }
  #bo_gall .gall_li { width: auto !important; margin: 0 !important; }
  #bo_gall .gall_li .gall_href_img,
  #bo_gall .gall_li .gall_sbj { width: auto !important; }
  #bo_gall .gall_li .gall_text_href { height: auto !important; }
  #bo_gall .gall_li .imgbd { width: 100% !important; }
  #bo_gall .gall_li img { width: 100% !important; }
  #bo_gall .album-thumb img { height: 100% !important; object-fit: cover !important; }

  /* --- 공지 / 본당소식: 라벨 위, 항목 세로 목록 --- */
  dl.notiArea, dl.recArea {
    display: block !important;
    margin: 0 auto 12px !important;
  }
  dl.notiArea dt, dl.recArea dt {
    flex: none !important;
    width: 100% !important;
    min-height: 44px !important;
    display: block !important;
  }
  dl.notiArea dt a, dl.recArea dt a { min-height: 44px !important; }
  dl.notiArea dd, dl.recArea dd {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
  }
  dl.notiArea dd ul.notiA, dl.recArea dd ul.recA {
    display: block !important;
    flex-wrap: wrap !important;
  }
  dl.notiArea dd .notiA li, dl.recArea dd .recA li {
    flex: none !important;
    display: block !important;
    width: 100% !important;
    border-left: none !important;
    border-top: 1px solid var(--paper-line) !important;
  }
  dl.notiArea dd .notiA li:first-child, dl.recArea dd .recA li:first-child {
    border-top: none !important;
  }
  dl.notiArea dd .notiA li a, dl.recArea dd .recA li a {
    white-space: normal !important;
    word-break: keep-all !important;
    min-height: 44px !important;
    padding: 12px 16px !important;
    box-sizing: border-box !important;
  }

  /* 브레드크럼: absolute라 긴 제목과 겹침 → 제목 아래 static 배치 */
  #locationA {
    position: static !important;
    text-align: left !important;
    margin: 6px 0 0 !important;
  }

  /* --- g5 게시판 목록 테이블: 카드형 세로 스택 --- */
  .tbl_head01.tbl_wrap { overflow-x: auto !important; }
  .tbl_head01 table { width: 100% !important; }
  .tbl_head01 thead { display: none !important; }
  .tbl_head01 tbody tr {
    display: block !important;
    padding: 12px 4px !important;
    border-bottom: 1px solid var(--paper-line) !important;
  }
  .tbl_head01 tbody td,
  #bo_list .tbl_head01 tbody td {
    display: inline !important;
    border: none !important;
    padding: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    font-size: 13px !important;
    color: #8a8178 !important;
    word-break: keep-all !important;
  }
  /* 번호·조회수 열은 모바일 저가치 → 숨김 (#bo_list 변형은 데스크톱 ID 규칙 특이도 대응) */
  .tbl_head01 tbody td.td_num,
  .tbl_head01 tbody td.td_num2,
  #bo_list .tbl_head01 tbody td.td_num,
  #bo_list .tbl_head01 tbody td.td_num2 { display: none !important; }
  .tbl_head01 tbody td.td_subject,
  #bo_list .tbl_head01 tbody td.td_subject {
    display: block !important;
    width: auto !important;
    margin-bottom: 5px !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    color: inherit !important;
    white-space: normal !important;
  }
  .tbl_head01 tbody td.td_subject a { white-space: normal !important; }
  .tbl_head01 tbody td.td_name { margin-right: 10px !important; }
  .tbl_head01 tbody td.td_datetime,
  .tbl_head01 tbody td.td_date { margin-right: 10px !important; }

  /* --- 게시판 뷰(bo_v): 본문 가로 넘침 방지 --- */
  #bo_v { width: auto !important; }
  #bo_v_title { font-size: 20px !important; line-height: 1.4 !important; word-break: keep-all !important; }
  #bo_v_atc, #bo_v_con { overflow-x: auto !important; }
  #bo_v_con img, #bo_v_atc img { max-width: 100% !important; height: auto !important; }
  #bo_v_con iframe { max-width: 100% !important; }

  /* 게시판 상단 총건수/검색·페이지네이션: 줄바꿈 허용 */
  .bo_list_total { float: none !important; }
  .pg_wrap { max-width: 100% !important; }
  .pg { display: inline-flex !important; flex-wrap: wrap !important; justify-content: center !important; }

  /* --- 푸터: 세로 정렬, 전체폭 --- */
  #ft #ft_copy {
    padding: 22px 16px !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }
  #ft .frmenu {
    position: static !important;
    top: auto !important;
    right: auto !important;
    margin-top: 12px !important;
    display: block !important;
  }
}

/* ===== 초소형 화면 보강 (max-width: 480px) ===== */
@media (max-width: 480px) {
  /* 퀵메뉴 4열 → 3열. 3+3+1이므로 마지막 셀(오시는길)은 한 줄 전체를 차지 */
  .quickArea ul.quick { grid-template-columns: repeat(3, 1fr) !important; }

  #mVisualA .mvisTxt h3 { font-size: 20px !important; }
  #hd .member-bar { font-size: 11px !important; right: 58px !important; }
  #logo { max-width: 62% !important; }
}

/* 서브 상단 배경띠(#sVisualA): 배경 이미지 제거 후 빈 121px 띠만 남음 — 데스크톱에서도 숨김 */
#sVisualA { display: none !important; }

/* 페이지 제목(#container_title)이 카드(.scontA)보다 50px 안쪽에서 시작해 어긋나 보임
   — 제목·브레드크럼을 카드 바깥 변에 맞춘다 (좁은 화면에서는 auto로 수축) */
#container_title { margin: 30px 0 !important; width: auto !important; max-width: 880px !important; }

/* ---------- 갤러리 목록: 고정 266px 셀 탓에 화면 폭마다 간격이 제멋대로 ----------
   트랙을 균등 분할하고 카드 내부(이미지/제목/메타)를 트랙 폭에 맞춘다 */
#bo_gall #gall_ul {
  display: grid !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 12px 0 0 !important;
  grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)) !important;
  gap: 14px 12px !important;
  justify-content: stretch !important;
}
#bo_gall .gall_sbj { display: block; margin: 8px 0 2px; font-weight: 600; color: var(--ink); font-size: 14px; line-height: 1.35; }
#bo_gall .gall_date { display: block; font-size: 12px; color: var(--ink-faint); }
#bo_gall .gall-empty {
  display: block; height: 100%; background: #efeae2; color: #8a8278;
  text-align: center; line-height: 112px; font-size: 13px;
}
#bo_gall .gall_li { width: auto !important; margin: 0 !important; }
#bo_gall .gall_li .gall_con { width: 100% !important; }
#bo_gall .gall_href_img,
#bo_gall .album-thumb {
  display: block !important;
  width: 100% !important;
  height: 112px !important;
  aspect-ratio: 3 / 2 !important;
  overflow: hidden !important;
  background: #efeae2;
}
#bo_gall .gall_href_img img,
#bo_gall .album-thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}
#bo_gall .gall_li .imgbd { width: 100% !important; height: 100% !important; }
#bo_gall .gall_li .gall_text_href,
#bo_gall .gall_li .gall_sbj,
#bo_gall .gall_li .gall_line { width: 100% !important; box-sizing: border-box; }

/* 게시글 상세: sub.css .scontA 440px / basic 스킨 #bo_v_atc 200px min-height가
   짧은 글에서 큰 빈 공간을 만든다 */
.scontA { min-height: 0 !important; }
#bo_v_atc { min-height: 0 !important; }
/* 본문 끝의 빈 p(border-top만 남은 유령 구분선) 제거 */
#bo_v_con p:empty { display: none !important; }

/* 어두운 배너용 흰 글자였던 블록이 밝은 카드로 옮겨지면 안 보임 — 잉크색 복원 */
#ctt_con .titbox2 .bul3 li,
#ctt_con .titbox2 .bul3 li span,
#ctt_con .titbox2 dl p.tit01,
#ctt_con .titbox2 dl p.tit01 span { color: var(--ink-soft) !important; text-shadow: none !important; }
#ctt_con .titbox2 .pott5 { color: var(--wine) !important; }


/* ===== board-standard-layout: 일반 게시판 표준 정돈 =====
   .scontA의 좌우 50px 패딩 탓에 카드 안쪽 여백이 과하고 Total 줄과 표가 어긋나 보임 */
#bo_list, #bo_gall { width: 100% !important; }
/* 카드 안쪽 여백: sub.css의 50px는 과함 → 28px 표준 */
@media (min-width: 1241px) {
  .scontA { padding: 24px 28px 32px !important; }
}
/* 상단 바: Total 좌측 · 검색 우측 (한 줄 정렬) */
#bo_list .bo_fx, #bo_gall .bo_fx {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin: 0 0 14px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--paper-line) !important;
}
#bo_list_total { padding: 0 !important; font-size: 14px !important; color: var(--ink-soft) !important; }
#bo_list .bo_fx .btn { float: none !important; margin: 0 !important; }
#bo_sch { border: 0 !important; padding: 0 !important; margin: 0 !important; }
#bo_sch form { display: flex !important; gap: 6px !important; align-items: center !important; }
#bo_sch select, #bo_sch .frm_input {
  height: 34px !important;
  padding: 0 8px !important;
  border: 1px solid var(--paper-line) !important;
  background: #fff !important;
  font-size: 13.5px !important;
  box-sizing: border-box !important;
}
#bo_sch .frm_input { width: 160px !important; }
#bo_sch .btn_search {
  height: 34px !important;
  padding: 0 16px !important;
  border: 1px solid var(--stone) !important;
  background: var(--stone) !important;
  color: #fff !important;
  font-size: 13.5px !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
#bo_sch .btn_search:hover { background: var(--wine) !important; border-color: var(--wine) !important; }
/* 표: 카드 변에 정렬 */
#bo_list .tbl_head01, #bo_list .tbl_wrap { margin: 0 0 18px !important; width: 100% !important; }
#bo_list .tbl_head01 table { width: 100% !important; }
/* 페이지 네비: 표와 같은 폭에서 가운데 */
#bo_list .pg_wrap, #bo_gall .pg_wrap {
  margin: 4px 0 0 !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid var(--paper-line) !important;
}

/* titA: 배너만 있고 본문이 없는 유령 제목(본당소개 '작전동성당 소개')만 숨긴다.
   미사 참례 자세·주보성인처럼 본문이 들어 있는 titA는 살리고, 장식 배너는 일반 제목으로. */
#ctt_con .titA:not(:has(dl)):not(:has(p)):not(:has(img)):not(:has(ul)) {
  display: none !important;
}
#ctt_con .titA > .titbox {
  background: none !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 0 10px !important;
  overflow: visible !important;
}
#ctt_con .titA > .titbox::after { display: none !important; }
#ctt_con .titA > .titbox .tit01 {
  color: var(--ink) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: -0.03em;
}
#ctt_con .titA > .titbox .tit01 span { display: none !important; }
#ctt_con .titA hr.h100,
#ctt_con .titA hr.h40,
#ctt_con .titA hr.h30,
#ctt_con .titA hr.h25 { display: none !important; }
#ctt_con .titA dl.fl,
#ctt_con .titA .fl {
  display: flex !important;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
  float: none !important;
  width: 100% !important;
}
#ctt_con .titA dl.fl dt,
#ctt_con .titA .fl dt {
  float: none !important;
  width: auto !important;
  flex: 1 1 280px;
  margin: 0 !important;
}
#ctt_con .titA dl.fl dd,
#ctt_con .titA .fl dd {
  float: none !important;
  width: auto !important;
  flex: 0 1 260px;
  margin: 0 !important;
}
#ctt_con .titA img {
  max-width: 100% !important;
  height: auto !important;
  display: block;
}
#ctt_con .titA .bul2,
#ctt_con .titA li {
  overflow-wrap: break-word;
  word-break: keep-all;
}
@media (max-width: 1240px) {
  #ctt_con .titA dl.fl,
  #ctt_con .titA .fl {
    display: block !important;
  }
  #ctt_con .titA dl.fl dd,
  #ctt_con .titA .fl dd {
    margin-top: 16px !important;
  }
}

/* 표 caption이 h4와 겹쳐 보이던 것 — .sound_only와 같은 시각 숨김 */
.tblwrap { position: relative; }
#ctt caption,
#ctt_con caption {
  position: absolute !important;
  left: 0 !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* 단체안내 '모집중' 카테고리 헤더: 표 안 배지와 중복이므로 숨김 */
#bo_list .titbox3 { display: none !important; }

/* 맨 위로: 푸터와 겹치지 않는 작은 돌색 버튼 */
.page_top_down,
#page_top_down {
  right: 20px !important;
  bottom: 92px !important;
  left: auto !important;
  margin-left: 0 !important;
}
.page_top_down.min_fixed,
#page_top_down.min_fixed {
  left: auto !important;
  right: 16px !important;
  margin-left: 0 !important;
}
.page_top_down a.top,
#page_top_down a.top {
  width: 44px !important;
  height: 44px !important;
  background: #7a1a2e !important;
  color: #fff !important;
  text-indent: 0 !important;
  text-align: center !important;
  line-height: 44px !important;
  font-size: 0 !important;
  letter-spacing: 0.06em;
  opacity: 0.88 !important;
}
.page_top_down a.top::after,
#page_top_down a.top::after {
  content: "맨 위";
  font-size: 11px;
  color: #fff;
}
.page_top_down a.down,
#page_top_down a.down { display: none !important; }

/* 사이드바 h2: 영문 제목("Jakjeon Catholic Church")이 단어 중간에서 끊기던 것 방지.
   고정 height 230px는 3줄 제목 시 잘림 → min-height로 완화 */
#sideA h2 {
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  height: auto !important;
  /* 230px 고정 최소높이는 설명 아래 큰 빈 공간을 만든다 — 내용에 맞춘다 */
  min-height: 0 !important;
  padding-bottom: 34px !important;
}

/* 상단 Language 셀렉터 제거 (영문 페이지는 유지하되 진입 UI만 숨김) */
#tnb { display: none !important; }

/* 데스크톱: 회원바가 GNB 마지막 항목(미사와 성사) 위에 겹치지 않게 헤더 위에 한 줄 */
@media (min-width: 1241px) {
  /* 메뉴줄 위에 회원바용 빈 줄(34px)을 두지 않고, 회원바를 메뉴줄 우측에 나란히
     둔다(헤더 125 → 90px). 로그인 시 회원바가 길어져 메뉴와 겹치므로 메뉴
     컨테이너는 로고~회원바 사이 공간에만 놓고 그 안에서 가운데 정렬한다. */
  #hd { padding-top: 0 !important; }
  #logo { top: 0 !important; }
  #hd .member-bar {
    top: 50% !important;
    transform: translateY(-50%);
    /* 로고와 같이 1200 래퍼 좌표. right:50% + -588px = 래퍼 우측에서 12px 안쪽 */
    right: 50% !important;
    margin-right: -588px;
    z-index: 60 !important;
    white-space: nowrap;
  }
}

/* 댓글 · 쪽지 */
.member-bar a {
  margin-left: 10px;
  color: #2a2420;
  text-decoration: none;
  font-weight: 500;
}
.member-bar a:hover { color: #8b3a32; }
.member-bar .mb-name { font-weight: 600; color: #2a2420; margin-left: 0; }
.member-bar a.mb-name { color: #2a2420; }
.memo-badge {
  display: inline-block;
  min-width: 16px;
  margin-left: 3px;
  padding: 0 5px;
  border-radius: 8px;
  background: #8b3a32;
  color: #fff;
  font-size: 11px;
  line-height: 16px;
  text-align: center;
  font-weight: 600;
  vertical-align: 1px;
}
.cmt-n { color: #8b3a32; font-size: 12.5px; font-weight: 600; }

/* 글 보기: '목록' 버튼이 float로 댓글 상자 위에 탭처럼 붙던 그누보드 잔재 해제 */
#bo_v {
  display: flex !important;
  flex-direction: column;
}
#bo_v > #bo_vc,
#bo_v > .cmt-box { order: 4; }
#bo_v > .bo_v_bot,
#bo_v > #bo_v_bot { order: 5; }

#bo_v .bo_v_bot,
#bo_v #bo_v_bot {
  float: none !important;
  margin: 8px 0 0 !important;
  padding: 16px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--paper-line) !important;
  overflow: visible !important;
}
#bo_v .bo_v_bot:after,
#bo_v #bo_v_bot:after {
  content: none !important;
  display: none !important;
}
#bo_v .bo_v_nb,
#bo_v .bo_v_com,
#bo_v .bo_v_nb li,
#bo_v .bo_v_com li {
  float: none !important;
  display: inline-block !important;
  margin: 0 14px 0 0 !important;
  padding: 0 !important;
}
#bo_v .bo_v_bot .btn_b01,
#bo_v #bo_v_bot .btn_b01,
#bo_v .bo_v_nb a.btn_b01 {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  color: var(--wine) !important;
  font-size: 14px !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  line-height: 1.5 !important;
  height: auto !important;
}
#bo_v .bo_v_bot .btn_b01:hover,
#bo_v #bo_v_bot .btn_b01:hover {
  color: var(--wine-deep) !important;
}

#bo_vc.cmt-box,
#bo_vc,
.cmt-box {
  margin: 28px 0 4px !important;
  padding: 20px 0 8px !important;
  border: 0 !important;
  border-top: 1px solid var(--paper-line) !important;
  background: transparent !important;
}
.cmt-box h3 {
  margin: 0 0 12px;
  font-size: 16px;
  color: #2a2420;
  font-weight: 600;
}
.cmt-box h3 span { color: #8b3a32; }
.cmt-empty, .cmt-login {
  margin: 0 0 14px;
  font-size: 14px;
  color: #8a8278;
}
.cmt-login a { color: #8b3a32; }
.cmt-item {
  padding: 12px 0;
  border-top: 1px solid #e8e2d8;
}
.cmt-item header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #5a524a;
}
.cmt-item header strong { color: #2a2420; }
.cmt-date { color: #8a8278; }
.cmt-item p {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 1.65;
  color: #2a2420;
  word-break: keep-all;
}
.cmt-del { margin-left: auto; }
.cmt-del button {
  border: 0;
  background: none;
  color: #a02040;
  cursor: pointer;
  font-size: 12.5px;
  padding: 0;
}
.cmt-form label {
  display: block;
  margin: 12px 0 6px;
  font-size: 13px;
  color: #5a524a;
}
.cmt-form textarea {
  width: 100%;
  min-height: 88px;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #d8d0c4;
  font-size: 14px;
  line-height: 1.55;
  background: #fff;
  resize: vertical;
}
.cmt-form button {
  margin-top: 10px;
  padding: 8px 18px;
  background: #3c3530;
  color: #fff;
  border: 0;
  cursor: pointer;
  font-size: 13.5px;
}
.cmt-form button:hover { background: #8b3a32; }
.memo-tabs {
  display: flex;
  gap: 8px;
  margin: 0 0 16px;
  flex-wrap: wrap;
}
.memo-tabs a {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid #d8d0c4;
  color: #2a2420;
  text-decoration: none;
  font-size: 13.5px;
  background: #fff;
}
.memo-tabs a.on, .memo-tabs a:hover {
  border-color: #8b3a32;
  color: #8b3a32;
}
.memo-tabs .memo-write { background: #3c3530; color: #fff; border-color: #3c3530; }
.memo-tabs .memo-write:hover { background: #8b3a32; color: #fff; }
.dash-table tr.unread td { font-weight: 600; color: #2a2420; }
.memo-meta { font-size: 13.5px; color: #5a524a; margin: 0 0 16px; }
.memo-body {
  padding: 18px 20px;
  border: 1px solid #e2dbd0;
  background: #fffcf7;
  font-size: 15px;
  line-height: 1.7;
  color: #2a2420;
  margin: 0 0 18px;
  min-height: 80px;
}
.memo-wrap .btn {
  display: inline-block;
  margin-right: 8px;
  margin-top: 0;
  padding: 9px 16px;
  background: #3c3530;
  color: #fff;
  border: 0;
  cursor: pointer;
  font-size: 13.5px;
  text-decoration: none;
}

/* =========================================================
   미사·성사 (ctt_50xx) — 명동성당 인포그래픽 스킨 해제
   문구·마크업은 그대로. 본당 주보/미사 안내 편집 톤만 입힘.
   ========================================================= */
article[class^="ctt_50"] #ctt_con {
  font-size: 16px !important;
  line-height: 1.9 !important;
  color: var(--ink-soft) !important;
  word-break: keep-all;
  overflow-wrap: break-word;
}
article[class^="ctt_50"] #ctt_con p {
  margin: 0 0 1.1em !important;
  line-height: 1.9 !important;
}
article[class^="ctt_50"] #ctt_con .titA hr {
  display: none !important;
}
article[class^="ctt_50"] #ctt_con hr.h5,
article[class^="ctt_50"] #ctt_con hr.h10,
article[class^="ctt_50"] #ctt_con hr.h15,
article[class^="ctt_50"] #ctt_con hr.h20,
article[class^="ctt_50"] #ctt_con hr.h25,
article[class^="ctt_50"] #ctt_con hr.h30,
article[class^="ctt_50"] #ctt_con hr.h40,
article[class^="ctt_50"] #ctt_con hr.h50 {
  display: block !important;
  border: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  background: none !important;
  overflow: hidden !important;
}
article[class^="ctt_50"] #ctt_con hr.h5 { margin: 6px 0 !important; }
article[class^="ctt_50"] #ctt_con hr.h10 { margin: 10px 0 !important; }
article[class^="ctt_50"] #ctt_con hr.h15 { margin: 14px 0 !important; }
article[class^="ctt_50"] #ctt_con hr.h20 { margin: 18px 0 !important; }
article[class^="ctt_50"] #ctt_con hr.h25 { margin: 20px 0 !important; }
article[class^="ctt_50"] #ctt_con hr.h30 { margin: 22px 0 !important; }
article[class^="ctt_50"] #ctt_con hr.h40 { margin: 26px 0 !important; }
article[class^="ctt_50"] #ctt_con hr.h50 { margin: 32px 0 !important; }
article[class^="ctt_50"] #ctt_con .titA hr,
article[class^="ctt_50"] #ctt_con .titA hr.h25,
article[class^="ctt_50"] #ctt_con .titA hr.h30,
article[class^="ctt_50"] #ctt_con .titA hr.h40,
article[class^="ctt_50"] #ctt_con .titA hr.h100 {
  display: none !important;
  margin: 0 !important;
  height: 0 !important;
}
article[class^="ctt_50"] #ctt_con hr.bd {
  display: block !important;
  border: 0 !important;
  border-top: 1px solid var(--paper-line) !important;
  height: 0 !important;
  margin: 36px 0 28px !important;
  background: none !important;
}

/* 도입 문장: 마젠타 제목 → 왼쪽 와인 룰 인용 */
article[class^="ctt_50"] #ctt_con > .tit02,
article[class^="ctt_50"] #ctt_con p.tit02,
article[class^="ctt_50"] #ctt_con p.tit03 {
  display: block !important;
  font-family: var(--font-title) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  line-height: 1.7 !important;
  letter-spacing: -0.02em !important;
  padding: 2px 0 2px 18px !important;
  margin: 0 0 22px !important;
  border-left: 3px solid var(--wine) !important;
  background: none !important;
}
article[class^="ctt_50"] #ctt_con .pott,
article[class^="ctt_50"] #ctt_con .pott1,
article[class^="ctt_50"] #ctt_con .pott2,
article[class^="ctt_50"] #ctt_con .pott3,
article[class^="ctt_50"] #ctt_con .pott5,
article[class^="ctt_50"] #ctt_con .pott8,
article[class^="ctt_50"] #ctt_con .pott9 {
  color: inherit !important;
}
article[class^="ctt_50"] #ctt_con td .pottB.pott1,
article[class^="ctt_50"] #ctt_con td span.pottB {
  color: var(--wine) !important;
  font-size: 12.5px !important;
  letter-spacing: 0.06em;
  font-weight: 600 !important;
}
article[class^="ctt_50"] #ctt_con .pott4,
article[class^="ctt_50"] #ctt_con .pottS {
  color: var(--ink-faint) !important;
  font-size: 13.5px !important;
  margin: 0 0 14px !important;
}

/* 섹션 제목: 네이비 대형 → 와인 소제목 + 금색 짧은 선 */
article[class^="ctt_50"] #ctt_con .tit04,
article[class^="ctt_50"] #ctt_con h4.tit04 {
  display: block !important;
  font-family: var(--font-title) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--wine) !important;
  letter-spacing: 0.08em !important;
  padding: 0 0 10px !important;
  margin: 8px 0 18px !important;
  border: 0 !important;
  background: none !important;
  line-height: 1.4 !important;
}
article[class^="ctt_50"] #ctt_con .tit04::after {
  content: "";
  display: block;
  width: 36px;
  height: 1px;
  margin-top: 10px;
  background: var(--gold-line);
}

/* 미사 참례 자세: 배너 히어로 대신 주보 목록 */
article[class^="ctt_50"] #ctt_con .titA {
  margin: 0 0 8px !important;
  padding: 0 !important;
  overflow: visible !important;
}
article[class^="ctt_50"] #ctt_con .titA > .titbox {
  background: none !important;
  background-image: none !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 0 14px !important;
}
article[class^="ctt_50"] #ctt_con .titA > .titbox .tit01 {
  font-family: var(--font-title) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--wine) !important;
  letter-spacing: 0.08em !important;
  line-height: 1.4 !important;
}
article[class^="ctt_50"] #ctt_con .titA > .titbox .tit01::after {
  content: "";
  display: block;
  width: 36px;
  height: 1px;
  margin-top: 10px;
  background: var(--gold-line);
}
article[class^="ctt_50"] #ctt_con .titA dl.fl,
article[class^="ctt_50"] #ctt_con .titA .fl {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 28px 36px;
  align-items: start;
  float: none !important;
  width: 100% !important;
}
article[class^="ctt_50"] #ctt_con .titA dl.fl dt,
article[class^="ctt_50"] #ctt_con .titA dl.fl dd {
  float: none !important;
  width: auto !important;
  flex: none !important;
  margin: 0 !important;
}
article[class^="ctt_50"] #ctt_con .titA .bul2 {
  color: var(--ink-soft) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
article[class^="ctt_50"] #ctt_con .titA .bul2 > li {
  background-image: none !important;
  padding: 12px 0 12px 18px !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--paper-line);
  position: relative;
  color: var(--ink-soft) !important;
  font-size: 15.5px !important;
  line-height: 1.75 !important;
}
article[class^="ctt_50"] #ctt_con .titA .bul2 > li:last-child {
  border-bottom: 0;
}
article[class^="ctt_50"] #ctt_con .titA .bul2 > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.35em;
  width: 8px;
  height: 1px;
  background: var(--wine);
}
article[class^="ctt_50"] #ctt_con .titA img {
  width: 100% !important;
  max-width: 220px !important;
  height: auto !important;
  border: 1px solid var(--paper-line);
  padding: 5px;
  background: #fff;
  box-sizing: border-box;
}

/* 미사 시간: 칸 표 대신 주보 시간표 */
article[class^="ctt_50"] #ctt_con .tbl01 {
  width: 100% !important;
  border: 0 !important;
  border-top: 1.5px solid var(--ink) !important;
  border-bottom: 1px solid var(--paper-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  margin: 4px 0 18px !important;
}
article[class^="ctt_50"] #ctt_con .tbl01 th,
article[class^="ctt_50"] #ctt_con .tbl01 td {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--paper-line) !important;
  text-align: left !important;
  vertical-align: top !important;
}
article[class^="ctt_50"] #ctt_con .tbl01 tr:last-child th,
article[class^="ctt_50"] #ctt_con .tbl01 tr:last-child td {
  border-bottom: 0 !important;
}
article[class^="ctt_50"] #ctt_con .tbl01 th {
  color: var(--wine) !important;
  font-family: var(--font-title) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.02em;
  width: 22%;
  padding: 16px 20px 16px 0 !important;
  white-space: nowrap;
}
article[class^="ctt_50"] #ctt_con .tbl01 td,
article[class^="ctt_50"] #ctt_con .tbl01 td.txtLef {
  color: var(--ink) !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
  padding: 16px 0 !important;
  font-weight: 400 !important;
}
article[class^="ctt_50"] #ctt_con > span.pottB,
article[class^="ctt_50"] #ctt_con > span.pottB.pott1 {
  display: block !important;
  margin-top: 10px !important;
  color: var(--ink-faint) !important;
  font-size: 13.5px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}

/* 절차 박스: 3px 라벤더 테두리 + 색띠 바 → 세로 단계 */
article[class^="ctt_50"] #ctt_con .titbox2 {
  position: relative !important;
  display: block !important;
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 8px !important;
}
article[class^="ctt_50"] #ctt_con .titbox2 .clear {
  display: none !important;
}
article[class^="ctt_50"] #ctt_con dl.flowc {
  display: block !important;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 16px 0 16px 48px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--paper-line) !important;
  position: relative;
  box-sizing: border-box !important;
  overflow: visible !important;
}
article[class^="ctt_50"] #ctt_con dl.flowc:last-of-type {
  border-bottom: 0 !important;
}
article[class^="ctt_50"] #ctt_con dl.flowc::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--paper-line);
}
article[class^="ctt_50"] #ctt_con dl.flowc:first-of-type::before { top: 26px; }
article[class^="ctt_50"] #ctt_con dl.flowc:last-of-type::before { bottom: auto; height: 26px; }
article[class^="ctt_50"] #ctt_con dl.flowc dt,
article[class^="ctt_50"] #ctt_con dl.flowc dt.wid_full {
  float: none !important;
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  color: var(--ink) !important;
  font-family: var(--font-title) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  box-sizing: border-box !important;
}
article[class^="ctt_50"] #ctt_con dl.flowc dt span {
  position: absolute !important;
  left: 0 !important;
  top: 16px;
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border-radius: 0 !important;
  color: var(--wine) !important;
  font-family: var(--font-title) !important;
  font-style: normal !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em;
  text-align: left !important;
}
article[class^="ctt_50"] #ctt_con dl.flowc dd {
  float: none !important;
  display: block !important;
  width: 100% !important;
  padding: 6px 0 0 !important;
  margin: 0 !important;
  background: none !important;
  color: var(--ink-soft) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  box-sizing: border-box !important;
}

/* 예비신자 안내 dl.fl6: 불릿 떠있는 2단 → 라벨 행 */
article[class^="ctt_50"] #ctt_con dl.fl6 {
  display: grid !important;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 6px 24px;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 16px 0 !important;
  border-top: 1px solid var(--paper-line) !important;
  box-sizing: border-box !important;
}
article[class^="ctt_50"] #ctt_con dl.fl6 > dt {
  float: none !important;
  width: auto !important;
  padding: 0 !important;
  background: none !important;
  color: var(--wine) !important;
  font-family: var(--font-title) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
}
article[class^="ctt_50"] #ctt_con dl.fl6 > dd {
  float: none !important;
  width: auto !important;
  color: var(--ink-soft) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}
article[class^="ctt_50"] #ctt_con .titbox4,
article[class^="ctt_50"] #ctt_con .pott1.titbox4 {
  background: #f7f3ec !important;
  border: 0 !important;
  border-left: 3px solid var(--wine) !important;
  padding: 12px 16px !important;
  margin: 0 0 8px !important;
  color: var(--ink) !important;
  overflow: visible !important;
}

/* 하단 CTA: 사진 배너+외곽선 버튼 → 짧은 안내 줄 */
article[class^="ctt_50"] #ctt_con .titbox3 {
  background: #f7f3ec !important;
  background-image: none !important;
  color: var(--ink-soft) !important;
  border: 0 !important;
  border-left: 3px solid var(--wine) !important;
  padding: 16px 20px !important;
  margin: 8px 0 12px !important;
  overflow: visible !important;
}
article[class^="ctt_50"] #ctt_con .titbox3 a.btn_01,
article[class^="ctt_50"] #ctt_con .titbox3 a.btn_01.themeA {
  float: none !important;
  display: inline !important;
  width: auto !important;
  margin: 0 18px 0 0 !important;
  padding: 0 !important;
  height: auto !important;
  line-height: 1.5 !important;
  border: 0 !important;
  background: none !important;
  color: var(--wine) !important;
  font-family: var(--font-title) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  text-align: left !important;
}
article[class^="ctt_50"] #ctt_con .titbox3 a.btn_01::after,
article[class^="ctt_50"] #ctt_con .titbox3 a.btn_01:hover::after {
  display: none !important;
  content: none !important;
}
article[class^="ctt_50"] #ctt_con .titbox3 a.btn_01:hover {
  color: var(--wine-deep) !important;
}
article[class^="ctt_50"] #ctt_con .titbox3 .mt10,
article[class^="ctt_50"] #ctt_con .titbox3 .fs2 {
  display: block !important;
  float: none !important;
  margin: 6px 0 0 !important;
  color: var(--ink-faint) !important;
  font-size: 13.5px !important;
}

/* 번호 목록: 하늘색 큰 숫자 → 와인 작은 숫자 */
article[class^="ctt_50"] #ctt_con ul.bul5 {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border-top: 1.5px solid var(--ink);
}
article[class^="ctt_50"] #ctt_con ul.bul5 li,
article[class^="ctt_50"] #ctt_con ul.bul5 li.pt0,
article[class^="ctt_50"] #ctt_con ul.bul5 li.bdn {
  position: relative !important;
  padding: 14px 0 14px 36px !important;
  border-bottom: 1px solid var(--paper-line) !important;
  font-size: 15.5px !important;
  line-height: 1.75 !important;
  color: var(--ink-soft) !important;
}
article[class^="ctt_50"] #ctt_con ul.bul5 li span,
article[class^="ctt_50"] #ctt_con ul.bul5 li span.pott8 {
  position: absolute !important;
  left: 0 !important;
  top: 14px;
  font-size: 13px !important;
  font-family: var(--font-title) !important;
  font-weight: 600 !important;
  color: var(--wine) !important;
  letter-spacing: 0.04em !important;
}

article[class^="ctt_50"] #ctt_con ul.bul {
  margin: 8px 0 0 !important;
  padding: 0 !important;
}
article[class^="ctt_50"] #ctt_con ul.bul li {
  background-image: none !important;
  padding: 6px 0 6px 14px !important;
  position: relative;
  color: var(--ink-soft) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}
article[class^="ctt_50"] #ctt_con ul.bul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.95em;
  width: 6px;
  height: 1px;
  background: var(--wine);
}
article[class^="ctt_50"] #ctt_con .libox3 {
  display: inline !important;
  color: var(--wine) !important;
  font-family: var(--font-title) !important;
  font-weight: 600 !important;
  margin-right: 10px !important;
}

@media (max-width: 1240px) {
  article[class^="ctt_50"] #ctt_con .titA dl.fl,
  article[class^="ctt_50"] #ctt_con .titA .fl {
    display: block !important;
    grid-template-columns: none;
  }
  article[class^="ctt_50"] #ctt_con .titA img {
    max-width: 180px !important;
    margin-top: 12px;
  }
}
@media (max-width: 720px) {
  article[class^="ctt_50"] #ctt_con .tbl01,
  article[class^="ctt_50"] #ctt_con .tbl01 tbody,
  article[class^="ctt_50"] #ctt_con .tbl01 tr,
  article[class^="ctt_50"] #ctt_con .tbl01 th,
  article[class^="ctt_50"] #ctt_con .tbl01 td {
    display: block !important;
    width: 100% !important;
  }
  article[class^="ctt_50"] #ctt_con .tbl01 th {
    padding: 14px 0 2px !important;
    border-bottom: 0 !important;
    white-space: normal;
  }
  article[class^="ctt_50"] #ctt_con .tbl01 td,
  article[class^="ctt_50"] #ctt_con .tbl01 td.txtLef {
    padding: 0 0 14px !important;
  }
  article[class^="ctt_50"] #ctt_con dl.fl6 {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  article[class^="ctt_50"] #ctt_con .titbox3 a.btn_01 {
    display: block !important;
    margin: 0 0 6px !important;
  }
}

/* =========================================================
   전 사이트 크롬 — 남색 사이드·칸 표를 본당 주보 톤으로
   ========================================================= */
#sideA {
  width: 220px !important;
}
#sideA h2 {
  background: transparent !important;
  background-image: none !important;
  color: var(--wine) !important;
  height: auto !important;
  min-height: 0 !important;
  width: 220px !important;
  padding: 6px 8px 14px 4px !important;
  margin: 0 !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  border: 0 !important;
  border-bottom: 1px solid var(--gold-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
#sideA h2 p {
  color: var(--ink-faint) !important;
  opacity: 1 !important;
  margin-top: 6px !important;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
}
#sideA .snb_2dul {
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  box-shadow: none !important;
}
#sideA li .snb_2da,
#sideA li:first-child .snb_2da {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--paper-line) !important;
  color: var(--ink-soft) !important;
  padding: 12px 8px 12px 12px !important;
  font-size: 14.5px !important;
}
#sideA li .snb_2da:hover,
#sideA li:first-child .snb_2da:hover {
  background: transparent !important;
  background-image: none !important;
  color: var(--wine) !important;
}
#sideA .snb_2dli .on,
#sideA .snb_2dli a:hover.on,
#sideA li .snb_2da.on {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--paper-line) !important;
  border-left: 3px solid var(--wine) !important;
  color: var(--wine) !important;
  font-weight: 600 !important;
  padding-left: 9px !important;
}

/* 본문 표: 50xx뿐 아니라 모든 콘텐츠를 주보형 시간표로 */
#ctt_con .tbl01,
#ctt_con .tbl_st1 {
  width: 100% !important;
  border: 0 !important;
  border-top: 1.5px solid var(--ink) !important;
  border-bottom: 1px solid var(--paper-line) !important;
  background: transparent !important;
  margin: 4px 0 18px !important;
}
#ctt_con .tbl01 th,
#ctt_con .tbl01 td,
#ctt_con .tbl_st1 th,
#ctt_con .tbl_st1 td {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--paper-line) !important;
  text-align: left !important;
  vertical-align: top !important;
}
#ctt_con .tbl01 tr:last-child th,
#ctt_con .tbl01 tr:last-child td,
#ctt_con .tbl_st1 tr:last-child th,
#ctt_con .tbl_st1 tr:last-child td {
  border-bottom: 0 !important;
}
#ctt_con .tbl01 th,
#ctt_con .tbl_st1 th {
  color: var(--wine) !important;
  font-family: var(--font-title) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  padding: 12px 16px 12px 0 !important;
  white-space: nowrap;
}
#ctt_con .tbl01 td,
#ctt_con .tbl01 td.txtLef,
#ctt_con .tbl_st1 td {
  color: var(--ink) !important;
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  padding: 12px 0 !important;
}

#ctt_con .tit04,
#ctt_con h4.tit04 {
  display: block !important;
  font-family: var(--font-title) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--wine) !important;
  letter-spacing: 0.08em !important;
  padding: 0 0 10px !important;
  margin: 8px 0 16px !important;
  border: 0 !important;
  background: none !important;
}
#ctt_con .tit04::after {
  content: "";
  display: block;
  width: 36px;
  height: 1px;
  margin-top: 10px;
  background: var(--gold-line);
}

#ctt_con .titbox2 {
  border: 0 !important;
  background: transparent !important;
  padding: 4px 0 4px 16px !important;
  margin: 8px 0 !important;
  overflow: visible !important;
  border-left: 3px solid var(--gold-line) !important;
}

#bo_list .tbl_head01,
#bo_list .tbl_wrap {
  border: 0 !important;
  border-top: 1.5px solid var(--ink) !important;
  background: transparent !important;
}
#bo_list .tbl_head01 thead th {
  background: transparent !important;
  color: var(--wine) !important;
  font-weight: 600 !important;
  border-color: var(--paper-line) !important;
}
#bo_list .tbl_head01 td {
  background: transparent !important;
}

#bo_v_atc {
  min-height: 0 !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}
#bo_v_con { margin-bottom: 12px !important; }

@media (max-width: 720px) {
  #ctt_con .tbl01,
  #ctt_con .tbl_st1,
  #ctt_con .tbl01 tbody,
  #ctt_con .tbl_st1 tbody,
  #ctt_con .tbl01 tr,
  #ctt_con .tbl_st1 tr,
  #ctt_con .tbl01 th,
  #ctt_con .tbl_st1 th,
  #ctt_con .tbl01 td,
  #ctt_con .tbl_st1 td {
    display: block !important;
    width: 100% !important;
  }
  #ctt_con .tbl01 th,
  #ctt_con .tbl_st1 th {
    padding: 14px 0 2px !important;
    border-bottom: 0 !important;
    white-space: normal !important;
  }
  #ctt_con .tbl01 td,
  #ctt_con .tbl01 td.txtLef,
  #ctt_con .tbl_st1 td {
    padding: 0 0 14px !important;
  }
}
