/* ==========================================
   Landing Page - Typography
   Desktop First
========================================== */
/* 2026-09-17 — 전역 타이포그래피 삭제.
 *
 * body.page 에 font-size 를 걸면 이 사이트의 모든 페이지에 적용된다.
 * 게다가 특이도가 body.page h2 (0,1,2) > .gb-text-xxxx (0,1,0) 이라
 * GenerateBlocks 가 블록마다 지정한 크기를 전부 덮어썼다.
 * 대문에서 실측하니 블록 설정(32px, 60px)과 무관하게 h2 가 전부 40px 로 나왔다.
 *
 * 글자 크기는 블록에서 정하는 것이 맞으므로 아래를 걷어냈다.
 *   body.page      { --font-base/h1/h2/h3, font-size }
 *   body.page h1   { font-size }
 *   body.page h2   { font-size }
 *   @media 1024px  { body.page { --font-* } }
 *   @media 768px   { body.page { --font-*, font-size } }
 *
 * 같은 규칙에 묶여 있던 line-height:1.8 / font-weight:400 / color:#333 도 함께 빠졌다.
 * 크기는 그대로 두고 이 셋만 되살리려면 여기에 다시 넣으면 된다.
 */
body.page h3 {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
/* 방식 1: 왼쪽 세로 바 (사용 중인 스타일 — 원/사각형 안은 삭제) */
body.page h3::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 1em;
    background-color: var(--accent);
    flex-shrink: 0;
}
/* 
.overlap-heading-bg {
    font-size: 280px;
    font-weight: 700;
    line-height: 1;
    color: #f2f2f2;
	font-family:georgia;
}
.overlap-heading-title {
	font-size: 68px;
    color: var(--contrast);
    font-weight: 700;
    line-height: 0.9;
	margin-top : -520px;
	font-family:georgia;
} */
.overlap-heading-bg {
    font-size: clamp(80px, 22vw, 280px);
    font-weight: 700;
    line-height: 1;
    color: #f2f2f2;
    font-family: georgia;
}
.overlap-heading-title {
    font-size: clamp(28px, 6vw, 68px);
    color: var(--contrast);
    font-weight: 700;
    line-height: 0.9;
    margin-top: -7.5em; /* -520px ÷ 280px(원본 bg font-size) 비율 */
    font-family: georgia;
}
.landing-default .hero {
    padding-top: 120px;
}
.landing-default .cta {
    padding-bottom: 120px;
}
/* ==========================================
   Tablet
========================================== */
@media (max-width:1024px){
    .landing-default{
        font-size:17px;
    }
    .landing-default p,
    .landing-default li{
        font-size:17px;
    }
    .landing-default h1{
        font-size:46px;
    }
    .landing-default h2{
        font-size:34px;
    }
    .landing-default h3{
        font-size:28px;
    }
}
/* ==========================================
   Mobile
========================================== */
@media (max-width:768px){
    .landing-default{
        font-size:16px;
        line-height:1.7;
    }
    .landing-default p,
    .landing-default li{
        font-size:16px;
        line-height:1.7;
    }
    .landing-default h1{
        font-size:36px;
        line-height:1.2;
    }
    .landing-default h2{
        font-size:30px;
        line-height:1.25;
    }
    .landing-default h3{
        font-size:24px;
        line-height:1.3;
    }

    .overlap-heading-bg {
        font-size: 180px;
        font-weight: 700;
        line-height: 1;
        color: #f2f2f2;
        font-family: georgia;
    }
    .overlap-heading-title{
        font-size: 44px;
        margin-top:-7.6em;
        font-weight: 700;
    }

    .hero{
        align-items: flex-start !important;
        padding-top: 60px;
    }
}
/* ===== Step Guide (Treatment Schedule type02) ===== */
.step-icon2{
    width:44px;
    height:44px;
    margin:0 auto 36px;
    display:block;
}
.step-divider{
    position:relative;
    width:100%;
    height:1px;
    border-top:1px dotted #707070;
    margin-bottom:26px;
}
.step-divider::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:20px;
    height:20px;
    border-radius:50%;
    border:5px solid var(--accent);
    background:#fff;
}
.step-title{
    font-size:1em;
    font-weight:700;
    letter-spacing:.01em;
    color:var(--accent);
    text-align:center;
    margin:0 0 14px;
}
.step-desc{
    font-size:0.6em;
    line-height:1.7;
    color:#5a5a5a;
    text-align:center;
    margin:0;
}
@media (max-width:767px){
    .step-icon{ margin-bottom:16px; }
    .step-divider{ margin-bottom:20px; }
}

.step-line{
  position:relative;
  height:1px;
  background:#c9c9c9;
  margin:14px -0.5em 20px;
}
.step-line-wrap:first-child .step-line{ margin-left:0; }
.step-line-wrap:last-child  .step-line{ margin-right:0; }

.step-line::after{
  content:"";
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:10px; height:10px;
  border-radius:50%;
  border:2px solid #9c6234;
  background:#fff;
}

.step-line-wrap:last-child .step-line::before{
  content:"";
  position:absolute; right:-6px; top:50%;
  transform:translateY(-50%);
  border-style:solid;
  border-width:4px 0 4px 6px;
  border-color:transparent transparent transparent #c9c9c9;
}

@media (max-width:767px){
  .step-line{ margin-left:0; margin-right:0; }
  .step-line-wrap:last-child .step-line::before{ display:none; }
}