/* ========================================
   index.css - 統合CSSファイル
   ドコモの自動車保険LP
======================================== */

/* ========================================
   共通コンポーネントスタイル
   ドコモの自動車保険 LP
======================================== */

/* リセット */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
    line-height: 1.6;
    color: #333;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-color: #ffffff;
    width: 100%;
    margin: 0 auto;
}

html {
    font-size: 4.27vw;
}

img {
    max-width: 100%;
    height: auto;
}

.sp {
    display: block !important;
}

.pc {
    display: none !important;
}

@media (min-width: 768px) {
    body {
        min-width: 1100px;
    }

    html {
        font-size: 16px;
    }

    .sp {
        display: none !important;
    }

    .pc {
        display: block !important;
    }
}

.btn-primary {
    background: linear-gradient(135deg, #E60012 0%, #B30000 100%);
    color: #fff;
    box-shadow: 0 1.07vw 3.2vw rgba(230, 0, 18, 0.3);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 1.6vw 4.27vw rgba(230, 0, 18, 0.4);
}

/* リンク */
.link {
    color: #E60012;
    text-decoration: underline;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.link:hover {
    opacity: 0.7;
}


/* 共通の左右paddingクラス */
.container-padding {
    padding-left: 4vw;
    padding-right: 4vw;
}


/* セクション大枠共通スタイル */
.section-wrapper {
    width: 100%;
    overflow-x: clip;
}

.section-wrapper--bg-light {
    background: #F0ECE6;
}

.section-wrapper--bg-beige {
    background: #f8f5f2;
}

.section-wrapper--bg-light-alt {
    background: #f0ece6;
}

.section-wrapper--bg-orange-strong {
    background: #FF7500;
}

/* PC */
@media (min-width: 768px) {
    .container-padding {
        padding-left: 0;
        padding-right: 0;
    }

    .block-inner {
        padding: 0 60px;
    }
}

/* accordion */
.accordion__type1 {
    background: #fff;
    border: 0.8vw solid #000;
    border-radius: 3.2vw;
    overflow: hidden;
    box-shadow: 0px 0.8vw 0px 0px #000;
}

.accordion__type1 .accordion__title {
    width: 100%;
    padding: 3.2vw 4vw;
    background: #fff;
    border: none;
    cursor: pointer;
    font-weight: bold;
    text-align: center;
}

.accordion__title {
    position: relative;
    transition: background 0.3s ease;
}

.accordion__title::before,
.accordion__title::after {
    content: '';
    position: absolute;
    border-radius: 9999px;
    background-color: #000;
    width: 3.2vw;
    height: 0.533333vw;
    top: 0;
    bottom: 0;
    right: 4vw;
    margin: auto 0;
    transition: 0.25s;
}


.accordion__title::after {
    transform: rotate(90deg);
}

.accordion__title.open::after {
    transform: none;
}

.accordion__inner {
    padding: 3vw 4vw 5.33vw;
}

@media (min-width: 768px) {
    .accordion__type1 {
        border: 3.45px solid #000;
        border-radius: 13.81px;
        overflow: hidden;
        box-shadow: 0px 3px 0px 0px #000;
    }

    .accordion__type1 .accordion__title {
        padding: 23px 27.6px;
        font-size: 18px;
    }

    .accordion__title::before,
    .accordion__title::after {
        width: 15px;
        height: 2.88px;
        right: 27px;
    }

    .accordion__inner {
        padding: 8px 24px 40px;
    }
}

/* ========================================
   sp_header.css
   ヘッダーセクション
======================================== */

.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: #fff;
    z-index: 1000;
    box-shadow: 0 0.53vw 1.07vw rgba(0, 0, 0, 0.05);
}

/* ロゴエリア */
.header__logo-wrapper {
    background: #FFF;
    padding: 1.6vw 2.93vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 14.29vw;
}

.header__logo {
    display: flex;
    align-items: center;
    width: 22.4vw;
    height: 10.02vw;
}

.header__logo-img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* SPロゴ表示、PCロゴ非表示（デフォルト） */
.header__logo-img--mobile {
    display: block;
}

.header__logo-img--desktop {
    display: none;
}

/* .hamburger_menu---------------------------------------- */
.hamburger_menu {
    background-color: #f8f5f2;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 100vw;
    height: 100vh;
    z-index: 10000;
    box-sizing: border-box;
    padding: 21.2vw 4vw;
}

img.hamburger_open {
    width: 6.4vw;
}

img.hamburger_close {
    width: 4.66666vw;
    position: absolute;
    top: 5.86666vw;
    right: 4.93333vw;
    cursor: pointer;
}

.hamburger_menu a {
    text-decoration: none;
}

.hamburger_menu ul {
    margin-top: 8.53333vw;
}

.hamburger_menu li {
    border-top: 0.53305vw solid #dbd6d1;
    list-style: none;
}

.hamburger_menu li:last-of-type {
    border-bottom: 0.53305vw solid #dbd6d1;
}

.hamburger_menu li a {
    color: #585858;
    font-size: 4.26666vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6.66666vw 4vw;
}

.header__menu-icon {
    width: 6.4vw;
    height: 0.53vw;
    background-color: #000;
    display: block;
    transition: all 0.3s ease;
}

.icon_modal {
    width: 6.6631vw;
}


/* ナビゲーション（PCのみ） */
.header__nav {
    display: none;
}

/* PC */
@media (min-width: 768px) {
    .header {
        background: #FFF;
    }

    .header__logo-wrapper {
        padding: 17px 0;
        height: 72px;
        max-width: 1100px;
        margin: auto;
    }

    .header__logo {
        width: 189.79px;
        height: 37.58px;
    }

    /* PCロゴ表示、SPロゴ非表示 */
    .header__logo-img--mobile {
        display: none;
    }

    .header__logo-img--desktop {
        display: block;
    }

    .header__nav-wrapper {
        background: #fff;
        border-top: 1px solid #e0e0e0;
    }

    .header__nav {
        display: flex;
        max-width: 1100px;
        margin: auto;
        padding: 0;
    }

    .header__nav-link {
        position: relative;
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 15px 20px;
        color: #333333;
        font-weight: 700;
        padding: 17px;
        font-size: 16px;
        gap: 10px;
        width: 275px;
        text-align: center;
    }

    .header__nav-link::before {
        content: '';
        position: absolute;
        width: 1px;
        height: 22px;
        background-color: #000;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        background-size: 100%;
    }

    .header__nav-link:first-of-type::after {
        content: '';
        position: absolute;
        width: 1px;
        height: 22px;
        background-color: #000;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        background-size: 100%;
    }

    .header__nav-link span {
        position: relative;
        padding-right: 38px;
    }

    .header__nav-link span::after {
        content: '';
        position: absolute;
        width: 20px;
        height: 20px;
        background-image: url(../images/icon_yajirushi2.png);
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        background-size: 100%;
    }
}

/* ========================================
   sp_kv.css
   キービジュアルセクション
======================================== */

.kv {
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
    padding-top: 14.13vw;
}

/* KVヒーローエリア */
.kv__hero {
    width: 100%;
    height: auto;
    overflow: hidden;
    display: block;
}

.kv__hero-img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

/* KVコンテンツエリア */
.kv__content {
    padding: 3.2vw 0 6.4vw 0;
    background-image: url(../images/background_dot_sp.png);
    background-position: top;
    background-size: 100%;
}

.kv__subtitle {
    font-size: 4.27vw;
    font-weight: 700;
    color: #fff;
    text-align: center;
    line-height: 1.4;
    padding: 0 8vw;
}

.kv__savings-deco {
    display: block;
    width: 92vw;
    margin: auto;
}

/* CTAエリア */
.kv__cta-area {
    padding: 0 4vw;
    display: flex;
    flex-direction: column;
    gap: 6.4vw;
    margin-top: 3.2vw;
}

.kv__cta-card {
    background: #fff;
    border-radius: 4.27vw;
    padding: 3.5vw 4vw;
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
    align-items: center;
}

/* SP版: 新しい要素は非表示 */
.kv__cta-card-savings {
    display: none;
}

.kv__cta-card-button-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.2vw;
    width: 100%;
}

.kv__cta-discount {
    font-size: 4.8vw;
    font-weight: 700;
    color: #000;
    text-align: center;
    line-height: 1.4;
}

.kv__cta-discount-price {
    color: #F55600;
}

.kv__cta-discount-note {
    font-size: 3.1vw;
}

.kv__cta-btn {
    width: 76vw;
    height: 14.4vw;
    background: #266FD0;
    border: 0.4vw solid #000;
    border-radius: 27.2vw;
    color: #fff;
    font-size: 4.27vw;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.13vw;
    text-decoration: none;
    box-shadow: 0px 0.8vw 0px 0px #000;
    transition: all 0.3s ease;
    position: relative;
}

.kv__cta-btn:hover {
    transform: translateY(2px);
    box-shadow: 0px 1px 0px 0px #000;
}

.kv__cta-btn-icon {
    width: 6.4vw;
    height: 6.4vw;
}

/* 注意事項 */
.kv__notes>.kv__notes-item p,
.kv__notes>.kv__notes-item .kv__notes-label,
.kv__notes>.kv__notes-item p .link {
    color: #FFF;
}

.kv__notes>.kv__notes-item+.kv__notes-item {
    margin-top: 2.13vw;
}

.kv__notes-title {
    font-size: 3.73vw;
    font-weight: 700;
    color: #000;
    letter-spacing: 0.15vw;
}

.kv__notes-icon {
    width: 3.47vw;
    height: 3.47vw;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.kv__notes-icon-line {
    position: absolute;
    background-color: #000;
    transition: all 0.3s ease;
}

.kv__notes-icon-line--horizontal {
    width: 3.47vw;
    height: 0.53vw;
    left: 0;
}

.kv__notes-icon-line--vertical {
    width: 0.53vw;
    height: 3.47vw;
    top: 0;
    opacity: 1;
    transform: scaleY(1);
}

.kv__notes-item {
    display: flex;
    gap: 1.07vw;
    margin-top: 2.13vw;
    justify-content: center;
    align-items: flex-start;
}

.kv__notes-item:first-child {
    margin-top: 0;
}

.kv__notes-item p .link {
    color: inherit;
}

.kv__notes-label {
    font-size: 3.2vw;
    color: #585858;
    flex-shrink: 0;
    line-height: 1.48;
}

.kv__notes-text {
    font-size: 3.2vw;
    color: #585858;
    line-height: 1.48;
    flex: 1;
}

.kv__notes-text p:last-child {
    margin-bottom: 0;
}

.kv__notes-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.kv__notes-list li {
    position: relative;
    padding-left: 3.2vw;
}

.kv__notes-list li:before {
    content: "・";
    position: absolute;
    left: 0;
}

.kv__notes-list li:first-child {
    margin-top: 0;
}

/* PC版ヒーロー（デフォルトは非表示） */
.kv__hero--pc {
    display: none;
}

@media (min-width: 768px) {

    .kv {
        max-width: 100%;
        background: #FF8C1B;
        padding-top: 124px;
    }

    .kv__hero {
        max-width: 1100px;
        margin: auto;
    }

    /* コンテンツエリアをKV画像の下に配置 */
    .kv__content {
        padding: 0;
        margin: 0 auto;
        background: transparent;
    }

    .kv__subtitle {
        display: none;
    }

    /* 節約額も非表示（画像に含まれているため） */
    .kv__savings {
        display: none;
    }

    /* CTAエリア - 白いカードとして表示 */
    .kv__cta-area {
        max-width: 1100px;
        margin: 0 auto;
        padding: 0 133px 55px;
        position: relative;
        z-index: 10;
        gap: 24px;
        background-image: url(../images/background_dot_pc.png);
        background-position: top;
        background-size: 100%;
    }

    .kv__cta-card {
        background: #fff;
        border-radius: 12px;
        padding: 16px 24px 20px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 32px;
        margin: -40px auto 0;
    }

    /* PC版: 右側のボタンエリア */
    .kv__cta-card-button-area {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
        width: 366px;
    }

    .kv__cta-discount {
        font-size: 20px;
        line-height: 1.48;
        text-align: center;
        height: 19px;
    }

    .kv__cta-discount-price {
        color: #F55600;
    }

    .kv__cta-discount-note {
        font-size: 12.9px;
    }

    .kv__cta-btn {
        width: 352px;
        height: 58px;
        font-size: 18px;
        gap: 0;
        background: #266FD0;
        border: 2px solid #000;
        border-radius: 80px;
        box-shadow: 0px 3px 0px 0px #000;
        position: relative;
        padding: 0;
    }

    .kv__cta-btn span {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: 256px;
        text-align: center;
    }

    .kv__cta-btn-icon {
        width: 30px;
        height: 30px;
        position: absolute;
        left: 306px;
        top: 14px;
    }

    /* PC版: 左側の節約額表示を表示 */
    .kv__cta-card-savings {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        width: 100%;
        max-width: 397px;
        height: 96px;
        justify-content: center;
    }

    .kv__cta-card-savings-text {
        font-weight: bold;
        font-size: 20px;
    }

    .kv__notes>.kv__notes-item+.kv__notes-item {
        margin-top: 8px;
    }

    /* 注意事項ボックス */
    .kv__notes.accordion {
        width: 100%;
        max-width: 1100px;
        margin: 0;
        padding: 0;
        border: 3.45px solid #000;
        border-radius: 13.81px;
        background: #fff;
    }

    .kv__notes-header {
        padding: 23px 28px;
    }

    .kv__notes-title {
        font-size: 18px;
    }

    .kv__notes-icon {
        width: 15px;
        height: 15px;
    }

    .kv__notes-icon-line--horizontal {
        width: 15px;
    }

    .kv__notes-icon-line--vertical {
        width: 2px;
        height: 15px;
    }

    .kv__notes-content.open {
        padding: 0 28px 46px;
        text-align: center;
    }

    .kv__notes-label {
        font-size: 12px;
    }

    .kv__notes-text {
        font-size: 12px;
    }

    .kv__notes-item {
        margin-top: 8px;
    }
}


/* ========================================
   sp_3point.css
======================================== */

/* ========================================
   sp_3point.css
   3つのポイントセクション
======================================== */

.points-block {
    width: 100%;
}

.points-block__container {
    margin: 0 auto;
    padding-top: 12.8vw;
    padding-bottom: 112px;
    display: flex;
    flex-direction: column;
    gap: 4.27vw;
}

/* タイトル */
.points-block__title {
    text-align: center;
    color: #F55600;
}

.points-block__title-sub {
    font-size: 4.27vw;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 0;
}

.points-block__title-main {
    font-size: 8vw;
    font-weight: 700;
    line-height: 1.48;
    margin: 0;
}

.points-block__title-number {
    font-family: 'Rubik', sans-serif;
    font-size: 8vw;
    font-weight: 700;
    letter-spacing: -1.2vw;
}

.points-block__title-eng {
    font-family: 'Rubik', sans-serif;
    font-size: 8.27vw;
    font-weight: 700;
}

/* カードリスト */
.points-block__cards {
    display: flex;
    flex-direction: column;
    gap: 3.27vw;
}

/* カード */
.points-block__card {
    position: relative;
    background: #fff;
    border-radius: 3.2vw;
    padding: 5.4vw 4vw 4.27vw;
    min-height: 29.33vw;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
}


/* カード番号バッジ */
.points-block__card-number {
    position: absolute;
    top: -3.93vw;
    left: 9.47vw;
    transform: translateX(-50%);
    width: 10vw;
}

/* カードコンテンツ */
.points-block__card-content {
    display: flex;
    align-items: center;
    gap: 4.27vw;
    padding-left: 3.2vw;
}

.points-block__card:nth-of-type(3) .points-block__card-content {
    padding-left: 0;
    gap: 3.27vw;
}

.points-block__card-icon {
    width: 18.13vw;
    height: 18.13vw;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.points-block__card-icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.points-block__card-label {
    font-size: 4.27vw;
    font-weight: 700;
    color: #000;
    line-height: 1.4;
    margin: 0;
}

.points-block__card:nth-of-type(3) .points-block__card-label {
    font-size: 3.73vw;
    letter-spacing: -0.15vw;
}

.points-block__card-title {
    font-size: 6.4vw;
    font-weight: 700;
    color: #000;
    line-height: 1.48;
    letter-spacing: -0.26vw;
    margin: 0;
}

@media (min-width: 768px) {
    .points-block {
        background: #F0ECE6;
    }

    .points-block__container {
        max-width: 1100px;
        padding-top: 88px;
        padding-bottom: 180px;
        gap: 52px;
    }

    .points-block__title-sub {
        font-size: 24px;
    }

    .points-block__title-main {
        font-size: 48px;
    }

    .points-block__title-number {
        font-size: 48px;
        letter-spacing: 0;
    }

    .points-block__title-eng {
        font-size: 50px;
    }

    .points-block__cards {
        flex-direction: row;
        justify-content: space-between;
        gap: 16px;
    }

    .points-block__card {
        border-radius: 12px;
        padding: 31px 15px 23px;
        min-height: 122px;
        flex: 1;
    }


    .sp-3point__card:last-child {
        min-height: 220px;
    }

    .points-block__card-number {
        top: -22px;
        left: 50%;
        width: 53px;
        height: 44px;
    }

    .points-block__card-content {
        gap: 16px;
        padding-left: 0;
    }

    .points-block__card:nth-of-type(3) .points-block__card-content {
        gap: 12px;
    }

    .points-block__card-icon {
        width: 68px;
        height: 68px;
        margin: 0;
    }

    .points-block__card-text {
        align-items: center;
        gap: 8px;
    }

    .points-block__card-label {
        font-size: 16px;
        line-height: 1.5;
    }

    .points-block__card:nth-of-type(3) .points-block__card-label {
        font-size: 14px;
        letter-spacing: 0;
    }


    .points-block__card-title {
        letter-spacing: 0;
        font-size: 24px;
        line-height: 1.4;
    }
}



/* ========================================
   sp_01section.css
======================================== */

/* ========================================
   sp_01section.css
   おトクな保険料セクション
======================================== */

.benefit-pricing {
    width: 100%;
}

.benefit-pricing__container {
    margin: 0 auto;
    background: #FF7500;
    border-top-left-radius: 13.33vw;
    padding-top: 15.6vw;
    padding-bottom: 30.93vw;
    box-shadow: 0vw 0vw 2.67vw 0vw rgba(89, 89, 89, 0.15);
    position: relative;
}

/* タイトルエリア */
.benefit-pricing__title {
    position: relative;
    text-align: center;
    margin-bottom: 4.2vw;
}

.benefit-pricing__number {
    position: absolute;
    top: -28.2vw;
    left: 50%;
    transform: translateX(-50%);
    width: 24.8vw;
    height: 24.8vw;
    border-radius: 50%;
    background: #F55600;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'A-OTF UD Shin Maru Go Pr6N', sans-serif;
    font-size: 8.53vw;
    font-weight: 700;
    color: #fff;
    line-height: 1.48;
}

.benefit-pricing__heading {
    display: inline-block;
    font-size: 8.53vw;
    font-weight: 700;
    color: #fff;
    line-height: 1.48;
    margin: 0 0 2.13vw 0;
    padding-bottom: 2.4vw;
    background-image: url(../images/h2-line.png);
    background-position: bottom;
    background-size: 100%;
    background-repeat: no-repeat;
}

/* コンテンツカード */
.benefit-pricing__card {
    position: relative;
    background: #fff;
    border-radius: 5.33vw;
    padding: 9.6vw 5.87vw 5.33vw;
    min-height: 62.87vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5.33vw;
}

.benefit-pricing__card::after {
    content: '';
    position: absolute;
    width: 104.53vw;
    height: 66.12vw;
    background-image: url(../images/nanigaotoku.png);
    background-position: bottom;
    background-size: 100%;
    background-repeat: no-repeat;
    bottom: -3.47vw;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.benefit-pricing__card-text {
    font-size: 4.27vw;
    font-weight: 700;
    color: #000;
    text-align: center;
    line-height: 1.4;
    margin: 0;
    order: 1;
}


@media (min-width: 768px) {
    .benefit-pricing__container {
        padding-top: 110px;
        padding-bottom: 160px;
        margin: 0 auto;
        border-top-left-radius: 120px;
        background: #FF7500;
        position: relative;
        box-shadow: none
    }

    .benefit-pricing__title {
        margin-bottom: 0;
    }

    .benefit-pricing__number {
        width: 130px;
        height: 130px;
        font-size: 56px;
        top: -178px;
        background: #F55600;
    }

    .benefit-pricing__heading {
        margin: 0 0 28px 0;
        padding-bottom: 17px;
        font-size: 40px;
        line-height: 1.48;
    }

    .benefit-pricing__card {
        padding: 36px 48px 20px;
        min-height: 278px;
        max-width: 645px;
        margin: 0 auto;
        border-radius: 24px;
        gap: 0;
    }

    .benefit-pricing__card::after {
        background-image: url(../images/nanigaotoku-pc.png);
        width: 419px;
        height: 211px;
        bottom: -20px;
    }


    .benefit-pricing__card-text {
        font-size: 20px;
        line-height: 1.48;
        color: #000;
        font-weight: 700;
        text-align: center;
        margin-bottom: 0;
        padding-top: 0;
        width: 446px;
        margin-left: auto;
        margin-right: auto;
    }
}



/* ========================================
   insurance-section.css
   保険料セクション
======================================== */

/* カード */
.insurance-card {
    background: #ffffff;
    border-radius: 4.27vw;
    padding: 8.53vw 4vw 9.6vw;
    width: 100%;
    margin: 0 auto;
    margin-top: 10.67vw;
}

/* ヘッダー */
.insurance-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4.27vw;
    margin-bottom: 3.2vw;
}

.insurance-title {
    flex: 1;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 0;
    line-height: 1;
    text-align: center;
    margin: 0;
}

.insurance-title-text {
    font-size: 4.8vw;
    line-height: 1.4;
    color: #000000;
}

.insurance-title-highlight {
    font-size: 6.4vw;
    line-height: 1.48;
    color: #f55600;
    letter-spacing: -0.26vw;
}

.insurance-icon {
    width: 15.73vw;
    height: 17.07vw;
    flex-shrink: 0;
}

.insurance-icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* タブナビゲーション */
.insurance-tabs {
    display: flex;
    gap: 1.07vw;
    margin-bottom: 0;
}

.insurance-tab {
    flex: 1;
    background: #fff2e6;
    border-radius: 2.13vw 2.13vw 0 0;
    padding: 2.13vw;
    height: 12.8vw;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s ease;
}

.insurance-tab p {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.2vw;
    line-height: 1.2;
    text-align: center;
    color: #000000;
    margin: 0;
}

.insurance-tab.active {
    background: #f55600;
}

.insurance-tab.active p {
    color: #ffffff;
}

/* タブコンテンツ */
.insurance-tab-content {
    display: none;
    flex-direction: column;
    gap: 6.4vw;
    border: 1px solid #f55600;
    border-radius: 0 0 2.13vw 2.13vw;
    padding: 8vw 4vw 8.53vw;
}

.insurance-tab-content.active {
    display: flex;
}

/* dポイント情報 */
.insurance-dpoint {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.insurance-dpoint-header {
    display: flex;
    align-items: center;
    gap: 3.2vw;
    width: 100%;
    margin-bottom: 0;
}

.insurance-dpoint-icon {
    width: 12.8vw;
    height: 12.8vw;
    flex-shrink: 0;
}

.insurance-dpoint-icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.insurance-dpoint-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.4;
    color: #000000;
    margin: 0;
}

.insurance-dpoint-text .highlight {
    font-weight: 700;
    color: #f55600;
}

/* 価格情報 */
.insurance-dpoint-price {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.insurance-price-main {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    text-align: center;
    margin-bottom: 0;
}

.insurance-price-label {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #000000;
    margin-top: 2.93vw;
}

.insurance-price-number {
    font-size: 9.6vw;
    line-height: 1.48;
    color: #f55600;
    letter-spacing: -0.29vw;
    font-variation-settings: 'wdth' 100;
    margin: 0 1.07vw;
}

.insurance-price-unit {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #000000;
    margin-top: 2.93vw;
}

.insurance-price-sub {
    display: flex;
    align-items: flex-end;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.4;
    color: #000000;
}

.insurance-price-sub-text {
    font-size: 3.73vw;
}

.insurance-price-sub-number {
    font-family: 'Open Sans', sans-serif;
    font-size: 5.33vw;
    line-height: 1;
    color: #f55600;
    letter-spacing: -0.21vw;
    font-variation-settings: 'wdth' 100;
}

.insurance-price-sub-unit {
    font-size: 3.73vw;
    color: #f55600;
    letter-spacing: 0.37vw;
}

.insurance-price-sub-text-small {
    font-size: 3.73vw;
    letter-spacing: -0.22vw;
}

.insurance-price-note {
    font-size: 2.41vw;
    padding-bottom: 0.5em;
}

/* 補償内容テーブル */
.insurance-coverage .accordion__title {
    font-size: 3.7vw;
}

.insurance-coverage-table {
    width: 100%;
    border-collapse: collapse;
}

.insurance-coverage-table tr {
    border-top: 0.5px solid #dbd6d1;
    display: flex;
    align-items: center;
    gap: 3.73vw;
}

.insurance-coverage-table tr:last-child {
    border-bottom: 0.5px solid #dbd6d1;
}

.insurance-coverage-table th {
    background: #fff2e6;
    padding: 5.4vw 2.13vw 2.8vw;
    width: 23.27vw;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3vw;
    line-height: 1.48;
    color: #000000;
    text-align: left;
    display: flex;
    align-items: center;
}

.insurance-coverage-table td {
    padding: 5.5vw 0 2.8vw;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3vw;
    line-height: 1.48;
    color: #000000;
    flex: 1;
}

.link_wrap {
    text-align: right;
    font-size: 3.1983vw;
}

.link_wrap .text_link {
    position: relative;
    padding-right: 6.4vw;
    font-size: 2.933333vw;
    font-weight: bold;
    margin-top: 2.13vw;
}

.link_wrap .text_link::after {
    position: absolute;
    content: '';
    background-image: url(../images/icon_modal_3.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 5.33vw;
    height: 5.33vw;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto 0;
}

/* 注釈 */
.insurance-notes {
    display: flex;
    flex-direction: column;
}

.insurance-note {
    display: flex;
    gap: 1.07vw;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #585858;
    margin: 0;
}

.insurance-note-number {
    flex-shrink: 0;
}

.insurance-note-text {
    flex: 1;
}

@media (min-width: 768px) {
    .insurance-pricing {
        background: #ff9023;
        padding: 64px 0;
        width: 100%;
        height: auto;
    }

    .insurance-container {
        max-width: 1100px;
        margin: 0 auto;
    }

    .insurance-card {
        max-width: 1100px;
        padding: 60px 80px 72px;
        border-radius: 24px;
        width: 100%;
        margin-top: 32px;
    }

    .insurance-header {
        justify-content: center;
        gap: 24px;
        width: max-content;
        margin: auto;
        margin-bottom: 24px;
    }

    .insurance-title-text {
        font-size: 24px;
        line-height: 1.48;
    }

    .insurance-title-highlight {
        font-size: 32px;
        line-height: 1.48;
        letter-spacing: 0;
    }

    .insurance-icon {
        width: 80px;
        height: 88px;
    }

    .insurance-tabs {
        gap: 8px;
    }

    .insurance-tab {
        padding: 14px 12px;
        height: 60px;
        border-radius: 12px 12px 0 0;
    }

    .insurance-tab p {
        font-size: 15px;
        line-height: 1.48;
    }

    .insurance-tab-content {
        display: none;
        padding: 32px 40px 44px;
        border-radius: 0 0 12px 12px;
        border: 2px solid #f55600;
    }

    .insurance-tab-content.active {
        display: flex;
        flex-direction: column;
        gap: 32px;
    }

    .insurance-dpoint {
        gap: 12px;
    }

    .insurance-dpoint-header {
        gap: 16px;
        margin-bottom: 8px;
        justify-content: center;
    }

    .insurance-dpoint-icon {
        width: 56px;
        height: 56px;
    }

    .insurance-dpoint-text {
        font-size: 18px;
        line-height: 1.48;
    }

    .insurance-dpoint-text .highlight {
        font-size: 18px;
    }

    .insurance-price-label {
        font-size: 20px;
        line-height: 1.48;
        margin-top: 25px;
    }

    .insurance-price-number {
        font-size: 48px;
        line-height: 1.48;
        letter-spacing: -1.44px;
        margin: 0 4px 0;
    }

    .insurance-price-unit {
        font-size: 20px;
        line-height: 1.48;
        margin-top: 25px;
    }

    .insurance-price-sub {
        font-size: 20px;
        gap: 6px;
    }

    .insurance-price-sub-text {
        font-size: 16px;
        line-height: 1.48;
    }

    .insurance-price-sub-number {
        font-size: 28px;
        letter-spacing: -0.84px;
    }

    .insurance-price-sub-unit {
        font-size: 16px;
        line-height: 1.48;
        letter-spacing: 0;
    }

    .insurance-price-sub-text-small {
        font-size: 16px;
        line-height: 1.48;
        letter-spacing: 0;
    }

    .insurance-price-note {
        font-size: 0.5em;
        padding-bottom: 0.8em;
        margin-left: -5px;

    }

    .insurance-coverage {
        width: 100%;
        max-width: 100%;
        border: 2px solid #000;
        border-radius: 16px;
    }

    .insurance-coverage .accordion__title {
        font-size: 18px;
        padding: 20px 24px;
    }

    .insurance-coverage-table {
        width: 674px;
        margin: auto;
    }

    .insurance-coverage-header {
        padding-bottom: 20px;
    }

    .insurance-coverage-title {
        font-size: 18px;
        line-height: 1.48;
    }

    .insurance-coverage-toggle-icon {
        width: 16px;
        height: 16px;
    }

    .insurance-coverage-toggle-icon::before {
        width: 16px;
    }

    .insurance-coverage.closed .insurance-coverage-toggle-icon::after {
        height: 16px;
    }

    .insurance-coverage-table th {
        width: 264px;
        padding: 16px 12px;
        font-size: 14px;
        line-height: 1.48;
    }

    .insurance-coverage-table td {
        padding: 16px 0;
        font-size: 14px;
        line-height: 1.48;
    }

    .insurance-note {
        font-size: 13px;
        line-height: 1.48;
    }

    .link_wrap {
        font-size: 14px;
    }

    .link_wrap .text_link {
        padding-right: 24px;
        font-size: 16px;
        margin: 24px auto 0;
        max-width: 674px;
    }

    .link_wrap .text_link::after {
        width: 20px;
        height: 20px;
    }
}


/* ========================================
   sp_01section_otokuriyuu.css
======================================== */

/* ========================================
   sp_01section_otokuriyuu.css
   おトクな理由セクション
======================================== */
.reason-benefit-block {
    width: 100%;
    margin: 14.13vw auto 0;
}

.reason-benefit-block__card {
    background: #fff;
    border-radius: 4.27vw;
    padding: 8.53vw 4vw 9.6vw;
}

/* タイトル */
.reason-benefit-block__title {
    text-align: center;
    margin-bottom: 8.53vw;
}

.reason-benefit-block__heading {
    font-size: 5.33vw;
    font-weight: 700;
    color: #000;
    line-height: 1.48;
    margin: 0 0 2.13vw 0;
}

.reason-benefit-block__title-decoration {
    width: 10.13vw;
    height: 0.53vw;
    background: #F55600;
    margin: 0 auto;
    border-radius: 0.53vw;
}

/* コンテンツ */
.reason-benefit-block__content {
    display: flex;
    flex-direction: column;
    gap: 7.47vw;
}

/* アイテム */
.reason-benefit-block__item {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
}

.reason-benefit-block__item:nth-of-type(3) {
    gap: 8.53vw;
}

.reason-benefit-block__item-header {
    display: flex;
    align-items: center;
    gap: 2.13vw;
    padding: 2.13vw 5.33vw;
}

.reason-benefit-block__item-icon {
    width: 8.53vw;
    height: 8.53vw;
    flex-shrink: 0;
}

.reason-benefit-block__item-title {
    flex: 1;
    font-size: 4.8vw;
    font-weight: 700;
    color: #266FD0;
    line-height: 1.48;
    text-align: center;
    margin: 0;
}

.reason-benefit-block__item-content {
    display: flex;
    flex-direction: column;
    gap: 2.27vw;
}

.reason-benefit-block__illust {
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reason-benefit-block__illust-img {
    width: 100%;
    max-width: 84vw;
    height: auto;
}

.reason-benefit-block__item-text {
    font-size: 4.27vw;
    font-weight: 400;
    color: #000;
    line-height: 1.48;
    margin: 0;
}

/* 割引額表示 */
.reason-benefit-block__discount {
    background: #fff;
    border-radius: 3.2vw;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.reason-benefit-block__discount-text {
    display: flex;
    align-items: flex-end;
    gap: 1.07vw;
    font-size: 4.27vw;
    font-weight: 700;
    color: #000;
    line-height: 1.4;
    margin: 0;
}

.reason-benefit-block__discount-line {
    width: auto;
    height: 5.33vw;
    flex-shrink: 0;
}


.reason-benefit-block__discount-label {
    display: flex;
    align-items: center;
    font-size: 7.47vw;
    font-weight: 700;
    color: #000;
    letter-spacing: -0.05em;
    line-height: 1.48;
    margin-top: 0.5vw;
}

.reason-benefit-block__discount-price {
    font-size: 12.27vw;
    font-weight: 700;
    color: #F55600;
    letter-spacing: -0.05em;
    line-height: 1;
    padding-right: 0.1em;
    padding-bottom: 0.2em;
}

.reason-benefit-block__discount-note {
    font-size: 3.73vw;
    font-weight: 400;
    color: #000;
    line-height: 1.48;
    padding-bottom: 1em;
    padding-left: 0.2em;
}

/* 注釈 */
.reason-benefit-block__note {
    display: flex;
    gap: 1.07vw;
    font-size: 3.2vw;
    color: #585858;
    line-height: 1.48;
}

.reason-benefit-block__content+.reason-benefit-block__note {
    margin-top: 4vw;
}

.reason-benefit-block__note-label {
    flex-shrink: 0;
}

.reason-benefit-block__note-text {
    flex: 1;
    margin: 0;
}

.reason-benefit-block__note-text .link {
    color: #585858;
}

/* 節約額表示 */
.reason-benefit-block__savings {
    background: #FFF2E6;
    border-radius: 3.2vw;
    padding: 5.33vw 0;
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    align-items: center;
}

.reason-benefit-block__savings-label {
    font-size: 4.27vw;
    font-weight: 400;
    color: #000;
    line-height: 1.4;
    text-align: center;
    margin: 0;
}

.reason-benefit-block__savings-label strong {
    font-weight: 700;
}

.reason-benefit-block__savings-amount {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.07vw;
}

.reason-benefit-block__savings-deco {
    width: 11.07vw;
    height: 15.33vw;
    flex-shrink: 0;
}

.reason-benefit-block__savings-text {
    display: flex;
    align-items: flex-end;
    gap: 1.07vw;
    line-height: 1;
}

.reason-benefit-block__savings-label-sm {
    font-size: 4.8vw;
    font-weight: 700;
    color: #F55600;
    line-height: 1.4;
}

.reason-benefit-block__savings-price {
    font-size: 9.6vw;
    font-weight: 700;
    color: #F55600;
    letter-spacing: -0.29vw;
    line-height: 1;
}

.reason-benefit-block__savings-note {
    font-size: 3.096vw;
    color: #000;
}

.reason-benefit-block__comparison-img {
    width: 100%;
    max-width: 84vw;
    height: auto;
    margin: 0 auto;
}

.reason-benefit-block__comparison-img+.reason-benefit-block__note {
    margin-top: 2vw;
}

@media (min-width: 768px) {
    .reason-benefit-block {
        margin-top: 66px;
    }

    .reason-benefit-block__card {
        padding: 56px 72px 56px;
        max-width: 1100px;
        margin: 0 auto;
        border-radius: 24px;
    }

    .reason-benefit-block__title {
        margin-bottom: 52px;
    }

    .reason-benefit-block__heading {
        font-size: 32px;
        line-height: 1.48;
    }

    .reason-benefit-block__title-decoration {
        width: 60px;
        height: 4px;
        background: #F55600;
    }

    .reason-benefit-block__content {
        gap: 52px;
    }

    .reason-benefit-block__item {
        gap: 28px;
    }

    .reason-benefit-block__item:nth-of-type(3) {
        flex-direction: row;
        align-items: flex-start;
        justify-content: center;
        gap: 32px;
    }

    .reason-benefit-block__item-header {
        position: relative;
        padding: 0;
        text-align: center;
        width: max-content;
        margin: auto;
        gap: 20px;
    }

    .reason-benefit-block__item-icon {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 40px;
        height: 40px;
    }

    .reason-benefit-block__item-title {
        display: inline;
        font-size: 24px;
        line-height: 1.48;
        text-align: left;
        padding-left: 48px;
    }

    .reason-benefit-block__item-title br {
        display: inline;
    }

    .reason-benefit-block__item-title br::after {
        content: '';
    }

    .reason-benefit-block__item-content {
        gap: 16px;
        padding-left: 20px;
    }

    .reason-benefit-block__item:nth-of-type(1) .reason-benefit-block__item-content {
        flex-direction: row-reverse;
    }

    .reason-benefit-block__illust-img {
        max-width: 640px;
    }

    .reason-benefit-block__item-text {
        font-size: 18px;
        line-height: 1.48;
    }

    .reason-benefit-block__discount {
        gap: 0;
    }

    .reason-benefit-block__discount-text {
        font-size: 18px;
        gap: 8px;
        line-height: 1.48;
    }

    .reason-benefit-block__discount-line {
        height: 25px;
    }

    .reason-benefit-block__discount-label {
        font-size: 36px;
        line-height: 1.48;
        margin-top: 0;
    }

    .reason-benefit-block__discount-price {
        font-size: 65px;
        line-height: 1;
        letter-spacing: -3.84px;
    }

    .reason-benefit-block__discount-note {
        font-size: 16px;
        line-height: 1.48;
    }

    .reason-benefit-block__note {
        font-size: 14px;
        line-height: 1.48;
    }

    .reason-benefit-block__content+.reason-benefit-block__note {
        margin-top: 16px;
    }

    .reason-benefit-block__savings {
        padding: 36px 38px;
        gap: 16px;
        border-radius: 12px;
    }

    .reason-benefit-block__savings-label {
        font-size: 20px;
        line-height: 1.4;
    }


    .reason-benefit-block__savings-amount {
        gap: 0;
    }

    .reason-benefit-block__savings-deco {
        width: 60px;
        height: 84px;
    }

    .reason-benefit-block__savings-text {
        gap: 0;
    }

    .reason-benefit-block__savings-label-sm {
        font-size: 26px;
        line-height: 1.4;
    }

    .reason-benefit-block__savings-price {
        font-size: 52px;
        line-height: 1;
        letter-spacing: -1.56px;
    }

    .reason-benefit-block__savings-note {
        font-size: 16px;
    }

    .reason-benefit-block__comparison {
        width: 45.82%;
        gap: 12px;
    }
}


/* セクション */
.support-block__container {
    background: #f8f5f2;
    border-radius: 0 13.33vw 0 0;
    padding-top: 17.6vw;
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10.67vw;
}

/* セクション番号 */
.support-block__number {
    position: absolute;
    top: -13.6vw;
    left: 50%;
    transform: translateX(-50%);
    width: 24.8vw;
    height: 24.8vw;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0vw 1.07vw 2.67vw rgba(0, 0, 0, 0.1);
}

.support-block__number-text {
    font-family: 'A P-OTF UD ShinMaruGo Pr6N', 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 8.53vw;
    line-height: 1.48;
    color: #f55600;
    text-align: center;
}

/* タイトル */
.support-block__title-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.13vw;
    width: 100%;
}

.support-block__title {
    display: inline-block;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 8.53vw;
    line-height: 1.26;
    color: #f55600;
    text-align: center;
    width: 100%;
    margin: 0;
    padding-bottom: 2.4vw;
    background-image: url(../images/h2-line2.png);
    background-position: bottom;
    background-size: 63.48%;
    background-repeat: no-repeat;
}

.support-block__title-line {
    display: block;
}

/* イラストボックス */
.support-block__illust-box {
    height: 66.13vw;
    background: #ffffff;
    border-radius: 5.33vw;
    padding: 6.33vw 5.33vw 0;
    position: relative;
}

.support-block__illust-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    letter-spacing: -0.15vw;
    color: #000000;
    text-align: center;
}

.support-block__illust-box::after {
    content: '';
    position: absolute;
    width: 99.33vw;
    height: 46.2vw;
    background-image: url(../images/woman_fuan.png);
    background-position: bottom;
    background-size: 100%;
    background-repeat: no-repeat;
    bottom: -5.2vw;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

/* メッセージバブル */
.support-block__message-area {
    text-align: center;
    margin-top: 2vw;
}

.support-block__message-bubble {
    display: block;
    width: 40vw;
    margin: auto;
}

/* メッセージコンテンツ */
.support-block__message-content {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    color: #f55600;
    text-align: center;
    margin-top: 2.13vw;
}

.support-block__message-text {
    font-size: 4.27vw;
    line-height: 1.4;
    margin: 0;
}

.support-block__message-emphasis {
    font-size: 6.4vw;
    line-height: 1.48;
    letter-spacing: -0.26vw;
    margin-top: 1.07vw;
}

@media (min-width: 768px) {
    .support-block {
        width: 100%;
        min-height: auto;
    }

    .support-block__container {
        max-width: 100%;
        margin: 0 auto;
        padding-top: 108px;
        padding-bottom: 40px;
        border-radius: 0 120px 0 0;
        background: #f8f5f2;
        gap: 40px;
        margin-bottom: -1px;
    }

    .support-block__number {
        width: 130px;
        height: 130px;
        top: -70px;
        border: none;
        background: #fff;
        border-radius: 65px;
        box-shadow: none;
    }

    .support-block__number-text {
        font-size: 56px;
        line-height: 1.48;
        color: #f55600;
    }

    .support-block__title {
        font-size: 40px;
        line-height: 1.48;
        margin: 0;
        padding-bottom: 14px;
        background-image: url(../images/h2-line4.png);
        background-size: 597px;
    }

    .support-block__title-line {
        display: inline;
    }

    .support-block__title-line+.support-block__title-line {
        margin-left: -10px;
    }

    .support-block__title-underline {
        width: 597.992px;
        height: 6px;
    }

    .support-block__message-area {
        margin-top: 25px;
    }

    .support-block__illust-box {
        width: 645px;
        height: 353px;
        padding: 35px 0 0;
        border-radius: 20px;
        border: none;
        box-shadow: none;
        display: flex;
        flex-direction: column;
        align-items: center;
        position: relative;
    }


    .support-block__illust-box::after {
        width: 470px;
        height: 213px;
        bottom: -25px;
    }

    .support-block__illust-text {
        font-size: 20px;
        line-height: 1.48;
        margin-bottom: 0;
        text-align: center;
        letter-spacing: 0;
    }

    .support-block__message-bubble {
        width: 179px;
    }

    .support-block__message-content {
        margin-top: 10px;
    }

    .support-block__message-text {
        font-size: 18px;
        line-height: 1.4;
        max-width: 100%;
        white-space: nowrap;
    }

    .support-block__message-emphasis {
        font-size: 28px;
        line-height: 1.48;
        letter-spacing: -1.12px;
        margin-top: 4px;
    }
}


/* セクション */
.tokyokaijo-block {
    padding: 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tokyokaijo-container {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* カード */
.tokyokaijo-card {
    background: #ffffff;
    border-radius: 4.27vw;
    padding: 8.53vw 4vw 10.6vw;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8.53vw;
    align-items: center;
}

/* タイトル */
.tokyokaijo-title-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.13vw;
    width: 100%;
}

.tokyokaijo-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 5.33vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    margin: 0;
    white-space: nowrap;
}

/* タイトル下線 */
.tokyokaijo-title-underline {
    width: 10.13vw;
    height: 0.53vw;
    background: url("data:image/svg+xml,%3Csvg width='38' height='2' viewBox='0 0 38 2' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0' y1='1' x2='38' y2='1' stroke='%23FF7500' stroke-width='2'/%3E%3C/svg%3E") center / cover no-repeat;
}

.tokyokaijo-logos {
    width: 65.33vw;
    margin: auto;
}
.tokyokaijo-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 7.47vw;
    width: 100%;
}

.tokyokaijo-description {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    width: 100%;
}

.tokyokaijo-collabo-image {
    display: none;
}

.tokyokaijo-collabo-img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.tokyokaijo-description-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #000000;
    margin: 0;
}

.tokyokaijo-description-highlight {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #f55600;
    margin: 0;
}

.tokyokaijo-evidence-box {
    background: #fff2e6;
    border-radius: 3.2vw;
    padding: 3.6vw 4vw;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 3.27vw;
}

.tokyokaijo-evidence-header {
    display: flex;
    align-items: center;
    gap: 2.13vw;
    width: 100%;
}

.tokyokaijo-evidence-icon {
    width: 6.4vw;
    height: 6.4vw;
    flex-shrink: 0;
}

.tokyokaijo-evidence-icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.tokyokaijo-evidence-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    letter-spacing: -0.15vw;
    color: #000000;
    margin: 0;
    flex: 1;
}

.tokyokaijo-evidence-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    width: 100%;
}

.tokyokaijo-evidence-item {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #000000;
    padding-left: 3.73vw;
    position: relative;
}

.tokyokaijo-evidence-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1.87vw;
    width: 1.6vw;
    height: 1.6vw;
    background: #266fd0;
    border-radius: 0.27vw;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .tokyokaijo-block {
        width: 100%;
        margin: 0 auto;
    }

    .tokyokaijo-card {
        width: 100%;
    }
}

@media (min-width: 768px) {
    .tokyokaijo-container {
        max-width: 100%;
        margin: 0 auto;
    }

    .tokyokaijo-card {
        max-width: 1100px;
        margin: 0 auto;
        padding: 56px 72px;
        gap: 40px;
        border-radius: 12px;
        border: none;
        box-shadow: none;
    }

    .tokyokaijo-title-wrapper {
        gap: 16px;
    }

    .tokyokaijo-logos {
        width: 277px;
    }

    .tokyokaijo-title {
        font-size: 28px;
        line-height: 1.48;
        white-space: normal;
    }

    .tokyokaijo-title-underline {
        width: 40px;
        height: 0;
        background: none;
    }

    .tokyokaijo-title-underline::before {
        content: '';
        display: block;
        width: 40px;
        height: 0;
        border-bottom: 5px solid #FF7500;
        border-radius: 999px;
    }


    .tokyokaijo-content-wrapper {
        flex-direction: row;
        gap: 16px;
        align-items: flex-start;
    }

    .tokyokaijo-description {
        flex: 1;
        gap: 12px;
    }

    .tokyokaijo-description-text {
        font-size: 18px;
        line-height: 1.4;
    }

    .tokyokaijo-description-text:first-of-type {
        font-weight: bold;
    }

    .tokyokaijo-description-highlight {
        font-size: 18px;
        line-height: 1.48;
        color: #f55600;
    }

    .tokyokaijo-collabo-image {
        display: flex;
        flex-shrink: 0;
        width: 384px;
        height: 143.412px;
        align-items: center;
        justify-content: center;
    }

    .tokyokaijo-collabo-img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .tokyokaijo-evidence-box {
        padding: 20px 24px 24px;
        gap: 16px;
        background: #fff2e6;
        border-radius: 12px;
    }

    .tokyokaijo-evidence-header {
        gap: 8px;
    }

    .tokyokaijo-evidence-icon {
        width: 34px;
        height: 34px;
    }

    .tokyokaijo-evidence-title {
        font-size: 18px;
        line-height: 1.48;
        letter-spacing: -0.72px;
    }

    .tokyokaijo-evidence-list {
        gap: 8px;
    }

    .tokyokaijo-evidence-item {
        font-size: 14px;
        line-height: 1.48;
        padding-left: 18px;
        position: relative;
        display: block;
    }

    .tokyokaijo-evidence-item::before {
        content: '';
        position: absolute;
        left: 0;
        top: 9px;
        width: 6px;
        height: 6px;
        background: #266fd0;
        border-radius: 1px;
    }
}
/* セクション */
.dennwasoudann-block {
    padding: 0;
    padding-bottom: 10.67vw;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dennwasoudann-container {
    width: 100%;
}

/* カード */
.dennwasoudann-card {
    background: #ffffff;
    border-radius: 4.27vw;
    padding: 9.53vw 4vw 9.6vw;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8.53vw;
}

/* タイトル */
.dennwasoudann-title-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.13vw;
}

.dennwasoudann-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 5.33vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.dennwasoudann-title-line {
    display: block;
    white-space: nowrap;
}

/* タイトル下線 */
.dennwasoudann-title-underline {
    width: 10.13vw;
    height: 0.53vw;
    background: #ff7500;
}

/* イラスト */
.dennwasoudann-illust {
    width: 100%;
    max-width: 84vw;
    height: 36.27vw;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dennwasoudann-illust-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.dennwasoudann-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10.67vw;
    width: 100%;
}

/* 説明文 */
.dennwasoudann-description {
    margin-top: 8.53vw;
}

.dennwasoudann-description-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #000000;
    margin: 0;
}

.dennwasoudann-highlight {
    font-weight: 700;
    color: #f55600;
}

/* 相談デスク案内 */
.dennwasoudann-consultation {
    display: flex;
    flex-direction: column;
    gap: 4.27vw;
}

.dennwasoudann-consultation-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
    margin-top: 8.53vw;
}

.dennwasoudann-desk-box {
    background: #fff2e6;
    border-radius: 3.2vw;
    padding: 4.33vw 4vw;
    display: flex;
    flex-direction: column;
    gap: 2.27vw;
}

.dennwasoudann-desk-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    letter-spacing: -0.15vw;
    color: #f55600;
    text-align: center;
    margin: 0;
}

.dennwasoudann-desk-contact {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.dennwasoudann-desk-phone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.13vw;
}

.dennwasoudann-desk-phone-icon {
    width: 6.4vw;
    height: 6.4vw;
}

.dennwasoudann-desk-icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.dennwasoudann-desk-phone-number {
    font-family: 'Open Sans', sans-serif;
    font-weight: 700;
    font-size: 6.4vw;
    line-height: 1.48;
    letter-spacing: 0.26vw;
    color: #000000;
    text-decoration: underline;
    text-decoration-skip-ink: none;
    text-underline-position: from-font;
}

.dennwasoudann-desk-hours {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #585858;
    text-align: center;
    margin: 0;
}

.dennwasoudann-desk-note {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    margin: 0;
}

.dennwasoudann-desk-link {
    font-weight: 400;
    color: #000000;
    text-decoration: underline;
    text-decoration-skip-ink: none;
    text-underline-position: from-font;
}

/* お問い合わせボックス */
.dennwasoudann-inquiry-box .accordion__title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    letter-spacing: -0.15vw;
    color: #000000;
    text-align: center;
    margin: 0;
    flex: 1;
}

.dennwasoudann-inquiry-content .accordion__inner {
    padding: 4.5vw 4vw 5.33vw;
}

.dennwasoudann-inquiry-block {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
}

.dennwasoudann-inquiry-block+.dennwasoudann-inquiry-block {
    margin-top: 5.33vw;
}


.dennwasoudann-inquiry-label {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    margin: 0;
}

/* お問い合わせボタン */
.dennwasoudann-inquiry-buttons {
    display: flex;
    gap: 2.13vw;
}

.dennwasoudann-inquiry-btn {
    position: relative;
    border: 0.53vw solid #266fd0;
    border-radius: 27.2vw;
    padding: 3.47vw 5vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.13vw;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.16;
    letter-spacing: -0.17vw;
    color: #266fd0;
    text-decoration: none;
    height: 14.4vw;
    box-shadow: 0vw 1.07vw 0vw 0vw #266fd0;
    width: 50%;
}

.dennwasoudann-inquiry-btn:nth-of-type(2) {
    padding: 3.47vw 7.28vw;
}

.dennwasoudann-inquiry-btn--full {
    font-size: 3.73vw;
    line-height: 1.48;
    letter-spacing: 0;
    width: 100%;
}

.dennwasoudann-inquiry-btn::after {
    content: '';
    position: absolute;
    width: 6.4vw;
    height: 6.4vw;
    background-image: url(../images/icon_betumado_blie.png);
    right: 2.73vw;
    bottom: 25%;
    background-size: 100%;
}

.dennwasoudann-inquiry-hours {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .dennwasoudann-block {
        width: 100%;
        margin: 0 auto;
    }

    .dennwasoudann-card {
        width: 100%;
    }
}

@media (min-width: 768px) {
    .dennwasoudann-block {
        background: #f8f5f2;
        padding: 0;
    }

    .dennwasoudann-container {
        max-width: 100%;
        margin: 0 auto;
    }

    .dennwasoudann-card {
        max-width: 1100px;
        margin: 0 auto;
        padding: 56px 72px;
        gap: 40px;
        border-radius: 12px;
    }

    .dennwasoudann-title-wrapper {
        gap: 16px;
    }

    .dennwasoudann-title {
        font-size: 28px;
        line-height: 1.48;
        white-space: nowrap;
    }

    .dennwasoudann-title-line {
        display: inline;
    }

    .dennwasoudann-title-underline {
        width: 40px;
        height: 0;
        background: none;
    }

    .dennwasoudann-title-underline::before {
        content: '';
        display: block;
        width: 40px;
        height: 0;
        border-bottom: 5px solid #FF7500;
        border-radius: 999px;
    }

    .dennwasoudann-content-wrapper {
        flex-direction: row;
        gap: 64px;
        align-items: flex-start;
    }

    .dennwasoudann-description {
        width: 556px;
        gap: 12px;
        flex: 0 0 556px;
        margin-top: 0;
    }

    .dennwasoudann-description-text {
        font-size: 18px;
        line-height: 1.4;
        display: inline;
    }

    .dennwasoudann-item {
        display: flex;
        flex-direction: row-reverse;
        gap: 64px;
    }

    .dennwasoudann-illust {
        width: 334px;
        height: 144.203px;
        max-width: none;
        flex-shrink: 0;
    }

    .dennwasoudann-consultation {
        width: 100%;
        gap: 16px;
    }

    .dennwasoudann-consultation-text {
        font-size: 18px;
        line-height: 1.4;
        margin-top: 12px;
    }

    .dennwasoudann-desk-box {
        padding: 20px 15px;
        gap: 16px;
        background: #fff2e6;
        border-radius: 12px;
    }

    .dennwasoudann-desk-title {
        font-size: 18px;
        line-height: 1.48;
        letter-spacing: -0.72px;
        color: #f55600;
        text-align: center;
    }

    .dennwasoudann-desk-contact {
        gap: 8px;
        align-items: center;
    }

    .dennwasoudann-desk-phone {
        gap: 8px;
    }

    .dennwasoudann-desk-phone-icon {
        width: 35px;
        height: 35px;
    }

    .dennwasoudann-desk-phone-number {
        font-size: 30px;
        line-height: 1.48;
        letter-spacing: 0.3px;
        text-decoration: none;
        font-family: 'Open Sans', sans-serif;
        font-weight: 700;
    }

    .dennwasoudann-desk-hours {
        font-size: 14px;
        line-height: 1.48;
        color: #585858;
    }

    .dennwasoudann-desk-note {
        font-size: 16px;
        line-height: 1.48;
    }

    .dennwasoudann-desk-link {
        text-decoration: underline;
        text-decoration-skip-ink: none;
    }

    .dennwasoudann-inquiry-box .accordion__title {
        font-size: 18px;
        line-height: 1.4;
        letter-spacing: 0;
    }

    .dennwasoudann-inquiry-content {
        gap: 20px;
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        position: relative;
        padding-left: 0;
        padding-right: 0;
        justify-content: center;
    }

    .dennwasoudann-inquiry-block {
        display: flex;
        flex-direction: column;
        gap: 8px;
        position: relative;
        align-items: center;
    }

    .dennwasoudann-inquiry-block+.dennwasoudann-inquiry-block {
        margin-top: 0;
    }

    .dennwasoudann-inquiry-block:first-child {
        flex: 0 0 490px;
    }

    .dennwasoudann-inquiry-block:last-child {
        flex: 0 0 356px;
        padding-left: 20px;
    }

    .dennwasoudann-inquiry-label {
        font-size: 16px;
        line-height: 1.48;
        margin: 0;
    }

    .dennwasoudann-inquiry-buttons {
        gap: 12px;
        flex-direction: row;
    }

    .dennwasoudann-inquiry-btn {
        height: 58px;
        padding: 0;
        font-size: 18px;
        line-height: 1.4;
        border-radius: 30px;
        border: 3px solid #266fd0;
        box-shadow: 0 4px 0 0 #266fd0;
        width: 240px;
        letter-spacing: 0;
        justify-content: center;
    }

    .dennwasoudann-inquiry-block:last-of-type .dennwasoudann-inquiry-btn {
        width: 352px;
    }

    .dennwasoudann-inquiry-btn:nth-of-type(2) {
        padding: 0;
        padding-right: 5px;
    }

    .dennwasoudann-inquiry-btn::after {
        width: 30px;
        height: 30px;
        right: 15px;
    }

    .dennwasoudann-inquiry-btn-full {
        width: 352px;
        padding: 8px 0;
        border-radius: 110px;
        gap: 10px;
        justify-content: center;
        position: relative;
    }

    .dennwasoudann-inquiry-btn span {
        padding-right: 30px;
    }

    .dennwasoudann-inquiry-btn span:first-child {
        flex: 0 1 auto;
        text-align: center;
    }


    .dennwasoudann-inquiry-hours {
        font-size: 14px;
        line-height: 1.48;
        margin: 8px 0 0 0;
    }

    .dennwasoudann-inquiry-block {
        position: relative;
    }

    .dennwasoudann-inquiry-block:last-child {
        gap: 8px;
    }

    .dennwasoudann-inquiry-block:last-of-type::after {
        content: '';
        position: absolute;
        left: 0px;
        top: 0;
        bottom: 0;
        width: 1.5px;
        background: #DBD6D1;
    }
}
/* セクション */
.manzokudo-block {
    padding: 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}


/* カード */
.manzokudo-card {
    background: #ffffff;
    border-radius: 4.27vw;
    padding: 8.53vw 4vw 9.6vw;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.27vw;
}

/* タイトルグループ */
.manzokudo-title-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.13vw;
    width: 100%;
}

.manzokudo-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 5.33vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    white-space: nowrap;
    margin: 0;
}

.manzokudo-title-underline {
    width: 10.13vw;
    height: 0;
    border-bottom: 0.4vw solid #f55600;
}

/* グラフコンテナ */
.manzokudo-chart-container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* グラフ画像 */
.manzokudo-chart-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* 注釈 */
.manzokudo-note {
    width: 82.4vw;
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
}

.manzokudo-note-text,
.okyakusama-note-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #585858;
    margin: 0;
    display: flex;
    gap: 1.07vw;
}

.manzokudo-note-asterisk,
.okyakusama-note-asterisk {
    flex-shrink: 0;
    white-space: nowrap;
}

.manzokudo-note-content,
.okyakusama-note-content {
    flex-grow: 1;
}

@media (min-width: 768px) {
    .manzokudo-block {
        background: #f8f5f2;
        padding: 108px 0 160px;
        box-shadow: 0px 0px 20px 0px rgba(219, 101, 0, 0.18);
    }


    .manzokudo-card {
        width: 1100px;
        margin: 0 auto;
        padding: 56px 72px;
        gap: 32px;
        border-radius: 12px;
        background: #fff;
    }

    .manzokudo-title-group {
        gap: 16px;
    }

    .manzokudo-title {
        font-size: 28px;
        line-height: 1.48;
    }

    .manzokudo-title-underline {
        width: 40px;
        height: 0;
        border-bottom: 5px solid #FF7500;
        border-radius: 999px;
    }

    .manzokudo-chart-container {
        width: 500px;
        height: 280px;
        position: relative;
    }

    .manzokudo-chart-img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .manzokudo-note {
        width: 812px;
        gap: 8px;
    }

    .manzokudo-note-text,
    .okyakusama-note-text {
        font-size: 12px;
        line-height: 1.48;
        gap: 8px;
    }
}

/* セクション */
.okyakusama-block {
    padding: 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.okyakusama-container {
    width: 100%;
}

.okyakusama-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 4.27vw;
}

/* ヘッダー */
.okyakusama-header {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    width: 100%;
}

.okyakusama-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 5.33vw;
    line-height: 1.48;
    color: #f55600;
}


/* カード */
.okyakusama-card {
    position: relative;
}

.okyakusama-card-inner {
    position: relative;
    margin: 0 auto;
    width: 100%;
    padding-bottom: 13.33vw;
}

.okyakusama-card+.okyakusama-card {
    margin-left: 2vw;
}

.okyakusama-card-content {
    position: relative;
    background: #ffffff;
    border-radius: 6.4vw;
    height: 78.13vw;
    padding: 10.6vw 6.4vw 13.33vw;
    display: flex;
    justify-content: flex-start;
    flex-direction: column;
    gap: 3.2vw;
}

.okyakusama-card-content>div {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto 0;
    padding: 6.4vw;
    height: max-content;
}

.okyakusama-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.8vw;
    line-height: 1.4;
    color: #000000;
    margin: 0;
}

.okyakusama-highlight {
    color: #f55600;
}

.okyakusama-card-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
}

/* カードフッター */
.okyakusama-card-footer {
    position: absolute;
    bottom: 1.5vw;
    left: 0;
    display: flex;
    align-items: flex-end;
    gap: 2.4vw;
    height: 22.13vw;
}

/* アイコン */
.okyakusama-icon {
    width: 21.87vw;
    height: 21.87vw;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.okyakusama-icon--male {
    background-image: url('../images/icon_man30_green.png');
}

.okyakusama-icon--female {
    background-image: url('../images/icon_woman50_blue.png');
}

.okyakusama-icon--female-2 {
    background-image: url('../images/icon_woman50_yellow.png');
}

.okyakusama-card-meta {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000000;
    letter-spacing: -0.15vw;
    width: 33.6vw;
    margin: 0;
    padding-bottom: 2.67vw;
}

/* ナビゲーション */
.okyakusama-content.slick-dotted.slick-slider {
    padding-bottom: 14.27vw;

}

.okyakusama-content .slick-prev,
.okyakusama-content .slick-next {
    bottom: -0.5vw;
}

.okyakusama-content .slick-dots {
    bottom: 3vw;
}

.okyakusama-container .slick-prev {
    left: 0;
}

[dir='rtl'] .okyakusama-container .slick-prev {
    right: 0;
}

.okyakusama-container .slick-next {
    right: 0;
}

[dir='rtl'] .okyakusama-container .slick-next {
    left: 4vw;
}

[dir='rtl'] .okyakusama-container .slick-dots {
    bottom: 3vw;
}


@media (min-width: 768px) {
    .okyakusama-block {
        background: #f8f5f2;
        padding: 108px 0 160px;
        box-shadow: 0px 0px 20px 0px rgba(219, 101, 0, 0.18);
    }

    .okyakusama-container {
        max-width: 1100px;
        margin: 0 auto;
    }

    .okyakusama-content {
        max-width: 1100px;
        width: 1100px;
        gap: 16px;
    }

    .okyakusama-header {
        margin-bottom: 0;
    }

    .okyakusama-carousel-wrapper>div {
        width: 1100px;
        display: flex;
    }

    .okyakusama-title {
        font-size: 28px;
        line-height: 1.48;
    }

    .okyakusama-card {
        height: auto;
        width: 100%;
        position: relative;
    }

    .okyakusama-card-inner {
        gap: 34.5px;
        padding-bottom: 42px;
        width: auto;
    }

    .okyakusama-card-content {
        width: 355px;
        height: 315px;
        padding: 39px 25px;
        gap: 12.9px;
        border-radius: 25.9px 25.9px 25.9px 6.5px;
    }

    .okyakusama-card-content>div {
        position: relative;
        padding: 0;
        margin: 0;

    }

    .okyakusama-card-title {
        font-size: 20px;
        line-height: 1.4;
    }

    .okyakusama-card-text {
        font-size: 16px;
        line-height: 1.4;
    }

    .okyakusama-card-footer {
        width: 356px;
        height: 88.8px;
        gap: 9px;
        top: auto;
        bottom: 0;
        left: -4px;
    }

    .okyakusama-icon {
        width: 88px;
        height: 88px;
        left: -4.3px;
        top: 0;
    }

    .okyakusama-card-meta {
        font-size: 16px;
        line-height: 1.4;
        width: 136px;
        padding-bottom: 10px;
        letter-spacing: 0;
    }

    /* ナビゲーションを非表示 */
    .okyakusama-nav {
        display: none;
    }
}

/* セクション */
.omitumori-button-container {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ボタン */
.omitumori-button {
    background: #266fd0;
    border: 0.4vw solid #000000;
    border-radius: 27.2vw;
    box-shadow: 0vw 0.8vw 0vw 0vw #000000;
    padding: 3.47vw 2.93vw 3.47vw 1.6vw;
    width: 76vw;
    height: 14.4vw;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.13vw;
    position: relative;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.omitumori-button:hover {
    transform: translateY(0.53vw);
    box-shadow: 0vw 0.27vw 0vw 0vw #000000;
}

.omitumori-button:active {
    transform: translateY(0.8vw);
    box-shadow: 0vw 0vw 0vw 0vw #000000;
}

.omitumori-button-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #ffffff;
    white-space: nowrap;
}

/* ボタンアイコン */
.omitumori-button-icon {
    width: 6.4vw;
    height: 6.4vw;
    background: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='12' fill='white'/%3E%3Cpath d='M8 12L16 12M12 8L16 12L12 16' stroke='%23266fd0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    position: absolute;
    right: 2.93vw;
    top: 50%;
    transform: translateY(-50%);
    flex-shrink: 0;
}

/* PC */
@media (min-width: 768px) {
    .omitumori-button-block {
        padding: 108px 0 160px;
        box-shadow: 0px 0px 20px 0px rgba(219, 101, 0, 0.18);
    }

    .omitumori-button-container {
        max-width: 1100px;
        margin: 0 auto;
        display: flex;
        justify-content: center;
    }

    .omitumori-button {
        width: 352px;
        height: 58px;
        background: #266fd0;
        border: 3px solid #000;
        border-radius: 80px;
        box-shadow: 0px 3px 0px 0px #000;
        padding: 8px 10px;
        gap: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
    }

    .omitumori-button-text {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 700;
        font-size: 18px;
        line-height: 1.4;
        color: #fff;
        text-align: center;
        flex-grow: 1;
    }

    .omitumori-button-icon {
        width: 30px;
        height: 30px;
        position: absolute;
        right: 14px;
        top: 50%;
        transform: translateY(-50%);
        background: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='15' cy='15' r='15' fill='white'/%3E%3Cpath d='M10 15H20M15 10L20 15L15 20' stroke='%23266fd0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    }

    .omitumori-button:hover {
        transform: translateY(2px);
        box-shadow: 0px 1px 0px 0px #000;
    }

    .omitumori-button:active {
        transform: translateY(3px);
        box-shadow: 0px 0px 0px 0px #000;
    }
}

/* セクション */
.other-service-block {
    padding: 0;
    width: 100%;
    min-height: 126.93vw;
    display: flex;
    align-items: center;
    justify-content: center;
}

.other-service-container {
    width: 100%;
}

/* ボックス */

.other-service-box .accordion__title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    letter-spacing: -0.15vw;
    margin: 0;
}

.other-service-box .accordion__inner {
    padding: 4vw 4vw 5.33vw;
}

/* グリッド */
.other-service-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4vw;
}

/* カード */
.other-service-card {
    background: #fff2e6;
    border-radius: 2.67vw;
    height: 50.67vw;
    width: 39.73vw;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.other-service-card:hover {
    transform: translateY(-0.53vw);
    box-shadow: 0vw 1.07vw 2.13vw rgba(0, 0, 0, 0.1);
}

/* カード画像 */
.other-service-card-image {
    width: 100%;
    height: 21.87vw;
    border-bottom: 0.53vw solid #ffffff;
    border-radius: 2.67vw 2.67vw 0 0;
    overflow: hidden;
    background: #ffffff;
}

.other-service-card-img {
    width: 100%;
    height: 100%;
}

/* カードコンテンツ */
.other-service-card-content {
    padding: 3.2vw 4vw 0;
    display: flex;
    flex-direction: column;
    gap: 1.13vw;
    flex-grow: 1;
}

.other-service-card-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.35;
    color: #000000;
    margin: 0;
}

.other-service-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000000;
    letter-spacing: -0.15vw;
    margin: 0;
}

/* カードアイコン */
.other-service-card-icon {
    position: absolute;
    bottom: 2.13vw;
    right: 2.13vw;
    width: 5.33vw;
    height: 5.33vw;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.other-service-card-arrow {
    width: 5.33vw;
    height: 5.33vw;
}

@media (min-width: 768px) {
    .other-service-block {
        background: #f8f5f2;
        padding: 108px 0 160px;
        width: 100%;
        box-shadow: 0px 0px 20px 0px rgba(219, 101, 0, 0.18);
    }

    .other-service-container {
        max-width: 1100px;
        margin: 0 auto;
    }

    .other-service-box .accordion__title {
        font-size: 18px;
        letter-spacing: 0;
    }

    .other-service-box {
        max-width: 1100px;
        padding: 0;
        border: 3.5px solid #000;
        border-radius: 14px;
    }

    .other-service-box .accordion__inner {
        padding: 0 27px 47px;

    }

    .other-service-title {
        font-size: 18px;
        line-height: 1.4;
        width: auto;
        text-align: center;
        letter-spacing: 0;
    }

    .other-service-toggle {
        width: 15px;
        height: 15px;
    }

    .other-service-toggle-icon {
        width: 15px;
        height: 15px;
    }

    .other-service-toggle-icon::before {
        width: 15px;
        height: 2px;
        top: 6.5px;
    }

    .other-service-content {
        padding-top: 32px;
    }

    .other-service-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 23px;
        width: 100%;
        max-width: 1045px;
        margin: 0 auto;
    }

    .other-service-card {
        width: 244px;
        height: 228px;
        border-radius: 20px 20px 11.4px 11.4px;
        padding: 0;
        gap: 11.4px;
    }

    .other-service-card-image {
        height: 122px;
        border-radius: 16.4px 16.4px 0 0;
        border-bottom: 3.3px solid #fff;
    }

    .other-service-card-content {
        padding: 0 15px;
        gap: 4px;
    }

    .other-service-card-subtitle {
        font-size: 14px;
        letter-spacing: -0.56px;
        line-height: 1.48;
    }

    .other-service-card-subtitle br {
        display: none;
    }

    .other-service-card-title {
        font-size: 18px;
        line-height: 1.4;
        letter-spacing: 0;
    }

    .other-service-card-title br {
        display: inline;
    }

    .other-service-card-icon {
        width: 28.5px;
        height: 28.5px;
        bottom: 10px;
        right: 10px;
    }

    .other-service-card-arrow {
        width: 28.5px;
        height: 28.5px;
    }
}

.roadservice-block {
    width: 100%;
    padding: 6.4vw 0;
}

.roadservice-block__container {
    margin: 0 auto;
}

/* タイトル表示 */
.roadservice-block__title {
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 5.3vw;
    line-height: 1.48;
    color: #f55600;
    text-align: left;
}

/* さらに!ラベル表示 */
.roadservice-block__label {
    width: 22.93vw;
}

/* コンテンツ */
.roadservice-block__content {
    display: flex;
    flex-direction: column;
    gap: 6.4vw;
}


.roadservice-block__carousel-wrapper {
    padding-top: 5.33vw;
    margin: auto;
}

.roadservice-block__carousel-wrapper+.container-padding {
    padding-top: 10.67vw;
    padding-bottom: 30.93vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10.67vw;
}

.roadservice-block__cards .slick-slide {
    width: 88vw !important;
}

.roadservice-block__cards .slick-list {
    padding: 0 4vw !important;
}

.roadservice-block__card {
    background: #fff;
    border-radius: 4.27vw;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4.27vw;
    height: auto;
    box-sizing: border-box;
}

.roadservice-block__card+.roadservice-block__card {
    margin-left: 4vw;
}

/* アイコン */
.roadservice-block__icon {
    width: 17.07vw;
    height: 17.07vw;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2.13vw;
}

.roadservice-block__icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* 見出し */
.roadservice-block__heading {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.8vw;
    line-height: 1.4;
    color: #000;
    margin: 0 0 2.13vw 0;
}

/* 説明 */
.roadservice-block__description {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #000;
    margin: 0 0 3.2vw 0;
}

/* リスト */
.roadservice-block__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
}

.roadservice-block__list-item {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000;
    padding-left: 4.27vw;
    position: relative;
}

.roadservice-block__list-item::before {
    content: '・';
    position: absolute;
    left: 0;
    top: 0;
}

.roadservice-block__card-image {
    width: 100%;
    height: auto;
    min-height: 26.67vw;
    border-radius: 4.27vw 4.27vw 0 0;
    overflow: hidden;
    border: 0.53vw solid #fff;
}

.roadservice-block__card-img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

.roadservice-block__card-content {
    position: relative;
    padding: 0 4vw 5.33vw;
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
    box-sizing: border-box;
    height: 111.73vw;
}

.roadservice-block__card._roadservice .roadservice-block__card-box {
    padding-top: 8.53vw;
    padding-bottom: 8.53vw;
}

.roadservice-block__card._secom .roadservice-block__card-box {
    padding-top: 14.93vw;
    padding-bottom: 14.93vw;
}

.roadservice-block__card-header {
    display: flex;
    flex-direction: column;
    gap: 2.07vw;
}

.roadservice-block__card-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.73vw;
    line-height: 1.48;
    letter-spacing: -0.15vw;
    color: #000;
    margin: 0;
}

.roadservice-block__card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.8vw;
    line-height: 1.4;
    color: #000;
    margin: 0;
}

.roadservice-block__card-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #000;
    margin: 7vw 0 0;
}

.roadservice-block__button {
    position: absolute;
    background: #fff;
    border: 0.53vw solid #266fd0;
    box-shadow: 0vw 1.07vw 0vw 0vw #266fd0;
    border-radius: 29.33vw;
    padding: 2.13vw 2.67vw;
    width: 76vw;
    height: 14.4vw;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.67vw;
    text-decoration: none;
    transition: all 0.2s ease;
    box-sizing: border-box;
    bottom: 8.6vw;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
}

.roadservice-block__button span {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #266fd0;
    flex-grow: 1;
    text-align: center;
}

.roadservice-block__button span::after {
    content: '';
    position: absolute;
    width: 6.4vw;
    height: 6.4vw;
    background-image: url(../images/icon_betumado_blie.png);
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background-size: 100%;
}

/* PC */
@media (min-width: 768px) {
    .roadservice-block {
        background: #f8f5f2;
        padding: 108px 0 160px;
        box-shadow: 0px 0px 20px 0px rgba(219, 101, 0, 0.18);
    }

    .roadservice-block__label {
        width: 100px;
    }

    .roadservice-block__container {
        max-width: 1100px;
        margin: 0 auto;
        position: relative;
    }

    /* タイトル表示 */
    .roadservice-block__title {
        display: block;
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 700;
        font-size: 28px;
        line-height: 1.48;
        color: #f55600;
        margin: 0;
        text-align: left;
        width: 1100px;
    }

    .roadservice-block__carousel-wrapper {
        overflow: visible;
        padding-top: 32px;
        margin-top: -1px;
    }

    .roadservice-block__carousel-wrapper+.container-padding {
        padding-top: 40px;
        padding-bottom: 160px;
        gap: 40px;
    }

    .roadservice-block__cards {
        display: flex;
        justify-content: center;
        align-items: stretch;
    }

    .roadservice-block__card {
        flex: 0 0 auto;
        width: 538px;
        border-radius: 24px;
        gap: 32px;
    }

    .roadservice-block__card+.roadservice-block__card {
        margin-left: 24px;
    }

    .roadservice-block__card-image {
        height: auto;
        min-height: 180px;
        border-radius: 24px 24px 0 0;
        border: 3px solid #fff;
    }

    .roadservice-block__card-content {
        padding: 0 24px 36px;
        gap: 24px;
        height: 344px;
    }

    .roadservice-block__card._roadservice .roadservice-block__card-box {
        padding-top: 0;
        padding-bottom: 0;
    }

    .roadservice-block__card._secom .roadservice-block__card-box {
        padding-top: 0;
        padding-bottom: 0;
    }

    .roadservice-block__card-header {
        gap: 4px;
    }

    .roadservice-block__card-subtitle {
        font-size: 16px;
        letter-spacing: -0.64px;
    }

    .roadservice-block__card-title {
        font-size: 24px;
    }

    .roadservice-block__card-text {
        font-size: 18px;
        margin-top: 14px;
    }

    .roadservice-block__button {
        width: 352px;
        height: 58px;
        margin: 0 auto 0;
        padding: 8px 10px;
        gap: 10px;
        border: 3px solid #266fd0;
        box-shadow: 0 4px 0 0 #266fd0;
        border-radius: 110px;
        bottom: 36px;
    }

    .roadservice-block__button span {
        font-size: 18px;
    }

    .roadservice-block__button span::after {
        width: 30px;
        height: 30px;
    }

    .roadservice-block__icon {
        width: 96px;
        height: 96px;
    }

    .roadservice-block__heading {
        font-size: 24px;
        line-height: 1.48;
    }

    .roadservice-block__description {
        font-size: 18px;
        line-height: 1.48;
    }

    .roadservice-block__list {
        gap: 12px;
    }

    .roadservice-block__list-item {
        font-size: 16px;
        line-height: 1.48;
    }
}

/* セクション */
.topping-block {
    padding: 0;
    width: 100%;
}

.topping-container {
    width: 100%;
    padding: 0;
}

/* インナーコンテナ */
.topping-inner {
    background: #ff7500;
    border-radius: 13.33vw 0 0 0;
    box-shadow: 0vw 0vw 2.67vw 0vw rgba(89, 89, 89, 0.15);
    padding: 17.6vw 4vw 10.67vw;
    display: flex;
    flex-direction: column;
    gap: 10.67vw;
    align-items: center;
}

/* タイトルセクション */
.topping-title-block {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 7.47vw;
    align-items: center;
    position: relative;
}

.topping-title-group {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    align-items: center;
}

.topping-title-content {
    display: flex;
    flex-direction: column;
    gap: 4.27vw;
    align-items: center;
}

.topping-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 8.53vw;
    line-height: 1.48;
    color: #ffffff;
    text-align: center;
    background-image: url(../images/h2-line3.png);
    background-position: bottom;
    background-size: 100%;
    background-repeat: no-repeat;
}

.topping-title-underline {
    width: 85.87vw;
    height: 1.2vw;
    background-image: url('../images/Intersect.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* ナンバーバッジ */
.topping-number-badge {
    position: absolute;
    top: -31.2vw;
    left: 50%;
    transform: translateX(-50%);
}

.topping-number-circle {
    width: 24.8vw;
    height: 24.8vw;
    background: #F55600;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'A-OTF UD ShinMaruGo Pr6N', 'Noto Sans JP', sans-serif;
    font-size: 8.53vw;
    font-weight: 700;
    line-height: 1.48;
    color: #ffffff;
    text-align: center;
}

/* イラストレーション */
.topping-illustration {
    width: 91.47vw;
    height: 67.47vw;
    position: relative;
}

.topping-illustration-card {
    position: absolute;
    top: -0.064vw;
    left: 50%;
    transform: translateX(-50%);
    width: 91.47vw;
    height: 66.13vw;
    background: #ffffff;
    border-radius: 5.33vw;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 9.6vw;
}

.topping-illustration-text {
    font-family: 'Noto Sans JP', 'Noto Sans', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #000000;
    text-align: center;
    margin: 0;
    width: 80vw;
}

.topping-illustration-card::after {
    content: '';
    position: absolute;
    width: 101.33vw;
    height: 38.67vw;
    background-image: url(../images/woman_topping.png);
    background-position: bottom;
    background-size: 100%;
    background-repeat: no-repeat;
    bottom: -1.28vw;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

/* コピーセクション */
.topping-copy-block {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2.67vw;
    align-items: center;
}

.topping-badge-container {
    display: block;
    width: 56vw;
    margin: auto;
}


.topping-copy-content {
    display: flex;
    flex-direction: column;
    gap: 1.07vw;
    align-items: center;
    text-align: center;
    width: 100%;
}

.topping-copy-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #ffffff;
    width: 80vw;
}

.topping-copy-title p {
    margin: 0;
}

.topping-copy-emphasis {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 6.4vw;
    line-height: 1.48;
    color: #ffffff;
    letter-spacing: -0.26vw;
    margin: 0;
    width: 80vw;
}

.topping-copy-description {
    font-family: 'Noto Sans JP', 'Noto Sans', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #ffffff;
    margin: 0;
    width: 100%;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .topping-block {
        width: 100%;
        margin: 0 auto;
    }

    .topping-container {
        padding: 0;
    }

    .topping-inner {
        width: 100%;
    }
}

@media (min-width: 768px) {
    .topping-block {
        width: 100%;
        background: #f8f5f2;
        padding: 0;
        margin-bottom: -1px;
    }

    .topping-container {
        max-width: 100%;
        margin: 0;
        padding: 0;
    }

    .topping-inner {
        padding: 108px 15px 0;
        border-radius: 120px 0 0 0;
        gap: 40px;
        background: #ff7500;
        box-shadow: none;
        max-width: 100%;
    }

    .topping-title-block {
        gap: 40px;
        max-width: 1100px;
        width: 100%;
        margin: 0 auto;
        align-items: center;
        position: relative;
    }

    .topping-title-group {
        gap: 8px;
        align-items: center;
        justify-content: center;
    }

    .topping-title-content {
        gap: 16px;
        align-items: center;
    }

    .topping-title {
        font-size: 40px;
        line-height: 1.48;
        text-align: center;
        color: #fff;
        white-space: nowrap;
    }

    .topping-title-underline {
        width: 400px;
        height: 5.662px;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }

    .topping-number-badge {
        position: absolute;
        top: -179.92px;
        left: 50%;
        transform: translateX(-50%);
    }

    .topping-number-circle {
        width: 130px;
        height: 130px;
        font-size: 56px;
        line-height: 1.48;
        border-radius: 65px;
        background: #f55600;
        border: none;
        box-shadow: none;
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .topping-illustration {
        width: 645px;
        height: 277px;
        margin: 0 auto;
        position: relative;
    }

    .topping-illustration-card {
        width: 645px;
        height: 277px;
        padding-top: 66px;
        border-radius: 20px;
        border: none;
        box-shadow: none;
        background: #fff;
        position: relative;
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }

    .topping-illustration-text {
        font-size: 20px;
        line-height: 1.48;
        width: 486px;
        text-align: center;
        color: #000;
        position: absolute;
        top: 36px;
        left: 50%;
        transform: translateX(-50%);
        margin: 0;
    }

    .topping-illustration-card::after {
        width: 450px;
        height: 172px;
        bottom: -7px;
    }

    .topping-copy-block {
        gap: 10px;
        max-width: 1100px;
        width: 100%;
        margin: 0 auto;
        align-items: center;
        justify-content: center;
    }

    .topping-badge-container {
        width: 250px;
    }

    .topping-copy-content {
        gap: 20px;
        align-items: center;
        width: 100%;
        flex-direction: column;
    }

    .topping-copy-title {
        font-size: 28px;
        line-height: 1.48;
        width: auto;
        color: #fff;
        text-align: center;
        margin: 0;
    }

    .topping-copy-title p {
        margin: 0;
        white-space: pre;
    }

    .topping-copy-title p::after {
        content: "自由に選べる！";
    }

    .topping-copy-title br {
        display: none;
    }

    .topping-copy-emphasis {
        display: none;
    }

    .topping-copy-description {
        font-size: 18px;
        line-height: 1.4;
        max-width: 100%;
        color: #fff;
        text-align: center;
    }

    .topping-copy-description p {
        margin: 0;
    }
}

/* セクション */
.kihonhosyou-block {
    background: #ff7500;
    padding: 0;
    width: 100%;
    margin: 0 auto;
}

.kihonhosyou-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 4.27vw;
}

/* ヘッダー */
.kihonhosyou-header {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 2.13vw;
    width: 100%;
}

.kihonhosyou-header-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #ffffff;
    text-align: center;
    margin: 0;
}

.kihonhosyou-header-icon {
    width: 6.93vw;
    height: 8.8vw;
}

.kihonhosyou-tap-icon {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* リストコンテナ */
.kihonhosyou-list-container {
    background: #ffffff;
    border: 0.53vw solid #000000;
    border-radius: 4.27vw;
    padding: 8.53vw 4.27vw;
    width: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}

.kihonhosyou-list-inner {
    display: flex;
    flex-direction: column;
    gap: 6.5vw;
    width: 100%;
    max-width: 83.47vw;
    box-sizing: border-box;
}

.kihonhosyou-list-container {
    height: 170.67vw;
    transition: 0.25s;
    overflow: hidden;
}


/* カテゴリー */
.kihonhosyou-category {
    display: flex;
    flex-direction: column;
    gap: 1.27vw;
}

.kihonhosyou-category-selectable {
    gap: 0;
}

.kihonhosyou-category-expanded {
    gap: 6.4vw;
}

.kihonhosyou-category-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #f55600;
    letter-spacing: -0.15vw;
    margin: 0 0 1.07vw 0;
}

.kihonhosyou-category-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 5.33vw;
    line-height: 1.48;
    color: #f55600;
    margin: 0 0 4.27vw 0;
}

.kihonhosyou-category-selectable .kihonhosyou-category-title {
    margin: 0 0 6.4vw 0;
}

.kihonhosyou-category-expanded .kihonhosyou-category-title {
    display: none;
}

/* グリッド */
.kihonhosyou-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 3.2vw;
    width: 100%;
    justify-content: space-between;
    align-items: flex-start;
}

/* カード */
.kihonhosyou-card {
    background: #fff2e6;
    border-radius: 2.67vw;
    width: calc((100% - 3.2vw) / 2);
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    padding-bottom: 2.67vw;
    flex-shrink: 0;
    box-sizing: border-box;
}

.kihonhosyou-card-image {
    width: 100%;
    height: 21.87vw;
    background: #e9f1fb;
    border-bottom: 0.53vw solid #ffffff;
    border-radius: 2.67vw 2.67vw 0 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.kihonhosyou-card-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.kihonhosyou-card-content {
    padding: 0 2.13vw;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 3.2vw;
    position: relative;
}

.kihonhosyou-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    letter-spacing: -0.15vw;
    margin: 0;
    flex: 1;
}

.kihonhosyou-note-mark {
    font-size: 2.41vw;
}

.kihonhosyou-note-mark-small {
    font-size: 2.41vw;
}

.kihonhosyou-card-icon {
    position: absolute;
    right: 2.13vw;
    width: 6.4vw;
    height: 6.4vw;
    background: url('../images/icon_modal_3.png') no-repeat center center;
    background-size: contain;
}

/* ピル（丸角ボタン） */
.kihonhosyou-pill {
    background: #fff2e6;
    border-radius: 8vw;
    width: calc((100% - 3.2vw) / 2);
    padding: 1.6vw 6.4vw 1.6vw 2.13vw;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3.2vw;
    position: relative;
    flex-shrink: 0;
}

.kihonhosyou-pill-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    letter-spacing: -0.15vw;
    margin: 0;
    flex: 1;
}

.kihonhosyou-pill-icon {
    position: absolute;
    right: 2.13vw;
    width: 6.4vw;
    height: 6.4vw;
    background: url('../images/icon_modal_3.png') no-repeat center center;
    background-size: contain;
}

/* 注釈 */
.kihonhosyou-note {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
}

.kihonhosyou-note-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #585858;
    margin: 0;
    display: flex;
    gap: 1.07vw;
}

.kihonhosyou-note-label {
    flex-shrink: 0;
}

/* 展開ボタン */
.kihonhosyou-expand-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    margin: 0 auto;
    width: 6.4vw;
    height: 6.4vw;
}

.kihonhosyou-plus-icon {
    width: 6.4vw;
    height: 6.4vw;
    object-fit: contain;
}

/* 選べる補償・特約 */
.kihonhosyou-pill-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1.07vw;
    width: 100%;
}

.kihonhosyou-pill-select {
    background: #fff2e6;
    border-radius: 8vw;
    padding: 1.07vw 1.07vw 1.07vw 4.27vw;
    display: flex;
    align-items: center;
    gap: 1.07vw;
    position: relative;
}

.kihonhosyou-pill-select-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #333333;
    text-align: center;
    letter-spacing: -0.15vw;
    margin: 0;
}

.kihonhosyou-pill-select-icon {
    width: 6.4vw;
    height: 6.4vw;
    background: url('../images/icon_modal_3.png') no-repeat center center;
    background-size: contain;
    flex-shrink: 0;
}

.kihonhosyou-pill-select-icon-empty {
    background: url('../images/icon_white.png') no-repeat center center;
    background-size: contain;
    opacity: 0.5;
}

/* もっと見るボタン */
.kihonhosyou-more-btn {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 26.67vw;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 53.5%);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 1.07vw;
    padding-bottom: 8.53vw;
    cursor: pointer;
    pointer-events: none;
}

.kihonhosyou-more-btn>* {
    pointer-events: auto;
}

.kihonhosyou-more-text {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #f55600;
    text-align: center;
    letter-spacing: -0.15vw;
    padding-right: 4.53vw;
    margin: 0;
    background: url('../images/arrow_down.png') no-repeat right;
    background-size: 3vw;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .kihonhosyou-block {
        width: 100%;
    }

    .kihonhosyou-container {
        width: 100%;
        box-sizing: border-box;
    }

    .kihonhosyou-list-container {
        width: 100%;
        box-sizing: border-box;
        height: 170.67vw;
    }

    .kihonhosyou-list-inner {
        width: 100%;
        max-width: 313px;
        box-sizing: border-box;
    }
}

@media (min-width: 768px) {
    .kihonhosyou-block {
        padding: 0;
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    .kihonhosyou-container {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding-top: 108px;
        background: #ff7500;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
    }

    .kihonhosyou-list-container {
        max-width: 1100px;
        width: 1100px;
        margin: 0 auto;
        padding: 64px 72px 28px;
        border: 3px solid #000;
        border-radius: 16px;
        background: #fff;
        box-shadow: none;
        position: relative;
        height: 800px;
        overflow: hidden;
        box-sizing: border-box;
    }

    .kihonhosyou-list-inner {
        width: 100%;
        max-width: 100%;
        gap: 28px;
        box-sizing: border-box;
    }

    .kihonhosyou-header {
        gap: 8px;
        margin-bottom: 12px;
        justify-content: center;
        align-items: flex-end;
    }

    .kihonhosyou-header-text {
        font-size: 22px;
        line-height: 1.2;
        color: #fff;
    }

    .kihonhosyou-header-icon {
        width: 28px;
        height: 36px;
    }

    .kihonhosyou-list-inner {
        gap: 28px;
    }

    .kihonhosyou-expandable .kihonhosyou-category {
        gap: 0;
    }

    .kihonhosyou-category-title {
        font-size: 24px;
        line-height: 1.48;
        color: #f55600;
        margin: 0;
    }

    .kihonhosyou-grid {
        justify-content: center;
    }

    .kihonhosyou-category:first-child .kihonhosyou-grid {
        gap: 24px;
        width: 100%;
    }

    .kihonhosyou-card {
        width: 264px;
        height: 207px;
        padding: 0;
        gap: 16px;
        border-radius: 12px;
        border: none;
        background: #fff2e6;
        display: flex;
        flex-direction: column;
        flex-shrink: 0;
        margin: 0;
    }

    .kihonhosyou-card:first-of-type {
        margin-left: 10%;
    }

    .kihonhosyou-card:nth-of-type(2) {
        margin-right: 10%;
    }


    .kihonhosyou-card-image {
        width: 264px;
        height: 145px;
        border-radius: 12px 12px 0 0;
        border-bottom: 3px solid #fff;
        flex-shrink: 0;
    }

    .kihonhosyou-card-content {
        height: auto;
        padding: 0 0 16px 0;
        gap: 0;
        position: relative;
    }

    .kihonhosyou-card-title {
        font-size: 20px;
        line-height: 1.48;
        text-align: center;
        color: #333;
        letter-spacing: 0;
    }

    .kihonhosyou-note-mark,
    .kihonhosyou-note-mark-small {
        font-size: 0.5em;
        vertical-align: 1em;
        color: inherit !important;
    }

    .kihonhosyou-card-icon {
        width: 30px;
        height: 30px;
        right: 16px;
        bottom: 16px;
        position: absolute;
    }

    .kihonhosyou-pill {
        height: 54px;
        padding: 12px 16px;
        border-radius: 30px;
        border: none;
        background: #fff2e6;
        gap: 4px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        position: relative;
        width: 300px;
    }

    .kihonhosyou-pill-title {
        font-size: 18px;
        line-height: 1.4;
        color: #000;
        text-align: center;
        flex: 1;
        letter-spacing: 0;
    }

    .kihonhosyou-pill-icon {
        width: 30px;
        height: 30px;
        position: absolute;
        right: 16px;
        top: 50%;
        transform: translateY(-50%);
        flex-shrink: 0;
    }

    .kihonhosyou-note {
        margin-top: 32px;
    }

    .kihonhosyou-note-text {
        font-size: 12px;
        line-height: 1.48;
        color: #585858;
    }

    .kihonhosyou-expand-btn {
        display: none;
    }

    .kihonhosyou-plus-icon {
        width: 24px;
        height: 24px;
    }

    .kihonhosyou-category-subtitle {
        font-size: 16px;
        line-height: 1.4;
        color: #f55600;
        letter-spacing: 0;
        margin: 0;
    }

    .kihonhosyou-pill-grid {
        gap: 24px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        width: 956px;
        margin: 32px 0 0;
    }

    .kihonhosyou-category-selectable .kihonhosyou-category-title {
        color: #d95636;
    }

    .kihonhosyou-pill-select {
        padding: 12px 16px 12px 40px;
        border-radius: 30px;
        height: 54px;
        background: #fff2e6;
        border: none;
        display: flex;
        align-items: center;
        justify-content: space-between;
        position: relative;
        gap: 4px;
    }

    .kihonhosyou-pill-select-title {
        font-size: 18px;
        line-height: 1.4;
        color: #000;
        text-align: center;
        flex: 1;
        letter-spacing: 0;
    }

    .kihonhosyou-pill-select-icon {
        width: 30px;
        height: 30px;
        position: absolute;
        right: 16px;
        top: 50%;
        transform: translateY(-50%);
        flex-shrink: 0;
    }

    .kihonhosyou-more-btn {
        width: 1100px;
        height: 186px;
        padding-bottom: 56px;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 53.5%);
        bottom: -0.61px;
    }

    .kihonhosyou-more-text {
        font-size: 18px;
        line-height: 1.48;
        color: #d95636;
        letter-spacing: 0;
        padding-right: 17px;
        background-size: 13px;
    }

}

/* セクション */
.plan-block {
    padding: 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 10.67vw;
}

.plan-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* カード */
.plan-card {
    background: #ffffff;
    border-radius: 4.27vw;
    width: 100%;
    padding: 8.53vw 4vw;
    display: flex;
    flex-direction: column;
    gap: 8.53vw;
    position: relative;
}

/* さらに!バッジ */
.plan-badge {
    position: absolute;
    top: -4vw;
    left: 3.47vw;
    width: 22.93vw;
}

/* タイトルグループ */
.plan-title-group {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    align-items: center;
}

.plan-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 5.33vw;
    line-height: 1.48;
    color: #000000;
    text-align: center;
    margin: 0;
}

.plan-title-underline {
    width: 10.13vw;
    height: 0;
    border-bottom: 0.27vw solid #ff7500;
}

/* コンテンツ */
.plan-content {
    display: flex;
    flex-direction: column;
    gap: 5.33vw;
}

.plan-description-group {
    display: flex;
    flex-direction: column;
    gap: 4.27vw;
}

.plan-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #000000;
    margin: 0;
}

.plan-highlight {
    font-weight: 700;
    color: #f55600;
}

/* 注釈 */
.plan-note {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
}

.plan-note-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #585858;
    margin: 0;
    display: flex;
    gap: 1.07vw;
}

.plan-note-label {
    flex-shrink: 0;
}

/* ケーススタディ */
.plan-cases {
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
}

.plan-cases-header {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    height: 5.867vw;
}

.plan-cases-line {
    width: 5.568vw;
    height: 0;
    border-bottom: 0.4vw solid #000000;
    margin-bottom: 3vw;
}

.plan-cases-line-left {
    transform: rotate(73.301deg);
}

.plan-cases-line-right {
    transform: rotate(106.699deg) scaleY(-1);
}

.plan-cases-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.267vw;
    line-height: 1.4;
    color: #000000;
    text-align: center;
    margin: 0;
}

/* カルーセル */
.plan-carousel-wrapper {
    width: 84vw;
    overflow: hidden;
    position: relative;
}

.plan-carousel {
    display: flex;
    gap: 3.2vw;
    transition: transform 0.5s ease;
}

.plan-case-card {
    width: 84vw;
    min-width: 84vw;
    height: 128vw;
    background: #fff2e6;
    border-radius: 3.2vw;
    padding: 7.467vw 4.267vw 9.6vw;
    display: flex;
    flex-direction: column;
    gap: 4.267vw;
    flex-shrink: 0;
}

/* ケースヘッダー */
.plan-case-header {
    display: block;
    width: 34.13vw;
    margin: auto;
}

/* ケース説明 */
.plan-case-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 4.267vw;
    line-height: 1.4;
    color: #000000;
    margin: auto;
}

/* ケース画像 */
.plan-case-image {
    width: 75.467vw;
    height: 40.578vw;
    background: #ffffff;
    border-radius: 4vw;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.plan-case-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ベネフィット */
.plan-case-benefit {
    padding: 4.267vw 0;
    display: flex;
    flex-direction: column;
    gap: 2.667vw;
    align-items: center;
    justify-content: center;
    position: relative;
}

.plan-case-benefit-text {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.733vw;
    line-height: 1.4;
    color: #000000;
    text-align: center;
    margin: 0;
    z-index: 1;
}

.plan-case-benefit-text::before {
    content: '';
    position: absolute;
    width: 75.47vw;
    height: 22.13vw;
    background-image: url(../images/message-bubble4.png);
    background-position: top;
    background-size: 100%;
    background-repeat: no-repeat;
    bottom: -4vw;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    background-size: 100%;
    z-index: -1;
}

/* ケース注釈 */
.plan-case-note {
    display: flex;
    flex-direction: column;
    gap: 2.133vw;
}

.plan-case-note-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #585858;
    margin: 0;
    display: flex;
    gap: 1.067vw;
}

.plan-case-note-label {
    flex-shrink: 0;
}

.plan-carousel .slick-list {
    margin: 0 -2vw;
}

.plan-carousel .slick-slide {
    padding: 0 2vw;
}

.plan-carousel .slick-dotted.slick-slider {
    padding-bottom: 12.27vw;
}

.plan-carousel .slick-prev {
    bottom: 0;
    left: 0;
    background-image: url(../images/carousel_button_left2.png);
}

.plan-carousel .slick-next {
    bottom: 0;
    right: 0;
    background-image: url(../images/carousel_button_right2.png);
}

.plan-carousel .slick-dots {
    bottom: 3.5vw;
}

/* PC */
@media (min-width: 768px) {
    .plan-section {
        background: #f8f5f2;
        padding: 0;
    }

    .plan-container {
        max-width: 100%;
        margin: 0;
        padding: 108px 15px 88px;
        background: #ff7500;
        box-shadow: 0px 0px 20px 0px rgba(89, 89, 89, 0.18);
    }

    .plan-card {
        max-width: 1100px;
        width: 1100px;
        margin: 0 auto;
        padding: 56px 72px;
        gap: 52px;
        border: none;
        border-radius: 12px;
        background: #fff;
        box-shadow: none;
        position: relative;
    }

    .plan-badge {
        display: none;
    }

    .plan-title-group {
        gap: 16px;
        align-items: center;
    }

    .plan-title {
        font-size: 28px;
        line-height: 1.48;
        text-align: center;
        color: #000;
    }

    .plan-title br {
        display: none;
    }

    .plan-title-underline {
        width: 40px;
        height: 0;
        border-bottom: 2.5px solid #ff7500;
    }

    .plan-content {
        gap: 40px;
    }

    .plan-description-group {
        gap: 32px;
    }

    .plan-description {
        font-size: 18px;
        line-height: 1.4;
        text-align: left;
        color: #000;
    }

    .plan-highlight {
        color: #f55600;
    }

    .plan-note {
        justify-content: center;
    }

    .plan-note-text {
        font-size: 12px;
        line-height: 1.48;
        color: #585858;
        text-align: center;
    }

    .plan-cases {
        gap: 24px;
    }

    .plan-cases-header {
        gap: 4px;
    }

    .plan-cases-line {
        width: 20.881px;
        height: 0;
        border-bottom: 1.5px solid #000;
    }

    .plan-cases-title {
        font-size: 18px;
        line-height: 1.4;
        color: #000;
    }

    .plan-carousel-wrapper {
        width: 100%;
        max-width: 100%;
        margin: 0;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 48px;
        overflow: visible;
        height: auto;
    }

    .plan-carousel {
        display: contents;
    }

    .plan-case-card {
        width: 100%;
        min-width: auto;
        height: 599px;
        padding: 40px 48px 54px;
        gap: 32px;
        border-radius: 12px;
        border: none;
        box-shadow: none;
        background: #fff2e6;
    }

    .plan-case-header {
        width: 128px;
    }

    .plan-case-icon {
        width: 29px;
        height: 29px;
    }

    .plan-case-description {
        font-size: 18px;
        line-height: 1.4;
        color: #000;
        margin: 0;
    }

    .plan-case-image {
        width: 358px;
        height: 206px;
        border-radius: 15px;
    }

    .plan-case-benefit {
        padding: 24px 16px;
        gap: 10px;
        position: relative;
    }

    .plan-case-benefit-text {
        font-size: 18px;
        line-height: 1.4;
        color: #000;
        text-align: center;
    }


    .plan-case-benefit-text::before {
        width: 358px;
        height: 109px;
        bottom: -24px;
    }

    .plan-case-note {
        height: 18px;
    }

    .plan-case-note-text {
        font-size: 12px;
        line-height: 1.48;
        color: #585858;
    }
}


/* PC */
@media (min-width: 768px) {
    .plan-block {
        padding: 0;
    }

    .plan-container {
        max-width: 100%;
        margin: 0;
        padding: 40px 0 0;
        background: #ff7500;
        box-shadow: none;
    }

    .plan-card {
        max-width: 1100px;
        width: 1100px;
        margin: 0 auto;
        padding: 56px 72px;
        gap: 52px;
        border: none;
        border-radius: 12px;
        background: #fff;
        box-shadow: none;
        position: relative;
    }

    .plan-badge {
        display: none;
    }

    .plan-title-group {
        gap: 16px;
        align-items: center;
    }

    .plan-title__label {
        width: 100px;
    }

    .plan-title {
        font-size: 28px;
        line-height: 1.48;
        text-align: center;
        color: #000;
    }

    .plan-title br {
        display: none;
    }

    .plan-title-underline {
        width: 40px;
        height: 0;
        border-bottom: 2.5px solid #ff7500;
    }

    .plan-content {
        gap: 32px;
    }

    .plan-description-group {
        gap: 32px;
    }

    .plan-description {
        font-size: 18px;
        line-height: 1.4;
        text-align: center;
        color: #000;
    }

    .plan-highlight {
        color: #f55600;
    }

    .plan-note {
        justify-content: center;
    }

    .plan-note-text {
        font-size: 12px;
        line-height: 1.48;
        color: #585858;
        justify-content: center;
    }

    .plan-cases {
        gap: 24px;
    }

    .plan-cases-header {
        gap: 4px;
        height: auto;
    }

    .plan-cases-line {
        width: 20.881px;
        height: 0;
        border-bottom: 1.5px solid #000;
        margin-bottom: 10px;
    }

    .plan-cases-title {
        font-size: 18px;
        line-height: 1.4;
        color: #000;
    }
}

/* セクション */
.omitumori-button-block {
    margin-top: 10.67vw;
    padding-bottom: 26.67vw;
}

.omitumori-button-container {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
}

/* ボタン */
.omitumori-button {
    background: #266fd0;
    border: 0.4vw solid #000000;
    border-radius: 27.2vw;
    width: 76vw;
    height: 14.4vw;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3.47vw 2.93vw 3.47vw 1.6vw;
    text-decoration: none;
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0vw 0.8vw 0vw 0vw #000000;
}

.omitumori-button:hover {
    transform: translateY(0.53vw);
}

.omitumori-button-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #ffffff;
    text-align: center;
}

.omitumori-button-icon {
    position: absolute;
    right: 2.93vw;
    top: 50%;
    width: 6.4vw;
    height: 6.4vw;
    background-image: url('../images/icon.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

/* PC */
@media (min-width: 768px) {
    .omitumori-button-block {
        padding: 68px 0;
        width: 100%;
        box-shadow: none;
        margin-top: 0;
    }

    .omitumori-button-container {
        max-width: 1100px;
        margin: 0 auto;
        padding: 0 133px;
        display: flex;
        justify-content: center;
        gap: 0;
        box-shadow: none;
    }

    .omitumori-button {
        width: 352px;
        height: 58px;
        background: #266fd0;
        border: 3px solid #000;
        border-radius: 80px;
        box-shadow: 0px 3px 0px 0px #000;
        padding: 8px 10px;
        gap: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .omitumori-button-text {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 700;
        font-size: 18px;
        line-height: 1.4;
        color: #fff;
        text-align: center;
        flex-grow: 1;
    }

    .omitumori-button-icon {
        width: 30px;
        height: 30px;
        position: absolute;
        right: 14px;
        top: 50%;
        transform: translateY(-50%);
    }

    .omitumori-button:hover {
        transform: translateY(2px);
        box-shadow: 0px 1px 0px 0px #000;
    }

    .omitumori-button:active {
        transform: translateY(3px);
        box-shadow: 0px 0px 0px 0px #000;
    }
}

/* セクション */
.question-block {
    width: 100%;
}

.question-wrapper {
    width: 100%;
}

.question-container {
    padding-top: 10.67vw;
    padding-bottom: 10.67vw;
    display: flex;
    flex-direction: column;
    gap: 6.4vw;
    align-items: center;
    width: 100%;
}

/* タイトル */
.question-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 6.4vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
    width: 100%;
}

/* コンテンツ */
.question-content {
    display: flex;
    flex-direction: column;
    gap: 10.67vw;
    align-items: center;
    width: 100%;
}

/* Q&Aリスト */
.question-list {
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
    width: 100%;
}

/* Q&Aアイテム */
.question-item {
    background: #ffffff;
    border-radius: 3.2vw;
    padding: 4.27vw 4.27vw 4.27vw 4vw;
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
}

/* 質問部分 */
.question-q {
    display: flex;
    gap: 3.2vw;
    align-items: center;
    width: 100%;
    cursor: pointer;
}

.question-q-inner {
    display: flex;
    gap: 2.13vw;
    align-items: center;
    flex: 1;
}

.question-q-icon {
    width: 8vw;
    height: 8vw;
    background: #F0ECE6;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.question-q-letter {
    font-family: 'Rubik', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #266FD0;
    text-align: center;
}

.question-q-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
    flex: 1;
    padding-right: 8.53vw;
}


.question-q.accordion__title::before,
.question-q.accordion__title::after {
    right: 0;
}

/* 回答部分 */
.question-item .accordion__inner {
    padding: 0;
}

.question-a {
    display: flex;
    gap: 2.13vw;
    align-items: center;
    padding-right: 8.53vw;
}


.question-a-icon {
    width: 8vw;
    height: 8vw;
    background: #F0ECE6;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.question-a-letter {
    font-family: 'Rubik', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #F55600;
    text-align: center;
}

.question-a-text {
    font-family: 'Noto Sans JP', 'Noto Sans', sans-serif;
    font-weight: 400;
    font-size: 3.73vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
    flex: 1;
}

/* ボタン */
.question-button,
.campaign-button {
    background: #ffffff;
    border: 0.53vw solid #266fd0;
    box-shadow: 0vw 1.07vw 0vw 0vw #266fd0;
    border-radius: 29.33vw;
    width: 76vw;
    height: 14.4vw;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.67vw;
    padding: 2.13vw 0;
    text-decoration: none;
    position: relative;
}

.question-button-text,
.campaign-button-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.4;
    color: #266fd0;
    text-align: center;
    width: 54.67vw;
}

.question-button-icon,
.campaign-button-icon {
    width: 6.4vw;
    height: 6.4vw;
    background-image: url('../images/icon_betumado_blie.png');
    background-size: 6.4vw;
    background-position: center;
    background-repeat: no-repeat;
    flex-shrink: 0;
}

.campaign-button-icon2 {
    width: 6.4vw;
    height: 6.4vw;
    background-size: 6.4vw;
    background-position: center;
    background-repeat: no-repeat;
    flex-shrink: 0;
    background-image: url('../images/icon2.png');
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .question-block {
        width: 100%;
        margin: 0 auto;
        background: #f8f5f2;
    }
}

@media (min-width: 768px) {
    .question-block {
        width: 100%;
        background: #ff7500;
        padding: 0;
    }

    .question-wrapper {
        width: 100%;
    }

    .question-container {
        padding: 64px 15px;
        gap: 24px;
        max-width: 100%;
        margin: 0;
        background: #f0ece6;
        margin-bottom: -1px;
    }

    .question-title {
        font-size: 28px;
        line-height: 1.48;
        text-align: center;
    }

    .question-content {
        gap: 24px;
        max-width: 864px;
        margin: 0 auto;
    }

    .question-list {
        gap: 12px;
        max-width: 864px;
        margin: 0;
    }

    .question-item {
        padding: 16px 24px;
        gap: 12px;
        border-radius: 12px;
    }

    .question-q {
        gap: 16px;
    }

    .question-q-inner {
        gap: 16px;
    }

    .question-q-icon {
        width: 34px;
        height: 34px;
    }

    .question-q-letter {
        font-size: 18.133px;
        line-height: 1.48;
    }

    .question-q-text {
        font-size: 16px;
        line-height: 1.48;
        font-weight: 500;
    }

    .question-a {
        gap: 16px;
        padding-right: 24px;
    }

    .question-a-icon {
        width: 34px;
        height: 34px;
    }

    .question-a-letter {
        font-size: 18.133px;
        line-height: 1.48;
    }

    .question-a-text {
        font-size: 16px;
        line-height: 1.48;
        font-weight: 400;
    }

    .question-button,
    .campaign-button {
        width: 352px;
        height: 58px;
        gap: 10px;
        padding: 8px 0;
        border-radius: 110px;
        border: 3px solid #266fd0;
        background: #fff;
        box-shadow: 0px 3px 0px 0px #266fd0;
        margin: auto;
    }

    .question-button-text,
    .campaign-button-text {
        font-size: 18px;
        line-height: 1.4;
        width: 256px;
    }

    .question-button-icon,
    .campaign-button-icon,
    .campaign-button-icon2 {
        width: 30px;
        height: 30px;
        background-size: 30px 30px;
        position: absolute;
        right: 14px;
        top: 14px;
    }
}

/* セクション */
.kakusyusiryou-block {
    padding-top: 6.4vw;
    padding-bottom: 10.67vw;
    width: 100%;
}

.kakusyusiryou-container {
    display: flex;
    flex-direction: column;
    gap: 6.4vw;
    width: 100%;
}

/* タイトル */
.kakusyusiryou-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 6.4vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
}

/* リスト */
.kakusyusiryou-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    width: 100%;
}

.kakusyusiryou-item {
    width: 100%;
}

/* リンク */
.kakusyusiryou-link {
    text-decoration: none;
    width: 100%;
}

.kakusyusiryou-link-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 4.27vw;
    line-height: 1.48;
    color: #000000;
    flex: 1;
    padding-right: 7.47vw;
    background-image: url('../images/icon_betumado.png');
    background-size: 6.4vw;
    background-position: right;
    background-repeat: no-repeat;
    flex-shrink: 0;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .kakusyusiryou-block {
        width: 100%;
        margin: 0 auto;
    }

    .kakusyusiryou-list {
        width: 100%;
    }
}

@media (min-width: 768px) {
    .kakusyusiryou-block {
        width: 100%;
        padding-top: 40px;
        padding-bottom: 40px;
        background: #f0ece6;
    }

    .kakusyusiryou-container {
        margin: 0 auto;
        gap: 24px;
    }

    .kakusyusiryou-title {
        font-size: 28px;
        line-height: 1.48;
        text-align: center;
    }

    .kakusyusiryou-list {
        gap: 0;
        display: flex;
        flex-direction: row;
        justify-content: center;
        max-width: 1100px;
        margin: auto;
    }

    .kakusyusiryou-item {
        position: relative;
        width: max-content;
    }

    .kakusyusiryou-link {
        gap: 4px;
        padding: 0 16px;
    }

    .kakusyusiryou-link-text {
        font-size: 16px;
        line-height: 1.48;
        font-weight: 700;
        padding-right: 28px;
        background-size: 20px;
    }

    .kakusyusiryou-link-icon {
        width: 20px;
        height: 20px;
        background-size: 12px 12px;
    }
}

/* フッター */
.footer {
    background: #dbd6d1;
    padding-top: 10.67vw;
    padding-bottom: 32vw;
    width: 100%;
}

.footer-container {
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
    width: 100%;
}

/* 情報グループ */
.footer-info-group {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    width: 100%;
}

/* 情報アイテム */
.footer-info-item {
    display: flex;
    flex-direction: column;
    gap: 1.07vw;
}

.footer-info-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
}

.footer-info-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
}

/* 免責事項 */
.footer-disclaimer {
    display: flex;
    flex-direction: column;
}

.footer-disclaimer-text {
    font-family: 'Noto Sans JP', 'Noto Sans', sans-serif;
    font-weight: 400;
    text-indent: -1em;
    padding-left: 1em;
    font-size: 3.2vw;
    line-height: 1.48;
    color: #000000;
    margin: 0;
    width: 100%;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .footer {
        width: 100%;
        margin: 0 auto;
    }

    .footer-disclaimer-text {
        width: 100%;
    }
}

@media (min-width: 768px) {
    .footer {
        padding-top: 40px;
        padding-bottom: 232px;
        background: #dbd6d1;
    }

    .footer-container {
        max-width: 864px;
        margin: 0 auto;
        gap: 12px;
    }

    .footer-info-group {
        gap: 8px;
    }

    .footer-info-item {
        gap: 0;
        display: block;
    }

    .footer-info-title {
        font-size: 12px;
        line-height: 1.48;
        font-weight: 700;
        display: inline;
    }

    .footer-info-text {
        font-size: 12px;
        line-height: 1.48;
        font-weight: 400;
        display: inline;
    }

    .footer-disclaimer {
        margin-top: 4px;
    }

    .footer-disclaimer-text {
        font-size: 12px;
        line-height: 1.48;
        font-weight: 400;
        width: 100%;
    }
}
.floating {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: rgba(248, 245, 242, 0.8);
    backdrop-filter: blur(5px);
    box-shadow: 0vw -0.8vw 1.87vw 0vw rgba(0, 0, 0, 0.1);
}

.floating__container {
    margin: 0 auto;
    padding: 3.2vw 4vw;
    display: flex;
    flex-direction: column;
    gap: 2.67vw;
}

/* 割引テキスト */
.floating__text {
    display: flex;
    align-items: center;
    justify-content: center;
}

.floating__text-line {
    width: auto;
    height: 5.33vw;
    flex-shrink: 0;
}

.floating__text-line-note{
    font-size: 0.646em;
}

.floating__text-content {
    font-size: 3.47vw;
    font-weight: 700;
    color: #000;
    text-align: center;
    line-height: 1.4;
    white-space: nowrap;
}

/* ボタンエリア */
.floating__buttons {
    display: flex;
    gap: 1.07vw;
    align-items: center;
}

/* 共通ボタンスタイル */
.floating__btn {
    height: 13.33vw;
    border: 0.4vw solid #000;
    box-shadow: 0vw 1.07vw 0vw 0vw #000;
    border-radius: 26.67vw;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
    gap: 1.07vw;
}

.floating__btn:active {
    transform: scale(0.98);
}

/* プライマリボタン（お見積もり） */
.floating__btn--primary {
    flex: 1;
    background: #266FD0;
    padding: 3.47vw 2.67vw 3.47vw 4vw;
    justify-content: space-between;
}

.floating__btn--primary:hover {
    background: #155CBA;
}

.floating__btn--primary .floating__btn-text {
    font-size: 3.47vw;
    font-weight: 700;
    color: #fff;
    text-align: center;
    line-height: 1.2;
    letter-spacing: -0.14vw;
    flex: 1;
}

.floating__btn-icon {
    width: 6.4vw;
    height: 6.4vw;
    flex-shrink: 0;
}

/* セカンダリボタン（ご相談デスク） */
.floating__btn--secondary {
    width: 34.13vw;
    background: #F55600;
    padding: 3.47vw 2.67vw;
}

.floating__btn--secondary:hover {
    background: #D94D00;
}

.floating__btn-phone-icon {
    width: 7.47vw;
    height: 7.47vw;
    flex-shrink: 0;
}

.floating__btn--secondary .floating__btn-text {
    font-size: 3.2vw;
    font-weight: 700;
    color: #fff;
    text-align: center;
    line-height: 1.24;
    flex: 1;
}

.floating__btn-text--small {
    font-size: 3.2vw;
}

@media (min-width: 768px) {
    .floating__container {
        max-width: 556px;
        margin: 0 auto;
        padding: 10px 0;
        gap: 12px;
    }

    .floating__text-content {
        font-size: 16px;
    }

    .floating__text-line {
        height: 24px;
    }

    .floating__btn {
        height: 58px;
        gap: 8px;
    }

    .floating__btn--primary {
        padding: 18px 16px 18px 24px;
        border: 3px solid #000;
        box-shadow: 0px 3px 0px 0px #000;
    }

    .floating__btn--primary .floating__btn-text {
        font-size: 17px;
        letter-spacing: 0;
    }

    .floating__btn-icon {
        width: 32px;
        height: 32px;
    }

    .floating__btn--secondary {
        width: 180px;
        padding: 18px 20px;
        border: 3px solid #000;
        box-shadow: 0px 3px 0px 0px #000;
    }

    .floating__btn-phone-icon {
        width: 36px;
        height: 36px;
    }

    .floating__btn--secondary .floating__btn-text {
        font-size: 15px;
        line-height: 1.3;
    }
}

/* スクロールに応じた表示制御（オプション） */
.sp-floating.hidden {
    transform: translateY(100%);
    transition: transform 0.3s ease;
}

.sp-floating.visible {
    transform: translateY(0);
    transition: transform 0.3s ease;
}


/* btn */
.btn {
    max-width: 83.957vw;
    width: 100%;
    font-size: 3.99788vw;
    display: flex;
    flex-direction: column;
    height: 14.126vw;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    border-radius: 9999px;
    font-weight: 500;
    text-align: center;
    position: relative;
}

.btn:hover {
    opacity: 0.8;
}

.btn::after {
    content: '';
    background-size: 100%;
    background-repeat: no-repeat;
    position: absolute;
    width: 6.4vw;
    height: 6.4vw;
    top: 0;
    bottom: 0;
    right: 4vw;
    margin: auto;
}

.btn_type1 {
    color: #FFF;
    background-color: #266FD0;
}

.btn_type1 span {
    font-size: 0.8em;
    font-weight: 500;
}

.icon_type1::after {
    background-image: url(../images/icon_betumado_white.png);
}

.btn_type2 {
    color: #FFF;
    background-color: #F55600;
    box-shadow: 0px 0.8vw 0px 0px #000;
    border: 0.4vw solid #000;
}

.icon_type2::after {
    background-image: url(../images/icon_yajirushi1.png);
}

.icon_type3::after {
    background-image: url(../images/arrow_service.png);
}

@media (min-width: 768px) {
    .btn {
        width: 352px;
        height: 56px;
        font-size: 18px;
    }

    .btn::after {
        width: 30px;
        height: 30px;
        right: 10px;
    }
}

/* ---------------------------------------------
*   modal
--------------------------------------------- */
.modal {
    background-color: rgba(0, 0, 0, 0.25);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 100%;
    height: 100vh;
    z-index: 10000;
}

.modal a {
    text-decoration: none;
}

.modal ol,
ul {
    list-style: none;
}

.modal_item {
    width: 92vw;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    position: absolute;
    margin: auto;
    background-color: #fff;
    border-radius: 3.99788vw;
    height: min-content;
    max-height: 90vh;
    box-sizing: border-box;
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.modal_item .modal_inner {
    padding: 10.67vw 7.99573vw;
}

.modal_item::-webkit-scrollbar {
    display: none;
}

.modal_item .close_wrap {
    display: flex;
    justify-content: flex-end;
    position: relative;
}

.modal_item img.modal_close {
    width: 3.8646vw;
    cursor: pointer;
    position: fixed;
    margin: 3.99788vw 3.99788vw auto auto;
}

.modal h4 {
    font-size: 5.3305vw;
    font-weight: bold;
    text-align: center;
}

.modal_img {
    margin: 7.46268vw 0;
}


.compensation_modal p {
    font-size: 4.2644vw;
    margin-bottom: 8.52879vw;
    line-height: 1.78125;
}

.modal_inner_flowborder {
    margin: 32px 0 0;
    border-top: 1.5px solid #F0ECE6;
    width: 120%;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.modal_inner_flow {
    padding-top: 32px;
}

/* ---------------------------------------------
  *   modal
  --------------------------------------------- */
@media (min-width: 768px) {
    .modal_item {
        width: 90%;
        max-width: 816px;
        border-radius: 20px;
    }

    .modal_item .modal_inner {
        padding: 56px 70px;
    }

    .modal_item img.modal_close {
        width: 24px;
        margin: 24px 24px auto auto;
    }

    .modal h4 {
        font-size: 28px;
    }

    .modal_img {
        margin: 48px auto 41px;
        display: block;
        max-width: 336px;
    }

    .compensation_modal .btn {
        width: 192px;
        margin-top: auto;
        padding-right: 20px;
    }

    .compensation_modal p {
        font-size: 18px;
        margin-bottom: 12px;
        line-height: 1.666;
    }

    .compensation_modal p+ul.notes {
        margin-bottom: 12px;
    }
}

.cv_modal ul.dot,
.cv_modal p:last-of-type {
    margin-top: 3.1983vw;
}

.cv_modal ul.dot li {
    text-indent: -1.2em;
    padding-left: 1em;
}

.cv_modal ul.dot li:not(:first-of-type) {
    margin-top: 3.1983vw;
}

.cv_modal p,
.cv_modal ul.dot li,
.mypage p {
    font-size: 3.1983vw;
    line-height: 1.6666;
    color: #585858;
}

.cv_modal .btn+p {
    margin: 3.1983vw 0;
    font-weight: 600;
}

.cv_modal p:not(:first-of-type),
.cv_modal ul.dot {
    text-align: left;
    letter-spacing: -0.01em;
}

.cv_modal ul.dot li a {
    color: #585858;
    text-decoration: underline;
}

.cv_modal p a,
.mypage p a {
    text-decoration: underline;
    color: #585858;
}

@media (min-width: 768px) {
    .cv_modal ul.dot li:not(:first-of-type) {
        margin-top: 12px;
    }


    .cv_modal p,
    .cv_modal ul.dot li,
    .cv_modal ul.notes li,
    .mypage p {
        font-size: 12px;
    }

    .cv_modal ul.dot,
    .cv_modal p:last-of-type {
        margin-top: 12px;
    }

    .cv_modal .btn+p {
        font-size: 18px;
        margin: 32px 0 12px;
    }
}

.modal table {
    border-collapse: collapse;
}

.modal th,
.modal td {
    vertical-align: middle;
    text-align: left;
    font-weight: normal;
    padding: 3.99788vw 1.998934vw;
    font-size: 3.2vw;
    border-top: 1px solid #dbd6d1;
    border-bottom: 1px solid #dbd6d1;
    line-height: 1.48;
}

.modal th {
    background-color: #FFF2E6;
    width: 26.4vw;
}

.modal td {
    padding-left: 3.73vw;
}

.calculation_modal h2 {
    font-size: 5.3305vw;
    margin-bottom: 5.33vw;
    text-align: center;
    font-weight: bold;
    line-height: 1.48;
}

.calculation_modal h3 {
    font-size: 3.1983vw;
    margin: 5.333333vw 0 2.133333vw;
    font-weight: bold;
    line-height: 1.48;
}

.modal h4 {
    font-size: 5.3305vw;
    font-weight: bold;
    text-align: center;
}

.modal_img {
    margin: 7.46268vw 0;
}


.compensation_modal p+ul.notes {
    margin-bottom: 8.52879vw;
}

@media (min-width: 768px) {

    .modal th,
    .modal td {
        padding: 15px 14px;
        font-size: 16px;
        border-top: 1px solid #dbd6d1;
        border-bottom: 1px solid #dbd6d1;
    }

    .modal th {
        width: 38.234%;
    }

    .calculation_modal h2 {
        font-size: 28px;
        margin-bottom: 47px;
    }

    .calculation_modal h3 {
        font-size: 18px;
        margin: 35px 0 9px;
    }

    .modal h4 {
        font-size: 28px;
    }

    .modal_img {
        margin: 48px auto 41px;
        display: block;
        max-width: 336px;
    }

    .compensation_modal .btn {
        width: 192px;
        margin-top: auto;
        padding-right: 20px;
    }

    .compensation_modal p+ul.notes {
        margin-bottom: 12px;
    }
}

/* cp_topics */
.campaign-block {
    background: #f8f5f2;
    border-radius: 0 13.33vw 0 0;
    padding: 10.67vw 4vw
}

.campaign-block .campaign-box {
    background-color: #FFF;
    padding: 8.53vw 4vw;
    border-radius: 3.2vw;
    margin-top: 6.4vw;
}

.campaign-block .campaign-box .card_supplement {
    background-color: #FFF2E6;
    border-radius: 3.2vw;
    padding: 5.33vw 4vw
}

.campaign-block .campaign-box .card_supplement+.card_supplement {
    margin-top: 8.53vw;
}

.campaign-block .campaign-box .card_supplement .sup_note {
    font-size: 0.5em;
    vertical-align: 1em;
    color: inherit !important;
}

.campaign-block .campaign-box ol {
    margin-top: 3.2vw;
}

.campaign-block .campaign-box ol li {
    list-style: none;
    line-height: 1.48;
    font-size: 3.1983vw;
    text-align: left;
    color: #585858;
    text-indent: -1.8em;
    padding-left: 1.8em;
}

.drink.gift.card_supplement h4 {
    margin-bottom: 2.13vw;
}

.drink.gift.card_supplement img {
    margin-bottom: 4.27vw;
}

.drink.gift.card_supplement h4 .fs_xxl {
    font-size: 7.47vw;
}

.drink.gift.card_supplement h4 .fs_xxxl {
    font-size: 8.96vw;
}

.drink.gift.card_supplement p {
    text-align: center;
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1.48;
    margin-bottom: 2.13vw;
}

.gift.card_supplement h4 {
    font-size: 4.266666vw;
    font-weight: bold;
    text-align: center;
    letter-spacing: -0.05em;
    line-height: 1.4;
}

.gift.card_supplement h4 .fc {
    color: #d95636;
    line-height: 1.2;
}

.gift.card_supplement h4 .fs_xl {
    font-size: 6.4vw;
}

.gift.card_supplement h4 .fs_xxl {
    font-size: 8.96vw;
}

.gift_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 2.133333vw auto 4.266666vw;
}

.gift_list img {
    width: 35.983vw;
    height: 35.983vw;
    margin: 0;
}

.gift_list img:first-of-type,
.gift_list img:nth-of-type(2) {
    margin-bottom: 3.99788vw;
}

.introduction.card_supplement {
    margin-top: 4.2644vw;
}

.introduction.card_supplement h4 {
    font-size: 4.266666vw;
    font-weight: bold;
    text-align: center;
    letter-spacing: -0.05em;
    line-height: 1.4;
}

.introduction.card_supplement h4 .fc {
    color: #d95636;
    line-height: 1.2;
}

.introduction.card_supplement h4 .fs_xl {
    font-size: 6.4vw;
}

.introduction.card_supplement h4 .fs_xxl {
    font-size: 8.96vw;
}

.introduction.card_supplement h4+.card_text {
    margin: 4.266666vw auto;
}

.point_01_inner .card_group .card_wrap {
    padding-top: 4.66666vw;
    margin-top: 2.8vw;
}

.point_01_inner .card_group .card_wrap .card {
    padding: 10.66098vw 3.99788vw 8.52879vw;
}

.point_01_inner .card_group .card_wrap .card p.note {
    margin-top: 4.53092vw;
}

/* .calculation_modal---------------------------------------- */
.calculation_modal h2 {
    font-size: 5.3305vw;
    margin-bottom: 5.33vw;
    text-align: center;
    font-weight: bold;
    line-height: 1.48;
}

.calculation_modal h3 {
    font-size: 3.1983vw;
    margin: 5.333333vw 0 2.133333vw;
    font-weight: bold;
    line-height: 1.48;
}

/* .campaign_modal---------------------------------------- */
.campaign_modal .modal_inner>p:first-of-type {
    font-size: 4.2644vw;
    line-height: 1.78125;
    font-weight: 500;
    margin: 0 0 2.133333vw;
}

.campaign_modal .modal_inner>p:nth-of-type(2) {
    margin: 2.133333vw 0 7.46666vw;
    font-size: 3.73134vw;
    font-weight: 500;
    text-align: center;
    letter-spacing: -0.01em;
    line-height: 1;
}

.campaign_detail {
    text-align: center;
    color: #333;
    display: block;
    box-sizing: border-box;
    font-weight: bold;
    background-color: #fff;
    border: solid 0.53305vw #dbd6d1;
    border-radius: 2.66525vw;
}

.campaign_detail a {
    color: #585858;
    text-decoration: underline;
}

.campaign_modal p {
    line-height: 1.6666;
}

.campaign_modal p span {
    color: #d95636;
}

.coupon_img_2 {
    margin: 0 auto;
    display: block;
}

.campaign_detail>dt {
    font-size: 3.73134vw;
    padding: 4.2644vw 0;
}

.campaign_detail>dd {
    padding: 0 0 4.2644vw 0;
    display: none;
    text-align: left;
}

.campaign_detail dt {
    line-height: 1;
    font-weight: bold;
}

.campaign_detail>dd dt {
    font-size: 3.73134vw;
    line-height: 1.4285;
}

.campaign_detail>dd dt:first-of-type {
    margin-top: 7.46666vw;
}

.campaign_detail>dd dt:not(:first-of-type) {
    margin-top: 4.2404vw;
}

.campaign_detail>dd>dl:first-of-type dt {
    color: #d95636;
}

.campaign_detail>dd>dl:nth-of-type(2)>dt {
    font-size: 3.1983vw;
    letter-spacing: -0.04em;
    margin-top: 6.3966vw;
    color: #d95636;
}

.campaign_detail>dd>dl:nth-of-type(2)>dd dt:first-of-type {
    margin-top: 4.2644vw;
}

.campaign_detail>dd dd {
    font-size: 3.1983vw;
    font-weight: 400;
    margin-top: 1.04211vw;
    line-height: 1.6666;
}

.campaign_detail>dd>dl {
    padding: 0 3.99788vw;
}

.campaign_detail>dd dd p {
    font-weight: 600;
}

.campaign_detail>dd dd ul.notes {
    margin-top: 1.88966vw;
}

.campaign_detail>dd dd ul.dot li:not(:first-of-type) {
    margin-top: 0.71322vw;
}

.campaign_detail>dd dd dt {
    margin: 1.88966vw 0 !important;
    color: #333333 !important;
    font-size: 3.1983vw;
    font-weight: 400;
}

.campaign_code {
    font-size: 3.1983vw;
    margin-top: 4.2404vw;
    padding: 0 3.99788vw;
    font-weight: normal;
}

.coupon_img_2 {
    margin: 0 auto;
    display: block;
}


.campaign_modal .modal_inner>p:first-of-type {
    font-size: 4.2644vw;
    margin: 0 0 2.133333vw;
    line-height: 1.78125;
    font-weight: 500;
}

.campaign_modal .modal_inner>p:nth-of-type(2) {
    margin: 2.133333vw 0 7.46666vw;
    font-size: 3.73134vw;
    font-weight: 500;
    text-align: center;
    letter-spacing: -0.01em;
    line-height: 1;
}


.campaign_modal table {
    table-layout: fixed;
    width: 100%;
    border-collapse: collapse;
}

.campaign_modal table:nth-of-type(2) th {
    width: 42.155%;
}

.campaign_modal th,
.campaign_modal td {
    padding: 3.99788vw 1.998934vw;
    font-size: 3.2vw;
    border-top: 1px solid #dbd6d1;
    border-bottom: 1px solid #dbd6d1;
    line-height: 1.48;
}

.campaign_modal td {
    padding-left: 3.73vw;
}

.campaign_modal th {
    background-color: #f8f5f2;
    width: 26.4vw;
}

@media (min-width: 768px) {

    .campaign-block {
        background: #f0ece6;
        border-radius: 0 120px 0 0;
        padding: 64px 0 0;
    }

    .campaign-title {
        text-align: center;
    }

    .campaign-block .campaign-box {
        width: 884px;
        padding: 56px 72px;
        border-radius: 12px;
        margin: 24px auto 0;
    }

    .campaign-block .campaign-box .card_supplement {
        border-radius: 12px;
        padding: 32px 15px;
    }

    .campaign-block .campaign-box .card_supplement+.card_supplement {
        margin-top: 40px;
    }

    .campaign-block .campaign-box ol {
        margin-top: 12px;
    }

    .campaign-block .campaign-box ol li {
        font-size: 12px;
    }

    .drink.gift.card_supplement h4 {
        margin-bottom: 8px;
    }

    .drink.gift.card_supplement img {
        width: 251px;
        margin: 0 auto 16px;
    }

    .drink.gift.card_supplement h4 .fs_xxl {
        font-size: 32px;
    }

    .drink.gift.card_supplement h4 .fs_xxxl {
        font-size: 46px;
    }

    .drink.gift.card_supplement p {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .gift.card_supplement {
        padding: 51px 28px 33px;
        margin-top: 32px;
    }

    .gift.card_supplement h4 {
        font-size: 18px;
        line-height: 1.4;
    }

    .gift.card_supplement h4 .fc {
        color: #d95636;
        line-height: 1.2;
    }

    .gift.card_supplement h4 .fs_xl {
        font-size: 22px;
    }

    .gift.card_supplement h4 .fs_xl {
        font-size: 32px;
    }

    .gift.card_supplement h4 .fs_xxl {
        font-size: 46px;
    }


    .gift_list {
        margin: 40px auto 32px;
        max-width: 648px;
        width: 100%;
        justify-content: space-evenly;
    }

    .gift_list img {
        width: 144px;
        height: 144px;
        margin-top: 0;
    }

    .gift_list img:first-of-type,
    .gift_list img:nth-of-type(2) {
        margin-bottom: 0;
    }

    .introduction.card_supplement {
        padding: 40px 28px;
    }

    .introduction.card_supplement h4 {
        font-size: 18px;
    }

    .introduction.card_supplement h4 .fc {
        color: #d95636;
        line-height: 1.2;
    }

    .introduction.card_supplement h4 .fs_lg {
        font-size: 22px;
    }

    .introduction.card_supplement h4 .fs_xl {
        font-size: 32px;
    }

    .introduction.card_supplement h4 .fs_xxl {
        font-size: 46px;
    }

    .introduction.card_supplement h4+.card_text {
        margin: 16px auto;
    }

    .introduction.card_supplement img {
        width: 352px;
    }

    .introduction.card_supplement img {
        margin-bottom: 16px;
    }

    /* .calculation_modal */
    .calculation_modal h2 {
        font-size: 28px;
        margin-bottom: 47px;
    }

    .calculation_modal h3 {
        font-size: 18px;
        margin: 35px 0 9px;
    }

    
    .campaign_modal th,
    .campaign_modal td {
        padding: 15px 14px;
        font-size: 16px;
        border-top: 1px solid #dbd6d1;
        border-bottom: 1px solid #dbd6d1;
    }

    
    .campaign_modal th {
        width: 38.234%;
    }

    .campaign_detail {
        border: solid 2px #dbd6d1;
        border-radius: 14px;
    }

    .campaign_modal .modal_inner>p:first-of-type {
        font-size: 18px;
        line-height: 1.78125;
        font-weight: 500;
        margin: 0 0 24px;
        text-align: center;
    }

    .coupon_img_2 {
        width: 336px;
        margin: 0 auto;
        display: block;
    }

    .campaign_modal .modal_inner>p:nth-of-type(2) {
        margin: 16px 0 24px;
        font-size: 16px;
    }

    .campaign_detail>dd dt:first-of-type,
    .campaign_detail>dd dt:not(:first-of-type) {
        margin-top: 23.5082px;
    }

    .campaign_detail>dd>dl:nth-of-type(2)>dd dt:first-of-type {
        margin-top: 24px;
    }

    .campaign_detail>dt {
        font-size: 18px;
        padding: 20px 0;
    }

    .campaign_detail>dd {
        padding: 0 0 20px 0;
    }

    .campaign_detail>dd>dl:nth-of-type(2)>dt {
        font-size: 18px;
        letter-spacing: 0;
        margin-top: 32px;
    }

    .campaign_detail>dd dt {
        font-size: 16px;
    }

    .campaign_detail>dd dd {
        margin-top: 7.5082px;
        font-size: 14px;
    }

    .campaign_detail>dd>dl {
        padding: 0 48px 14px;
    }

    .campaign_detail>dd dd ul.notes {
        margin-top: 16px;
    }

    .campaign_detail>dd dd dt {
        margin: 7.5082px 0 !important;
        font-size: 14px;
    }

    .campaign_code {
        font-size: 16px;
        margin-top: 0;
        padding: 0 48px;
    }
}