/* ===========================================================================
   메인페이지 (/) 전용 스타일
   공통(헤더/퀵메뉴/둘러보기/푸터/토큰)은 main.css 에 있다.
   =========================================================================== */

/* 헤더 상단 바가 접힐 때 히어로도 따라 올라간다 */
@media (min-width: 1171px) {
    body.is-scrolled .main-visual {
        margin-top: 45px;
    }
}

/* 메인 비주얼 ---------------------------------------------------------------------- */
.main-visual {
    height: 940px;
    background: url('/static/images/main/hero-bg.webp') no-repeat center / cover;
    transition: margin-top 0.3s ease;
}

.main-visual .inner {
    position: relative;
    height: 100%;
}

/* 줄바꿈은 마크업의 <br> 로만 일어나도록 폭을 내용에 맞춘다.
   (시안 폭 531px 은 피그마 폰트 메트릭 기준이라 웹폰트에서는 타이틀이 넘친다) */
.main-visual__copy {
    position: absolute;
    top: 149px;
    left: 0;
    width: max-content;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* SEO 용 h1 — 시각적으로는 eyebrow 와 한 세트인 작은 문구.
   copy 의 gap(24px) 을 음수 마진으로 줄여 eyebrow 와 8px 만 띄운다 */
.main-visual__h1 {
    margin-top: -16px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    color: var(--c-brown);
}

.main-visual__title {
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--c-title);
    white-space: nowrap;
}

.main-visual__title em {
    display: block;
    font-style: normal;
    color: var(--c-brown);
}

.main-visual__desc {
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: -0.9px;
    color: var(--c-body);
}

.main-visual__desc p + p {
    margin-top: 32px;
}

.main-visual__desc .is-strong {
    font-weight: 700;
    color: var(--c-text);
}

/* 브레인치과 소개 ------------------------------------------------------------ */
.about {
    height: 1000px;
    background: url('/static/images/main/about-bg.webp') no-repeat center / cover;
}

.about .inner {
    height: 100%;
    display: flex;
    align-items: center;
}

.about__copy {
    width: 591px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.about__title {
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--c-title);
}

.about__title em {
    font-style: normal;
    color: var(--c-brown);
}

.about__lead {
    font-size: 28px;
    letter-spacing: -0.3px;
    color: var(--c-title);
}

.about__lead strong {
    font-weight: 700;
}

.about__desc {
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: -0.9px;
    color: var(--c-body);
}

.about__desc p + p {
    margin-top: 32px;
}

.about__closing {
    font-weight: 700;
    color: #553b26;
}

/* 브레인의 약속 -------------------------------------------------------------- */
.promise {
    height: 1685px;
    background: url('/static/images/main/promise-bg.webp') no-repeat center / cover;
}

.promise .inner {
    position: relative;
    height: 100%;
}

.promise__head {
    position: absolute;
    top: 208px;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.promise__title {
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
}

.promise__title em {
    font-style: normal;
    color: var(--c-cream);
}

/* transform 으로 가운데 맞추면 AOS 가 애니메이션 끝에 transform 을 덮어써서
   차트가 오른쪽으로 밀린다. left/right + margin auto 로 센터링한다. */
.promise__chart {
    position: absolute;
    /* 헤드(208 + 약 172) 바로 아래에 붙어 있어 여백을 벌렸다.
       위 70 / 아래 66 으로 프로젝트 박스(top 1265)와 균형을 맞춘 값 */
    top: 450px;
    left: 0;
    right: 0;
    width: 1063px;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.promise__chart img {
    display: block;
    width: 100%;
    height: auto;
}

.promise__project {
    position: absolute;
    top: 1265px;
    left: 0;
    width: 100%;
    min-height: 248px;
    padding: 40px 20px;
    border-radius: 30px;
    background-color: rgba(177, 149, 128, 0.15);

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 24px;
    text-align: center;
    color: #fff;
}

.promise__project-title {
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.6px;
}

.promise__project-desc {
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: -0.9px;
}

/* 반응형 — 모바일 시안이 없어 PC 시안을 축소 해석한 값이다 --------------------- */
@media (max-width: 1230px) {
    .main-visual,
    .about,
    .promise {
        height: auto;
        padding: 120px 0;
    }

    .main-visual__copy,
    .promise__head,
    .promise__chart,
    .promise__project {
        position: static;
        width: 100%;
    }

    .promise__chart {
        display: block;
        margin: 60px auto;
    }

    .about .inner {
        display: block;
    }

    .about__copy {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .main-visual,
    .about,
    .promise {
        padding: 70px 0;
    }

    /* 배경 위에 글자가 얹히면 안 읽혀서 반투명 판을 깐다 */
    .main-visual {
        background-position: 70% center;
    }

    .main-visual__copy {
        width: 100%;
        gap: 16px;
        padding: 24px;
        background-color: rgba(255, 255, 255, 0.85);
    }

    .main-visual__title {
        white-space: normal;
    }

    .main-visual__h1 {
        font-size: 14px;
    }

    .main-visual__title,
    .about__title,
    .promise__title {
        font-size: 28px;
    }

    .main-visual__desc,
    .about__desc,
    .promise__project-desc {
        font-size: 16px;
        line-height: 1.6;
        letter-spacing: -0.5px;
    }

    .main-visual__desc p + p,
    .about__desc p + p {
        margin-top: 22px;
    }

    .about__lead {
        font-size: 20px;
    }

    .promise__project {
        min-height: 0;
        padding: 30px 20px;
        gap: 16px;
    }

    .promise__project-title {
        font-size: 22px;
    }
}
