@charset "UTF-8";


/* ==========================================================
   加工・お取り寄せ 共通
========================================================== */

:root {
    --processing-navy: #15344c;
    --processing-blue: #1976a3;
    --processing-sky: #eaf5f8;
    --processing-orange: #e98928;
    --processing-ink: #23313a;
    --processing-gray: #66747d;
}

.processing-page {
    overflow: hidden;
    color: var(--processing-ink);
}

.processing-inner {
    box-sizing: border-box;
    width: calc(100% - 60px);
    max-width: 1180px;
    margin-right: auto;
    margin-left: auto;
}

.processing-kicker {
    color: var(--processing-blue);
    font-family: var(--font-garamond);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.processing-heading {
    margin-bottom: 5rem;
    text-align: center;
}

.processing-heading>p {
    margin: 0 0 1.2rem;
    color: var(--processing-blue);
    font-family: var(--font-garamond);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.processing-heading h2 {
    margin: 0;
    color: var(--processing-navy);
    font-family: var(--font-serif);
    font-size: 3.5rem;
    font-weight: normal;
    line-height: 1.5;
}


/* ==========================================================
   ページタイトル
========================================================== */

.processing-page-title {
    background:
        linear-gradient(90deg,
            rgba(12, 39, 58, 0.88),
            rgba(12, 39, 58, 0.46)),
        url("../img/processing-title-bg.jpg") center / cover no-repeat;
}


/* ==========================================================
   リード
========================================================== */

.processing-intro {
    position: relative;
    padding: 11rem 3rem;
    text-align: center;
    background: #fff;
}

.processing-intro::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: 1px;
    height: 6rem;
    background: var(--processing-orange);
}

.processing-intro__title {
    margin: 2rem 0 3rem;
    color: var(--processing-navy);
    font-family: var(--font-serif);
    font-size: clamp(3.4rem, 3.2vw, 4.5rem);
    font-weight: normal;
    line-height: 1.65;
    letter-spacing: 0.04em;
}

.processing-intro__lead {
    max-width: 850px;
    margin: 0 auto;
    color: var(--processing-gray);
    font-size: 1.7rem;
    line-height: 2.2;
}


/* ==========================================================
   3つの対応
========================================================== */

.processing-services {
    padding: 10rem 3rem;
    background: var(--processing-sky);
}

.processing-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
}

.processing-service-card {
    position: relative;
    min-width: 0;
    padding: 4rem 3rem 3.5rem;
    overflow: hidden;
    background: #fff;
    border-top: 0.5rem solid var(--processing-blue);
    box-shadow: 0 1rem 3rem rgba(21, 52, 76, 0.09);
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.processing-service-card:hover {
    transform: translateY(-0.8rem);
    box-shadow: 0 2rem 4rem rgba(21, 52, 76, 0.15);
}

.processing-service-card__number {
    position: absolute;
    right: 1.5rem;
    top: 0;
    color: rgba(21, 52, 76, 0.07);
    font-family: var(--font-garamond);
    font-size: 8rem;
    line-height: 1;
}

.processing-service-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 6.5rem;
    height: 6.5rem;
    margin-bottom: 2.5rem;
    border-radius: 50%;
    background: var(--processing-navy);
    color: #fff;
    font-size: 2.5rem;
}

.processing-service-card h3 {
    position: relative;
    margin: 0 0 2rem;
    padding-bottom: 1.8rem;
    color: var(--processing-navy);
    font-size: 2.1rem;
    line-height: 1.5;
}

.processing-service-card h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 5rem;
    height: 0.3rem;
    background: var(--processing-orange);
}

.processing-service-card p {
    margin: 0 0 2.2rem;
    color: var(--processing-gray);
    line-height: 1.9;
}

.processing-service-card ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.processing-service-card li {
    position: relative;
    padding: 0.7rem 0 0.7rem 1.8rem;
    line-height: 1.6;
}

.processing-service-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.5rem;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background: var(--processing-orange);
}


/* ==========================================================
   お困りごと
========================================================== */

.processing-problems {
    padding: 11rem 3rem;
    background: #fff;
}

.processing-problems__layout {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    align-items: stretch;
    box-shadow: 0 2rem 5rem rgba(21, 52, 76, 0.12);
}

.processing-problems__message {
    padding: 6rem 5rem;
    background:
        linear-gradient(135deg,
            var(--processing-navy),
            #1b5b77);
    color: #fff;
}

.processing-problems__message .processing-kicker {
    color: #79c9e0;
}

.processing-problems__message h2 {
    margin: 2rem 0 3rem;
    font-family: var(--font-serif);
    font-size: 3.6rem;
    font-weight: normal;
    line-height: 1.6;
}

.processing-problems__message>p {
    color: rgba(255, 255, 255, 0.76);
    line-height: 2;
}

.processing-problems__message .processing-problems__emphasis {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
}

.processing-problems__list {
    display: flex;
    align-items: center;
    padding: 5rem;
    background: #f7fafb;
}

.processing-problems__list ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.processing-problems__list li {
    position: relative;
    min-width: 0;
    padding: 1.8rem 1.5rem 1.8rem 4.5rem;
    background: #fff;
    box-shadow: 0 0.5rem 1.8rem rgba(21, 52, 76, 0.07);
    font-weight: 700;
    line-height: 1.7;
}

.processing-problems__list li::before {
    content: "✓";
    position: absolute;
    left: 1.7rem;
    top: 1.6rem;
    color: var(--processing-orange);
    font-size: 2rem;
}


/* ==========================================================
   ご相談時に伝えてほしいこと
========================================================== */

.processing-information {
    padding: 10rem 3rem;
    background: var(--processing-sky);
}

.processing-information__lead {
    margin: -2rem auto 5rem;
    color: var(--processing-gray);
    text-align: center;
    line-height: 2;
}

.processing-information-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.2rem;
}

.processing-information-card {
    position: relative;
    min-width: 0;
    padding: 3rem 2rem;
    background: #fff;
    border-bottom: 0.4rem solid var(--processing-blue);
    text-align: center;
    box-shadow: 0 0.8rem 2rem rgba(21, 52, 76, 0.07);
}

.processing-information-card>span {
    display: block;
    margin-bottom: 1.5rem;
    color: var(--processing-orange);
    font-family: var(--font-garamond);
    font-size: 1.4rem;
    font-weight: 700;
}

.processing-information-card h3 {
    margin: 0 0 1.2rem;
    color: var(--processing-navy);
    font-size: 1.8rem;
}

.processing-information-card p {
    margin: 0;
    color: var(--processing-gray);
    font-size: 1.4rem;
    line-height: 1.7;
}


/* ==========================================================
   ご相談から納品まで
========================================================== */

.processing-flow {
    padding: 10rem 3rem;
    background: var(--processing-navy);
    color: #fff;
}

.processing-heading--light>p {
    color: #79c9e0;
}

.processing-heading--light h2 {
    color: #fff;
}

.processing-flow-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    background: rgba(255, 255, 255, 0.15);
}

.processing-flow-item {
    position: relative;
    min-width: 0;
    padding: 3.5rem 2rem;
    background: #15344c;
    text-align: center;
}

.processing-flow-item:not(:last-child)::after {
    content: "→";
    position: absolute;
    z-index: 2;
    right: -1.2rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--processing-orange);
    font-size: 2.4rem;
}

.processing-flow-item>span {
    display: block;
    margin-bottom: 2rem;
    color: #79c9e0;
    font-family: var(--font-garamond);
    font-size: 1.2rem;
    letter-spacing: 0.12em;
}

.processing-flow-item__icon {
    margin-bottom: 2rem;
    color: var(--processing-orange);
    font-size: 2.8rem;
}

.processing-flow-item h3 {
    margin: 0 0 1.2rem;
    font-size: 1.8rem;
}

.processing-flow-item p {
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.4rem;
    line-height: 1.8;
}

.processing-flow__note {
    margin: 2.5rem 0 0;
    color: rgba(255, 255, 255, 0.6);
    text-align: center;
    font-size: 1.2rem;
}


/* ==========================================================
   CTA
========================================================== */

.processing-cta {
    position: relative;
    padding: 11rem 3rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 85% 15%,
            rgba(25, 118, 163, 0.3),
            transparent 35%),
        linear-gradient(135deg,
            #0c2639,
            #15344c 55%,
            #0b2233);
    color: #fff;
    text-align: center;
}

.processing-cta__background {
    position: absolute;
    left: 50%;
    bottom: -0.15em;
    transform: translateX(-50%);
    width: 100%;
    color: transparent;
    font-family: var(--font-garamond);
    font-size: 14rem;
    line-height: 0.8;
    letter-spacing: 0.05em;
    white-space: nowrap;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.06);
}

.processing-cta__kicker {
    position: relative;
    color: #79c9e0;
    font-family: var(--font-garamond);
    font-size: 1.3rem;
    letter-spacing: 0.18em;
}

.processing-cta h2 {
    position: relative;
    margin: 2rem 0 3rem;
    font-family: var(--font-serif);
    font-size: 5.5rem;
    font-weight: normal;
    line-height: 1.45;
}

.processing-cta h2 span {
    position: relative;
    z-index: 1;
    display: inline-block;
}

.processing-cta h2 span::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: -0.08em;
    right: -0.08em;
    bottom: 0.15em;
    height: 0.22em;
    background: var(--processing-orange);
}

.processing-cta__lead {
    position: relative;
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.7rem;
    line-height: 2;
}

.processing-cta__actions {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 4rem;
}

.processing-cta__phone,
.processing-cta__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 8rem;
    border-radius: 0.4rem;
    text-decoration: none;
    transition:
        transform 0.3s ease,
        background-color 0.3s ease,
        color 0.3s ease;
}

.processing-cta__phone {
    gap: 1.5rem;
    min-width: 32rem;
    padding: 1.2rem 3rem;
    background: var(--processing-orange);
    color: #fff;
    font-size: 2.4rem;
    font-weight: 700;
}

.processing-cta__phone small {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 1.1rem;
    font-weight: normal;
    letter-spacing: 0.1em;
}

.processing-cta__button {
    gap: 2.5rem;
    min-width: 27rem;
    padding: 1.5rem 3rem;
    border: 1px solid rgba(255, 255, 255, 0.65);
    color: #fff;
    font-weight: 700;
}

.processing-cta__phone:hover,
.processing-cta__button:hover {
    transform: translateY(-0.5rem);
}

.processing-cta__button:hover {
    background: #fff;
    color: var(--processing-navy);
}

.processing-cta__hours {
    position: relative;
    margin: 2.5rem 0 0;
    color: rgba(255, 255, 255, 0.55);
    font-size: 1.2rem;
}


/* ==========================================================
   タブレット
========================================================== */

@media screen and (max-width: 1100px) {
    .processing-service-grid {
        grid-template-columns: 1fr;
    }

    .processing-problems__layout {
        grid-template-columns: 1fr;
    }

    .processing-information-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .processing-flow-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
        background: none;
    }

    .processing-flow-item {
        background: rgba(255, 255, 255, 0.06);
    }

    .processing-flow-item::after {
        display: none;
    }
}


/* ==========================================================
   スマートフォン
========================================================== */

@media screen and (max-width: 768px) {
    .processing-inner {
        width: 100%;
    }

    .processing-intro,
    .processing-services,
    .processing-problems,
    .processing-information,
    .processing-flow,
    .processing-cta {
        padding-right: 2rem;
        padding-left: 2rem;
    }

    .processing-intro {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }

    .processing-intro__title {
        font-size: 2.8rem;
    }

    .processing-intro__title br,
    .processing-intro__lead br,
    .processing-information__lead br,
    .processing-cta__lead br {
        display: none;
    }

    .processing-intro__lead {
        font-size: 1.5rem;
        text-align: left;
    }

    .processing-heading {
        margin-bottom: 3.5rem;
    }

    .processing-heading h2 {
        font-size: 2.7rem;
    }

    .processing-service-card {
        padding: 3.5rem 2.3rem 3rem;
    }

    .processing-problems__message,
    .processing-problems__list {
        padding: 4rem 2.5rem;
    }

    .processing-problems__message h2 {
        font-size: 2.8rem;
    }

    .processing-problems__list ul {
        grid-template-columns: 1fr;
    }

    .processing-information-grid {
        grid-template-columns: 1fr;
    }

    .processing-information-card {
        text-align: left;
    }

    .processing-information-card>span {
        margin-bottom: 0.8rem;
    }

    .processing-flow-list {
        grid-template-columns: 1fr;
    }

    .processing-flow-item {
        padding: 3rem 2rem;
    }

    .processing-cta {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }

    .processing-cta h2 {
        font-size: 3.8rem;
    }

    .processing-cta__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .processing-cta__phone,
    .processing-cta__button {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .processing-cta__background {
        font-size: 7rem;
        white-space: normal;
    }
}