@charset "UTF-8";

/*---------------------------------------------------------
Base / Tokens
---------------------------------------------------------*/
:root {
    --c-navy: #0b2a5a;
    --c-navy2: #182A81;
    --c-blue: #2c78c6;
    --c-blue2: #1E6CC3;
    --c-bg-soft: #f3f6fb;
    --c-bg-soft-2: #F5F7FF;
    --c-yellow: #ffe600;

    --shadow-lg: 0 16px 40px rgba(0, 0, 0, .18);
    --shadow-md: 0 14px 34px rgba(0, 0, 0, .08);

    --r-lg: 16px;
    --r-md: 16px;

    --fz-min: 12px;
    --fz-14: 14px;
    --fz-base: 16px;
    --fz-20: 20px;
    --fz-24: 24px;
    --fz-26: 26px;
    --fz-28: 28px;
    --fz-32: 32px;
    --fz-36: 36px;
    --fz-h2: 40px;
    --fz-48: 48px;
    --fz-hero: 53px;

    --fz-fixed-8: 8px;
    --fz-fixed-9: 9px;
    --fz-fixed-12: 12px;
    --fz-fixed-13: 13px;
    --fz-fixed-14: 14px;
    --fz-fixed-15: 15px;
    --fz-fixed-16: 16px;
    --fz-fixed-18: 18px;
    --fz-fixed-22: 22px;
    --fz-fixed-24: 24px;
    --fz-fixed-32: 32px;
    --fz-fixed-34: 34px;
    --fz-fixed-40: 40px;

    --space-2: 2px;
    --space-4: 4px;
    --space-6: 6px;
    --space-8: 8px;
    --space-10: 10px;
    --space-12: 12px;
    --space-14: 14px;
    --space-16: 16px;
    --space-18: 18px;
    --space-20: 20px;
    --space-22: 22px;
    --space-24: 24px;
    --space-28: 28px;
    --space-32: 32px;
    --space-36: 36px;
    --space-40: 40px;
    --space-48: 48px;
    --space-56: 56px;
    --space-60: 60px;
    --space-64: 64px;
    --space-80: 80px;
    --space-88: 88px;
    --space-96: 96px;
    --space-100: 100px;
    --space-120: 120px;
    --space-140: 140px;
    --space-200: 200px;
    --space-220: 220px;
}

@media (max-width: 960px) {
    :root {
        --fz-min: 11px;
        --fz-14: 13px;
        --fz-base: 14px;
        --fz-20: 17px;
        --fz-24: 20px;
        --fz-26: 22px;
        --fz-28: 22px;
        --fz-32: 26px;
        --fz-36: 28px;
        --fz-h2: 30px;
        --fz-48: 36px;
        --fz-hero: 38px;
    }
}

/*---------------------------------------------------------
Layout / Utilities
---------------------------------------------------------*/
.l-container {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 var(--space-16);
}

.u-note {
    font-size: var(--fz-min);
    line-height: 1.7;
    color: rgba(0, 0, 0, .55);
}

body {
    letter-spacing: -0.02em;
    font-feature-settings: "palt";
    background: #eef2fb;
}

header {
    z-index: 100;
}

#what, #reason, #case, #faq, #profile {
    scroll-margin-top: var(--space-64);
}

@media (max-width: 960px) {
    #what, #reason, #case, #faq, #profile {
        scroll-margin-top: 0;
    }
}


/*---------------------------------------------------------
セクションラベル（共通）
---------------------------------------------------------*/
.sectionLabel {
    text-align: center;
    margin-bottom: var(--space-40);
}

.sectionLabel__en {
    margin: 0 0 var(--space-8);
    color: var(--c-blue);
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: var(--fz-24);
    letter-spacing: .04em;
    line-height: 1.58;
    text-transform: uppercase;
}

.sectionLabel__ja {
    margin: 0;
    color: var(--c-navy);
    font-weight: 700;
    font-size: var(--fz-h2);
    line-height: 1.45;
}

@media (max-width: 960px) {
    .sectionLabel {
        margin-bottom: var(--space-16);
    }

    .sectionLabel__ja {
        font-size: var(--fz-24);
    }
}

/*---------------------------------------------------------
Button（共通）
---------------------------------------------------------*/
.btn {
    margin: 0;
}

.btn a {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-20) var(--space-40);
    border-radius: 999px;
    text-decoration: none;
    background: #FFFF3B;
    color: var(--c-navy);
    font-weight: 600;
    box-shadow: 0 8px 0 #C7C83C !important;
}


/*---------------------------------------------------------
Fade in
---------------------------------------------------------*/
.fadein {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .5s ease, transform .5s ease;
}

.fadein.scrollin {
    opacity: 1;
    transform: translateY(0);
}


/*---------------------------------------------------------
FV（fvLeaseback）
---------------------------------------------------------*/
.fvLeaseback {
    position: relative;
    overflow: hidden;
    background: #fff;
    min-height: 620px;
}

/* 右側：写真（Figma: left=578px / 1280px = 45.15%） */
.fvLeaseback__photo {
    position: absolute;
    left: 45.15%;
    top: 0;
    right: 0;
    height: 100%;
    pointer-events: none;
}

.fvLeaseback__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left top;
}

/* 左グラデーションオーバーレイ（白→透明） */
.fvLeaseback__grad {
    position: absolute;
    left: 45.15%;
    top: 0;
    width: 25%;
    height: 100%;
    background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
    pointer-events: none;
    z-index: 1;
}

/* 左側：コンテンツ（Figma: left=61px, top=121px） */
.fvLeaseback__content {
    position: relative;
    z-index: 2;
    padding: 121px 0 var(--space-48) 61px;
    max-width: 600px;
}

/* ラベルバー */
.fvLeaseback__label {
    display: inline-block;
    margin: 0 0 var(--space-16);
    padding: var(--space-4) var(--space-8);
    background: #111;
    color: #fff;
    font-weight: 700;
    font-size: var(--fz-base);
    line-height: 2;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

/* メイン見出し */
.fvLeaseback__title {
    margin: 0 0 var(--space-12);
    color: #111;
    font-weight: 700;
    font-size: var(--fz-hero);
    line-height: 1.21;
    letter-spacing: 0.02em;
    font-feature-settings: "palt";
}

.fvLeaseback__blue {
    color: #1746ec;
}

.fvLeaseback__no {
    font-size: var(--fz-36);
    color: #111;
}


.fvLeaseback__catch {
    margin: 0 0 var(--space-16);
    color: #111;
    font-size: var(--fz-28);
    font-weight: 700;
    letter-spacing: .04em;
    text-decoration: underline;
    text-underline-offset: 8px;
}

/* タグ（Figma: border-#111, p=4px） */
.fvLeaseback__tags {
    list-style: none;
    margin: 0 0 var(--space-16);
    padding: 0;
    display: flex;
    gap: var(--space-12);
    flex-wrap: wrap;
}

.fvLeaseback__tags li {
    padding: var(--space-4) var(--space-8);
    border: 1px solid #111;
    color: #111;
    font-weight: 700;
    font-size: var(--fz-base);
    line-height: 1.4;
    white-space: nowrap;
}

/* CTA ボタン（Figma: w=442px, h=68px, radius=8px, shadow=6px） */
.fvLeaseback__cta {
    display: inline-block;
    width: 442px;
    max-width: 100%;
    padding: var(--space-14) var(--space-24);
    background: linear-gradient(180deg, #ffff3b 50%, #fff200 50%);
    border-radius: 8px;
    box-shadow: 0 6px 0 #cac005;
    position: relative;
    overflow: hidden;
    color: #0d0100;
    font-weight: 700;
    font-size: var(--fz-24);
    text-align: center;
    text-decoration: none;
    line-height: 1.4;
    letter-spacing: 0.04em;
    margin-bottom: var(--space-22);
    font-feature-settings: "palt";
    transition: transform .08s ease, box-shadow .08s ease;
}

.fvLeaseback__cta::after {
    content: "";
    position: absolute;
    top: -60%;
    left: -40%;
    width: 40%;
    height: 220%;
    background: linear-gradient(120deg,
            transparent 0%,
            rgba(255, 255, 255, .2) 30%,
            rgba(255, 255, 255, .9) 50%,
            rgba(255, 255, 255, .2) 70%,
            transparent 100%);
    transform: translateX(-150%);
    animation: shine 4s linear infinite;
    pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
    .fvLeaseback__cta:hover {
        transform: translateY(6px);
        box-shadow: 0 0 0 #cac005;
        opacity: 1;
    }
}

.fvLeaseback__cta:active {
    transform: translateY(6px);
    box-shadow: 0 0 0 #cac005;
    opacity: 1;
}

/* 注記テキスト */
.fvLeaseback__disclaimer {
    margin: 0;
    color: #111;
    font-size: var(--fz-min);
    line-height: 1.6;
    white-space: normal;
    max-width: 500px;
}

@media (max-width: 960px) {
    .fvLeaseback {
        min-height: unset;
    }

    .fvLeaseback__photo {
        position: static;
        width: 100%;
        height: auto;
    }

    .fvLeaseback__photo img {
        height: auto;
    }

    .fvLeaseback__grad {
        display: none;
    }

    .fvLeaseback__content {
        padding: var(--space-24) var(--space-16) var(--space-24);
        max-width: 100%;
    }

    .fvLeaseback__label {
        font-size: var(--fz-fixed-13);
        white-space: normal;
    }

    .fvLeaseback__tags {
        gap: var(--space-4);
    }

    .fvLeaseback__tags li {
        font-size: var(--fz-fixed-12);
        padding: var(--space-4) var(--space-6);
    }

    .fvLeaseback__title {
        font-size: var(--fz-fixed-32);
    }

    .fvLeaseback__no {
        font-size: var(--fz-24);
    }

    .fvLeaseback__sub {
        font-size: var(--fz-fixed-16);
    }

    .fvLeaseback__cta {
        width: 100%;
        font-size: var(--fz-20);
        padding: var(--space-16);
    }

    .fvLeaseback__disclaimer {
        white-space: normal;
        line-height: 1.6;
    }
}

/*---------------------------------------------------------
お悩みセクション（sectionNayami）
---------------------------------------------------------*/
.sectionNayami {
    position: relative;
    background: #eef2fb;
    padding: var(--space-80) 0 var(--space-88);
}


.sectionNayami__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.sectionNayami__bgWave {
    display: none;
}

.sectionNayami__bgCouple {
    position: absolute;
    right: max(18px, calc((100vw - 1280px) / 2));
    bottom: 0;
    width: 369px;
    max-width: 29vw;
    height: auto;
    z-index: 1;
}


.sectionNayami__inner {
    position: relative;
    max-width: 911px;
    margin: 0 auto;
    padding: 0;
    z-index: 3;
}

.sectionNayami__heading {
    text-align: center;
    margin: 0 auto 53px;
    width: 100%;
}

.sectionNayami__sub {
    margin: 0 0 var(--space-6);
    color: #111;
    font-weight: 700;
    font-size: var(--fz-20);
    line-height: 1.4;
    white-space: nowrap;
    letter-spacing: 0;
}

.sectionNayami__title {
    display: inline-block;
    margin: 0;
    color: #111;
    font-weight: 700;
    font-size: var(--fz-h2);
    line-height: 1.25;
    white-space: nowrap;
    letter-spacing: 0;
    border-bottom: 2px solid #111;
    padding-bottom: var(--space-8);
}

.sectionNayami__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 50px;
    row-gap: var(--space-32);
}

.sectionNayami__item {
    display: grid;
    grid-template-columns: 49px minmax(0, 1fr);
    align-items: flex-start;
    gap: var(--space-14);
}

.sectionNayami__check {
    flex-shrink: 0;
    width: 49px;
    height: 44px;
    object-fit: contain;
    object-position: top left;
    margin-top: var(--space-2);
}

.sectionNayami__item span {
    display: block;
    color: #111;
    font-weight: 500;
    font-size: var(--fz-fixed-18);
    line-height: 1.52;
    letter-spacing: 0;
}

@media (min-width: 961px) {
    .sectionNayami__item:nth-child(5) span {
        max-width: 330px;
    }

    .sectionNayami__item:nth-child(6) span {
        max-width: 250px;
    }
}

@media (max-width: 1200px) {
    .sectionNayami {
        padding-left: var(--space-16);
        padding-right: var(--space-16);
    }

    .sectionNayami__inner {
        max-width: 911px;
        padding-right: var(--space-220);
    }

    .sectionNayami__bgCouple {
        right: 16px;
        width: 300px;
        max-width: 32vw;
    }

    .sectionNayami__bgDeco {
        right: 54px;
        top: 378px;
        width: 46px;
    }
}

@media (max-width: 960px) {

    .sectionNayami {
        padding: var(--space-56) var(--space-16) var(--space-220);
    }

    .sectionNayami__inner {
        max-width: 100%;
        padding-right: 0;
    }

    .sectionNayami__heading {
        margin-bottom: var(--space-36);
    }

    .sectionNayami__sub,
    .sectionNayami__title {
        white-space: normal;
    }

    .sectionNayami__sub {
        font-size: var(--fz-fixed-15);
    }

    .sectionNayami__title {
        font-size: clamp(var(--fz-fixed-22), 5.5vw, var(--fz-fixed-32));
    }

    .sectionNayami__bgCouple {
        right: 10px;
        width: 240px;
        max-width: 56vw;
        opacity: .95;
    }

    .sectionNayami__bgDeco {
        right: 22px;
        top: auto;
        bottom: 116px;
        width: 40px;
    }

    .sectionNayami__list {
        grid-template-columns: 1fr;
        gap: var(--space-24);
    }

    .sectionNayami__item span {
        font-size: var(--fz-fixed-16);
        line-height: 1.6;
    }
}

@media (max-width: 640px) {
    .sectionNayami {
        padding-bottom: var(--space-120);
    }

    .sectionNayami__heading {
        padding-bottom: var(--space-10);
    }

    .sectionNayami__bgCouple {
        width: 190px;
        max-width: 50vw;
    }

    .sectionNayami__bgDeco {
        bottom: 94px;
        width: 34px;
    }

    .sectionNayami__item {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: var(--space-12);
    }

    .sectionNayami__check {
        width: 42px;
        height: 38px;
    }
}

/*---------------------------------------------------------
リースバックとは（sectionWhat）
---------------------------------------------------------*/
.sectionWhat {
    position: relative;
    overflow: hidden;
    background: url(common/img/bg_about.png) top center / cover no-repeat;
    padding: var(--space-200) 0 var(--space-96);
    margin-top: -80px;
    z-index: 1;
}

.sectionWhat::after {
    content: "";
    position: absolute;
    inset: auto;
    pointer-events: none;
}

.sectionWhat::after {
    right: -140px;
    bottom: 120px;
    width: 62vw;
    height: 260px;
    background: linear-gradient(180deg, rgba(235, 242, 247, .95) 0%, rgba(235, 242, 247, .2) 100%);
    clip-path: polygon(18% 0, 100% 0, 82% 100%, 0 100%);
    opacity: .65;
}

.sectionWhat__inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 var(--space-16);
    position: relative;
    z-index: 1;
}

.whatLead {
    margin: 0 0 33px;
    text-align: center;
    color: #111;
    font-size: var(--fz-20);
    font-weight: 500;
    line-height: 2;
    letter-spacing: .04em;
}


/* 仕組みセクション */
.whatShikumi {
    margin-bottom: 62px;
}

.whatShikumi__banner {
    background: linear-gradient(90deg, var(--c-blue2) 0%, var(--c-navy) 100%);
    padding: 17px var(--space-20) var(--space-18);
    text-align: center;
}

.whatShikumi__bannerTitle {
    margin: 0;
    color: #fff;
    font-size: var(--fz-32);
    font-weight: 700;
    line-height: 1.4;
}

.whatShikumi__card {
    background: #fff;
    padding: var(--space-32) var(--space-40) 46px;
}

/* 図解 */
.whatShikumi__diagram {
    margin: 0 auto;
    max-width: 880px;
    background: #f3fafe;
    padding: 33px var(--space-36) var(--space-36);
}

.whatShikumi__diagramImg {
    display: block;
    width: 100%;
    height: auto;
    max-width: 680px;
    margin: 0 auto;
}

/* さらに〜バッジ wrap */
.whatAdoneWrap {
    background: #F3FAFE;
    padding: var(--space-32) var(--space-40) var(--space-40);
}

/* さらに */
.whatAdone {
    width: min(100%, 621px);
    margin: 0 auto var(--space-18);
    background: #ffff2c;
    padding: var(--space-14) var(--space-32) var(--space-24);
    text-align: center;
    clip-path: polygon(0 0, 100% 0, 100% 74%, 50% 100%, 0 74%);
}

.whatAdone__title {
    margin: 0;
    color: #111;
    font-size: var(--fz-24);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .04em;
}

.whatAdone__message {
    margin: 0 0 var(--space-36);
    text-align: center;
}

.whatAdone__message p {
    margin: 0 0 var(--space-8);
}

.whatAdone__message p:last-child {
    margin-bottom: 0;
}

.whatAdone__message span {
    display: inline-block;
    background: #fff;
    padding: 0 var(--space-4);
    color: #111;
    font-size: var(--fz-20);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .04em;
}

/* バッジ3つ */
.whatBadges {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 33px;
    flex-wrap: wrap;
}

.whatBadge {
    position: relative;
    width: 214px;
    text-align: center;
}

.whatBadge__bg {
    display: block;
    width: 214px;
    height: 214px;
    max-width: 100%;
    margin: 0 auto;
}

.whatBadge__note {
    font-size: var(--fz-fixed-12);
    color: rgba(0, 0, 0, .72);
    line-height: 1.45;
    text-align: left;
    margin: var(--space-12) 0 0;
    font-weight: 400;
    letter-spacing: .01em;
}

/* 買取要件テーブル */
.buyTable {
    background: #fff;
    padding: 0 0 var(--space-40);
}

.buyTable__title {
    margin: 0;
    background: linear-gradient(90deg, var(--c-blue2) 0%, var(--c-blue) 100%);
    color: #fff;
    text-align: center;
    font-weight: 700;
    font-size: var(--fz-32);
    line-height: 1.4;
    padding: var(--space-16) var(--space-20) 17px;
}

.buyTable__body {
    padding: var(--space-18) var(--space-20) 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.buyTable__row {
    display: flex;
    align-items: stretch;
}

.buyTable__th {
    background: #215a89;
    color: #fff;
    font-weight: 700;
    font-size: var(--fz-20);
    width: 160px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-24) var(--space-16);
    text-align: center;
}

.buyTable__td {
    background: #f3fafe;
    flex: 1;
    padding: var(--space-24) var(--space-24) var(--space-24) var(--space-40);
    font-size: var(--fz-20);
    font-weight: 500;
    color: #111;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-4);
    line-height: 1.5;
}

.buyTable__td .u-note {
    display: inline;
    width: auto;
    margin-top: 0;
    font-size: var(--fz-fixed-16);
    line-height: 1.5;
    color: rgba(0, 0, 0, .72);
}


@media (max-width: 960px) {
    .sectionWhat {
        padding: var(--space-100) 0;
    }

    .whatAdoneWrap {
        padding: var(--space-32) var(--space-16) var(--space-40);
    }

    .whatAdone {
        width: 100%;
        padding: var(--space-12) var(--space-12) var(--space-24);
        margin-bottom: var(--space-14);
    }

    .whatLead br {
        display: none;
    }

    .whatLead {
        margin-bottom: var(--space-28);
        line-height: 1.7;
        text-align: left;
    }

    .whatShikumi {
        margin-bottom: var(--space-40);
    }

    .whatShikumi__bannerTitle,
    .buyTable {
        /* background: #fff; */
        padding: 0;
    }

    .buyTable__title {
        font-size: var(--fz-24);
    }

    .buyTable__body {
        padding: var(--space-18) var(--space-20);
    }

    .whatShikumi__card {
        padding: var(--space-20) var(--space-16) var(--space-28);
    }

    .whatShikumi__diagram {
        margin-bottom: 0;
        padding: var(--space-18) var(--space-14) var(--space-20);
    }

    .whatAdone__title {
        font-size: var(--fz-fixed-18);
    }

    .whatAdone__message {
        margin-bottom: var(--space-24);
    }

    .whatAdone__message span {
        font-size: var(--fz-fixed-14);
        line-height: 1.6;
    }

    .whatBadges {
        gap: var(--space-18) var(--space-10);
        justify-content: space-between;
    }

    .whatBadge {
        width: calc(50% - 5px);
        max-width: 170px;
    }

    .whatBadge:last-child {
        margin: 0 auto;
    }

    .whatBadge__bg,
    .whatBadge__bg {
        width: 100%;
        height: auto;
        aspect-ratio: 1;
    }

    .whatBadge__note {
        font-size: 10px;
        line-height: 1.4;
    }

    .buyTable__th {
        width: 90px;
        padding: var(--space-16) var(--space-10);
        font-size: var(--fz-14);
    }

    .buyTable__td {
        padding: var(--space-16);
        font-size: var(--fz-14);
    }

    .buyTable__td .u-note {
        display: block;
        width: 100%;
        font-size: var(--fz-fixed-12);
    }
}

/*---------------------------------------------------------
CTA Blue（ctaBlue）
---------------------------------------------------------*/

/*---------------------------------------------------------
選ばれる理由（sectionReason）
---------------------------------------------------------*/
.sectionReason {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, .98) 0%, rgba(255, 255, 255, .96) 100%);
    padding: var(--space-80) 0;
}

.sectionReason::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("common/img/bg_reson.jpg") center bottom / 100% auto no-repeat;
    pointer-events: none;
}

.sectionReason::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .55) 58%, rgba(255, 255, 255, .82) 100%);
    pointer-events: none;
}

.sectionReason__inner {
    position: relative;
    z-index: 1;
}

.sectionReason__head {
    text-align: center;
    padding-bottom: var(--space-40);
}

.sectionReason__head .sectionLabel__en,
.sectionReason__head .sectionLabel__ja {
    text-align: center;
}

.sectionReason__head .sectionLabel__en {
    color: #1e6cc3;
    font-size: var(--fz-24);
    letter-spacing: .04em;
    margin-bottom: var(--space-10);
}

.sectionReason__head .sectionLabel__ja {
    color: #111;
    font-size: var(--fz-h2);
    line-height: 1.45;
}

/* 各理由行 */
.reasonRow {
    display: grid;
    grid-template-columns: 400px minmax(0, 480px);
    gap: var(--space-40);
    align-items: center;
    max-width: 920px;
    margin: 0 auto var(--space-24);
    padding: 0;
    background: #fff;
}

.reasonRow__img {
    overflow: hidden;
    min-height: 352px;
}

.reasonRow__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
}

.reasonRow__body {
    background: #fff;
    padding: var(--space-24) var(--space-40) var(--space-24) 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.reasonRow__num {
    margin: 0 0 var(--space-10);
    color: #00d7ff;
    font-weight: 500;
    font-size: var(--fz-48);
    font-family: "Roboto", sans-serif;
    line-height: 1;
    letter-spacing: .04em;
}

.reasonRow__title {
    margin: 0 0 var(--space-16);
    color: #0d0100;
    font-weight: 700;
    font-size: var(--fz-28);
    line-height: 1.45;
    letter-spacing: .04em;
}

.reasonRow__text {
    margin: 0;
    color: #404040;
    font-size: var(--fz-base);
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: .04em;
}

@media (max-width: 960px) {
    .sectionReason {
        padding: var(--space-64) 0;
    }

    .sectionReason::before {
        background-size: cover;
        background-position: center bottom;
    }

    .sectionReason__head {
        padding-bottom: var(--space-40);
    }

    .sectionReason__head .sectionLabel__en {
        font-size: var(--fz-fixed-18);
    }

    .sectionReason__head .sectionLabel__ja {
        font-size: var(--fz-32);
    }

    .reasonRow {
        grid-template-columns: 1fr;
        gap: 0;
        margin-bottom: var(--space-20);
    }

    .reasonRow__img {
        min-height: 240px;
    }

    .reasonRow__body {
        padding: var(--space-24) var(--space-20) var(--space-28);
    }

    .reasonRow__num {
        font-size: var(--fz-36);
    }

    .reasonRow__title {
        font-size: var(--fz-24);
    }

    .reasonRow__text br {
        display: none;
    }
}

@media (max-width: 767px) {
    .sectionReason {
        padding: var(--space-56) 0;
    }

    .sectionReason__head {
        padding-bottom: var(--space-28);
    }

    .sectionReason__head .sectionLabel__en {
        font-size: var(--fz-fixed-16);
        margin-bottom: var(--space-8);
    }

    .sectionReason__head .sectionLabel__ja {
        font-size: var(--fz-24);
    }

    .reasonRow {
        margin-bottom: var(--space-16);
    }

    .reasonRow__img {
        min-height: 200px;
    }

    .reasonRow__body {
        padding: var(--space-18) var(--space-16) var(--space-22);
    }

    .reasonRow__num {
        margin-bottom: var(--space-8);
        font-size: var(--fz-fixed-40);
    }

    .reasonRow__title {
        margin-bottom: var(--space-12);
        font-size: var(--fz-20);
        line-height: 1.5;
    }

    .reasonRow__text {
        font-size: var(--fz-fixed-14);
        line-height: 1.8;
    }
}

/*---------------------------------------------------------
お客様事例（sectionCase）
---------------------------------------------------------*/
.sectionCase {
    background: var(--c-bg-soft-2);
    padding: var(--space-100) 0;
}

.caseItem {
    max-width: 1280px;
    margin: 0 auto var(--space-16);
    padding: 0;
}

.caseItem:last-child {
    margin-bottom: 0;
}

/* 上段：写真 + ヘッダー */
.caseItem__upper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
    background: #192f9a;
}

.caseItem--rev .caseItem__upper {
    direction: rtl;
}

.caseItem--rev .caseItem__upper > * {
    direction: ltr;
}

.caseItem__photo {
    margin: 0;
    overflow: hidden;
    min-height: 320px;
    border-radius: 0;
    clip-path: none;
}

.caseItem__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
    clip-path: none;
}

.caseItem__header {
    background: #192f9a;
    min-height: 320px;
    padding: var(--space-56) var(--space-36) var(--space-48);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.caseItem__num {
    margin: 0 0 var(--space-16);
    color: #fff;
    font-weight: 900;
    font-size: var(--fz-h2);
    font-family: "Roboto", sans-serif;
    line-height: 1;
    text-transform: lowercase;
}

.caseItem__meta {
    margin: 0 0 var(--space-16);
    color: #fff;
    font-size: var(--fz-base);
    font-weight: 500;
    letter-spacing: .04em;
}

.caseItem__title {
    margin: 0;
}

.caseItem__title span {
    display: table;
    margin-bottom: var(--space-4);
    padding: 0 var(--space-4);
    background: #fff;
    color: #192f9a;
    font-size: var(--fz-24);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: .04em;
}

.caseItem__title span:last-child {
    margin-bottom: 0;
}

/* 下段：お悩み・解決 */
.caseItem__lower {
    background: #cbd1e4;
    padding: var(--space-32);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr);
    gap: var(--space-24);
    align-items: center;
}

.casePanel {
    width: 100%;
}

.casePanel__head {
    margin: 0;
    padding: var(--space-8) var(--space-16);
    color: #fff;
    text-align: center;
    font-size: var(--fz-20);
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.4;
}

.casePanel--trouble .casePanel__head {
    background: #6c6c6c;
}

.casePanel--solve .casePanel__head {
    background: #2f80ed;
}

.casePanel__body {
    min-height: 180px;
    padding: var(--space-22) var(--space-24) var(--space-28);
    background: #fff;
}

.casePanel__text {
    margin: 0;
    color: #404040;
    font-size: var(--fz-fixed-18);
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: .04em;
}

.caseItem__arrow {
    justify-self: center;
    width: 0;
    height: 0;
    border-top: 16px solid transparent;
    border-bottom: 16px solid transparent;
    border-left: 24px solid #1b2758;
}

@media (max-width: 960px) {
    .sectionCase {
        padding: var(--space-64) 0;
    }

    .caseItem {
        margin-bottom: var(--space-48);
        padding: 0 var(--space-16);
    }

    .caseItem__upper,
    .caseItem__lower {
        grid-template-columns: 1fr;
    }

    .caseItem--rev .caseItem__upper {
        direction: ltr;
    }

    .caseItem__photo {
        min-height: 240px;
    }

    .caseItem__header {
        min-height: 0;
        padding: var(--space-32) var(--space-20);
    }

    .caseItem__lower {
        gap: var(--space-16);
        padding: var(--space-20) var(--space-16) var(--space-24);
    }

    .caseItem__arrow {
        transform: rotate(90deg);
        margin: 0 auto;
    }

    .caseItem__num {
        margin-bottom: var(--space-12);
        font-size: var(--fz-fixed-34);
    }

    .caseItem__meta {
        font-size: var(--fz-fixed-14);
    }

    .caseItem__title span {
        font-size: var(--fz-24);
    }

    .casePanel__head {
        font-size: var(--fz-24);
    }

    .casePanel__body {
        min-height: 0;
        padding: var(--space-18) var(--space-18) var(--space-22);
    }

    .casePanel__text {
        font-size: var(--fz-fixed-18);
        line-height: 1.7;
    }
}

@media (max-width: 767px) {
    .sectionCase {
        padding: var(--space-56) 0;
    }

    .caseItem {
        margin-bottom: var(--space-8);
        padding: 0 var(--space-12);
    }

    .caseItem__photo {
        min-height: 180px;
    }

    .caseItem__header {
        padding: var(--space-24) var(--space-16);
    }

    .caseItem__num {
        font-size: var(--fz-28);
    }

    .caseItem__title span {
        font-size: var(--fz-20);
        line-height: 1.45;
    }

    .caseItem__lower {
        padding: var(--space-16) var(--space-12) var(--space-20);
        gap: var(--space-8);
    }

    .casePanel__head {
        font-size: var(--fz-20);
    }

    .casePanel__body {
        padding: var(--space-16) var(--space-16) var(--space-18);
    }

    .casePanel__text {
        font-size: var(--fz-base);
        line-height: 1.75;
    }
}

/*---------------------------------------------------------
FAQ（sectionFaq）
---------------------------------------------------------*/
.sectionFaq {
    background: #F5F7FF;
    padding: var(--space-100) 0;
}

.faqWrap {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 var(--space-16);
}

@media (max-width: 960px) {
    .sectionFaq {
        padding: var(--space-64) 0;
    }
}

/*---------------------------------------------------------
担当者紹介（sectionProfile）
---------------------------------------------------------*/
.sectionProfile {
    position: relative;
    z-index: 0;
    overflow: hidden;
    padding: var(--space-80) 0;
    background: url(common/img/bg_sectionProfile.jpg) center / cover no-repeat;
}


.sectionProfile__inner {
    position: relative;
    z-index: 1;
}

.sectionProfile__heading {
    margin: 0 auto var(--space-40);
    max-width: 719px;
    text-align: center;
    color: #fff;
}

.sectionProfile__en {
    margin: 0 0 var(--space-12);
    color: #fff;
    font-family: "Roboto", sans-serif;
    font-size: var(--fz-24);
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.58;
}

.sectionProfile__ja {
    margin: 0;
    color: #fff;
    font-size: var(--fz-h2);
    font-weight: 700;
    line-height: 1.3;
}

.profileMain {
    display: grid;
    grid-template-columns: 356px minmax(0, 554px);
    gap: var(--space-48);
    align-items: center;
}

.profileMain__photo {
    margin: 0;
}

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

.profileMain__body {
    color: #fff;
}

.profileMain__name {
    margin: 0 0 var(--space-24);
    color: #fff;
    font-size: var(--fz-20);
    font-weight: 700;
    line-height: 1.55;
}

.profileMain__quote {
    margin-bottom: var(--space-20);
}

.profileMain__quote p {
    margin: 0 0 var(--space-4);
}

.profileMain__quote p:last-child {
    margin-bottom: 0;
}

.profileMain__quote span {
    display: inline-block;
    padding: 0 var(--space-4);
    background: #fff;
    color: #192f9a;
    font-size: var(--fz-28);
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.35;
}

.profileMain__text {
    margin: 0;
    color: #fff;
    font-size: var(--fz-base);
    font-weight: 500;
    letter-spacing: .04em;
    line-height: 2;
}

/* infoCard（保有資格・経歴） */
.profileCards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-20);
    margin-top: var(--space-32);
}

.profileCard {
    background: #f5f5f5;
}

.profileCard__head {
    margin: 0;
    background: #1e6cc3;
    color: #fff;
    text-align: center;
    font-size: var(--fz-24);
    font-weight: 500;
    letter-spacing: .04em;
    line-height: 57px;
}

.profileCard__body {
    min-height: 319px;
    padding: var(--space-24) var(--space-16) var(--space-28);
}

.badgeGrid {
    list-style: none;
    margin: 0 0 var(--space-18);
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12) var(--space-14);
}

.miniBadge {
    display: grid;
    place-items: center;
    min-height: 50px;
    text-align: center;
    padding: 7px var(--space-10);
    border-radius: 8px;
    background: #fff;
    border: 1px solid #0a3464;
    color: #0a3464;
    font-size: var(--fz-base);
    font-weight: 500;
    letter-spacing: .04em;
    line-height: 1.25;
}

.infoFoot {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 25px;
    align-items: start;
}

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

.infoFoot__text {
    margin: 0;
    font-size: var(--fz-14);
    font-weight: 500;
    line-height: 1.72;
    letter-spacing: .04em;
    color: #0d0100;
}

.profileCard__body--career {
    padding: var(--space-18) var(--space-20) 26px;
}

.profileCard__body--career p {
    margin: 0 0 var(--space-12);
    font-size: var(--fz-14);
    font-weight: 500;
    line-height: 2;
    letter-spacing: .04em;
    color: #0d0100;
}

.profileCard__body--career p:last-child {
    margin-bottom: 0;
}

@media (max-width: 960px) {
    .sectionProfile {
        padding: var(--space-64) 0;
    }

    .sectionProfile::before {
        opacity: .38;
    }

    .sectionProfile__heading {
        margin-bottom: var(--space-32);
    }

    .sectionProfile__en {
        margin-bottom: var(--space-8);
        font-size: var(--fz-fixed-18);
        line-height: 1.4;
    }

    .sectionProfile__ja {
        font-size: var(--fz-32);
    }

    .profileMain {
        grid-template-columns: 1fr;
        gap: var(--space-24);
    }

    .profileMain__photo {
        max-width: 356px;
        margin: 0 auto;
    }

    .profileMain__photo img {
        display: block;
        width: 70%;
        height: auto;
        margin: 0 auto;
    }

    .profileMain__name {
        margin-bottom: var(--space-20);
        font-size: var(--fz-fixed-18);
    }

    .profileMain__quote span {
        font-size: var(--fz-24);
        line-height: 1.4;
    }

    .profileCards {
        grid-template-columns: 1fr;
        gap: var(--space-18);
        margin-top: var(--space-24);
    }

    .profileCard__head {
        font-size: var(--fz-fixed-22);
    }

    .profileCard__body {
        min-height: 0;
    }

    .infoFoot {
        grid-template-columns: 1fr;
        gap: var(--space-14);
    }

    .infoFoot__logo {
        max-width: 64px;
        margin: 0 auto;
    }
}

@media (max-width: 767px) {
    .sectionProfile {
        padding: var(--space-56) 0;
        background:
            linear-gradient(145deg, rgba(8, 15, 62, .78) 0 16%, transparent 16%),
            linear-gradient(135deg, #0c1550 0%, #12246d 58%, #0a1548 100%);
    }

    .sectionProfile__heading {
        margin-bottom: var(--space-24);
    }

    .sectionProfile__en {
        font-size: var(--fz-fixed-16);
        letter-spacing: .06em;
    }

    .sectionProfile__ja {
        font-size: var(--fz-24);
        line-height: 1.4;
    }

    .profileMain {
        gap: var(--space-20);
    }

    .profileMain__name {
        font-size: var(--fz-fixed-16);
        line-height: 1.6;
    }

    .profileMain__quote {
        margin-bottom: var(--space-16);
    }

    .profileMain__quote span {
        font-size: var(--fz-fixed-18);
        line-height: 1.45;
    }

    .profileMain__text {
        font-size: var(--fz-fixed-14);
        line-height: 1.9;
    }

    .profileCard__head {
        height: auto;
        padding: var(--space-10) var(--space-12);
        line-height: 1.45;
        font-size: var(--fz-20);
    }

    .profileCard__body {
        padding: var(--space-18) var(--space-14) var(--space-20);
    }

    .badgeGrid {
        grid-template-columns: 1fr;
        gap: var(--space-10);
    }

    .miniBadge {
        font-size: var(--fz-14);
        line-height: 1.35;
    }

    .profileCard__body--career {
        padding: var(--space-18) var(--space-14) var(--space-20);
    }

    .profileCard__body--career p,
    .infoFoot__text {
        font-size: var(--fz-fixed-13);
        line-height: 1.85;
    }
}

/*---------------------------------------------------------
ボトムCTA（ctaBottom）
---------------------------------------------------------*/
.ctaBottom {
    position: relative;
    background: linear-gradient(45deg, #007FDD, #00CDFF);
    padding: var(--space-80) 0 0;
    overflow: hidden;
}

.ctaBottom__inner {
    padding: 0 var(--space-16) var(--space-80);
    position: relative;
    z-index: 1;
    text-align: center;
}


.ctaBottom__img {
    position: absolute;
    bottom: 0;
    width: 220px;
    height: auto;
    display: block;
    vertical-align: bottom;
    pointer-events: none;
}

.ctaBottom__img--left {
    left: 0;
}

.ctaBottom__img--right {
    right: 0;
}

.ctaBottom__title {
    margin: 0 0 var(--space-16);
    color: #fff;
    font-weight: 700;
    font-size: var(--fz-32);
    line-height: 1.5;
}

.ctaBottom__lead {
    margin: 0 0 var(--space-32);
    color: rgba(255, 255, 255, .9);
    font-size: var(--fz-base);
    line-height: 1.7;
}

.ctaBottom__note {
    margin: var(--space-20) 0 0;
    color: rgba(255, 255, 255, .75);
    font-size: var(--fz-min);
}

@media (max-width: 960px) {
    .ctaBottom {
        padding: var(--space-60) 0 0;
    }

    .ctaBottom__lead {
        margin: 0 0 var(--space-24);
    }

    .ctaBottom__note {
        margin: var(--space-8) 0 0;
    }

    .ctaBottom__img {
        width: 100px;
        opacity: 1;
    }

    .ctaBottom__inner {
        padding: 0 var(--space-16) var(--space-140);
    }

    .ctaBottom__title {
        font-size: var(--fz-24);
    }
}
