:root {
  /* 한복 공방 : 아이보리 화이트 + 아주 옅은 골드
     ------------------------------------------------------------------
     색을 거의 쓰지 않습니다. 아이보리 바탕 · 따뜻한 먹색 글자 ·
     골드는 로고와 활성 표시 같은 아주 좁은 자리에만 씁니다.

     - strong   순검정. 제목 · 메뉴 · 검은 버튼 (강조)
     - text     따뜻한 먹색. 본문
     - text-sub 한 톤 옅은 먹색. 설명문 · 라벨
     - point    골드. 활성 표시 · 마당 번호 · 링크 밑줄
     - line     1px 가는 선

     글자색은 [순검정 → 먹색 → 옅은 먹색] 세 단계로만 씁니다.
     단계를 늘리면 무엇이 중요한지가 흐려집니다.

     ※ 골드는 밝아서 흰 바탕에 큰 글씨로 쓰면 읽기 어렵습니다.
       작은 라벨과 선에만 쓰세요. */
  --primary-color: #33302c;
  --secondary-color: #f6f3ee;
  --point-color: #a8925f; /* 골드 */
  /* 골드 진한 쪽. hover 와 작은 글씨 라벨에 씁니다.
     예전 #8a7748 은 바탕 대비가 4.3:1 로 살짝 모자라 5.1:1 로 낮췄습니다. */
  --point-dark: #7d6b3e;
  --point-light: #c9b98d; /* 어두운 사진 위 골드 */
  --sub-color: #a8925f;
  --accent-color: #a8925f;
  --lightgray-color: #faf8f5;
  --white-color: #ffffff;
  --footerbg-color: #ffffff;
  --background-color: #fdfcfa;

  --dark-color: #33302c;

  --line-color: #e3ded6;
  --text-color: #33302c;

  /* 강조용 순검정.
     제목 · 메뉴 · 단계 이름 · 검은 버튼처럼 눈에 먼저 들어와야 하는 곳에만 씁니다.
     본문은 그대로 따뜻한 먹색(--text-color)을 써서 단계를 만듭니다.
     ※ 여기까지 검게 칠하면 강조가 사라지니 본문에는 쓰지 마세요. */
  --strong-color: #000000;

  /* 본문 보조 글자색 (설명문 · 라벨). 각 섹션에서 널리 쓰므로 여기서 한 번만 정의합니다.
     예전 #8b8378 은 바탕과 대비가 3.6:1 밖에 안 되어 한글 명조 작은 글씨가
     흐려 보였습니다. 5.4:1 로 올렸습니다 (WCAG AA 통과) */
  --text-color-sub: #6f6759;

  --inner-size: 1200px;
  /* 히어로 사진 높이 : 첫 화면을 가득 채웁니다.
     헤더가 이 높이 안에서 세로 가운데로 맞춰지므로,
     히어로(main_hero.html)와 헤더(css/style.css)가 같은 값을 씁니다.
     ※ svh 는 모바일에서 주소창이 접혀도 높이가 튀지 않게 해 줍니다.
       모르는 브라우저는 윗줄(vh)을 씁니다. */
  --hero-h: 100vh;
  --hero-h: 100svh;
}

html {
  font-size: 62.5%;
}

@media (max-width: 1280px) {
  html {
    font-size: clamp(9px, 0.78125vw, 10px);
  } /* ~9-10px */
}
@media (max-width: 1024px) {
  html {
    font-size: clamp(9px, 0.9765625vw, 10px);
  } /* ~9-10px */
}
@media (max-width: 768px) {
  html {
    font-size: clamp(8px, 1.3020833vw, 10px);
  } /* ensure min 8px */
}
@media (max-width: 480px) {
  html {
    font-size: clamp(8px, 2.0833333vw, 10px);
  }
}

@media (min-width: 480px) {
  a[href^="tel"] {
    pointer-events: none; /* 클릭 차단 */
    cursor: default; /* 클릭 불가 표시 */
  }
}

body {
  font-size: 1.6rem;
  line-height: 1.5;
  color: var(--text-color);
  word-break: keep-all;
  hyphens: auto;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.inner {
  max-width: var(--inner-size);
  margin: 0 auto;
  padding: 0 2.4rem;
}

@media (max-width: 768px) {
  .inner {
    padding: 0 1.6rem;
  }
}

.w_inner {
  max-width: var(--inner-size);
  margin: 0 auto;
  padding: 0 2.4rem;
}

@media (max-width: 768px) {
  .w_inner {
    padding: 0 1.6rem;
  }
}

.w_inner_r {
  max-width: calc((100% - var(--inner-size)) / 2 + var(--inner-size));
  margin: 0 0 0 auto;
  padding: 0 0 0 2.4rem;
}

@media (max-width: 768px) {
  .w_inner_r {
    padding: 0 1.6rem;
  }
}

body {
  background: var(--background-color);
  letter-spacing: -0.01em;
}

/* 섹션 공통 여백 : 여백이 이 디자인의 핵심입니다. 줄이지 마세요. */
.default {
  position: relative;
  padding: 14rem 0;
}

.default.bg {
  background: var(--secondary-color);
}

/* ==========================================================================
   챕터 제목
   ------------------------------------------------------------------
   능화문(겹마름모) 넉 점 + 작은 한글 제목.
   <h2 class="chapter_tit">지은 옷</h2>

   제목은 작게 두고 색도 옅게 눌러, 섹션 시작 위치만 표시합니다.

   ※ 한글 이탤릭은 기울임 흉내라 획이 뭉개져 읽기 나쁩니다.
     그래서 이 자리들은 모두 기본 명조 + 바로 세운 글자로 둡니다.
   ========================================================================== */
.chapter_tit {
  font-family: var(--font-base);
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1.4;

  /* 작은 글자는 자간을 조금 더 벌려야 읽기 좋습니다 */
  letter-spacing: 0.14em;
  text-align: center;

  /* 옅은 먹색 + 투명도로 한 번 더 눌러 흐리게 둔다 */
  color: var(--text-color-sub);
  opacity: 0.8;
}

/* 제목 위 능화문(겹마름모) 넉 점 : 나란히 놓인 전통 문양 장식.
   바깥 마름모 안에 작은 마름모와 꽃심 한 점이 겹쳐 있습니다.
   (SVG 데이터 URI. 골드 1px 선. 별도 이미지 파일 없음) */
.chapter_tit::before {
  content: "";
  display: block;
  width: 9.6rem;
  height: 1.6rem;
  margin: 0 auto 2.4rem;
  background: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='96' height='16' viewBox='0 0 96 16'><g fill='none' stroke='%23a8925f'><path d='M12 1L19 8 12 15 5 8Z'/><path d='M36 1L43 8 36 15 29 8Z'/><path d='M60 1L67 8 60 15 53 8Z'/><path d='M84 1L91 8 84 15 77 8Z'/><g stroke-opacity='.55'><path d='M12 4.5L15.5 8 12 11.5 8.5 8Z'/><path d='M36 4.5L39.5 8 36 11.5 32.5 8Z'/><path d='M60 4.5L63.5 8 60 11.5 56.5 8Z'/><path d='M84 4.5L87.5 8 84 11.5 80.5 8Z'/></g></g><g fill='%23a8925f' fill-opacity='.6'><circle cx='12' cy='8' r='1'/><circle cx='36' cy='8' r='1'/><circle cx='60' cy='8' r='1'/><circle cx='84' cy='8' r='1'/></g></svg>") center / contain no-repeat;
  opacity: 0.8;
}

@media (max-width: 1024px) {
  .chapter_tit {
    font-size: 2rem;
  }
}

@media (max-width: 768px) {
  .chapter_tit {
    font-size: 1.8rem;
  }

  .chapter_tit::before {
    width: 8rem;
    height: 1.3rem;
    margin-bottom: 1.8rem;
  }
}

/* ==========================================================================
   장식 요소 (그래픽 가니시)
   ------------------------------------------------------------------
   전통 문양만 씁니다. 색은 골드, 선은 1px 만 씁니다.

     능화문 넉 점  챕터 제목 위에 나란히 놓인 겹마름모 네 개
                 (.chapter_tit::before). 마름모 안에 작은 마름모와
                 가운데 점이 겹쳐 있습니다.
     골드 점선   챕터 제목 아래(.chapter_tit::after)와
                 각 섹션의 소제목·카드 선 위에 얹습니다.
     점선 원     각 섹션 <style> 의 ::before/::after 로 위치만 잡고,
                 아주 천천히 돌립니다(deco_spin).

   ※ 점선(1px dashed)은 상담시간·준비물 목록에서 이미 쓰는 선이라
     새 선 종류를 늘리지 않았습니다.
   ========================================================================== */

/* 챕터 제목 아래 : 짧은 골드 점선 한 줄 */
.chapter_tit::after {
  content: "";
  display: block;
  width: 4.8rem;
  margin: 2rem auto 0;
  border-top: 1px dashed var(--point-color);
  opacity: 0.55;
}

/* 챕터 제목이 담기는 머리 영역 */
.sec_head {
  position: relative;
}

/* 점선 원이 아주 천천히 도는 동작
   ※ 동작을 쓰는 쪽(각 섹션 <style>)에서 prefers-reduced-motion 도 함께 끕니다 */
@keyframes deco_spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 768px) {
  .chapter_tit::after {
    margin-top: 1.8rem;
  }
}

/* ==========================================================================
   섹션 제목 (가운데 정렬)
   ------------------------------------------------------------------
   구조 : [큰 한글 제목] + [한 줄 부제] + [본문]
   ========================================================================== */
.title {
  margin-bottom: 6.4rem;
  text-align: center;
}

.title h2 {
  font-size: 3.2rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: var(--strong-color);
}

/* 제목 아래 한 줄 부제 */
.title .tit_sub {
  display: block;
  margin-top: 1.6rem;

  font-size: 1.4rem;
  letter-spacing: 0.08em;
  color: var(--point-dark);
}

.title .desc {
  margin-top: 3.2rem;

  /* 한글 명조는 가늘게(300) 쓰면 획이 날아갑니다. 400 을 유지합니다. */
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.01em;
  color: var(--text-color-sub);
}

/* 왼쪽 정렬 변형 */
.title.left {
  text-align: left;
}

@media (max-width: 1024px) {
  .title h2 {
    font-size: 2.8rem;
  }
}

@media (max-width: 768px) {
  .title {
    margin-bottom: 4.8rem;
  }

  .title h2 {
    font-size: 2.4rem;
  }

  .title .desc {
    line-height: 2.1;
  }
}

/* 히어로에는 큰 제목을 쓰지 않습니다 (사진만 놓습니다) */

/* 화면 폭에 따라 줄바꿈(<br>)을 켜고 끄는 유틸 */
@media (max-width: 768px) {
  .pc_only {
    display: none;
  }
}

.title h2 em {
  font-style: normal;
  font-weight: inherit;
}

/* ==========================================================================
   버튼 · 링크
   ------------------------------------------------------------------
   .default_btn  1px 테두리만 있는 넓은 사각 버튼
   .txt_lnk      글자 + 밑줄만 쓰는 링크

   ※ 버튼과 링크는 고딕(--font-sans)을 씁니다.
     작은 글씨에서는 명조보다 고딕이 또렷합니다.
   ========================================================================== */
.default_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;

  min-width: 20rem;
  height: 4.6rem;
  padding: 0 2.8rem;
  border: 1px solid var(--line-color);
  border-radius: 0;
  background: transparent;

  font-family: var(--font-sans);
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--strong-color);
  white-space: nowrap;
  cursor: pointer;

  transition: border-color 0.35s, color 0.35s, background 0.35s;
}

.default_btn:hover {
  border-color: var(--point-color);
  color: var(--point-dark);
}

/* 어두운 사진 위에 올릴 때 */
.default_btn.btn_w {
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--white-color);
}

.default_btn.btn_w:hover {
  border-color: var(--white-color);
  background: rgba(255, 255, 255, 0.1);
  color: var(--white-color);
}

.default_btn .icon {
  width: 1.4rem;
  height: 1.4rem;
  stroke: currentColor;
  stroke-width: 1.2;
}

@media (max-width: 768px) {
  .default_btn {
    min-width: 17rem;
    height: 4.4rem;
    font-size: 1.4rem;
  }
}

/* 글자 + 밑줄만 쓰는 링크 */
.txt_lnk {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;

  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--line-color);

  font-family: var(--font-sans);
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  color: var(--text-color);
  transition: 0.3s;
}

.txt_lnk:hover {
  border-color: var(--point-color);
  color: var(--point-dark);
}

.txt_lnk .icon {
  width: 1.3rem;
  height: 1.3rem;
  stroke: currentColor;
  stroke-width: 1.2;
  transition: transform 0.3s;
}

.txt_lnk:hover .icon {
  transform: translateX(0.4rem);
}

.icon_btn {
  position: relative;
  z-index: 1;

  display: inline-flex;
  align-items: center;
  height: 4.8rem;

  padding: 0 9.6rem 0 4.8rem;
  overflow: hidden;

  color: var(--white-color);
  white-space: nowrap;
}

.icon_btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
  width: 100%;
  height: 4.8rem;

  background: var(--primary-color);
}

.icon_btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 4.8rem;
  height: 4.8rem;

  background: rgba(0, 0, 0, 0.1) url(../lib/icon/arrow-right.svg) no-repeat
    center center;
  filter: invert();
}

.icon_btn_write {
  position: relative;
  z-index: 1;

  margin-top: 4rem;

  display: inline-flex;
  align-items: center;
  height: 4.8rem;
  border-radius: 4.8rem;
  padding: 0 2.4rem 0 8rem;
  overflow: hidden;

  color: var(--white-color);
  white-space: nowrap;
}

.icon_btn_write::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 4.8rem;
  border-radius: 4.8rem;
  background: var(--primary-color);
}

.icon_btn_write::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 4.8rem;
  background: rgba(0, 0, 0, 0.1) url(../lib/icon/edit-3.svg) no-repeat center
    center;

  filter: invert();
}

.icon_btn_cancel {
  position: relative;
  z-index: 1;

  margin-top: 4rem;

  display: inline-flex;
  align-items: center;
  height: 4.8rem;
  border-radius: 4.8rem;
  padding: 0 2.4rem 0 8rem;
  overflow: hidden;

  color: var(--white-color);
  white-space: nowrap;
}

.icon_btn_cancel::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 4.8rem;
  border-radius: 4.8rem;
  background: var(--point-color);
}

.icon_btn_cancel::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 4.8rem;
  background: rgba(0, 0, 0, 0.1) url(../lib/icon/x.svg) no-repeat center center;

  filter: invert();
}

.flx {
  display: flex;
  gap: 3rem;
}

.flx > * {
  flex: 1;
  min-width: 0;
}

hr.hr {
  display: block;
  border: 1px solid transparent;
  margin: 4rem 0;
}
hr.hr_line {
  display: block;
  border: 1px solid transparent;
  border-top: 1px solid var(--line-color);
  margin: 12rem 40%;
}

.table_responsive {
  overflow-x: auto;
}

.iframe_wrap {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.iframe_wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.design {
  margin-top: 1.6rem;
  font-size: 1.5rem;
  font-weight: 300;
  text-transform: uppercase;
}

.pg_current {
  display: inline-block;
  background: var(--primary-color);
  border: 1px solid var(--primary-color);
  color: #fff;
  font-weight: bold;
  height: 30px;
  line-height: 30px;
  padding: 0 10px;
  min-width: 30px;
  border-radius: 3px;
}
.pg_wrap {
  clear: both;
  float: none;
  display: block;
  margin-top: 4rem;
}
