
@media screen and (max-width: 1280px) {
    }
@media screen and (max-width: 375px) {

}
:root{
    --font-base:  "游ゴシック体", "Yu Gothic", YuGothic, "游ゴシック", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

body{
    color: #1B224C;
    scroll-padding-top: clamp(60px, 2.21vw + 51.71px, 80px); /* ヘッダーの高さ分だけスクロール位置を下げる */
    scroll-behavior: smooth;
    background-color: #fff;
    font-family: var(--font-base);
}
img{
    width: 100%;
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   header ヘッダー                     ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.header {
    width: 100%;
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    top: 0;
    z-index: 900;
}
.header__inner {
    margin: 0 auto;
    padding-right: clamp(5px, 0.552vw + 2.93px, 10px);
    padding-left: clamp(5px, 1.105vw + 0.86px, 15px);
    height: clamp(60px, 2.21vw + 51.71px, 80px);
    display: flex;
    align-items: center;
}
.header__logo {
    margin-left: clamp(10px, 0.552vw + 7.93px, 15px);
    margin-right: clamp(15px, 4.011vw - 21.34px, 30px);
}
.p-header__logoImg{
    height: clamp(20px, 0.442vw + 18.34px, 24px);
    width: auto;
}
.header__logoLink {
}
.header__nav {
    flex-grow: 1;/* 残りのスペースを埋めて右側のアクションを右寄せにする */
}
.header__navList {
    display: flex;
    gap: clamp(15px, 3.617vw - 17.77px, 30px);
    margin: 0;
    padding: 0;
    font-size: clamp(13px, 0.535vw + 8.15px, 15px);
    font-weight: 700;
    @media screen and (max-width: 906px) {
    display: none;
        }
}
.header__navItem {
}
.header__navLink {
    position: relative;
    padding-bottom: 5px;
}
.header__navLink::after {
    position: absolute;
    left: 0;
    content: '';
    width: 100%;
    height: 1px;
    background: #1B224C;
    bottom: -1px;
    transform: scale(0, 1);
    transform-origin: center top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
    transition: transform 0.3s;   /*変形の時間*/
}
.header__navLink:hover::after {
    transform: scale(1, 1); /*ホバー後、x軸方向に1（相対値）伸長*/
}

.header__actions {
    display: flex;
  align-items: center;
  justify-content: flex-end;
  text-decoration: none;
}
.header__contact {
    margin-right: clamp(12px, 2.941vw - 15.65px, 23px);
    text-align: right;
    @media screen and (max-width: 906px) {
        display: none;
    }
}
.header__contactTime {
    font-size: 12px;
}

.header__contactTelLink {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
.header__contactIconImg {
    width: 10px;
    margin-right: 5px;
}
.header__contactNumber {
    font-size: clamp(15px, 0.802vw + 7.73px, 18px);
    font-weight: 700;
}
.header__requestBtn,
.header__contactBtn{
    display: flex;
    align-items: center;
    justify-content: center;
    height:clamp(40px, 1.105vw + 35.86px, 50px);
    width: clamp(120px, 4.42vw + 103.43px, 160px);
    border-radius: 4px;
    font-weight: 700;
    font-size: clamp(12px, 0.221vw + 11.17px, 14px);
    color: #fff;
    -webkit-transition: transform 0.5s ease-out;
    transition: transform 0.5s ease-out;
}
.header__requestBtn:hover,
.header__contactBtn:hover {
    transform: scale(1.05);
}

.header__requestBtn {
    background-color: #F5A623;
    margin-right: clamp(5px, 0.552vw + 2.93px, 10px);
}
.header__contactBtn {
    background-color: #1B224C;
    @media screen and (max-width: 767px) {
    display: none;
        }
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   ドロワーメニュー                     ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.header__drawerMenu {
    @media screen and (max-width: 906px) {
        /* 固定配置で画面全体を覆う */
        position: fixed;
        height: clamp(60px, 2.21vw + 51.71px, 80px); /* ヘッダーの高さ分下げる */
        left: 0;
        top: clamp(60px, 2.21vw + 51.71px, 80px);
        width: 100%;
        height: calc(100vh - 80px); /* 画面の高さからヘッダー分を引く */
        background-color: rgba(27, 37, 56, 0.95); /* 紺色の透過背景（デザインに合わせて変更可） */
        z-index: 999;
        
        /* アニメーション：初期状態は右に隠して透明にする */
        transform: translateX(100%);
        opacity: 0;
        transition: transform 0.4s ease, opacity 0.4s ease;
        
        /* 中身のスクロールを許可 */
        overflow-y: auto;
        padding: 40px 20px;

        transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s ease;
    }
}

/* JSでクラスが付与された時の状態 */
.header__drawerMenu.is-open {
  transform: translateX(0);
  opacity: 1;
}

/* メニューリスト */
.header__drawerList {
    display: none;
    @media screen and (max-width: 906px) {
        display: block;
        list-style: none;
        padding: 0;
        margin: 0 0 40px 0;
        text-align: center;
    }
}

.header__drawerItem {
  margin-bottom: 25px;
}

.header__drawerLink {
  text-decoration: none;
  color: #fff;
  font-size: clamp(12px, 0.221vw + 11.17px, 14px);
  font-weight: 700;
  display: block;
}

/* コンタクトエリア */
.header__drawerContact {
    display: none;
    @media screen and (max-width: 906px) {
        display: block;
        text-align: center;
        border-top: 1px solid rgba(255, 255, 255, 0.2);
        padding-top: 30px;
        }
}

.header__drawerContactTime {
  color: #fff;
  font-size: clamp(12px, 0.221vw + 11.17px, 14px);
  margin-bottom: 10px;
}

.header__drawerTelLink {
  text-decoration: none;
  color: #fff;
  font-size: clamp(15px, 0.802vw + 7.73px, 18px);
  font-weight: 700;
}


/* ボタン自体のリセットとサイズ */
.header__drawerBtn {
    @media screen and (max-width: 906px) {
        margin-left: clamp(5px, 0.552vw + 2.93px, 10px);
        display: block;
        width: 30px;
        height: 24px;
        position: relative;
        background: none;
        border: none;
        cursor: pointer;
        z-index: 1000;
    }
}

/* 真ん中の線 */
.header__drawerBtnBar,
.header__drawerBtnBar::before,
.header__drawerBtnBar::after {
    display: none;
    @media screen and (max-width: 906px) {
        content: "";
        display: block;
        width: 100%;
        height: 2px;
        background-color: #1b2538;
        position: absolute;
        left: 0;
        transition: all 0.3s; /* アニメーション用 */
    }
}

.header__drawerBtnBar {
  top: 50%;
  transform: translateY(-50%); /* 真ん中に配置 */
}

.header__drawerBtnBar::before {
  top: -10px;
}

.header__drawerBtnBar::after {
  top: 10px;
}

.header__drawerBtn.is-open .header__drawerBtnBar {
  background-color: transparent;
}

.header__drawerBtn.is-open .header__drawerBtnBar::before {
  top: 0;
  transform: rotate(45deg);
}

.header__drawerBtn.is-open .header__drawerBtnBar::after {
  top: 0;
  transform: rotate(-45deg);
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   main                               ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.main {
    margin-top: clamp(60px, 2.21vw + 51.71px, 80px);
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   MV                                 ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.mv {
    background: url(../img/mv_bg.jpg) no-repeat 80% center / cover;
    height: 476px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mv__inner {
}
.mv__ttl {
    display: flex;
    justify-content: center;
    font-size: clamp(25px, 2.541vw + 15.47px, 48px);
    font-weight: 700;
    text-shadow: 0 3px 3px rgba(0, 0, 0, 0.16);
}
.mv__txt {
    text-align: center;
    font-size: clamp(16px, 0.221vw + 15.17px, 18px);
    margin: clamp(20px, 1.878vw + 12.96px, 37px) auto;
    line-height: 150%;
}
.mv__txtBr{
    display: block;
}
.mv__btnBox{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.mv__requestBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    height:clamp(48px, 1.326vw + 43.03px, 60px);
    width: clamp(200px, 6.63vw + 175.14px, 260px);
    border-radius: 31px;
    font-weight: 700;
    font-size: clamp(14px, 0.221vw + 13.17px, 16px);
    -webkit-transition: transform 0.5s ease-out;
    transition: transform 0.5s ease-out;
    background-color: #F5A623;
    margin-bottom: clamp(10px, 1.326vw + 5.03px, 22px);
}
.mv__contactBtn {
    font-weight: 500;
    text-decoration-line: underline;
    text-decoration-style: solid;
    font-size: clamp(14px, 0.221vw + 13.17px, 16px);
}


/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   problem                             ##
   ##                                                      ##
   ##########################################################
   ########################################################## */

.problem {
    background-color: #1b224c;
    padding-top: clamp(40px, 4.42vw + 23.43px, 80px);
    padding-bottom: clamp(30px, 2.65vw + 20.06px, 54px);
    color: #fff;
}

.problem__inner {
    max-width: 906x;
    margin: 0 auto;
    @media screen and (max-width: 906px) {
    padding: 0 20px;
        }
}

/* 悩み提示エリア */
.problem__trouble {
    margin-bottom: clamp(32px, 2.76vw + 21.64px, 57px);;
}

.problem__troubleTtl {
    font-size: clamp(20px, 1.77vw + 13.37px, 36px);
    font-weight: 700;
    text-align: center;
    margin-bottom: clamp(24px, 1.77vw + 17.37px, 40px);
    margin-bottom: clamp(32px, 2.76vw + 21.64px, 57px);
}
.problem__troubleTtlBr{
    display: none;
    @media screen and (max-width: 767px) {
    /* 767px以下に適応させるcss(スマホ用) */
        display: block;
        align-items: center;
        }
}

.problem__troubleList {
    display: flex;
    justify-content: center;
    gap: clamp(15px, 3.617vw - 17.77px, 30px);
    list-style: none;
    padding: 0;
    margin-bottom: clamp(35px, 4.53vw + 18.01px, 76px);
    @media screen and (max-width: 767px) {
        flex-direction: column;
        align-items: center;
    }
}

.problem__troubleItem {
    text-align: center;
    position: relative;
    /* 必要であればここにチェックアイコンなどの装飾を追加 */
}

.problem__troubleTxt {
    font-size: clamp(16px, 0.221vw + 15.17px, 18px);
    line-height: 1.6;
    display: inline-block;
    font-weight: 700;
}

/* 解決策提示エリア（白枠） */
.problem__summary {
    color: #1B224C;
    padding: clamp(8px, 0.33vw + 6.75px, 11px) clamp(12px, 0.44vw + 10.34px, 16px);
    background-color: #fff;
    max-width: 900px;
    margin: 0 auto;
}

.problem__summaryContent {
    text-align: center;
    border: 3px solid #1b224c;
    padding: 0 3px;
}

.problem__summaryTtl {
    font-size: clamp(20px, 1.77vw + 13.37px, 36px);
    font-weight: 700;
    margin-bottom: 25px;
    line-height: 1.4;
    padding-top: clamp(16px, 0.221vw + 15.17px, 18px);
}

.problem__summaryTtlAccent {
    display: inline-block;
    background: linear-gradient(transparent 60%, #F5A623 60%, #F5A623 80%, transparent 80%);
}

.problem__summaryTxt {
    font-size: clamp(16px, 0.221vw + 15.17px, 18px);
    line-height: 150%;
    padding-bottom: clamp(15px, 3.617vw - 17.77px, 30px);
}

.problem__summaryTxtBr {
    display: block;
    @media screen and (max-width: 767px) {
        display: none;
    }
}




/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   strength                           ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.strength {
    padding-top: clamp(40px, 2.54vw + 30.47px, 63px);
    padding-bottom: clamp(30px, 0.88vw + 26.69px, 38px);
}

.strength__inner {
    max-width: 906px;
    margin: 0 auto;
    @media screen and (max-width: 906px) {
        padding: 0 20px;
    }
}

.strength__mainTtl {
    font-size: clamp(20px, 1.77vw + 13.37px, 36px);
    font-weight: 700;
    text-align: center;
    margin-bottom: clamp(32px, 2.54vw + 22.47px, 55px);
}
.strength__mainTtlBr{
    display: none;
    @media screen and (max-width: 767px) {
        display: block;
    }
}

.strength__content {
    display: flex;
    flex-direction: column;
    gap: clamp(30px, 3.31vw + 17.57px, 60px);
}

.strength__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(28px, 2.65vw + 18.06px, 52px);
    @media screen and (max-width: 767px) {
        flex-direction: column;
        gap: 20px;
    }
}


.strength__item--reverse {
    flex-direction: row-reverse;
    @media screen and (max-width: 767px) {
        flex-direction: column;
    }
}

.strength__itemBody {
    @media screen and (min-width: 769px) {
        width: 100%;
        max-width: 100%;
    }
}

.strength__itemLabel {
    display: inline-block;
    background-color: #f5a623;
    color: #fff;
    font-size: 12px;
    padding: clamp(6px, 0.33vw + 4.75px, 9px) clamp(20px, 0.88vw + 16.69px, 28px);
    margin-bottom: clamp(15px, 2.43vw + 5.88px, 37px);
}

.strength__itemTtl {
    font-size: clamp(18px, 0.88vw + 14.69px, 26px);
    font-weight: 700;
    color: #1b224c;
    line-height: 150%;
    margin-bottom: clamp(15px, 2.43vw + 5.88px, 37px);
}

.strength__itemTxt {
    font-size: clamp(14px, 1.5vw, 16px);
    line-height: 150%;
}

.strength__itemImgBox {
    flex-grow: 1;
    display: flex;
    align-items: center;
}

.strength__itemImg {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.strength__banner {
    margin-top: clamp(40px, 5.86vw + 18.04px, 93px);
    background: url(../img/strength_banner_bg.jpg) no-repeat center center / cover;
    text-align: center;
    color: #fff;
}

.strength__bannerTtl {
    font-size: clamp(18px, 0.88vw + 14.69px, 26px);
    font-weight: 700;
    padding-top: clamp(30px, 3.43vw + 17.15px, 61px);
    padding-bottom: clamp(15px, 1.33vw + 10.01px, 27px);
}

.strength__bannerBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #fff;
    border-radius: 30px;
    color: #fff;
    font-size: clamp(14px, 0.221vw + 13.17px, 16px);
    padding: clamp(8px, 0.33vw + 6.75px, 11px) clamp(12px, 0.44vw + 10.34px, 16px);
    transition: all 0.3s;
    margin-bottom: clamp(30px, 3.43vw + 17.15px, 61px);
}

.strength__bannerBtn:hover {
    background-color: #fff;
    color: #1b224c;
}


/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   case                               ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.case {
    padding-top: clamp(40px, 2.54vw + 30.47px, 63px);
    padding-bottom: clamp(40px, 2.54vw + 30.47px, 63px);
    background-color: #1b224c;
}

.case__inner {
    max-width: 906px;
    margin: 0 auto;
    @media screen and (max-width: 906px) {
        padding: 0 20px;
        }
}

.case__mainTtl {
    font-size: clamp(20px, 1.77vw + 13.37px, 36px);
    font-weight: 700;
    text-align: center;
    color: #fff;
    margin-bottom: clamp(60px, 7.62vw + 31.41px, 129px);
}

.case__content {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-content: center;
    gap: clamp(15px, 4.011vw - 21.34px, 30px);
    @media screen and (max-width: 906px) {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 20px;
    }
    @media screen and (max-width: 767px) {
        grid-template-columns: 1fr;
        gap: 40;
    }
}

.case__item {
    display: flex;
    flex-direction: column;
    max-width: 280px;
    @media screen and (max-width: 906px) {
        max-width: 100%;
    }
}

.case__itemTtl {
    color: #fff;
    font-size: clamp(14px, 0.221vw + 13.17px, 16px);
    font-weight: 700;
    line-height: 150%;
    margin-bottom: 12px;
}

.case__itemImgBox {
    background-color: #fff;
    width: 100%;
    aspect-ratio: 16 / 9;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
}

.case__itemImg {
    width: auto;
    height: 90%;
}

.case__itemProfile {
    margin-top: clamp(10px, 0.55vw + 7.93px, 15px);
}

.case__itemMeta {
    display: flex;
    gap: clamp(5px, 0.33vw + 3.75px, 8px);
    margin-bottom: 10px;
}

.case__itemLabel,
.case__itemName,
.case__itemScore {
    background-color: #fff;
    height: clamp(20px, 1.33vw + 15.01px, 32px);
    color: #1b224c;
    display: flex;
    align-items: center;
    font-weight: 500;
    font-size: clamp(14px, 0.221vw + 13.17px, 16px);
    padding-left: 10px;
}
.case__itemLabel{
    flex: 2
}
.case__itemName{
    flex: 3;
}
.case__itemScore {
    font-size: 16px;
    width: 100%;
}


/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   flow                               ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.flow {
    padding-top: clamp(40px, 2.54vw + 30.47px, 63px);
    padding-bottom: clamp(30px, 3.2vw + 17.98px, 59px);
    color: #1b224c;
}

.flow__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.flow__mainTtl {
    font-size: clamp(22px, 1.33vw + 17.01px, 34px);
    font-weight: 700;
    text-align: center;
    margin-bottom:clamp(25px, 2.541vw + 15.47px, 48px);
}

.flow__content {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.flow__item {
    display: flex;
    align-items: center;
    background-color: #F8F8F8;
}

.flow__itemStep {
    background-color: #F5A623;
    color: #fff;
    font-weight: 700;
    font-size: clamp(14px, 0.221vw + 13.17px, 16px);
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(40px, 2.65vw + 30.06px, 64px);
    aspect-ratio: 1 / 1;
    align-self: stretch;
}

.flow__itemBody {
    flex: 1;
    display: flex;
    align-items: center;
    padding: clamp(16px, 0.88vw + 12.68px, 24px) clamp(14px, 0.66vw + 11.51px, 20px);

    @media screen and (max-width: 767px) {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}

.flow__itemTtl {
    font-size: clamp(15px, 0.802vw + 7.73px, 18px);
    font-weight: 700;
    color: #1b224c;
    width: clamp(140px, 6.63vw + 115.14px, 200px);
    flex-shrink: 0;
    @media screen and (max-width: 767px) {
        width: 100%;
    }
}

.flow__itemTxt {
    flex: 1;
    position: relative;
    font-size: 16px;
    font-weight: 500;
    padding-left: 50px;
    color: #1b224c;
    padding-left: clamp(30px, 2.21vw + 21.71px, 50px);
    @media screen and (max-width: 767px) {
    padding: 0;
        }
}

.flow__itemTxt::before{
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 1px;
    height: 24px;
    background-color: #C3C3C3;

    @media screen and (max-width: 767px) {
        display: none;
    }
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   faq                                ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.faq {
    padding-bottom: clamp(50px, 4.42vw + 33.43px, 90px);
}

.faq__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.faq__mainTtl {
    font-size: clamp(22px, 1.33vw + 17.01px, 34px);
    font-weight: 700;
    text-align: center;
    color: #1b224c;
    margin-bottom: clamp(25px, 2.541vw + 15.47px, 48px);
}

.faq__item {
    border-top: 1px solid #1b224c;
    list-style: none;
}

.faq__item:last-of-type {
    border-bottom: 1px solid #1b224c;
}

.faq__itemQuestion {
    position: relative;
    display: block;
    padding: clamp(10px, 1.326vw + 5.03px, 22px) 0;
    padding-right: 40px;
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
    font-weight: 500;
    color: #1b224c;
    cursor: pointer;
    list-style: none;
    transition: opacity 0.2s;
}

.faq__itemQuestion:hover {
    opacity: 0.8;
}

.faq__itemQuestion::-webkit-details-marker {
    display: none;
}

.faq__itemIcon {
    position: absolute;
    top: 50%;
    right: clamp(14px, 0.66vw + 11.51px, 20px);
    width: clamp(14px, 0.66vw + 11.51px, 20px);
    height: clamp(14px, 0.66vw + 11.51px, 20px);
    transform: translateY(-50%) rotate(0deg);
    transform-origin: center center;
    transition: transform 0.3s ease-in-out;
}

.faq__itemIcon::before,
.faq__itemIcon::after {
    content: "";
    background-color: #1b224c;
    position: absolute;
    transform-origin: center center;
    transition: all 0.3s ease-in-out;
}

.faq__itemIcon::before {
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    transform: translateY(-50%);
}

.faq__itemIcon::after {
    top: 0;
    left: 50%;
    width: 2px;
    height: 100%;
    transform: translateX(-50%) rotate(0deg);
    opacity: 1;
}

.faq__item[open] .faq__itemIcon {
    transform: translateY(-50%) rotate(180deg);
}

.faq__item[open] .faq__itemIcon::after {
    transform: translateX(-50%) rotate(90deg);
    opacity: 0;
}

.faq__itemAnswer {
    overflow: hidden;
}

.faq__itemAnswerInner {
    background-color: #f8f8f8;
    padding: clamp(14px, 0.66vw + 11.51px, 20px);
    margin-bottom: clamp(10px, 0.55vw + 7.93px, 15px);
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
    color: #1b224c;
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   news                               ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.news {
    padding-bottom: clamp(70px, 5.41vw + 49.69px, 119px);
    background-color: #fff;
}

.news__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.news__wrapper {
    display: flex;
    justify-content: space-between;
    gap: clamp(40px, 5vw + 20px, 80px);

    @media screen and (max-width: 906px) {
        flex-direction: column;
    }
}

/* 共通タイトル */
.news__mainTtl {
    font-size: clamp(24px, 1.5vw + 20px, 32px);
    font-weight: 700;
    color: #1b224c;
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
}

/* ブログ */
.news__blog {
    flex: 1;
}

.news__blogItem {
    margin-bottom: clamp(15px, 3.617vw - 17.77px, 30px);
}

.news__blogLink {
    display: flex;
    gap: clamp(14px, 0.66vw + 11.51px, 20px);
    text-decoration: none;
    transition: opacity 0.3s;
}

.news__blogLink:hover {
    opacity: 0.7;
}

.news__blogImgWrapper {
    position: relative;
    flex-shrink: 0;
    width: clamp(100px, 5.52vw + 79.28px, 150px);
    aspect-ratio: 3 / 2;
}

.news__blogImg {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news__blogCategory {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #1b224c;
    color: #fff;
    font-size: 12px;
    padding: clamp(4px, 0.22vw + 3.17px, 6px) clamp(6px, 0.33vw + 4.76px, 9px);
    z-index: 1;
}

.news__blogBody {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.news__blogTitle {
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
    font-weight: 700;
    color: #1b224c;
    line-height: 150%;
}
.news__blogTitleText {
    color: #1b224c;
    border-bottom: 1px solid #1b224c;
    padding-bottom: 2px;
}

.news__blogDate {
    font-size: 14px;
    color: #1b224c;
}

/* お知らせ */
.news__info {
    flex: 1;
}

.news__infoItem {
    margin-bottom: clamp(25px, 2.43vw + 15.9px, 47px);
}

.news__infoItem:last-child {
    border-bottom: none;
}

.news__infoLink {
    text-decoration: none;
    transition: color 0.3s;
}

.news__infoLink:hover .news__infoTitle {
    opacity: 0.7;
}

.news__infoDate {
    display: block;
    font-size: 12px;
    color: #1b224c;
    margin-bottom: clamp(11px, 0.22vw + 10.17px, 13px);
}

.news__infoTitle {
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
    font-weight: 500;
    color: #1b224c;
    line-height: 150%;
    display: inline;
    border-bottom: 1px solid #1b224c;
}


/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   cta                                ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.cta {
    background: url(../img/cta_banner_bg.jpg) no-repeat center center / cover;
    text-align: center;
    color: #fff;
    padding-top: clamp(40px, 3.31vw + 27.57px, 70px);
    padding-bottom: clamp(30px, 1.44vw + 24.61px, 43px);
}

.cta__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.cta__ttl {
    font-size: clamp(24px, 1.5vw + 20px, 32px);
    font-weight: 700;
    margin-bottom: 30px;
    line-height: 1.5;
}

.cta__btn {
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
    display: inline-block;
    background-color: #f2a62c;
    color: #fff;
    padding: clamp(12px, 0.55vw + 9.93px, 17px) clamp(24px, 9.28vw - 10.8px, 108px);
    border-radius: 25px;
    text-decoration: none;
    font-weight: 700;
    transition: opacity 0.3s;

}

.cta__btn:hover {
    opacity: 0.8;
}

.cta__link {
    display: inline-block;
    margin-top: clamp(12px, 0.55vw + 9.93px, 17px);
    color: #fff;
    text-decoration: underline;
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
}
.cta__link:hover {
    opacity: 0.8;
}

/* Contact */
.contactInfo {
    background-color: #fff;
    padding: clamp(18px, 0.66vw + 15.51px, 24px) 0;
    color: #1b224c;
}

.contactInfo__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.contactInfo__content {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: clamp(15px, 0.55vw + 12.93px, 20px);
    max-width: 900px;
    margin: 0 auto;

    @media screen and (max-width: 767px) {
        flex-direction: column;
        align-items: center;
    }
}


.contactInfo__text {
    flex: 1;
    text-align: right;
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
    font-weight: 700;
    line-height: 1;
}

.contactInfo__telWrapper {
    flex: 0 0 auto;
    display: flex;
    align-items: baseline;
    line-height: 1;
    font-size: clamp(20px, 1.77vw + 13.37px, 36px);
    font-weight: 700;
}

.contactInfo__time {
    flex: 1;
    text-align: left;
    font-size: clamp(12px, 0.44vw + 10.34px, 16px);
    color: #1b224c;
    font-weight: 500;
    line-height: 1;
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   footer                             ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.footer {
    background-color: #1b224c;
    color: #fff;
    padding-top: clamp(32px, 1.55vw + 26.2px, 46px);
}

.footer__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
    padding-bottom: clamp(40px, 3.2vw + 27.98px, 69px);
}

.footer__content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    @media screen and (max-width: 767px) {
        flex-direction: column;
        gap: 40px;
    }
}

/* ナビゲーション */

.footer__nav{
}

.footer__navList {
    display: flex;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 0;
    @media screen and (max-width: 767px) {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
}

.footer__navItem {
    display: flex;
    align-items: center;
    position: relative;
}


.footer__navItem:not(:last-child)::after {
    content: "";
    display: block;
    width: 1px;
    height: 14px;
    background-color: #fff;
    margin: clamp(16px, 0.55vw + 13.93px, 21px);
    @media screen and (max-width: 767px) {
        display: none;
    }
}

.footer__navLink {
    color: #fff;
    text-decoration: none;
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    transition: opacity 0.3s;
    font-weight: 700;
}

/* 右側情報エリア */
.footer__info {
    text-align: right;
    @media screen and (max-width: 767px) {
        text-align: left;
    }
}
.footer__logoWrapper{
    padding: clamp(12px, 0.22vw + 11.17px, 14px) clamp(15px, 0.44vw + 13.34px, 19px);
    border: 1px solid #707070;
    background: #fff;
    margin-bottom: clamp(20px, 0.77vw + 17.1px, 27px);
}

.footer__logo {
    width: clamp(80px, 8.73vw + 47.27px, 159px);
    height: auto;
}
.footer__tel{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    font-weight: 700;
    @media screen and (max-width: 767px) {
        justify-content: flex-start;
    }
}
.footer__infoTel {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    color: #fff;
    text-decoration: none;
    @media screen and (max-width: 767px) {
        justify-content: flex-start;
    }
}

.footer__contactLinkIcon {
    width: clamp(14px, 0.22vw + 13.17px, 16px);
    height: clamp(14px, 0.22vw + 13.17px, 16px);
}
.footer__time{
    font-size: 12px;
    font-weight: 500;
    margin-top: clamp(11px, 0.22vw + 10.17px, 13px);
}

/* コピーライト */
.footer__copyright {
    background-color: #fff;
    color: #1b224c;
    padding: 10px 0;
}


.footer__copyrightText {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
    display: flex;
    justify-content: flex-end;
    font-size: 12px;
    @media screen and (max-width: 767px) {
        justify-content: center;
        }
}



/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                 pageHead                             ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.pageHead {
    background: url(../img/course_top_bg.jpg) no-repeat center center / cover;
    height: clamp(160px, 6.74vw + 134.72px, 221px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.pageHead__title {
    color: #fff;
    font-size: clamp(24px, 0.88vw + 20.69px, 32px);
    font-weight: 700;
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                     パンくず                          ##
   ##                                                      ##
   ##########################################################
   ########################################################## */

/* Breadcrumb */
.breadcrumb {
    background-color: #F8F8F8;
    padding: clamp(12px, 0.77vw + 9.1px, 19px) 0;
}

.breadcrumb__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.breadcrumb__list {
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap; /* これで入り切らない時に改行を許可 */
    align-items: center;
    display: flex;
    list-style: none;
    font-size: 12px;
    gap: 4px;
    color: #1b224c;
}

.breadcrumb__inner span {
    text-decoration: none;
}
.breadcrumb__inner a {
    text-decoration: none;
    display: inline;
    border-bottom: 1px solid #1b224c;
}

.breadcrumb__inner a:hover {
    text-decoration: none;
}

.breadcrumb__inner .current-item {
    text-decoration: none;
}


.breadcrumb__item:not(:last-child)::after {
    content: ">";
    margin-left: 4px;
    color: #1b224c;
}



/* Price System Section */
.priceSystem {
    padding-top: clamp(36px, 2.43vw + 26.88px, 58px);
    padding-bottom: clamp(50px, 4.42vw + 33.43px, 90px);
}

.priceSystem__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
    text-align: center;
}

.priceSystem__mainTitle {
    color: #1b224c;
    font-size: clamp(24px, 0.88vw + 20.7px, 32px);
    font-weight: 700;
    margin-bottom: clamp(24px, 1.22vw + 19.45px, 35px);
}

.priceSystem__content {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: clamp(15px, 1.66vw + 8.8px, 30px);
    margin-bottom: clamp(30px, 1.66vw + 23.78px, 45px);
    @media screen and (max-width: 767px) {
        flex-direction: column;
    }
}

.priceSystem__box {
    background-color: #1b224c;
    color: #fff;
    padding: clamp(20px, 1.44vw + 14.61px, 33px) 0;
    width: clamp(280px, 25vw + 0px, 320px);
    @media screen and (max-width: 767px) {
        width: 100%;
    }
}

.priceSystem__boxText {
    font-size: clamp(16px, 0.66vw + 13.51px, 22px);
    font-weight: 700;
}

.priceSystem__plusSymbol {
    color: #1b224c;
    font-size: 32px;
}

.priceSystem__summaryText {
    text-align: left;
    display: inline-block;
    color: #1b224c;
    font-size: 16px;
    line-height: 1.8;
}
.priceSystem__summaryTextBr {
    @media screen and (max-width: 767px) {
        display: none;
    }
}


/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                 priceTable                           ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.priceTable {
    padding-bottom: clamp(24px, 1.22vw + 19.45px, 35px);
}

.priceTable__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.priceTable__mainTitle {
    text-align: center;
    color: #1b224c;
    font-size: clamp(24px, 0.88vw + 20.7px, 32px);
    font-weight: 700;
    margin-bottom: clamp(45px, 2.76vw + 34.64px, 70px);
}

/* 906px以下で横スクロールを有効にするラッパー */
.jsScrollable {
    @media screen and (max-width: 906px) {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 20px;
    }
}

.priceTable__container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    align-items: end;
    @media screen and (max-width: 906px) {
        display: flex;
        grid-template-columns: none;
        width: max-content;
        gap: 15px;
        padding: 32px 10px 0; /* おすすめの突出用余白 */
        align-items: flex-end; /* 白枠の下ラインを揃える */
    }
}

.priceTable__itemCard {
    border: 0.5px solid #1b224c;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    height: clamp(320px, 17.02vw + 256.19px, 474px);
    position: relative;
    @media screen and (max-width: 906px) {
        width: 280px;
        flex-shrink: 0;
        height: 440px; /* おすすめ以外の白枠高さを統一 */
        min-height: 0;
    }
}

.priceTable__itemCard--recommend {
    border: 0.5px solid #1b224c;
    height: calc(clamp(320px, 17.02vw + 256.19px, 474px) + 32px);
    z-index: 1;
    @media screen and (max-width: 906px) {
        height: 472px; /* 440px + ラベル32px */
        margin-top: 0;
    }
}

.priceTable__recommendLabel {
    background-color: #f2a62c;
    color: #fff;
    text-align: center;
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    font-weight: 700;
    padding: 6px 0;
    width: 100%;
}

.priceTable__itemTitle {
    background-color: #1b224c;
    color: #fff;
    text-align: center;
    padding: clamp(16px, 0.66vw + 13.51px, 22px) 0;
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    font-weight: 700;
}

.priceTable__itemCard--recommend .priceTable__itemTitle {
    background-color: #f2a62c;
}

.priceTable__itemBody {
    padding: clamp(18px, 1.21vw + 13.44px, 29px) clamp(14px, 0.66vw + 11.51px, 20px);
    flex: 1;
    flex-direction: column;
}

.priceTable__itemPrice {
    color: #1b224c;
    font-size: clamp(24px, 0.88vw + 20.7px, 32px);
    font-weight: 700;
    text-align: center;
    line-height: 1;
}

.priceTable__itemOrange{
    color: #f2a62c;
}

.priceTable__itemTax {
    text-align: center;
    font-size: 12px;
    margin: 8px 0 30px;
    color: #1b224c;
}

.priceTable__featureList {
    list-style: none;
    padding: 0;
    margin: 0;
}

.priceTable__featureItem {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    margin-bottom: 12px;
    color: #1b224c;
    font-weight: 500;
}

.priceTable__checkIcon {
    width: 14px;
    height: auto;
}

.priceTable__contactNote {
    margin-top: auto;
    font-size: 14px;
    text-align: left;
    color: #1b224c;
    line-height: 1.6;
}





/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   blog                               ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.blogMv {
    background: url(../img/blog_top_bg.jpg) no-repeat center center / cover;
    height: clamp(160px, 6.74vw + 134.72px, 221px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: clamp(60px, 2.21vw + 51.71px, 80px);
}

.blogMv__title {
    color: #fff;
    font-size: clamp(24px, 0.88vw + 20.69px, 32px);
    font-weight: 700;
}

.breadcrumb__singleContainer{
    margin-top: clamp(60px, 2.21vw + 51.71px, 80px);
}

/* blogList */
.blogList {
    padding-top: clamp(36px, 2.43vw + 26.88px, 58px);
    padding-bottom: clamp(24px, 2.32vw + 15.3px, 45px);
}

.blogList__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.blogList__mainTitle {
    color: #1b224c;
    font-size: clamp(24px, 0.88vw + 20.7px, 32px);
    font-weight: 700;
    margin-bottom: clamp(40px, 2.21vw + 31.71px, 60px);
    text-align: center;
}

.blogList__content {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 2.21vw + 31.71px, 60px);
}

/* blogCard */
.blogCard__link {
    display: flex;
    gap: clamp(30px, 2.21vw + 21.71px, 50px);
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s;
    
    @media screen and (max-width: 767px) {
        flex-direction: column;
    }
}

.blogCard__link:hover {
    opacity: 0.7;
}

.blogCard__imageWrap {
    position: relative;
    flex-shrink: 0;
    width: clamp(120px, 13.26vw + 70.27px, 240px);
    aspect-ratio: 16 / 9;
    height: auto;

    @media screen and (max-width: 767px) {
        width: 100%;
    }
}

.blogCard__image {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.blogCard__category {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #1b224c;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 8px 12px;
}

.blogCard__body {
    flex: 1;
}

.blogCard__date {
    display: block;
    font-size: clamp(16px, 0.44vw + 14.34px, 20px);
    color: #1b224c;
    margin-bottom: 8px;
    font-weight: 500;
}

.blogCard__title {
    font-size: clamp(18px, 0.88vw + 14.69px, 26px);
    font-weight: 700;
    line-height: 150%;
    color: #1b224c;
    border-bottom: 1px solid #1b224c;
    display: inline;
    width: clamp(200px, 45.3vw + 30.11px, 610px);
    margin-bottom: clamp(16px, 0.44vw + 14.34px, 20px);
    @media screen and (max-width: 767px) {
    width: 100%;
    }
}

.blogCard__excerpt {
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    line-height: 150%;
    color: #1b224c;
    display: -webkit-box;
    /* ある程度の文字数いったら・・・で表示 */
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}



/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##         pagination/ページネーションボタン                ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.pagination {
    margin-top: clamp(60px, 6.08vw + 37.21px, 115px);
}

.pagination__list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: clamp(15px, 0.44vw + 13.34px, 19px);
    list-style: none;
}

.pagination__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(44px, 0.66vw + 41.51px, 50px);
    height: clamp(44px, 0.66vw + 41.51px, 50px);
    border: 1px solid #1b224c;
    text-decoration: none;
    color: #1b224c;
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    font-weight: 700;
    transition: all 0.3s ease;
}
.pagination__link.current{
    background-color: #1b224c;
    color: #fff;
}
.pagination__link:hover {
    background-color: #1b224c;
    color: #fff;
}

.pagination__link.isCurrent {
    background-color: #1b224c;
    color: #fff;
    cursor: default;
    pointer-events: none;
}

.pagination__ellipsis {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(44px, 0.66vw + 41.51px, 50px);
    height: clamp(44px, 0.66vw + 41.51px, 50px);
    color: #1b224c;
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
}



/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   singleMain                         ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.singleMain {
    background-color: #fff;
    color: #1b224c;
    margin-top: clamp(60px, 2.21vw + 51.71px, 80px);
}

.singleContainer {
    padding-top: clamp(40px, 2.21vw + 31.71px, 60px);
    padding-bottom: clamp(40px, 3.2vw + 27.98px, 69px);
}

.singleContainer__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.singleContainer__flex {
    display: flex;
    justify-content: space-between;
    gap: clamp(20px, 1.77vw + 13.37px, 36px);

    @media screen and (max-width: 906px) {
        flex-direction: column;
    }
}



/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   singleContent                     ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.singleContent {
    flex: 1;
    min-width: 0;
}

.singleHeader__category {
    display: inline-block;
    background-color: #1b224c;
    color: #fff;
    font-size: 12px;
    padding: clamp(8px, 0.22vw + 7.17px, 10px) clamp(15px, 1.1vw + 10.86px, 25px);
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
}

.singleHeader__title {
    font-size: clamp(18px, 1.1vw + 13.86px, 28px);
    font-weight: 700;
    line-height: 150%;
    margin-bottom: clamp(16px, 0.44vw + 14.34px, 20px);
}

.singleHeader__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: clamp(16px, 0.66vw + 13.51px, 22px);

    @media screen and (max-width: 767px) {
        flex-direction: column-reverse;
        align-items: flex-start;
        gap: 15px;
    }
}

.singleHeader__date {
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    font-weight: 500;
}

/* SNSシェアボタンエリア */
.singleHeader__sns {
    display: flex;
    align-items: center;
    gap: 4px;
}

.singleHeader__snsLink {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: clamp(16px, 0.44vw + 14.34px, 20px);
    padding: 5px 12px;
    border-radius: 4px;
    text-decoration: none;
    color: #fff;
    font-weight: 700;
    font-size: 10px;
    transition: opacity 0.3s;

    @media screen and (max-width: 767px) {
        padding: 0 8px;
    }
}

.singleHeader__snsLink:hover{
    opacity: 0.8;
}


.singleHeader__snsLink--facebook {
    background-color:#305097;
}
.singleHeader__snsLink--pocket {
    background-color: #305097;
}
.singleHeader__snsLink--twitter {
    background-color: #00ACED;
}

.singleHeader__snsIcon {
    width: 8px;
    height: auto;
    object-fit: contain;
}

.singleHeader__twitterIcon{
    width: 11px;
}

.singleHeader__snsText {
    white-space: nowrap;
}

/* サムネイル画像 */
.singleHeader__thumbnail {
    width: 100%;
    margin-bottom: clamp(24px, 1.77vw + 17.37px, 40px);
}

.singleHeader__thumbnailImg {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* singleBody */
.singleBody {
    line-height: 150%;
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    color: #1b224c;
}

.singleBody h2{
    font-size: clamp(18px, 1.1vw + 13.87px, 28px);
    font-weight: 700;
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
    margin-top: clamp(20px, 1.1vw + 15.86px, 30px);
}

.singleBody__h2 {
    font-size: clamp(18px, 1.1vw + 13.87px, 28px);
    font-weight: 700;
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
}


.singleBody h3{
    font-size: clamp(16px, 0.66vw + 13.51px, 22px);
    margin-top: clamp(20px, 1.1vw + 15.86px, 30px);
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
    font-weight: 700;
    display: flex;
    align-items: center;
}

.singleBody__h3 {
    font-size: clamp(16px, 0.66vw + 13.51px, 22px);
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
    font-weight: 700;
    display: flex;
    align-items: center;
}

.singleBody h3::before {
    content: "";
    width: 4px;
    height: clamp(18px, 1.1vw + 13.87px, 28px);
    background-color: #1b224c;
    margin-right: 10px;
}

.singleBody__h3::before {
    content: "";
    width: 4px;
    height: clamp(18px, 1.1vw + 13.87px, 28px);
    background-color: #1b224c;
    margin-right: 10px;
}

.singleBody__text {
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
}
.singleBody p{
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
}

.singleBody blockquote{
    background-color: #f8f8f8;
    padding: clamp(18px, 0.99vw + 14.27px, 27px) clamp(18px, 0.88vw + 14.69px, 26px) clamp(14px, 0.33vw + 12.76px, 17px) clamp(40px, 3.76vw + 25.91px, 74px) ;
    position: relative;
    margin: clamp(20px, 1.1vw + 15.86px, 30px) 0;
}

.singleBody blockquote::before {
    content: "“";
    font-size: clamp(50px, 4.42vw + 33.43px, 90px);
    color: #ccc;
    position: absolute;
    left: clamp(16px, 0.44vw + 14.34px, 20px);
    line-height: 1;
}

.singleBody__blockquote {
    background-color: #f8f8f8;
    padding: clamp(18px, 0.99vw + 14.27px, 27px) clamp(18px, 0.88vw + 14.69px, 26px) clamp(14px, 0.33vw + 12.76px, 17px) clamp(40px, 3.76vw + 25.91px, 74px) ;
    position: relative;
    margin: clamp(20px, 1.1vw + 15.86px, 30px) 0;
}

.singleBody__blockquote::before {
    content: "“";
    font-size: clamp(50px, 4.42vw + 33.43px, 90px);
    color: #ccc;
    position: absolute;
    left: clamp(16px, 0.44vw + 14.34px, 20px);
    line-height: 1;
}

.singleBody__imageBox {
}

.singleBody ul{
    list-style: none;
    margin: clamp(20px, 1.1vw + 15.86px, 30px) 0;
}

.singleBody__ul {
    list-style: none;
    margin: clamp(20px, 1.1vw + 15.86px, 30px) 0;
}
.singleBody__li {
    position: relative;
    padding-left: clamp(14px, 0.33vw + 12.76px, 17px);
}

.singleBody li {
    position: relative;
    padding-left: clamp(14px, 0.33vw + 12.76px, 17px);
}

.singleBody li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 11px;
    height: 11px;
    background-color: #f5a623;
    border-radius: 50%;
}


.singleBody__li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 11px;
    height: 11px;
    background-color: #f5a623;
    border-radius: 50%;
}

.singleBody__link {
    color: #f5a623;
    text-decoration: underline;
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   singleContent                     ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.singleRecommend {
    margin-top: clamp(32px, 3.09vw + 20.39px, 60px);
}
.singleRecommend__title {
    font-size: clamp(18px, 0.88vw + 14.69px, 26px);
    font-weight: 700;
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
}
.singleRecommend__list {
    display: flex;
    flex-direction: column;
    gap: clamp(18px, 1.1vw + 13.87px, 28px);
}

.singleRecommend__cardLink {
    display: flex;
    gap: clamp(20px, 1.33vw + 15px, 32px);
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s;

    @media screen and (max-width: 767px) {
        flex-direction: column;
    }
}
.singleRecommend__cardLink:hover {
    opacity: 0.7;
}

.singleRecommend__cardImageWrap {
    width: clamp(80px, 14.36vw + 26.13px, 210px);
    aspect-ratio: 16 / 9;
    flex-shrink: 0;
    position: relative;
    @media screen and (max-width: 767px) {
        width: 100%;
    }
}
.singleRecommend__cardImg {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.singleRecommend__cardCategory {
    position: absolute;
    top: 0;
    left: 0;
    background: #1b224c;
    color: #fff;
    font-size: 12px;
    padding: 8px 12px;
}

.singleRecommend__cardDate {
    font-size: clamp(14px, 0.22vw + 13.17px, 16px);
    display: block;
    margin-bottom: clamp(16px, 0.44vw + 14.34px, 20px);
}
.singleRecommend__cardTitle {
    font-size: clamp(14px, 0.44vw + 12.34px, 18px);
    font-weight: 700;
    text-decoration: underline;
}

/* Sidebar */
.singleSidebar {
    width: clamp(100px, 18.67vw + 29.97px, 269px);
    @media screen and (max-width: 906px) {
        width: 100%;
    }
}

.sidebarSection {
    margin-bottom: clamp(40px, 3.31vw + 27.57px, 70px);
}

.sidebarSection__title {
    background-color: #1b224c;
    color: #fff;
    padding: clamp(16px, 0.55vw + 13.93px, 21px) 0;
    font-size: clamp(16px, 0.55vw + 13.93px, 21px);
    font-weight: 700;
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
    text-align: center;
}

.sidebarSection__list {
    list-style: none;
}
.sidebarSection__item {
    margin-bottom: clamp(20px, 1.1vw + 15.86px, 30px);
}
.sidebarSection__link {
    display: flex;
    gap: clamp(12px, 0.55vw + 9.93px, 17px);
    text-decoration: none;
}
.sidebarSection__imgWrap {
    width: 100px;
    height: 70px;
    flex-shrink: 0;
    background-color: #f0f0f0;
}
.sidebarSection__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.sidebarSection__text {
    font-size: 12px;
    line-height: 150%;
    text-decoration: underline;
}

.sidebarSection__categoryList {
    list-style: none;
}

.sidebarSection__categoryItem {
    padding: 10px 0;
}
.sidebarSection__categoryLink {
    text-decoration: none;
    font-weight: 700;
}
.sidebarSection__categoryLink::before {
    content: "・";
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                  お知らせ                             ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.newsMain {
    color:#1B224C;
}

/* newsMv */
.newsMv {
    background: url('../img/news-mv-background.jpg') no-repeat center center / cover;
    height: clamp(160px, 6.74vw + 134.72px, 221px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: clamp(60px, 2.21vw + 51.71px, 80px);
}

.newsMv__inner {
}

.newsMv__title {
    font-size: clamp(24px, 0.88vw + 20.69px, 32px);
    font-weight: 700;
    color: #fff;
}

/* お知らせ一覧 */
.newsListSection {
    padding-top: clamp(36px, 2.43vw + 26.88px, 58px);
    padding-bottom: clamp(24px, 2.43vw + 14.89px, 46px);
}

.newsListSection__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
}

.newsListSection__title {
    text-align: center;
    font-size: clamp(24px, 3.5vw, 32px);
    font-weight: 700;
    margin-bottom: clamp(24px, 2.43vw + 14.89px, 46px);
    color: #1B224C;
    
}

/* newsList */
.newsList {
    border-top: 1px solid #D5D5D5;
    margin-bottom: 40px;
}

.newsList__item {
    border-bottom: 1px solid #D5D5D5;
}

.newsList__link {
    display: flex;
    align-items: center;
    text-align: center;
    color: #1B224C;
    padding: clamp(14px, 0.77vw + 11.14px, 21px) clamp(18px, 0.99vw + 14.33px, 27px) clamp(14px, 0.77vw + 11.14px, 21px) 0;
    transition: opacity 0.3s, background-color 0.3s;
    gap: clamp(28px, 2.54vw + 18.49px, 51px);
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
    
    @media screen and (max-width: 767px) {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    }
}


.newsList__link:hover {
  opacity: 0.7;
  background-color: #fbfbfb;
}

.newsList__date {
  color: #1B224C;
  flex-shrink: 0;
  @media screen and (max-width: 767px) {
    margin-bottom: 0;
    }
}


.newsList__itemTitle {
    font-weight: 400;
    margin: 0;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline;
    border-bottom: 0.5px solid #1b224c;
    @media screen and (max-width: 767px) {
    width: 100%;
        }
}

.pagination__news{
    margin-top: clamp(28px, 2.76vw + 17.67px, 53px);
}


/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                    お知らせ詳細.                       ##
   ##                                                      ##
   ##########################################################
   ########################################################## */

/* newsContent基本設定 */
.newsContent__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
    padding-bottom: clamp(48px, 4.19vw + 32.37px, 86px);
    color: #1B224C;
}

/* ヘッダー */
.newsContent__header {
    margin-top: clamp(32px, 3.09vw + 20.45px, 60px);
    margin-bottom: clamp(24px, 2.10vw + 16.12px, 43px);
}

.newsContent__mainTitle {
    font-size: clamp(18px, 1.10vw + 13.92px, 28px);
    font-weight: 700;
    line-height: 150%;
    margin-bottom: clamp(24px, 1.10vw + 19.92px, 34px);
}

.newsContent__date {
    display: block;
    text-align: right;
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
}

/* 本文内のタグへの適用 (クラス名からタグ指定に変更) */
.newsContent__body h2 { /* .newsContent__heading2 から変更 */
    font-size: clamp(18px, 0.88vw + 14.73px, 26px);
    margin-top: clamp(24px, 2.10vw + 16.12px, 43px);
    margin-bottom: clamp(20px, 1.10vw + 15.92px, 30px);
    font-weight: 700;
}

.newsContent__body h3 { /* .newsContent__heading3 から変更 */
    font-size: clamp(16px, 0.66vw + 13.55px, 22px);
    font-weight: 700;
    border-left: 4px solid #1B224C;
    padding-left: 10px;
    margin-bottom: clamp(18px, 1.10vw + 13.92px, 28px);
    margin-top: clamp(20px, 1.10vw + 15.92px, 30px);
}

.newsContent__body p {
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
}

/* 画像 (WordPressは figure または p > img で出力されるため調整) */
.newsContent__body figure {
    margin-top: clamp(20px, 1.10vw + 15.92px, 30px);
}

.newsContent__body img {
    width: clamp(220px, 19.89vw + 145.41px, 400px);
    height: auto;
    @media screen and (max-width: 767px) {
        width: 100%;
        }
}

/* リスト */
.newsContent__body ul {
    margin: clamp(20px, 1.10vw + 15.92px, 30px) 0;
    list-style: none;
}

.newsContent__body li {
    position: relative;
    padding-left: clamp(24px, 0.88vw + 20.73px, 32px);
    margin-bottom: 5px;
}

.newsContent__body li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 11px;
    height: 11px;
    background-color: #E6A83E;
    border-radius: 50%;
}

/* 引用ブロックのデザイン */
.newsContent__body blockquote {
    background-color: #f8f8f8;
    padding: clamp(18px, 0.99vw + 14.27px, 27px) clamp(18px, 0.88vw + 14.69px, 26px) clamp(18px, 0.99vw + 14.27px, 27px) clamp(40px, 3.76vw + 25.91px, 74px) ;
    position: relative;
    margin: clamp(20px, 1.1vw + 15.86px, 30px) 0;
}


/* 引用アイコン（“）を表示する場合 */
.newsContent__body blockquote::before {
    content: "“";
    font-size: clamp(50px, 4.42vw + 33.43px, 90px);
    color: #ccc;
    position: absolute;
    left: clamp(16px, 0.44vw + 14.34px, 20px);
    line-height: 1;
}




/* テキストリンク（ここは先ほどお伝えした通り、クラスを付与する前提で維持） */
.newsContent__linkWrapper {
    margin-top: clamp(20px, 1.10vw + 15.92px, 30px);
}

.newsContent__linkWrapper a {
    color: #E6A83E !important;
    text-decoration: none;
    border-bottom: 1px solid #E6A83E;
    display: inline-block;
    transition: opacity 0.3s;
}

.newsContent__linkWrapper a:hover {
    opacity: 0.7;
    text-decoration: none;
}

/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                   お問い合わせフォーム                  ##
   ##                                                      ##
   ##########################################################
   ########################################################## */


.contactMv {
    width: 100%;
    background: url('../img/contact-mv-background.jpg') no-repeat center center / cover;
}

.contactMv__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin: 0 auto;
    padding: clamp(48px, 5.08vw + 28.97px, 94px) 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.contactMv__title {
    font-size: clamp(24px, 0.88vw + 20.69px, 32px);
    font-weight: 700;
    color: #fff;
}

/*  contactSection */
.contactSection {
    margin-top: clamp(36px, 2.43vw + 26.89px, 58px);
    margin-bottom: clamp(42px, 4.08vw + 26.77px, 79px);
}

.contactSection__inner {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 clamp(14px, 0.66vw + 11.55px, 20px);
}

.contactSection__lead {
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
    text-align: left;
    margin-bottom: clamp(24px, 1.66vw + 17.75px, 39px);
}

/* 入力欄 */
.contactForm__row {
    margin-bottom: clamp(24px, 1.66vw + 17.75px, 39px);
}

.contactForm__label {
    display: block;
    margin-bottom: 6px;
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
    color: #1B224C;
}
.contactForm__rowLabel{
    margin-bottom: clamp(14px, 0.44vw + 12.36px, 18px);

}

.contactForm__label--isEmphasis {
    font-weight: 700;
    color: #1B224C;
}

/* 入力フィールド共通 */
.contactForm__input,
.contactForm__textarea {
    width: 100%;
    padding: clamp(14px, 0.22vw + 13.18px, 16px) clamp(14px, 0.66vw + 11.55px, 20px);
    border: 0.5px solid #1B224C;
    border-radius: 0;
    font-size: 12px;
    color: #1B224C  ;
    background-color: #ffffff;
    box-sizing: border-box;
}

.contactForm__input::placeholder,
.contactForm__textarea::placeholder {
    color: #B4B4B4;
}
.contactForm__textarea {
    height: clamp(120px, 13.26vw + 70.27px, 240px);
}



/* ラジオボタンのカスタマイズ */
.contactForm__radioLabel .wpcf7-form-control-wrap{
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 11px;
}

.contactForm__radioLabel .wpcf7-list-item-label {
    position: relative;
    gap: 19px;
    padding-left: 15px;
}

.contactForm__radioLabel input[type="radio"] {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    opacity: 0; /* 見えなくする */
    cursor: pointer;
    z-index: 1;
}

/* ラジオテキスト */
.contactForm__radioText .wpcf7-list-item {
    position: relative;
    /* padding-left: clamp(24px, 1.66vw + 17.75px, 39px); */
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
    color: #1B224C;
    display: inline-block;
}

/* 外円 */
.contactForm__radioLabel .wpcf7-list-item-label::before {
    content: "";
    position: absolute;
    left: -15px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 1px solid #707070;
    border-radius: 50%;
    background-color: #ffffff;
    box-sizing: border-box;
}

/* 内円（チェック時） */
.contactForm__radioLabel .wpcf7-list-item-label::after {
    content: "";
    position: absolute;
    left: -12px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-color: #1B224C;
    opacity: 0; 
    transition: opacity 0.2s;
    pointer-events: none;
}

.contactForm__radioLabel input[type="radio"]:checked + .wpcf7-list-item-label::after {
    opacity: 1;
}

.wpcf7-list-item ,label {


}

.wpcf7-radio {
display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
    gap: 10px;
}

.contactForm__label {
    margin-bottom: 11px;
}

.contactForm__radioInput:checked + .contactForm__radioText::after {
    opacity: 1;
}




/* プライバシーポリシー同意エリア */
.contactForm__privacy {
    margin-top: clamp(18px, 0.88vw + 14.73px, 26px);
    text-align: center;
}

.contactForm__privacyLinkText {
    margin-bottom: clamp(24px, 2.32vw + 15.3px, 45px);
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
}

.contactForm__privacyLink {
    color: #E6A83E;
    text-decoration: underline;
}

.contactForm__checkboxLabel {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
}

.contactForm__checkboxLabel {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* デフォルトのチェックボックスを隠す */
.contactForm__checkboxInput {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.contactForm__checkboxText {
    position: relative;
    padding-left: 35px;
    font-size: clamp(14px, 0.44vw + 12.36px, 18px);
    display: inline-block;
}

/* 四角い枠の作成 */
.contactForm__checkboxText::before {
}
.contactForm__checkboxLabel .wpcf7-list-item-label{
    margin-left: 25px;
}

.contactForm__checkboxLabel .wpcf7-list-item-label::before{
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 1px solid #707070;
    background-color: #fff;
    box-sizing: border-box;
}
.contactForm__checkboxLabel .wpcf7-list-item-label::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 45%;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 16px;
    border-right: 3px solid #1B224C;
    border-bottom: 3px solid #1B224C;
    opacity: 0;
    transition: opacity 0.2s;
}

/* チェックが入った時にV字を表示 */
.contactForm__checkboxLabel input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
    opacity: 1;
}

/* 送信ボタン */
.contactForm__submitWrapper {
    width: 200px;
    margin: 0 auto;
    margin-top: clamp(24px, 2.32vw + 15.3px, 45px);
    display: flex;
    justify-content: center;
    cursor: pointer;
}

.contactForm__submitBtn {
    width: clamp(150px, 5.52vw + 129.34px, 200px);
    padding: clamp(14px, 0.33vw + 12.78px, 17px) 0;
    background-color: #1B224C;
    color: #fff;
    border-radius: 5px;
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.3s;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.contactForm__submitBtn:hover {
    opacity: 0.8;
}



/* ##########################################################
   ##########################################################
   ##                                                      ##
   ##                  送信完了画面.                         ##
   ##                                                      ##
   ##########################################################
   ########################################################## */
.thanksMain {
    width: 100%;
}

.thanksMessageSection {
    padding: clamp(44px, 4.30vw + 27.96px, 83px) 0;
}

.thanksMessageSection__inner {
    width: clamp(335px, 62.43vw + 100.88px, 900px);
    margin-inline: auto;
    text-align: center;
}

.thanksMessageSection__text {
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
    font-weight: 500;
    margin-bottom: clamp(45px, 4.41vw + 28.55px, 85px);
}

.thanksMessageSection__br {
    display: block;
}

.thanksMessageSection__linkWrapper {
    display: flex;
    justify-content: center;
}

.thanksMessageSection__homeLink {
    font-size: clamp(14px, 0.22vw + 13.18px, 16px);
    color: #1B224C;
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: opacity 0.3s;
}

.thanksMessageSection__homeLink:hover {
    opacity: 0.7;
}

