@charset "utf-8";
/* flow.html 専用 — 先に common.css を読み込むこと */

/* body.flow-page-body .main {
    background-color: var(--primary-whiteLow, #fffdf8);
} */

body.flow-page-body .flow-page__hero-wrap {
    background-color: #fff;
}

/* PC：左サイドバー利用時はヒーロー先頭のロゴ・ハンバーガーを非表示 */
@media screen and (min-width: 769px) {
    body.flow-page-body .flow-page__hero-wrap .header {
        display: none;
    }
}

/* ---- FLOW ページ ---- */
.flow-page {
    position: relative;
    min-height: min(100vh, 102.4rem);
}

.flow-page__gradient {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    /* SP: Figma 約 111.6deg */
    background: linear-gradient(
        112deg,
        rgb(252, 234, 187) 3.95%,
        rgb(248, 181, 0) 98.09%
    );
}

.flow-page__panel {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: calc(100% - 5rem);
    max-width: 34rem;
    /* 中身の高さに合わせる（min-height で縦に伸ばさない） */
    margin: 0 auto;
    padding: 0;
    background-color: var(--primary-whiteLow, #fffdf8);
}

.flow-page__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin: 0 0 1.2rem;
}

.flow-page__rule {
    display: block;
    width: 1px;
    height: 5rem;
    margin: -24px auto 1.2rem;
    object-fit: fill;
}

.flow-page__title {
    margin: 0;
    font-family: Afacad, sans-serif;
    font-weight: 400;
    line-height: normal;
    color: var(--primary-darkblue);
    text-align: center;
}

.flow-page__lead {
    margin: 0 auto 2.4rem;
    max-width: 25.1rem;
    font-family: "Roboto Mono", "Noto Sans JP", sans-serif;
    font-weight: 500;
    line-height: 2.8rem;
    font-size: 1.5rem;
    text-align: center;
    color: var(--primary-darkblue);
}

/* 手順リスト（各ステップの見出し位置に丸を合わせる） */
.flow-page__timeline {
    --flow-rail-x: 0.8rem;
    --flow-rail-line: 2px;
    --flow-dot: 1.8rem;
    --flow-dot-border: 0px;
    /* 丸だけ左右に微調整（線は動かさない） */
    --flow-dot-x: -4rem;

    position: relative;
    list-style: none;
    margin: 0 auto 2.4rem;
    padding: 0 0 0 4.8rem;
    max-width: 39rem;
    width: var(--contentWith, 87.1%);
}

/* 縦線（丸の背面に1本） */
.flow-page__timeline::before {
    content: "";
    position: absolute;
    left: var(--flow-rail-x);
    top: 0.7rem;
    bottom: 1rem;
    width: var(--flow-rail-line);
    background-color: var(--primary-darkblue, #1d2947);
    border-radius: 1px;
    z-index: 0;
}

.flow-page__step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    padding: 0 0 2.2rem;
    margin: 0;
    border: none;
}

/* 丸（各ステップの先頭＝見出し位置に合わせる） */
.flow-page__step::before {
    content: "";
    position: absolute;
    left: calc(var(--flow-dot-x) - (var(--flow-dot) / 2) + (var(--flow-rail-line) / 2));
    top: 0.6rem; /* 見出しのベースラインに合わせて微調整 */
    width: var(--flow-dot);
    height: var(--flow-dot);
    border-radius: 50%;
    box-sizing: border-box;
    background-color: #e8eaef;
    border: var(--flow-dot-border) solid transparent;
    z-index: 1; /* 線の上に丸を重ねる */
}

.flow-page__step:last-child {
    padding-bottom: 0;
}

@media screen and (max-width: 768px) {
    .flow-page__timeline {
        --flow-rail-x: 0.7rem;
        --flow-dot: 1.6rem;
        --flow-dot-x:-3.5rem;
        padding-left: 4.2rem;
        max-width: 39rem;
    }

    .flow-page__step::before {
        top: 0.55rem;
    }
}

.flow-page__step-title {
    font-family: "Roboto Mono", "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: 2rem;
    line-height: 1.65;
    color: var(--primary-darkblue, #1d2947);
}

.flow-page__contents {
    margin: 0;
    font-family: "Roboto Mono", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.7;
    color: var(--primary-darkblue, #1d2947);
}

/* 見出しと本文をさらに詰めたいときは gap か margin を調整 */
/* .flow-page__step { gap: 0.2rem; } */
/* .flow-page__contents { margin-top: 0.2rem; } */

/* EOF */
