:root {
    font-size: 62.5%;
}

button,
input,
optgroup,
select,
textarea {
    appearance: auto;
}
.sp {
    display: none;
}
.pc {
    display: block;
}
span.pc  {
  display: inline;
}
@media (max-width: 1023px) {
    .sp {
        display: block;
    }

    .pc {
        display: none;
    }
    span.pc  {
      display: none;
    }
}
input,
textarea {
    border: 1px solid #ccc;
    padding: 0.4rem;
    background: #fff;
}

html {
    margin-top: 0 !important;
    overflow-x: hidden;
    background-color: #f9f9f9;
    font-family: "Noto Sans JP", sans-serif;

}

#wpadminbar {
    /* display: none; */
    opacity: 0.1;
    transition: opacity 0.3s ease;
}

#wpadminbar:hover {
    opacity: 1;
}

/* 1rem=10px */
body {
    height: 100%;
    font-size: 1.7rem;
    font-weight: bold;
    overflow-x: clip;
    line-height: 1.5;
    color: #333;
}

img {
    width: 100%;
}

.cta_fixed__btn {
    width: 20rem;
    position: fixed;
    bottom: 4rem;
    right: 4rem;
    z-index: 1001;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.cta_fixed__btn:hover {
    transform: scale(1.04);
    transition: transform 0.3s ease;
}
@media (max-width: 767px) {
    .cta_fixed__btn {
        width: 10rem;
        bottom: 2rem;
        right: 2rem;
    }
}

.btn_asset {
    background-color: #1C48B5;
    display: flex;
    align-items: center;
    gap: 1.6rem;
    padding: 0.8rem 6.4rem;
    border-radius: 999px;
    color: #fff;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, 0.35);
    transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
    width: fit-content;
}

.btn_asset::after {
    content: "";
    width: .55em;
    height: .55em;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.9;
    transition: transform .25s ease, opacity .25s ease;
}

.btn_asset:hover {
    background: #ffffff;
    color: #1C48B5;
    border-color: #1C48B5;
    transform: translateY(-1px);
}

.btn_asset:hover::after {
    transform: rotate(45deg) translate(2px, -2px);
    opacity: 1;
}

.btn_asset:focus-visible {
    outline: 3px solid rgba(255, 114, 8, 0.55);
    outline-offset: 3px;
}

.btn_asset:active {
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {

    .btn_asset-03,
    .btn_asset-03::after {
        transition: none;
    }
}

.btn_asset-02 {
    font-size: 2.4rem;
    color: #FFFFFF;
}

.btn_asset-02 span {
    font-size: 4rem;
    display: block;
}

/* =========================
   Button Asset 03（共通）
========================= */

.btn_asset-03 {
    display: inline-flex;
    align-items: center;
    gap: 1.6rem;
    padding: 1rem 2.5rem;
    border-radius: 1.5rem;
    color: #fff;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, 0.35);
    /* background: rgba(255,255,255,0.10); */
    /* backdrop-filter: blur(10px); */
    /* -webkit-backdrop-filter: blur(10px); */
    font-size: 2rem;
    transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}

.btn_asset-03::after {
    content: "";
    width: .55em;
    height: .55em;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.9;
    transition: transform .25s ease, opacity .25s ease;
}

.btn_asset-03:hover {
    background: #FF8D2E;
    border-color: rgba(255, 255, 255, 0);
    transform: translateY(-1px);
}

.btn_asset-03:hover::after {
    transform: rotate(45deg) translate(2px, -2px);
    opacity: 1;
}

.btn_asset-03:focus-visible {
    outline: 3px solid rgba(255, 114, 8, 0.55);
    outline-offset: 3px;
}

.btn_asset-03:active {
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {

    .btn_asset-03,
    .btn_asset-03::after {
        transition: none;
    }
}

@keyframes rainbow {
    0% {
        background-position: 0% 50%;
    }

    100% {
        background-position: 100% 50%;
    }


}

.inner_1200 {
    max-width: 1200px;
    margin: 0 auto;
}

@media (max-width: 1200px) {
    .inner_1200 {
        padding: 0 4rem;
    }
}

@media (max-width: 1023px) {
    .inner_1200 {
        padding: 0 2.4rem;
    }
}

@media (max-width: 767px) {
    .inner_1200 {
        padding: 0 1.6rem;
    }
}

.site-main {
    padding: 0;
    min-height: 80dvh;
}

.kv {
    padding: 8rem 0;
    background-image: url(../images/index/top-mv.jpg);
    background-size: cover;
    background-position: center;
    min-height: 100vh;
    font-family: "din-condensed", sans-serif;
    color: #FFF;
    padding-left: 8rem;
    padding-top: 36rem;
}

.kv_txt-h1 {
    font-size: 5rem;
    font-weight: bold;
}

.kv_txt p {
    font-size: 2.7rem;
    line-height: 2;
    font-weight: bold;
    margin-top: 4rem;
}

.kv_txt p span {
    color: #FF9300;
    font-size: 4.6rem;
}


.ttl_asset-02 {
    /* 右端 */
    position: absolute;
    right: calc(50% - 50vw);
    top: 0;
    font-size: 8rem;
    opacity: 0.1;
}

.ttl_asset {
    font-weight: bold;
}

.ttl_asset>span {
    display: block;
}

.service_h2 {
    padding-top: 8rem;
    font-family: "hiragino-kaku-gothic-pron", sans-serif;
}

.ttl_asset-sub {
    padding-bottom: 2.4rem;
    font-size: 1.6rem;
    position: relative;
    padding-left: 1.8rem;
}

.ttl_asset-sub::before {
    content: "";
    width: calc(50vw - 50% + 48rem);
    height: 2px;
    background-color: #5C5C5C;
    position: absolute;
    bottom: 0%;
    left: calc(50% - 50vw);
}

.ttl_asset-sub::after {
    content: "";
    width: 7px;
    height: 18px;
    background-color: #FF8D2E;
    position: absolute;
    top: 0%;
    left: 0;
}

.ttl_asset-main {
    font-size: 3.2rem;
    margin-top: 4rem;
    color: #1C48B5;
}

.service_txt {
    padding-left: 16rem;
    color: #FF8D2E;
    margin-top: 8rem;
    line-height: 1.5;
}

.service_btn {
    margin-left: auto;
    margin-top: 24rem;
}

.service {
    display: flex;
    margin-top: 8rem;
    position: relative;
}

.service_txt p {
    margin-top: 1.6rem;
}

.service_h2 .ttl_asset-main {
    padding-left: 16rem;

}

.service_h2 .ttl_asset-sub {
    border-bottom: 2px solid #5C5C5C;
    padding-left: 17.8rem;
}

.service_h2 .ttl_asset-sub::after {
    left: 16rem;
}

.service_h2 .ttl_asset-sub::before {
    content: none;
}

/* =========================
   Approach Section (FULL REPLACE)
========================= */

.approach {
    margin-top: 16rem;
    position: relative;
    padding-bottom: 32rem;
}

.approach_txt {
    margin-top: 8rem;
    line-height: 1.5;
    color: #FF8D2E;
}

/* ===== Approach slider base ===== */
.approach .approach-slide,
.approach .approach_slide {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 0 0rem 0 clamp(6rem, 10vw, 24rem);
}

/* Splide全体ラッパー */
.approach .approach-slider {
    position: relative;
    /* pagination/arrow の absolute 基準 */
    margin-top: 4rem;
}

/* trackからはみ出しても拡大が切れないように */
.approach .approach-slider .splide__track {
    overflow: visible;
}

.approach .approach-slider .splide__list {
    align-items: stretch;
}

/* 各スライドの基本状態 */
.approach .approach-slider .splide__slide {
    display: flex;
    transform-origin: right top;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* ★左に来たアクティブスライドだけ拡大＆強調 */
.approach .approach-slider .splide__slide.is-active {
    transform: scale(1.2);
    opacity: 1;
    z-index: 2;
    margin-left: 8rem;
}

/* 1400付近から少し大人しく */
@media (max-width: 1400px) {
    .approach .approach-slider .splide__slide.is-active {
        transform: scale(1.15);
        margin-left: 4rem;
    }
}

/* 1024以下はさらに控えめ（見切れ・押し出し防止） */
@media (max-width: 1024px) {
    .approach .approach-slider .splide__slide.is-active {
        transform: scale(1.08);
        margin-left: 0rem;
    }
}

/* 色差分 */
.approach .splide__slide-02 .approach-card {
    background-color: #1E00C4;
}

.approach .splide__slide-03 .approach-card {
    background-color: #0089FF;
}

.approach .splide__slide-04 .approach-card {
    background-color: #3BBBFF;
}

/* カード本体 */
.approach .approach-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: #163481;
    border-radius: 6rem;
    padding: 3.6rem 2.4rem;
    color: #fff;
    box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.18);
    height: 100%;
}

.approach .approach-card__image {
    margin-bottom: 2.4rem;
}

.approach .approach-card__image img {
    display: block;
    width: 100%;
    aspect-ratio: 30 / 24;
    border-radius: 3.2rem;
    object-fit: cover;
    background-color: #FFF;
}

.approach .approach-card__title-ja {
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 1.6rem;
    border-bottom: 1px solid #FFF;
    padding-bottom: 0.8rem;
}

.approach .approach-card__title-ja span {
    font-size: 3.2rem;
    font-weight: 700;
}

.approach .approach-card__text {
    font-size: 1.3rem;
    line-height: 1.8;
}

/* ボタン */
.approach .approach-card__footer {
    margin-top: 2.4rem;
}

.approach .approach-card__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    min-width: 22rem;
    padding: 1.2rem 3.2rem;
    border-radius: 999px;
    border: none;
    background: #fff;
    color: #005bbb;
    font-size: 1.3rem;
    font-weight: 600;
    text-decoration: none;
    margin: auto;
    width: fit-content;
    cursor: pointer;
    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;
}

.approach .approach-card__btn:hover {
    background: #FF8D2E;
    color: #fff;
    box-shadow: 0 0.8rem 1.6rem rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
}

.approach .approach-card__btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    flex: 0 0 auto;
    transition: transform 0.3s ease;
}

.approach .approach-card__btn:hover .approach-card__btn-icon {
    transform: translateX(4px);
}
.approach .approach-card__btn::after {
    content: "";
    width: .55em;
    height: .55em;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.9;
    transition: transform .25s ease, opacity .25s ease;
}

.approach .approach-card__btn:hover::after {
    transform: rotate(45deg) translate(2px, -2px);
    opacity: 1;
}

/* =========================
   Pagination + Arrows（同じ列、左右に）
========================= */

/* ドット列（中央） */
.approach .approach-slider .splide__pagination {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -20rem;
    width: auto;
    margin: 0;
    padding: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

/* ドット（Approach内だけ） */
.splide__pagination__page {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background-color: #211B5D;
    opacity: 1;
    transform: scale(1);
}

.splide__pagination__page.is-active {
    transform: scale(1.2);
    background-color: #FF8D2E;
}

/* 矢印：info_card-arrow をそのまま流用（丸・枠・矢印） */
.approach .approach-arrows .splide__arrow {
    position: absolute;
    left: 50%;
    bottom: -20.8rem;
    top: auto;
    right: auto;

    /* Splide標準ボタン背景だけ消す（borderはinfo_card-arrow側に任せる） */
    background: transparent;
}

/* 二重矢印防止：Splide標準SVGを消す */
.approach .approach-arrows .splide__arrow svg {
    display: none;
}

/* 左右の位置（4ドット想定でバランス取ってる。微調整はこの数字だけ） */
.approach .approach-arrows .splide__arrow--prev {
    transform: translateX(calc(-50% - 14rem));
}

.approach .approach-arrows .splide__arrow--next {
    transform: translateX(calc(-50% + 14rem));
}

/* 左矢印は向きを反転（info_card-arrowを流用） */
.approach .approach-arrows .splide__arrow--prev.info_card-arrow::before {
    transform: rotate(135deg);
    margin-left: 0.6rem;
}

/* hover：お知らせと同じ挙動（背景青＋矢印白＋少し移動） */
.approach .approach-arrows .info_card-arrow:hover {
    background-color: #1C48B5;
}

.approach .approach-arrows .info_card-arrow:hover::before {
    border-color: #FFFFFF;
}

.approach .approach-arrows .splide__arrow--next.info_card-arrow:hover {
    transform: translateX(calc(-50% + 14rem)) translateX(0px);
}

.approach .approach-arrows .splide__arrow--prev.info_card-arrow:hover {
    transform: translateX(calc(-50% - 14rem)) translateX(0px);
}

/* =========================
   Responsive
========================= */

@media (max-width: 1024px) {
    .approach .approach-slider {
        margin-top: 3rem;
    }

    .approach .approach-card {
        padding: 3.6rem 2.8rem;
    }
}

@media (max-width: 767px) {
    .approach {
        padding-bottom: 22rem;
    }

    /* 下のUIが近いなら調整 */
    .approach .approach-card {
        padding: 3rem 2.4rem;
        border-radius: 2.4rem;
    }

    /* モバイルは下位置を浅くしておく */
    .approach .approach-slider .splide__pagination {
        bottom: -12rem;
    }

    .approach .approach-arrows .splide__arrow {
        bottom: -12rem;
    }

    /* モバイルは矢印位置も少し詰める */
    .approach .approach-arrows .splide__arrow--prev {
        transform: translateX(calc(-50% - 12rem));
    }

    .approach .approach-arrows .splide__arrow--next {
        transform: translateX(calc(-50% + 12rem));
    }

    .approach .approach-arrows .splide__arrow--next.info_card-arrow:hover {
        transform: translateX(calc(-50% + 12rem)) translateX(2px);
    }

    .approach .approach-arrows .splide__arrow--prev.info_card-arrow:hover {
        transform: translateX(calc(-50% - 12rem)) translateX(-2px);
    }
}

.price {
    background-color: #FFF;
    padding: 8rem 0;
    position: relative;
}

.price_txt {
    margin-top: 4rem;
    color: #FF8D2E;
}

.price_btn {
    margin-top: 4rem;
}

.casual_meeting {
    margin-top: 10.4rem;
    position: relative;
}

.casual_meeting__txt {
    color: #FF8D2E;
    margin-top: 4rem;
}

.casual_meeting__h3 {
    margin-top: 8rem;
    font-weight: bold;
    font-size: 3.2rem;
    color: #FF8D2E;
    text-align: center;
    padding-bottom: 2rem;
}

.casual_meeting__container {
    background-color: #FF8D2E;
    border-radius: 3.6rem;
    padding: 6.4rem 7.2rem;
}

.casual_meeting__container-txt {
    color: #FFF;
    text-align: center;
    font-size: 1.8rem;
    line-height: 1.6;
}

.casual_meeting__box {
    background-color: #FFF;
    border-radius: 2.4rem;
    padding: 4rem 3.2rem;
    margin-top: 4rem;
}

.casual_meeting__item {
    display: flex;
    align-items: center;
    margin-bottom: 2.4rem;
}

.casual_meeting__box-icon {
    width: 4.6rem;
}

.casual_meeting__box-h4 {
    font-size: 2.0rem;
    font-weight: bold;
    margin-left: 2.4rem;
    color: #1C48B5;
}

.casual_meeting__box-h4 span {
    color: #FF8D2E;
}

/* カジュアルミーティングのボタン（モダン版） */
.casual_meeting_btn {
    align-items: center;
    justify-content: center;
    padding: 1.4rem 3.6rem;
    border-radius: 999px;
    border: 2px solid #FFF;
    background-color: transparent;
    color: #FFF;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;
}


/* 「予約する」「もっと知る」部分 */
.casual_meeting_btn span {
    font-size: 2.2rem;
    margin-left: 0.8rem;
    transition: color 0.3s ease;
}

/* ホバー時：少し浮いて反転 */
.casual_meeting_btn:hover {
    background-color: #FFF;
    color: #FF8D2E;
    box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.25);
    transform: translateY(-2px);
}

.casual_meeting_btn:hover span {
    color: #FF8D2E;
}

/* SPでは2ボタン縦並びに */
@media (max-width: 767px) {
    .casual_meeting_btn-wrap {
        flex-direction: column;
        gap: 2rem;
    }
}

.casual_meeting_btn-wrap {
    display: flex;
    justify-content: center;
    margin-top: 4rem;
    align-items: center;
    text-align: center;
    gap: 8rem;
}


/* =========================
   Information
   ========================= */

.info {
    padding: 10rem 0 12rem;
    position: relative;
}

.info_h2 {
    margin-top: 2rem;
}

/* 一覧全体の枠線（上・下） */
.info_wrap {
    margin-top: 4rem;
    width: 70%;
    margin-left: auto;
}

.info_table {
    border-top: 1px solid #707070;
    border-bottom: 1px solid #707070;
}

/* 各行 */
.info_card {
    border-top: 1px solid #E0E0E0;
}

.info_card:first-child {
    border-top: none;
}

.info_card-link {
    display: flex;
    align-items: center;
    gap: 4rem;
    padding: 2.4rem 4rem;
}

/* 日付 */
.info_card-date {
    width: 14rem;
    font-size: 1.4rem;
}

/* タイトル部分（テキスト） */
.info_card-title {
    flex: 1;
    font-size: 1.6rem;
}

/* 右端の丸ボタン */
.info_card-arrow {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    border: 1px solid #1C48B5;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.info_card-arrow::before {
    content: "";
    width: 1.2rem;
    height: 1.2rem;
    border-right: 2px solid #1C48B5;
    border-bottom: 2px solid #1C48B5;
    transform: rotate(-45deg);
    margin-left: -0.6rem;
}

.info_card-link {
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.info_card-link:hover {
    background-color: rgba(33, 27, 93, 0.03);
}

.info_card-link:hover .info_card-title {
    color: #1C48B5;
}

.info_card-link:hover .info_card-date {
    color: #1C48B5;
}

/* hover時のちょっとした動き */
.info_card-link:hover .info_card-arrow {
    background-color: #1C48B5;
    transform: translateX(2px);
}

.info_card-link:hover .info_card-arrow::before {
    border-color: #FFFFFF;
}

/* 「お知らせはありません」時 */
.info_none {
    padding: 2.4rem 0;
    font-size: 1.5rem;
}

/* SP向けの微調整 */
@media (max-width: 767px) {
    .info_card-link {
        gap: 2rem;
        padding: 2rem 0;
    }

    .info_card-date {
        width: 9rem;
        font-size: 1.3rem;
    }

    .info_card-title {
        font-size: 1.4rem;
    }

    .info_card-arrow {
        width: 3.2rem;
        height: 3.2rem;
    }
}


/* =========================
   FAQ（パララックス背景）
   ========================= */

.faq {
    position: relative;
    padding: 10rem 0 12rem;
    color: #FFFFFF;
    background-image: url(../images/index/top-mv.jpg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    /* ★パララックス（固定） */
    overflow: hidden;
}

/* うっすら暗くするオーバーレイ */
.faq::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 0.10),
            rgba(0, 0, 0, 0.15));
    z-index: 0;
}

.faq .inner_1200 {
    position: relative;
    z-index: 1;
}

.faq_h2 {
    text-align: center;
    color: #FFF;
    border-bottom: 2px solid #FFF;
    max-width: 70rem;
    margin: auto;
    text-align: center;
}

.faq_h2 .ttl_asset-sub {
    padding-bottom: 0;
    width: fit-content;
    margin: auto;
    border-bottom: none;
}

.faq_h2 .ttl_asset-main {
    font-size: 3.6rem;
    margin-top: 1.2rem;
    padding-bottom: 1.2rem;
}

.faq_h2 .ttl_asset-sub::before {
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    content: none;
}

/* 見出し下の説明テキスト */
.faq_lead {
    margin-top: 3rem;
    text-align: center;
    font-size: 1.4rem;
    line-height: 1.8;
    color: #FFF;
}

/* Qリストエリア */
.faq_wrap {
    margin-top: 6rem;
}

/* 各行のベース */
.faq_item {
    border-top: 1px solid rgba(255, 255, 255, 0.4);
}

.faq_item:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

.faq_item-header {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 2.4rem;
    padding: 2.4rem 0;
    background: transparent;
    border: none;
    color: inherit;
    cursor: pointer;
}

/* 左の「Q」 */
.faq_item-q {
    font-size: 2.2rem;
    color: #FF8D2E;
    flex-shrink: 0;
}

/* 質問文 */
.faq_item-question {
    flex: 1;
    font-size: 1.8rem;
    text-align: left;
}

/* 右端の＋アイコン */
.faq_item-toggle {
    width: 2.4rem;
    height: 2.4rem;
    position: relative;
    flex-shrink: 0;
}

.faq_item-toggle::before,
.faq_item-toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2.4rem;
    height: 2px;
    background-color: #FF8D2E;
    transform: translate(-50%, -50%);
    transition: transform 0.25s ease;
}

/* 縦棒（＋の形） */
.faq_item-toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

/* アコーディオン本体（最初は閉じておく） */
.faq_item-body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s ease, opacity 0.3s ease;
}

.faq_item-answer {
    padding-bottom: 2.4rem;
    padding-left: 4.4rem;
    /* Qマークより少し右から始める */
    font-size: 1.5rem;
    line-height: 1.8;
}

.faq_item-answer span {
    color: #FF8D2E;
    font-size: 1.6rem;

}

.faq_item-answer a {
    color: #FF8D2E;
    text-decoration: underline;
    transition: opacity 0.3s ease;
}

.faq_item-answer a:hover {
    opacity: 0.7;
}

/* 開いているときの状態 */
.faq_item.is-open .faq_item-body {
    max-height: 500px;
    /* 想定より大きめにとってOK */
    opacity: 1;
}

/* 開いているときは＋を－にする */
.faq_item.is-open .faq_item-toggle::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

/* 一覧へボタン */
.faq_btn {
    margin: 6rem auto 0;
}

.faq_item-header {
    transition: background-color 0.3s ease;
}

.faq_item-header:hover {
    background-color: rgba(255, 255, 255, 0.02);
}

/* SP調整 */
@media (max-width: 767px) {
    .faq {
        padding: 8rem 0 9rem;
    }

    .faq_item-header {
        gap: 1.6rem;
        padding: 1.8rem 0;
    }

    .faq_item-q {
        font-size: 1.8rem;
    }

    .faq_item-question {
        font-size: 1.5rem;
    }

    .faq_item-answer {
        padding-left: 3.4rem;
        font-size: 1.4rem;
    }
}


/* =========================
   Footer
   ========================= */

.site-footer {
    background-color: #262626;
    color: #FFFFFF;
    padding: 4rem 0 3.2rem;
    font-size: 1.3rem;
}



/* ロゴ周り */
.footer_logo {
    text-align: center;
}

.footer_logo-img {
    display: inline-block;
}

.footer_logo-img img {
    width: 24rem;
    height: auto;
}

/* ナビ＋SNS 行（上のライン） */
.footer_nav-row {
    margin-top: 3.2rem;
    padding-bottom: 1.6rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.4rem;
}

/* ナビゲーション */
.footer_nav-list {
    display: flex;
    gap: 3.2rem;
    font-size: 2rem;
}

.footer_nav-list a {
    color: #FFFFFF;
    text-decoration: none;
}

.footer_nav-list a {
    color: #FFFFFF;
    text-decoration: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.footer_nav-list a:hover {
    opacity: 0.7;
    transform: translateY(-1px);
}

/* SNS */
.footer_sns-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.footer_sns-link:hover {
    transform: translateY(-2px);
    opacity: 0.9;
}


/* SNS（Instagram） */
.footer_sns-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.footer_sns-link img {
    width: 3.6rem;
    height: auto;
}

/* コピーライト＋プライバシーポリシー */
.footer_bottom {
    position: relative;
    margin-top: 1.6rem;
    font-size: 1.9rem;
}

.footer_copy {
    display: block;
    text-align: center;
}

.footer_privacy {
    position: absolute;
    right: 0;
    top: 0;
    color: #FFFFFF;
    text-decoration: none;
    font-size: 1.4rem;
}

.footer_privacy:hover {
    opacity: 0.7;
}

/* SP レイアウト調整 */
@media (max-width: 767px) {
    .site-footer {
        padding: 3.6rem 0 12rem;
    }

    .footer_nav-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 1.6rem;
    }

    .footer_nav-list {
        flex-wrap: wrap;
        row-gap: 0.8rem;
        font-size: 1.3rem;
        flex-direction: column;
    }

    .footer_bottom {
        margin-top: 2.4rem;
        text-align: center;
    }

    .footer_privacy {
        position: static;
        display: block;
        margin-top: 0.8rem;
    }
}


/* 下層テンプレ */
.lower_head {
    padding-top: 24rem;
    position: relative;
}

.lower_head__title {
    font-size: 4rem;
    font-weight: bold;
    padding-bottom: 0.4rem;
    border-bottom: 1rem solid #FF8D2E;
    width: fit-content;
    position: relative;
}

.lower_head__body {
    margin-top: 0.8rem;
    padding-top: 8rem;
    border-top: 1rem solid #1C48B5;
}

.lower_head__h2 {
    font-size: 3.2rem;
    font-weight: bold;
    color: #FF8D2E;
}

.lower_head__text {
    margin-top: 4rem;
}

.lower_head__date {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: .08em;
    margin-bottom: 1.2rem;
}

.ttl_asset__lower01-h3 {
    font-size: 2.6rem;
    font-weight: bold;
}

.ttl_asset__lower01-txt {
    margin-top: 4rem;
}

/* =========================
   Lower template responsive
   (8pt / 8倍数ベース + max-width only)
========================= */

/* <=1023px（タブレット） */
@media (max-width: 1023px) {
  .lower_head {
    padding-top: 16rem; /* 24 → 16 */
  }

  .lower_head__title {
    font-size: 3.2rem;         /* 32px */
    border-bottom-width: .8rem; /* 8px相当でスッキリ */
  }

  .lower_head__body {
    margin-top: .8rem;          /* 8px */
    padding-top: 4.8rem;        /* 48px */
    border-top-width: .8rem;
  }

  .lower_head__h2 {
    font-size: 2.4rem;          /* 24px */
  }

  .lower_head__text {
    margin-top: 3.2rem;         /* 32px */
  }

  .lower_head__date {
    font-size: 1.6rem;          /* 16px */
    margin-bottom: .8rem;       /* 8px */
  }

  .ttl_asset__lower01-h3 {
    font-size: 2.4rem;          /* 24px */
  }

  .ttl_asset__lower01-txt {
    margin-top: 3.2rem;         /* 32px */
  }
}

/* <=767px（スマホ） */
@media (max-width: 767px) {
  .lower_head {
    padding-top: 12.8rem; /* 128px：8倍数で詰める */
  }

  .lower_head__title {
    font-size: 2.4rem;          /* 24px */
    border-bottom-width: .8rem; /* 太さは統一 */
  }

  .lower_head__body {
    margin-top: .8rem;          /* 8px */
    padding-top: 3.2rem;        /* 32px */
    border-top-width: .8rem;
  }

  .lower_head__h2 {
    font-size: 2.0rem;          /* 20px（ここだけ可読性優先） */
  }

  .lower_head__text {
    margin-top: 2.4rem;         /* 24px */
  }

  .lower_head__date {
    font-size: 1.4rem;          /* 14px */
    margin-bottom: .8rem;       /* 8px */
  }

  .ttl_asset__lower01-h3 {
    font-size: 2.0rem;          /* 20px */
  }

  .ttl_asset__lower01-txt {
    margin-top: 2.4rem;         /* 24px */
  }
}

/* <=375px（小さめ） */
@media (max-width: 375px) {
  .lower_head {
    padding-top: 12rem; /* 120px：少しだけ詰める */
  }

  .lower_head__title {
    font-size: 2.2rem;
  }
}

.homerem_btn {
    margin: 6rem auto 0 !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

.homerem_btn:hover {
    color: #1C48B5 !important;
    text-decoration: none !important;
}

/* =========================
   WP本文（the_content）共通スタイル
   対象：固定ページ/投稿詳細どちらも
========================= */

.entry-content {
    /* 基礎 */
    line-height: 1.9;
    color: #575757;
    font-size: 1.7rem;
    overflow-wrap: anywhere;
    word-break: break-word;
    margin-bottom: 12rem;
}

/* 余白リズム（何が来てもそれっぽく整う） */
.entry-content>* {
    margin-top: 0;
    margin-bottom: 2.4rem;
}

/* 見出し */
.entry-content h2 {
    margin-top: 4.8rem;
    margin-bottom: 1.6rem;
    font-size: 3.2rem;
    font-weight: 700;
    color: #FF8D2E;
    line-height: 1.35;
    padding-left: 1.2rem;
    border-left: .6rem solid #FF8D2E;
}

.entry-content h3 {
    margin-top: 3.6rem;
    margin-bottom: 1.2rem;
    font-size: 2.4rem;
    font-weight: 700;
    color: #1C48B5;
    line-height: 1.4;
}

.entry-content h4 {
    margin-top: 2.8rem;
    margin-bottom: 1.0rem;
    font-size: 2.0rem;
    font-weight: 700;
    color: #575757;
    line-height: 1.5;
}

/* 段落・小要素 */
.entry-content p {
    margin-bottom: 2.4rem;
}

/* リンク */
.entry-content a {
    color: #1C48B5;
    text-decoration: underline;
    text-decoration-thickness: .12em;
    text-underline-offset: .18em;
}

.entry-content a:hover {
    color: #FF8D2E;
    text-decoration-color: #FF8D2E;
}

/* リスト */
.entry-content ul,
.entry-content ol {
    padding-left: 2.2rem;
    margin-bottom: 2.4rem;
    list-style: auto;
}

.entry-content li {
    margin: .6rem 0;
}

/* 引用 */
.entry-content blockquote {
    margin: 3.2rem 0;
    padding: 2.0rem 2.0rem;
    border-left: .6rem solid rgba(28, 72, 181, 0.35);
    background: rgba(28, 72, 181, 0.06);
}

.entry-content blockquote>*:last-child {
    margin-bottom: 0;
}

/* 画像 */
.entry-content img {
    height: auto;
    max-width: 100%;
}

.entry-content figure {
    margin: 3.2rem 0;
}

.entry-content figcaption {
    margin-top: 1.0rem;
    font-size: 1.4rem;
    color: rgba(87, 87, 87, 0.75);
}

/* 区切り線 */
.entry-content hr {
    border: none;
    height: 1px;
    background: rgba(87, 87, 87, 0.2);
    margin: 4.0rem 0;
}

/* テーブル（プラポリ等で出がち） */
.entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 3.2rem 0;
    font-size: 1.6rem;
}

.entry-content th,
.entry-content td {
    border: 1px solid rgba(87, 87, 87, 0.2);
    padding: 1.2rem 1.4rem;
    vertical-align: top;
}

.entry-content th {
    background: rgba(255, 114, 8, 0.08);
    font-weight: 700;
    white-space: nowrap;
}

/* コード */
.entry-content code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.95em;
    padding: .15em .35em;
    background: rgba(28, 72, 181, 0.08);
    border-radius: .4rem;
}

.entry-content pre {
    margin: 3.2rem 0;
    padding: 2.0rem;
    background: rgba(28, 72, 181, 0.06);
    border-radius: 1.2rem;
    overflow: auto;
}

.entry-content pre code {
    padding: 0;
    background: transparent;
}

/* スマホ微調整 */
@media (max-width: 767px) {
    .entry-content {
        font-size: 1.6rem;
        line-height: 1.85;
    }

    .entry-content h2 {
        font-size: 2.6rem;
    }

    .entry-content h3 {
        font-size: 2.2rem;
    }
}



/* header */
@media (max-width: 1023px) {
    .footer_nav-row {
        flex-wrap: wrap;
        gap: 1.6rem;
    }

    .footer_nav-list {
        flex-wrap: wrap;
        row-gap: 1rem;
        gap: 2.4rem;
        font-size: 1.6rem;
    }

    .footer_bottom {
        margin-top: 2.4rem;
        text-align: center;
    }

    .footer_privacy {
        position: static;
        display: inline-block;
        margin-top: 0.8rem;
    }

    .footer_copy {
        font-size: 1.2rem;
    }
}




/* =========================
   Header / Global Nav (CONSOLIDATED / MAX ONLY)
   - Default: Desktop layout
   - <=1200: compact
   - <=1023: drawer + hamburger (tablet 포함)
   - <=767 : small tweaks
========================= */

/* ===== Desktop (default) ===== */
.site-header {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 0%, rgba(255, 255, 255, 0) 100%);
  backdrop-filter: blur(3px);
  position: fixed;
  inset: 0 auto auto 0;
  width: 100%;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0;
}

/* ロゴ */
.site-header .header__logo {
  width: 28rem;
  margin: 6rem 5.6rem 2.4rem;
}

/* 右側（問い合わせ＋ナビ） */
.site-header .header_nav {
  margin-left: auto;
  position: static;
  inset: auto;
  height: auto;
  background: none;
  backdrop-filter: none;
  opacity: 1;
  pointer-events: auto;
  transform: none;
  padding: 0;
  overflow: visible;
}

/* お問い合わせ（PC） */
.site-header .header_contact {
  margin: 2rem 8rem 2.4rem auto;
  width: fit-content;
  display: flex;
}

/* ナビ（PC） */
.site-header .header_nav__list {
  display: flex;
  gap: 3.2rem;
  font-family: "din-condensed", sans-serif;
  font-size: 2rem;
  font-weight: bold;
  color: #FFF;
  border-top: #ffffff70 solid 1px;
  padding-top: 1rem;
  padding-right: 8rem;
}

/* リンク（PC） */
.site-header .header_nav__list a {
  position: relative;
  color: #FFF;
  text-decoration: none;
  padding-bottom: 0.4rem;
  transition: color 0.3s ease;
}

/* 上ライン（is-active時だけ） */
.site-header .header_nav__list a::after {
  content: "";
  position: absolute;
  left: 0;
  top: -1.5rem;
  width: 100%;
  height: 3px;
  background-color: #FF8D2E;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s ease;
}

.site-header .header_nav__list a:hover {
  color: #FF8D2E;
}

.site-header .header_nav__list a.is-active::after {
  transform: scaleX(1);
}

/* PCではハンバーガーは隠す（maxだけ運用のためデフォルトでOFF） */
.header_toggle,
.header_close {
  display: none;
}

/* ===== <=1200: 少しコンパクト ===== */
@media (max-width: 1200px) {
  .site-header .header__logo {
    width: 28rem;
    margin: 4rem 3.2rem 1.6rem;
  }

  .site-header .header_contact {
    margin: 2rem 3.2rem 1.6rem auto;
  }

  .site-header .header_nav__list {
    padding-right: 3.2rem;
    gap: 2.4rem;
    font-size: 1.8rem;
  }
}

/* =========================
   <=1023: Drawer + Hamburger
========================= */
@media (max-width: 1023px) {
  /* ヘッダーを圧縮（ロゴ＋トグル） */
  .site-header {
    align-items: center;
    padding: 1.2rem 1.6rem;
  }

  .site-header .header__logo {
    width: 22rem;
    margin: 0;
  }

  /* ハンバーガー表示 */
  .header_toggle {
    display: inline-flex;
    margin-left: auto;
    width: 4.4rem;
    height: 4.4rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background: rgba(255, 255, 255, 0.10);
    backdrop-filter: blur(6px);
    align-items: center;
    justify-content: center;
    transition: transform .2s ease, background-color .2s ease;
  }

  .header_toggle:hover {
    transform: scale(1.02);
  }

  .header_toggle__lines {
    width: 1.8rem;
    height: 1.2rem;
    position: relative;
    display: block;
  }

  .header_toggle__lines::before,
  .header_toggle__lines::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: #fff;
    border-radius: 999px;
    transition: transform .22s ease, top .22s ease, bottom .22s ease, opacity .22s ease;
  }

  .header_toggle__lines::before { top: 0; }
  .header_toggle__lines::after  { bottom: 0; }

  /* トグルは押しやすく固定 */
  .header_toggle {
    position: fixed;
    top: calc(env(safe-area-inset-top) + 1.2rem);
    right: 1.6rem;
    z-index: 1301;
  }

  /* ドロワー（全画面） */
  .site-header .header_nav {
    position: fixed;
    inset: 0;
    height: 100dvh;
    z-index: 1200;

    background: #1c47b5f3;
    backdrop-filter: blur(10px);

    padding: calc(env(safe-area-inset-top) + 7.2rem) 1.6rem
             calc(env(safe-area-inset-bottom) + 3.2rem);

    overflow-y: auto;

    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity .22s ease, transform .22s ease;

    /* 下から積む（既存の意図を維持） */
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
  }

  body.is-nav-open .site-header .header_nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  /* 開いてる間：背景スクロール停止（JSの top 固定とセット） */
  body.is-nav-open {
    position: fixed;
    left: 0;
    width: 100%;
  }

  /* CTA固定が被らないように */
  body.is-nav-open .cta_fixed__btn {
    opacity: 0;
    pointer-events: none;
  }

  /* ドロワー内：お問い合わせ */
  .site-header .header_contact {
    margin: 0 0 3.2rem 0;
    width: fit-content;
    display: inline-flex;
  }

  /* ドロワー内：縦ナビ */
  .site-header .header_nav__list {
    border-top: none;
    padding: 0;
    margin: 0 0 2.4rem 0;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    font-size: 2rem;
  }

  /* ドロワー内は上ラインを廃止 → 左アクセント */
  .site-header .header_nav__list a::after {
    content: none;
  }

  .site-header .header_nav__list a {
    display: inline-block;
    position: relative;
    padding-left: 1.2rem;
  }

  .site-header .header_nav__list a.is-active {
    color: #FF8D2E;
  }

  .site-header .header_nav__list a.is-active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: .4rem;
    height: 1.2em;
    border-radius: 999px;
    background: #FF8D2E;
  }

  /* 開いてる時：× */
  body.is-nav-open .header_toggle__lines::before {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
  }

  body.is-nav-open .header_toggle__lines::after {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%) rotate(-45deg);
  }
}

/* ===== <=767: ちょい調整（任意） ===== */
@media (max-width: 767px) {
  .site-header .header__logo {
    width: 20rem;
  }

  .site-header .header_nav__list {
    font-size: 1.8rem;
  }
}
/* =========================
   TOP responsive (max-only)
   <=1200: compact
   <=1023: tablet
   <=767 : mobile
   ※既存の見た目は崩さず「過剰な余白・左インデント・横幅制限・読みにくさ」だけを整える
========================= */

/* ---------- <=1200 (compact) ---------- */
@media (max-width: 1200px) {
  /* 大きい英字（右端の透かし）を少しだけ控えめに */
  .ttl_asset-02 {
    font-size: 6.4rem; /* 8 → 6.4 */
  }

  /* --- KV --- */
  .kv {
    padding-left: 4.0rem;  /* 8 → 4 */
    padding-right: 4.0rem; /* 0 → 4（右も確保） */
    padding-top: 28.8rem;  /* 36 → 28.8 */
    padding-bottom: 8.0rem;
    min-height: 100svh;    /* モバイル系のvhズレ対策（影響少なめ） */
  }

  .kv_txt {
    max-width: 72rem;
  }

  .kv_txt-h1 {
    font-size: 4.6rem; /* 5 → 4.6 */
  }

  .kv_txt p {
    font-size: 2.4rem; /* 2.7 → 2.4 */
    margin-top: 3.2rem;
  }

  .kv_txt p span {
    font-size: 4.0rem; /* 4.6 → 4.0 */
  }

  /* --- Service --- */
  .service_txt {
    padding-left: 8.0rem; /* 16 → 8（読みやすい行長に） */
    margin-top: 6.4rem;   /* 8 → 6.4 */
  }

  .service_h2 .ttl_asset-main {
    padding-left: 8.0rem;
  }

  .service_h2 .ttl_asset-sub {
    padding-left: 9.8rem; /* 17.8 → 9.8（左の空き揃え） */
  }

  .service_h2 .ttl_asset-sub::after {
    left: 8.0rem;
  }

  .service_btn {
    margin-top: 16.0rem; /* 24 → 16（長すぎる余白を圧縮） */
  }

  /* --- Approach --- */
  .approach {
    margin-top: 12.8rem;  /* 16 → 12.8 */
    padding-bottom: 24.0rem; /* 32 → 24 */
  }

  .approach_txt {
    margin-top: 6.4rem; /* 8 → 6.4 */
  }

  /* --- Casual meeting（TOP内） --- */
  .casual_meeting {
    margin-top: 9.6rem; /* 10.4 → 9.6 */
  }

  .casual_meeting__h3 {
    margin-top: 6.4rem; /* 8 → 6.4 */
  }

  .casual_meeting__container {
    padding: 4.8rem 4.8rem; /* 6.4/7.2 → 4.8/4.8 */
  }

  .casual_meeting_btn-wrap {
    gap: 4.8rem; /* 8rem → 4.8rem */
  }

  /* --- Info --- */
  .info_wrap {
    width: 100%; /* 70% → 100%（1200以下は右寄りが目立つ） */
    margin-left: 0;
  }
}

/* ---------- <=1023 (tablet) ---------- */
@media (max-width: 1023px) {
  /* --- KV --- */
  .kv {
    padding-left: 2.4rem;
    padding-right: 2.4rem;
    padding-top: 24.0rem;
    padding-bottom: 8.0rem;
    background-position: center;
  }

  .kv_txt {
    max-width: 64rem;
  }

  .kv_txt-h1 {
    font-size: 4.0rem;
  }

  .kv_txt p {
    font-size: 2.0rem;
    line-height: 1.9;
    margin-top: 2.4rem;
  }

  .kv_txt p span {
    font-size: 3.6rem;
  }

  /* --- Service：2カラム維持が厳しいので縦積みに --- */
  .service {
    flex-direction: column;
    margin-top: 6.4rem;
  }

  .service_mv {
    order: -1;
    max-width: 56rem;
    margin: 0 auto 4.8rem;
  }

  .service_h2 {
    padding-top: 0;
  }

  .service_txt {
    padding-left: 0;
    margin-top: 3.2rem;
  }

  .service_h2 .ttl_asset-main {
    padding-left: 0;
  }

  .service_h2 .ttl_asset-sub {
    padding-left: 1.8rem;
  }

  .service_h2 .ttl_asset-sub::after {
    left: 0;
  }

  .service_btn {
    margin: 4.8rem auto 0;
  }

  /* --- 透かし英字（右端） --- */
  .ttl_asset-02 {
    font-size: 5.6rem;
  }

  /* --- 見出しの可読性（共通） --- */
  .ttl_asset-main {
    font-size: 2.8rem; /* 3.2 → 2.8 */
    margin-top: 3.2rem;
  }

  /* --- Approach --- */
  .approach {
    margin-top: 9.6rem;
    padding-bottom: 20.0rem;
  }

  .approach_txt {
    margin-top: 4.8rem;
  }

  /* 全幅スライダーの左右余白を inner と揃える */
  .approach .approach-slide,
  .approach .approach_slide {
    padding: 0 2.4rem;
  }

  /* アクティブ拡大が見切れやすいので控えめに */
  .approach .approach-slider .splide__slide.is-active {
    transform: scale(1.06);
    margin-left: 0;
  }

  /* --- Price --- */
  .price {
    padding: 6.4rem 0;
  }

  /* --- Casual meeting（TOP内） --- */
  .casual_meeting__container {
    padding: 4.0rem 2.4rem;
  }

  .casual_meeting__container-txt {
    font-size: 1.7rem;
  }

  .casual_meeting__box {
    padding: 3.2rem 2.4rem;
  }

  .casual_meeting__box-icon {
    width: 4.0rem;
  }

  .casual_meeting__box-h4 {
    font-size: 1.8rem;
    margin-left: 1.6rem;
  }

  /* ボタンは折り返し許可（2つ並べが苦しい幅がある） */
  .casual_meeting_btn-wrap {
    flex-wrap: wrap;
    gap: 2.4rem;
  }

  .casual_meeting_btn {
    width: 100%;
    max-width: 52rem;
    margin: 0 auto;
  }

  /* --- Info --- */
  .info {
    padding: 8.0rem 0 9.6rem;
  }

  .info_wrap {
    width: 100%;
    margin-left: 0;
  }

  .info_card-link {
    padding: 2.4rem 2.4rem;
  }

  /* --- FAQ（iOS等で fixed が重いので解除） --- */
  .faq {
    background-attachment: scroll;
    padding: 8.0rem 0 9.6rem;
  }

  .faq_wrap {
    margin-top: 4.8rem;
  }
}

/* ---------- <=767 (mobile) ---------- */
@media (max-width: 767px) {
  /* --- 透かし英字 --- */
  .ttl_asset-02 {
    font-size: 4.8rem;
    display: none;
  }

  /* --- KV：余白と文字のバランス最重要 --- */
  .kv {
    padding-left: 1.6rem;
    padding-right: 1.6rem;
    padding-top: 20.0rem;
    padding-bottom: 6.4rem;
    min-height: 100svh;
  }

  .kv_txt {
    max-width: 56rem;
  }

  .kv_txt-h1 {
    font-size: 2.8rem;
    line-height: 1.5;
  }

  .kv_txt p {
    font-size: 1.6rem;
    line-height: 1.9;
    margin-top: 2.4rem;
  }

  .kv_txt p span {
    font-size: 2.8rem;
  }

  /* --- Service --- */
  .service_mv {
    max-width: 32rem;
    margin-bottom: 3.2rem;
  }

  .ttl_asset-main {
    font-size: 2.4rem;
    margin-top: 2.4rem;
  }

  .service_txt {
    margin-top: 2.4rem;
  }

  .service_btn {
    width: 100%;
    justify-content: center;
  }

  /* --- Approach --- */
  .approach {
    margin-top: 8.0rem;
    padding-bottom: 16.0rem;
  }

  .approach_txt {
    margin-top: 3.2rem;
  }

  .approach .approach-slide,
  .approach .approach_slide {
    padding: 0 1.6rem;
  }

  /* モバイルは拡大演出をOFF（見切れ・酔い防止） */
  .approach .approach-slider .splide__slide.is-active {
    transform: none;
  }

  /* .approach .approach-slider .splide__track {
    overflow: hidden;
  } */

  .approach .approach-card {
    border-radius: 2.4rem; /* 6rem → 2.4 */
    padding: 3.2rem 2.4rem;
  }

  /* --- Price --- */
  .price {
    padding: 4.8rem 0;
  }

  .price_txt {
    margin-top: 2.4rem;
  }

  .price_btn {
    width: 100%;
    justify-content: center;
  }

  /* --- Casual meeting --- */
  .casual_meeting {
    margin-top: 8.0rem;
  }

  .casual_meeting__h3 {
    margin-top: 4.8rem;
    font-size: 2.4rem; /* 3.2 → 2.4 */
    padding-bottom: 1.6rem;
  }

  .casual_meeting__container {
    padding: 3.2rem 1.6rem;
    border-radius: 2.4rem;
  }

  .casual_meeting__container-txt {
    font-size: 1.6rem;
    line-height: 1.75;
  }

  .casual_meeting__box {
    padding: 2.4rem 1.6rem;
  }

  .casual_meeting__item {
    align-items: flex-start;
    gap: 1.2rem;
    margin-bottom: 1.6rem;
  }

  .casual_meeting__box-icon {
    width: 3.2rem;
    flex: 0 0 auto;
    margin-top: 0.2rem;
  }

  .casual_meeting__box-h4 {
    font-size: 1.6rem;
    margin-left: 0;
  }

  .casual_meeting_btn-wrap {
    flex-direction: column;
    gap: 1.6rem;
  }

  .casual_meeting_btn {
    width: 100%;
    max-width: none;
    padding: 1.6rem 2.4rem;
    font-size: 1.6rem;
  }

  .casual_meeting_btn span {
    font-size: 2.0rem;
  }

  /* --- Info --- */
  .info {
    padding: 6.4rem 0 8.0rem;
  }

  .info_wrap {
    width: 100%;
    margin-left: 0;
  }

  .info_card-link {
    padding: 2.0rem 0;
    gap: 1.6rem;
  }

  /* --- FAQ --- */
  .faq {
    background-attachment: scroll;
    padding: 6.4rem 0 8.0rem;
  }

  .faq_h2 {
    max-width: none;
  }

  .faq_h2 .ttl_asset-main {
    font-size: 3.2rem; /* 3.6 → 3.2（見た目を維持しつつ詰める） */
  }

  .faq_lead {
    margin-top: 2.4rem;
    font-size: 1.3rem;
  }

  .faq_wrap {
    margin-top: 4.0rem;
  }
}

/* <=1023px：service_mv はPC専用の飾りなので隠す（PCデザインはそのまま） */
@media (max-width: 1023px) {
  .service_mv {
    display: none;
  }
}
