@charset "utf-8";

/* ============================================================
   teeth.css — 자연치아 살리기 (#teeth-page)

   마크업 : sections/teeth/
   ============================================================ */

#teeth-page {
  /* 골드 포인트 — 컬러칩에 없는 색이라 페이지 토큰으로 둔다 (tmj · tour 도 같은 값) */
  --one-pt: #dbba39;
  --one-pt2: #f3e18f;
  --one-intro : #80654a;
  --one-tit: #5f5449;      /* 제목 갈색 — 컬러칩에 없는 색이라 페이지 토큰으로 둔다 */
  --one-tit2: #00224e;
  --one-txt-lg: 20px;      /* 본문보다 한 단계 큰 글 — 밴드 · 보철 설명 */
  --one-txt-lg-lh: 1.8;    /* 위 글의 줄간격 */

  --one-space-lg: 82px;    /* 섹션 상하 여백이 아니다 — 그건 ui.css 가 --one-space-xl 로 덮는다. 리스트 줄 간격 등에만 남아 있는 값 */
  --one-band-h: 36vw;      /* 배경 밴드 높이 */
  --one-cstep-col: 4;
  --one-trt-mark: 1.4rem;  /* 치주단계 ▶ 가 글 왼쪽으로 나가는 거리 */
  --one-slide-btn: 60px;   /* 화살표를 콘텐츠 바깥으로 내보내는 거리 */
  --one-pstep-num: 72px;   /* 치주단계 숫자 크기 */
  --one-pstep-num-y: -16px; /* 치주단계 숫자 세로 미세조정 — Montserrat 는 line-height:1 에서도 글자 위 여백이 약 0.16em 있어 그만큼 올린다. 양수면 내려간다 */
  --one-pros-img: 41%;     /* 보철 슬라이드 사진 열 폭 */
  --one-pros-btn: 80px;    /* 보철 슬라이드 화살표 — 사진 가장자리에서 화살표 중심까지 */
  --one-pros-arw: 28px;    /* 보철 슬라이드 화살표 크기 */
  --one-bnf-btn: 90px;     /* 보험혜택 슬라이드 화살표 — 글 · 사진 가장자리에서 화살표 중심까지 */
  --one-bnf-arw: 24px;     /* 보험혜택 슬라이드 화살표 크기 */

  /* 07 지르코니아 카드 — 시안 1920 기준 px 그대로 */
  --one-zir-pad-t: 130px;        /* 밴드 위 여백 */
  --one-zir-pad-b: 110px;        /* 밴드 아래 여백 */
  --one-zir-hd-gap: 100px;       /* 제목 → 카드 */
  --one-zir-w: 1124px;           /* 카드 3장 전체 폭 */
  --one-zir-gap: 46px;           /* 카드 사이 */
  --one-zir-radius: 40px;        /* 카드 모서리 */
  --one-zir-card-pad-y: 50px;    /* 카드 위아래 안쪽 여백 */
  --one-zir-card-pad-x: 30px;    /* 카드 좌우 안쪽 여백 */
  --one-zir-icon: 160px;         /* 아이콘 (크롭 원본 크기) */
  --one-zir-icon-gap-t: 44px;    /* 제목 → 아이콘 */
  --one-zir-icon-gap-b: 36px;    /* 아이콘 → 설명 */
  --one-zir-desc: 15px;          /* 설명 글 크기 */
  --one-zir-desc-lh: 2.1;        /* 설명 줄간격 (32px) */
  --one-zir-bg: #a6937c;         /* 밴드 배경색 — sec07-bg.png 의 갈색과 같은 값 */
}

/* Astra 가 제목에 색을 뿌린다 — 밴드 위 흰 글씨를 되돌린다 */
#teeth-page .sec-band .band-title {
  color: var(--white-color);
}

/* common.css 의 margin-bottom:100px 이 과하다 — 제목과 본문을 붙인다 */
#teeth-page .sec-hd {
  margin-bottom: var(--one-gap-xl);
}

#teeth-page .sec-intro .intro-cap {
  margin-bottom: calc(var(--one-gap-sm) * -1);
  letter-spacing: -0.02em;
  font-size: var(--one-body);
}

/* 제목 갈색 — Astra 가 h2·h3 에 자기 색을 뿌려서 시안과 달라진다.
   색이 지정된 제목(pt-color 등)에는 붙이지 않는다 */
#teeth-page .tit-color {
  color: var(--one-tit2);
}

#teeth-page .tit-color2 {
  color: var(--one-txt-cap);
}

#teeth-page .tit-color3 {
  color: var(--sub-color11)
}

#teeth-page .tit-intro {
  color: var(--one-intro);
}

/* 설명 글 — ui.css 의 회색(#666)이 시안보다 흐리다. 진한 갈색으로 */
#teeth-page .slide-desc {
  color: var(--sub-color09);
}

#teeth-page .pt-color {
  color: var(--one-pt);
}

#teeth-page .pt-color2 {
  color: var(--one-cap-color);
}

/* 등장 애니메이션 이동 거리 — animation.css 기본 40px 는 스크롤이 무겁게 느껴진다 */
#teeth-page .anim-fade-up {
  transform: translateY(28px);
}

/* ============================
   공통 — 배경 밴드 (02 치주 · 04 충치)
============================ */

#teeth-page .sec-band {
  overflow: hidden;
}

#teeth-page .sec-band .band-bg {
  position: absolute;
  inset: 0;
}

#teeth-page .sec-band .con-inner {
  min-height: var(--one-band-h);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: var(--one-space-r);
  padding-bottom: var(--one-space-r);
}

#teeth-page .band-lead {
  font-size: var(--one-p-tit);
  padding-top: var(--one-gap-xl);
  font-weight: 480;
}

#teeth-page .band-desc {
  font-size: var(--one-txt-ll);
  line-height: var(--one-txt-lg-lh);
  padding-top: var(--one-gap-xl);
  font-weight: 300;
}

/* 문단이 이어질 때 — 첫 문단의 위 여백보다 좁게 */
#teeth-page .band-desc + .band-desc {
  padding-top: var(--one-gap-r);
}

#teeth-page .sec-perio .band-bg {
  background-image: url(../images/teeth/sec02-bg.png);
}

#teeth-page .sec-cav .band-bg {
  background-image: url(../images/teeth/sec04-bg.png);
}

/* ============================
   공통 — 슬라이드 (03 · 06 · 09)
   시안은 텍스트가 좌 · 이미지가 우이고 화살표가 콘텐츠 바깥에 있다
============================ */

#teeth-page .slide-wrap {
  position: relative;
}

#teeth-page .slide-tit {
  color: var(--one-pt);
  font-weight: 550;
}

/* 치주단계 제목만 골드 대신 갈색 — .slide-tit 보다 뒤에 있어야 이긴다 */
#teeth-page .pstep-tit {
  color: var(--sub-color15);
}

#teeth-page .slide-vis {
  order: 2;
  border-radius: 0;
}

#teeth-page .slide-body {
  order: 1;
}

/* 버튼만 남기고 nav 행을 흐름에서 뺀다 */
#teeth-page .slide-nav {
  display: contents;
}

#teeth-page .slide-pg {
  display: none;
}

#teeth-page .slide-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

#teeth-page .slide-prev {
  left: calc(var(--one-slide-btn) * -1);
}

#teeth-page .slide-next {
  right: calc(var(--one-slide-btn) * -1);
}

/* 시안에 화살표가 있다 — 장이 1개뿐일 때 Swiper 가 붙이는 lock · disabled 를 되돌린다.
   장이 채워지면 그대로 동작한다 */
#teeth-page .slide-btn.swiper-button-lock {
  display: block;
}

#teeth-page .slide-btn.swiper-button-disabled {
  opacity: 1;
}

#teeth-page .slide-btn::before {
  width: 18px;                       /* 기본 9px — 크게 */
  height: 18px;
  border-width: 1px;                 /* 시안은 가는 선 */
  border-color: var(--gray-color01);  /* 시안처럼 연하게 */
}

/* ============================
   01 인트로
============================ */

#teeth-page .sec-intro .intro-sub {
  font-size: var(--one-p-tit);
}

#teeth-page .sec-intro .intro-img {
  padding-bottom: var(--one-space-r);
}

#teeth-page .sec-intro .intro-img img {
  width: auto;
  max-width: 100%;
}

#teeth-page .sec-intro .intro-lead {
  color: var(--sub-color06);
  margin-bottom: -10px;
}

#teeth-page .sec-intro .intro-desc {
  padding-top: var(--one-gap-xl);
  font-size: var(--one-txt-lg);
  line-height: var(--one-txt-lg-lh);
  color: var(--one-txt-desc);
}

/* ============================
   03 치주질환 진행단계
============================ */

#teeth-page .sec-pstep .slide-cont .swiper-slide {
  position: relative;
  padding-left: calc(var(--one-pstep-num) * 1.6);   /* 숫자 두 자리 폭 + 간격 */
}

/* 숫자 윗선을 제목 글자 윗선에 맞추고 아래로 키운다.
   line-height:1 이라 줄상자 = 글자, top 은 제목 줄상자의 위 반여백(hd3 × (lh-1) / 2)만큼 */
#teeth-page .pstep-num {
  position: absolute;
  top: calc(var(--one-hd3) * (var(--one-lh-lg) - 1) / 2 + var(--one-pstep-num-y));
  left: 0;
  /* 왼쪽 여백과 같은 폭을 잡아야 가운데정렬이 먹는다 — 폭이 없으면 글자에 딱 붙어 정렬할 자리가 없다.
     자릿수가 달라져도 자리가 흔들리지 않는다 */
  width: calc(var(--one-pstep-num) * 1.6);
  padding-right: 0.04em;   /* 음수 letter-spacing 이 마지막 글자 뒤에도 붙어 가운데가 오른쪽으로 밀린다 */
  color: var(--one-num-color);
  font-family: var(--one-num-ft);
  font-size: var(--one-pstep-num) !important;
  font-weight: 700;
  line-height: 1 !important;
  letter-spacing: -0.04em;
  text-align: center;
}

/* 시안의 ▶ 표식 — 글 왼쪽 시작선에 고정. 줄이 넘어가면 둘째 줄이 ▶ 밑에 선다 */
#teeth-page .pstep-trt {
  padding-top: var(--one-space-s);
}

#teeth-page .pstep-trt::before {
  display: inline-block;
  width: var(--one-trt-mark);   /* ▶ 폭을 고정해 글 시작선이 흔들리지 않는다 */
  font-size: 0.8em;
  content: "\25B6";
}

#teeth-page .zir-tit {
  color: var(--one-txt-cap);
}

/* ============================
   05 충치 진행 단계
============================ */

#teeth-page .sec-cstep {
  overflow: hidden;
}

#teeth-page .cstep-bg {
  position: absolute;
  inset: 0;
  background-image: url(../images/teeth/sec05-bg.png);
  background-size: cover;
}

#teeth-page .cstep-lst {
  display: grid;
  grid-template-columns: repeat(var(--one-cstep-col), 1fr);
  column-gap: var(--one-gap-lg);
  row-gap: var(--one-space-s);   /* 모바일 2열에서 위아래 항목 사이 */
  text-align: center;
}

/* 항목 안의 4줄(번호·제목·그림·설명)을 부모 그리드 행에 얹는다 — 제목이 두 줄이어도 옆 항목과 그림 높이가 맞는다 */
#teeth-page .cstep-item {
  position: relative;
  display: grid;
  grid-row: span 4;
  grid-template-rows: subgrid;
  row-gap: 0;
  justify-items: center;
}

#teeth-page .cstep-num {
  font-size: var(--one-caption);
  color: var(--gray-color07);
  font-family: var(--one-num-ft);
}

#teeth-page .cstep-tit {
  padding-top: var(--one-gap-sm);
}

#teeth-page .cstep-img {
  padding: var(--one-gap-lg) 0;
}

#teeth-page .cstep-img img {
  width: auto;
  max-width: 100%;
}

/* 단계 사이 진행 표식 — 이미지 아래 가로선 위에 얹힌다 */
#teeth-page .cstep-desc {
  position: relative;
  justify-self: stretch;   /* 가로선이 열 폭을 채우려면 글 폭으로 줄어들면 안 된다 */
  padding-top: var(--one-space-sl);
  padding-left: 7px;
  color: var(--gray-color06);
  font-weight: 400;
}

/* 가로선 — 열 사이 여백까지 늘려 4열을 가로지르는 한 줄로 보이게 한다 */
#teeth-page .cstep-desc::before {
  position: absolute;
  top: 0px;
  left: calc(var(--one-gap-lg) / -2);
  width: calc(100% + var(--one-gap-lg));
  height: 2.7px;
  background-color: var(--one-pt2);
  content: "";
}

/* 겹화살표 — 시안대로 각 열 가운데에 선 위로 얹힌다 */
#teeth-page .cstep-desc::after {
  position: absolute;
  top: 2px;
  left: 50%;
  color: var(--one-pt2);
  font-size: var(--one-p-tit);
  line-height: 0;
  letter-spacing: -0.28em;
  content: "\25B6\25B6";
  transform: translate(-50%, -50%);
}

/* ============================
   06 보철 솔루션
============================ */

#teeth-page .sec-pros {
  background-color: #f9f7eb;
}

#teeth-page .sec-pros .cp-txt {
  letter-spacing: -0.05em;
  margin-bottom: -10px;
  font-size: var(--one-body);
}

#teeth-page .sec-pros .sec-hd .hd2 {
  letter-spacing: -0.05em;
}

#teeth-page .pros-pt {
  padding-top: var(--one-space-s);
  font-size: var(--one-txt-lg);
  line-height: var(--one-txt-lg-lh);
}

#teeth-page .sec-pros .slide-desc {
  font-size: var(--one-txt-lg);
  line-height: var(--one-txt-lg-lh);
}

/* 글은 장마다 같다 — crossFade 중간에 두 장이 반투명으로 겹쳐 깜빡이므로
   페이드를 끄고 활성 장만 즉시 보인다. Swiper 가 인라인으로 넣는 값이라 !important 필요 */
#teeth-page .sec-pros .slide-cont .swiper-slide {
  transition: none !important;
  opacity: 1 !important;
  visibility: hidden;
}

#teeth-page .sec-pros .slide-cont .swiper-slide-active {
  visibility: visible;
}

/* 시안은 [글 | < | 사진 | >] — 사진 열을 고정 비율로 두고 화살표는 사진 가장자리 기준으로 띄운다.
   열 사이 gap 이 < 자리, > 는 콘텐츠 오른쪽 바깥으로 나간다 (PC 2열일 때만 성립) */
#teeth-page .sec-pros .slide-row {
  grid-template-columns: 1fr var(--one-pros-img);
  column-gap: calc(var(--one-pros-btn) * 2);
}

#teeth-page .sec-pros .slide-vis {
  border-radius: 0;
}

/* 화살표 중심 = 사진 가장자리에서 --one-pros-btn 만큼 */
#teeth-page .sec-pros .slide-btn {
  transform: translate(-50%, -50%);
}

#teeth-page .sec-pros .slide-prev {
  left: calc(100% - var(--one-pros-img) - var(--one-pros-btn));
}

#teeth-page .sec-pros .slide-next {
  right: auto;
  left: calc(100% + var(--one-pros-btn));
}

/* 시안의 화살표는 크고 가늘다 */
#teeth-page .sec-pros .slide-btn::before {
  width: var(--one-pros-arw);
  height: var(--one-pros-arw);
}

/* ============================
   07 왜 지르코니아 보철일까요
============================ */

/* 크롭 하단 30px 이 투명이라 뒤가 비친다 — 같은 갈색을 깔고 위 기준으로 맞춰 투명 띠가 먼저 잘리게 */
#teeth-page .sec-zir {
  overflow: hidden;
  background-color: var(--one-zir-bg);
}

#teeth-page .zir-bg {
  position: absolute;
  inset: 0;
  background-image: url(../images/teeth/sec07-bg.png);
  background-position: center top;
}

#teeth-page .sec-zir .con-inner {
  padding-top: var(--one-zir-pad-t);
  padding-bottom: var(--one-zir-pad-b);
}

#teeth-page .sec-zir .sec-hd {
  margin-bottom: var(--one-zir-hd-gap);
}

/* 시안은 콘텐츠 폭보다 좁은 카드 3장 — 리스트 폭을 시안값으로 잡고 가운데 */
#teeth-page .sec-zir .step-lst {
  max-width: var(--one-zir-w);
  margin: 0 auto;
  gap: var(--one-zir-gap);
  margin-top: -30px;
}

/* 시안은 흰 라운드 카드 — 테두리형 기본값을 덮는다 */
#teeth-page .sec-zir .step-item {
  padding: var(--one-zir-card-pad-y) var(--one-zir-card-pad-x);
  border: 0;
  border-radius: var(--one-zir-radius);
  background-color: var(--white-color);
}

#teeth-page .sec-body .step-tit {
  margin: -25px 0 -10px 0;
}

/* 원 배경은 크롭 PNG 에 들어 있다 */
#teeth-page .sec-zir .step-item .step-img {
  width: var(--one-zir-icon);
  margin-top: var(--one-zir-icon-gap-t);
}

/* 좌우 패딩을 두면 긴 줄이 br 앞에서 먼저 접힌다 — 카드 패딩만으로 폭을 잡는다 */
#teeth-page .sec-zir .step-desc {
  padding: 20px 0;
  font-size: var(--one-body);
  line-height: var(--one-zir-desc-lh);
  letter-spacing: -0.03em;
  color: var(--sub-color04);
  margin: 12px 0px -10px 0px
}

#teeth-page .sec-zir .hd3 {
  margin-bottom: -50px;
}

/* ============================
   08 건강보험 혜택 및 국가검진
============================ */

#teeth-page .sec-ins {
  overflow: hidden;
}

#teeth-page .ins-bg {
  position: absolute;
  inset: 0;
  background-image: url(../images/teeth/sec08-bg.png);
  background-position: right bottom;
}

#teeth-page .sec-ins .con-inner {
  min-height: 26vw;
}

#teeth-page .ins-title {
  color: var(--one-txt-desc);
  margin-top: 20px;
}

#teeth-page .ins-lead {
  padding-top: var(--one-gap-xl);
  font-size: var(--one-p-tit);
}

#teeth-page .ins-desc {
  padding-top: var(--one-gap-xl);
  font-size: var(--one-txt-lg);
  line-height: var(--one-txt-lg-lh);
}

/* ============================
   09 보험진료 혜택
============================ */

#teeth-page .sec-bnf {
  background-color: #f8f8f8;
}

#teeth-page .bnf-badge {
  font-family: var(--one-num-ft);
  font-size: var(--one-caption);
  display: inline-block;
  margin-bottom: var(--one-gap-r);
  /* 줄상자가 글자 높이를 넘으면 패딩을 줄여도 그만큼이 남는다 — 1 로 눌러야 패딩이 높이를 잡는다 */
  line-height: 1;
  /* 아래를 더 준다 — 글자가 베이스라인 위에만 그려져 비어 있는 디센더 공간만큼 아래로 쏠려 보인다 */
  padding: 0.5em 0.8em;
  border-radius: 50em;
  background-color: var(--gray-color08);
  color: var(--white-color);
}

#teeth-page .bnf-row {
  padding-top: var(--one-space-s);
}

#teeth-page .bnf-row > div {
  display: flex;
  gap: var(--one-gap-sm);
  padding-bottom: var(--one-gap-sm);
}

#teeth-page .bnf-row dt {
  flex: 0 0 auto;   /* 라벨이 전부 4글자라 고정 폭 없이도 값 열이 맞는다 — 고정하면 ":" 뒤에 빈 칸이 남는다 */
}

#teeth-page .bnf-row dt::after {
  content: " :";
}

#teeth-page .bnf-row dd {
  letter-spacing:  -1px;
  color: var(--sub-color09);
}

/* 글 전환 — crossFade 는 두 글이 동시에 겹친다. 나가는 글은 즉시 숨기고 들어오는 글만 페이드인.
   Swiper 가 인라인으로 넣는 transition · opacity 를 animation 이 덮는다 */
#teeth-page .sec-bnf .slide-cont .swiper-slide {
  transition: none !important;
  visibility: hidden;
}

#teeth-page .sec-bnf .slide-cont .swiper-slide-active {
  visibility: visible;
  animation: bnfTxtIn 0.5s ease-out both;
}

@keyframes bnfTxtIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* 화살표 — 공통(60px · 18px)보다 더 띄우고 더 크게 */
#teeth-page .sec-bnf .slide-prev {
  left: calc(var(--one-bnf-btn) * -1);
}

#teeth-page .sec-bnf .slide-next {
  right: calc(var(--one-bnf-btn) * -1);
}

#teeth-page .sec-bnf .slide-btn::before {
  width: var(--one-bnf-arw);
  height: var(--one-bnf-arw);
}

/* ============================
   10 생애주기별 맞춤 구강검진
============================ */

#teeth-page .sec-chk {
  background-color: #f8f3ed;
}

#teeth-page .sec-chk .step-item {
  padding: var(--one-space-s) var(--one-gap-lg);
  border: 0;
  border-radius: 1em;
  background-color: var(--white-color);
}

/* 원 배경은 크롭 PNG 에 들어 있다 */
#teeth-page .sec-chk .step-item .step-img {
  width: 112px;
}

/* 위 .sec-body .step-tit 의 음수 마진은 07 카드용 — 여기선 그림과 겹친다 */
#teeth-page .sec-chk .step-tit {
  margin: 0;
}

/* ============================
   반응형 — 노트북만 (1025 ~ 1600px)
   콘텐츠 바깥 여백이 좁아 화살표가 화면 모서리에 붙는다 —
   글 · 사진을 안쪽으로 들이고 화살표 거리를 줄여 안으로 들인다
============================ */

@media all and (min-width: 1025px) and (max-width: 1600px) {
  #teeth-page {
    --one-slide-btn: 30px;
    --one-pros-btn: 40px;
    --one-bnf-btn: 40px;
    --one-slide-inset: 100px;   /* 글 · 사진을 안쪽으로 들이는 폭 — 그 안에 화살표가 선다 */
    --one-slide-arw-in: 30px;   /* 화살표를 콘텐츠 가장자리에서 안쪽으로 넣는 거리 — 바깥이면 퀵메뉴 뒤로 숨는다 */
  }

  /* 03 치주단계 · 09 보험혜택 — row 를 들이고 화살표는 콘텐츠 가장자리 안쪽에 */
  #teeth-page .sec-pstep .slide-row,
  #teeth-page .sec-bnf .slide-row {
    padding-inline: var(--one-slide-inset);
  }

  #teeth-page .sec-pstep .slide-prev,
  #teeth-page .sec-bnf .slide-prev {
    left: var(--one-slide-arw-in);
  }

  #teeth-page .sec-pstep .slide-next,
  #teeth-page .sec-bnf .slide-next {
    right: var(--one-slide-arw-in);
  }

  /* 03 치주단계 설명 · ▶ 문장 — 글 열이 좁아 PC 용 br 까지 겹치면 서너 줄로 갈린다. br 을 끄고 자연 줄바꿈 */
  #teeth-page .pstep-trt {
    font-size: var(--one-caption);
  }

  #teeth-page .sec-pstep .slide-desc .view-pc,
  #teeth-page .pstep-trt .view-pc {
    display: none !important;
  }

  /* 07 지르코니아 카드 설명 — 카드가 좁아 PC 용 br 이 어색하게 갈린다. 끄고 자연 줄바꿈 */
  #teeth-page .sec-zir .step-desc .view-pc {
    display: none !important;
  }

  /* 06 보철 — > 가 콘텐츠 바깥이라 퀵메뉴 뒤로 숨는다. 사진 오른쪽을 --one-pros-end 만큼 띄우고
     화살표는 사진 가장자리 ± --one-pros-btn. 사진 열은 px 로 — % 면 padding 뺀 폭 기준이라 calc 와 어긋난다 */
  #teeth-page .sec-pros {
    --one-pros-img: 440px;
    --one-pros-end: 80px;
  }

  #teeth-page .sec-pros .slide-row {
    padding-right: var(--one-pros-end);
  }

  #teeth-page .sec-pros .slide-prev {
    left: calc(100% - var(--one-pros-end) - var(--one-pros-img) - var(--one-pros-btn));
  }

  #teeth-page .sec-pros .slide-next {
    left: calc(100% - var(--one-pros-end) + var(--one-pros-btn));
  }

  #teeth-page .sec-pros .slide-cont {
    padding-left: 40px;
  }
}

/* ============================
   반응형 — 태블릿 (max-width: 1024px)
============================ */

@media all and (max-width: 1024px) {
  #teeth-page {
    --one-txt-lg: 18px;
    --one-txt-ll: 14px;
    --one-band-h: 48vw;
    --one-slide-btn: 32px;
    --one-bnf-btn: 32px;

    /* 07 카드 — 시안 px 는 PC 전용. 좁은 폭에서는 기본 여백 체계로 */
    --one-zir-pad-t: var(--one-space-lg);
    --one-zir-pad-b: var(--one-space-lg);
    --one-zir-hd-gap: 80px;                     /* 제목 → 카드 */
    --one-zir-gap: var(--one-gap-lg);
    --one-zir-radius: 24px;
    --one-zir-card-pad-y: var(--one-space-s);   /* 카드 위아래 안쪽 여백 */
    --one-zir-card-pad-x: var(--one-gap-lg);
    --one-zir-icon: 120px;
    --one-zir-icon-gap-t: var(--one-gap-xl);
    --one-zir-icon-gap-b: var(--one-gap-lg);
  }

  /* 07 카드 제목 — PC 용 음수 마진(-25px)이 좁은 카드에선 제목을 위 가장자리에 붙인다 */
  #teeth-page .sec-zir .step-tit {
    margin: 0;
  }

  /* 08 건강보험 — 가족 사진이 글 뒤에 깔려 안 읽힌다. 태블릿에서는 사진을 빼고 높이도 글에 맞춘다 */
  #teeth-page .ins-bg {
    display: none;
  }

  #teeth-page .sec-ins .con-inner {
    min-height: 0;
  }

  /* 1열로 접히면 글 · 사진이 세로로 쌓인다 — 화살표를 사진 줄(2행)에 붙여 사진 세로 중심에.
     .slide-body 를 contents 로 풀어 버튼을 그리드 아이템으로 만들고, 행을 기준 상자로 쓰려면
     그리드(.slide-row)가 positioned 여야 한다 (.slide-wrap 이 기준이면 grid-row 가 무시된다) */
  #teeth-page .slide-body {
    display: contents;
  }

  #teeth-page .slide-row {
    position: relative;
  }

  #teeth-page .slide-btn {
    grid-row: 2;
    grid-column: 1;
    top: 50%;
  }

  /* 1열로 접힌다. 사진이 폭 전체면 > 가 콘텐츠 밖 퀵메뉴 뒤로 숨는다 —
     사진을 --one-pros-tab-w 로 줄여 가운데 두고 화살표는 사진 가장자리 ± --one-pros-btn */
  #teeth-page .sec-pros {
    --one-pros-tab-w: 80%;   /* 태블릿 사진 폭 */
    --one-pros-btn: 36px;    /* 사진 가장자리에서 화살표 중심까지 */
  }

  #teeth-page .sec-pros .slide-row {
    grid-template-columns: 1fr;
    gap: var(--one-space-s);
  }

  /* 09 보험혜택 — 1열이면 글이 화면 끝에 붙는다. 사진 시작선에 맞춰 살짝 들인다 */
  #teeth-page .sec-bnf .slide-cont {
    padding-inline: var(--one-gap-sm);
  }

  #teeth-page .sec-pros .slide-vis {
    width: var(--one-pros-tab-w);
    margin-inline: auto;   /* 가운데 — Swiper 기본값이지만 명시 */
  }

  #teeth-page .sec-pros .slide-btn {
    transform: translate(-50%, -50%);   /* 중심 기준 — 계산이 사진 가장자리 ± 거리로 단순해진다 */
  }

  #teeth-page .sec-pros .slide-prev {
    left: calc((100% - var(--one-pros-tab-w)) / 2 - var(--one-pros-btn));
  }

  #teeth-page .sec-pros .slide-next {
    right: auto;
    left: calc((100% + var(--one-pros-tab-w)) / 2 + var(--one-pros-btn));
  }
}

/* ============================
   반응형 — 모바일 (max-width: 639px)
============================ */

@media all and (max-width: 639px) {
  #teeth-page {
    --one-band-h: auto;
    --one-cstep-col: 2;
    --one-step-col: 1;
    --one-slide-dot: 10px;      /* 슬라이드 점 지름 */
    --one-slide-dot-gap: 10px;  /* 점 사이 간격 */
    --one-pstep-num: 48px;
    --one-txt-lg: 3.6vw;      /* 밴드 설명 — 태블릿 18px 그대로 두면 모바일에서 크다 (375px 기준 약 13.5px) */
    --one-txt-lg-lh: 1.7;
    --one-txt-ll: 3.8vw;
  }

  /* 09 보험혜택 — 라벨 ":" 뒤 간격을 줄인다 (글 들이기는 태블릿 블록) */
  #teeth-page .bnf-row > div {
    gap: var(--one-gap-xs);
  }


  /* 밴드 리드 문장 — 24px 계열이 좁은 폭에서 세 줄로 접힌다 */
  /* 모바일 전용 크롭(720x600) — 위쪽은 옅은 그라데이션이라 글이 그 위에, 가족은 아래 절반에 온다.
     화면 폭에 원본 비율로 맞춰 바닥에 붙인다 */
  #teeth-page .ins-bg {
    display: block;   /* 태블릿에서 숨긴 걸 되살린다 */
    background-image: url(../images/teeth/sec08-bg-mo.jpg);
    background-size: 100% auto;   /* 화면 폭에 딱 맞춘 원본 비율(83vw 높이) — cover 는 섹션이 크면 확대된다 */
    background-position: center bottom;
  }

  /* 아래 여백 = 가족이 차지하는 높이(사진 83vw 중 아래 약 45vw) + 기본 여백 — 글이 그라데이션 위에만 선다 */
  #teeth-page .sec-ins .con-inner {
    min-height: 0;
    padding-bottom: calc(45vw + var(--one-space-s));
  }

  #teeth-page .band-lead {
    font-size: 4vw;
  }

  /* 화살표는 자리가 없다 — 대신 사진 아래 점(◦ ▬ ◦)으로 넘긴다.
     .slide-body 를 contents 로 풀어 글 · 사진 · 점을 그리드에 직접 앉힌다 */
  #teeth-page .slide-btn {
    display: none;
  }

  #teeth-page .slide-body {
    display: contents;
  }

  #teeth-page .slide-cont {
    order: 1;
    min-width: 0;
  }

  #teeth-page .slide-vis {
    order: 2;
  }

  #teeth-page .slide-nav {
    display: flex;
    order: 3;
    justify-content: center;
  }

  /* 점 — ui.js 가 넣는 숫자(1 2 3)를 font-size:0 으로 숨기고 동그라미만 남긴다 */
  #teeth-page .slide-pg {
    display: flex;
    gap: var(--one-slide-dot-gap);
  }

  #teeth-page .slide-pg .swiper-pagination-bullet {
    width: var(--one-slide-dot);
    height: var(--one-slide-dot);
    border-radius: 50%;
    background-color: var(--gray-color01);
    font-size: 0;
    opacity: 0.5;
    transition: width 0.3s ease, opacity 0.3s ease;
  }

  #teeth-page .slide-pg .swiper-pagination-bullet-active {
    width: calc(var(--one-slide-dot) * 2.6);   /* 켜진 점은 가로로 길게 */
    border-radius: 999px;                      /* em 은 안 된다 — font-size:0 이라 0 이 된다 */
    opacity: 1;
  }

  /* 좌우를 같이 준다 — 왼쪽만 주면 가운데정렬 기준이 그 절반만큼 오른쪽으로 밀린다.
     왼쪽은 ▶ 가 나갈 자리라 0 이면 Swiper 의 overflow:hidden 에 잘린다 */
  #teeth-page .sec-pstep .slide-cont .swiper-slide {
    padding-inline: var(--one-trt-mark);
    text-align: center;
  }

  #teeth-page .sec-body .step-tit {
    margin: 10px;
  }

    #teeth-page .sec-zir .step-desc {
    padding: 15px;
    margin-top: 10px;
  }

  /* 흐름 안으로 들어오므로 PC 의 고정폭을 푼다 — 남으면 슬라이드 폭보다 좁은 박스 안에서만 가운데가 된다 */
  #teeth-page .pstep-num {
    position: static;
    width: auto;
    padding-bottom: var(--one-gap-sm);
  }

  #teeth-page .sec-zir .hd3 {
    margin: 0px;
}

}
