.flex{
 display: flex; 
}
.flex div{
  padding: 0 1%;
  position: relative;
 }
 p{
   line-height: 1.7em;
 }
h1{
  margin-top: 10px;
  font-size: 2.7rem;
}

.flex div:first-child{
  width: 45%;
 }
 .flex div:nth-child(2){
   flex :1;
 }
.flex-reverse{
  flex-direction: row-reverse;
}
.v_center{
  display: flex; 
  align-items: center;
 }
.align-base{
  align-items: baseline;
  gap: 10px;
}
section{
  padding: 0;
  margin: 0 auto;
  max-width: 980px;
}
.blog_button{
  display: flex;
  padding: 0;
  width: 100%;
  text-align: center;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  background: #1A93EC;
  color: #fff;
  margin: 40px 0;
  border: none;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}
.blog_button div{
  padding: 0.1em 0;
}
.cta-left {
  flex: 3; /* 全体の75%くらいを占める */
  font-weight: bold;
  padding-left: 0.1em;
}

/* 右側：オレンジの斜めエリア */
.cta-right {
  flex: 1; /* 残りの25% */
  vertical-align: middle;
  background-color: #ff8800; /* 差し色のオレンジ */
  height: 100%;
  font-size: 2.8rem;
  font-weight: bold;
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0% 100%);/* ★斜めにカットする */
}
.blog_button:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
  background-color: rgb(4, 125, 211); 
}
.text-caution {
  color: #e60012; /* HISレッドに近い赤 */
  font-size: 0.9em;
  font-weight: bold;
}
/* ------------
 #blog_op
------------ */
div.blog_date{
  padding: 8px 12px 8px 0px;
  opacity: .8;
  line-height: 1;
  border-right: 1px solid;
  width:9%!important;
  margin-right: 12px;
}
.blog_date .date{
  font-size: 150%;
}
.blog_ctg{
  margin: 5px 0;
}

.blog_ctg a{
  font-size: 1.2rem;
  color: black;
  display: inline-block;
  margin: 3px 5px;
  padding: 3px 5px;
  background-color: bisque;
  text-decoration: none;
  border-radius: 10% / 50%;
  opacity: .8;
}
#top img{
  margin: 10px 0;
}

/* ------------
 #blog_nav
------------ */

#blog_nav div:first-child{
  width: 70%;
  margin: auto;
  background-image: linear-gradient(-45deg, #f0f8ff 25%, #cff3ff 25%, #cff3ff 50%, #f0f8ff 50%, #f0f8ff 75%, #cff3ff 75%, #cff3ff);
  background-size: 4px 4px;
  border-top: 1px double #4aa0c6;
  border-bottom: 1px double #4aa0c6;
  padding: 1em 2em;
} 
#blog_nav div span{
  display: block;
  font-size: 2rem;
} 
#blog_nav div ul{
  padding: 0;
  position: relative;
} 
#blog_nav div ul li{
  line-height: 1.5;
  border-left: solid 1px #4aa0c6;
  margin: 1em;
}
#blog_nav div ul li a{
  display: block;
  margin-left: 10px;
  text-decoration: none;
}


/* ------------
 #blog_body
------------ */

#blog_body p{
  position: relative;
} 

.data_box .data_value{
  background: linear-gradient(transparent 70%, #fbff00 60%);
  font-size: 2rem;
  font-weight: bold;
  margin: 0 ;
  margin-top: 0.5em ;
  line-height: 1;
}
.data_box .data_value span{
  font-size: 4rem;
}
.data_text{
  margin-top: 0;
}

h2.blog_h2{
  font-size: 1.5em;
  margin: 30px 0 20px 0;
  border-bottom: 2px solid rgba(74,160,198, 0.2);
  padding-left: 20px;
  position: relative;
} 
h2.blog_h2::before{
  position: absolute;
  content: '';
  width: 20%;
  height: 2px;
  background-color: rgba(74,160,198, 1);
  bottom: -2px;
  left: 0;
} 
h2.blog_h2::after{
  transform: rotate(114deg);
  position: absolute;
  content: '';
  width: 38px;
  height: 2px;
  background-color: rgba(74, 160, 198, 1);
  bottom: 15px;
  left: -12px;
} 

h2 + P{
  margin-top: 0px;
}
h3.blog_h3{
  position: relative;
  font-size: 1.27em;
  margin-top: 0.5em;
} 
h3.blog_h3 span{
  background: linear-gradient(transparent 70%, #ffe4c4 70%);
} 

h3 + P{
  margin-top: 5px;
}
#blog_body div button{
  position: absolute;
  right: 0;
  bottom: 10px;
  margin: 0 20pax 20pax 0;
  background-color: #ff9900;
  color: white;
  font-weight: bold;
  font-size: 1.3rem;
  border-radius: 10% / 50%;
  padding: 2rem;
  border-color: white;
} 
.point{
  display: block;
  font-weight: bold;
  color: #0057b8;
  background-image: linear-gradient(-45deg, #f0f8ff 25%, #cff3ff 25%, #cff3ff 50%, #f0f8ff 50%, #f0f8ff 75%, #cff3ff 75%, #cff3ff);
  background-size: 4px 4px;
  padding: 5px 10px;
  border-left: 4px solid #0055aa;
  font-size: 1.5rem;
  margin: 1.2em 0 0.5em;
  width: fit-content;
}

#blog_slider .flex {
  margin-top: 20px;
}

.flex > div:first-child{
  position: sticky;
  top: 20px; /* 画面の上からどのくらいの位置で止まるか */
  height: fit-content;
}

/* ------------
 スライダー部分の調整
------------ */
#blog_slider .flex div:first-child{
  width: 45%;
  padding: 0;
  overflow: hidden; /* ★これを追加：枠からはみ出した隣のスライドを隠す */
  position: sticky;
  top: 20px;
  height: fit-content;
}
.slider{
  width:100%;/* スライダーの幅を指定*/
  list-style:none;
  margin: 0; /* 余計なマージンを消す */
  padding: 0;
}
.slider img {
  width: 100%;
  display: block; /* 下に隙間ができるのを防ぐ */
  height: auto;
  object-fit: cover; /* 画像を枠いっぱいにフィットさせる */
}
.slick-next{
  right: 10px;
}
.slick-prev{
  left: 10px;
  z-index: 10;
}
/* ------------
 #blog_belong
------------ */

#blog_belong ul{
  list-style: none;
  padding-left: 20px;
}
#blog_belong ul li,p {
  position: relative;
}
#blog_belong ul li{
  border-bottom: 2px solid  rgba(74,160,198, 0.2);
  padding-left: 20px;
  padding-top: 0.7em;
  font-size: 1.3em;
}
#blog_belong ul li:first-child{
  border-top: 2px solid  rgba(74,160,198, 0.2);
}

#blog_belong ul li::before {
  content: '✔︎';
  display: inline-block;
  position: absolute;
  left: 2px;
  width: 10px;
  height: 10px;
  color: #0057b8;
}

#blog_belong ul li div strong{
  background: linear-gradient(transparent 60%, #fbff00 60%);
  font-size: 1.1em;
}

#blog_belong ul li p{
  margin-top: 0.5em;
}

#blog_belong ul li span{
  display: inline-block;
  position: relative;
  margin-left: 24px;
  font-weight: bolder;
  color: #0055aa;
}
#blog_belong ul li span:before{
  content: "<";
  display: inline-block;
  position: absolute;
  left: -10px;
  top: -1px;
}
#blog_belong ul li span:after{
  content: ">";
  display: inline-block;
  position: absolute;
  right: -10px;
  top: -1px;
}

/* ------------
 #blog_review
------------ */

#blog_review h3{
  margin-bottom: 0.5em;
}

#blog_review .flex p{
  margin-top: 0;
}

/* ------------
 #blog_push
------------ */

#blog_push h3{
  margin-bottom: 0.5em;
}

#blog_push .flex p{
  margin-top: 0;
}

/* ------------
 #blog_fgaq
------------ */
.blog_faq_list {
    list-style: none;
    padding: 0;
    margin: 20px auto;
}

.blog_faq_list li {
    margin-bottom: 10px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

/* 質問部分 */
.faq_q {
    padding: 15px 50px 15px 20px;
    font-weight: bold;
    cursor: pointer;
    position: relative;
    background-color: #f9f9f9;
    transition: background-color 0.3s;
}

/* 質問ホバー時 */
.faq_q:hover {
    background-color: #f0f7ff;
}

/* ＋アイコンの作成 */
.faq_q::before, .faq_q::after {
    content: '';
    position: absolute;
    right: 20px;
    top: 50%;
    width: 15px;
    height: 2px;
    background-color: #1A93EC; /* HISカラーに合わせて青 */
    transition: transform 0.3s;
}
.faq_q::after {
    transform: rotate(90deg);
}

/* 回答部分（初期は非表示） */
.faq_a {
    max-height: 0;
    overflow: hidden;
    padding: 0 20px;
    opacity: 0;
    transition: all 0.3s ease-in-out;
    background-color: #fff;
    line-height: 1.6;
}

/* 開いた時のスタイル */
.blog_faq_list li.open .faq_a {
    max-height: 500px; /* 十分な高さを確保 */
    padding: 15px 20px;
    opacity: 1;
    border-top: 1px solid #eee;
}

/* 開いた時にアイコンを「ー」にする */
.blog_faq_list li.open .faq_q::after {
    transform: rotate(0deg);
}
.blog_faq_list li.open .faq_q::before {
    opacity: 0;
}


/* ------------
 メディアクエリ (スマホ対応)
------------ */
@media screen and (max-width: 768px) {
    /* 1. 全体的なレイアウトを縦並びに */
    .flex, .v_center {
        flex-direction: column;
        display: block; /* 必要に応じてblockに */
    }
    section{
      padding: 0 15px;
    }
    /* 2. 各要素の幅を100%に広げる */
    .flex div, 
    .flex div:first-child, 
    .flex div:nth-child(2),
    #blog_nav div:first-child {
        width: 100% !important;
        box-sizing: border-box;
    }

    /* 3. 画像やスライダーを上にするための調整 */
    .flex > div:first-child {
        position: static; /* stickyを解除 */
        margin-bottom: 20px;
    }

    /* 4. 逆転していたレイアウト（flex-reverse）も縦並びでは通常順に */
    .flex-reverse {
        flex-direction: column;
    }

    /* 5. フォントサイズの微調整 */
    h1 {
        font-size: 1.8rem;
        padding: 0 15px;
    }
    
    h2.blog_h2 {
        font-size: 1.3em;
        padding: 5px;
        padding-left: 25px;
    }
    h3.blog_h3{
      font-size: 1.25em;
    }

    /* 6. 特殊なパーツの調整 */
    div.blog_date {
        border-right: none;
        border-bottom: 1px solid;
        width: 100% !important;
        margin-bottom: 10px;
        padding-bottom: 10px;
        text-align: center;
    }

    /* 7. ボタンを押しやすく */
    .cta-left {
        font-size: 1.2rem;
    }
}