@charset "utf-8";

#content {
    width: 100%;
}

#contents {
    width: 100%;
    padding-bottom: 0;
}

.purchase-flow {
    width: 100%;
    padding-bottom: 0;
}

/* メインビジュアル（Figma: 不動産購入ヒーロー） */
.mv--purchase-flow {
    position: relative;
    width: 100%;
    height: 450px;
    margin: 0;
    overflow: hidden;
}

.mv--purchase-flow .mv__h1-image {
    margin: 0;
    line-height: 0;
    height: 100%;
}

.mv--purchase-flow .mv__h1-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 購入フロー概要・詳細（Figma node 24383:113716 / column） */
/* 計測: セクション縦 padding 60px、内側幅 1140px、見出し〜マップ〜詳細の縦 gap 30px */
/* 計測: 見出し 30px Bold lh1.25 / FLOW 12px Medium #d83c3c、タイトル〜FLOW gap 6px */
/* 計測: マップ flex-wrap gap 20px、1行目各 270px、2行目 368px / 366px / 366px */
/* 計測: カード bg #eef8f5 border 1px #eaeaea radius 10px、padding 20px 10px、縦 gap 8px */
/* 計測: マップ番号円 24px 内側数字 14px Medium、ラベル 16px Medium lh1.5 */
/* 計測: ステップ円 36px 数字 18px、見出し 22px Medium lh1.25、本文 16px lh1.5 #333 */
/* 計測: ステップ縦 gap 14px、見出しブロック〜本文 gap 8px、ステップ先頭 pt 10px */
/* 計測: 縦ライン w1px #56bda0、円中心付近 left 17px（36px 円の中心） */
.purchase-flow .flow {
    width: 100%;
    background-color: #ffffff;
    padding: 60px 0;
    box-sizing: border-box;
    overflow: hidden;
}

.purchase-flow .flow__inner {
    width: 1140px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.purchase-flow .flow__headline {
    text-align: center;
}

.purchase-flow .flow__headline-title {
    margin: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #000000;
}

.purchase-flow .flow__headline-en {
    margin: 6px 0 0 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    color: #d83c3c;
}

.purchase-flow .flow__map {
    position: relative;
    margin-top: 0;
    width: 1140px;
}

.purchase-flow .flow__map-items {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    position: relative;
    z-index: 1;
    width: 1140px;
    box-sizing: border-box;
}

.purchase-flow .flow__map-item:nth-child(1),
.purchase-flow .flow__map-item:nth-child(2),
.purchase-flow .flow__map-item:nth-child(3),
.purchase-flow .flow__map-item:nth-child(4) {
    width: 270px;
}

.purchase-flow .flow__map-item:nth-child(5) {
    width: 368px;
}

.purchase-flow .flow__map-item:nth-child(6) {
    width: 366px;
}

.purchase-flow .flow__map-item:nth-child(7) {
    width: 366px;
}

.purchase-flow .flow__map-item {
    box-sizing: border-box;
    background-color: #eef8f5;
    border: 1px solid #eaeaea;
    border-radius: 10px;
    text-align: center;
    padding: 32px 10px 0;
    position: relative;
    color: inherit;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 0;
    height: 120px;
}

.purchase-flow .flow__map-item:hover {
    transform: translateY(4px);
}

.purchase-flow .flow__map-item:focus-visible {
    outline: 2px solid #56bda0;
    outline-offset: 2px;
}

.purchase-flow .flow-step[id] {
    scroll-margin-top: 22px;
}

.purchase-flow .flow__map-num {
    width: 24px;
    height: 24px;
    border-radius: 9999px;
    background-color: #56bda0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    position: absolute;
    top: 19px;
    margin: 0;
    padding-bottom: 2px;
    flex-shrink: 0;
}

.purchase-flow .flow__map-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #000000;
    min-height: 0;
    display: block;
}

.purchase-flow .flow__map-lines {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
}

.purchase-flow .flow__map-line {
    position: absolute;
    height: 1px;
    background-color: #56bda0;
}

/* 1行目ボックス中央付近を結ぶ水平線（装飾・Figma line 相当の近似） */
.purchase-flow .flow__map-line--1 {
    top: 59px;
    left: 60px;
    width: 1470px;
}

/* 1行目〜2行目の間（flex gap 20px 相当の中央付近） */
.purchase-flow .flow__map-line--2 {
    top: 200px;
    right: 60px;
    width: 1470px;
}

.purchase-flow .flow__map-line--3,
.purchase-flow .flow__map-line--4 {
    display: none;
}

.purchase-flow .flow__illustration {
    position: absolute;
    right: -2px;
    bottom: -114px;
    width: 162px;
    height: 85px;
    z-index: 2;
    pointer-events: none;
}

.purchase-flow .flow__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.purchase-flow .flow__steps {
    margin-top: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 1140px;
}

.purchase-flow .flow-step {
    position: relative;
    z-index: 1;
    padding-top: 10px;
    padding-bottom: 14px;
}

.purchase-flow .flow-step--last {
    padding-bottom: 0;
}

.purchase-flow .flow-step__head {
    display: flex;
    gap: 8px;
    align-items: center;
}

.purchase-flow .flow-step__num {
    width: 36px;
    height: 36px;
    border-radius: 9999px;
    background-color: #56bda0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    flex-shrink: 0;
    padding-bottom: 2px;
}

.purchase-flow .flow-step__title {
    margin: 0;
    flex: 1;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .flow-step__body {
    margin-top: 8px;
    margin-left: 44px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .flow-step__text {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .flow-step__line {
    position: absolute;
    top: 10px;
    left: 17px;
    bottom: -10px;
    width: 1px;
    background-color: #56bda0;
    z-index: -1;
}

.purchase-flow .flow-step--last .flow-step__line {
    display: none;
}

/* 資金プラン（Figma node 24391:114305 / column） */
/* 計測: 背景 #f7f7f7、下線 1px #cfcfcf、縦 padding 60px */
/* 計測: 見出し 30px Bold 中央、下マージン 30px */
/* 計測: カード #fff radius 20px、padding 23px 20px、内 gap 12px、カード間 20px */
/* 計測: カード内見出し 22px Medium lh1.25、本文 16px lh1.5 #333（2枚目は中央寄せ） */
/* 計測: 図版最大幅 600px（高さ320相当は画像比率に委ねる） */
/* 計測: 表 1px #eaeaea 枠 + cell 間 1px（#eaeaea）、年収列 111px 緑 #56a856、データ行高さ 85px */
/* 計測: 返済負担列 140px 右区切り 2px、%列 各 120px、ヘッダ行高 30px */
/* 計測: 注釈 14px #9e9e9e lh1.25、行間 gap 6px */
.purchase-flow .p-fund {
    width: 100%;
    box-sizing: border-box;
    background-color: #f7f7f7;
    border-top: none;
    border-bottom: 1px solid #cfcfcf;
    padding: 60px 0;
}

.purchase-flow .p-fund__inner {
    width: 1140px;
    margin: 0 auto;
    box-sizing: border-box;
}

.purchase-flow .p-fund__lead-title {
    margin: 0 0 30px 0;
    padding: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-fund__block p {
    margin: 0;
}

.purchase-flow .p-fund__block:first-of-type {
    margin: 0 0 20px 0;
    padding: 23px 20px;
    background-color: #ffffff;
    border-radius: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.purchase-flow .p-fund__block:first-of-type .p-fund__block-title {
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-fund__block:first-of-type p:not(.p-fund__block-title) {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-fund__block:nth-of-type(2) {
    padding: 23px 20px;
    margin: 0 0 20px 0;
    background-color: #ffffff;
    border-radius: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.purchase-flow .p-fund__block:nth-of-type(2) .p-fund__block-title {
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.p-fund__block-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
    text-align: center;
}
.p-fund__flat35__table-wrap {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 10px;
}

.p-fund__flat35__img {
    width: 400px;
    margin: 0;
    flex-shrink: 0;
}

.p-fund__flat35__img img {
    display: block;
    width: 100%;
    height: auto;
}

.p-fund__flat35__table {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 330px;
    flex-shrink: 0;
}
.p-fund__flat35__wrap {
    width: 735px;
    margin: 13px auto 0;
}
.p-fund__flat35__wrap .p-fund__flat35__lead {
    margin: 0;
    padding: 15px 20px;
    background-color: #56BDA0;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    color: #ffffff;
    box-sizing: border-box;
    text-align: center;
}

.p-fund__flat35-rate-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 1px;
    background-color: #eaeaea;
    border: 1px solid #eaeaea;
    table-layout: fixed;
    font-size: 16px;
    font-weight: 500;
    color: #333333;
}

.p-fund__flat35-rate-table th,
.p-fund__flat35-rate-table td {
    border: none;
    padding: 4px 10px;
    box-sizing: border-box;
    vertical-align: middle;
    font-weight: 500;
}

.p-fund__flat35-rate-table thead th {
    height: 45px;
    background-color: #fff3e9;
    font-size: 16px;
    line-height: 1.25;
    text-align: center;
}

.p-fund__flat35-rate-table__income {
    width: 168px;
}

.p-fund__flat35-rate-table__burden {
    width: 159px;
}

.p-fund__flat35-rate-table tbody th {
    height: 40px;
    background-color: #feffd6;
    font-size: 16px;
    line-height: 1;
    text-align: center;
}

.p-fund__flat35-rate-table tbody td {
    height: 40px;
    background-color: #ffffff;
    font-size: 16px;
    line-height: 1;
    text-align: center;
}

.purchase-flow .p-fund__sample {
    margin: 0 0 20px 0;
    padding: 0 20px 23px;
    background-color: #ffffff;
    border-radius: 0 0 20px 20px;
    line-height: 0;
    box-sizing: border-box;
}

.purchase-flow .p-fund__sample img {
    display: block;
    width: 100%;
    max-width: 600px;
    height: auto;
    margin: 0 auto;
}

.purchase-flow .p-fund__table-title {
    margin: 0;
    padding: 23px 20px 0;
    background-color: #ffffff;
    border-radius: 20px 20px 0 0;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
    box-sizing: border-box;
}

.purchase-flow .p-fund-table-scroll__wrapper {
    width: 100%;
    max-width: 1140px;
    margin: 0;
    padding: 12px 20px 22px;
    background-color: #ffffff;
    box-sizing: border-box;
    border-radius: 0 0 20px 20px;
}

.purchase-flow .p-fund-table-scroll {
    margin-top: 0;
    width: 100%;
}

.purchase-flow .p-fund-table-scroll[data-simplebar] {
    max-width: 100%;
}

.purchase-flow .p-fund-table-scroll__rail {
    padding: 0;
    width: auto;
    box-sizing: border-box;
}

.purchase-flow .p-fund-table--scroll {
    width: 100%;
    min-width: 0;
}

.purchase-flow .p-fund-table {
    border-collapse: separate;
    border-spacing: 1px;
    font-size: 16px;
    font-weight: 500;
    color: #333333;
    table-layout: fixed;
    width: 731px;
    max-width: 100%;
    margin: 0 auto;
    background-color: #eaeaea;
}

.purchase-flow .p-fund-table thead th {
    height: 30px;
    min-height: 0;
    padding: 4px 10px;
    box-sizing: border-box;
    vertical-align: middle;
    text-align: center;
    border: none;
    font-weight: 500;
}

.purchase-flow .p-fund-table tbody th,
.purchase-flow .p-fund-table tbody td {
    min-height: 85px;
    box-sizing: border-box;
    vertical-align: middle;
    border: none;
}

.purchase-flow .p-fund-th-income {
    width: 111px;
    background-color: var(--color-primary-default-buy, #56a856);
    color: #ffffff;
    font-size: 16px;
    line-height: 1;
}

.purchase-flow .p-fund-table thead tr .p-fund-th-burden {
    width: 140px;
    background-color: #fff3e9;
    color: #333333;
    font-size: 14px;
    line-height: 1;
    border-right: 1px solid #eaeaea;
}

.purchase-flow .p-fund-table thead tr .p-fund-th-pct {
    width: 120px;
    background-color: #fff3e9;
    color: #333333;
    font-size: 14px;
    line-height: 1;
}

.purchase-flow .p-fund-table .p-fund-td-income {
    width: 111px;
    background-color: #ecf6ec;
    color: var(--color-primary-default-buy, #56a856);
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    text-align: center;
}

.purchase-flow .p-fund-table .p-fund-td-label {
    width: 140px;
    padding: 6px 29px;
    background-color: #feffd6;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 500;
    text-align: left;
    border-right: 1px solid #eaeaea;
}

.purchase-flow .p-fund-table .p-fund-td-num {
    width: 120px;
    background-color: #ffffff;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 500;
    text-align: right;
    white-space: nowrap;
    padding: 6px 26px 7px;
}

.purchase-flow .p-fund__notes {
    background-color: #ffffff;
    border-radius: 0 0 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 7px;
    align-items: flex-start;
    box-sizing: border-box;
    width: 738px;
    margin: 13px auto 0;
}

.purchase-flow .p-fund__notes p {
    margin: 0;
    color: #9e9e9e;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 500;
}

.purchase-flow .p-fund-table-scroll .simplebar-track.simplebar-horizontal {
    background: #d9d9d9;
    width: 335px;
    max-width: calc(100% - 40px);
    margin: 0 auto;
    border-radius: 9999px;
    height: 5px;
    bottom: -10px;
}

.purchase-flow .p-fund-table-scroll .simplebar-scrollbar.simplebar-visible {
    height: 5px;
    top: 0;
}

.purchase-flow .p-fund-table-scroll .simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
    background: #56bda0;
    opacity: 1;
    border-radius: 9999px;
    left: 0;
    right: 0;
}

/* 資金ブロック直下の区切り線が二重にならないようにする */
.purchase-flow .p-fund + .p-section {
    border-top: none;
}

/* ========== 共通セクション（税金・ローン・契約・売買契約書） ========== */
.p-section {
    width: 100%;
    box-sizing: border-box;
    background-color: #ffffff;
    border-top: 1px solid #eaeaea;
    border-bottom: 1px solid #eaeaea;
    padding: 20px 20px 20px;
}

.p-section__inner {
    width: 100%;
    margin: 0 auto;
}

.p-section__title {
    margin: 0;
    font-size: 17px;
    font-weight: 500;
    line-height: 1;
    color: var(--color-text-default);
}

.p-section__lead {
    margin-top: 13px;
    display: flex;
    flex-direction: column;
    gap: 0;
    font-size: var(--font-size-s);
    line-height: 1.5;
    color: var(--color-text-default);
}

.p-section__lead p {
    margin: 0;
}

.p-section__lead .p-section__lead-title {
    font-weight: 500;
    margin: 0 0 5px;
}

.p-section__footnote {
    margin: 4px 0 0 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.25;
    color: #B7B7B7;
}

/* --- 税金（Figma node 24406:116304）購入フローPCのみ --- */
/* 計測: 外枠 #f7f7f7、下線1px #cfcfcf、縦padding 60px、見出し下30px */
/* 計測: 白カード radius20 px25 py23 内gap12、カード間20px */
/* 計測: 見出し30 Bold 中央 / カード内小見出し22 Medium lh1.25 / 本文16 Medium lh1.5 */
/* 計測: 新築・購入枠 border #ecf6ec、帯見出し #ecf6ec p10、区切り線1px #ecf6ec、内ブロックgap10 px15 */
/* 計測: 注釈箱 #ecf6ec radius4 p10、本文Regular lh1.5 */
/* 計測: 所有枠 border #fff3e9、帯 #fff3e9、注釈箱 #fff3e9、2カラム（hr非表示） */
/* 計測: 控除枠 border #fbebeb、帯は白90%×赤の重ね、注釈箱同グラデ */
.purchase-flow .p-section.p-tax {
    background-color: #f7f7f7;
    border-top: none;
    border-bottom: 1px solid #cfcfcf;
    padding: 60px 0;
}

.purchase-flow .p-section.p-tax .p-section__inner {
    width: 1140px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-tax .p-section__title {
    margin: 0 0 30px 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-tax .p-section__lead {
    margin: 0 0 20px 0;
    padding: 25px 25px 23px;
    background-color: #ffffff;
    border-radius: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-section__lead-title {
    margin: 0;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    margin-bottom: 11px;
}

.purchase-flow p {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-tax-intro {
    margin: 0;
    padding: 23px 25px;
    background-color: #ffffff;
    border-radius: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    text-align: center;
}

.purchase-flow .p-section.p-tax .p-tax-intro__title {
    margin: 0;
    width: 100%;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-tax-intro__text {
    margin: 0;
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-tax-stack {
    margin: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group {
    display: flex;
    flex-direction: column;
    gap: 19px;
    box-sizing: border-box;
    padding: 0 0 20px;
    border-style: solid;
    border-width: 1px;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group:not(.p-tax-stack__group--hold):not(.p-tax-stack__group--deduct) {
    border-color: #ecf6ec;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group--hold {
    border-color: #fff3e9;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group--deduct {
    border-color: #fbebeb;
    padding-bottom: 15px;
    margin-top: -1px;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group-title {
    margin: 0;
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    color: #333333;
    background-color: #ecf6ec;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group-title--hold {
    background-color: #fff3e9;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group-title--deduct {
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.9) 100%),
        linear-gradient(90deg, #d83c3c 0%, #d83c3c 100%);
}

.purchase-flow .p-section.p-tax .p-tax-item {
    width: 100%;
    padding: 0 15px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
}

.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:not(:has(.p-tax-item__note)) {
    display: grid;
    grid-template-columns: repeat(4, auto);
    justify-content: start;
    width: fit-content;
    max-width: 100%;
    column-gap: 0;
    row-gap: 10px;
    align-items: start;
}

.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:not(:has(.p-tax-item__note)) > .p-tax-item__name {
    grid-column: 1 / -1;
    text-align: left;
}

.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:not(:has(.p-tax-item__note)) > .p-tax-item__body {
    margin: 0;
    padding: 0 35px 0 0;
    min-height: 80px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: left;
}

.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:not(:has(.p-tax-item__note)) > .p-tax-item__body--first {
    padding: 0 30px 0 0;
}

.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:not(:has(.p-tax-item__note)) > .p-tax-item__body:nth-child(3),
.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:not(:has(.p-tax-item__note)) > .p-tax-item__body:nth-child(4),
.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:not(:has(.p-tax-item__note)) > .p-tax-item__body:nth-child(5) {
    border-left: 1px solid #eaeaea;
    padding-left: 30px;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group--hold {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 0;
    row-gap: 19px;
    margin-top: -1px;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group--hold > .p-tax-stack__group-title--hold {
    grid-column: 1 / -1;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group--hold > hr.p-tax-item__rule {
    display: none;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group--hold > .p-tax-item:nth-of-type(1) {
    grid-column: 1;
    grid-row: 2;
}

.purchase-flow .p-section.p-tax .p-tax-stack__group--hold > .p-tax-item:nth-of-type(2) {
    grid-column: 2;
    grid-row: 2;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-tax .p-tax-item__name {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-tax-item__formula {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-tax-item__body {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-tax-item--adjustable:has(.p-tax-item__note) .p-tax-item__body:first-of-type {
    margin: 0;
}

.purchase-flow .p-section.p-tax .p-tax-item__note {
    margin: 0;
    width: 100%;
    padding: 10px 9px;
    border-radius: 4px;
    box-sizing: border-box;
    background-color: #ecf6ec;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-tax .p-tax-item.p-tax-item--adjustable:has(.p-tax-item__note) .p-tax-item__note {
    margin: 0;
}

.purchase-flow .p-section.p-tax .p-tax-item__note p {
    text-align: left;
    font-weight: 400;
}

.purchase-flow .p-section.p-tax .p-tax-item__note p:last-child {
    margin-bottom: 0;
    text-align: left;
}

.purchase-flow .p-section.p-tax .p-tax-item__note--hold {
    background-color: #fff3e9;
}

.purchase-flow .p-section.p-tax .p-tax-item__note--deduct {
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.9) 100%),
        linear-gradient(90deg, #d83c3c 0%, #d83c3c 100%);
}

.purchase-flow .p-section.p-tax .p-tax-item__strong {
    font-size: 16px;
    font-weight: 500;
}

.purchase-flow .p-section.p-tax .p-tax-item__rule {
    margin: 0;
    border: none;
    width: 100%;
    height: 1px;
    background-color: #ecf6ec;
    flex-shrink: 0;
}

.purchase-flow .p-section.p-tax .p-tax-item__rule--hold {
    background-color: #fff3e9;
}

.purchase-flow .p-section.p-tax .p-tax-item--flat .p-tax-item__note {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 4px;
}

.purchase-flow .p-section.p-tax .p-tax-item--flat .p-tax-item__note p {
    margin: 0;
}

.purchase-flow .p-section.p-tax .p-section__footnote {
    margin: 20px 0 0 0;
    padding: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.25;
    color: #9e9e9e;
    text-align: center;
}

/* --- 住宅ローン控除（Figma node 24409:116592）購入フローPCのみ --- */
/* 計測: 外枠 #f7f7f7、下線1px #cfcfcf、縦padding 60px */
/* 計測: 見出し30 Bold 中央、下30px */
/* 計測: 上カード白 radius20 px25 py23、イントロ16 Medium lh1.5 中央、表ラベル間gap12相当 */
/* 計測: 2表横並び gap24、表1px枠+cell間1px #eaeaea、ヘッダ#fff3e9高55、1列目データ#feffd6 */
/* 計測: 脚注12 #9e9e9e lh1.25 左、下カード白 gap12 見出し22 Medium */
.purchase-flow .p-section.p-loan {
    background-color: #f7f7f7;
    border-top: none;
    border-bottom: 1px solid #cfcfcf;
    padding: 60px 0;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-loan .p-section__inner {
    width: 1140px;
    margin: 0 auto;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 0;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-loan .p-section__title {
    grid-column: 1 / -1;
    margin: 0 0 30px 0;
    padding: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-loan .p-loan__intro {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0;
    padding: 23px 25px 12px;
    background-color: #ffffff;
    border-radius: 20px 20px 0 0;
    box-sizing: border-box;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
    text-align: left;
}

.purchase-flow .p-section.p-loan .p-loan__table-label {
    grid-column: 1 / -1;
    margin: 0;
    padding-left: 25px;
    background-color: #ffffff;
    box-sizing: border-box;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    color: var(--color-primary-default-sub, #d83c3c);
}

.purchase-flow .p-section.p-loan .p-loan-table-scroll {
    grid-column: 1 / -1;
    background-color: #ffffff;
    box-sizing: border-box;
    padding-left: 25px;
    padding-right: 24px;
}

.purchase-flow .p-section.p-loan .p-section__footnote {
    grid-column: 1 / -1;
    margin: 0;
    padding: 12px 25px 23px;
    background-color: #ffffff;
    border-radius: 0 0 20px 20px;
    box-sizing: border-box;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.25;
    color: #9e9e9e;
    text-align: left;
}

.purchase-flow .p-section.p-tax .p-section__footnote--tax {
    width: 100%;
    text-align: left;
    margin: 0;
}

[class*="p-loan__requirements-block"] {
    color: inherit;
}

.purchase-flow .p-section.p-loan .p-loan__requirements-block--top {
    display: block;
    padding: 0 20px;
    text-indent: -2.5em;
    padding-left: calc(2.5em + 20px);
}

.purchase-flow .p-section.p-loan .p-loan__requirements-block--bottom {
    display: block;
    border-top: 1px solid #eaeaea;
    padding-top: 8px;
    margin-top: 8px;
    padding-bottom: 12px;
    text-indent: -1em;
    padding-left: 1em;
}

.purchase-flow .p-section.p-loan .p-loan__resident {
    grid-column: 1 / -1;
    margin: 20px 0 0 0;
    padding: 23px 25px;
    background-color: #ffffff;
    border-radius: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-loan .p-loan__resident-title {
    margin: 0;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-loan .p-loan__resident p {
    margin: 0;
}

.purchase-flow .p-section.p-loan .p-loan-table-scroll {
    margin: 0;
    width: 100%;
}

.purchase-flow .p-section.p-loan .p-loan-table {
    min-width: 0;
    border-collapse: separate;
    border-spacing: 1px;
    background-color: #eaeaea;
    table-layout: fixed;
    font-size: 16px;
    font-weight: 500;
    color: #333333;
    margin-top: 4px;
}

.purchase-flow .p-section.p-loan .p-loan-table th,
.purchase-flow .p-section.p-loan .p-loan-table td {
    border: none;
    padding: 4px 0;
    box-sizing: border-box;
    vertical-align: middle;
}

.purchase-flow .p-section.p-loan .p-loan-table sup {
    font-size: 12px;
    vertical-align: super;
    line-height: 0;
}

.purchase-flow .p-section.p-loan .p-loan-table thead th {
    height: 55px;
    background-color: #fff3e9;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
}

.purchase-flow .p-section.p-loan .p-loan-table__head-main,
.purchase-flow .p-section.p-loan .p-loan-table__head-sub {
    display: block;
}

.purchase-flow .p-section.p-loan .p-loan-table__head-sub {
    margin-top: 4px;
    padding-top: 4px;
    border-top: 1px solid #eaeaea;
}

.purchase-flow .p-section.p-loan .p-loan-table .p-loan-table--head1 {
    width: 60px;
}

.purchase-flow .p-section.p-loan .p-loan-table .p-loan-table--head2 {
    width: 110px;
}

.purchase-flow .p-section.p-loan .p-loan-table .p-loan-table--head3 {
    width: 165px;
}

.purchase-flow .p-section.p-loan .p-loan-table .p-loan-table--head4 {
    width: 45px;
}

.purchase-flow .p-section.p-loan .p-loan-table .p-loan-table--head5 {
    width: 80px;
}

.purchase-flow .p-section.p-loan .p-loan-table tbody th {
    width: 120px;
    background-color: #feffd6;
    font-weight: 500;
    font-size: 16px;
    line-height: 1.25;
    text-align: center;
}

.purchase-flow .p-section.p-loan .p-loan-table tbody tr:first-child th {
    height: 36px;
}

.purchase-flow .p-section.p-loan .p-loan-table tbody tr:last-child th {
    height: 76px;
    padding: 4px 10px;
}

.purchase-flow .p-section.p-loan .p-loan-table tbody td {
    background-color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
}

.purchase-flow .p-section.p-loan .p-loan-table tbody td[rowspan="2"] {
    height: 113px;
    vertical-align: middle;
}

/* --- 契約と重要事項説明のポイント（Figma node 24409:116730）購入フローPCのみ --- */
/* 計測: 外枠 #f7f7f7、下線1px #cfcfcf、縦padding 60px、見出し30 Bold 中央、下30px */
/* 計測: 白カード3枚 縦gap20、カード内 px25 py23 gap12、先頭リード中央 22/16 Medium */
/* 計測: 注意ポイント 3列×2行+2列1行、cell間gap2 #fff見え、角10は01左上/03右上/07左下/08右下 */
/* 計測: バッジ30 白円 数字16 Bold #56bda0、項目見出し18 Medium #56bda0、本文16 Regular */
/* 計測: 重要事項説明書下 緑箱 #e4f4ef radius10 p20 子間gap10 16px */
.purchase-flow .p-section.p-contract {
    background-color: #f7f7f7;
    border-top: none;
    border-bottom: 1px solid #cfcfcf;
    padding: 60px 0;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-contract .p-section__inner {
    width: 1140px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-contract .p-section__title {
    margin: 0 0 30px 0;
    padding: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-contract .p-section__lead {
    margin: 0;
    padding: 23px 25px;
    background-color: #ffffff;
    border-radius: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-contract .p-section__lead .p-section__lead-title {
    margin: 0;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-contract .p-section__lead p {
    margin: 0;
}

.purchase-flow .p-section.p-contract .p-contract__block-title {
    margin: 20px 0 0 0;
    padding: 23px 25px 12px;
    background-color: #ffffff;
    border-radius: 20px 20px 0 0;
    box-sizing: border-box;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-contract .p-contract__block-lead {
    margin: 0;
    padding: 0 25px 0;
    background-color: #ffffff;
    box-sizing: border-box;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-contract .p-contract-points {
    margin: 0;
    padding: 12px 25px 23px;
    background-color: #ffffff;
    border-radius: 0 0 20px 20px;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
}

.purchase-flow .p-section.p-contract .p-contract-point {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    padding: 12px;
    background-color: #e4f4ef;
    box-sizing: border-box;
    flex: 1 1 calc((100% - 4px) / 3);
    max-width: calc((100% - 4px) / 3);
    min-width: 0;
}

.purchase-flow .p-section.p-contract .p-contract-point:nth-child(7),
.purchase-flow .p-section.p-contract .p-contract-point:nth-child(8) {
    flex: 1 1 calc((100% - 2px) / 2);
    max-width: calc((100% - 2px) / 2);
}

.purchase-flow .p-section.p-contract .p-contract-point:nth-child(1) {
    border-radius: 10px 0 0 0;
}

.purchase-flow .p-section.p-contract .p-contract-point:nth-child(3) {
    border-radius: 0 10px 0 0;
}

.purchase-flow .p-section.p-contract .p-contract-point:nth-child(7) {
    border-radius: 0 0 0 10px;
}

.purchase-flow .p-section.p-contract .p-contract-point:nth-child(8) {
    border-radius: 0 0 10px 0;
}

.purchase-flow .p-section.p-contract .p-contract-point__badge {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 9999px;
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    color: #56bda0;
}

.purchase-flow .p-section.p-contract .p-contract-point__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: flex-start;
}

.purchase-flow .p-section.p-contract .p-contract-point__title {
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    color: #56bda0;
}

.purchase-flow .p-section.p-contract .p-contract-point__text {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-contract .p-contract__subheading {
    margin: 20px 0 0 0;
    padding: 23px 25px 0;
    background-color: #ffffff;
    border-radius: 20px 20px 0 0;
    box-sizing: border-box;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-contract .p-contract__paragraph {
    margin: 0;
    padding: 12px 25px 0;
    background-color: #ffffff;
    box-sizing: border-box;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
    text-align: center;
}

.p-contract-callout__wrapper {
    background-color: #fff;
    padding: 12px 25px 23px;
    border-radius: 0 0 20px 20px;
}

.purchase-flow .p-section.p-contract .p-contract-callout {
    padding: 20px;
    border-radius: 10px;
    background-color: #e4f4ef;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-contract .p-contract-callout p {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-contract .p-contract-callout .p-contract-callout__label {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #56bda0;
}

.purchase-flow .p-section.p-contract .p-contract-callout .p-contract-callout__label-only {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #56bda0;
}

/* --- 不動産の売買契約書（Figma node 24410:117033）購入フローPCのみ --- */
/* 計測: 外枠 #f7f7f7 py60、見出し30 Bold 中央 下30px、白カード縦gap20 radius20 px25 py23 内gap12 */
/* 計測: 準備帯 二重linear-gradient赤+白90% radius10 px40 py15、項目横並びgap30 16Regular gap5 */
/* 計測: 売買契約書カード 見出し22、緑箱#e4f4ef radius10 p20 gap10、POINTバッジ#56bda0 14白 pill pt4 pb5 px8 */
/* 計測: リスト項目gap7、行頭アイコン20×22 gap6、マンション帯下border#eaeaea pb16 */
/* 計測: 長文カード 見出し22 中央、本文16 lh1.5 中央 */
.purchase-flow .p-section.p-sale {
    background-color: #f7f7f7;
    border-top: none;
    padding: 60px 0;
    box-sizing: border-box;
    border-bottom: none;
}

.purchase-flow .p-section.p-sale .p-section__inner {
    width: 1140px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-sale .p-section__title {
    margin: 0 0 30px 0;
    padding: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-sale .p-sale__prep-title {
    margin: 0;
    padding: 23px 25px 12px;
    background-color: #ffffff;
    border-radius: 20px 20px 0 0;
    box-sizing: border-box;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-sale .p-sale-prep {
    margin: 0;
    padding: 0 25px 23px;
    background-color: #ffffff;
    border-radius: 0 0 20px 20px;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-sale .p-sale-prep__list {
    margin: 0;
    padding: 15px 40px;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 30px;
    border-radius: 10px;
    box-sizing: border-box;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.9) 100%),
        linear-gradient(90deg, #d83c3c 0%, #d83c3c 100%);
    width: fit-content;
    margin: 0 auto;
}

.purchase-flow .p-section.p-sale .p-sale-prep__item {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    margin: 0;
    padding: 0;
    position: static;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-sale .p-sale-prep__check {
    position: static;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin: 0;
}

.purchase-flow .p-section.p-sale .p-sale-prep__check img {
    display: block;
    width: 20px;
    height: 20px;
}

.purchase-flow .p-section.p-sale .p-sale__doc-title {
    margin: 20px 0 0 0;
    padding: 23px 25px 12px;
    background-color: #ffffff;
    border-radius: 20px 20px 0 0;
    box-sizing: border-box;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-sale .p-sale-callout {
    margin: 0;
    padding: 20px;
    border-top: none;
    border-bottom: none;
    border-left: 25px solid #ffffff;
    border-right: 25px solid #ffffff;
    border-radius: 10px;
    background-color: #e4f4ef;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-sale .p-sale-callout p {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-sale .p-sale-callout .p-sale-callout__label {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #56bda0;
}

.purchase-flow .p-section.p-sale .p-sale-callout .p-sale-callout__label-only {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #56bda0;
}

.purchase-flow .p-section.p-sale .p-sale-callout__em {
    color: #d83c3c;
    font-weight: 500;
}

.purchase-flow .p-section.p-sale .p-sale-callout + .p-sale-point {
    margin: 0;
    padding: 12px 25px 16px;
    background-color: #ffffff;
    border-bottom: 1px solid #eaeaea;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-sale .p-sale-point + .p-sale-point {
    margin: 0;
    padding: 12px 25px 23px;
    background-color: #ffffff;
    border-radius: 0 0 20px 20px;
    box-sizing: border-box;
}

.purchase-flow .p-section.p-sale .p-sale-point {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.purchase-flow .p-section.p-sale .p-sale-point__head {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
}

.purchase-flow .p-section.p-sale .p-sale-point__badge {
    flex-shrink: 0;
    padding: 4px 8px 5px;
    border-radius: 9999px;
    background-color: #56bda0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    color: #ffffff;
}

.purchase-flow .p-section.p-sale .p-sale-point__title {
    margin: 0;
    flex: 1;
    min-width: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #333333;
}

.purchase-flow .p-section.p-sale .p-sale-check-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.purchase-flow .p-section.p-sale .p-sale-check-list__item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.25;
    color: #333333;
}

.purchase-flow .p-section.p-sale .p-sale-check-list__mark {
    flex-shrink: 0;
    width: 20px;
    height: 22px;
    margin-top: 0;
    border-radius: 0;
    position: relative;
}

.purchase-flow .p-section.p-sale .p-sale-check-list__mark::after {
    display: none;
}

.purchase-flow .p-section.p-sale .p-sale-check-list__mark--dash::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
    height: 22px;
    border-radius: 0;
    background: url(/images/pc/buy/purchase-flow/icon_check.webp) no-repeat center center / contain;
}

.purchase-flow .p-section.p-sale .p-sale__long-title {
    margin: 20px 0 0 0;
    padding: 23px 25px 0;
    background-color: #ffffff;
    border-radius: 20px 20px 0 0;
    box-sizing: border-box;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-sale .p-sale__long-body + .p-sale__long-title {
    margin-top: 20px;
}

.purchase-flow .p-section.p-sale .p-sale__long-body {
    margin: 0;
    padding: 12px 25px 23px;
    background-color: #ffffff;
    border-radius: 0 0 20px 20px;
    box-sizing: border-box;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333333;
    text-align: center;
}

.purchase-flow .p-section.p-sale .p-sale__long-body p {
    margin: 0;
}

.purchase-flow .p-section.p-sale .p-sale__long-body p + p {
    margin-top: 0;
}

/* --- ページ末尾CTA --- */
.p-cta {
    padding: 60px 0;
    box-sizing: border-box;
    background: #fff;
}

.p-cta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 340px;
    margin: 0 auto;
    height: 70px;
    border-radius: 6px;
    background-color: var(--color-primary-default-buy);
    box-shadow: 0 2px 3px rgba(38, 50, 56, 0.14);
    font-size: var(--font-size-m);
    font-weight: 700;
    line-height: 1;
    color: #ffffff;
    text-decoration: none;
    position: relative;
    padding-left: 17px;
    transition: 0.4s;
}

.p-cta__btn:hover {
    transform: translateY(4px);
}

.p-cta__icon {
    display: flex;
    color: #ffffff;
    position: absolute;
    left: 69px;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 22px;
    height: 22px;
}

.p-cta__text {
    flex: 1;
    text-align: center;
    font-size: 22px;
}

.p-cta__arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    width: 15px;
    height: 20px;
}

.search-modal--purchase-buy .search-modal__content--purchase-buy {
    position: relative;
    width: 824px;
    padding: 40px;
    box-sizing: border-box;
    border-radius: 20px;
    background-color: #ffffff;
    overflow: visible;
    top: 0;
}

.search-modal--purchase-buy .search-modal__close-x {
    position: absolute;
    z-index: 2;
    top: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.search-modal--purchase-buy .search-modal__close-x-line {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 40px;
    height: 2px;
    background-color: #cfcfcf;
    border-radius: 9999px;
}

.search-modal--purchase-buy .search-modal__close-x-line--a {
    transform: translate(-50%, -50%) rotate(45deg);
}

.search-modal--purchase-buy .search-modal__close-x-line--b {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.search-modal--purchase-buy .search-modal__close-x:focus-visible {
    outline: 2px solid #56a856;
    outline-offset: 2px;
}

.search-modal--purchase-buy .search-modal__body--purchase-buy {
    margin-bottom: 0;
}

.search-modal__title-main--purchase-buy {
    margin: 0 0 30px;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #000000;
    text-align: center;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc {
    position: relative;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: center;
    width: 744px;
    max-width: 100%;
    margin: 0 auto;
    border: 2px solid #534b45;
    border-radius: 30px;
    background: #ffffff;
    box-shadow: 0 2px 1.5px rgba(38, 50, 56, 0.25);
    overflow: hidden;
    box-sizing: border-box;
    padding: 8px;
    gap: 20px;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc::after {
    display: none;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc .search-modal__grid-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 166px;
    min-width: 0;
    flex: 0 0 166px;
    height: 130px;
    text-decoration: none;
    box-sizing: border-box;
    border-radius: 20px;
}

.search-modal__grid-item::before {
    content: "";
    display: block;
    background: #FFFFFF url(/images/common/icon-arrow-normal.svg) no-repeat center center / 11px 8px;
    width: 32px;
    height: 32px;
    position: absolute;
    bottom: 0;
    right: 0;
    margin: auto;
    opacity: 0;
    border-radius: 20px 0 20px 0;
    transition: 0.4s;
}

.search-modal__grid-item:hover::before {
    opacity: 1;
    transition: 0.6s;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc .search-modal__grid-item:not(:last-child)::after {
    content: '';
    display: block;
    pointer-events: none;
    background: url(/images/pc/buy/purchase-flow/line_modal.svg) no-repeat center center / contain;
    position: absolute;
    right: -12px;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 2px;
    height: 110px;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc .search-modal__grid-item:hover {
    background-color: #6BC357;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc .search-modal__grid-item:last-child {
    border-right: none;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc .search-modal__grid-item img {
    width: 68px;
    height: 68px;
    max-width: 68px;
    max-height: 68px;
    margin-bottom: 9px;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc .search-modal__grid-item-title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    color: #353535;
}

.search-modal--purchase-buy .search-modal__grid--purchase-buy-pc .search-modal__grid-item-sub {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
    color: #353535;
    position: static;
}

.bkn__float-btn:hover {
    transform: translateY(4px);
}

.bkn__float-btn--store {
    color: #000;
}

.bkn__float-btn--contact {
    background-color: var(--color-primary-default-buy);
    padding: 0 0 0 32px;
}

.bkn__float-btn--contact .p-cta__icon {
    left: 26px;
    width: 24px;
    height: 24px;
}

/* =====================================================================
   売買物件 種別チューザーモーダル（住所/沿線・駅/地図/学校）
   /buy/ と同じ第2階層UI。base .search-modal の中央オーバーレイ上に
   白カードで表示する（top-org.css のインライン配置版とは別の中央版）。
   ===================================================================== */
.search-modal--buy-top .search-modal__content--buy-top {
    position: relative;
    width: 480px;
    max-width: 100%;
    padding: 40px;
    box-sizing: border-box;
    border-radius: 20px;
    background-color: #ffffff;
    overflow: visible;
}

.search-modal--buy-top .search-modal__body--buy-top {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.search-modal--buy-top .search-modal__title-main--buy-top {
    margin: 0 0 24px;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    color: #000000;
    text-align: center;
}

.search-modal--buy-top .search-modal__select-list--buy-top {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    width: 100%;
    max-width: 340px;
    margin: 0 auto;
}

.search-modal--buy-top .search-modal__select-item--buy-top,
.search-modal--buy-top .search-modal__select-item--buy-top-wide {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 64px;
    margin: 0;
    padding: 12px 13px;
    box-sizing: border-box;
    border: 1px solid #eaeaea;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 3px 2.5px rgba(38, 50, 56, 0.08);
    text-decoration: none;
}

.search-modal--buy-top .search-modal__select-item--buy-top::after,
.search-modal--buy-top .search-modal__select-item--buy-top-wide::after {
    content: "";
    position: absolute;
    right: 3px;
    bottom: 3px;
    width: 14px;
    height: 14px;
    background: url(/images/pc/icon_link-triangle-buy.svg) no-repeat center center / contain;
}

.search-modal--buy-top .search-modal__select-name--buy-top {
    font-size: var(--font-size-m);
    font-weight: 500;
    line-height: 1.25;
    letter-spacing: 0.04em;
    color: #000000;
    text-align: center;
}

.search-modal--buy-top .search-modal__footer--buy-top {
    position: absolute;
    top: 16px;
    right: 16px;
    margin: 0;
    display: flex;
    justify-content: flex-end;
}

.search-modal--buy-top .search-modal__close-btn--buy-top {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 9999px;
    background: #eaeaea;
    cursor: pointer;
    gap: 0;
}

.search-modal--buy-top .search-modal__close-icon {
    width: 12px;
    height: 12px;
}

.search-modal--buy-top .search-modal__close-text--buy-top {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}