@charset "utf-8";
/* 오즈교정치과 리팩터링 추가 스타일 (2026-10-23)
 * 원본 디자인(default.css · sub.css)은 그대로 두고, 새로 생긴 것만 여기 둔다.
 * - 메뉴: 오즈치과 외 메뉴는 상담 박스 없음(.no_cs) · 버튼 3개(전후사진 · 공지사항 · 오시는길)
 * - 게시판(.oz-board) · 전후사진 안내(.oz-gate) · 비급여 · 약관 · 둘러보기 · 사진 확대
 * 클래스 이름에 'inner' 를 넣지 않는다 — default.css 의 [class*='inner'] 폭 규칙이 걸린다. */

:root {
	--oz-line: #e6e6e6;
	--oz-text: #222;
	--oz-sub: #585858;
	--oz-bg: #f8f8f8;
}

/* 접근성 */
.oz-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.oz-skip { position: absolute; left: 0; top: -100px; z-index: 1000; padding: 10px 16px; background: #222; color: #fff; font-size: 1.5rem; }
.oz-skip:focus { top: 0; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--main-color); outline-offset: 2px; }

/* 머리말 — 상담 박스 없는 메뉴는 하위 메뉴가 넓게 */
#gnb .inner.no_cs .nav_sec { width: auto; flex: 1; }
#gnb .cs_sec .numb a { color: inherit; }
#gnb .cs_bot a { width: calc(33.333% - 6px); }
#gnb .cs_bot .notice span {
	padding-left: 24px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2368c5c8' stroke-width='2' stroke-linecap='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 8h8M8 12h8M8 16h5'/%3E%3C/svg%3E");
	background-size: 17px auto;
}

/* 하위 메뉴(탭)를 그림 맨 위(머리말 바로 아래)에 겹쳐 — 상단 메뉴에서 골라도 첫 화면에서 바뀐 탭이 바로 보이게 (사용자 지시 2026-10-23) */
.sub_visual.oz-has-snb { min-height: max(640px, 80vh); padding: 170px 0 30px; }   /* 그림이 화면의 약 80% (원본 810px ≈ 90%) — 사용자 지시 2026-10-23 */
.sub_visual .sub_tit .oz-hero-group { font-size: 2rem; font-weight: 500; letter-spacing: 1px; margin-bottom: .2rem; opacity: .9; }
.sub_visual.oz-has-snb .sub_tit .tit { margin: 0 0 2rem; }
.sub_visual.oz-has-snb .submenu { position: absolute; left: 0; right: 0; top: 100px; z-index: 2; border-bottom: 0; background: rgba(255, 255, 255, .9); backdrop-filter: blur(4px); box-shadow: 0 1px 0 rgba(0, 0, 0, .06); }
.sub_visual.oz-has-snb .submenu ul li a { color: #333; font-size: 1.6rem; line-height: 7rem; padding: 0 36px; }   /* 탭 살짝 작게 (원본 1.8rem · 10rem) */
.sub_visual.oz-has-snb .submenu ul li a:hover { color: var(--main-color); }
.sub_visual.oz-has-snb .submenu ul li a.act,
.sub_visual.oz-has-snb .submenu ul li a.act:hover { color: #fff; }
.sub_visual.oz-has-snb .submenu ul li a.act::after { display: none; }
.sub_visual.oz-no-tabs { padding-top: 100px; }
/* 오즈치과 메뉴(groups[].tabs = "bottom"): 예전처럼 탭은 그림 아래쪽 — 탭 링크 #snb 로 그림을 건너뛰어 탭 + 본문이 바로 (사용자 지시 2026-10-23) */
.sub_visual.oz-has-snb.oz-tabs-bottom { padding: 100px 0 70px; }
.sub_visual.oz-has-snb.oz-tabs-bottom .submenu { top: auto; bottom: 0; }
.sub { padding-top: 90px; }
/* 빠른 상담 예약 상자(원래 top 500px)가 탭을 가리지 않게 하위 페이지에서는 위로 */
.oz-sub .reserv_pop { top: 240px; }

/* 바닥글 · 메뉴 안의 전화 · 메일 링크는 주변 글자색 그대로 */
#ft address a { color: inherit; }

/* 상단 메뉴 선택 표시 — 지금 페이지가 속한 메뉴 · 펼침 메뉴의 현재 항목 (사용자 지시 2026-10-23) */
#gnb > ul > li.on > a { position: relative; color: var(--main-color); }
#gnb > ul > li.on > a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -10px; height: 3px; background: var(--main-color); }
#gnb .nav_sec ul li a.on { color: var(--main-color); }

/* 'reservation' 줄 맞춤 (사용자 지시 2026-10-23 "밀리지 않게 줄 잘 맞춰")
 * 1) 하단 위치 블록: 제목 칸(215px) 첫 줄과 큰 전화번호를 같은 기준선에
 * 2) 오시는길 진료시간 표: 제목 칸 폭이 글자 길이를 따라가 'CLINIC HOURS' 줄과 'RESERVATION' 줄의 값 시작점이 달랐다 → 폭 고정 */
.loc_sec .location .oz-tel-row { align-items: baseline; }
.loc_sec .location .oz-tel-row .tel_num { line-height: 1.1; white-space: nowrap; }
.loc_sec .location .oz-tel-row .tel_num + .add_stl { margin-top: 1rem; }
.loc_sec .location .tel_num a { color: inherit; }
.time_guide .time_row .ttl { flex: 0 0 15.5rem; white-space: nowrap; }
/* 시간 줄바꿈 금지 — 원본(맑은 고딕 Bold)에서 'AM 10:30 - PM / 08:00' 처럼 두 줄로 밀리던 문제 */
.time_guide .time_row .time_info_wr { flex: 1; min-width: 0; }
.time_guide .time_row dl dt { flex: 0 0 12rem; }
.time_guide .time_row dl dd { flex: 1; white-space: nowrap; letter-spacing: -0.8px; }
.time_guide .time_row:has(.oz-tel-row) { align-items: baseline; }
.time_guide .time_row .oz-tel-row .numb_txt { line-height: 1.1; white-space: nowrap; }
.time_guide .time_row .oz-tel-row .numb_txt a { color: inherit; }
.time_guide .time_row .oz-tel-row .txt { margin-top: .8rem; }

/* 전후사진 안내 상자(첫 화면 · 오즈치과 메뉴 하단) */
.oz-beaf-teaser .oz-teaser { margin-top: 4rem; padding: 5rem 4rem; text-align: center; background: var(--oz-bg); border: 1px solid var(--oz-line); }
.oz-teaser__txt { font-size: 1.8rem; line-height: 1.8; color: var(--oz-sub); margin-bottom: 3rem; }

/* 버튼 */
.oz-btn { display: inline-block; min-width: 220px; padding: 15px 28px; font-size: 1.7rem; font-weight: 700; line-height: 1.3; color: #fff; text-align: center; background: var(--main-color); border: 1px solid var(--main-color); border-radius: 0; cursor: pointer; transition: background .2s, color .2s; }
.oz-btn:hover { background: #4bafb2; border-color: #4bafb2; }
.oz-btn--line { color: var(--oz-text); background: #fff; border-color: #cfcfcf; min-width: 140px; }
.oz-btn--line:hover { color: #fff; }

/* 빠른 예약 폼 */
.contact_sec .chk_row .oz-agree-link { margin-left: 8px; font-size: 1.4rem; color: var(--oz-sub); text-decoration: underline; }
.oz-reserve__msg { min-height: 2.4rem; margin-top: 1.2rem; font-size: 1.5rem; line-height: 1.6; color: var(--main-color); }
.oz-reserve__msg.is-error { color: #d0443e; }

/* 게시판 공통 — 나중에 백엔드 게시판을 붙일 자리: #board[data-board][data-source] */
.oz-page .sub_con { width: calc(100% - 40px); max-width: var(--area-width); margin: 0 auto 12rem; }
.oz-board__total { margin-bottom: 1.6rem; font-size: 1.5rem; color: var(--oz-sub); }
.oz-board__total b { color: var(--main-color); }
.oz-board__empty { padding: 10rem 0; font-size: 1.7rem; color: #999; text-align: center; border-top: 2px solid #222; border-bottom: 1px solid var(--oz-line); }

/* 목록형(공지) */
.oz-list__head, .oz-list__item a { display: grid; grid-template-columns: 90px 1fr 140px; align-items: center; }
.oz-list__head { padding: 16px 0; font-size: 1.5rem; font-weight: 700; text-align: center; border-top: 2px solid #222; border-bottom: 1px solid #cfcfcf; }
.oz-list__item a { padding: 20px 0; font-size: 1.7rem; border-bottom: 1px solid var(--oz-line); transition: background .2s; }
.oz-list__item a:hover { background: var(--oz-bg); }
.oz-list__item a:hover .oz-list__title { color: var(--main-color); }
.oz-list__no, .oz-list__item time { text-align: center; color: #888; font-size: 1.5rem; }
.oz-list__title { padding: 0 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 글 보기(공지) */
.oz-post { border-top: 2px solid #222; }
.oz-post__head { padding: 28px 20px; border-bottom: 1px solid var(--oz-line); }
.oz-post__title { font-size: 2.6rem; font-weight: 700; line-height: 1.4; }
.oz-post__meta { margin-top: 10px; font-size: 1.5rem; color: #888; }
.oz-post__body { padding: 40px 20px 60px; font-size: 1.7rem; line-height: 1.8; border-bottom: 1px solid var(--oz-line); }
.oz-post__body img { display: block; max-width: 100%; height: auto; margin: 0 auto 20px; }
.oz-post__body p + p { margin-top: 1em; }
.oz-post__nav { padding-top: 24px; text-align: center; }
.oz-post__nav ul { margin-bottom: 30px; text-align: left; border-top: 1px solid var(--oz-line); }
.oz-post__nav li { display: grid; grid-template-columns: 110px 1fr; padding: 16px 20px; font-size: 1.6rem; border-bottom: 1px solid var(--oz-line); }
.oz-post__nav li span { color: #888; }
.oz-post__nav li a:hover { color: var(--main-color); }

/* 갤러리형(후기) */
.oz-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 24px; }
.oz-card__img { display: block; aspect-ratio: 335 / 250; overflow: hidden; background: #eee; }
.oz-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.oz-card__img:hover img { transform: scale(1.04); }
.oz-card__title { margin-top: 14px; font-size: 1.7rem; font-weight: 700; line-height: 1.4; }
.oz-card__txt { margin-top: 8px; font-size: 1.5rem; line-height: 1.6; color: var(--oz-sub); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.oz-card__date { display: block; margin-top: 8px; font-size: 1.4rem; color: #999; }

/* 전후사진 */
.oz-ba-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 50px 40px; }
.oz-ba__title { margin-bottom: 14px; font-size: 2rem; font-weight: 700; }
.oz-ba__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.oz-ba__pair a { position: relative; display: block; aspect-ratio: 7 / 4; overflow: hidden; background: #eee; }
.oz-ba__pair img { width: 100%; height: 100%; object-fit: cover; }
.oz-ba__tag { position: absolute; left: 0; top: 0; z-index: 1; padding: 4px 10px; font-size: 1.3rem; font-weight: 700; color: #fff; background: rgba(0,0,0,.6); }
.oz-ba__tag.is-after { background: var(--main-color); }
.oz-ba__note { margin-top: 10px; font-size: 1.4rem; color: #888; }

/* 열람 안내(의료법) — 확인 전에는 사진을 불러오지 않는다 */
.oz-gate__notice { max-width: 760px; margin: 2rem auto 0; padding: 5rem 5rem 4.5rem; text-align: center; background: var(--oz-bg); border: 1px solid var(--oz-line); border-top: 3px solid var(--main-color); }
.oz-gate__ttl { margin-bottom: 2.4rem; font-size: 2.4rem; font-weight: 700; }
.oz-gate__list { display: inline-block; margin-bottom: 3.2rem; text-align: left; }
.oz-gate__list li { position: relative; padding-left: 14px; font-size: 1.7rem; line-height: 1.9; color: var(--oz-sub); }
.oz-gate__list li::before { content: ''; position: absolute; left: 0; top: 1.4rem; width: 4px; height: 4px; border-radius: 50%; background: var(--main-color); }
.oz-gate__noscript { margin-top: 2rem; font-size: 1.5rem; color: #d0443e; }
.oz-gate.is-open .oz-gate__notice { display: none; }

/* 오즈TV */
.oz-tv__player { position: relative; aspect-ratio: 16 / 9; margin-bottom: 40px; background: #000; }
.oz-tv__player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.oz-tv__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 24px; }
.oz-tv__list a { display: block; }
.oz-tv__list a.is-playing .oz-tv__title { color: var(--main-color); }
.oz-tv__thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #eee; }
.oz-tv__thumb img { width: 100%; height: 100%; object-fit: cover; }
.oz-tv__title { display: block; margin-top: 12px; font-size: 1.6rem; font-weight: 700; line-height: 1.4; }
.oz-tv__list time { display: block; margin-top: 6px; font-size: 1.4rem; color: #999; }

/* 비급여 */
.oz-lead { margin-bottom: 2.4rem; font-size: 1.8rem; color: var(--oz-sub); }
.oz-table-wrap { overflow-x: auto; }
.oz-table { width: 100%; border-collapse: collapse; border-top: 2px solid #222; font-size: 1.7rem; }
.oz-table caption { padding-bottom: 12px; font-size: 1.5rem; color: #888; text-align: right; caption-side: top; }
.oz-table th, .oz-table td { padding: 18px 16px; text-align: center; border-bottom: 1px solid var(--oz-line); }
.oz-table thead th { font-weight: 700; background: var(--oz-bg); border-bottom-color: #cfcfcf; }
.oz-table .oz-left { text-align: left; }
.oz-table .oz-num { text-align: right; font-variant-numeric: tabular-nums; }
.oz-note { margin-top: 2rem; font-size: 1.6rem; color: var(--oz-sub); }
.oz-note a { color: var(--main-color); font-weight: 700; }

/* 약관 · 개인정보처리방침 */
.oz-legal { font-size: 1.6rem; line-height: 1.85; color: #444; }
.oz-legal__h { margin: 3.6rem 0 1.2rem; font-size: 2rem; font-weight: 700; color: var(--oz-text); }
.oz-legal__h:first-child { margin-top: 0; }
.oz-legal p + p { margin-top: .6rem; }
.oz-legal__list { margin: .6rem 0 .6rem 1.2rem; }

/* 치과 둘러보기 */
.oz-tour .oz-tour-main { position: relative; margin-bottom: 14px; }
.oz-tour .oz-tour-main .swiper-slide img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.oz-tour .oz-tour-prev, .oz-tour .oz-tour-next { position: absolute; top: 50%; z-index: 2; width: 56px; height: 56px; margin-top: -28px; border: 0; border-radius: 50%; background: rgba(0,0,0,.45); cursor: pointer; }
.oz-tour .oz-tour-prev { left: 20px; }
.oz-tour .oz-tour-next { right: 20px; }
.oz-tour .oz-tour-prev::after, .oz-tour .oz-tour-next::after { content: ''; position: absolute; top: 50%; left: 50%; width: 14px; height: 14px; border-top: 3px solid #fff; border-left: 3px solid #fff; }
.oz-tour .oz-tour-prev::after { transform: translate(-30%, -50%) rotate(-45deg); }
.oz-tour .oz-tour-next::after { transform: translate(-70%, -50%) rotate(135deg); }
.oz-tour .oz-tour-thumbs .swiper-slide { width: 139px; opacity: .45; cursor: pointer; transition: opacity .2s; }
.oz-tour .oz-tour-thumbs .swiper-slide-thumb-active { opacity: 1; }
.oz-tour .oz-tour-thumbs img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }

/* 사진 확대 */
.oz-zoom { max-width: min(92vw, 1200px); max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.oz-zoom::backdrop { background: rgba(0,0,0,.8); }
.oz-zoom img { display: block; max-width: 100%; max-height: calc(92vh - 50px); margin: 0 auto; }
.oz-zoom__cap { margin-top: 12px; font-size: 1.6rem; color: #fff; text-align: center; }
.oz-zoom__close { position: absolute; right: -10px; top: -46px; width: 40px; height: 40px; font-size: 3rem; line-height: 40px; color: #fff; background: none; border: 0; cursor: pointer; }

/* 퀵메뉴: 닫힌 패널이 화면 밖으로 밀려 가로 스크롤(1507px)이 생기던 원본 문제 */
.quick_wr { overflow: hidden; }
/* 첫 화면 비주얼: 100vw 가 스크롤바 폭만큼 넘쳐 가로 스크롤이 생기던 원본 문제 */
.visual_sec { overflow: hidden; }

/* 레드팀 반영 (2026-10-23) */
/* 교정 페이지 장식선(.qes_row::after width 1000%)이 페이지를 6620px 로 넓히던 문제 — 본문 · 비주얼 밖으로 나간 것만 자른다 */
#container, .sub_visual { overflow-x: clip; }
/* 동의 체크박스: 원본은 display:none 이라 키보드로 못 고름 → 보이지 않게만 두고 초점 가능 */
.chk_row input[type="checkbox"] { display: block; position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; }
.chk_row { position: relative; }
.chk_row input[type="checkbox"]:focus-visible + label { outline: 2px solid var(--main-color); outline-offset: 3px; }
.oz-consent { margin-top: 8px; font-size: 1.3rem; line-height: 1.6; color: #777; }
.oz-reserve fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.oz-reserve fieldset[disabled] { opacity: .55; }
.oz-reserve fieldset[disabled] button { cursor: not-allowed; }
.oz-reserve__off { margin: -1rem 0 2rem; padding: 12px 14px; font-size: 1.5rem; line-height: 1.6; color: #333; background: rgba(104, 197, 200, .12); border-left: 3px solid var(--main-color); }
.oz-reserve__off a { color: var(--main-color); font-weight: 700; white-space: nowrap; }
/* 비급여 · 약관처럼 메뉴 그룹 없는 페이지는 탭 줄 없음 */
.sub_visual.oz-no-tabs .submenu { display: none; }
/* 동의 줄: 체크 · 문구 · 처리방침 한 줄, 수집 고지는 그 아래 */
.contact_sec .chk_row { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; }
.contact_sec .chk_row label { white-space: nowrap; }
.contact_sec .chk_row .oz-agree-link { margin-left: 0; white-space: nowrap; }
.contact_sec .chk_row .oz-consent { flex: 0 0 100%; }
/* 탭이 그림 아래쪽인 페이지: 빠른 상담 상자를 탭 위로 */
.oz-sub.oz-tb .reserv_pop { top: 135px; }

/* 탭 줄 고정 — 그림을 지나 내려가면 화면 맨 위에 붙는다 (oz.js, 사용자 지시 2026-10-23) */
.sub_visual.oz-has-snb .submenu.oz-snb-fixed { position: fixed; top: 0; bottom: auto; left: 0; right: 0; z-index: 98; background: rgba(255, 255, 255, .96); box-shadow: 0 2px 10px rgba(0, 0, 0, .08); }

/* 하위 페이지(.oz-compact) — 큰 그림 없이 머리말 + 탭 + 본문. 큰 그림은 메뉴 소개 화면(menu-*.html)에만 (사용자 지시 2026-10-23) */
.sub_visual.oz-has-snb.oz-compact { min-height: 0; padding: 170px 0 0; }
.sub_visual.oz-has-snb.oz-compact .sub_tit,
.sub_visual.oz-has-snb.oz-compact .sub_bg { display: none; }
.sub_visual.oz-has-snb.oz-compact .submenu:not(.oz-snb-fixed) { top: 100px; bottom: auto; background: #f6f6f6; backdrop-filter: none; }
/* 그림이 없으니 빠른 상담 상자는 오른쪽 아래에 떠 있게 (교정학회 배지는 감춤) */
.oz-compact-page .reserv_pop { position: fixed; top: auto; bottom: 30px; right: 110px; z-index: 97; }
.oz-compact-page .reserv_pop .add_pop { display: none; }


/* 메뉴 소개 화면: 본문 없음 — 큰 그림 바로 아래 바닥글 */
.oz-landing-main { padding: 0; }

/* 비급여 진료비용 — 송도화담 nonpay.html 과 같은 형태 (2026-10-23) */
.oz-page .sub_con.oz-nonpay { max-width: 960px; } .oz-nonpay { font-size: 1.6rem; line-height: 1.8; color: #444; }
.oz-np-kicker { font-size: 1.4rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--main-color); }
.oz-np-meta { margin: .4rem 0 2.4rem; font-size: 1.4rem; color: #888; }
.oz-np-intro { margin-bottom: 2rem; }
.oz-np-intro a { color: var(--main-color); font-weight: 700; }
.oz-np-toc { margin: 0 0 3.6rem; padding: 18px 22px; background: var(--oz-bg); border: 1px solid var(--oz-line); }
.oz-np-toc ol { display: flex; flex-wrap: wrap; gap: 6px 26px; list-style: decimal inside; font-size: 1.5rem; }
.oz-np-toc a:hover { color: var(--main-color); }
.oz-np-h { margin: 4.4rem 0 1.4rem; font-size: 2.2rem; font-weight: 700; color: var(--oz-text); scroll-margin-top: 90px; }
.oz-np-table td:first-child { text-align: left; }
.oz-np-table th:last-child, .oz-np-table td:last-child { text-align: left; color: #777; }
.oz-np-table th:first-child { text-align: left; }
.oz-np-note { margin-top: 1rem; font-size: 1.4rem; color: #888; }
.oz-np-hist td, .oz-np-hist th { font-size: 1.5rem; }
.oz-np-intro a { white-space: nowrap; }

/* 하위 페이지: 보이는 제목 줄 없이, 탭 줄이 본문 첫 그림 위에 반투명으로 겹친다 (사용자 지시 2026-10-23 "글이 그림 위에 겹치게")
 * 그림 영역(sub_visual)은 머리말 높이(100px)만 차지 — 탭(70px)은 그 아래 본문 위에 떠 있다. 게시판 · 비급여 · 약관은 탭 아래 여백 */
.sub_visual.oz-has-snb.oz-compact { padding-top: 100px; overflow: visible; z-index: 5; }
.sub_visual.oz-has-snb.oz-compact .submenu:not(.oz-snb-fixed) { background: rgba(255, 255, 255, .82); backdrop-filter: blur(4px); }
.oz-compact-page .sub { padding-top: 0; }
.oz-compact-page .sub.oz-page { padding-top: 130px; }
/* 본문 첫머리가 그림이 아니라 글이라 탭에 가리는 페이지(2026-10-23 측정: 첫 글자가 탭 아래 90px 안) — 탭 높이만큼 내린다 */
.oz-about .sub, .oz-doctors .sub, .oz-specialist .sub { padding-top: 90px; }
/* 오시는길 주소: 원본 굵은 글꼴(맑은 고딕 Bold)에서 '신송로 16 / 1' 로 끊기던 것 — 한 줄로 */
.map_info .txtbox .ttl { white-space: nowrap; letter-spacing: -1.5px; }

/* 오즈치과 한 페이지 펼침(menu-oz.html) — 탭 · 펼침 메뉴가 구역 앵커로 이동, 고정 탭(70px) 아래로 맞춘다 (사용자 지시 2026-10-23) */
.oz-onepage { scroll-margin-top: 70px; }
html { scroll-behavior: smooth; }
.oz-onepage#about { padding-top: 90px; }
.oz-onepage + .oz-onepage { border-top: 1px solid #eee; }
/* 고정된 탭 줄이 본문(둘러보기 슬라이드 등) 아래로 깔리지 않게 — 탭이 들어 있는 그림 영역의 쌓임 순서를 올린다 */
.sub_visual.oz-has-snb { z-index: 60; }

/* 바닥글 배포 시각 */
#ft .copy .oz-built { margin-left: 4px; opacity: .75; }

/* 첫 화면 팝업 레이어 (2026-11-12) — 실서버 hd_pop 과 같은 자리, 머리말보다 위 · 좁은 화면은 가운데 맞춤 */
#hd_pop.oz-pop { z-index: 10001; }
#hd_pop .hd_pops[hidden] { display: none; }
#hd_pop .hd_pops { z-index: 10001; box-shadow: 0 10px 40px rgba(0, 0, 0, .25); }
#hd_pop .hd_pops_con img { display: block; width: 100%; height: auto; }
#hd_pop .hd_pops_footer button { font-size: 1.4rem; cursor: pointer; }
@media (max-width: 768px) {
	#hd_pop .hd_pops { position: fixed; top: 70px !important; left: 50% !important; transform: translateX(-50%); width: min(92vw, 550px); max-height: calc(100vh - 90px); overflow: auto; }
	#hd_pop .hd_pops_con { width: auto !important; }
}

/* 파일로 연 화면(file://)의 유튜브 대체 — 썸네일 + '유튜브에서 보기' (2026-11-12) */
.oz-yt-fallback { position: absolute; inset: 0; display: block; background: #000; }
.oz-yt-fallback img { width: 100%; height: 100%; object-fit: cover; opacity: .75; }
.oz-yt-fallback span { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 14px 26px; border-radius: 999px; background: #e11d48; color: #fff; font-size: 1.8rem; font-weight: 700; }
