body,html{
	box-sizing:border-box;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight:500;
  margin:0;
  padding:0;
  line-height:1.8;

}

html {
	font-size: 16px;

}


body{
overflow-x:hidden;
word-break:break-all;
width:100%;

}

h1{
	font-size:3em;
    font-weight:bold;
    position: relative;        /* 画像の配置基準にする */
    display: block;            /* 幅いっぱいに広がる */
    padding-right: 100px;       /* 画像が文字と重ならないように右側に余白を作る */
    line-height: 1.5;          /* 高さを整える（必要に応じて） */
}

h1::after {
    content: "";               /* 必須：中身は空にする */
    position: absolute;        /* 自由な位置に配置 */
    right: 0;                  /* 右端に固定 */
    top: 50%;                  /* 上下中央へ */
    transform: translateY(-50%); /* 中央配置の微調整 */
    
    /* GIF画像の指定 */
    height:100px;
    width: 100px;               /* 画像の幅 */
    background: url('../img/common/keirei.gif') no-repeat center center;
    background-size: contain;  /* 枠内に収める */
}


h2{
	font-size:2.5em;font-weight:bold;
	text-align:center;

}

h2.heading{
    font-size:2.75em;
	color: #1e23aa;
    border-bottom: 3px solid #1e23aa;
    padding: 0 0 8px;
    line-height:1.8;
}



h3{
	font-size:2em;font-weight:bold;text-align:center;margin:0 0 0.5em 0;
}

h3.heading{
    font-weight: 700;
    margin: 0 0 30px;
    border-left: 6px solid #1e23aa;
    padding-left: 18px;
    font-size: 22px;
    line-height: 1.4;
}

h4{
	font-size:2.4em;font-weight:bold;color:#1e23aa;
}
h5{
	font-size:1.8em;font-weight:bold;
}
h6{
	font-size:1.6em;font-weight:bold;
}

p{
margin:0;
}
p + p {
  margin-top: 1em;
}


img{
	vertical-align:bottom;
	width:100%;
}

a{
	text-decoration:none;
	color:#333;
	transition:1s;
}

a:hover{
	opacity:0.7;
}

ol{
    padding-left: 1em;
}
ol li{
    margin-bottom: 0.75em;
}


.belt{
    background:#f1f3f5;
    font-size: 2.2rem;
    padding: 0.5em 1em;
}


.blue{
background:#1e23aa;
}
.yellow{
background:#fff100;
}


.flex_container{
	display:flex;
	flex-wrap:wrap;
}

.main_logo{
	width:325px;
}

.header_in{
	justify-content:space-between;
	padding:1em;
	align-items:center;
}


.container700{
    max-width:700px;
    margin:0 auto;
}

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



.min {
  font-family: "Zen Antique", serif;
  font-weight: 400;
  font-style: normal;
}


.panel{
	display:flex;
	justify-content:space-around;
}



.panel p{
font-size:1.75em;
}

.block_center{
	display:flex;
	justify-content:space-around;
	flex-direction:column;
	align-items:center;
    margin:2em 0;
}


p.date{
	margin-bottom:2em;
	color:#999;
}

@media screen and (max-width: 1200px) {
.inner{
	width:94%;
	margin:0 3%;
}
}




#top_main{
	padding:0 0 3em 0;
}


nav.main_navi ul{
display:flex;
justify-content:space-between;
list-style:none;
margin:0;
padding:0;
}




.main_navi ul {
    list-style: none;
    display: flex;
    padding: 0;
    margin: 0;
    gap: 1.5em;
}

nav.main_navi ul li{
}

nav.main_navi ul li a{
display:block;
font-weight:bold;
transition:1s;
transition: all 0.3s ease;
border-bottom: 3px solid transparent;
padding:0.5em 0;
}

/* ホバー時の下線 */
.main_navi ul li a:hover {
    border-bottom: 3px solid #1e23aa;
}

/* JavaScriptで自動付与されるクラス */
.main_navi ul li a.active {
    border-bottom: 3px solid #1e23aa;
}

main{
	padding-bottom:3em;
}


section{
	padding:3em 0;
}


footer{
    position:relative;
background:#eee;
}

footer .flex_container{
	justify-content:space-between;
}


nav.bottom_navi{
	width:70%;
	display:flex;
	justify-content:space-between;
}

nav.bottom_navi ul{
	list-style:none;
}

nav.bottom_navi > ul > li{
    margin-bottom:0.5em;
}

/*article img{
	width:initial;
}*/

.footer_top{
	padding:3em 0;
}

.footer_bottom{
background:#1e23aa;
padding:0.5em 0 3em;
color:#fff;
}
.footer_bottom a{
color:#fff;
display:inline-block;
}

.bottom_menu1{
font-size:0.85em;
text-align:right;
}

.bottom_menu2{
text-align:right;
margin:1em 0;
}

.bottom_logo{
	width:250px;
}

.bottom_logo p{
	font-size:0.9em;
}

.copyright{
	text-align:center;
	color:#fff;
	font-size:0.75em;
}

span.tag{
	width:70px;
	display:inline-block;
	text-align:center;
	color:#fff;
	padding:0.25em;
	font-size:0.8em;
}
span.date{
	margin:0 1em;
}


article .content{
max-width:800px;
margin:0 auto;
}

article .content h2, article .content h3, article .content h4{
    text-align: left;
    margin-bottom: 0.2em;
    font-size: 1.75em;
}

p.pdf_btn a{
	margin:1em 0;
	display:inline-block;
	padding:0.5em 1em;
	border:1px solid #ccc;
}



.main_img {
    position: relative;
    overflow: hidden; /* 流れる画像が画面外に出た時に崩れないように */
}

.main_img_in {
    width: 90%;
    margin-left: 10%;
    /* フェードイン設定 */
    opacity: 0;
    animation: fadeIn 1.2s ease-out forwards;
}

.main_img_cap1 {
    background: #1e23aa;
    color: #fff;
    padding: 0.25em 0.5em;
    text-align: center;
    font-weight: bold;
    font-size: 2.5em;
    position: absolute;
    top: 80px;
    left: 0;
    z-index: 2;
    /* 左からスライド設定 */
    transform: translateX(-100%);
    animation: slideInLeft 0.8s ease-out 0.5s forwards; /* 0.5秒遅れて開始 */
    filter: drop-shadow(5px 5px 5px #aaa);
}

.main_img_cap2 {
    background: #fff100;
    padding: 0.25em 0.5em;
    text-align: center;
    font-weight: bold;
    font-size: 2.5em;
    position: absolute;
    top: 200px;
    left: 0;
    z-index: 2;
    /* 左からスライド設定 */
    transform: translateX(-100%);
    animation: slideInLeft 0.8s ease-out 0.8s forwards; /* 0.8秒遅れて開始 */
    filter: drop-shadow(5px 5px 5px #aaa);
}

.main_img_box{
    position: absolute;
    right: 0;
    bottom: 1em;
    z-index: 4;
}

/* ALWAYS OKロゴ（左から右へ流れて停止） */
.main_img_ok {
    position: absolute;
    top: -50px;   /* 上からの位置（お好みで調整してください） */
    right: 20px; /* 最終的に止まる右端からの距離 */
    z-index: 5;
    width:100%;
    
    /* 初期状態：画面の左外側に飛ばしておく */
    transform: translateX(-150vw); 
    /* 1.5秒かけて移動、少し遅れて(1s)開始、最後に停止 */
    animation: flowToRightStop 1.5s ease-out 1.0s forwards;
    filter: drop-shadow(5px 5px 5px #aaa);
}

.main_img_txt {
    padding:3em 2em 1em 2em;
    background: rgba(255, 255, 255, 0.7);
    filter: drop-shadow(5px 5px 5px #aaa);

}

/* --- アニメーションの定義 --- */

/* フェードイン */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* 左からスライドイン */
@keyframes slideInLeft {
    from { transform: translateX(-100%); }
    to { transform: translateX(0); }
}

/* 左から右へ移動して止まる */
@keyframes flowToRightStop {
    0% {
        transform: translateX(-150vw);
    }
    100% {
        transform: translateX(0); /* 最終的にCSSの right: 20px の位置に止まる */
    }
}





/* スライダー全体のサイズ調整 */
.mySwiper {
    width: 100%;
    padding: 20px 0;
    overflow: hidden; /* はみ出しを隠す */
}

.mySwiper .swiper-slide {

    display: flex;
    flex-direction: column;

  height: auto;
}

.mySwiper .swiper-slide a {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff; /* 背景 */
    border-radius:21px;
filter: drop-shadow(5px 5px 5px #aaa);
overflow:hidden;
}


.mySwiper .swiper-slide img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;

}

/* テキスト部分の装飾（任意） */
.mySwiper .swiper-slide h3 {
    margin: 15px 0 10px;
    font-size: 1.25rem;
    font-weight: bold;

}

.mySwiper .swiper-slide p {
    font-size: 0.9rem;
    line-height: 1.6;
    color: #333;
    padding:0 1em 1em 1em;
    flex-grow: 1;
}

.mySwiper .swiper-wrapper {
  align-items: stretch;
}




/* ナビゲーションボタンを円形にする */
.swiper-button-next,
.swiper-button-prev {
    background: #1e23aa;  /* ALSOKブルー */
    color: #fff;           /* 矢印の色 */
    width: 50px;           /* 円の幅 */
    height: 50px;          /* 円の高さ */
    border-radius: 50%;    /* 正円にする */
    
    /* 矢印のサイズを調整（デフォルトだと円に対して大きいので） */
    --swiper-navigation-size: 20px; 
    
    /* 中央配置を確実にする */
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* クリック時の反応（任意） */
    transition: opacity 0.3s;
}

/* ホバー時に少し透明にする（マウスを乗せた時の演出） */
.swiper-button-next:hover,
.swiper-button-prev:hover {
    opacity: 0.8;
}

/* ボタンが端に来た時、少し外側に出したい場合はここを調整 */
.swiper-button-prev {
    left: 10px;
}
.swiper-button-next {
    right: 10px;
}

/* 矢印の「太さ」を少し細くしてスッキリさせたい場合 */
.swiper-button-next::after,
.swiper-button-prev::after {
    font-weight: bold;
}




/* スライダー全体のサイズ調整 */
.main-visual-slider {
    width: 100%;
    overflow: hidden;
}

.main-visual-slider .swiper-slide .main_img_in{
    overflow: hidden;
    border-radius:21px;
    height:650px;
}
/* ズームアニメーションの定義 */
.main-visual-slider .swiper-slide .main_img_in img {
    object-fit:cover;
    height:100%;
    transform: scale(1);
    transition: transform 6s linear; /* 切り替わりより長い時間をかけてゆっくり拡大 */
}

/* アクティブなスライドだけ拡大させる */
.main-visual-slider .swiper-slide-active .main_img_in img,
.main-visual-slider .swiper-slide-duplicate-active .main_img_in img {
    transform: scale(1.15); /* 1.15倍まで拡大 */
}

/* フェード時の重なりを滑らかにする設定 */
.main-visual-slider .swiper-slide {
    overflow: hidden;
}



.corporate_ol{
padding-left:1em;
}

.corporate_ol li{
margin-bottom:0.75em;
}



/* 全体のコンテナ */
/* 質問ボタン */
.faq-question {
  width: 100%;
  text-align: left;
  padding: 15px;
  background: #f8f9fa;
  border: none;
  outline: none;
  cursor: pointer;
  font-weight: bold;
  position: relative;
  transition: background 0.3s;
}
.faq-question::first-letter {
    font-size:1.25em;
  color:#1e23aa;
}
.faq-question:hover {
  background: #eee;
}

/* 矢印アイコン */
.faq-question::after {
  content: '+';
  position: absolute;
  right: 20px;
  color:#1e23aa;
  transition: transform 0.3s;
}

.faq-question.active::after {
  transform: rotate(45deg); /* + を × に回転 */
}



/* 回答のラッパー（ここをアニメーションさせる） */

.faq-answer {
  max-height: 0;
  overflow: hidden;
  /* ease-outを付けると、閉じる時の動きがより自然になります */
  transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
  opacity: 0;
}
.faq-answer::first-letter {
    font-size:1.5em;
    color:#cc0000;
}

/* 開いた時のスタイル（JSでactiveクラスを付与） */
/*.faq-question.active + .faq-answer {
  max-height: 200px; 
  opacity: 1;
  padding: 10px 0;
}*/

.faq-content {
  padding: 15px;
  line-height: 1.6;
}

.faq-container {
  margin-bottom:1em;
}

/*main ul {
	list-style:none;
}

main ul li {
	display:inline-block;
	margin-bottom:1em;
}

main ul li a{
	display:block;
	text-align:center;
	font-size:1.15em;
	padding:1em;
	border-radius:12px;
	background:#fff;
	border:1px solid #ccc;
}*/


.breadcrumb{
font-size:0.85em;
padding:0.5em 0;
color:#666;
background:#fff100;
}

.breadcrumb a{
color:#666;
text-decoration:none;
}

.breadcrumb a:hover{
text-decoration:underline;
}

.pagination{
margin:2em auto 3em;
text-align:center;
}

.pagination a{
	background:#eee;
	padding:0.5em 1em;
	border-radius:12px;
	margin:0.25em;
	display:inline-block;
	text-align:center;
}

.pagination span{
	padding:0.5em 1em;
	border-radius:12px;
	margin:0.25em;
	display:inline-block;
	text-align:center;
	background:#fff100;
}


.page_title_head{
	background:#f1f3f5;padding:2em 0 3em 0;
	margin-bottom:2em;
}
.page_title_head h1{
margin:0;
}


.img_box .flex_container{
    justify-content:space-between;
}

.voice {
    margin-bottom:2em;
    background:#f1f3f5;
    padding:1em;
}

.voice .flex_container{
    justify-content:space-between;
}

.pccol2{
    width:48%;
}
#sec07 .flex_container{
    justify-content:space-between;
}


.img_box .pccol2{
    width:48%;
}



.pcw36{
    width:36%;
}
.pcw60{
    width:60%;
}

.mt2em{
    margin-top:2em;
}

.mb2em{
    margin-bottom:2em;
}

.drone .flex_container{
    justify-content:space-between;
}



/*プライバシーポリシー*/

ul.privacy_ul{
	list-style:decimal;
}


ol.num1{
 padding:0 0 0 1em;
 margin:1em 0 0 0;
}

ol.num1 li{
 list-style-type:none;
 counter-increment: number;
}

ol.num1 li::before{
 content: "(" counter(number) ") ";
}

p.privacy_contact{
	font-size:1em;
	margin-top:2em;
	text-align:right;
}

p.tel img{
    width:52px;
    vertical-align:baseline;
}


.ceo_img{
	width:34%;
}
.ceo_txt{
	width:62%;
}

.voice_img img{
    border-radius:12px;
}

.voice_img{
    width:20%;
}
.voice_txt{
    width:76%;
}


.mynavi_banner{
    max-width:160px;
}
.mynavi_banner img{
    border-radius:0;
}



#person h2, #corporate h2, #recruit h3{
    text-align:left ;
}


.btn_blue {
  color: #fff;
  display: inline-block;
  padding: 1em 3em;
  border-radius: 50px;
  background: #1e23aa;
  text-decoration: none;
    box-shadow: 3px 6px 0 0 rgba(0, 0, 0, .5);
  text-align:center;
  width:350px;
  font-weight:bold;
}

.btn_yellow{
display:inline-block;
padding:1em 3em;
border-radius:50px;
background:#fff100;
box-shadow: 3px 6px 0 0 rgba(0, 0, 0, .5);
  font-weight:bold;
  width:350px;
  text-align:center;
}

.btn_blue:active, .btn_yellow:active, .btn_by:active, .btn_white:active{
box-shadow: none;
  /* 消したボーダーの分だけ本体を下に移動 */
  transform: translateY(6px);
}


.btn_by {
  color: #fff;
  display: inline-block;
  padding: 1em 3em;
  border-radius: 50px;
  background: #1e23aa;
  text-decoration: none;
  box-shadow: 3px 6px 0 0 #fff100;
  text-align:center;
  width:350px;
  font-weight:bold;
}



.btn_white {
  display: inline-block;
  padding: 0.5em 1.5em;
  border:1px solid #999;
  border-radius: 50px;
  font-size:0.9em;
  text-decoration: none;
  box-shadow: 3px 6px 0 0 rgba(0, 0, 0, .5);
  text-align:center;
  font-weight:bold;
}






h2.icon_set {
    font-size:2.5em;
    position: relative;
    display: inline-block; /* 文字幅に合わせる */
    padding: 15px 50px;    /* 三角と重ならないよう余白を確保 */
}

h2.icon_lh{
   line-height:0.8;
   text-align:center;
}

 
h2.icon_lh span{
font-size:0.4em;
}

/* 左上の三角（黄） */
h2.icon_yellow::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    border-style: solid;
    border-width: 25px 40px 0 0;
    border-color: #fff100 transparent transparent transparent;
}

h2.icon_yellow::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    border-style: solid;
    border-width: 0 0 25px 40px;
    border-color: transparent transparent #fff100 transparent;
}


/* 左上の三角（青） */
h2.icon_blue::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    border-style: solid;
    border-width: 25px 40px 0 0;
    border-color: #1e23aa transparent transparent transparent;
}



h2.icon_blue::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    border-style: solid;
    border-width: 0 0 25px 40px;
    border-color: transparent transparent #1e23aa transparent;
}


/* 左上の三角（青） */
h2.icon_by::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    border-style: solid;
    border-width: 25px 40px 0 0;
    border-color: #1e23aa transparent transparent transparent;
}

h2.icon_by::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    border-style: solid;
    border-width: 0 0 25px 40px;
    border-color: transparent transparent #fff100 transparent;
}

#person [class^="btn_"], #corporate [class^="btn_"] ,#recruit .recruit_txt [class^="btn_"]{
margin-top:3em;
}
#person p , #corporate p, #recruit .recruit_txt p{
font-size:1.35em;
}

#company_page #sec01 .flex_container, #company_page #sec09 .flex_container{
	justify-content:space-between;
}

#company_page #sec09 .flex_container{
margin-bottom:2em;
align-items:flex-start;
}

main.page #sec09 h3{
margin-bottom:1em;
 }

main.page #sec09 h4{
margin-top:0;
 }

section:has(.contact) {
    padding-bottom:0;
}

article{
	padding:3em 0;
}


article:first-of-type{
	padding-top:0;
}

.contact{
    padding:3em 0;
    margin-top:4em;
}

.contact h3{
    text-align:center !important;
}

.contact p{
    font-size:1.35em;
    text-align:center;
}

.contact p.tel{
    font-size:4em;
    margin-top:0;
    font-weight:bold;
    text-align:center;
    line-height:1.2;
}


main.page h3{
background:#f1f3f5;
text-align:left;
font-size:1.5em;
padding:0.5em 1em;
border-radius:8px;
}


main.page h3{
margin-top:3em;
}
/*main.page h3:first-of-type{
margin-top:0;
}*/

main.page h2 + h3 {
  margin-top: 0;
}


main.page h4{
text-align:left;
font-size:1.25em;
margin:1.5em 0 0.5em 0;
}

main.page h4.voice_name{
    margin-top:0;
}

main.page .voice h3{
background:#1e23aa;
color:#fff;
margin-top:0;
}

main.page .img_box h5{
    font-size:1em;
    margin:0 0 1.5em 0;
}


ul.license {
  /* リスト全体の余白をリセット */
  list-style: none;
  padding: 2em;
  background:#ebf0f7;
  margin: 0 0 3em 0;
  
  /* フレックスボックスで横並び */
  display: flex;
  flex-wrap: wrap; /* 幅に合わせて折り返す */
  gap: 8px 16px;   /* 項目間の余白（上下 左右） */
}

ul.license li {
  /* 1項目内での改行を禁止 */
  white-space: nowrap;
  
  /* 中央揃え（■と文字の高さを合わせる） */
  display: flex;
  align-items: center;
}

ul.license li::before {
  content: "■";
  color: #1e23aa;      /* 記号の色（お好みで変更してください） */
  font-size: 0.8em;  /* 少し小さくするとバランスが良いです */
  margin-right: 4px; /* 記号と文字の間の隙間 */
}


/* リンク自体の設定 */
.main_navi ul li a {
    text-decoration: none;
    /* アイコンとテキストを縦中央で揃える */
    display: inline-flex;
    align-items: center;
}

nav.main_navi ul li a.e_link{
    padding-right:1.25em;
}


.e_link{
    position: relative;
    padding-right: 1.75em !important;
}

/* 外部リンクアイコンの設定 */
.e_link::after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    /* 画像パスは適宜調整してください */
    background-image: url('../img/e_link_icon.png');
    background-size: contain;
    background-repeat: no-repeat;
    /* テキストとの間の余白 */
    margin-left: 5px; 
    /* 調整：アイコンが少し浮く場合はここを微調整 */
    flex-shrink: 0; 
  position: absolute;
  right: 0.5em;
  top: 50%;
  transform: translateY(-50%);


}

.e_link_w {

  /* アイコンとテキストが離れないように設定 */
  display: inline-block;
  position: relative;
  text-decoration: none;
    padding-right: 1.75em;

}

.e_link_w::after {
  content: "";
  /* 画像のパスを環境に合わせて調整してください */
  background-image: url('../img/e_link_icon_w.png');
  /* アイコンのサイズ指定 */
  background-size: contain;
  background-repeat: no-repeat;
  /* アイコンの位置調整 */
  width: 14px;
  height: 14px;
  display: inline-block;
  position: absolute;
  right: 0.5em;
  top: 50%;
  transform: translateY(-50%);
}

.btn_blue.e_link_w:after{
    right:1em;
}



.submenu_ul {
    background-color: #FFFFFF;
    padding:2em 3em;
    margin:4em auto 5em auto;
    border: 1px solid #dddddd;
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.05);
}


.submenu_ul_nav {
    gap: 10px 30px;
    list-style-type: none;
    margin: 0px;
    padding: 0px;
}
.grid_col3 {
    direction: ltr;
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 1fr 1fr 1fr 1fr;
    grid-template-columns: repeat(5, 1fr);
    -ms-grid-rows: auto;
    grid-template-rows: auto;
}


.submenu_ul li a
 {
    display: block;
    font-size:0.9em;
    position: relative;
    padding: 10px 0px;
    line-height: 1;
    border:none;
    border-radius:0;
    border-bottom: 1px solid #dddddd;
}


.submenu_ul_nav_icon {
    position: absolute;
    right: 0px;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    width: 20px;
    height: 20px;
}


.submenu_ul_nav_icon:before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-color: #1e23aa;
    border-radius: 100%;
}

.submenu_ul_nav_icon:after {
    content: "";
    display: inline-block;
    width: 25%;
    height: 25%;
    border-right: 1px solid #FFFFFF;
    border-bottom: 1px solid #FFFFFF;
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate3d(-50%, -50%, 0) rotate(45deg);
    transform-origin: center center;
    z-index: 1;
}

.president{
	text-align:right;
	  font-family: "Zen Antique", serif;
  font-size:1.5em;
}

.splide{
  padding-bottom:2em;
  margin-bottom:1em;
}


.splide__slide img {
  width: 100%;
  height: auto;
  display: block;
}

/* スライダーがアクティブ（枚数が十分）でない時、矢印とドットを隠す */
.splide:not(.is-active) .splide__arrows,
.splide:not(.is-active) .splide__pagination {
  display: none !important;
}

/* 念のため、スライドが1枚も動かない時に autoplay を止めるための調整 */
.splide:not(.is-active) .splide__track {
  cursor: default;
}



ul.notice {
  list-style: none;
  padding-left: 0;
}

ul.notice li {
  position: relative;
  padding-left: 1.5em;
  margin: 0em;
}

ul.notice li::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
}

ul.news_list{
    list-style:none;
}


table{
  border-collapse:separate;
  border-spacing: 5px;
  width: 100%;
  border:none;
  /*table-layout:fixed;*/
}

table th,table td{
  border-radius: 5px;
  text-align: center;
  padding:0.5em 1em ;
}

table th{
  background-color: #1e23aa;
  color: white;
  width:1px;
  white-space:nowrap;
}

table td{
  background-color: #F1F3FB;
  border:none;
  text-align:left;
}

.img_r{
    border-radius:30px;
}

.splide img{
    border-radius:24px;
}


.company_info{
  margin-bottom:1em;
}


td[data-column="1"]{
  background-color: #F1F3FB;
  color: #1e23aa;
  border:none;
  font-weight:bold;
  min-width:5em;
  width:33.33333%;

}


.keieishishin{
    background: #f1f3f5;
    padding: 1.5em 1.5em 3em 1.5em;
    border-radius: 21px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.keieishishin h3{
margin-top:0 !important;
}

ul.news-list{
    max-width:800px;
    margin:2em auto;
    padding:0;
}


ul.news-list li a{
    margin-bottom:0.5em;
    border:1px solid #aaa;
    border-radius:18px;
    padding:0.75em 1.25em;
    display:block;
}

.google{
    margin-top:2em;
}

.btn_center {
justify-content:space-around;
}


.color_w{
    color:#fff;
}
#person .flex_container, #corporate .flex_container, #recruit .flex_container{
justify-content:space-between;
}

.person_img, .corp_img, .recruit_img{
    width:55%;
}

.person_txt, .corp_txt, .recruit_txt{
    width:40%;
}

.top-news ul{
    list-style:none;
}
ul.news-list{
    list-style:none;
}



.footer_bg1{
    position:relative;
margin-bottom:-2px;
}
.footer_bg2{
margin-bottom:-2px;
}

.footer_nyalsok{
    z-index:3;
    max-width:350px;
    width:30%;
    min-width:175px;
    position:absolute;
    bottom:0;
    right:10%;
}

#back-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 50px;
  height: 50px;
  z-index: 9999;
  background-color: #999; /* 背景色 */
  border: none;
  border-radius: 50%; /* 丸い形 */
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

/* 矢印（くの字）のデザイン */
.arrow {
  width: 12px;
  height: 12px;
  border-top: 3px solid #fff;   /* 矢印の線の太さと色 */
  border-right: 3px solid #fff; /* 矢印の線の太さと色 */
  transform: rotate(-45deg);    /* 45度回転させて上向きに */
  margin-top: 6px;              /* 円の中央に見えるよう微調整 */
}

/* ホバーで少し浮き上がらせる演出 */
#back-to-top:hover {
  background-color: #000;
  transform: translateY(-5px);
}

/* 表示クラス */
#back-to-top.is-show {
  opacity: 1;
  visibility: visible;
}


#plan h3{
margin-top:2em;
}

#plan h4{
margin:1em 0 0 0;
}
#plan h4:first-of-type{
margin:0;
}



#plan h5{
  font-size:1.15em;
  margin:0.5em 0;
}

.card_bg{
background:#F1F3FB;
padding:1em 2em;
margin-bottom:2em;
border-radius:18px;
}

#declaration .card_bg{
margin-top:1em;
}

.news_page a:not([class]){
    text-decoration:underline;
    color:#999;
}

.news_page [class^="btn_"]{
    margin-top:4em;
}


.flow-chart {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    position:relative;
    padding:0;
}
.flow-chart__step {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: relative;
    width: calc((100% / 5) - 48px);
    max-width: 100px;
    margin: 0 24px;
    padding: 64px 0 32px;
    background:#6bb5de;
    color: #fff;
    font-size: 2.0em;
    line-height: 1.3;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}




.flow-chart__step:not(:nth-last-of-type(1))::after {
    content: '';
    position: absolute;
    top: 50%;
    left: calc(100% + 16px);
    width: 16px;
    height: 24px;
    background: url(../img/common/flow-arrow.png) center / contain no-repeat;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}



.accordion-container {
    margin:2em auto 0 auto;
}

/* アコーディオンの1項目 */
.accordion-item {
    background-color: #F1F3FB;
    border-radius: 8px;
    margin-bottom: 1.5em;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
    overflow: hidden; /* 中身の飛び出しを防ぐ */
}

/* クリックするタイトル部分 */
.accordion-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    font-weight: bold;
    font-size:1.2em;
    cursor: pointer;
    user-select: none; /* テキストの選択ハイライトを防止 */
    transition: background-color 0.3s ease;
}

/* ホバー時の背景色 */
.accordion-title:hover {
    background-color: #fcfcfc;
}

/* 右側の矢印アイコン（丸背景の土台に変形） */
.arrow-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 32px;  /* 丸のサイズ */
    height: 32px; /* 丸のサイズ */
    background-color: #666; /* 丸背景の色（お好みに合わせて変更してください） */
    border-radius: 50%; /* 正円にする */
    position: relative;
    transition: transform 0.3s ease, background-color 0.3s ease; /* 回転と背景色の変化をスムーズに */
    margin-right: 4px;
}

/* 擬似要素を使って中の矢印を作成 */
.arrow-icon::after {
    content: "";
    width: 10px;  /* 矢印のサイズ */
    height: 10px; /* 矢印のサイズ */
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(135deg); /* 最初は下向き */
    position: absolute;
    top: 32%; /* 丸の中心に綺麗に収まるように微調整 */
}

/* 開いたとき（.activeクラスがついたとき）の矢印の動き */
.accordion-item.active .arrow-icon {
    transform: rotate(-180deg); /* 丸ごと180度ひっくり返して上向きにする */
    background-color: #fff; /* 開いたときに丸背景の色を変える場合はここで（不要なら削除OK） */
}

/* 開いたときの中の矢印の色を変更（背景を暗くした場合用） */
.accordion-item.active .arrow-icon::after {
    border-top-color: #666;
    border-right-color: #666;
}

/* 詳細テキストが入る領域 */
.accordion-content {
    /* スムーズな開閉のための設定 */
    max-height: 0; /* 最初は高さを0にする */
    overflow: hidden; /* はみ出た中身を隠す */
    transition: max-height 0.3s ease-out; /* 高さが変わる動きをスムーズに */
}

/* 詳細テキストの内側（パディング用） */
.accordion-inner {
    padding: 1em;
    color: #555;
    line-height: 1.6;
}


.splide__slide img{
    aspect-ratio:4 / 3;
    overflow:hidden;
    object-fit:cover;
}


#sec3 .flex_container{
    justify-content:space-between;
}

.club_menu{
    margin-top:2em;
}
.club_btn{
    width:33.333333%;
    margin-bottom:1em;
}
.voice h5{
    font-size:1em;
    margin:0.5em 0 1em 0;
}

.jc_sb{
    justify-content:space-between;
}

#recruit_page #sec05 .btn_blue{
    margin-bottom:2em;
}

#recruit_page #sec05 .flex_container{
    justify-content:space-around;
}
#recruit_page .traning .img_box{
    margin-bottom:1em;
}

#recruit_page .traning .img_box img{
    aspect-ratio:4 / 3;
    overflow:hidden;
    object-fit:cover;
}




/* 全体のレイアウト */
.message-container {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin: 20px auto;
}

/* アイコンエリア */
.avatar-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.avatar-icon {
  width: 70px;
  height: 70px;
  background-color: #333;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: bold;
  text-align:center;
  line-height:1.5;
}


/* 吹き出し本体 */
.balloon {
  position: relative;
  background-color: #fff; /* 吹き出しの背景色（優しいグリーン系） */
  border: 2px solid #fff;   /* 吹き出しの枠線 */
  border-radius: 15px;         /* 角の丸み */
  padding: 15px 20px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.balloon p {
  margin: 0;
  line-height: 1.6;
  color: #333;
  font-size:0.85em;
}

/* 吹き出しのしっぽ（外側の枠線部分） */
.balloon::before {
  content: "";
  position: absolute;
  top: 20px;
  left: -12px; /* 枠線の太さに合わせて微調整 */
  border-style: solid;
  border-width: 10px 12px 10px 0;
  border-color: transparent #fff transparent transparent; /* 枠線と同じ色 */
  display: block;
  width: 0;
  z-index: 1;
}

/* 吹き出しのしっぽ（内側の塗りつぶし部分） */
.balloon::after {
  content: "";
  position: absolute;
  top: 20px;
  left: -9px; 
  border-style: solid;
  border-width: 10px 12px 10px 0;
  border-color: transparent #fff transparent transparent; /* 背景色と同じ色 */
  display: block;
  width: 0;
  z-index: 2;
}

.club_sec .splide__slide img{
    aspect-ratio:4 / 3;
    overflow:hidden;
}

.club_sec p{
    margin-bottom:2em;
}


@media (max-width: 767px) {
.flow-chart__step {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0.5em;
        -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
        writing-mode: horizontal-tb;
        font-size:1.25em;
        text-align:center;
        display:block;
    }

.flow-chart__step:not(:nth-last-of-type(1)) {
        margin-bottom: 32px;
    }

    .flow-chart__step:not(:nth-last-of-type(1))::after {
        top: calc(100% + 8px);
        left: 50%;
        -webkit-transform: translateX(-50%) rotateZ(90deg);
        transform: translateX(-50%) rotateZ(90deg);
    }

        .accordion-item {
            font-size:0.9em;
        }
        .accordion-title {
            font-size:1em;
            padding: 0.75em;

        }


        article{
            padding:0 0 3em 0;
        }

}




#womenscareer article{
    margin-top:2em;
    padding:2em;
background:#ebf0f7;
border-radius:12px;
}
/* ==========================================
   h3要素：蛍光ペン風（黄色）のライン指定
   ========================================== */
#womenscareer h2 {
/* インライン要素にすることで、2行になっても各行の文字だけにラインが引かれます */
    display: inline; 
    
    /* 下側50%にだけ不透明度60%の黄色（#fff200）を敷く */
    background: linear-gradient(transparent 50%, rgba(255, 242, 0, 0.6) 50%);
    
    /* 行と行の間のスペース（ここを調整するとマーカーの重なりを防げます） */
    line-height: 1.8;
}

#womenscareer h3 {
margin-top:1em;
background:#fff;
}

#womenscareer h3.name_initial {
margin-top:0;
background:none;
padding:0;
color:#1e23aa;
font-size:2em;
}

#womenscareer td{
    background:#fff;
}


/* =================================================
   Display Control (スマホ時のみ表示)
================================================= */
/* PCでは非表示 */
.sp_menu_btn, .sp_nav {
    display: none;
}

.pc{
  display:block;
}
.sp{
  display:none;
}

/* 画面幅768px以下の設定 */
@media screen and (max-width: 768px) {
.pc{
  display:none;
}
.sp{
  display:block;
}
.sp_reverse{
  flex-direction:column-reverse;
}
.header_in{
padding:1.5em 0;
}
.main_logo{
    width:250px;
}

.bottom_logo{
    margin:0 auto;
}

.spcol1{
    width:100%;
    margin-bottom:1em;
}
nav.main_navi, .footer_top nav.bottom_navi, .footer_bottom .bottom_menu1, .footer_bottom .bottom_menu2{
    display:none;
}


    .sp_menu_btn {
        display: block; /* ボタンを表示 */
        position: fixed;
        top: 0.75em;
        right: 0.5em;
        width: 50px;
        height: 50px;
        z-index: 1000;
        cursor: pointer;
        background: #fff;
        border-radius: 4px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    }

    .sp_nav {
        display: block; /* 構造を表示 */
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #f4f4f4;
        z-index: 999;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.5s ease, visibility 0.5s ease;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 80px 24px 60px;
        box-sizing: border-box;
    }

    /* メニューオープン時の挙動 */
    .sp_nav.open {
        opacity: 1;
        visibility: visible;
    }

    /* スクロール禁止用クラス */
    body.nav_open {
        overflow: hidden;
        position: fixed;
        width: 100%;
    }

    /* =================================================
       Hamburger Button (3本線)
    ================================================= */
    .sp_menu_btn span {
        display: block;
        position: absolute;
        left: 10px;
        width: 30px;
        height: 3px;
        transition: all 0.4s ease;
        border-radius: 2px;
    }

    /* 各ラインの色指定 */
    .sp_menu_btn span:nth-child(1) { top: 14px; background: #005bac; } /* 上：青 */
    .sp_menu_btn span:nth-child(2) { top: 24px; background: #000000; } /* 中：黒 */
    .sp_menu_btn span:nth-child(3) { top: 34px; background: #ffcc00; } /* 下：黄 */

    .sp_menu_btn.open span:nth-child(1) { top: 24px; transform: rotate(45deg); background: #333; }
    .sp_menu_btn.open span:nth-child(2) { opacity: 0; }
    .sp_menu_btn.open span:nth-child(3) { top: 24px; transform: rotate(-45deg); background: #333; }

    /* =================================================
       Internal Content (ロゴ・住所・メニュー)
    ================================================= */
    .sp_nav_header {
        margin-bottom: 30px;
        padding-bottom: 20px;
    }

    .sp_nav_header .bottom_logo img {
        max-width: 240px;
        height: auto;
    }

    .sp_nav_header p {
        font-size: 14px;
        line-height: 1.6;
        margin-top: 15px;
        color: #333;
    }

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

    .sp_nav_body > ul {
        border-top: 1px solid #ddd;
    }

    .sp_nav_body li {
        position: relative;
        border-bottom: 1px solid #ddd;
    }

    .sp_nav_body a {
        display: block;
        padding: 16px 0;
        color: #333;
        text-decoration: none;
        font-weight: bold;
        font-size: 16px;
    }

    /* =================================================
       Sub Menu & Accordion (初期状態は非表示)
    ================================================= */
    .has_sub .sub_trigger {
        position: absolute;
        right: -10px;
        top: 0;
        width: 54px;
        height: 54px;
        cursor: pointer;
        z-index: 5;
    }

    .sub_trigger::before, .sub_trigger::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background: #333;
        transition: all 0.3s ease;
    }
    .sub_trigger::before { width: 14px; height: 2px; }
    .sub_trigger::after  { width: 2px; height: 14px; }

    .has_sub.active > .sub_trigger::after {
        transform: translate(-50%, -50%) rotate(90deg);
        opacity: 0;
    }

    /* ★サブメニューの初期非表示設定★ */
    .sp_nav_body .sub_menu {
        display: none; 
        background: #e9e9e9;
        padding: 0 0 0 20px;
        border-top: 1px solid #ddd;
    }

    .sp_nav_body .sub_menu a {
        font-weight: normal;
        font-size: 14px;
        padding: 12px 0;
    }

/* 下部のコピーしてきたメニューエリア */
    .sp_nav_footer_links {
        margin-top: 30px;
        padding-top: 20px;
        /*border-top: 1px dotted #ccc;*/
        color: #666;
    }

    /* bottom_menu1, 2 の共通調整 */
    .sp_nav_footer_links .bottom_menu1,
    .sp_nav_footer_links .bottom_menu2 {
        font-size: 12px; /* 小さく表示 */
        line-height: 1.8;
        margin-bottom: 15px;
        font-weight: normal;
    }

    .sp_nav_footer_links a {
        display:inline-block;
        padding:5px 0;
        font-size: 11px ;

    }

    .sp_nav_footer_links a.e_link_w {
        padding-right:20px;

    }

    .sp_nav_footer_links a.e_link_w::after {
  background-image: url('../img/e_link_icon.png');
    }



    /* 初期状態でサブメニューが絶対に開かないようにする念押し */
    #js_sp_menu_target ul li ul {
        display: none;
        padding-left:1em;
        background:#ddd;
    }

    #js_sp_menu_target ul li ul li{
        border-bottom:1px solid #fff;
    }

    .person_img, .corp_img, .recruit_img{
        width:100%;
    }

    .person_txt, .corp_txt, .recruit_txt{
        width:100%;
    }

  #person .flex_container, #corporate .flex_container, #recruit .flex_container {
    /*display: grid;
    grid-template-columns: 1fr;*/
    justify-content:space-around;
  }



#person p, #corporate p, #recruit .recruit_txt p{
    font-size: 1em;
    margin-top:1em;
}


  .person_txt, .corp_txt, .recruit_txt {
    display: contents; /* ← これがポイント */
  }

  .person_txt h2 ,.corp_txt h2 { order: 1; }
  .person_img, .corp_img { order: 2; }
  .person_txt p, .corp_txt p { order: 3; }
  .person_txt a, .corp_txt a{ order: 4; }

.contact h3 {
font-size:1.35em;
}
.contact p{
  font-size:1em;
}

.contact p.tel {
font-size:3em;
}
p.tel img {
    width: 35px;
    vertical-align: baseline;
}



.btn_blue {
  padding: 0.75em 2em;
  width:325px;
}

.btn_yellow{
  padding: 0.75em 2em;
  width:325px;
}



.btn_by {
  padding: 0.75em 2em;
  width:325px;
}



.btn_white {
  padding: 0.5em 0.75em;
  font-size:0.85em;

}

ul.notice{
    font-size:0.85em;
}

main p{
    font-size:0.85em;
}

#womenscareer h3.name_initial {
margin-top:1em;
}


}









@media screen and (max-width: 768px) {

html{
  overflow-x:hidden;
}

section{
  padding:1em 0 2em 0;
}

main{
    padding-bottom:1em;
}
.main_img {
    overflow: visible; /* 流れる画像が画面外に出た時に崩れないように */
}
.main_img_cap1 {
    font-size: 1.75em;
    top: 60px;
    transform: translateX(-120%);
}

.main_img_cap2 {
    font-size: 1.75em;
    top: 150px;
    transform: translateX(-120%);
}


.main_img_ok {
    top: -30px;
    right: 0;
}

.main_img_box {
bottom:-1em;
right:0;
}

.main_img_txt {
    font-size:0.9em;
    padding:2em 1em 1em 1em;
}

.page_title_head{

    }
.page_title_head h1{
font-size:1.75em;
margin:0;
line-height:1.2;
padding-right: 60px;
}

h1::after {
    content: "";
    height: 60px;
    width: 60px;
}

.ceo_img{
    width:100%;
    max-width:150px;
    margin:0 auto 2em;
}
.ceo_txt{
    width:100%;
}
h2{
    font-size:1.45em;
    text-align:left;
}

#person h2, #corporate h2, #recruit h3 {
    text-align: center;
}

#person h2.icon_set, #corporate h2.icon_set {
    font-size: 2em;
    padding: 10px 30px;
}
#recruit h3 {
    font-size:1.5em;
    margin-top:1em;
}

h2.heading {
    font-size:1.45em;
    text-align:left;

}

.panel p{
    font-size:1.15em;
}


.president{
  font-size:1.25em;
}


main.page h3{
font-size:1.25em;
padding:0.5em 0.75em;
}


main.page .img_box h4{
    font-size:1.1em;
    line-height:1.5;
    margin-bottom:0.5em;
}

.submenu_ul {
    padding: 1em;
    margin: 2em auto 2.5em auto;
}

.grid_col3 {
    display: grid;
    -ms-grid-columns: 1fr 1fr;
    grid-template-columns: repeat(2, 1fr);
    -ms-grid-rows: auto;
    grid-template-rows: auto;
}
.submenu_ul_nav {
    gap: 10px;
}


.submenu_ul li a {
    padding: 10px 18px 10px 0px;
    font-size:0.85em;
}

.img_box .spcol1{
    width:100%;
}


.footer_nyalsok{
    right:5%;
}

table th{
  width:auto;
  min-width:5em;
}

table th,table td{
  padding:0.5em;
  font-size:0.85em;
}

.contact{
    padding:2em 0;
    margin-top:2em;
}
.block_center {
    margin: 0 0 2em 0;
}
#person [class^="btn_"], #corporate [class^="btn_"], #recruit .recruit_txt [class^="btn_"] ,[class^="btn_"]{
    margin-top: 2em;
}
.footer_bg1{
  margin-top:5em;
}

.mySwiper {
    overflow: visible;
}
.swiper-button-prev {
left:-10px;
}
.swiper-button-next
 {
right:-10px;
}
.top-news ul li a {
    border-radius: 12px;
    padding: 0.5em 0.75em;
}

ol li{
    font-size:0.85em;
}


ul.license li {
    white-space: initial;
    align-items: baseline;
}


.voice .flex_container{
    flex-direction:column;
    align-items:center;
}
.voice_img {
    width: 150px;
    margin:0.5em auto;
}

main.page h4.voice_name{
    font-size:1em;
    text-align:center;
}


.voice_txt {
    width: 100%;
}
.voice h5{
    font-size:0.85em;
margin:0.25em 0;
}

.voice_txt p{
    font-size:0.85em;
}

main.page .voice h3 {
font-size:1em;
}
.club_menu{
    justify-content:space-between;
}
.club_btn{
    width:48%;
}
.club_btn .btn_blue {
        padding: 0.5em 1em;
        width: 100%;
        font-size:0.85em;
        margin:0;
    }

}




/* --- スクロールアニメーション用 --- */


/* 共通：最初は透明 */
.js-fade {
    opacity: 0;
    transition: opacity 2s ease-out, transform 1.2s ease-out;
    will-change: opacity, transform;
}

/* 画像用：フェードイン */
.fade-in {
    transform: translateY(0); /* 動きをつけない場合はこれ */
}

/* 文字用：下から上にフェードイン */
.fade-up {
    transform: translateY(50px); /* 50px下から開始 */
}

/* 【追加】左から右にフェードイン */
.fade-left {
    transform: translateX(-50px); /* 50px左から開始 */
}

/* 【追加】右から左にフェードイン */
.fade-right {
    transform: translateX(50px); /* 50px右から開始 */
}

/* クラス「is-show」がついたら表示状態にする */
.js-fade.is-show {
    opacity: 1;
    transform: translate(0, 0); /* X方向・Y方向どちらのズレも元の位置（0）に戻す */
}


/* ==========================================
   エントリーエリアのレイアウト調整
   ========================================== */


.entry-box{
    display:flex;flex-direction:column;align-items:center;
    padding: 1em 2em 2em 2em;
    background:#eee;
    border-radius:12px;
    width:max-content;
    margin: 2em auto; /* 前後の余白 */
}

.entry-section {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px; /* 画像と中央テキストの間のスキマ（お好みで調整） */
}

/* 左右の画像ブロックの調整 */
.entry-side-img {
    flex: 1; /* 左右均等に広がる */
    max-width: 100px; /* 画像が大きくなりすぎないように制限 */
}

.entry-side-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* 中央のテキストブロックの調整 */
.entry-center-content {
    text-align: center;
    flex-shrink: 0; /* 中央のテキストが潰れないようにする */
}

.entry_txt{
    text-align:center;
    font-size:2em;
    font-weight:bold;
}

.cf-complete ul li{
    text-align:left;
    font-size:0.85em;
}

.licence_box {
    padding: 2em;
    background: #ebf0f7;
    margin: 0 0 3em 0;
}

.licence_box ul{
list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    padding:0;
    margin:0 0 1em 0;
}


.licence_box ul li::before {
    content: "■";
    color: #1e23aa;
    font-size: 0.8em;
    margin-right: 4px;
}
p.benefit_txt{
    color:#ff0000;
    font-weight:bold;
    margin-bottom:3em;
    text-align:center;
}



/* --- スマホ用の調整（画面が狭いときは縦並びにする場合） --- */
@media (max-width: 768px) {
.entry-box{
    padding: 1em 1em 2em 1em;
    width:100%;
}

    .entry-section {
        gap: 20px;
    }
    
    .entry-side-img {
    max-width: 70px;
    }
    
    .entry_txt{
    font-size:1.5em;

}
.entry-section .btn_by{
    margin-top:1em;
}
.cf-complete ul li{
    font-size:0.85em;
}

}
