* {
    margin: 0;
}
p{
}
img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}
a {
    color: inherit;
    text-decoration: none;
}
.pc {
    display: block;
}
.sp {
    display: none;
}
@media all and (min-width: 0px) and (max-width: 767px) {
    .pc {
        display: none !important;
    }
    .sp {
        display: block !important;
    }
}

@media all and (min-width: 768px) {
    .container {
        padding: 0;
        overflow-x: hidden;
        display: flex;
        justify-content: center;
        align-items: flex-start;
}
    }

    .wrapper {
        box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.15);
        max-width: 1080px;
        width: 100%;
        margin: 0 auto;
    }
}

.header {
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    position: relative;
    z-index: 10;
}

.header_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1080px;
    margin: 0 auto;
}

.header_cta {
    margin: 0;
    padding: 0;
}

.header_logo {
    margin-left: 20px;
    margin-top: 20px;
    margin-bottom: 20px;
}

.header_logoimg {
    width: 320px;
    height: auto;
    display: block;
}

.header_ctaimg {
    display: block;
    width: 100%;
    height: auto;
}
.header_cta.pc {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    margin-right: 20px;
}
.header_cta_box {
    display: inline-block;
    text-align: center;
    width: 300px;
}
.header_cta_ttl {
    background-color: #00b521;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    padding: 2px 3px 2px 7px;
    margin-bottom: 3px;
    line-height: 1.4;
}
.header_cta_txt {
    display: flex;
    align-items: center;
    justify-content: center;
}
.header_cta_icon {
    width: 28px;
    height: auto;
    display: inline-block;
    margin-right: -10px;
}
.header_cta_txt p {
    margin: 0;
    font-size: 35px;
    font-weight: 1000;
    color: #00b521;
    line-height: 1;
    font-family: Arial, sans-serif !important;
    transform: scale(0.9, 1);
}
@media screen and (max-width: 768px) {
    .header_inner {
        flex-direction: row;
        justify-content: space-between;
    }
    .header_logo {
        margin-top: 0;
        margin-bottom: 0;
        width: 37%;
    }
    .header_logoimg {
        width: 100%;
    }
    .header_cta {
        width: 37%;
    }
    .header_ctaimg {
        width: 100%;
    }
}
.fv {
    position: relative;
    background-color: #f2fdff;
    height: auto;
}
.cta_pc {
    background-image: linear-gradient(0deg, #ffcc1c 60%, #f2fdff);
    height: auto;
    padding-bottom: 70px;
}
.cta2_pc {
    padding-top: 5vw;
    background-image: linear-gradient(0deg, #ffcc1c 60%, #fff);
    height: auto;
    padding-bottom: 70px;
}
.fv_inner_pc {
    position: relative;
    width: 90%;
    max-width: 1080px;
    height: 100%;
    margin: 0 auto;
    padding: 20px;
    pointer-events: none;
}
.fv_top_pc {
    position: relative;
    margin: auto;
    width: 90%;
    pointer-events: none;
}
.fv_img2 {
    position: absolute;
    top: 100px;
    right: 0;
    width: 100%;
    z-index: 1;
    pointer-events: none;
}
.fv_img1 {
    position: absolute;
    top: 0;
    right: 0;
    height: 80%;
    width: auto;
    z-index: 2;
    pointer-events: none;
}
.fv_main {
    position: relative;
    width: 100%;
    height: auto;
    z-index: 3;
    pointer-events: none;
}
.fv_cta_wrap {
    position: relative;
}
.cta_inner_pc {
    background-color: #fff;
    margin-left: 8%;
    margin-right: 8%;
    z-index: 10;
    height: auto;
    border-radius: 8px;
    border: solid 2px #333;
    position: relative;
    padding: 2.3%;
}
.cta_price_wrap {
    position: relative;
    width: 100%;
    margin: 0 auto;
}
.fv_price_img {
    width: 100%;
    display: block;
    pointer-events: none;
}
.cta_btn {
    position: absolute;
    top: 110%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    width: 100%;
}
.cta_btnimg {
    width: 100%;
    display: block;
    pointer-events: none;
}
.cta_btn_inner {
    position: absolute;
    top: 83%;
    left: 44%;
    transform: translate(-50%, -50%);
    z-index: 11;
}
.cta_btn_inner p {
    font-size: clamp(28px, 7vw, 77px);
    font-family: Arial, sans-serif !important;
    font-weight: 1000;
    margin: 0;
    line-height: 1;
    transform: scale(0.9, 1);
    display: inline-block;
    color: #e30707;
    white-space: nowrap;
}
.cta_under1 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: 10px;
    margin: clamp(100px, 21vw, 230px) 10px 10px 0;
    background-color: #eaeaea;
}
.cta_under_inner_left {
    background-color: #333;
    color: #ffcc1c;
    font-size: clamp(14px, 1.8vw, 20px);
    font-weight: bold;
    line-height: 1.2;
    width: 22%;
    padding: 8px 4px;
    text-align: center;
    position: relative;
}
.cta_under_inner_left::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -10px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 10px solid #333;
}
.cta_under_inner_left p {
    white-space: nowrap;
}
.cta_under_inner_right {
    text-align: center;
    width: 78%;
    font-size: clamp(14px, 2vw, 20px);
    font-weight: 1000;
    line-height: 1.5;
    color: #333;
}
.cta_under_inner_right p {
    margin: 0;
    white-space: nowrap;
    display: inline-block;
}
.cta_under_inner_right .red {
    color: #d90000;
    font-weight: 1000;
}
.current_time {
    font-size: clamp(20px, 2.5vw, 40px);
    font-weight: 1000;
}
.cta_under2 {
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 10px;
    margin-top: 10px;
}
.cta_under_inner {
    width: calc((100% - 30px) / 4);
    background-color: #eaeaea;
    border-radius: 8px;
    box-sizing: border-box;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 80px;
    padding: 10px 5px;
    position: relative;
}
.cta_under_item {
    width: auto;
    height: auto;
    max-width: 80%;
    max-height: 37.5%;
    margin-bottom: 5px;
}
@media all and (min-width: 768px) {
.cta_under_item {
    width: auto;
    height: auto;
    max-width: 90%;
    max-height: 60%;
    margin-bottom: 5px;
}}
.cta_under_inner p {
    font-size: 14px;
    margin-top: auto;
    margin-bottom: 0;
    white-space: nowrap;
    }
.txt_small {
    font-size: clamp(10px, 1.3vw, 14px);
}

.fvheader {
    background-color: #00b521;
    width: 100%;
}
.fvheadimg {
    width: calc(466 / 750 * 100%);
    margin: auto;
    display: block;
}

.fv.sp {
    position: relative;
    background-color: #f2fdff;
}

.fv_inner_sp {
    position: relative;
    padding: calc(22 / 750 * 100%);
    pointer-events: none;
}

.fv_top_sp {
    position: relative;
    width: 100%;
    height: auto;
    z-index: 3;
    pointer-events: none;
}

.fv_img1.sp {
    position: absolute;
    top: 0;
    right: 0;
    height: 80%;
    width: auto;
    z-index: 2;
    pointer-events: none;
}

.fv_img2.sp {
    position: absolute;
    top: clamp(20px, 50vw, 1000px);
    right: 0;
    width: 100%;
    z-index: 1;
    pointer-events: none;
}

.cta_sp {
    background-image: linear-gradient(0deg, #ffcc1c 60%, #f2fdff);
    height: auto;
    padding: calc(22 / 750 * 100%);
    padding-bottom: clamp(1px, 10vw, 70px);
}
.cta2_sp {
    background-image: linear-gradient(0deg, #ffcc1c 60%, #fff);
    height: auto;
    padding: calc(22 / 750 * 100%);
    padding-bottom: clamp(1px, 10vw, 70px);
}
.cta_ttl_sp {
    width: calc(505 / 750 * 100%);
    display: block;
    margin: auto;
}
.cta_inner_sp {
    margin-top: 6vw;
    background-color: #fff;
    z-index: 10;
    height: auto;
    border-radius: 8px;
    border: solid 2px #333;
    position: relative;
    padding: 2.3%;
}
.cta_price_wrap_sp {
    position: relative;
    height: 67vw; /* ここで全体の縦スペース確保 */
}
.cta_price_sp {
    position: absolute;
    top: 4vw;
    left: 0;
    width: calc(460 / 705 * 100%);
    z-index: 2;
}

.cta_btn_sp {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 2;
}

.cta_person_sp {
    position: absolute;
    right: -2.3%;
    bottom: 30%; /* 少し下にはみ出す場合 */
    width: calc(273 / 705 * 100%);
    z-index: 2;
    pointer-events: none;
}
.cta_btnimg_sp {
    width: 100%;
    display: block;
}
.cta_btn_inner_sp {
    position: absolute;
    top: 62%; /* ボタン画像の中央 */
    left: 59%;
    transform: translate(-50%, -50%) scale(0.9, 1); /* 横だけ圧縮 */
    z-index: 3;
    pointer-events: none;
}

.cta_btn_inner_sp p {
    font-size: clamp(1px, 7.6vw, 70px);
    font-family: Arial, sans-serif !important;
    font-weight: 1000;
    color: #fff;
    margin: 0;
    line-height: 1;
    white-space: nowrap;
}

@media all and (min-width: 0px) and (max-width: 767px) {
    .cta_under1 {
        width: 96%;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin: 2% auto;
        border-radius: 8px;
    }

    .cta_under_inner_left {
        width: 100%;
        text-align: center;
        padding: 2vw 0;
        font-size: 4.5vw;
    }

    .cta_under_inner_left p {
        white-space: nowrap;
    }
    .cta_under_inner_left::after {
        right: 50%;
        top: 100%;
        transform: translateX(50%);
        border-top: 2.5vw solid #333;
        border-left: 2.5vw solid transparent;
        border-right: 2.5vw solid transparent;
        border-bottom: none;
    }

    .cta_under_inner_right {
        width: 100%;
        font-size: clamp(1px, 3.6vw, 30px);
        padding: 3vw 2vw;
        line-height: 1.6;
    }

    .cta_under_inner_right p {
        white-space: normal;
        text-align: center;
    }

    .midnum {
        font-size: clamp(15px, 5.3vw, 100px);
        font-weight: 1000;
    }
    .cta_under2 {
        width: 96%;
        flex-wrap: wrap;
        margin: auto;
        gap: 2vw;
        justify-content: space-between;
    }

    .cta_under_inner {
        width: calc(50% - 1vw);
        height: auto;
        padding: 3vw 0;
    }

    .cta_under_item {
        max-height: 32px;
        margin-bottom: 6px;
    }

    .cta_under_inner p {
        font-size: 3.4vw;
        white-space: nowrap;
        font-weight: bold;
    }

    .txt_small {
        font-size: 3vw;
    }
}
.problem {
    width: 100%;
    height: auto;
}
.price {
    margin-top: -40px;
    padding-top: 40px;
    background-image: repeating-linear-gradient(
            to bottom,
            /* 横線 */ transparent 15px,
            #e6e6e6 16px,
            #e6e6e6 16px,
            transparent 17px,
            transparent 31px,
            #e6e6e6 32px,
            #e6e6e6 32px,
            transparent 33px,
            transparent 47px,
            #e6e6e6 48px,
            #e6e6e6 48px,
            transparent 49px,
            transparent 63px,
            #e6e6e6 64px,
            #e6e6e6 64px,
            transparent 65px,
            transparent 79px,
            #e6e6e6 80px,
            #e6e6e6 80px
        ),
        repeating-linear-gradient(
            to right,
            /* 縦線 */ transparent 15px,
            #e6e6e6 16px,
            #e6e6e6 16px,
            transparent 17px,
            transparent 31px,
            #e6e6e6 32px,
            #e6e6e6 32px,
            transparent 33px,
            transparent 47px,
            #e6e6e6 48px,
            #e6e6e6 48px,
            transparent 49px,
            transparent 63px,
            #e6e6e6 64px,
            #e6e6e6 64px,
            transparent 65px,
            transparent 79px,
            #e6e6e6 80px,
            #e6e6e6 80px
        );

    height: auto;
}
.price_pc_inner {
    width: calc(760 / 1080 * 100%);
    margin: 5vw auto;
    padding-bottom: 5vw;
}
.price_sp_inner {
    width: calc(705 / 750 * 100%);
    margin: 3vw auto;
    padding-bottom: calc(5vw + 20px);
}
@media screen and (min-width: 769px) {
.price_sp_inner {
    width: calc(400 / 750 * 100%);
    margin: 1vw auto;
    padding-bottom: 5vw;
}
    .guarantee_sp{
    width: calc(400 / 750 * 100%);
        margin: auto;
        display: block;
    }
    
}
.spinner {
    position: relative; /* 親にrelativeを指定 */
    width: calc(1014 / 1080 * 100%);
    margin: auto;
    background-color: #fff;
    border-radius: 8px;
    height: auto;
    padding-top: 10vw;
}
.spinner_s {
    position: relative;
    width: 100%;
    max-width: 1014px;
    margin: auto;
    background-color: #fff;
    border-radius: 8px;
    padding: clamp(1px,10vw,108px) 3vw 3vw;
    box-sizing: border-box;
    box-shadow: 0 0 1vw 1vw rgba(19, 36, 61, 0.1);
}

/* === デフォルト（PC用） === */
.price_detail_wrapper {
    display: flex;
    justify-content: space-between;
    gap: 2%; /* より安定したgapに変更 */
    flex-wrap: nowrap;
    box-sizing: border-box;
}

.price_detail_item {
    flex: 0 0 32%; /* gap 2% × 2 で、合計96% ＝ 収まる */
    display: flex;
    flex-direction: column;
    background-color: #1c3d5d;
    color: #fff;
    text-align: center;
    box-sizing: border-box;
}
/* 画像 + テキスト（縦並び） */
.price_detail_item_list {
    width: 100%;
    box-sizing: border-box;
}

.price_detail_text {
    text-align: center;
    font-weight: 700;
    font-size: clamp(1px, 2vw, 21.6px);
    color: #fff;
    line-height: 1.6;
    padding: 2vw 0;
}
.price_detail_item_list:nth-child(2) {
    align-items: center; /* ← 上下中央揃え */
    justify-content: center; /* ← 横方向中央 */
}

.price_detail_text span {
    color: #fbd01d;
}

@media screen and (min-width: 769px) {
    .price_detail_item {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .price_detail_item_list:nth-child(2) {
        display: flex;
        align-items: center; /* ← 上下中央揃え */
        justify-content: center;
        height: 100%; /* 親に合わせて伸ばす */
        text-align: center;
    }

    .price_detail_text {
        line-height: 1.6;
        font-size: clamp(1px, 2vw, 21.6px);
        margin: 0 auto;
        display: inline-block;
    }
}

/* スマホ表示（768px以下）でレイアウト切り替え */
@media screen and (max-width: 768px) {
    .price_detail_wrapper {
        flex-direction: column; /* 全体が縦並びになる */
        gap: 5vw;
    }

    .price_detail_item {
        flex-direction: row-reverse; /* 子要素が横並び（画像⇔テキスト） */
        width: 100%;
        align-items: center;
    }

    .price_detail_item_list:first-child {
        width: 37.5%; /* 画像 */
        justify-content: center;
        display: flex;
    }

    .price_detail_item_list:nth-child(2) {
        width: 62.5%; /* テキスト */
        justify-content: center;
        display: flex;
        text-align: left;
    }
    .price_detail_text {
        font-size: clamp(1px, 3.8vw, 30px);
    }
}

.price_range_ttl_sp {
    position: absolute;
    top: -25px; /* 上に25pxはみ出す */
    left: 50%;
    transform: translateX(-50%);
    width: calc(287 / 704 * 100%);
    display: block;
    z-index: 1;
}
.price_range_sp {
    width: calc(619 / 704 * 100%);
    margin: auto;
    display: block;
    padding-bottom: 5vw;
}

.disclaimer {
    padding: 1vw 0;
    width: calc(950 / 1080 * 100%);
    margin: auto;
}

.txt_disc {
    font-size: clamp(2px, 3vw, 18px);
    line-height: 0.5;
}

.area {
    background-image: repeating-linear-gradient(45deg, #0000000a, #0000000a 4px, transparent 4px, transparent 10px),
        radial-gradient(circle at 20% 16%, rgba(255, 241, 183, 1), rgba(255, 207, 0, 1) 80%);
    padding-bottom: 5vw;
    position: relative;
  overflow: hidden; 
    z-index: -10;
}
.area::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  background-image: url("../img/area_ttl_bg.png"); /* パス調整 */
  background-repeat: no-repeat;
  background-position: right center;
  background-size: contain;
  opacity: 0.06; /* 透かし具合（調整可） */
  pointer-events: none; /* クリックなどを無効化 */
  z-index: 1;
}

.spinnerss {
    position: relative; /* 親にrelativeを指定 */
    width: calc(1014 / 1080 * 100%);
    margin: auto;
    background-color: #fff;
    border-radius: 8px;
    height: auto;
    padding-top: 20px;
}
.area_subttl {
    position: absolute;
    top: -25px; /* 上に25pxはみ出す */
    left: 50%;
    transform: translateX(-50%);
    width: calc(230 / 1080 * 100%);
    display: block;
    z-index: 1;
}
@media screen and (max-width: 768px) {
.area_subttl {
    position: absolute;
    top: -20px; /* 上に25pxはみ出す */
    left: 50%;
    transform: translateX(-50%);
    width: calc(287 / 704 * 100%);
    display: block;
    z-index: 1;
    }
.spinnerss {
    position: relative; /* 親にrelativeを指定 */
    width: calc(1014 / 1080 * 100%);
    margin: auto;
    background-color: #fff;
    border-radius: 8px;
    height: auto;
    padding-top: 20px;
}
}
.area_ttl {
    padding-top: 5vw;
    padding-bottom: 2vw;
    width: calc(895 / 1080 * 100%);
    margin: auto;
}
@media screen and (max-width: 768px) {
    .area_ttl {
        width: calc(705 / 750 * 100%);
        margin: auto;
    }
}

.cta_disc_sp {
    padding-top: 10px;
    width: calc(655 / 704 * 100%);
    margin: auto;
    font-size: 3vw;
}

.cta2_ttl {
    width: calc(850 / 1080 * 100%);
    margin: auto;
    display: block;
    padding-bottom: 3vw;
}

/* === 全体の背景とセクション間 === */
.voice {
    background-color: #feede6;
    padding: clamp(1px,5vw,54px) 0;
}

/* 見出し画像（PC・SP切り替え） */
.voice_ttl {
    display: none;
    margin: 0 auto clamp(1px,4vw,43px);
    max-width: 90%;
}
.voice_ttl.pc {
    max-width: 50%;
    display: block;
    padding-bottom: clamp(1px,2vw,22px);
}
.voice_ttl.sp {
    max-width: 70%;
    padding-bottom: 4vw;
    display: none;
}
@media screen and (max-width: 768px) {
    .voice_ttl.pc {
        display: none;
    }
    .voice_ttl.sp {
        display: block;
    }
}

/* フレックスで並べる：PC2列、SP1列 */
.voiceflex {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2vw;
    padding: 0 3vw; /* ← 左右に3vwずつ余白を追加 */
}

/* 各ボイスカード全体ボックス */
.voce_inner {
    position: relative;
    background: #fff;
    width: calc(50% - 2vw);
    box-sizing: border-box;
    margin-bottom: 2vw;
}
@media screen and (max-width: 768px) {
    .voce_inner {
        width: 90%;
        margin-bottom: 6vw;
    }
}

/* タイトル画像：上に半分はみ出す */
.voice_subttl {
    position: absolute;
    top: clamp(-20px, -2.6vw, -28.5px);
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    z-index: 2;
}
@media screen and (max-width: 768px) {
    .voice_subttl {
        position: absolute;
        top: -4vw;
        left: 50%;
        transform: translateX(-50%);
        width: 40%;
        z-index: 2;
    }
}

/* 内部の左右レイアウトエリア */
.voice_inner_item {
    display: flex;
    flex-wrap: nowrap;
    padding: 5.6%;
    box-sizing: border-box;
    gap: 15px;
}

.voice_inner_item_list {
    width: 50%;
    box-sizing: border-box;
    position: relative;
}

/* 画像 */
.voiceimg {
    width: 100%;
    display: block;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    position: relative;
}

/* ズームアイコン中央重ね配置 */
.zoom_icon {
    position: absolute;
    top: 45%;
    left: 50%;
    width: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

/* タップアイコン */
.voice_tap {
    display: block;
    width: 100%;
    margin-top: 1vw;
}
.voice_tap.sp {
    display: none;
}
.voice_tap.pc {
    display: block;
}
@media screen and (max-width: 768px) {
    .voice_tap.sp {
        display: block;
    }
    .voice_tap.pc {
        display: none;
    }
}

/* テキスト */
.voice_txt {
    padding-top: 10px;
    max-width: 100%;
    font-size: clamp(15.5px, 2vw, 21.5px);
    line-height: 1.5;
    font-weight: 700;
    color: #6d6d6d;
    margin-bottom: 1.5vw;
}

@media screen and (max-width: 768px) {
    .voice_txt {
        padding-top: 5px;
        max-width: 100%;
        font-size: 3.6vw;
        line-height: 1.5;
        font-weight: 700;
        color: #6d6d6d;
        margin-bottom: 1.5vw;
    }
}
/* 人物画像 */
.voice_person {
    max-width: 70%;
    width: 70%;
    margin: auto;
    display: block;
}
@media screen and (max-width: 768px) {
    .voice_person {
        max-width: 70%;
        width: 70%;
        margin: 2vw auto 0;
    }
}
.voice_meta {
    font-size: 0.85rem;
    color: #666;
    font-weight: 400;
    text-align: center;
    margin-top: 0.2vw;
}
@media screen and (max-width: 768px) {
    .voice_meta {
        font-size: 2.2vw;
        margin-top: 0.5vw;
    }
}

.voice_disc {
    position: absolute;
    right: 1vw;
    bottom: 0.5vw;
    font-size: 0.6rem;
    color: #999;
    text-align: right;
}
.faq {
    background-image: repeating-linear-gradient(
            to bottom,
            transparent 15px,
            #e6e6e6 16px,
            transparent 17px,
            transparent 31px,
            #e6e6e6 32px,
            transparent 33px,
            transparent 47px,
            #e6e6e6 48px,
            transparent 49px,
            transparent 63px,
            #e6e6e6 64px,
            transparent 65px,
            transparent 79px,
            #e6e6e6 80px
        ),
        repeating-linear-gradient(
            to right,
            transparent 15px,
            #e6e6e6 16px,
            transparent 17px,
            transparent 31px,
            #e6e6e6 32px,
            transparent 33px,
            transparent 47px,
            #e6e6e6 48px,
            transparent 49px,
            transparent 63px,
            #e6e6e6 64px,
            transparent 65px,
            transparent 79px,
            #e6e6e6 80px
        );
    background-color: #fff;
}
.faq_inner {
    padding: 0 3vw 3vw 3vw;
}
/* タイトルボックス：上下以外余白なし */
.faq_ttl_box {
    background-color: #01b522;
    width: 100%;
    text-align: center;
    padding: 2vw 0 2vw 0;
    margin-bottom: 4vw; /* ← 下に余白 */
}

.faq_ttl {
    font-size: 1.8rem;
    color: #fff;
    font-weight: 1000;
    margin: 0;
}

/* 各質問アイテム */
.faq_item {
    border: 2px solid #01b522;
    background: #fff;
    margin-bottom: 2.5vw; /* ← 間隔を半分に */
    width: 100%;
}
/* Q部分 */
.faq_q {
    margin: 0;
}

.faq_question {
    background-color: #01b522;
    color: #fff;
    font-weight: 1000;
    padding: 1vw 2vw;
    margin: 0;
    line-height: 1.6;
    display: flex;
    align-items: center;
    gap: 1vw;
}
/* Qアイコンをインラインで左に入れる */
.faq_icon_img_inline {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* A部分 */
.faq_a {
    margin: 0;
}

.faq_answer {
    margin: 0;
    font-size: 1rem;
    color: #333;
    line-height: 1.6;
    background: #fff;
    padding: 1.5vw 2vw;
}

.txt_smallqa {
    font-size: clamp(10px, 1.6vw, 14px);
}
/* スマホ調整 */
@media screen and (max-width: 768px) {
    .faq_ttl {
        font-size: 5vw;
    }

    .faq_question {
        font-size: 3.2vw;
    }
    .faq_answer {
        font-size:  3.2vw;
    }

    .faq_icon_img_inline {
        width: 20px;
        height: 20px;
    }

    .faq_answer {
        padding: 3vw 4vw;
    }
    .txt_smallqa {
        font-size: 2.7vw;
    }
}
/* --- フッター全体 --- */
.footer {
    background-color: #13243d;
    color: #fff;
    padding: 6vw 5vw 10vw;
    font-size: 3.2vw;
}
@media screen and (max-width: 768px) {
.footer {
    background-color: #13243d;
    color: #fff;
    padding:6vw 5vw calc(10vw + 120px);
    font-size: 3.2vw;
    }}
.footer_inner {
    max-width: 1080px;
    margin: 0 auto;
    text-align: center;
}

/* --- ロゴ --- */
.footer_logo img {
    width: 140px;
    height: auto;
    margin: 0 auto 5vw;
}

/* --- ナビ（SPは縦並び） --- */
.footer_nav {
    list-style: none;
    padding: 0;
    margin: 0 0 6vw;
}

.footer_nav li {
    margin-bottom: 3vw;
}

.footer_nav a {
    color: #fff;
    text-decoration: none;
    font-weight: 500;
}

/* --- コピーライト --- */
.footer_copy {
    font-size: 3vw;
    opacity: 0.6;
}

/* --- PCレイアウト --- */
@media screen and (min-width: 769px) {
    .footer {
        padding: 30px 40px 40px;
        font-size: 14px;
    }

    .footer_inner {
        text-align: center;
    }

    .footer_nav {
        gap: 40px;
        margin: 20px 0 40px;
    }

    .footer_nav li {
        margin: 0;
    }

    .footer_copy {
        font-size: 13px;
        opacity: 0.6;
    }
}
.voice_modal {
    display: none;
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 1000;
}

/* ← 背景として全体を覆う */
.voice_modal_overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    z-index: 1;
}

.voice_modal_content {
    position: relative;
    z-index: 2; /* ← overlay より前に出す */
    margin: 6vh auto;
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.voice_modal_content img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
}

.voice_modal_close {
    position: absolute;
    top: -30px;
    right: 0;
    font-size: 2rem;
    color: #fff;
    cursor: pointer;
    z-index: 3;
}
@media screen and (max-width: 768px) {
    .voice_modal_close {
        top: 10px;
        right: 10px;
        font-size: 2.4rem;
        background: rgba(0, 0, 0, 0.3);
        padding: 4px 10px;
        border-radius: 4px;
    }
}
body.modal-open {
    overflow: hidden;
    height: 100%;
    touch-action: none; /* モバイルでのスワイプ防止（任意） */
}

.sec_worth {
    position: relative;
}

/* PC用：右上の丸に合わせる */
.hivepc {
    position: absolute;
    top: 56.5%;
    left: 81%;
    width: calc(110 / 1080 * 100%);
    z-index: 2;
}

/* SP用：位置を調整 */
.hivesp {
    position: absolute;
    top: 56.5%;
    left: 78%;
    width: calc(96 / 750 * 100%);
    z-index: 2;
}

.area-box-txt01 {
  font-family: 'Noto Sans', sans-serif;
    padding: 3.5em 0 1.9375rem 3%;
    font-size: clamp(1px,1.79vw,19.5px);
    letter-spacing: 0.05em;
    font-weight: 600;
    line-height: 1.9;
    /* border-radius: 2vw; */
    margin: -1.875rem 0 0 0;
}
@media screen and (max-width: 767px) {
    .area-box-txt01 {
  font-family: 'Noto Sans', sans-serif;
    padding: 12vw 0 1rem 1rem;
    font-size: 3.9vw;
    letter-spacing: 0.05em;
    font-weight: 600;
    line-height: 1.8;
    border-radius: 1.5625rem;
    margin: -2.8125rem 0 0 0;
    position: relative;
}
}

.floating-banner {
    position: fixed;
    z-index: 9999;
    transition: opacity 0.5s ease;
}


@media screen and (min-width: 768px) {
    .floating-banner {
        width:330px;
        right: 20px;
        bottom: 20px;
        opacity: 1;
        pointer-events: auto;
    }
}


@media screen and (max-width: 767px) {
    .floating-banner {
        left: 50%;
        bottom: 0;
        transform: translateX(-50%);
        width: 100%;
        opacity: 1;
    }

    .floating-banner.show {
        opacity: 1;
    }

    .floating-banner img {
        width: 100%;
        height: auto;
        display: block;
    }
}

.bnr_txt{
    position:absolute;
    right:20%;
       bottom:22%;
    font-size: 26.19px;
    font-family: Arial, sans-serif !important;
    font-weight: 1000;
    margin: 0;
    line-height: 1;
    transform: scale(0.9, 1);
    display: inline-block;
    color: #333;
    white-space: nowrap;
}
    
   .bnr_txt_sp{
    position:absolute;
    right:10%;
       bottom:30%;
    font-size: clamp(1px, 6.8vw, 77px);
    font-family: Arial, sans-serif !important;
    font-weight: 1000;
    margin: 0;
    line-height: 1;
    transform: scale(0.9, 1);
    display: inline-block;
    color: #333;
    white-space: nowrap;
} 
    
    
    

.txtbase{
  font-family: 'Noto Sans', sans-serif;
  font-weight: 900;     /* Black */
  font-style: italic;   /* 斜体 */
}
.txt01{
    font-size:9vw;
    color: red;
}
.txt02{
    font-size:7.5vw;
    color:#333;
}
@media screen and (min-width: 768px) {
.txt01{
    font-size:clamp(1px,5vw,55px);
}
.txt02{
    font-size:clamp(1px,4vw,48px);
}
    
}

.area-ttl01 {
    letter-spacing: 0.04em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin: auto;
    -webkit-box-align: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
    position: relative;
}

.ttl_area{
    width: calc(1014 / 1080 * 100%);
    padding:30px 0 45px 7.5rem;;
    margin:auto;
    position:relative;
}
@media screen and (max-width: 767px) {
.area-ttl01 {
    letter-spacing: 0.04em;
    position: relative;
    line-height: 1.19;
    }

.ttl_area{
    width: calc(705 / 750 * 100%);
    padding:30px 0 40px 0;;
    margin:auto;
    position:relative;
}
}

.area_ttl_bg{
    position:absolute;
    right:5%;
    top:0;
    width:30%;
    z-index: -1;
    opacity:0.8;
}

.area_ttl_bg_sp{
    position:absolute;
    right:5%;
    top:0;
    width:80%;
    z-index: -1;
    opacity:0.8;
}
.sp.block {
  display: none;
}
@media screen and (min-width: 769px) {
.ttl_area::before {
    content: "";
    position: absolute;
    background: url(../img/beebuster.png) no-repeat center/cover;
    width: 5.5rem;
    height: 5.5rem;
    top: 19%;
    left: 3%;
}}
/* スマホ表示時だけ表示する */
@media screen and (max-width: 768px) {
  .sp.block {
    display: block;
  }
    .area-ttl01sp::before {
    content: "";
    position: absolute;
    background: url(../img/beebuster.png) no-repeat center/cover;
    width: 14vw;
    height: 14vw;
    top: -10%;
    right: 0%;
}
    
.area-ttl01sp {
    letter-spacing: 0.04em;
    position: relative;
    line-height: 1.19;
    }
}


@media screen and (min-width: 769px) {
.area_car {
    position: absolute;
    top: -20%; /* 上に25pxはみ出す */
    right: -4%;
    transform: translateX(-50%);
    width: calc(80 / 704 * 100%);
    display: block;
    z-index: 1;
    }}
@media screen and (max-width: 768px) {
.area_carsp {
    position: absolute;
    top: 90px; 
    right: -8%;
    transform: translateX(-50%);
    width: calc(180 / 750 * 100%);
    display: block;
    z-index: 10;
    }
}
