/* ---------------------------------------------
   0) Page-level spacing
--------------------------------------------- */
.section.procell {
    padding-block: 0;
}

/* ---------------------------------------------
   2) Procell container & background
--------------------------------------------- */
.procell__introduction {
    position: relative;
    z-index: 0;
    isolation: isolate;
}

.procell__bg {
    position: absolute;
    z-index: -2;
    inset-block: 0;
    top: 160px;
    left: 0;
    width: 76%;
    background-color: #f5ebe9;
}

/* ---------------------------------------------
   3) Introduction: title, large visual, lead card
--------------------------------------------- */

/* main KV image on the right */
.procell__img-box01 {
    position: relative;
    z-index: 1;
    display: flex;
    margin-left: auto;
    margin-top: -300px;
    width: 66.2%;
    max-width: 716px;
    height: auto;
}

/* title wrapper with huge background word */
.procell__title-box {
    position: relative;
    z-index: 0;
    overflow: visible;
}

.procell__title-box::before {
    content: "Procell";
    position: absolute;
    z-index: 0;
    left: -0.67em;
    font-family: var(--font-serif-latin);
    font-size: 200px;
    color: #f9f4f2;
    pointer-events: none;
}

.procell__title {
    position: relative;
    z-index: 2;
    margin-top: 180px;
    font-family: var(--font-serif-latin);
    font-size: 53px;
    line-height: 1.36;
    letter-spacing: .04em;
    color: #683732;
}

.procell__title span {
    display: block;
    font-family: var(--font-serif-ja);
    font-size: 26px;
    font-weight: 500;
}

/* small floating photos */
.procell-desc-area {
    position: relative;
    margin-top: 5.6rem;
}

.procell__img-box02 {
    position: absolute;
    z-index: 5;
    top: 60px;
    left: 6.3%;
    display: flex;
    margin-left: auto;
    max-width: 268px;
    height: auto;
    box-shadow: 10px 10px 0 #e2d0c8;
}

.procell__img-box03 {
    position: absolute;
    z-index: 4;
    top: 390px;
    left: -34px;
    display: flex;
    margin-left: auto;
    max-width: 262px;
    height: auto;
    box-shadow: 10px 10px 0 #e2d0c8;
}

/* lead card */
.procell__card {
    display: grid;
    gap: 4.4rem;
    margin-left: 29.4%;
    padding: 74px 70px 74px 120px;
    background: #fefefe;
}

.procell__card__title {
    margin-bottom: 2rem;
    color: #472a26;
    font: 400 clamp(1.9rem, 1rem + 1.2vw, 2.9rem) / 1.4 var(--font-sans-ja-noto);
    letter-spacing: .05em;
}

.procell__card p {
    color: #645959;
    font-size: 16px;
    line-height: 1.64;
}

.procell__em {
    color: #c8a582;
}

/* ---------------------------------------------
   4) Facial section
--------------------------------------------- */
.procell__facial {
    margin-top: 9rem;
    background: #fdf9f9;
}

.procell__description__title {
    width: 100%;
    text-align: center;
    font-family: var(--font-serif-ja);
    font-size: 33px;
    letter-spacing: .05em;
    color: #834842;
}

.procell__content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7%;
    margin-top: var(--space-2xl);
}

/* recommend list */
.procell-recommend__title {
    text-align: center;
    line-height: 2.4;
    font-size: 19px;
    color: #584949;
    background-color: #fff;
    border: 1px solid #b5756e;
}

.procell-recommend__text-box {
    display: flex;
    justify-content: center;
}

.procell-recommend__text-box ul {
    text-align: left;
}

.procell-recommend__text {
    margin: 2.5rem auto 0;
}

.procell-recommend__text li {
    position: relative;
    line-height: 2.74;
    padding-left: clamp(2.8em, 3.2vw, 4em);
    color: #636e6e;
}

.procell-recommend__text li::before {
    content: "✓";
    position: absolute;
    top: .48em;
    left: 0;
    display: grid;
    place-items: center;
    width: 2em;
    height: 2em;
    font-size: .9em;
    font-weight: 600;
    color: #fff;
    background: #f6e3e0;
    border-radius: 50%;
    line-height: 1;
}

.procell-recommend__text li span {
    color: #7d413b;
    font-weight: 600;
}

/* facial images (overlap layout on desktop) */
.procell-content__img-box {
    position: relative;
    margin-top: 17px;
}

.procell-content__photo01 {
    position: absolute;
    width: 340px;
}

.procell-content__photo02 {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 183px;
}

/* examples */
.procell__description__bottom {
    margin-top: 7.8rem;
    border: 2px solid #d28d84;
}

.procell-example__title {
    text-align: center;
    line-height: 2.2;
    font-family: var(--font-serif-ja);
    font-size: 21px;
    letter-spacing: .05em;
    color: #fff;
    background-color: #d28d84;
}

.procell-example-box {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5rem 0 4rem;
    background: #fff;
}

.procell-example-box ul {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    background: #fff;
}

.procell-example-box li {
    text-align: center;
    font-size: 19px;
    line-height: 2.2;
    letter-spacing: .04em;
    color: #834842;
}

.procell-example-box li span {
    font-size: 12px;
    color: #cba7a3;
}

.procell-example__img-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(220px, 26vw, 320px);
    overflow: hidden;
}

.procell-example__photo {
    display: block;
    width: auto;
    height: clamp(220px, 24vw, 263px);
    max-width: 100%;
    object-fit: contain;
    object-position: center;
}

/* ---------------------------------------------
   5) Scalp section
--------------------------------------------- */
.procell__scalp {
    background: #faf7f0;
}

.procell-recommend-scalp__title {
    border: 1px solid #b58f6e;
}

.procell-recommend-scalp__text li::before {
    background: #f2e2d3;
}

.procell-recommend-scalp__text li span {
    color: #7d503b;
}

.procell-example-scalp__img-box {
    width: clamp(220px, 27vw, 300px);
}

.procell-example-scalp__photo {
    height: clamp(200px, 22vw, 237px);
}

/* ---------------------------------------------
   6) Caution section
--------------------------------------------- */
.section.procell__caution {
    margin: var(--space-2xl) 0 0;
    padding-block: 0;
}

.caution-bottom {
    background: #f9f4f2;
}

.procell__caution__inner {
    padding: 8rem 0;
}

.caution-top {
    text-align: center;
    background:
        linear-gradient(to bottom, #ffffff 0%, #ffffff 50%, #f9f4f2 50%, #f9f4f2 100%);
}

.caution-top-desc {
    display: inline-block;
    padding: 30px 100px;
    background: #fbfafa;
    box-shadow: 10px 10px 0 #efeded;
    color: #645959;
    font-size: 17px;
    line-height: 2.2;
}

.caution__after-treatment-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 8rem;
}

.caution__after-treatment01 {
    padding-right: 3rem;
    border-right: 1px solid #e4d0ce;
}

.caution__after-treatment02 {
    padding-left: 3.8rem;
}

.caution__before-treatment,
.caution__after-treatment {
    color: #645959;
}

.caution__before-treatment ul,
.caution__after-treatment ul {
    padding-left: 1.7em;
    padding-right: .8em;
    margin-left: 0;
}

.caution__before-treatment li,
.caution__after-treatment li {
    line-height: 1.74;
    position: relative;
}

.caution__before-treatment li::before,
.caution__after-treatment li::before {
    content: "・";
    position: absolute;
    left: -1.1em;
    top: .48em;
    color: #a39898;
    font-size: .9em;
    line-height: 1;
}

.caution-treatment-title {
    display: inline-block;
    padding: 2px .8em;
    border-left: 5px solid #eccac5;
    color: #cd776c;
    font-family: var(--font-serif-ja);
    font-size: 23px;
    line-height: 1;
    letter-spacing: .04em;
}

.caution-treatment-sub {
    margin: 2rem auto;
    padding-left: 1.2em;
    padding-right: .8em;
    font-size: 15px;
    line-height: 1.6;
}

/* ---------------------------------------------
   7) Menu link section
--------------------------------------------- */
.section .procell__menu-link {
    padding-block: 6rem;
}

.procell__menu-link__container {
    text-align: center;
}

.procell__menu-link__title {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.34;
    font-size: 20px;
    color: #8c8888;
}

.procell__menu-link__title::before,
.procell__menu-link__title::after {
    content: "";
    width: 73px;
    height: 1px;
    background-color: #bbbbbb;
}

.procell__menu-link__title::before {
    margin-right: 2em;
}

.procell__menu-link__title::after {
    margin-left: 2em;
}

.procell__menu-link__area {
    display: flex;
    justify-content: center;
    gap: var(--space-md);
    margin-top: 2.2rem;
}

.procell-link__btn {
    position: relative;
    display: inline-block;
    width: 240px;
    padding-block: 2rem;
    border-radius: 6px;
    background: #b5756e;
    color: #fff;
    font-size: 20px;
    font-weight: 300;
    letter-spacing: .11em;
    line-height: 1.5;
    text-align: center;
    cursor: pointer;
    transition: transform .35s ease, opacity .35 ease;
}

.procell-link__btn::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 1.2em;
    width: 9px;
    height: 9px;
    margin: auto;
    border-top: 1px solid #ffffff;
    border-right: 1px solid #ffffff;
    transform: rotate(45deg);
    box-sizing: border-box;
    transition: transform .35s ease;
}

.procell-link__btn:hover::after {
    transform: translateX(7px) rotate(45deg);
}

.procell__menu-link__supplement {
    margin-top: 4.2rem;
    font-size: 15px;
    line-height: 1.74;
}

/* ---------------------------------------------
   8) Small utilities used on this page
--------------------------------------------- */
.asterisk {
    color: #c94444;
}

.c-link--underline {
    color: #b5756e;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: #b5756e;
}

/* =========================================================
   Responsive
   (keep queries grouped & ordered)
========================================================= */

/* <=1200px */
@media (max-width: 1200px) {
    .procell__img-box03 {
        left: 0;
    }
}

/* <=960px */
@media (max-width: 960px) {
    .procell__bg {
        top: 80px;
    }

    .procell__img-box01 {
        margin-top: -180px;
        width: 66.2%;
        max-width: 716px;
        height: auto;
    }

    .procell__title {
        margin-top: 90px;
        font-size: 44px;
    }

    .procell__title span {
        font-size: 20px;
    }

    .procell__title-box::before {
        font-size: 160px;
    }

    .procell__img-box02 {
        left: 0;
        z-index: 4;
        max-width: 240px;
    }

    .procell__img-box03 {
        top: 340px;
        z-index: 5;
        max-width: 240px;
    }

    .procell-desc-area {
        margin-top: 5.6rem;
    }

    .procell__card {
        gap: 3.2rem;
        margin-left: 20.4%;
        padding: 74px 40px 74px 140px;
    }

    .procell__card__title {
        margin-bottom: 1rem;
    }

    .procell__card p {
        font-size: 15px;
    }

    .procell__description__title {
        font-size: 27px;
    }

    .procell-recommend__title {
        font-size: 17px;
    }

    .procell-recommend__text li {
        font-size: 15px;
    }

    .procell-example__title {
        font-size: 17px;
    }

    .procell-example-box li {
        font-size: 17px;
    }

    .caution-top p {
        padding: 30px 60px;
        font-size: 16px;
        box-shadow: 8px 8px 0 #efeded;
    }

    .caution-treatment-title {
        font-size: 21px;
    }

    .caution-treatment-sub {
        font-size: 15px;
    }

    .caution__before-treatment li,
    .caution__after-treatment li {
        font-size: 15px;
    }

    .procell__menu-link__title {
        font-size: 18px;
    }

    .procell-link__btn {
        font-size: 19px;
    }
}

/* <=768px */
@media (max-width: 768px) {

    /* background band width a bit wider */
    .procell__bg {
        width: 80%;
    }

    .procell__img-box01 {
        margin-top: -220px;
        width: 78%;
    }

    .procell__title-box::before {
        left: -1.5em;
        font-size: 190px;
    }

    .procell__title {
        margin-top: 150px;
        font-size: 33px;
        line-height: 1.36;
    }

    .procell__title span {
        font-size: 17px;
    }

    .procell-desc-area {
        margin-top: 10rem;
    }

    .procell__card {
        display: grid;
        gap: 2.8rem;
        margin: 0 0 var(--gutter) 0;
        padding: 40px 0 40px 28px;
    }

    .procell__card__title {
        margin-bottom: 0;
    }

    .procell__card p {
        font-size: 14px;
    }

    .procell__em {
        color: #c8a582;
        font-weight: 600;
    }

    /* images stack vertically (no absolute) */
    .procell__img-box {
        display: grid;
        grid-template-columns: auto auto;
        align-items: baseline;
        margin: 0 auto;
    }

    .procell__img-box02 {
        position: static;
        z-index: 5;
        display: flex;
        margin: 0 auto;
        width: 100%;
        max-width: 270px;
        height: auto;
        box-shadow: 10px 10px 0 #e2d0c8;
    }

    .procell__img-box03 {
        display: none;
    }

    .procell__facial {
        margin-top: 4rem;
    }

    .procell__description__title {
        font-size: 22px;
        font-weight: 500;
    }

    .procell-recommend__title {
        font-size: 15px;
    }

    .procell-recommend__text {
        margin: 2rem auto 0;
    }

    .procell-recommend__text li {
        display: flex;
        align-items: center;
        font-size: 14px;
        line-height: 2.2;
    }

    .procell__content {
        grid-template-columns: 1fr;
    }

    .procell-content__img-box {
        order: 1;
    }

    .procell__recommend {
        order: 2;
    }

    /* remove absolute to ensure container height */
    .procell-content__img-box {
        position: relative;
        display: grid;
        grid-template-columns: 1fr;
        gap: clamp(12px, 2.5vw, 20px);
        max-width: 84%;
        margin-inline: auto;
        margin-top: 0;
    }

    .procell-content__photo01,
    .procell-content__photo02 {
        position: static !important;
        width: 100%;
        height: auto;
    }

    .procell-content__photo02 {
        width: 50%;
        justify-self: end;
        margin-top: -12%;
    }

    .procell__description__bottom {
        margin: 7.8rem 1rem 0;
    }

    .procell-example-box {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 3rem 0 3rem;
        background: #fff;
    }

    .procell-example-box ul {
        display: grid;
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    .procell-example-box li {
        line-height: 2;
    }

    .procell-example-box li span {
        color: #c1817a;
        font-weight: 500;
    }

    .caution-top p {
        margin: 0 var(--gutter);
        padding: 20px 30px;
        text-align: left;
        font-size: 14px;
        line-height: 1.8;
    }

    .procell__caution__inner {
        padding: 4rem 0;
    }

    .caution-treatment-title {
        font-size: 19px;
        border-left: 4px solid #eccac5;
        line-height: 1.2;
    }

    .caution-treatment-sub {
        font-size: 14px;
    }

    .caution__before-treatment li,
    .caution__after-treatment li {
        font-size: 14px;
        line-height: 1.7;
    }

    .caution__after-treatment-box {
        display: grid;
        grid-template-columns: 1fr;
        gap: 5rem;
        margin-top: 5rem;
        line-height: 1.64;
    }

    .caution__after-treatment01 {
        padding-right: 0;
        border-right: none;
    }

    .caution__after-treatment02 {
        padding-left: 0;
    }

    .procell__menu-link__title {
        font-size: 16px;
    }

    .procell__menu-link__title::before,
    .procell__menu-link__title::after {
        width: 60px;
    }

    .procell__menu-link__title::before {
        margin-right: 1em;
    }

    .procell__menu-link__title::after {
        margin-left: 1em;
    }

    .procell-link__btn {
        padding-block: 1.4rem;
        font-size: 16px;
    }

    .proccell__menu-link__supplement {
        text-align: left;
        font-size: 14px;
    }

    .section .procell__menu-link {
        padding-block: 4rem;
    }

    .procell__menu-link__supplement {
        font-size: 13px;
        line-height: 1.6;
    }
}