        @charset "utf-8";
        /* =========================================
   ■ 共通（リセット/ユーティリティ）
   ========================================= */

        html {
            font-size: 62.5%;
        }

        body {
            font-family: "Noto Sans JP", sans-serif;
            font-size: 1.6rem;
            font-weight: 400;
        }

        a {
            transition: all 0.3s;
        }

        a:hover {
            opacity: 0.9;
        }

        @media (max-width: 800px) {
            body {
                font-size: 1.4rem;
            }
        }

        body li {
            list-style: none;
        }

        body a {
            text-decoration: none;
        }

        .flex_row {
            display: flex;
        }

        .column {
            display: flex;
            flex-direction: column;
        }

        .s_b {
            justify-content: space-between;
        }

        .content {
            max-width: 1280px;
            margin: 0 auto;
        }

        .inner {
            max-width: 1000px;
            margin: 0 auto;
        }

        .gray_line {
            display: block;
            width: 100%;
            background-color: #a6a8ad;
            height: 0.5px;
        }

        .white_line {
            display: block;
            width: 100%;
            background-color: #fff;
            height: 0.5px;
        }

        .box1 {
            margin-top: 80px;
        }
        /* =========================================
   ■ フォント/タイポグラフィ関連
   ========================================= */

        .abc {
            font-family: "EB Garamond";
        }

        h1 {
            font-size: 32px;
            color: #313131;
            font-weight: 400;
        }

        .h1_sub {
            font-size: 24px;
        }

        .title {
            font-size: 3.6rem;
        }

        .title.abc {
            font-weight: 300;
            color: #414657;
        }

        .abc.title .span_grey {
            font-family: "Noto Sans JP";
            font-size: 1.4rem;
            display: block;
            margin: 0;
        }

        h2 span {
            margin-left: 20px;
        }

        h2 .span_grey {
            color: #898989;
            font-size: 1.6rem;
        }

        .t_white {
            color: #fff;
        }

        .t_black {
            color: #313131;
        }

        .text1 {
            line-height: 2;
            color: #313131;
        }

        .sub_title {
            font-size: 2.4rem;
        }
        /* =========================================
   ■ ボタン
   ========================================= */

        .btn {
            width: 180px;
            height: 50px;
            background-color: #A2AED8;
            border-radius: 25px;
            font-weight: 300;
        }
        /* 通常状態（ここが大事） */

        .btn {
            transition: transform 0.35s ease, box-shadow 0.35s ease;
        }
        /* ふわっと浮く */

        .btn:hover {
            transform: translateY(-6px);
            box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
        }
        /* クリック時（任意） */

        .btn:active {
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
        }

        .btn .flex_row {
            align-items: center;
            height: 100%;
            justify-content: space-between;
        }

        .btn_text {
            margin-left: 25px;
            color: #fff;
        }

        .btn_arrow {
            background-color: #fff;
            display: block;
            width: 30px;
            height: 30px;
            border-radius: 50%;
            margin-right: 10px;
        }

        .btn_arrow img {
            display: flex;
            margin: 0 auto;
            align-items: center;
        }
        /* =========================
   ボタン内アイコン：回転＋右移動
========================= */

        .btn_arrow img {
            transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
            transform-origin: center;
        }
        /* 親ホバーで1回転 */

        .btn a:hover .btn_arrow img {
            transform: rotate(360deg);
        }
        /* スマホ：タップ時も回転 */

        .btn a:active .btn_arrow img {
            transform: rotate(360deg);
        }
        /* =========================================
   ■ セクション/レイアウト.
   ========================================= */
        /* ヘッダー */

        .header_logo_box .header_logo {
            font-size: 2.5rem;
            text-decoration: none;
            color: #313131;
            font-weight: 400;
            padding-left: 10px;
        }

        .header_logo_box .header_logo .logo_span {
            font-size: 1.6rem;
        }

        .header_logo_box {
            align-items: center;
        }

        .header_box {
            margin: 0 auto;
            padding: 25px 40px 0 40px;
            justify-content: space-between;
            align-items: center;
        }

        .header_list {
            justify-content: space-between;
            align-items: center;
            gap: 25px;
            padding: 0 40px;
        }

        .header_list a {
            color: #313131;
            font-size: 1.4rem;
        }

        .header_list a:hover {
            color: #6A5ACD;
        }

        .header_list_nav {
            width: 80%;
            display: flex;
            justify-content: right;
        }
        /* ファーストビュー全体 */

        .first_view {
            position: relative;
            margin-top: 30px;
        }
        /* 背景だけフルブリード */
        /* .first_view::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(../img/top/first_view.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
} */

        .underlayer .first_view::before {
            display: none;
        }
        /* 左右15px余白を担う */

        .first_view_outer {
            width: 100%;
            padding: 0 15px;
            /* ← ここが“見える余白” */
            position: relative;
            z-index: 1;
        }
        /* 中身（既存そのまま） */

        .first_view_inner {
            height: 738px;
            margin: 0 auto;
            position: relative;
        }
        /* 既存そのまま */

        .first_view h1 {
            padding-top: 210px;
            margin-left: 110px;
            line-height: 1.8;
        }

        .first_view_under {
            color: #fff;
            position: absolute;
            bottom: 30px;
            left: 50%;
            transform: translateX(-50%);
            white-space: nowrap;
        }
        /* 背景だけフルブリード → 左右だけ15px余白にする */
        /* .first_view::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 15px;
    right: 15px;
    background-image: url(../img/top/first_view.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
    border-radius: 30px;
} */
        /* 円形テキストの親 */

        .circle_wrap {
            position: absolute;
            top: 100px;
            /* 微調整用 */
            right: 40px;
            /* 微調整用 */
            width: 360px;
            height: 360px;
            z-index: 2;
            /* 背景より前・文字より後でもOK */
            pointer-events: none;
            /* クリック邪魔しない */
        }
        /* 円形本体 */

        .circle_title.abc {
            position: absolute;
            inset: 0;
            border-radius: 50%;
            animation: spin 24s linear infinite;
            color: white;
        }

        .circle_title span {
            position: absolute;
            left: 50%;
            top: 50%;
            transform-origin: 0 0;
            white-space: pre;
            font-size: 3.2rem;
            font-weight: 200;
            letter-spacing: 0.02em;
            /* 少し広げるとさらに重なりにくい */
            font-family: "EB Garamond";
            transform-origin: 0 50%;
            /* ← 0 0 じゃなく 0 50% */
            display: inline-block;
            /* 念のため */
            line-height: 1;
        }

        .circle_title {
            width: 100%;
            height: 100%;
        }

        @keyframes spin {
            from {
                transform: rotate(0deg);
            }
            to {
                transform: rotate(360deg);
            }
        }

        @media (max-width: 800px) {
            /* 円全体を小さく */
            .circle_wrap {
                width: 160px;
                height: 160px;
                top: 20px;
                /* 必要なら微調整 */
                right: 0px;
            }
            /* 円周テキストを小さく */
            .circle_title span {
                font-size: 1.4rem;
            }
            .btn {
                width: 100%;
            }
        }

        @media (min-width: 1041px) {
            .sp_nav__top,
            .sp_nav {
                display: none;
            }
        }

        @media (max-width: 1040px) {
            .header .header_list {
                display: none;
            }
            .header .btn {
                display: none;
            }
        }
        /* セクション1 */

        .section1 {
            margin-top: 185px;
            margin-bottom: 160px;
        }

        .s1_left {
            max-width: 460px;
        }

        .section1 h2 {
            padding-bottom: 60px;
        }

        .section1 .btn,
        .section2 .btn {
            margin-top: 50px;
        }

        .s1_img {
            margin-left: 30px;
        }
        /* セクション2（共通ボックス） */

        .section2 h1 {
            margin-bottom: 60px;
        }

        .box2_left {
            max-width: 450px;
        }

        .box2_left h2 {
            padding-top: 40px;
            padding-bottom: 40px;
        }

        .box2_left h3 {
            padding-bottom: 30px;
        }

        .section2_ul {
            gap: 90px;
        }

        .section2_ul h3 {
            font-size: 24px;
            color: #313131;
            font-weight: 400;
        }

        .section2_ul li {
            gap: 30px;
        }
        /* セクション3 */

        .section3 {
            background-image: url(../img/top/section3_bg.png);
            margin-top: 90px;
            height: 100%;
            color: white;
        }

        .section3 .t_white {
            color: #fff;
        }

        .section3 h2 {
            margin-bottom: 25px;
        }

        .section3 h3 {
            margin-top: 25px;
            font-weight: 300;
        }

        .section3 .inner {
            padding-top: 50px;
            padding-bottom: 150px;
        }

        .section3 .box2_left {
            max-width: 550px;
        }

        .section3 ul.text1 {
            margin-bottom: 45px;
            font-weight: 300;
        }

        .section3 .box2_left h2 {
            padding-bottom: 0;
        }

        .section3 .box2_right img {
            padding-top: 110px;
        }
        /* セクション4 */

        .section4 {
            margin-bottom: 125px;
            margin-top: 100px;
        }

        .section4 .inner {
            gap: 50px;
        }

        .insurance_list {
            display: flex;
            flex-wrap: wrap;
            /* 2行に折り返し */
            justify-content: flex-end;
        }

        .h2_box {
            width: 500px;
        }

        .insurance_list a:hover {
            opacity: 0.7;
        }
        /* =========================
   保険パートナー：浮遊
========================= */

        .insurance_list li a {
            display: block;
            transition: transform 0.35s ease, box-shadow 0.35s ease;
        }
        /* ふわっと浮く */

        .insurance_list li a:hover {
            transform: translateY(-8px);
        }
        /* スマホ：タップ時も少し反応 */

        .insurance_list li a:active {
            transform: translateY(-4px);
        }
        /* セクション5 */

        .last_section {
            margin-bottom: 340px;
        }

        .section5 h2 {
            margin-bottom: 80px;
        }
        /* News_list */

        .news_list {
            list-style: none;
            padding: 0;
            margin: 0;
            max-width: 600px;
            display: flex;
            flex-direction: column;
            gap: 25px;
            width: 100%;
        }

        .news_list li a,
        .news_list li .news_item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: #fff;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            border-radius: 12px;
            padding: 25px 35px;
            text-decoration: none;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

        .news_list li a:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
        }

        .news_content {
            flex: 1;
        }

        .news_date {
            color: #7a7a7a;
            font-size: 1.2rem;
            margin-bottom: 8px;
        }

        .news_text {
            font-size: 1.6rem;
            color: #313131;
            line-height: 1.6;
            margin: 0;
        }

        .news_date,
        .news_text {
            text-decoration: underline;
        }

        .news_icon {
            padding-left: 40px;
        }

        .news_icon img {
            transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), filter 0.4s ease;
            transform-origin: center;
        }
        /* 親ホバーで「右へ＋1回転」 */

        .news_list li a:hover .news_icon img {
            transform: translateX(10px) rotate(360deg);
            filter: brightness(1.1);
        }
        /* スマホ：タップ時も反応 */

        .news_list li a:active .news_icon img {
            transform: translateX(6px) rotate(360deg);
        }
        /* フッター */

        .footer {
            position: relative;
            background-image: url(../img/top/footer_bg.png);
            width: 100%;
            background-size: cover;
            /* 画面いっぱいに拡大・縮小 */
            background-position: center;
            /* 中央に配置 */
            background-repeat: no-repeat;
            /* 繰り返しを防ぐ */
            height: 500px;
            /* ビューポートの高さを指定（任意） */
        }

        .footer_inner {
            max-width: 1040px;
            margin: 0 auto;
        }

        .footer_box {
            padding-top: 178px;
            padding-bottom: 130px;
            margin: 0 auto;
        }

        .footer .header_list {
            font-weight: 300;
            font-size: 1.4rem;
        }

        .footer .header_list a {
            color: white;
        }

        .footer .text1 {
            color: white;
            font-size: 1.2rem;
            font-weight: 300;
        }

        .footer_btn_box a {
            width: 1080px;
            padding: 100px;
            background-color: #A2AED8;
            border-radius: 30px;
            position: absolute;
            top: -210px;
            left: 50%;
            transform: translateX(-50%);
            color: white;
            /* 追加 */
            transition: transform 0.35s ease, box-shadow 0.35s ease;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
        }
        /* ホバー時 */

        .footer_btn_box a:hover {
            transform: translateX(-50%) translateY(-12px);
            box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
            opacity: 1;
        }

        .footer_btn_box .abc {
            font-size: 6rem;
            font-weight: 200;
        }

        .footer_btn_box .s_b {
            gap: 50px;
        }

        .footer .footer_btn_box .text1 {
            font-size: 1.6rem;
            font-weight: 300;
        }

        .footer_btn_teext_box {
            max-width: 460px;
        }

        .footer_under p {
            font-size: 1.2rem;
            color: white;
            font-weight: 300;
        }

        .footer_under a {
            font-size: 1rem;
            font-weight: 300;
            color: white;
            text-decoration: underline;
        }

        .footer_icon .header_logo {
            color: white;
            font-weight: 300;
            padding-left: 20px;
        }

        .footer_icon .header_logo_box {
            padding-bottom: 20px;
        }

        .footer_icon .header_logo_box .header_logo {
            font-size: 2.4rem;
        }

        .footer_icon .header_logo_box .header_logo .logo_span {
            font-size: 1.8rem;
        }
        /* =========================
   アイコン：回転＋浮遊（共通）
========================= */

        .footer_float_icon {
            transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease;
            transform-origin: center;
        }

        .footer_float:hover .footer_float_icon {
            transform: translateY(-30px) rotate(360deg);
            filter: brightness(1.1);
        }
        /* タップでも反応させたい場合（スマホ用の保険） */

        .footer_float:active .footer_float_icon {
            transform: translateY(-6px) rotate(360deg);
            filter: brightness(1.1);
        }
        /* =========================================
   ■ レスポンシブ
   ========================================= */
        /* 共通 */

        @media (min-width: 801px) {
            .pc_hide {
                display: none;
            }
        }

        @media (max-width: 800px) {
            .sp_hide {
                display: none;
            }
            .content {
                margin-top: 40px;
                margin-bottom: 20px;
            }
            .top .content {
                margin-top: 40px;
            }
            /* =========================================
   ■ フォント/タイポグラフィ関連
   ========================================= */
            .abc {
                font-family: "EB Garamond";
            }
            h1 {
                font-size: 2rem;
                color: #313131;
                font-weight: 400;
            }
            .h1_sub {
                font-size: 1.6rem;
            }
            .title {
                font-size: 3.2rem;
            }
            .abc.title .span_grey {
                font-family: "Noto Sans JP";
                font-size: 1.3rem;
            }
            h2 span {
                margin-left: 20px;
            }
            h2 .span_grey {
                color: #898989;
                font-size: 1.6rem;
            }
            .t_white {
                color: #fff;
            }
            .text1 {
                line-height: 2;
                color: #313131;
            }
            .sub_title {
                font-size: 1.4rem;
            }
            /* =========================================
   ■ ボタン
   ========================================= */
            .content .btn .flex_row {
                flex-direction: row;
            }
            .content .btn .btn_text {
                font-size: 1.6rem;
            }
            .section1 .btn,
            .section2 .btn {
                margin-top: 40px;
            }
        }

        @media (max-width: 1080px) {
            .content {
                padding: 0 30px;
            }
        }
        /* ヘッダー */

        @media (max-width: 1040px) {
            .header {
                height: 80px;
            }
        }
        /* SPドロワーはレイアウトから外す */

        .sp_nav {
            position: fixed;
            top: 0;
            right: 0;
            height: 100vh;
        }

        @media (max-width: 1040px) {
            .sp_nav {
                position: fixed;
                inset: 0;
                /* 全画面にする */
                width: 100%;
                height: 100vh;
                z-index: 990;
                transform: translateX(-105%);
                transition: transform .4s;
                overflow-y: auto;
                -webkit-overflow-scrolling: touch;
                /* 背景：ダーク＋グリッド */
                background: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px), #414657;
                background-size: 32px 32px;
            }
            .sp_nav.active {
                transform: translateX(0);
            }
            /* 上部（ロゴ・コピー・閉じる） */
            .sp_nav__top {
                display: flex;
                align-items: flex-start;
                justify-content: space-between;
                padding: 22px 22px 80px;
            }
            .sp_nav__brand {
                display: flex;
                gap: 12px;
                align-items: flex-start;
            }
            .sp_nav__logo {
                width: 34px;
                height: auto;
                margin-top: 2px;
            }
            .sp_nav__brand_name {
                color: rgba(255, 255, 255, .92);
                font-size: 1.8rem;
                letter-spacing: .02em;
            }
            .sp_nav__brand_name .nav_logo {
                font-size: 2.4rem;
            }
            .sp_nav__brand_copy {
                margin-top: 6px;
                color: rgba(255, 255, 255, .85);
                font-size: 14px;
                letter-spacing: .03em;
            }
            /* ロゴ＋会社名を横並び */
            .sp_nav__brand_head {
                display: flex;
                gap: 12px;
                /* 既存 .sp_nav__brand と同じ感覚 */
                align-items: center;
            }
            /* brand 全体を縦積みにする */
            .sp_nav__brand {
                flex-direction: column;
            }
            .sp_nav__cta_text {
                font-family: "Noto Sans JP", sans-serif;
                font-size: 1.6rem;
                color: #fff;
                font-weight: 400;
            }
            /* 閉じるボタン（右上の丸＋×） */
            .sp_nav__close {
                width: 44px;
                height: 44px;
                border-radius: 50%;
                border: 1px solid rgba(255, 255, 255, .75);
                background: transparent;
                position: relative;
                flex: 0 0 auto;
            }
            .sp_nav__close_line {
                position: absolute;
                left: 50%;
                top: 50%;
                width: 18px;
                height: 2px;
                transform-origin: center;
                background-color: rgba(255, 255, 255, .9);
                /* ←これ */
            }
            .sp_nav__close_line:nth-child(1) {
                transform: translate(-50%, -50%) rotate(45deg);
            }
            .sp_nav__close_line:nth-child(2) {
                transform: translate(-50%, -50%) rotate(-45deg);
            }
            /* メニューリスト */
            .sp_nav__list {
                list-style: none;
                margin: 18px 0 0;
                padding: 0 22px 40px;
                /* 下CTA分の余白 */
                padding-left: 40px;
                font-weight: 300;
            }
            .sp_nav__item {
                position: relative;
                padding-left: 34px;
                margin: 22px 0;
            }
            /* 左の短いライン */
            .sp_nav__item::before {
                content: "";
                position: absolute;
                left: 0;
                top: 50%;
                width: 18px;
                height: 0.5px;
                background: rgba(190, 200, 255, .8);
                transform: translateY(-50%);
            }
            .sp_nav__link {
                display: inline-block;
                color: rgba(255, 255, 255, .92);
                text-decoration: none;
                font-size: 16px;
                letter-spacing: .05em;
            }
            /* 下部CTA（丸い大ボタン） */
            .sp_nav__bottom {
                padding: 0 22px;
                z-index: 995;
            }
            .sp_nav__cta {
                height: 56px;
                border-radius: 999px;
                background: #aeb8e8;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 14px;
                text-decoration: none;
                color: #fff;
                font-weight: 600;
                letter-spacing: .06em;
                position: relative;
            }
            .sp_nav__cta_icon {
                position: absolute;
                right: 12px;
                width: 34px;
                height: 34px;
                border-radius: 50%;
                display: grid;
                place-items: center;
                color: #6f79b8;
                font-weight: 700;
            }
            /* overlay */
            .sp_nav_overlay {
                position: fixed;
                inset: 0;
                background: rgba(0, 0, 0, .35);
                opacity: 0;
                visibility: hidden;
                transition: opacity .3s, visibility .3s;
                z-index: 980;
            }
            .sp_nav_overlay.active {
                opacity: 1;
                visibility: visible;
            }
            .hamburger {
                position: fixed;
                top: 20px;
                right: 20px;
                z-index: 2000;
                width: 48px;
                height: 48px;
                border: none;
                background: transparent;
                cursor: pointer;
            }
            .hamburger__line {
                position: absolute;
                right: 9px;
                /* ← 右揃い基準 */
                height: 2px;
                background-color: #8C86BE;
                transition: all .4s;
            }
            /* 上 */
            .hamburger__line:nth-of-type(1) {
                top: 14px;
                width: 30px;
            }
            /* 中（短い） */
            .hamburger__line:nth-of-type(2) {
                top: 23px;
                width: 23px;
            }
            /* 下 */
            .hamburger__line:nth-of-type(3) {
                top: 32px;
                width: 30px;
            }
            .hamburger.active {
                opacity: 0;
                pointer-events: none;
            }
            .header_list_nav {
                width: auto;
            }
        }
        /* ファーストビュー */

        @media (max-width: 1217px) {
            .first_view {
                width: 100%;
                background-position: center center;
                /* 中心を起点に */
                background-repeat: no-repeat;
            }
            .first_view_inner {
                max-width: 100%;
                height: 738px;
                margin: 0 auto;
                margin-top: 70px;
                position: relative;
                border-radius: 30px;
            }
            .first_view h1 {
                padding-top: 240px;
                margin-left: 30px;
            }
            .first_view_under {
                color: #fff;
                position: absolute;
                margin: 0 auto;
                bottom: 30px;
                transform: translateX(-50%);
                left: 50%;
                text-align: center;
            }
            .first_view_outer {
                margin: 0 auto;
                border-radius: 30px;
                width: 100%;
                padding: 0 20px;
                overflow: hidden;
            }
        }

        @media (max-width: 980px) {
            .first_view_under {
                font-size: 2rem;
            }
        }

        @media (max-width: 800px) {
            .first_view_inner {
                margin: 0 auto;
            }
            .first_view_under {
                font-size: 1.4rem;
            }
        }
        /* セクション1 */

        @media (max-width: 800px) {
            .section1 .flex_row {
                flex-direction: column-reverse;
            }
            .s1_img {
                margin: 0 auto;
                width: 70%;
                padding-bottom: 40px;
            }
            .section1 h2 {
                padding-bottom: 20px;
            }
            .first_view {
                margin-top: 0px;
            }
        }

        @media (min-width: 900px) {
            .max900_none {
                display: none;
            }
        }

        @media (max-width: 900px) {
            .min900_none {
                display: none;
            }
            /* セクション2（共通ボックス） */
            .section2 h1 {
                margin: 40px 0;
                font-size: 2.6rem;
                line-height: 2;
            }
            .box2_left {
                max-width: 580px;
            }
            .box2_left h2 {
                padding-top: 40px;
                padding-bottom: 40px;
            }
            .box2_left h3 {
                padding-bottom: 30px;
            }
            .section2_ul {
                gap: 90px;
            }
            .section2_ul h3 {
                font-size: 20px;
                color: #313131;
                font-weight: 400;
            }
            .section2 .s_b {
                flex-direction: column-reverse;
            }
            .box2_right img {
                width: 280px;
            }
        }

        @media (max-width: 400px) {
            .section2 h1 {
                font-size: 2.2rem;
            }
        }

        @media (max-width: 347px) {
            .section2 h1 {
                font-size: 2rem;
            }
        }

        @media (max-width: 1217px) {
            .section3 {
                background: url(../img/top/section3_bg_sp.png) center/cover repeat;
                margin-top: 90px;
                height: 100%;
            }
        }

        @media (max-width: 1040px) {
            .section4 .pc_hide {
                display: block;
            }
        }

        @media (max-width: 800px) {
            /* セクション3 */
            .section3 .t_white {
                color: #fff;
            }
            .section3 h2 {
                margin-bottom: 25px;
            }
            .section3 h3 {
                margin-top: 25px;
                font-weight: 300;
            }
            .section3 .inner {
                padding-top: 50px;
                padding-bottom: 50px;
            }
            .section3 .box2_left {
                max-width: 550px;
            }
            .section3 ul.text1 {
                margin-bottom: 30px;
                font-weight: 300;
            }
            .section3 .s_b {
                flex-direction: column-reverse;
            }
            .section3 .box2_right img {
                padding-top: 0px;
            }
            .section3 .text1 li {
                font-size: 1.4rem;
                line-height: 2.5;
            }
            .section3 .sub_title {
                font-size: 2rem;
            }
            .section3 {
                background: url(../img/top/section3_bg_p.png.jpg) repeat;
            }
            /* セクション4 */
            .section4.content {
                padding: 0 10px;
                margin-bottom: 55px;
            }
            .flex_row.s_b.box1 {
                margin-top: 55px;
            }
            .section4 {
                margin-bottom: 125px;
                margin-top: 40px;
            }
            .section4 .inner {
                gap: 50px;
                flex-direction: column;
            }
            .section4 .title {
                padding-left: 20px;
            }
            .insurance_list {
                display: flex;
                flex-wrap: wrap;
                /* 2行にs折り返し */
                justify-content: flex-start;
            }
            .insurance_list li {
                width: 50%;
            }
            .h2_box {
                width: 100%;
            }
            /* セクション5 */
            .section5 {
                margin-bottom: 340px;
            }
            .section5 h2 {
                margin-bottom: 80px;
            }
        }

        @media (max-width: 900px) {
            .section5 .inner .news_left {
                margin-right: 30px;
            }
        }

        @media (max-width: 800px) {
            .section5 {
                margin-bottom: 400px;
            }
            .section5 .s_b {
                flex-direction: column;
            }
            .news_icon img {
                width: 25px;
            }
            .news_list li a {
                position: relative;
                padding: 25px 15px;
                width: 100%;
            }
            .news_icon {
                position: absolute;
                top: 10px;
                right: 20px;
            }
            .btn {
                margin-top: 40px;
            }
            .news_left .title .span_grey {
                margin-left: 0;
            }
        }

        @media (max-width: 1140px) {
            .footer_btn_box a {
                width: 90%;
                padding: 80px 50px;
            }
        }

        @media (max-width: 1060px) {
            .footer_btn_box a {
                width: 90%;
                padding: 80px 30px;
            }
            .footer_btn_box .abc {
                font-size: 4rem;
            }
            .text_13s {
                font-size: 1.3rem;
                font-weight: 300;
            }
            .footer_btn_teext_box {
                max-width: 350px;
            }
            .footer .footer_btn_box .text1 {
                font-size: 1.3rem;
            }
            .footer_btn_box .s_b {
                gap: 30px;
            }
            .footer_inner {
                width: 90%;
            }
            .footer .header_list {
                flex-wrap: wrap;
                padding-left: 60px;
                justify-content: flex-start;
            }
            .footer_icon {
                min-width: 181px;
            }
        }

        @media (max-width: 800px) {
            .footer {
                height: 682px;
            }
            .footer .text1 {
                font-size: 1.4rem;
            }
            .footer .header_list {
                flex-direction: column;
                padding-left: 0;
            }
            .footer_btn_box a {
                width: 90%;
                padding: 30px 20px;
                top: -330px;
            }
            .footer .footer_btn_box .text1 {
                font-size: 1.4rem;
            }
            .footer_btn_box .s_b {
                gap: 0;
            }
            .footer_btn_teext_box {
                margin-top: 30px;
            }
            .footer_btn_box .abc {
                font-size: 4rem;
            }
            .text_13s {
                font-size: 1.3rem;
                font-weight: 300;
            }
            .footer_btn_box .s_b {
                flex-direction: column;
            }
            .footer_float_icon {
                position: absolute;
                top: 40px;
                right: 20px;
            }
            .footer_inner .s_b {
                flex-direction: column;
            }
            .footer_inner .footer_under.s_b {
                flex-direction: row;
                padding: 0 30px;
            }
            .footer .header_list {
                align-items: flex-start;
                margin-top: 100px;
                font-weight: 300;
            }
            .footer_box {
                padding-top: 30px;
                padding-left: 30px;
            }
        }
        /* =========================================
   ■ 下層ページ共通
   ========================================= */

        .underlayer .first_view_inner {
            height: 375px;
        }

        .purple_circle {
            display: block;
            background-color: #A2AED8;
            width: 22px;
            height: 22px;
            border-radius: 50%;
        }

        .underlayer .news_text {
            text-decoration: none;
        }

        .underlayer .sub_title {
            font-size: 2.4rem;
            font-weight: 400;
            color: #313131;
        }

        .underlayer .sub_title.t_white {
            color: #fff;
        }

        .underlayer .sub_title.m_text {
            font-size: 2rem;
        }

        .underlayer {
            overflow: hidden;
        }

        .underlayer .first_view_inner h1 {
            font-size: 3.2rem;
            color: white;
            line-height: 1;
            padding-top: 100px;
        }

        .underlayer .first_view_inner h1 .h1_sub {
            font-size: 1.4rem;
            font-weight: 200;
        }
        /* =========================================
   ■ insurance-service
   ========================================= */

        .insurance-service .first_view_inner {
            background-image: url(../img/insurance-services/fv.png);
            width: 100%;
            background-size: cover;
            border-radius: 30px;
        }

        .insurance-service .news_list .news_item {
            flex-direction: row-reverse;
        }

        .insurance-service .news_list .news_item .purple_circle {
            margin-right: 15px;
        }

        .insurance-service .news_left {
            width: 45%;
        }

        .insurance-service .news_left img {
            max-width: 320px;
        }

        .insurance-service .section5 h2 {
            margin-bottom: 50px;
        }

        .insurance-service .box1 {
            margin-top: 0;
        }

        .insurance-service .box1_right {
            width: 500px;
        }

        .flex_row.s_b.box1 {
            margin-top: 55px;
        }

        .insurance-service .news_list {
            gap: 10px;
        }

        .insurance-service .news_left .text1 {
            margin-top: 30px;
        }

        @media (max-width: 800px) {
            .insurance-service .box1_right {
                width: 100%;
            }
            .insurance-service .news_left {
                width: 100%;
                margin-bottom: 40px;
            }
        }
        /* =========================================
   ■ insurance-service  ライフステージ別
   ========================================= */
        /* =========================================
   ■ ライフステージ（改良版ラインデザイン）
   ========================================= */

        .underlayer .section1 {
            margin-bottom: 100px;
        }

        .life_item {
            align-items: center;
            gap: 40px;
            position: relative;
            padding: 40px 0;
        }

        .life_right {
            flex: 1;
            position: relative;
            padding: 20px 0;
        }
        /* 上ライン */

        .life_right::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 1px;
            background-color: #535457;
            opacity: 0.8;
        }
        /* 下ライン */

        .life_right::after {
            content: "";
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 1px;
            background-color: #535457;
            opacity: 0.8;
        }
        /* タイトル */

        .life_title {
            font-size: 1.8rem;
            margin-bottom: 20px;
            color: #313131;
        }
        /* タグ */

        .life_tags {
            display: grid;
            grid-template-columns: repeat(2, max-content);
            /* ← 重要！ */
            gap: 20px;
            margin-top: 25px;
            justify-content: start;
            /* 左詰めにする */
        }

        .life_tag {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 20px 20px;
            border: 1px solid #A2AED8;
            border-radius: 15px;
            background: #fff;
            font-size: 1.6rem;
            width: 230px;
        }

        .tag_big {
            width: 230px;
        }

        .life_inner {
            padding-left: 20px;
        }

        .insurance-service .section5 {
            margin-bottom: 120px;
        }

        .dat_outer .text1 {
            padding-left: 10px;
            margin: 0 auto;
        }

        .life_dot {
            width: 22px;
            height: 22px;
            background-color: #A2AED8;
            border-radius: 50%;
            display: inline-block;
            /* ← これで flex の影響を受けなくなる */
            flex-shrink: 0;
            /* ← これで潰れない */
        }

        .life_right .sub_title {
            position: relative;
            /* ← 基準にする */
            padding-left: 20px;
            /* ← ドット分の余白 */
        }

        .life_right .sub_title::before {
            left: 0;
            /* 左に配置 */
            top: 50%;
            /* 高さ中央に合わせる */
            transform: translateY(-50%);
            /* 完全中央 */
            content: "";
            position: absolute;
            height: 3px;
            width: 13px;
            background-color: #A2AED8;
            display: inline;
        }

        .section_lifestage {
            margin-bottom: 140px;
        }
        /* SP レイアウト */

        @media (max-width: 800px) {
            .life_item {
                flex-direction: column;
            }
            .life_img img {
                width: 100%;
            }
            .life_right {
                width: 100%;
                padding: 20px 0;
            }
            .life_title {
                font-size: 1.6rem;
            }
        }

        @media (max-width: 600px) {
            .life_tag {
                width: 100%;
                padding: 10px 20px;
                gap: 5px;
            }
            .tag_big {
                width: 100%;
            }
            .life_tags {
                display: flex;
                flex-direction: column;
                gap: 10px 30px;
            }
            .life_dot {
                width: 14px;
                height: 14px;
                background-color: #A2AED8;
                border-radius: 50%;
                display: inline-block;
                /* ← これで flex の影響を受けなくなる */
                flex-shrink: 0;
                /* ← これで潰れない */
            }
            .life_inner {
                padding-left: 0px;
            }
            .life_right::before {
                display: none;
            }
            .life_right {
                padding: 0 0 20px 0;
            }
            .section_lifestage {
                margin-bottom: 60px;
            }
            .merit_wrap .merit_title {
                margin-bottom: 30px;
                text-align: center;
                padding: 0 10px;
            }
            .merit_item {
                max-width: 320px;
                width: 100%;
                padding: 10px;
                margin: 5px;
            }
            .merit_line {
                margin: 10px 0;
            }
        }
        /* =========================================
   ■ insurance-service　メリットセクション
   ========================================= */

        .section_merit {
            margin-top: 80px;
            margin-bottom: 120px;
        }

        .merit_wrap {
            max-width: 1217px;
            background-color: #A2AED8;
            border-radius: 40px;
            padding: 60px 0 60px;
            margin: 0 auto;
        }

        .section_merit .title {
            text-align: center;
            margin-bottom: 50px;
        }

        .merit_wrap .merit_title {
            margin-bottom: 60px;
            padding: 0 20px;
        }
        /* カード群 */

        .merit_list {
            justify-content: center;
            gap: 30px;
            margin-bottom: 20px;
            padding: 0 20px;
        }

        .merit_item {
            flex: 1;
            max-width: 280px;
            background-color: #fff;
            border-radius: 24px;
            padding: 28px 24px 36px;
            align-items: center;
            text-align: center;
        }
        /* 英字だけ（abc） */

        .merit_label {
            font-size: 1.6rem;
            color: #565656;
            align-self: flex-start;
        }

        .merit_icon {
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 16px auto 24px;
        }

        .merit_line {
            display: block;
            width: 100%;
            margin-bottom: 24px;
        }
        /* 文章（sub_title を適用） */

        .underlayer .sub_title.merit_body {
            color: #383838;
            line-height: 1.7;
            font-weight: 500;
        }
        /* 下の説明テキスト */

        .underlayer .text1.merit_text {
            margin-top: 20px;
            line-height: 2.2;
            color: #fff;
            padding: 0 20px;
        }
        /* SP レイアウト */

        @media (max-width: 800px) {
            .merit_wrap {
                padding: 40px 0 50px;
            }
            .merit_icon {
                width: 50%;
            }
            .section_merit .title {
                font-size: 2rem;
                padding: 0 20px;
            }
            .merit_list {
                flex-direction: column;
                align-items: center;
            }
            .merit_item {
                max-width: 320px;
                width: 80%;
                margin: 5px;
            }
            .merit_icon {
                margin: 5px;
            }
            .merit_icon img {
                width: 50%;
            }
            .underlayer .sub_title.m_text {
                font-size: 1.6rem;
            }
        }
        /* =========================================
   ■ insurance-service ご相談の流れ
   ========================================= */

        .section_process {
            margin-top: 140px;
            margin-bottom: 100px;
        }

        .section_process .title {
            margin-bottom: 40px;
        }

        .section_process .title .span_grey {
            font-size: 1.4rem;
        }
        /* リスト全体 */

        .process_list {
            gap: 20px;
        }
        /* 各ステップ行 */

        .process_item {
            align-items: stretch;
            gap: 20px;
        }
        /* 左の Step ブロック */

        .process_step {
            width: 88px;
            border-radius: 18px;
            background-color: #A2AED8;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .process_step span {
            color: #fff;
            font-size: 2.6rem;
            writing-mode: vertical-rl;
            text-orientation: mixed;
        }
        /* 右のカード */

        .process_card {
            flex: 1;
            background-color: #fff;
            border-radius: 18px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
            align-items: center;
            justify-content: flex-start;
        }

        .process_card_inner {
            padding: 28px 10px;
            align-items: center;
        }
        /* 左側タイトル */

        .process_title_box {
            width: 35%;
            display: flex;
        }

        .sub_title.process_title {
            color: #8C86BE;
            margin: 0 auto;
            font-weight: 600;
        }
        /* 縦の仕切り線 */

        .process_divider {
            width: 1px;
            background-color: #dcdcdc;
            margin: 0;
        }
        /* テキスト */

        .process_text::before {
            content: "";
            display: block;
            height: 80px;
            width: 1px;
            background-color: #313131;
            position: absolute;
            left: 0;
            top: 0;
        }

        .process_text {
            flex: 1;
            position: relative;
            padding-left: 30px;
        }

        .section_process .title {
            font-weight: 400;
            color: #414657;
        }
        /* SP レイアウト */

        @media (max-width: 800px) {
            .section_process {
                margin-top: 60px;
                margin-bottom: 80px;
            }
            .process_item {
                flex-direction: column;
                gap: 10px;
            }
            .process_text::before {
                display: none;
            }
            .process_step {
                width: 100%;
                height: 55px;
                border-radius: 10px;
                align-self: flex-start;
            }
            .process_step span {
                writing-mode: horizontal-tb;
            }
            .process_card_inner {
                flex-direction: column;
                padding: 20px;
            }
            .process_title_box {
                min-width: auto;
                margin-bottom: 10px;
            }
            .process_divider {
                display: none;
            }
            .process_title_box {
                width: 100%;
            }
        }

        .section_comment {
            margin-bottom: 200px;
            position: relative;
        }

        .section_comment h2 {
            font-weight: 400;
            color: #313131;
            margin-bottom: 40px;
            line-height: 1.6;
            font-feature-settings: "palt";
            letter-spacing: 2px;
        }

        .section_comment .text1 {
            padding-left: 5px;
        }

        .bg_object {
            position: absolute;
            z-index: -100;
            right: -400px;
            top: -100px;
        }

        @media (max-width: 1400px) {
            .bg_object {
                width: 70%;
                right: -35%;
            }
        }

        @media (max-width: 1000px) {
            .section_comment {
                margin-bottom: 500px;
            }
            .bg_object {
                width: 50%;
                right: 25%;
                top: 200px;
            }
        }

        @media (max-width: 800px) {
            .section_comment .text1 {
                padding-left: 0px;
            }
            .section_comment {
                margin-bottom: 600px;
            }
            .bg_object {
                width: 80%;
                right: 10%;
                top: 100%;
            }
        }

        @media (max-width: 500px) {
            .section_comment {
                margin-bottom: 500px;
            }
        }
        /* =========================================
   ■ life_planning
   ========================================= */

        .life_planning .first_view_inner {
            background-image: url(../img/life_planning/fv.png);
            width: 100%;
            border-radius: 30px;
            background-size: cover;
        }
        /* =========================================
   ■ life_planning 質問セクション（comment）
   ========================================= */

        .comment_box {
            align-items: center;
            gap: 60px;
        }

        .comment_left {
            width: 60%;
        }

        .section_comment h2 {
            font-weight: 400;
            color: #313131;
            margin-bottom: 30px;
        }
        /* 質問カード */

        .comment_list {
            gap: 26px;
            margin-bottom: 40px;
        }

        .comment_item {
            display: flex;
            align-items: center;
            gap: 18px;
            background: #fff;
            border-radius: 12px;
            padding: 22px 30px;
            box-shadow: 0 6px 14px rgba(0, 0, 0, 0.10);
        }

        .comment_q {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            background: #A2AED8;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.6rem;
            flex-shrink: 0;
        }
        /* 下の補足 */

        .comment_note {
            padding-left: 20px;
            /* デザインの左インデント */
        }
        /* 右画像 */

        .comment_right {
            width: 36%;
            display: flex;
            justify-content: flex-end;
        }

        .comment_right img {
            width: 100%;
            max-width: 360px;
            border-radius: 30px;
            display: block;
        }
        /* SP */

        @media (max-width: 800px) {
            .comment_box {
                flex-direction: column-reverse;
                align-items: flex-start;
                gap: 30px;
            }
            .comment_left {
                width: 100%;
            }
            .comment_right {
                width: 100%;
                justify-content: center;
            }
            .comment_right img {
                max-width: 320px;
            }
            .comment_note {
                padding-left: 0;
            }
            .comment_item {
                padding: 18px 18px;
            }
        }
        /* =========================================
   ■ life_planning 差額比較セクション
   ========================================= */

        .section_diff {
            margin: 80px auto 120px;
        }

        .diff_wrap {
            max-width: 1217px;
            margin: 0 auto;
            background: #A2AED8;
            border-radius: 40px;
            padding: 60px 0 100px;
            overflow: hidden;
            z-index: -2;
        }

        .diff_inner .title {
            margin-bottom: 35px;
            padding: 0 20px;
        }

        .diff_cols {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 26px;
            padding: 0 20px;
            margin-bottom: 28px;
        }

        .diff_col {
            display: flex;
            flex-direction: column;
            gap: 18px;
        }
        /* 上の白カード */

        .diff_card {
            background: #fff;
            border-radius: 18px;
            padding: 28px 26px 26px;
            position: relative;
            min-height: 310px;
        }

        .diff_icon {
            width: 92px;
            height: 92px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.0);
            display: grid;
            place-items: center;
            margin: 0 auto 16px;
        }

        .diff_icon img {
            width: 92px;
            height: 92px;
            display: block;
        }

        .underlayer .sub_title.diff_name {
            text-align: center;
            color: #8C86BE;
            font-weight: 600;
            margin-bottom: 14px;
        }

        .underlayer .sub_title.diff_name.diff_name_2 {
            color: #535353;
            font-weight: 600;
        }

        .diff_hr {
            display: block;
            width: 85%;
            height: 1px;
            background: #535457;
            opacity: 0.6;
            margin: 0 auto 16px;
        }

        .diff_list {
            padding-left: 40px;
        }

        .diff_list li {
            line-height: 2.1;
            font-size: 1.4rem;
        }
        /* 吹き出しの▼ */

        .diff_pointer {
            position: absolute;
            left: 50%;
            bottom: -10px;
            transform: translateX(-50%);
            width: 0;
            height: 0;
            border-left: 14px solid transparent;
            border-right: 14px solid transparent;
            border-top: 14px solid #fff;
        }
        /* 下の結果カード */

        .diff_result {
            background: #fff;
            border-radius: 18px;
            padding: 26px 20px;
            text-align: center;
        }

        .underlayer .sub_title.diff_result_title {
            color: #8C86BE;
            font-weight: 600;
            margin-bottom: 10px;
        }

        .diff_result_price {
            font-size: 5rem;
            font-weight: 600;
            line-height: 1.1;
        }

        .diff_result_price.diff_result_price_2 {
            color: #535353;
        }

        .underlayer .diff_purple {
            color: #8C86BE;
        }
        /* 最下部の差額 */

        .diff_bottom {
            position: relative;
            text-align: center;
            padding: 10px 20px 40px;
            margin-top: 10px;
        }

        .diff_bottom_small {
            font-weight: 400;
            margin-bottom: 8px;
        }

        .diff_bottom_big {
            font-size: 6.4rem;
            font-weight: 700;
            color: #fff;
            line-height: 1.05;
            margin: 0 0 40px;
        }

        .diff_bottom_note {
            font-size: 1.4rem;
            opacity: 0.95;
        }
        /* 瓶（左右の飾り） */
        /* いままで通り absolute をここに */

        .diff_jar {
            position: absolute;
            z-index: 5;
        }

        .diff_jar img {
            display: block;
            width: 100%;
            height: auto;
            z-index: 10;
        }
        /* 下影だけ */

        .diff_jar::after {
            content: "";
            position: absolute;
            left: 80%;
            bottom: 0px;
            transform: translateX(-50%);
            width: 60%;
            height: 18px;
            background: rgba(0, 0, 0, 0.61);
            filter: blur(14px);
            border-radius: 50%;
        }

        .diff_jar_left {
            left: 10px;
        }

        .diff_jar_right {
            right: 10px;
        }
        /* SP */

        @media (max-width: 800px) {
            .diff_wrap {
                padding: 40px 0 40px;
                border-radius: 30px;
            }
            .diff_cols {
                grid-template-columns: 1fr;
                gap: 18px;
            }
            .diff_card {
                min-height: auto;
            }
            .diff_result_price {
                font-size: 4.2rem;
            }
            .diff_bottom_big {
                font-size: 4.8rem;
            }
            .diff_jar {
                width: 120px;
                bottom: -6px;
            }
        }
        /* =========================================
   ■ life_planning 三大出費セクション
   ========================================= */

        .section_bigcost {
            margin: 90px auto 120px;
        }

        .bigcost_title {
            font-weight: 400;
            margin-bottom: 35px;
        }
        /* 全体 */

        .bigcost_list {
            gap: 55px;
        }

        .bigcost_item {
            position: relative;
        }

        .bigcost_row {
            gap: 40px;
            align-items: flex-start;
        }
        /* 左カラム */

        .bigcost_left {
            width: 58%;
            min-width: 520px;
        }
        /* 右画像 */

        .bigcost_right {
            width: 38%;
            display: flex;
            justify-content: flex-end;
        }

        .bigcost_right img {
            width: 100%;
            max-width: 420px;
            height: auto;
            border-radius: 26px;
            display: block;
        }
        /* カード（番号＋内容） */

        .bigcost_card {
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 6px 16px rgba(0, 0, 0, 0.10);
            padding: 18px 22px;
            align-items: center;
            gap: 18px;
            margin-bottom: 16px;
        }

        .bigcost_card_body {
            margin: 0 auto;
        }

        .bigcost_no {
            width: 79px;
            height: 79px;
            border-radius: 50%;
            background: #A2AED8;
            color: #fff;
            display: grid;
            place-items: center;
            font-size: 3.1rem;
            font-weight: 400;
            flex-shrink: 0;
        }

        .bigcost_kind {
            font-weight: 500;
            color: #313131;
            margin-bottom: 4px;
            margin: 0 auto;
            text-align: center;
        }

        .bigcost_price {
            display: flex;
            align-items: baseline;
            gap: 10px;
            margin: 0;
        }

        .bigcost_price_num {
            font-size: 4.2rem;
            font-weight: 400;
            color: #8C86BE;
            letter-spacing: 0.02em;
            line-height: 1;
        }

        .bigcost_note {
            font-size: 1.1rem;
            color: #777;
            margin-left: 8px;
            line-height: 1;
            text-align: right;
        }
        /* 説明文・出典 */

        .bigcost_desc {
            margin-bottom: 10px;
        }

        .bigcost_source {
            font-size: 1.2rem;
            color: #8a8a8a;
            margin-bottom: 0px;
        }
        /* 区切り線（デザインの薄いライン） */

        .bigcost_hr {
            display: block;
            width: 100%;
            height: 1px;
            background: #535457;
            opacity: 0.35;
            margin-bottom: 20px;
        }
        /* 5列テーブル（教育費） */

        .bigcost_table5 {
            width: 60%;
            overflow: hidden;
            margin-top: 30px;
        }

        .bigcost_table5>div {
            display: grid;
            grid-template-columns: repeat(5, 1fr);
        }

        .bigcost_table_head div {
            background: #A2AED8;
            color: #fff;
            text-align: center;
            padding: 14px 10px;
            font-size: 1.6rem;
            font-weight: 300;
            border-right: 2px solid rgb(255, 255, 255);
        }

        .bigcost_table_body div {
            background: #f1f1f1;
            color: #313131;
            text-align: center;
            padding: 14px 10px;
            font-size: 1.6rem;
            border-right: 2px solid rgb(255, 255, 255);
            border-top: 2px solid rgb(255, 255, 255);
        }

        .bigcost_table_body div:last-child {
            border-right: none;
        }
        /* グラフ */

        .bigcost_graph {
            margin: 26px auto 0;
            display: flex;
            justify-content: center;
        }

        .bigcost_graph img {
            width: 72%;
            max-width: 640px;
            height: auto;
            display: block;
        }
        /* 2列テーブル（老後） */

        .bigcost_table2 {
            width: 100%;
            overflow: hidden;
            margin-top: 20px;
        }

        .bigcost_table2_head,
        .bigcost_table2_body {
            display: grid;
            grid-template-columns: 1fr 1fr;
        }

        .bigcost_table2_head div {
            background: #A2AED8;
            color: #fff;
            text-align: center;
            padding: 14px 10px;
            font-size: 1.6rem;
            font-weight: 300;
            border-right: 2px solid rgb(255, 255, 255);
        }

        .bigcost_table2_body div {
            background: #f1f1f1;
            color: #313131;
            text-align: center;
            padding: 16px 10px;
            font-size: 2rem;
            border-right: 2px solid rgb(255, 255, 255);
            border-top: 2px solid rgb(255, 255, 255);
        }

        .bigcost_table2_body div:last-child {
            border-right: none;
        }
        /* =========================================
   ■ SP
   ========================================= */

        @media (max-width: 900px) {
            .bigcost_row {
                flex-direction: column;
                gap: 18px;
            }
            .bigcost_left {
                width: 100%;
                min-width: auto;
            }
            .bigcost_right {
                width: 100%;
                justify-content: flex-start;
            }
            .bigcost_right img {
                max-width: 520px;
            }
            .bigcost_graph img {
                width: 100%;
            }
        }

        @media (max-width: 600px) {
            .bigcost_row {
                flex-direction: column-reverse;
                gap: 18px;
            }
            .bigcost_card {
                padding: 14px 14px;
                gap: 12px;
            }
            .bigcost_no {
                width: 44px;
                height: 44px;
                font-size: 1.6rem;
            }
            .bigcost_price_num {
                font-size: 3.4rem;
            }
            .bigcost_desc {
                font-size: 1.3rem;
            }
            .bigcost_table5 {
                width: 100%;
            }
            .bigcost_table_head div {
                padding: 5px 5px;
                font-size: 1.2rem;
            }
            .bigcost_table_body div {
                padding: 5px 5px;
                font-size: 1.2rem;
            }
            .bigcost_price_num {
                font-size: 2.6rem;
            }
            .underlayer .section_bigcost .sub_title {
                font-size: 1.6rem;
            }
        }
        /* =========================================
   ■ life_planning 貯めやすいタイミング（Chance）
   ========================================= */

        .section_chance {
            margin: 90px auto 120px;
        }

        .chance_wrap {
            max-width: 1217px;
            margin: 0 auto;
            background: #A2AED8;
            border-radius: 40px;
            padding: 70px 0 60px;
            position: relative;
        }

        .chance_inner {
            gap: 55px;
        }
        /* 見出し */

        .chance_head {
            padding: 0 60px;
            gap: 12px;
        }

        .underlayer .sub_title.chance_title {
            font-weight: 400;
            letter-spacing: 0.02em;
            font-size: 3.2rem;
        }

        .chance_lead {
            font-weight: 300;
            font-size: 1.6rem;
        }
        /* 3カード */

        .chance_list {
            justify-content: center;
            gap: 26px;
            padding: 0 40px;
        }

        .chance_item {
            width: 300px;
            background: #fff;
            border-radius: 22px;
            padding: 18px 22px 26px;
            text-align: center;
            align-items: center;
        }

        .chance_label {
            align-self: flex-start;
            font-size: 1.4rem;
            color: #6a6a6a;
        }

        .chance_icon {
            margin-bottom: 30px;
        }

        .chance_line {
            display: block;
            width: 100%;
            height: 1px;
            background: #5b5b5b;
            opacity: 0.7;
            margin-bottom: 18px;
        }

        .sub_title.chance_body {
            color: #383838;
            font-weight: 500;
            line-height: 1.4;
            font-size: 2rem;
        }

        .chance_small {
            font-size: 1.4rem;
            font-weight: 400;
        }
        /* 下のメッセージ＋右下オブジェ */

        .chance_bottom {
            padding: 0 60px;
        }

        .chance_message {
            font-size: 3.0rem;
            line-height: 1.9;
            font-weight: 400;
            margin: 0;
        }

        .chance_object {
            flex-shrink: 0;
        }

        .chance_object img {
            width: 100%;
            height: auto;
            display: block;
        }
        /* =========================================
   ■ SP
   ========================================= */

        @media (max-width: 900px) {
            .chance_wrap {
                padding: 50px 0 45px;
            }
            .chance_head {
                padding: 0 24px;
            }
            .chance_list {
                flex-direction: column;
                align-items: center;
                padding: 0 20px;
            }
            .chance_item {
                width: min(360px, 92%);
            }
            .chance_bottom {
                padding: 0 24px;
                flex-direction: column;
                align-items: flex-start;
                gap: 25px;
            }
            .chance_message {
                font-size: 2.2rem;
                line-height: 1.8;
            }
            .chance_object {
                width: 180px;
                align-self: flex-end;
            }
        }

        @media (max-width: 600px) {
            .chance_message {
                font-size: 2.0rem;
            }
        }

        .insurance-service .section_comment .bg_object
        /* =========================================
   ■ life_planning お金の見える化（GOOD）
   ========================================= */

        .section_visible {
            margin: 90px auto 120px;
            position: relative;
        }

        .visible_inner {
            position: relative;
            padding: 10px 0 40px;
        }
        /* 見出し */

        .visible_head {
            gap: 18px;
            margin-bottom: 55px;
        }

        .visible_title {
            font-size: 3.2rem;
            /* デザイン寄せ */
            font-weight: 400;
            color: #313131;
        }

        .visible_accent {
            color: #8C86BE;
        }

        .visible_lead {
            max-width: 720px;
            font-size: 1.4rem;
        }
        /* 背景オブジェ */

        .visible_bg {
            position: absolute;
            z-index: -1;
            pointer-events: none;
        }

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

        .visible_bg_left {
            left: -400px;
            top: 200px;
        }

        .visible_bg_right {
            right: -260px;
            top: -10px;
        }
        /* リスト */

        .visible_list {
            gap: 34px;
            padding-left: 40px;
            /* バッジ分の余白 */
        }

        .visible_item {
            position: relative;
            width: 635px;
        }

        .visible_item_2 {
            width: 716px;
            margin-left: 100px;
        }

        .visible_item_3 {
            margin-left: 250px;
            width: 635px;
        }
        /* バッジ（GOOD!） */

        .visible_badge {
            position: absolute;
            left: 0px;
            top: 50%;
            transform: translate(-50%, -50%);
            width: 143px;
            height: 143px;
            border-radius: 50%;
            background: #A2AED8;
            color: #fff;
            display: grid;
            place-items: center;
            font-size: 2.6rem;
            font-weight: 400;
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.10);
        }
        /* カード */

        .visible_card {
            background: #fff;
            border-radius: 14px;
            padding: 34px 40px 34px 120px;
            /* 左の丸を避ける */
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
            height: 143px;
            align-items: center;
        }

        .underlayer .sub_title.visible_card_text {
            margin: 0;
            color: #8C86BE;
            font-weight: 500;
            align-items: center;
        }
        /* =========================================
   ■ SP
   ========================================= */

        @media (max-width: 1530px) {
            .underlayer {
                overflow: hidden;
            }
        }

        @media (max-width: 800px) {
            .visible_bg_left {
                left: 0px;
                top: auto;
                bottom: -50px;
            }
            .visible_bg_right {
                right: 0px;
                top: auto;
                bottom: 0px;
                position: relative;
            }
            .visible_bg_right img {
                position: absolute;
                right: 0;
                bottom: 0;
            }
            .visible_list {
                padding-left: 0;
            }
            .visible_item,
            .visible_item.is_offset {
                margin-left: 0;
                width: 100%;
            }
            .visible_badge {
                position: absolute;
                transform: none;
                margin-bottom: 12px;
                width: 90px;
                height: 90px;
                font-size: 1.8rem;
                top: 0;
            }
            .visible_card {
                height: 90px;
                margin-left: 45px;
                padding: 0;
                padding-left: 50px;
            }
            .visible_title {
                font-size: 2.4rem;
            }
            .visible_bg img {
                width: 40%;
            }
            .underlayer .sub_title.visible_card_text {
                font-size: 1.8rem;
            }
        }

        .title_under {
            margin-left: 30px;
            margin-bottom: 20px;
        }

        .process_title {
            text-align: center;
        }

        .section_visual_message {
            margin-bottom: 150px;
        }

        .section_visual_message .visible_title {
            margin-bottom: 30px;
            line-height: 1.6;
            font-feature-settings: "palt";
            letter-spacing: 2px;
        }

        .no_wrap {
            white-space: nowrap;
        }

        @media (max-width: 1040px) {
            .section_visual_message .inner {
                flex-direction: column;
            }
            .visible_title {
                font-size: 2rem;
            }
            .no_wrap {
                white-space: wrap;
            }
            .visual_message_art {
                margin-top: 40px;
            }
        }
        /* =========================================
   ■ real_estate_consulting
   ========================================= */

        .real_estate_consulting .first_view_inner {
            background-image: url(../img/real_estate_consulting/fv.png);
            border-radius: 30px;
            background-size: cover;
        }
        /* =========================
   ■ 相談事例＋サポートセクション
   ========================= */

        .section_support {
            margin-top: 80px;
            margin-bottom: 140px;
        }

        .support_head {
            margin-bottom: 30px;
        }

        .support_list {
            gap: 20px;
        }

        .support_item {
            align-items: center;
            background: #fff;
            border-radius: 12px;
            padding: 22px 30px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
        }

        .support_item .purple_circle {
            flex-shrink: 0;
            margin-right: 20px;
        }

        .support_item .text1 {
            margin: 0;
        }
        /* 下向き三角 */

        .support_arrow {
            width: 0;
            height: 0;
            margin: 34px auto 36px;
            border-left: 30px solid transparent;
            border-right: 30px solid transparent;
            border-top: 26px solid #8C86BE;
            opacity: 0.9;
        }

        .support_bottom {
            align-items: center;
            gap: 40px;
            margin-top: 20px;
        }

        .support_left {
            max-width: 560px;
        }

        .underlayer .support_left .sub_title {
            margin-bottom: 18px;
            font-weight: 500;
        }

        .support_left .text1 {
            font-size: 1.4rem;
            line-height: 2.2;
        }

        .support_img {
            width: 320px;
            border-radius: 26px;
            overflow: hidden;
        }

        .support_img img {
            width: 100%;
            height: auto;
            display: block;
        }
        /* SP */

        @media (max-width: 800px) {
            .section_support {
                margin-top: 60px;
                margin-bottom: 100px;
            }
            .support_item {
                padding: 18px 18px;
            }
            .support_item .purple_circle {
                margin-right: 14px;
            }
            .support_bottom {
                flex-direction: column;
                align-items: flex-start;
            }
            .support_left {
                max-width: 100%;
            }
            .support_img {
                width: 100%;
                max-width: 420px;
                margin: 0 auto;
            }
        }
        /* =========================
   ■ 不動産のご相談の仕組み
   ========================= */

        .section_flowbox {
            margin-top: 80px;
            margin-bottom: 140px;
            padding: 0 30px;
        }
        /* 紫の大枠（merit_wrap と同系統） */

        .flowbox_wrap {
            max-width: 1217px;
            margin: 0 auto;
            background: #A2AED8;
            border-radius: 40px;
            padding: 70px 0 60px;
        }

        .flowbox_inner {
            max-width: 1000px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .sub_title.flowbox_head {
            margin-bottom: 30px;
            font-size: 3.2rem;
        }
        /* カード共通 */

        .flowbox_card {
            background: #fff;
            border-radius: 18px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
        }
        /* 上カード */

        .flowbox_card--top {
            width: 100%;
            padding: 38px 30px;
            border-radius: 18px;
        }

        .flowbox_logo {
            align-items: center;
            justify-content: center;
            gap: 18px;
        }

        .flowbox_logo_mark {
            width: 60px;
            height: auto;
        }

        .flowbox_logo_text {
            font-size: 3.6rem;
            color: #313131;
            font-weight: 300;
        }
        /* ▲▼（三角） */

        .flowbox_arrows {
            display: flex;
            justify-content: space-between;
            padding: 0 18%;
            margin: 18px 0 22px;
        }

        .tri_up,
        .tri_down {
            width: 0;
            height: 0;
            border-left: 18px solid transparent;
            border-right: 18px solid transparent;
        }

        .tri_up {
            border-bottom: 16px solid #fff;
        }

        .tri_down {
            border-top: 16px solid #fff;
        }
        /* 中段 */

        .flowbox_mid {
            gap: 30px;
        }

        .flowbox_card--mid {
            width: 48%;
            padding: 34px 34px 30px;
            align-items: center;
            text-align: center;
        }

        .underlayer .flowbox_title {
            margin-top: 5px;
            color: #8C86BE;
            font-weight: 600;
        }

        .flowbox_line {
            margin: 18px 0 18px;
            background-color: #535457;
            opacity: .6;
        }

        .flowbox_text {
            text-align: left;
            font-size: 1.4rem;
            line-height: 2.1;
            padding: 0 30px;
        }
        /* 下段 */

        .flowbox_bottom {
            align-items: center;
            gap: 20px;
        }

        .flowbox_card--small {
            width: 34%;
            padding: 26px 26px;
            align-items: center;
            justify-content: center;
            text-align: center;
        }

        .underlayer .flowbox_small_title {
            color: #8C86BE;
            margin-top: 10px;
            font-weight: 600;
        }
        /* 契約の左右矢印 */

        .flowbox_contract {
            align-items: center;
            justify-content: center;
            gap: 12px;
            width: 32%;
        }

        .underlayer .flowbox_contract_text {
            margin: 0;
            font-size: 2.4rem;
            white-space: nowrap;
            color: #fff;
            font-weight: 600;
        }

        .tri_left,
        .tri_right {
            width: 0;
            height: 0;
            border-top: 12px solid transparent;
            border-bottom: 12px solid transparent;
        }

        .tri_left {
            border-right: 16px solid #fff;
        }

        .tri_right {
            border-left: 16px solid #fff;
        }
        /* 会社丸 */

        .flowbox_company {
            justify-content: center;
            gap: 12px;
            margin-bottom: 10px;
        }

        .flowbox_circle {
            width: 81px;
            height: 81px;
            border-radius: 50%;
            background: #8C86BE;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2.4rem;
            font-weight: 500;
        }
        /* 下の説明 */

        .flowbox_note {
            margin-top: 34px;
            gap: 18px;
            text-align: center;
        }

        .flowbox_note .text1 {
            color: #fff;
            font-size: 1.8rem;
            line-height: 1.8;
            font-weight: 400;
        }
        /* SP */

        @media (max-width: 800px) {
            .flowbox_wrap {
                padding: 50px 0 50px;
                border-radius: 30px;
            }
            .flowbox_inner {
                padding: 0 18px;
            }
            .flowbox_logo_text {
                font-size: 2.6rem;
            }
            .flowbox_arrows {
                padding: 0 10%;
            }
            .flowbox_mid {
                flex-direction: column;
            }
            .flowbox_card--mid {
                width: 100%;
            }
            .flowbox_bottom {
                flex-direction: column;
                align-items: stretch;
            }
            .flowbox_card--small {
                width: 100%;
            }
            .flowbox_contract {
                width: 100%;
                justify-content: center;
                padding: 8px 0;
            }
            .flowbox_note {
                text-align: left;
            }
            .underlayer .first_view_inner h1 {
                font-size: 2.87rem;
            }
        }

        .underlayer.real_estate_consulting .section_visual_message {
            position: relative;
            margin-bottom: 300px;
        }

        .underlayer.real_estate_consulting .visual_message_art {
            position: absolute;
            right: -200px;
            z-index: -100;
        }

        @media (max-width: 800px) {
            .underlayer.real_estate_consulting .section_visual_message {
                margin-bottom: 400px;
            }
        }

        @media (max-width: 800px) {
            .underlayer.real_estate_consulting .visual_message_art {
                width: 70%;
                right: 4%;
                bottom: -240px;
            }
        }
        /* =========================================
   ■ consultation_examples
   ========================================= */

        .consultation_examples .first_view_inner {
            background-image: url(../img/consultation_examples/fv.png);
            width: 100%;
            border-radius: 30px;
            background-size: cover;
        }
        /* =========================================
   ■ underlayer：相談事例（アコーディオン）
   ========================================= */

        .section_qa {
            margin-top: 80px;
            margin-bottom: 100px;
        }
        /* リスト */

        .qa_list {
            gap: 20px;
        }
        /* ヘッダー（Q行） */

        .qa_head {
            width: 700px;
            border: none;
            background: #fff;
            border-radius: 16px;
            padding: 22px 26px;
            box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
            align-items: center;
            justify-content: space-between;
            cursor: pointer;
        }

        .qa_qicon {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: #A2AED8;
            color: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-weight: 100;
            flex-shrink: 0;
            margin-right: 14px;
            font-size: 1.6rem;
        }

        .qa_head3 {
            width: 700px;
        }

        .qa_qtext {
            flex: 1;
            text-align: left;
            color: #313131;
            font-size: 1.6rem;
            line-height: 1.7;
        }
        /* ＋ボタン */

        .qa_plus {
            width: 18px;
            height: 18px;
            position: relative;
            flex-shrink: 0;
            margin-left: 16px;
        }

        .qa_plus::before,
        .qa_plus::after {
            content: "";
            position: absolute;
            left: 50%;
            top: 50%;
            width: 18px;
            height: 2px;
            background: #313131;
            transform: translate(-50%, -50%);
        }

        .qa_plus::after {
            transform: translate(-50%, -50%) rotate(90deg);
        }
        /* 開閉本体：高さアニメーション */

        .qa_body {
            overflow: hidden;
            max-height: 0;
            transition: max-height .35s ease;
        }
        /* 開いた時 */

        .qa_item.is-open .qa_plus::after {
            transform: translate(-50%, -50%) rotate(0deg);
        }

        .qa_item.is-open .qa_head {
            box-shadow: 0 8px 20px rgba(0, 0, 0, .10);
        }
        /* 中身の背景（画像のグレー面） */

        .qa_body_inner {
            margin-top: 14px;
            background: #efefef;
            padding: 28px;
            gap: 28px;
            align-items: flex-start;
        }
        /* 左：プロフィール */

        .qa_profile {
            max-width: 352px;
            background: #fff;
            border-radius: 18px;
            padding: 24px;
            box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
        }

        .qa_profile_head {
            align-items: center;
            gap: 10px;
            padding-bottom: 14px;
        }

        .qa_avatar img {
            width: 100%;
            height: 100%;
        }

        .qa_name {
            color: #8C86BE;
            font-weight: 600;
            font-size: 1.8rem;
            text-align: center;
        }

        .qa_profile_list {
            gap: 30px;
            margin-top: 14px;
        }

        .text1.qa_labe2 {
            line-height: 0;
        }
        /* 右：内容 */

        .qa_contents {
            flex: 1;
            gap: 18px;
        }

        .qa_box {
            background: #fff;
            border-radius: 18px;
            padding: 22px 26px;
            box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
        }

        .qa_box_primary {
            background: #A2AED8;
        }

        .sub_title.qa_box_title {
            font-size: 2.0rem;
            margin-bottom: 10px;
            color: #8C86BE;
            font-weight: 600;
        }

        .underlayer .text1.qa_box_text {
            margin-top: 14px;
            color: #8C86BE;
            font-weight: 600;
        }

        .underlayer .text1.qa_box_text_2 {
            color: #fff;
            font-weight: 300;
        }

        .qa_source .text1 {
            color: #fff;
            opacity: .95;
        }

        .qa_source p {
            margin-top: 30px;
        }

        .qa_source ul {
            margin-top: 0;
        }
        /* SP */

        @media (max-width: 800px) {
            .qa_body_inner {
                flex-direction: column;
                padding: 18px;
            }
            .qa_profile {
                width: 100%;
            }
            .underlayer .qa_head {
                padding: 18px 16px;
                width: 100%;
                margin: 0 auto;
            }
            .qa_qtext {
                font-size: 1.4rem;
            }
        }
        /* FAQ */

        .section_faq {
            margin: 120px auto;
            margin-bottom: 400px;
        }

        .faq_head {
            align-items: center;
            gap: 20px;
            margin-bottom: 40px;
        }

        .faq_sub {
            color: #898989;
        }

        .faq_list {
            gap: 20px;
        }
        /* 質問（Q） */

        .faq_q {
            width: 600px;
            border: none;
            background: #fff;
            border-radius: 18px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
            padding: 22px 28px;
            align-items: center;
            cursor: pointer;
        }

        .faq_icon_q {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: #A2AED8;
            color: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            margin-right: 16px;
        }

        .faq_q_text {
            flex: 1;
            font-weight: 500;
            text-align: left;
        }

        .faq_plus {
            font-size: 2.2rem;
            line-height: 1;
            color: #313131;
            margin-left: 16px;
        }
        /* 回答（A） */

        .faq_a {
            display: none;
            margin-top: 14px;
            background: #fff;
            border-radius: 18px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
            padding: 22px 28px;
            width: 600px;
        }

        .faq_a_inner {
            align-items: flex-start;
            gap: 16px;
        }

        .faq_icon_a {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: #E96A7A;
            /* ピンク寄せ */
            color: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .faq_a_text {
            margin: 0;
            text-align: left;
        }
        /* 開いてる状態 */

        .faq_item.is_open .faq_a {
            display: block;
        }

        .faq_item.is_open .faq_plus {
            content: "";
        }

        .faq_item {
            transition: max-height .35s ease;
        }
        /* SP */

        @media (max-width: 800px) {
            .faq_q,
            .faq_a {
                padding: 18px 16px;
                width: 100%;
                margin: 0 auto;
                margin-top: 0;
            }
            .faq_icon_q,
            .faq_icon_a {
                width: 32px;
                height: 32px;
            }
            .faq_plus {
                font-size: 2rem;
            }
        }
        /* =========================================
   ■ company
   ========================================= */

        .company .first_view_inner {
            background-image: url(../img/company/fv.png);
            width: 100%;
            border-radius: 30px;
            background-size: cover;
        }

        .company.underlayer .section1 {
            margin-bottom: 0;
        }
        /* セクション全体 */

        .section_company {
            padding: 120px 0;
        }

        .section_company .sub_title {
            margin-bottom: 40px;
        }

        .section_company .inner {
            max-width: 1000px;
            margin: 0 auto;
            padding: 0 20px;
        }
        /* タイトル */

        .section_company .section_title {
            font-size: 2.4rem;
            font-weight: 500;
            margin-bottom: 50px;
        }
        /* テーブル全体 */

        .company_table {
            background: #fff;
            border-radius: 18px;
            padding: 40px 30px 60px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
        }
        /* 行 */

        .company_row {
            display: grid;
            grid-template-columns: 180px 1fr;
            column-gap: 40px;
            margin-bottom: 28px;
        }
        /* 左（項目） */

        .company_row dt {
            position: relative;
            font-weight: 500;
            padding-bottom: 12px;
            line-height: 1.8;
            width: 194px;
        }
        /* 左の紫ライン */

        .company_row .line_left {
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 2px;
            background: #9fa8da;
            margin-top: 10px;
        }
        /* 右（内容） */

        .company_row dd {
            position: relative;
            margin: 0;
            padding-bottom: 12px;
            line-height: 1.8;
            width: 100%;
        }
        /* 右の黒ライン（短め） */

        .company_row .line_right {
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 1px;
            background: #707070;
            margin-top: 10px;
        }

        .company_row .text1 {
            margin-bottom: 10px;
            padding-left: 10px;
        }
        /* 最終行の余白調整 */

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

        @media (max-width: 800px) {
            .company_table {
                padding: 30px 20px;
            }
            .company_row {
                grid-template-columns: 1fr;
                row-gap: 6px;
            }
            .company_row .line_left {
                width: 80px;
            }
            .company_row .line_right {
                width: 100%;
            }
            .company_row .text1 {
                margin-bottom: 0px;
                padding-left: 30px;
            }
        }
        /* FD宣言：1個アコーディオン */

        .fd_list {
            margin: 0;
        }
        /* 画像の感じで左寄せ */

        .fd_item {
            width: 100%;
        }

        .fd_head {
            width: 400px;
            border: 0;
            cursor: pointer;
            text-align: left;
            background: #fff;
            border-radius: 12px;
        }

        .fd_head_text {
            color: #313131;
        }

        .fd_plus {
            font-size: 2.2rem;
            line-height: 1;
            margin-left: 20px;
        }
        /* 開いた本文（下の長文） */

        .fd_body {
            padding-top: 20px;
        }

        .fd_body_inner.text1 p {
            margin: 30px 0 18px;
            padding-left: 10px;
        }

        .section_fd {
            margin-bottom: 400px;
        }

        .section_fd .inner {
            padding: 0 20px;
        }

        .company .fd_list {
            width: 100%;
            gap: 20px;
        }

        .news_list.fd_list {
            max-width: 100%;
        }

        .underlayer .company .news_item {
            max-width: 600px;
        }

        @media (max-width: 800px) {
            .underlayer .fd_head {
                width: 100%;
                margin: 0 auto;
            }
            .fd_body_inner.text1 {
                padding: 0 10px;
            }
        }
        /* =========================================
   ■ contact
   ========================================= */

        .contact_page .first_view_inner {
            background-image: url(../img/contact/fv.png);
            width: 100%;
            border-radius: 30px;
            background-size: cover;
        }
        /* セクション背景 */

        .section_contact {
            background: #aeb9de;
            padding: 80px 20px;
        }
        /* 白いカード */

        .contact_inner {
            background: #fff;
            border-radius: 24px;
            padding: 60px 20px 80px;
            max-width: 900px;
            margin: 0 auto;
        }
        /* タイトル */

        .section_title.center {
            text-align: center;
            color: #8c86be;
            margin-bottom: 50px;
        }
        /* フォーム */

        .contact_form {
            max-width: 520px;
            margin: 0 auto;
        }
        /* 各項目 */

        .form_group {
            margin-bottom: 28px;
        }

        .form_label {
            display: block;
            font-size: 14px;
            margin-bottom: 8px;
            color: #313131;
        }

        .required {
            color: #e45555;
            font-size: 13px;
        }
        /* input / textarea */

        .contact_form input[type="text"],
        .contact_form input[type="email"],
        .contact_form input[type="tel"],
        .contact_form textarea {
            width: 100%;
            padding: 12px 14px;
            border: 1px solid #ccc;
            border-radius: 6px;
            font-size: 14px;
        }

        .contact_form textarea {
            min-height: 140px;
            resize: vertical;
        }
        /* チェックボックス */

        .checkbox_group label {
            display: block;
            margin-bottom: 8px;
            font-size: 14px;
        }
        /* 個人情報 */

        .privacy_check {
            font-size: 14px;
        }

        .privacy_check a {
            color: #8c86be;
            text-decoration: underline;
        }
        /* 送信ボタン */

        .submit_btn {
            background: #8c86be;
            color: #fff;
            border: none;
            padding: 14px 60px;
            font-size: 15px;
            border-radius: 2px;
            cursor: pointer;
        }

        .submit_btn:hover {
            opacity: 0.85;
        }
        /* 中央寄せ */

        .center {
            text-align: center;
        }

        .contact_page .section_visual_message {
            height: 140px;
        }
        /* SP */

        @media (max-width: 800px) {
            .contact_inner {
                padding: 40px 16px 60px;
            }
            .submit_btn {
                width: 100%;
            }
            .contact_page .section_visual_message {
                height: 180px;
            }
        }
        /* =========================================
   ■ privacy_policy
   ========================================= */

        .privacy_policy .first_view_inner,
        .news .first_view_inner {
            background-image: url(../img/privacy_policy/fv.png);
            width: 100%;
            border-radius: 30px;
            background-size: cover;
        }

        .privacy_policy .section_visual_message {
            height: 400px;
        }

        .section_privacy {
            margin-bottom: 340px;
        }

        .underlayer .text1.m_title {
            font-size: 2rem;
            font-weight: 400;
            margin-top: 60px;
            margin-bottom: 40px;
        }

        .grey_box {
            background-color: #EDEDED;
            border-radius: 15px;
            width: 95%;
            padding: 20px 60px 40px;
            margin: 20px auto;
        }

        .grey_box a {
            color: inherit;
            text-decoration: none;
        }

        .grey_box a:hover {
            color: #6A5ACD;
        }

        .title .abc,
        .abc.title {
            font-size: 4.3rem;
        }

        .sub_title.process_title {
            font-size: 2.0rem;
        }

        .section3 .box2_left h2 {
            padding-top: 20px;
        }

        .news .inner {
            display: flex;
            flex-direction: column;
            margin: 0 auto;
            max-width: 880px;
            margin-bottom: 330px;
        }

        .underlayer .news .inner .section1 {
            margin-bottom: 0;
        }

        .category_list_box {
            max-width: 800px;
            margin: 0 auto 80px;
            width: 100%;
        }

        .category_list_box dl {
            border-top: 1px solid #D9D9D9;
            border-bottom: 1px solid #D9D9D9;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
        }

        .category_list_box dl dt:last-of-type {
            border-bottom: none;
        }

        .category_list_box dl dt {
            padding: 40px 0 41px;
            font-family: "Gabarito", sans-serif;
            font-weight: 700;
            line-height: 1.2;
            width: 30%;
            border-bottom: 1px solid #D9D9D9;
            font-size: 1.4rem;
        }

        .category_list_box dl dt .news-cat {
            background-color: #000;
            font-weight: 500;
            font-size: 1.2rem;
            line-height: 100%;
            letter-spacing: 0.1em;
            color: #fff;
            padding: 5px 10px;
            margin-left: 24px;
            display: inline-block;
        }

        .category_list_box dl dd:last-of-type {
            border-bottom: none;
        }

        .category_list_box dl dd {
            padding: 40px 0;
            width: 70%;
            line-height: 160%;
            letter-spacing: 0.1em;
            border-bottom: 1px solid #D9D9D9;
            font-size: 1.4rem;
            white-space: nowrap;
            /* 横幅のMAXに達しても改行しない */
            overflow: hidden;
            /* 溢れた部分を隠す */
            text-overflow: ellipsis;
            /* 「…」と省略 */
            -webkit-text-overflow: ellipsis;
            /* Safari用 */
            -o-text-overflow: ellipsis;
            /* Opera用 */
        }

        .category_list_box dl dd a {
            color: #000000;
        }

        .c-pagination {
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
        }

        .c-page-item a {
            background-color: #000;
            color: #fff;
            padding: 10px 17px;
            margin: 0 7px;
            display: block;
            text-align: center;
        }

        .c-page-item a {
            color: #fff;
        }

        .c-page-item .current {
            background-color: #8C86BE;
            color: #fff;
            padding: 10px 17px;
            margin: 0 7px;
            display: block;
            text-align: center;
        }

        .c-page-item a.prev {
            width: 120px;
            background-color: #9F9F9F;
        }

        .c-page-item a.next {
            width: 120px;
            background-color: #A2AED8;
        }

        .single_news_txtbox {
            max-width: 800px;
            margin: 130px auto 120px;
        }

        .single_news_txtbox .day {
            font-size: 1.4rem;
            letter-spacing: 0.15em;
            line-height: 100%;
            font-weight: 700;
            font-family: "Gabarito", sans-serif;
        }

        .single_news_txtbox .ttl {
            margin-top: 10px;
            font-size: 2.5rem;
            letter-spacing: 0.1em;
            line-height: 160%;
            margin-bottom: 26px;
            font-weight: 700;
        }

        .single_news_txtbox .single_news_txtbox_txt {
            font-size: 1.6rem;
            line-height: 2.7;
            letter-spacing: 0.1em;
            margin-top: 27px;
            font-weight: 500;
        }

        .single-nav-wrap {
            max-width: 500px;
            margin: 80px auto 80px;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            position: relative;
            width: 100%;
        }

        .single-nav-wrap .single-nav-prev {
            position: absolute;
            left: 0px;
        }

        .single-nav-wrap .single-nav-center {
            margin: 0;
        }

        .single-nav-wrap .single-nav-next {
            position: absolute;
            right: 0;
            padding: 19px 0;
        }

        .single-nav-wrap a {
            text-decoration: none;
            color: #000;
            letter-spacing: 0.15em;
            font-size: 14px;
            transition: opacity 0.3s;
            font-family: "Gabarito", sans-serif;
            font-weight: 600;
            line-height: 100%;
            padding: 19px 40px;
            display: block;
            border: 1px solid;
        }

        .insurance-service .section_comment {
            margin-bottom: 300px;
            position: relative;
        }

        @media (max-width: 800px) {
            .underlayer .text1.m_title {
                font-size: 1.8rem;
            }
            .section_privacy {
                padding: 0 20px;
            }
            .grey_box {
                background-color: #EDEDED;
                border-radius: 15px;
                width: 95%;
                padding: 20px;
                margin: 20px auto;
            }
            p br {
                display: none;
            }
            br.sp_none {
                display: none;
            }
            br.pc_none {
                display: block;
            }
            .insurance-service .section5 h2 {
                margin-bottom: 20px;
                font-size: 20px;
            }
            .news_list li a,
            .news_list li .news_item {
                padding: 15px 15px;
            }
            .insurance-service .news_list .news_item .purple_circle {
                margin-right: 15px;
            }
            .underlayer .sub_title {
                font-size: 2rem;
            }
            .life_tag {
                width: 100%;
                padding: 10px 20px;
                gap: 5px;
            }
            .tag_big {
                width: 100%;
            }
            .life_tags {
                display: flex;
                flex-direction: column;
                gap: 10px 30px;
            }
            .life_dot {
                width: 14px;
                height: 14px;
                background-color: #A2AED8;
                border-radius: 50%;
                display: inline-block;
                /* ← これで flex の影響を受けなくなる */
                flex-shrink: 0;
                /* ← これで潰れない */
            }
            .life_inner {
                padding-left: 0px;
            }
            .life_right::before {
                display: none;
            }
            .life_right {
                padding: 0 0 20px 0;
            }
            .section_lifestage {
                margin-bottom: 60px;
            }
            .merit_wrap .merit_title {
                margin-bottom: 30px;
                text-align: center;
                padding: 0 10px;
            }
            .merit_item {
                max-width: 320px;
                width: 100%;
                padding: 10px;
                margin: 5px;
            }
            .merit_line {
                margin: 10px 0;
            }
            .merit_list {
                gap: 10px;
            }
            .merit_icon {
                width: 40%;
            }
            .underlayer .text1.merit_text {
                margin-top: 0;
            }
            .merit_wrap {
                border-radius: 20px;
            }
            .process_step {
                height: 35px;
                margin: 0 0 -18px 0;
                z-index: 1;
                position: relative;
            }
            .process_step span {
                font-size: 17px;
            }
            .process_text {
                padding-left: 0;
            }
            .underlayer .section1 {
                margin-bottom: 70px;
            }
            .comment_list {
                gap: 12px;
                margin-bottom: 25px;
            }
            .comment_item {
                padding: 12px 15px;
            }
            .section_diff {
                margin: 60px auto 60px;
            }
            .diff_icon img {
                width: 72px;
                height: 72px;
                display: block;
            }
            .diff_list {
                padding-left: 0;
            }
            .diff_card {
                min-height: auto;
                padding: 15px 20px;
            }
            .diff_jar {
                width: 70px;
                bottom: -56px;
            }
            .diff_bottom {
                padding: 0px 20px 40px;
            }
            .diff_bottom_big {
                margin: 0 0 10px;
            }
            .underlayer .section_bigcost .sub_title {
                font-size: 2rem;
                margin-bottom: 0;
                text-align: left;
            }
            .diff_inner .title {
                text-align: center;
                font-size: 20px;
            }
            .underlayer .sub_title.chance_title {
                font-size: 20px;
            }
            .chance_icon {
                margin-bottom: 10px;
                width: 65px;
            }
            .chance_object {
                width: 150px;
                align-self: flex-end;
                margin: -60px 0 0 0;
            }
            .visible_badge {
                position: absolute;
                transform: none;
                margin-bottom: 12px;
                width: 60px;
                height: 60px;
                font-size: 1.2rem;
                top: 15px;
                left: -20px;
            }
            .visible_card {
                height: 90px;
                margin-left: 28px;
                padding: 10px 12px 10px 22px;
            }
            .visible_list {
                gap: 10px;
            }
            .chance_item {
                width: min(360px, 100%);
                padding: 10px 22px 15px;
            }
            .chance_list {
                gap: 12px;
            }
            h2 span {
                margin-left: 0;
            }
            .support_item {
                padding: 12px 18px;
            }
            .support_list {
                gap: 12px;
            }
            .flowbox_card--top {
                padding: 18px 30px;
            }
            .flowbox_icon {
                width: 65px;
            }
            .flowbox_card--mid {
                width: 100%;
                padding: 15px;
            }
            .flowbox_note .text1 {
                font-size: 1.6rem;
            }
            .section_flowbox {
                margin-bottom: 80px;
            }
            .flowbox_small_icon {
                width: 65px;
            }
            .flowbox_text {
                padding: 0;
            }
            .visible_title {
                font-size: 2.4rem;
            }
            .section2_ul li {
                gap: 10px;
            }
            .title.abc {
                padding-top: 0;
                margin-bottom: 20px;
                line-height: 1;
            }
            .section4 .inner {
                gap: 20px;
                flex-direction: column;
            }
            .flex_row.s_b.box1 {
                margin-top: 55px;
            }
            .news_text {
                font-size: 1.4rem;
            }
            .footer_box {
                padding-top: 50px;
            }
            .footer .header_list {
                margin-top: 70px;
            }
            .footer_icon .header_logo_box .header_logo {
                font-size: 3rem;
            }
            .circle_title span {
                font-size: 1.6rem!important;
            }
            .underlayer .first_view_inner {
                height: 60vw;
                background-position: top;
            }
            .underlayer .flex_row.s_b.box1 {
                margin-top: 25px;
            }
            .title .abc,
            .abc.title {
                font-size: 3.8rem;
                white-space: nowrap;
                line-height: 1;
            }
            .life_planning .section_comment {
                margin-bottom: 50px;
            }
            .section_process .title {
                line-height: 1;
            }
            .section_process .title_under {
                margin-left: 0;
                margin-bottom: 20px;
            }
            .sub_title.flowbox_head {
                text-align: center;
            }
            .qa_plus::before,
            .qa_plus::after {
                width: 14px;
                height: 1px;
            }
            .faq_item.is_open .faq_a {
                display: block;
                margin: 20px 0 30px 0;
            }
            .section_company .sub_title {
                margin-bottom: 30px;
                padding: 0 10px;
            }
            .company_row .text1 {
                margin-bottom: 10px;
                padding-left: 10px;
            }
            .single-nav-wrap .single-nav-prev {
                top: 80px;
                padding: 0;
            }
            .single-nav-wrap .single-nav-next {
                top: 80px;
                padding: 0;
            }
            .first_view h1 {
                padding-top: 280px;
                margin-left: 15px;
            }
        }

        @media (max-width: 500px) {
            .section_comment {
                margin-bottom: 420px;
            }
            .underlayer {
                margin-bottom: 60px;
            }
            .insurance-service .section_comment {
                margin-bottom: 430px;
                position: relative;
            }
        }

        @media (min-width: 1100px) {
            .fade-bg {
                padding: 30px;
                margin-top: 20px;
                margin-bottom: 19vw;
            }
        }

        main {
            overflow: hidden;
        }

        .loading {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            z-index: 9999;
            background-color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            animation: fadeOut 1.0s 1.5s forwards;
        }

        @keyframes fadeOut {
            0% {
                opacity: 1;
            }
            100% {
                opacity: 0;
                visibility: hidden;
            }
        }

        .loading__logo {
            opacity: 0;
            animation: logo_fade 1s 0.5s forwards;
            width: 175px;
        }

        @keyframes logo_fade {
            0% {
                opacity: 0;
                transform: translateY(20px);
            }
            60% {
                opacity: 1;
                transform: translateY(0);
            }
            100% {
                opacity: 0;
            }
        }
        /* section2 スライダー 次へボタン（仮） */

        .s2-next-btn {
            position: absolute;
            top: 12px;
            right: 12px;
            width: 63px;
            height: 63px;
            border-radius: 50%;
            border: none;
            background-color: #A2AED8;
            /* ← 指定色 */
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
            cursor: pointer;
            z-index: 5;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            line-height: 1;
        }
        /* 押した感 */

        .s2-next-btn:active {
            transform: scale(0.95);
        }
        /* section2 ドット */

        .s2-dots {
            display: flex;
            justify-content: center;
            gap: 10px;
            margin-top: 10px;
        }

        .s2-dot {
            background: none;
            border: none;
            font-size: 10px;
            cursor: pointer;
            opacity: 0.3;
            line-height: 1;
        }

        .s2-dot.is-active {
            color: #A2AED8;
            /* ← 指定色 */
            transform: translateY(-1px);
        }

        .s2-dot.is-active {
            opacity: 1;
        }
        /* section2：横スクロールバー非表示（挙動は残す） */

        .section2_ul {
            -ms-overflow-style: none;
            /* IE / Edge */
            scrollbar-width: none;
            /* Firefox */
        }

        .section2_ul::-webkit-scrollbar {
            display: none;
            /* Chrome / Safari / iOS */
        }

        @media (min-width: 801px) {
            br.pc_hide,
            .pc_hide {
                display: none;
            }
        }

        @media (max-width: 800px) {
            br.sp_hide,
            .sp_hide {
                display: none;
            }
            br.pc_hide,
            .pc_hide {
                display: block;
                line-height: 0;
            }
            span.pc_hide {
                display: contents;
            }
        }

        .blr_set {
            filter: blur(10px);
            transition: all 0.8s ease;
        }

        .blr_reset {
            filter: blur(0px);
        }
        /* ↓ 共通の記述 */
        /* 全体 */

        body.top .main {
            opacity: 0;
            pointer-events: none;
        }

        body.appear main {
            animation-name: PageAnime-content;
            animation-duration: 0.55s;
            animation-delay: 0.55s;
            animation-fill-mode: forwards;
            opacity: 0;
            pointer-events: auto;
        }

        .animation main {
            opacity: 1;
            pointer-events: auto;
        }

        @keyframes PageAnime-content {
            0% {
                opacity: 0;
            }
            100% {
                opacity: 1;
            }
        }

        .gradation .animation-bg {
            --color01: 255, 255, 255;
            background: linear-gradient(180deg, rgba(var(--color01), 1) 0%, rgba(var(--color01), 0) 100%);
            background-size: 200% 200%;
            content: "";
            position: fixed;
            z-index: 999;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            animation-name: PageAnime-gradation;
            animation-duration: 1s;
            animation-delay: 1s;
            animation-timing-function: ease-in-out;
            animation-fill-mode: forwards;
            pointer-events: none;
        }

        @keyframes PageAnime-gradation {
            0% {
                background-position: 100% 0;
            }
            100% {
                background-position: 100% 100%;
            }
        }

        .fade-bg {
            padding: 30px;
            margin-top: 20px;
        }

        .fade-bg__inner {
            position: relative;
            z-index: -100;
        }

        .fade-bg__inner div {
            opacity: 0;
            transition: 4s;
        }

        .fade-bg__inner div.show-img {
            opacity: 1;
        }

        .fade-bg__inner .bg-img {
            position: absolute;
            top: 50vh;
            left: 50%;
            transform: translate(-50%, -50%);
            max-height: initial;
            max-width: initial;
            min-height: 100vh;
            width: 100%;
            object-fit: cover;
        }

        @media (max-width: 800px) {
            .fade-bg {
                padding: 0;
                margin-top: 0;
            }
            .company_row dt {
                padding-bottom: 0;
                width: auto;
            }
            .section_privacy .text1 {
                MARGIN: 25PX 0;
            }
            .single_news_txtbox {
                margin: 10px auto 120px;
            }
            .single_news_txtbox .single_news_txtbox_txt P {
                font-size: 1.4rem;
                line-height: 2.0;
            }
        }
        /* =========================
  THANKS PAGE
========================= */

        .thanks_page .section_thanks {
            padding: clamp(40px, 5vw, 80px) 0;
        }

        .thanks_inner {
            width: min(1100px, 92%);
            margin: 0 auto;
        }

        .thanks_head {
            margin-bottom: clamp(20px, 3vw, 40px);
        }

        .thanks_head .title {
            line-height: 1.2;
            margin-bottom: 14px;
            text-align: center;
        }

        .thanks_page .abc.title .span_grey {
            margin: 16px 0;
        }

        .thanks_head .text1 {
            line-height: 1.9;
            opacity: 0.95;
            text-align: center;
        }

        .thanks_cards {
            gap: clamp(14px, 2vw, 22px);
            align-items: stretch;
            text-align: center;
        }

        .thanks_card {
            flex: 1;
            padding: clamp(18px, 2.5vw, 28px);
            border-radius: 18px;
            background: #fff;
        }

        .thanks_card_title {
            margin-bottom: 10px;
        }

        .thanks_card .text1 {
            line-height: 1.9;
        }

        .thanks_card_primary {
            background: #1e3a8a;
            /* deep blue */
        }

        .thanks_tel {
            font-size: clamp(22px, 2.8vw, 34px);
            line-height: 1.2;
            margin: 10px 0 10px;
        }

        .thanks_tel a {
            color: #fff;
            text-decoration: none;
        }

        .thanks_tel a:hover {
            opacity: 0.9;
        }

        .thanks_contact_label {
            opacity: 0.9;
        }

        .thanks_link_row {
            margin-top: 16px;
        }

        .thanks_btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            width: min(260px, 100%);
            padding: 12px 16px;
            border-radius: 999px;
            background: #ffffff;
            color: #1e3a8a;
            text-decoration: none;
            font-weight: 700;
        }

        .thanks_btn:hover {
            opacity: 0.9;
        }

        .thanks_note {
            margin-top: clamp(14px, 2.5vw, 22px);
            padding: clamp(14px, 2.2vw, 18px);
            border-radius: 14px;
            background: #f6f7fb;
        }

        .thanks_note .text1 {
            line-height: 1.8;
            color: #333;
        }
        /* =========================
  RESPONSIVE
========================= */

        @media (max-width: 900px) {
            .thanks_cards {
                flex-direction: column;
            }
            .thanks_card {
                border-radius: 16px;
            }
        }
        /*reCAPTCHAのバッジを非表示に*/

        .grecaptcha-badge {
            visibility: hidden;
        }