/* Shared layout and hero styles for all orthodontics landing pages. */
.contents-wrapper {
    width: min(1340px, calc(100% - 30px));
    max-width: min(1340px, calc(100% - 30px));
    margin: 0 auto;

    .title-container {
        display: flex;
        justify-content: center;
        flex-direction: column;
        gap : 20px;

        .eyebrow {
            text-align: center;
            color: #A8599E;
            font-size: 24px;
            font-weight: 700;
            line-height: 30px; /* 125% */
            letter-spacing: -0.72px;
        }

        .title {
            color:  #5E2C7B;
            text-align: center;
            font-size: 40px;
            font-weight: 700;
            line-height: 130%; /* 52px */
            letter-spacing: -1.5px;
            margin : 0;
        }

        .desc {
            text-align: center;
            color:  #78716C;
            font-size: 21px;
            font-weight: 400;
            line-height: 31px; /* 147.619% */
            letter-spacing: -0.63px;
        }
    }
}

.ortho-hero {
    position: relative;
    height: 850px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: #090807;
}

.ortho-wrap {
    width: var(--container-max, 1370px);
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 15px;
}

.ortho-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url('../img/orthodontics/main2.webp') no-repeat 0.058px -117.884px / 100% 150.588%;
    filter: grayscale(1);
}

.ortho-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
}

.ortho-hero .ortho-wrap {
    position: relative;
    z-index: 2;
}

.ortho-hero__copy {
    padding-top: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.ortho-hero__eyebrow {
    margin: 0 0 15px;
    color: rgba(255, 255, 255, .72);
    font-size: 28px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: -1.4px;
    text-align: center;
}

.ortho-hero__title {
    margin: 0;
    color: #fff;
    font-size: 64px;
    font-weight: 800;
    line-height: 76.8px;
    letter-spacing: -1.92px;
    text-align: center;
}

.ortho-hero__divider {
    display: block;
    width: 1px;
    height: 35px;
    margin-top: 15px;
    background-color: #fff;
}

.ortho-hero__lead {
    margin: 15px 0 0;
    color: rgba(255, 255, 255, .86);
    font-size: 24px;
    font-weight: 500;
    line-height: 34px;
    letter-spacing: -1.2px;
    text-align: center;
}

.ortho-video,
.ortho-doctors,
.ortho-stats,
.ortho-cases,
.ortho-system,
.ortho-age-diff,
.ortho-timing,
.ortho-signal,
.ortho-caution,
.ortho-qna-section {
    padding : 130px 0;
}

.ortho-timing {
    background-color: var(--color-bg-soft);
}

.ortho-system .contents-wrapper,
.ortho-age-diff .contents-wrapper,
.ortho-age-diff__content {
    display: flex;
    flex-direction: column;
    gap : 80px;
}

.ortho-video .contents-wrapper,
.ortho-stats .contents-wrapper,
.ortho-cases .contents-wrapper,
.ortho-timing .contents-wrapper,
.ortho-caution .contents-wrapper {
    display: flex;
    flex-direction: column;
    gap : 60px;
}

.video_body {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    gap : 60px;

    iframe {
        width: 100%;
        height: auto;
        aspect-ratio: 314/177;
    }
}


.doctor-info-title {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin : 80px 0 40px;
    width: 100%;
    justify-content: center;
    align-items: center;
}
.doctor-info-title img {
    width: 80px;
}

.ortho-doctors .imp-doctor-card__career,
.child-ortho-doctors .imp-doctor-card__career {
    text-align: left;
}

.ortho-doctors .imp-doctor-card,
.child-ortho-doctors .imp-doctor-card {
    border-top-width: 3px;
    border-radius: 30px;
}

.doctor-grid {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    max-width: var(--content-max);
    margin : 0 0 60px;
    gap : 60px;
}

.ortho-doctors {
    .contents-wrapper {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .theme-title-center__sub {
        width: 100% ;
        word-break: keep-all;
    }
}


.ortho-cases {
    background-color: var(--color-bg-soft);

    .ortho-cases-title {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .cases-wrapper {
        display: flex;
        flex-direction: column;
        gap : 60px;
    }
    .btn-wrapper {
        display: flex;
        justify-content: center;
    }
}

.ortho-age-diff {
    .ortho-age-diff__cards {
        display: flex;
        gap: 30px;
    }


    .ortho-age-diff__card {
        flex: 1 1 0;
        min-width: 0;
    }

    .ortho-age-diff__image {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 655 / 493;
        object-fit: cover;
    }

    .ortho-age-diff__copy {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-top: 30px;
    }

    .ortho-age-diff__copy h4,
    .ortho-age-diff__copy p {
        margin: 0;
    }

    .ortho-age-diff__copy h4 {
        color: #5E2C7B;
        font-size: 40px;
        font-weight: 700;
        line-height: 1.3;
        letter-spacing: -1.5px;
    }


    .ortho-age-diff__copy p {
        color: #78716C;
        font-size: 24px;
        font-weight: 500;
        line-height: 34px;
        letter-spacing: -1.2px;
    }

    .ortho-age-diff__actions {
        display: flex;
        justify-content: center;
        gap: 10px;
    }

    .ortho-age-diff__actions .ortho-age-diff__cta.btn-cta {
        min-height: 54px;
        padding: 15px 20px;
    }
}

.ortho-timing {
    .ortho-timing__panel {
        width: 100%;
        padding: 40px;
        box-sizing: border-box;
        background: rgba(255, 255, 255, 0.6);
        border-radius: 16px;
        box-shadow: 15px 15px 30px 0 rgba(0, 0, 0, 0.03);
    }

    .ortho-timing__process {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        overflow: hidden;
        background: #EEE9ED;
        border: 4px solid #EEE9ED;
        border-radius: 16px;
        box-sizing: border-box;
    }

    .ortho-timing__process-title {
        width: 100%;
        margin: 0;
        padding: 16px 10px;
        box-sizing: border-box;
        color: #5E2C7B;
        font-size: 24px;
        font-weight: 700;
        line-height: 30px;
        letter-spacing: -0.72px;
        text-align: center;
    }

    .ortho-timing__steps {
        display: flex;
        align-items: stretch;
        justify-content: center;
        width: 100%;
        padding: 30px 15px;
        box-sizing: border-box;
        background: #fff;
    }

    .ortho-timing__stage {
        display: flex;
        flex: 1 1 0;
        flex-direction: column;
        gap: 30px;
        align-items: flex-start;
        max-width: 400px;
        min-width: 0;
        padding: 20px;
        box-sizing: border-box;
        border-radius: 10px;
    }

    .ortho-timing__stage-label {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 61px;
        margin: 0;
        padding: 15px;
        box-sizing: border-box;
        border-radius: 100px;
        color: #fff;
        font-size: 21px;
        font-weight: 700;
        line-height: 31px;
        letter-spacing: -1.05px;
        text-align: center;
    }

    .ortho-timing__stage--first .ortho-timing__stage-label {
        background: #A8599E;
    }


    .ortho-timing__stage--second .ortho-timing__stage-label {
        background: #5E2C7B;
    }

    .ortho-timing__stage-content {
        display: flex;
        flex: 1;
        flex-direction: column;
        gap: 10px;
        align-items: center;
        width: 100%;
    }

    .ortho-timing__stage--first .ortho-timing__stage-content,
    .ortho-timing__stage--second .ortho-timing__stage-content {
        background: #F7F7F7;
    }

    .ortho-timing__stage-card {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 10px;
        width: 100%;
        min-height: 105px;
        padding: 15px 15px 25px;
        box-sizing: border-box;
        border: 2px solid #F8F4F7;
        border-radius: 10px;
        text-align: center;
    }

    .ortho-timing__stage--observation .ortho-timing__stage-card {
        border-color: #EEE9ED;
        border-style: dashed;
    }

    .ortho-timing__stage-card h5 {
        margin: 0;
        color: #44403C;
        font-size: 21px;
        font-weight: 700;
        line-height: 31px;
        letter-spacing: -1.05px;
        word-break: keep-all;
    }

    .ortho-timing__stage-card p,
    .ortho-timing__check-card p {
        margin: 0;
        color: #78716C;
        font-size: 13px;
        font-weight: 500;
        line-height: normal;
        letter-spacing: -0.39px;
        text-align: center;
        word-break: keep-all;
    }

    .ortho-timing__check-card {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        padding: 15px;
        box-sizing: border-box;
        border-radius: 10px;
    }

    .ortho-timing__check-title {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        width: 100%;
        padding: 0px 0 8px;
    }

    .ortho-timing__check-title img {
        display: block;
        flex: 0 0 20px;
        width: 20px;
        height: 20px;
    }

    .ortho-timing__check-title strong {
        color: #5E2C7B;
        font-size: 17px;
        font-weight: 700;
        line-height: normal;
        letter-spacing: -0.51px;
    }

    .ortho-timing__check-card p {
        width: 100%;
        color: #57534E;
    }

    .ortho-timing__arrow {
        display: flex;
        flex: 0 0 36px;
        align-items: center;
        justify-content: center;
        align-self: stretch;
    }

    .ortho-timing__arrow img {
        display: block;
        width: 36px;
        height: 38px;
        object-fit: contain;
    }

        .question {
            text-align: center;
            color: #292524;
            font-family: Pretendard;
            font-size: 40px;
            font-weight: 700;
            line-height: 130%;
            letter-spacing: -1.5px;
            margin : 20px 0 0;
        }

        .quotation {
            color:  #292524;
            text-align: center;
            font-feature-settings: 'liga' off, 'clig' off;
            font-family: "ONE Mobile Title", serif !important;
            font-size: 40px;
            font-weight: 400;
            line-height: 130%; /* 52px */
            letter-spacing: -1.5px;
        }

        .answer {
            margin : 20px 0 0 0;
            color: #78716C;
            text-align: center;
            font-size: 21px;
            font-weight: 400;
            line-height: 31px; /* 147.619% */
            letter-spacing: -0.63px;
        }


}

.ortho-signal-title {
    display: flex;
    width: 100%;
    max-width: 1340px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
}


.ortho-signal-title .theme-title-center__heading,
.ortho-signal-title .theme-title-center__sub {
    width: 100%;
}

.ortho-signal {
    background: #fff;
}

.ortho-signal .contents-wrapper {
    display: flex;
    flex-direction: column;
    gap: 100px;
}

.ortho-signal__images {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
}

.ortho-signal__image {
    flex: 1 1 0;
    width: 100%;
    max-width: 665px;
    max-height: 604.545px;
    aspect-ratio: 440 / 400;
    margin: 0;
    overflow: hidden;
}

.ortho-signal__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ortho-signal__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 60px;
    row-gap: 60px;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ortho-signal__item {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: flex-end;
    gap: 20px;
}

.ortho-signal__item--wide {
    grid-column: 1 / -1;
}

.ortho-signal__item-title {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 10px;
}

.ortho-signal__item-title img {
    display: block;
    flex: 0 0 23.04px;
    width: 23.04px;
    height: 23.04px;
}

.ortho-signal__item-title strong {
    color: #5E2C7B;
    font-size: 24px;
    font-weight: 700;
    line-height: 30px;
    letter-spacing: -0.72px;
    word-break: keep-all;
}

.ortho-signal__item-description {
    width: 100%;
    min-height: 63px;
    box-sizing: border-box;
    margin: 0;
    padding: 15px 25px;
    overflow: hidden;
    background: rgba(123, 44, 106, 0.05);
    border: 1px solid rgba(204, 204, 204, 0.1);
    border-radius: 8px;
    color: #44403C;
    font-size: 21px;
    font-weight: 500;
    line-height: 31px;
    letter-spacing: -0.84px;
    word-break: keep-all;
}

.ortho-caution .contents-wrapper {
    .title-container {
        gap : 30px;
        .title {
            color: #292524;
            text-align: center;
            font-size: 56px;
            font-weight: 400;
            line-height: 130%; /* 72.8px */
            letter-spacing: -1.68px;

            strong {
                font-weight: 800;
            }
        }

        .desc {
            margin: 0;
        }
    }
    .caution-list-wrapper {
        display: flex;
        flex-direction: column;
        gap : 30px;
    }
}


/* 1920 × 850 hero artwork ratio; compact breakpoints keep their content-safe heights. */
@media (min-width: 1200px) {
    .ortho-hero {
        height: auto;
        aspect-ratio: 1920 / 850;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .ortho-signal .contents-wrapper {
        gap: 60px;
    }

    .ortho-signal__items {
        display: flex;
        flex-direction: column;
        gap: 60px;
    }

    .ortho-hero::before {
        background-size: 165.995% 100%;
        background-position: -253.422px 0;
    }

    .ortho-timing {
        .ortho-timing-question {
            margin-top: 70px;
        }


        .ortho-timing__steps {
            flex-direction: column;
            align-items: center;
        }

        .ortho-timing__stage {
            flex: 0 0 auto;
            width: min(100%, 400px);
            padding: 15px;
            gap: 20px;
        }

        .ortho-timing__arrow {
            flex: 0 0 36px;
            align-self: center;
            transform: rotate(90deg);
        }
    }
}

@media (max-width: 991px) {
    .ortho-hero {
        min-height: 620px;
    }

    .ortho-hero__title {
        font-size: 64px;
        line-height: 120%;
    }
}

@media (max-width: 767px) {
    .contents-wrapper {
        width: max(345px, calc(100% - 80px));
        max-width: max(345px, calc(100% - 80px));
        margin: 0 auto;

        .title-container {
            display: flex;
            justify-content: center;
            flex-direction: column;
            gap : 20px;
            width: 100%;

            .eyebrow {
                font-size: 17px;
                font-weight: 700;
                line-height: 130%; /* 22.1px */
                letter-spacing: -0.51px;
            }

            .title {
                font-size: 23px;
                font-weight: 700;
                line-height: 130%; /* 29.9px */
                letter-spacing: -0.45px;
            }

            .desc {
                font-size: 15px;
                font-weight: 400;
                line-height: 150%; /* 22.5px */
                letter-spacing: -0.45px;
            }
        }
    }

    .ortho-video,
    .ortho-doctors,
    .ortho-stats,
    .ortho-cases,
    .ortho-system,
    .ortho-age-diff,
    .ortho-timing,
    .ortho-signal,
    .ortho-caution ,
    .ortho-qna-section {
        padding : 80px 0;
    }
    .ortho-hero {
        height: 650px;
    }

    .ortho-hero .ortho-wrap {
        width: 100%;
        max-width: none;
        padding: 0;
    }

    .ortho-hero::before {
        background-size: 250% 100%;
        background-position: 39% 10%;
    }

    .ortho-hero__eyebrow {
        font-size: 20px;
        letter-spacing: -1px;
        opacity: .7;
    }

    .ortho-hero__copy {
        width: 100%;
        padding: 15px 0;
        overflow: hidden;
    }

    .ortho-hero__title {
        font-size: 32px;
        line-height: 130%;
        letter-spacing: -.96px;
    }

    .ortho-hero__divider {
        height: 20px;
    }

    .ortho-hero__lead {
        width: 100%;
        opacity: .7;
        font-size: 17px;
        line-height: 130%;
        letter-spacing: -.85px;
    }

    .ortho-cases .contents-wrapper {
        gap : 30px;
    }

    .ortho-age-diff {
        .contents-wrapper,
        .ortho-age-diff__content {
            gap: 60px;
        }

        .ortho-age-diff__cards,
        .ortho-age-diff__actions {
            flex-direction: column;
        }

        .ortho-age-diff__cards {
            gap: 40px;
        }

        .ortho-age-diff__copy {
            margin-top: 20px;
        }

        .ortho-age-diff__copy h4 {
            font-size: 23px;
            line-height: 1.3;
            letter-spacing: -0.45px;
        }

        .ortho-age-diff__copy p {
            font-size: 15px;
            line-height: 1.5;
            letter-spacing: -0.45px;
            word-break: keep-all;
        }

        .ortho-age-diff__actions {
            align-items: center;
        }
    }

    .teen-ortho-signal .contents-wrapper {
        gap: 60px;
    }

    .ortho-signal-title .theme-system-title {
        gap: 10px;
        margin-bottom: 12px;
    }

    .ortho-signal-title .theme-title-center__heading {
        margin: 0 0 16px;
        font-size: 28px;
        line-height: 1.3;
        letter-spacing: -0.84px;
    }

    .ortho-signal-title .theme-title-center__sub,
    .ortho-signal-title .theme-title-center__sub p {
        font-size: 17px;
        font-weight: 500;
        line-height: 1.3;
        letter-spacing: -0.85px;
        opacity: 0.7;
    }

    .ortho-signal__images {
        height: 130px;
    }

    .ortho-signal__image {
        flex: 1 0 0;
        width: auto;
        max-width: none;
        max-height: none;
        height: 100%;
        aspect-ratio: auto;
    }

    .ortho-signal__items {
        gap: 30px;
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .ortho-signal__item {
        gap: 20px;
    }

    .ortho-signal__item-title {
        gap: 5px;
    }

    .ortho-signal__item-title img {
        flex: 0 0 20px;
        width: 20px;
        height: 20px;
    }

    .ortho-signal__item-title strong {
        font-size: 17px;
        line-height: 1.3;
        letter-spacing: -0.51px;
        white-space: nowrap;
    }

    .ortho-signal__item-description {
        min-height: 0;
        padding: 12px 25px;
        font-size: 15px;
        font-weight: 500;
        line-height: 1.5;
        letter-spacing: -0.6px;
    }

    .ortho-caution .contents-wrapper {
        .title-container {
            align-items: center;
            gap: 0;
            text-align: center;

            .eyebrow {
                margin: 0 0 12px;
                font-size: 17px;
                font-weight: 700;
                line-height: 1.3;
                letter-spacing: -0.51px;
            }

            .title {
                margin: 0 0 16px;
                font-size: 28px;
                font-weight: 400;
                line-height: 1.3;
                letter-spacing: -0.84px;
            }

            .desc {
                margin: 0;
                color: #44403C;
                font-size: 15px;
                font-weight: 500;
                line-height: 1.5;
                letter-spacing: -0.6px;
                opacity: 0.7;
            }
        }
        .caution-list-wrapper {
            gap: 10px;
        }

        .ortho-caution .dsc {
            border-width: 0.8px;
            border-radius: 12px;
            box-shadow: 12px 12px 24px 0 rgba(0, 0, 0, 0.03);
        }

        .child-ortho-caution .dsc__body {
            gap: 24px;
        }

        .child-ortho-caution .dsc__heading {
            gap: 16px;
        }

        .child-ortho-caution .dsc__number {
            padding-bottom: 4px;
            border-bottom-width: 1.6px;
        }

        .child-ortho-caution .dsc__desc {
            word-break: break-word;
        }

        .child-ortho-caution .dsc__point {
            box-sizing: border-box;
            gap: 3.84px;
            padding: 16px 16px 24px;
            background: rgba(123, 44, 106, 0.03);
            border-radius: 8px;
        }
        .child-ortho-caution .dsc__point-header {
            justify-content: center;
            gap: 9.6px;
        }

        .child-ortho-caution .dsc__point-icon {
            width: 15.483px;
            height: 15.483px;
        }

        .child-ortho-caution .dsc__point-label {
            flex: 1;
            min-width: 0;
            font-size: 15.67px;
            line-height: 1.3;
            letter-spacing: -0.4701px;
        }

        .child-ortho-caution .dsc__point-text {
            min-height: 0;
            padding: 0 0 0 26.88px;
            background: transparent;
            border: 0;
            border-radius: 0;
            color: #78716C;
            font-size: 12.48px;
            font-weight: 500;
            line-height: normal;
            letter-spacing: -0.4992px;
            word-break: break-word;
        }
    }

    .ortho-timing {
        .ortho-timing-question {
            margin-top: 70px;
        }


        .ortho-timing__steps {
            flex-direction: column;
            align-items: center;
        }

        .ortho-timing__stage {
            flex: 0 0 auto;
            width: min(100%, 400px);
            padding: 15px;
            gap: 20px;
        }

        .ortho-timing__arrow {
            flex: 0 0 36px;
            align-self: center;
            transform: rotate(90deg);
        }

        .theme-title-center__heading {
            font-size: 28px;
            line-height: 36px;
            letter-spacing: -1.05px;
            word-break: keep-all;
        }

        .theme-title-center__sub,
        .theme-title-center__sub p {
            font-size: 15px;
            line-height: 23px;
            letter-spacing: -0.45px;
            word-break: keep-all;
        }

        .ortho-timing__process-title {
            padding: 16px 10px;
            font-size: 17px;
            font-weight: 700;
            line-height: 130%; /* 22.1px */
            letter-spacing: -0.51px;
        }

        .ortho-timing__panel {
            padding: 15px;
            border-radius: 12px;
        }

        .ortho-timing__process {
            border-radius: 12px;
        }

        .ortho-timing__stage-label {
            min-height: 49px;
            padding: 13px 15px;
            font-size: 15px;
            font-weight: 700;
            line-height: 150%; /* 22.5px */
            letter-spacing: -0.75px;
        }

        .ortho-timing__stage-card h5 {
            font-size: 15px;
            font-weight: 700;
            line-height: 150%; /* 22.5px */
            letter-spacing: -0.75px;
        }

        .ortho-timing__stage-card p,
        .ortho-timing__check-card p {
            font-size: 11px;
            font-weight: 500;
            line-height: normal;
            letter-spacing: -0.33px;
        }

        .ortho-timing__check-title strong {
            font-size: 15px;
            letter-spacing: -0.45px;
        }


        .contents-wrapper {
            gap : 40px;

            .ortho-timing-question {
                margin-top: 40px;

                .question {
                    font-size: 23px;
                    line-height: 130%; /* 29.9px */
                    letter-spacing: -0.45px;

                    .quotation {
                        font-size: 23px;
                    }
                }

                .answer {
                    font-size: 15px;
                    font-weight: 400;
                    line-height: 150%; /* 22.5px */
                    letter-spacing: -0.45px;
                }
            }
        }
        .ortho-timing__check-card {
            padding : 25px 15px;
        }
    }

}
