@charset "utf-8";
/*
theme Name: ORIGINAL THEME
Author:DRC
Description:This is my original theme
version:1.0.0
*/




/* reset */

html, body, h1, h2, h3, h4, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align:baseline;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
article, header, footer, aside, figure, figcaption, nav, section { 
  display:block;
}
figure {
  text-align: center;
}
.wp-block-gallery .blocks-gallery-image figcaption,
.wp-block-gallery .blocks-gallery-item figcaption {
 text-align:center;
}

/*
figure.wp-block-image img {
    border: 1px solid #ddd;
}
*/

figcaption {
  font-size: 80%;
  margin: 1em 0;
}
body {
  line-height: 1;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
ol, ul {
  /*list-style: none;*/
  list-style-type: none;
}

#contents ul { /*list-style-type:disc !important;*/ margin-left:0;}
#contents ul.news-list { list-style-type:none !important; margin-left:0;}

html { margin:0 !important;}




/* clearfix */

.cf:after {
content: "";
clear: both;
display: block;
}



body {
font-family: "Zen Maru Gothic", 'Avenir','Helvetica Neue','Helvetica','Arial','Hiragino Sans','ヒラギノ角ゴシック',YuGothic,'Yu Gothic','メイリオ', Meiryo,'ＭＳ Ｐゴシック','MS PGothic',sans-serif; font-size:18px; line-height: 1.7; font-weight:500;}
@media all and (-ms-high-contrast:none) {
	body {
		font-family: "メイリオ",Meiryo,"游ゴシック",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif;  
	}
}



p { margin:15px 0 ; }


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

iframe {
  max-width: 100%;
  max-height:100%;
}

	
h1, h2, h3, h4, h5, h6 {
  font-weight: bold;
}

table { border-collapse:collapse;}


/* wp */

img.aligncenter,
div.aligncenter {
   display: block;
   margin-left: auto;
   margin-right: auto;
}

img.alignleft {
   float: left;
   display: block;
margin:0 30px 30px 0;
}

img.alignright {
   float: right;
   display: block;
margin:0 0 30px 30px;
}

.wp-caption {
   border: 1px solid #ddd;
   text-align: center;
   background-color: #f3f3f3;
   padding-top: 4px;
   margin: 10px;
   /* optional rounded corners for browsers that support it */
   -moz-border-radius: 3px;
   -khtml-border-radius: 3px;
   -webkit-border-radius: 3px;
   border-radius: 3px;
}

.wp-caption img {
   margin: 0;
   padding: 0;
   border: 0 none;
}

.wp-caption p.wp-caption-text {
   font-size: 11px;
   line-height: 17px;
   padding: 0 4px 5px;
   margin: 0;
}


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

img.aligncenter,
div.aligncenter {
   display: block;
   margin-left: auto;
   margin-right: auto;
}

.wp-block-image .alignright, .wp-block-image .alignleft { float:none !important; margin-left:auto !important; margin-right:auto !important; text-align:center; display:block !important;}

img.alignleft {
   float: none;
   display: block;
   margin-left: auto;
   margin-right: auto;
}

img.alignright {
   float: none;
   display: block;
   margin-left: auto;
   margin-right: auto;

}
}


.mincho { font-family:"游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
.big { font-size:26px; font-weight:bold;}
.huge { font-size:30px; font-weight:bold;}


.red { color:red;}
.bold { font-weight:600;}

.center { text-align:center;}

a img { transition: 0.5s;}
a img:hover { opacity: 0.6; transition: 0.5s;}



.pagetop { display: none; position: fixed; bottom: 30px; right: 30px; z-index: 9999; }
@media screen and (max-width: 480px) {
	.pagetop { bottom: 15px; right: 15px;}
}


/* common */
.inner { width:1200px; margin:0 auto;}

.mgT0 { margin-top:0 !important;}

h2 { margin:80px 0 60px; text-align:center; font-size:36px;  position:relative; inline-block; color:#333333;}
h2 i { color:#1cb1ea; padding: 0 10px 0px 0; font-size: 120%;}
h2 i.fa-line { color:#1ab920; }
h2 span { display:block; font-size:14px; color:#1cb1ea;}

/*h2:before { content: ''; position: absolute; left: 50%; bottom: -5px; width: 100px; height: 3px; display: inline-block; -moz-transform: translateX(-50%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translate(-50%);  background-color: #944d40; }*/


h2 span.sub { display:block; color:#fdc230; font-size:30px;}

/*
h2 {
margin:80px 0 60px; text-align:center; font-size:36px; font-family:"游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
display: flex;
align-items: center;
}
h2:before,
h2:after {
content: "";
height:1px;
flex-grow: 1;
background-color:#666;
}
h2:before {
margin-right: 1rem;
}
h2:after {
margin-left: 1rem;
}
*/


/*
.page h3 { font-size:30px; text-align:center; padding:10px; margin:60px 0 50px;  background:#ededed;  font-weight:normal;}

.page h4 { font-size:22px; text-align:left; border-left:5px #937400 solid; padding:3px 0 3px 15px; margin:50px 0 30px;}
*/











.page #container h2 {
    /* clamp(最小フォントサイズ, ビューポート幅基準のフォントサイズ, 最大フォントサイズ) */
    font-size: 32px; /* 極めて大胆なサイズに、最小を3rem (48px)に設定 */
    font-weight: 900; /* 極太字（Interの最大ウェイトを使用） */
    color: #ffffff; /* 白い文字色で背景とのコントラストを最大化 */
    margin-top: 6rem; /* 上の余白をさらに増やす */
    margin-bottom: 3.5rem; /* 下の余白を増やす */
    text-align: center; /* 中央寄せ */
    position: relative; /* 装飾の基準 */
    padding: 7px; /* 見出しエリアに十分なパディング */

    /* 見出しの背景装飾 */
    background: #1cb1e9; /* キーカラーを全面に */
    border-radius: 20px; /* 角をさらに大きく丸く */
    
    /* 背景に subtle なパターンを追加して、シンプルすぎないおしゃれさを演出 */
    background-image: radial-gradient(circle at center, rgba(255,255,255,0.07) 1px, transparent 1px);
    background-size: 25px 25px; /* パターンサイズを少し大きく */
    
    /* 内側の装飾ラインの準備 */
    /* ホバーエフェクトは不要なため、transitionは設定しない */
}

/* h2 の内側の装飾ライン（上部と下部） */
.page #container h2::before,
.page #container h2::after {
    content: '';
    position: absolute;
    background-color: rgba(255, 255, 255, 0.15); /* 白い半透明ライン、透明度を少し上げて強調 */
    border-radius: 2px;
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.7); /* 発光効果を強調 */
}
.page #container h2::after { /* 下部の装飾ライン */
    bottom: 1.5rem;
    left: 1.5rem;
    right: 1.5rem;
    height: 4px; /* ラインの太さを少し増やす */
}


        .page h3 {
            font-size: 30px; /* h2に続く大胆なサイズ */
            font-weight: 700; /* 太字 */
            color: #007bb6; /* キーカラーより少し濃い色で、引き締めとコントラスト */
            margin-top: 5rem; /* 上の余白 */
            margin-bottom: 2.5rem; /* 下の余白 */
            text-align: center; /* 中央寄せ */
            position: relative; /* 装飾の基準 */
            padding: 5px 0; /* パディングで背景を際立たせる */
            letter-spacing: -0.03em; /* 文字間隔を詰める */

            background: linear-gradient(to right, rgba(28, 177, 233, 0.05), rgba(28, 177, 233, 0.1)); /* キーカラーの淡いグラデーション */
            border-left: 8px solid #1cb1e9; /* 強調された左ボーダー */
            border-radius: 10px; /* 角を丸く */
        }


        .page h3::after {
            content: '';
            position: absolute;
            right: 1.5rem;
            top: 50%;
            transform: translateY(-50%);
            width: 40px;
            height: 2px;
            background-color: #1cb1e9; /* キーカラー */
            opacity: 0.7;
            border-radius: 1px;
        }


        .page h4 {
            font-size: 22px; /* 存在感のあるサイズ */
            font-weight: 600; /* 太めのフォント */
            color: #333; /* 基本的な文字色 */
            margin-top: 4rem; /* 上の余白 */
            margin-bottom: 1.8rem; /* 下の余白 */
            padding-left: 2.5rem; /* 左の装飾とのスペースを確保 */
            position: relative; /* 疑似要素の基準 */
            /* border-bottom: 1px solid #e0e0e0; /* シンプルな下線 */ */
            padding-bottom: 0.6rem; /* 下線とのスペース */
            text-align: left; /* 左寄せ */
        }

        /* h4の左側のキーカラーアイコン（三角形と円） (前回提案を維持) */
        .page h4::before {
            content: '\25B6'; /* ▶ Unicode character */
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            color: #1cb1e9; /* キーカラー */
            font-size: 1.2em; /* アイコンサイズ */
            line-height: 1; /* 行の高さ調整 */
            text-shadow: 0 0 5px rgba(28, 177, 233, 0.5); /* subtleな発光 */
        }

















.blocks-gallery-grid .blocks-gallery-image figcaption, .blocks-gallery-grid .blocks-gallery-item figcaption, .wp-block-gallery .blocks-gallery-image figcaption, .wp-block-gallery .blocks-gallery-item figcaption { padding-left:0 !important; padding-right:0 !important;}



/* font */

@media screen and (max-width:768px) {
	.has-large-font-size { font-size:28px !important;}
}






/* buttons */


.btn-div { margin-top:50px; margin-bottom:100px;}

.button3 { background:#fbc700; color:#944d40; text-align:center; padding:20px 55px; text-decoration:none; position:relative; font-weight:bold;}
	.button3:after { font-family: "Font Awesome 5 Free"; content:'\f054'; font-weight:900; font-size:10px; position:absolute; right:10px; top:22px;}
	.button3:hover { background:#e1b200; transition:0.5s;}

.button4 { background-color:rgba(255,255,255,0.7); color:#000; text-align:center; padding:20px 55px; text-decoration:none; position:relative; font-weight:normal;}
	.button4:after { font-family: "Font Awesome 5 Free"; content:'\f054'; font-weight:900; font-size:10px; position:absolute; right:10px; top:22px;}
	.button4:hover { background:#ececec; transition:0.5s;}

.button5 { background:#944d40; color:#fff; font-size:28px; text-align:center; padding:10px 40px; text-decoration:none; border:1px #fff solid; margin-right:auto; margin-left:auto; font-weight:600; display:inline-block; vertical-align:middle; }
	.button5:hover { background:#323232; transition:0.5s;}

	.button5 i { font-size:44px; margin-right:15px; display:inline-block; vertical-align:middle;}
	.button5 span { display:inline-block; vertical-align:middle;}

.button6 { background-color:#1cb1ea; color:#fff; text-align:center; padding:15px 55px; text-decoration:none; position:relative; font-weight:normal; border-radius: 10px;}
	.button6:after { font-family: "Font Awesome 5 Free"; content:'\f054'; font-weight:900; font-size:10px; position:absolute; right:10px; top:22px;}
	.button6:hover { background:#078bbd; transition:0.5s; color:#fff;}



/* form */
.mw_wp_form input[type="text"], .mw_wp_form select, .wpcf7 input[type="text"], .wpcf7 select, .wpcf7 input[type="email"]{
	margin: 0;
    padding: 1px 10px;
    width: 95%;
    height: 40px;
    background-color: #F7F7F7;
    font-size: 1.0em;
    border: 2px solid #E4E4E4;
font-family:"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","游ゴシック体", "Yu Gothic", YuGothic, "メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",Arial,Osaka,Sans-Serif
}
.mw_wp_form textarea, .wpcf7 textarea {
	margin: 0;
    padding: 10px;
    width: 97%;
    height: 200px;
    background-color: #F7F7F7;
    font-size: 1.0em;
    border: 2px solid #E4E4E4;
font-family:"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","游ゴシック体", "Yu Gothic", YuGothic, "メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",Arial,Osaka,Sans-Serif
}

.mw_wp_form .contact_button, .wpcf7 .contact_button {
    text-align: center;
    margin: 50px auto;
}
.mw_wp_form input[type="submit"], .wpcf7 input[type="submit"] {
	padding: 15px 40px;
    font-size: 17px;
	margin-bottom:20px;
}

.contact-table { width:100%;}
.contact-table td { }
.contact-table th { text-align:left; font-size:16px; padding:20px !important;}
	.contact-table th .hissu { background:#f17678; color:#fff; padding:2px 6px; display:inline-block; vertical-align:top; font-size:13px; border-radius:5px; margin-left:10px; }
/* .mw_wp_form .error { color:#fff !important; background:red !important; width:100%; }*/

.contact-top { display:none;}
.mw_wp_form_input .contact-top { display:block;}



.alert { background:#ffebeb; color:#33c363; font-weight:bold; padding:20px 20px 10px; text-align:center;}
.alert p { margin-bottom:10px;}

.wpcf7-response-output { font-weight:bold; text-align:center; }






@media screen and (max-width: 480px) {
	.mw_wp_form input[type="text"], .mw_wp_form select, .mw_wp_form textarea { width: 93%;}
	.contact-table td { text-align:center;}
	.mw_wp_form input.col2  { width:40%;}

}




/* header */

#header { background:url(./img/mainimg-bg1.png) top center no-repeat; background-size:cover; }
.home #header { /*margin-top:90px;*/}

.h-logo { display:inline-block; width:300px; position:relative;}
.h-logo-en { height:45px; }
.h-logo img, .ci .icon img { /*filter: drop-shadow(0 0 3px rgba(0,0,0,1.0));*/ }

.bxslider-org li {  background:center/ cover no-repeat; background-size:cover; height:100vh; background-position: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
	.bxslider-org li.bsl1 { background:url(./img/slide1-2.jpg) top center no-repeat; background-size:cover; display:flex !important;}
	.bx-wrapper img { display:inline;}
		.bxslider-org li.bsl1 .ci { text-align:center;}
		.bxslider-org li.bsl1 .ci .box { background:rgba(255,255,255,0.4); padding:20px; max-width:1200px; margin-left:auto; margin-right:auto; margin-bottom:20px;}
			.bxslider-org li.bsl1 .ci .title { font-size:34px; font-weight:bold; text-align:center; margin-bottom:20px;}
				.bxslider-org li.bsl1 .ci .title .strong { color:#fcc700;}
			.bxslider-org li.bsl1 .ci .title img { width:300px; display:inline-block; vertical-align:top;}
			.bxslider-org li.bsl1 .ci .photo { text-align:center; margin-bottom:20px;}
			.bxslider-org li.bsl1 .ci .photo img { max-width:1000px; width:100%; display:inline-block;}
			.bxslider-org li.bsl1 .ci .text { text-shadow: 0 0 5px rgba(0,0,0,1.0); color:#fff;}
			.bxslider-org li.bsl1 .ci .t1 { margin-top:20px; font-size:38px;}
			.bxslider-org li.bsl1 .btn-div { margin-top:30px; margin-bottom:0;}

@media only screen and ( max-width : 768px ) {
		.bxslider-org li.bsl1 .ci .box { width:90%;}
			.bxslider-org li.bsl1 .ci .title { font-size:22px; }
			.bxslider-org li.bsl1 .ci .title img { width:220px; }
			.bxslider-org li.bsl1 .ci .photo { text-align:center; margin-bottom:20px;}
			.bxslider-org li.bsl1 .ci .t1 { font-size:20px;}
}

@media only screen and ( max-width : 480px ) {
			.bxslider-org li.bsl1 .ci .title { font-size:20px; }
			.bxslider-org li.bsl1 .ci .title img { width:200px; }
			.bxslider-org li.bsl1 .ci .title .img-logo { display:block; }
			.bxslider-org li.bsl1 .ci .t1 { font-size:20px;}
}


	.bxslider-org li.bsl2 { background:url(./img/slide2-2.jpg) top center no-repeat; background-size:cover; }
		.bxslider-org li.bsl2 .ci { /*padding:120px 0 20px;*/}
			.bxslider-org li.bsl2 .ci .t1 { margin-bottom:0; font-size:38px; font-weight:bold;}

			.bxslider-org li.bsl2 .ci .text { color:#fff; text-shadow:0 0 5px rgba(0,0,0,1.0);}


	.bxslider-org li.bsl3 { background:url(./img/slide3-2.jpg) top center no-repeat; background-size:cover;}
		.bxslider-org li.bsl3 .ci { /*padding:120px 0 20px;*/}
			.bxslider-org li.bsl3 .ci .t1 { margin-bottom:0; font-size:38px; font-weight:bold;}
			.bxslider-org li.bsl3 .ci .text { color:#fff; text-shadow:0 0 5px rgba(0,0,0,1.0);}



	.bxslider-org li.bsl4 { background:url(./img/slide4-2.jpg) top center no-repeat; background-size:cover;}
		.bxslider-org li.bsl4 .ci { /*padding:120px 0 20px;*/}
			.bxslider-org li.bsl4 .ci .t1 { margin-bottom:0; font-size:38px; font-weight:bold;}
			.bxslider-org li.bsl4 .ci .text { color:#fff; text-shadow:0 0 5px rgba(0,0,0,1.0);}



.slide-wrap { position: relative;}
.fixed-content { 
/**    position: absolute;
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    z-index: 10; 
	width: 100%;
    **/
    text-align:center;
    margin-bottom: -90px;
}

.fc-body { display:flex; max-width: 800px; margin: 0 auto;}
.fc-text, .fc-movie { flex: 1; }
@media screen and (min-width:1000px) {
	 .fc-text { padding-right:40px; }
}
@media screen and (max-width:768px) {
	.fc-body { display:block;}
	.fc-text { }
}
.fct1 { color:#fff; font-weight:bold; font-size:4.5vw; line-height: 0.5; z-index: 30;}
.fct2 { font-weight:bold; padding:20px 30px; box-shadow: #000; background:rgba(255, 255 , 255, 0.5); }
.fct2-1 { font-size:36px; }
.fct2-2 { font-size:18px; }
@media screen and (max-width:480px) {
	.fct2-1 { font-size:24px; }
	.fct2-2 { font-size:16px; }
}
@media screen and (max-width:768px) {
	/*.fixed-content { position: static; transform:none;}*/
	.fct1 {  text-shadow:1px 3px 3px #513c3c;}
	/*.fixed-content { background: #d2f3ff; padding:20px;}*/
}

.bx-wrapper { border:none !important;}


@media only screen and ( min-width : 1200px ) {
	.fct1 { font-size:70px;}
}

@media only screen and ( max-width : 768px ) {
			.bxslider-org li.bsl2 .ci .photo img { width:200px; }
			.bxslider-org li.bsl2 .ci .t1 { font-size:26px;}
			.bxslider-org li.bsl3 .ci .photo img { width:200px; }
			.bxslider-org li.bsl3 .ci .t1 { font-size:26px;}
}
@media only screen and ( max-width : 480px ) {
			.bxslider-org li.bsl2 .ci .t1 { font-size:20px;}
			.bxslider-org li.bsl3 .ci .t1 { font-size:20px;}
}



.ci { /*padding:240px 0 240px;*/}
	.ci .icon { margin-bottom:35px; text-align:center;}
		.ci .icon img { width:90px;}
	.ci .text { text-align:center; text-shadow: 0 0 5px rgba(0,0,0,1.0); font-weight:900; color:#fff;}
		.ci .text .t1 { font-size:48px; }
		.ci .text .t1 .green { /*color:#539076;*/ color:yellow; text-shadow: 0 0 5px rgba(0,0,0,1.0); }
		.ci .text .t2 { font-size:36px;}
		.ci .text .t3 { font-size:24px; margin-top:34px;}



.bxslider-org li .btn-div { margin-bottom:0;}





	#contents .category-list-banner { margin:-20px; display:flex; margin-bottom:20px;}
		.category-list-banner li { width:50%;}

@media only screen and ( max-width : 480px ) {
	#contents .category-list-banner { margin:-20px; display:block; margin-bottom:20px;}
		.category-list-banner li { width:100%;}
}




#contents .sidebar .sidebarbox .side-news { list-style-type:none; margin-left:0;}
	.side-news li { font-size:0; padding:10px 0; border-bottom:1px #ccc dotted;}
		.side-news .img { display:inline-block; vertical-align:top; width:25%;}
		.side-news .status { display:inline-block; vertical-align:top; font-size:13px; width:72%; margin-left:3%; line-height:1.5;}
			.side-news .status .cat { display:none;}
			/*.side-news .status .date { display:none;}*/




.searchbox { background:#fff; border-radius:30px 30px 30px 30px; border:1px solid #e5e5e5; margin-bottom:30px; padding-left:5px;}
.searchbox .searchsubmit {
	font-family: "Font Awesome 5 Free";
    font-size: 1.4em;
    padding: 0;
    cursor: pointer;
    color: #255fac;
    border: none;
    background: transparent;
    width: auto !important;
    height: auto !important;
    margin: 10px 10px 0 !important;
    float: left !important;
	content:"\f002";
	font-weight:900;
	font-size:26px;
}

.searchbox .searchfield {
	border: 0;
    border-radius: 4px;
    padding: 10px 5px;
    outline: 0;
    margin: 5px 5px 5px 0;
    -webkit-appearance: none;
    font-size: 100%;
    /*width: 100%;*/
}






/* gmenu */
.fixed-wrap { 
  /*box-shadow: 0px 3px 15px rgba(0,0,0,0.2);*/
  z-index: 99;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(255,255,255,0.8);
padding:15px 0;
}

.menu-global-container a, .menu-global-en-container a { color:#000; text-decoration:none;}
.menu-global-container a:hover, .menu-global-en-container a:hover {
  color: #000;
}
#menu-global li a, #menu-global-en li a {
  font-size: 18px;
/*  letter-spacing: 0.2em;
*/
}

#menu-global li a { font-size:18px; line-height:1.4; font-weight:bold; text-transform: none;}
#menu-global li a span { display:block; font-size:14px;}


#menu-global li ul li a, #menu-global-en li ul li a { font-size:14px;}
#menu-global .sub-menu, #menu-global-en .sub-menu , .mean-container .mean-nav ul ul {
  background: rgba(255,255,255,1);
  /*background-image: linear-gradient(to top, #fff1eb 0%, #ace0f9 100%);*/
}
@media only screen and ( max-width : 768px ) {
/*  #header {
    padding: 10px 0;
    height: 60px;
  }
*/
  .h_logo {
    width: 200px;
    position: absolute;
    top: 18px;
    left: 10px;
    z-index: 100;
  }
  .menu-global-container .nav , .menu-global-en-container .nav {
    overflow-y: auto;
    height: 100vh;
  }
  .mean-nav .container {
    padding: 0;
  }
  #menu-global li .fa, #menu-global-en li .fa {
    display: none;
  }
}

@media print, screen and ( min-width : 769px ) {
/*  #header {
    height: 80px;
  }
*/
  .h_logo img {
    width: 300px;
  }
  #h_top {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .menu-global-container ul, .menu-global-en-container ul {
    position: relative;
    display: flex;
  }
  .menu-global-container li, .menu-global-en-container li {
    position: relative;
    margin-right: 2em;
  }
  .menu-global-container li:last-child, .menu-global-en-container li:last-child {
    margin-right: 0;
  }
  .menu-global-container li i, .menu-global-en-container li i {
    font-size: 16px;
    margin-left: 5px;
  }
  .menu-global-container li a, .menu-global-en-container li a {
    position: relative;
    display: block;
    text-align: center;
    line-height: 80px;
  }
  .menu-global-container .sub-menu ,.menu-global-en-container .sub-menu {
    visibility: hidden;
    opacity: 0;
    z-index: 1;
    display: block;
    position: absolute;
    top: 50px;
    left: 50%;
    margin-left: -100px;
    width: 200px;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
  }
  .menu-global-container .sub-menu a, .menu-global-en-container .sub-menu a {
    padding: 10px;
    display: block;
    border-bottom: none;
    padding: 20px;
    line-height: 1.2em;
  }
  .menu-global-container .sub-menu a:hover:after, .menu-global-en-container .sub-menu a:hover:after {
    content: none;
  }
  .menu-global-container .sub-menu li, .menu-global-en-container .sub-menu li {
    display: block;
    font-size: 16px;
    padding: 0;
    margin: 0;
  }
  .menu-global-container .sub-menu li:last-child, .menu-global-en-container .sub-menu li:last-child {
    border-bottom: none;
  }
  .menu-global-container ul > li:hover, .menu-global-en-container ul > li:hover {
    -webkit-transition: all .5s;
    transition: all .5s;
  }
  .menu-global-container ul > li:hover a,.menu-global-container .current-menu-item a,.menu-global-container .current-menu-parent a, .menu-global-en-container ul > li:hover a,.menu-global-en-container .current-menu-item a,.menu-global-en-container .current-menu-parent a {
    color: #000;
  }
  .menu-global-container li:hover ul.sub-menu, .menu-global-en-container li:hover ul.sub-menu {
    top: 80px;
    visibility: visible;
    opacity: 1;
    z-index: 9999;
  }
  .menu-global-container li ul li:after, .menu-global-en-container li ul li:after {
    content: none;
  }
 .menu-global-container li:hover ul.sub-menu a, .menu-global-en-container li:hover ul.sub-menu a {
    color: #000;
border-bottom:1px #eaeaea solid;
  }
  .menu-global-container .sub-menu li a:hover, .menu-global-en-container .sub-menu li a:hover {
    background: #eaeaea;
  }
  .menu-global-container .contact_btn a:hover, .menu-global-en-container .contact_btn a:hover {
    color: #000;
  }
}





/*
.bx-wrapper .bx-pager { display:none !important; }
*/


/* index */

.news-list { max-width:800px; width:100%; margin:0 auto 70px; font-weight:bold;}
	.news-list li { border-bottom:1px #aaa solid; padding-bottom:15px; margin-bottom:16px; padding: 20px 0px;}
		.news-list li:hover { background:#fff;}
	.news-list li div { display:inline-block; vertical-align:top;}
	.news-list li .date { width:130px; margin-right:20px; }
	.news-list li .cat { padding:4px; 15px; width:150px; text-align:center; font-size:14px; line-height:140%; margin-right:30px; background:#ececec; margin-top:2px;}
	.news-list li .title { width:630px; }
		.news-list li .title a { color:#000; text-decoration:none;}
		.news-list li .title a:hover { text-decoration:underline;}

	.archive .news-list { margin-top:60px;}
	.archive .news-list li .title { width:675px; }

@media screen and ( max-width:768px ) {
	.archive .news-list li .title { width:100%; }
}


.topics-list { display:flex; justify-content: center; flex-wrap:wrap; max-width:1400px; margin-left:auto; margin-right:auto;}
	.topics-list li { width:23%; margin:20px 1%; background:#fff; position:relative;}
	.topics-list li .img img { object-fit:cover; width:100%; height:200px;}
	.topics-list li .status { font-size:0;}
	.topics-list li .date, .topics-list li .cat { font-size:16px; padding:10px;}
	.topics-list li .date { display:inline-block; width:40%; background:#595757; color:#fff;}
	.topics-list li .cat { display:inline-block; width:60%; background:#ebbb00; color:#fff; text-align:center;}
	.topics-list li .title { background:#fff; font-size:20px; font-weight:bold;}
		.topics-list li .title a { color:#000; text-decoration:none;}
		.topics-list li .link a { position:absolute; top:0; left:0; width:100%; height:100%; text-indent:-9999;}
		.topics-list li .link a:hover { background:rgba(255,255,255,0.3); transition:0.5s;}


	.archive .topics-list li, .search .topics-list li { width:46%; margin:20px 2%; border:1px #ddd solid;}
		.archive .topics-list li, .search .topics-list li .date1 { padding:5px 10px;}
		.archive .topics-list li, .search .topics-list li .title { padding:5px 10px; font-size:20px;}
		.archive .topics-list li, .search .topics-list li .desc { padding:5px 10px; font-size:14px;}

	.single .authorbox { margin:60px 0; border:1px #888 solid; padding:20px; font-size:0;}
		.single .authorbox .img { display:inline-block; width:25%; font-size:16px; vertical-align:top;}
		.single .authorbox .desc { display:inline-block; width:70%; margin-left:5%; font-size:16px; vertical-align:top;}
			.single .authorbox .img img { border-radius:50%; object-fit:cover; }			.single .authorbox .name { font-size:20px;  margin:10px 0; border-bottom:1px #888 solid; padding-bottom:10px;}
			.single .authorbox .message { margin-top:10px;}




.feature-box { background:#fdc230; font-size:48px; font-weigh:bold; text-align:center;  color:#fff; padding:25px 30px; margin-top:-100px;}


.outside {margin: 60px calc(50% - 50vw) 0; padding: 40px calc(50vw - 50%);             /* 背景に清潔感のあるグラデーションを追加 */
            background: linear-gradient(135deg, #e0f2f7 0%, #c6e9f2 100%); /* 淡い水色のグラデーション */
            
            /* 柔らかなドロップシャドウで立体感を出す */
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08); /* 影をより大きく、柔らかく */
}

.outside.outside-padding-TB0 { padding-top:0; padding-bottom:0;}

.outside2 { background-image:url(./img/tcb3-bg.jpg); background-repeat:repeat; background-size:cover; }

	.outside h2:first-child { margin-top:10px;}
	.outside2 h2:first-child { margin-top:10px;}
	.outside2 .inner-white { background:rgba(255,255,255,1.0); padding:20px;}
	.outside2 .inner-black { background:rgba(0,0,0,0.5); padding:20px;}

@media screen and (max-width:768px) {
	.outside2 .inner-white { padding:0}
}







.tcb1 { background-color: #eef3f7; padding:1px 0;}



.tcb2 { background:url(./img/tcb2-bg2-2-3.jpg) top center no-repeat; background-size:cover; padding-top:30px; padding-bottom:10px; text-align:center;}
	.tcb2 .text { color:#fff; font-size:24px; margin-bottom:10px; text-shadow: 0 0 5px rgba(0,0,0,1.0);}
	.tcb2 .text-large { font-size:30px; font-weight:bold;}






.tcb3 { /*background:url(./img/tcb3-bg.jpg) center center; background-size:cover;*/ padding-top:5px; padding-bottom:10px; text-align:center;}
	.tcb5 ul { display:flex; justify-content: center; /*align-items: center;*/}
		.tcb3 ul li { width:33%; padding:0 10px;}
			.tcb3 ul li .title { font-size:22px; margin-top:20px;}
			.tcb3 ul li .desc { margin-top:10px;}
			.tcb3 .img img { object-fit:cover; width:100%; height:250px;}




.tcb5 { /*background:url(./img/tcb1-bg.jpg) center center; background-size:cover;*/ padding-top:5px; padding-bottom:10px; text-align:center;}
	.tcb5 ul { display:flex; flex-wrap:wrap; justify-content: center; /*align-items: center;*/}
		.tcb5 ul li { width:30%; padding:0 10px; border:1px #ccc solid;}
		.archive .tcb5 ul li { width:45%; }


			.tcb5 ul li .title { font-size:22px; margin-top:20px; font-weight:bold;}
			.tcb5 ul li .desc { margin-top:10px;}
			.tcb5 .img img { object-fit:cover; width:100%; height:250px;}

	.tcb5 .top-topics-list li { background:#fff !important; padding:0; margin: 10px 15px;}
		.tcb5 .top-topics-list li .date { text-align:left; background:#eeeeee; padding:5px 15px; color:#000;}
			.tcb5 .top-topics-list li .date .cat { margin-left:15px; font-size:80%;}
		.tcb5 .top-topics-list li .title { text-align:left; padding:10px 15px; font-size:20px; font-weight:bold;}
		.tcb5 .top-topics-list li .title a { color:#000; text-decoration:none;}
		.tcb5 .top-topics-list li .desc { text-align:left; padding:0 15px 10px; font-size:90%; margin-top:0;}
		.tcb5 .top-topics-list li .img img { height:230px;}


    .movie-box { max-width:600px; margin:40px auto; text-align:center;}


@media screen and ( max-width:768px) {
	.tcb5 .top-topics-list li { width:100%; }
	.tcb5 .top-topics-list li .img img { height:170px;}
	.tcb3 .contents-list2 li { font-size:18px !important; padding:50px 0 !important;}
}



@media screen and (max-width:768px) {
	.tcb3 ul { display:block; }
		.tcb3 ul li { width:100%; }
}



/*
.tcb4 {}
	.tcb4 .main-inner { background:url(./img/tcb3-bg.jpg) center center no-repeat; background-size:cover; padding-top:110px; padding-bottom:10px; text-align:center;}
	.tcb4 .text { color:#fff; font-size:36px; margin-bottom:10px;  text-shadow: 0 0 5px rgba(0,0,0,1.0);}
*/

.tcb4 { background:url(./img/tcb3-bg2-2-3.jpg) top center no-repeat; background-size:cover; padding-top:130px; padding-bottom:10px; text-align:center;}
	.tcb4 .text { color:#fff; font-size:24px; margin-bottom:10px; text-shadow: 0 0 5px rgba(0,0,0,1.0);}
	.tcb4 .text-large { font-size:30px; font-weight:bold;}


@media screen and (max-width: 768px) {
	.tcb2 .text, .tcb4 .text { font-size:28px; }

}

@media screen and (max-width: 480px) {
	.tcb2 .text, .tcb4 .text { font-size:18px; }

}







#contents ul.flex { list-style-type:none !important; margin:0 !important;}

.flex { display:flex; justify-content: space-around; margin:50px 0 70px;}
.i-flex2 { margin-bottom:100px;}
	.flex li { text-align:center; align-self: auto; width:30%;}
	.i-flex2 li { width:50%; }
		.i-flex2 li:first-child { margin-left:160px; }
		.i-flex2 li:last-child { margin-right:160px; }
	.flex .icon { font-size:90px; background:#e9ecef; border-radius:50%; width:175px; height:175px; text-align:center; padding-top:40px; line-height:1; color:#495057; margin:0 auto 30px;}


.tcb3 .contents-list2 { display:flex; flex-wrap:wrap; margin:40px 0 70px;}
	.tcb3 .contents-list2 li { width:50%; background:url(./img/tcb3-img1-2.jpg) center center no-repeat; background-size:cover; font-size:32px; font-weight:bold; color:#fff; text-shadow:0 0 5px rgba(0,0,0,1.0); border:4px #fff solid; padding:120px 0;}
	.tcb3 .contents-list2 li.jigyo2 {background:url(./img/tcb3-img2.jpg) center center no-repeat; background-size:cover;}
	.tcb3 .contents-list2 li.jigyo3 {background:url(./img/tcb3-img3-2.jpg) center center no-repeat; background-size:cover;}
	.tcb3 .contents-list2 li.jigyo4 {background:url(./img/tcb3-img4.jpg) center center no-repeat; background-size:cover;}


.aboutus-feature-list { flex-wrap:wrap; justify-content: center;}
.aboutus-feature-list li { width:22%; }
.aboutus-feature-list li .icon { background:#fff;}
.aboutus-feature-list li:first-child , .aboutus-feature-list li:last-child { margin-left:1%; margin-right:1%; }
.aboutus-feature-list li { margin:20px 1%;}


#container { margin-top:90px;}
#contents { margin-top:50px;}
.page #contents { margin-top:0;}


.pankuzu { background:#e8e8e8; font-size:14px; border-top:2px #000 solid; padding:5px 0; margin-bottom:70px;}


.archive #container, .single #container, .search #container { background:#fff; font-size:0;}
	.archive #container .archive-body, .single #container .archive-body, .search #container .archive-body { display:inline-block; background:#fff; width:860px; padding:20px; font-size:18px; vertical-align:top;}
	.archive #container .sidebar, .single #container .sidebar, .search #container .sidebar { display:inline-block; width:300px; padding:0; font-size:18px; vertical-align:top; margin-left:40px;}




.archive h1, .single h1, .search h1 { text-align:left; font-size:26px;  padding-bottom:5px;}
	.archive h1.first, .single h1.first, .search h1.first { margin:0; }

	.archive .cat-desc { margin: 20px 0; background-color: #fbfaf8; padding: 20px; border-radius: 8px; border: 1px solid #ddd; font-size:14px;}

	.archive .cat-desc p { margin:10px 0;}




.page #contents ul.sub-menu2 { list-style-type:none;}
.sub-menu2 { display:flex; justify-content: space-between; align-items: stretch;flex-wrap: wrap; margin:60px 0;}
	.sub-menu2::after { content:""; display:block; }
	.sub-menu2 li { box-shadow:0 0 3px rgba(0, 0, 0, 0.5); margin-bottom:50px; position:relative;}
	.sub-menu2 li, .sub-menu2::after { width:30%;}
		.sub-menu2 li .img img { object-fit:cover; width:100%; height:200px;}
		.sub-menu2 li .name { margin:10px 15px; padding-left:15px; border-left:6px #944d40 solid; font-weight:bold; font-size:20px;}
			.sub-menu2 li .name a { color:#000; text-decoration:none;}
		.sub-menu2 li .desc { margin:10px 15px; font-size:14px; color:#333; font-weight:bold;}
			.sub-menu2 li .link a { position:absolute; top:0; left:0; width:100%; height:100%;}
				.sub-menu2 li .link a:hover { opacity:0.3; background:#fff; transition:0.5s;}


@media screen and (max-width: 768px) {
	.sub-menu2 li, .sub-menu2::after { width:48%;}
}

@media screen and (max-width: 480px) {
	.sub-menu2 li, .sub-menu2::after { width:100%;}
}





/* category-wrap */
.category-wrap { border:1px #ccc solid; border-radius:3px; padding:20px 20px 0; margin:40px 0 0;}
	.category-wrap .category-name { font-weight:bold; margin-bottom:20px;}
	.category-wrap .category-desc { font-size:14px; }
		.category-wrap .category-desc p { margin-bottom:10px;}
	.category-wrap .category-post-list { list-style-type:disc; margin-left: 20px !important; margin:20px 0;}
		.category-wrap .category-post-list li { font-size:16px;}
	.category-wrap .open-close { text-align:center; font-size:14px; font-weight:bold; color:#555; border-top:1px #ccc solid; cursor: pointer; padding:10px 0;}

	.category-wrap .open-close:before { content:"詳細を見る +";}
	.category-wrap .open-close.clicked:before { content:"閉じる -";}

	.category-wrap .cnid:before { font-family: "Font Awesome 5 Free"; background:#15aabf; color:white; padding:10px; border-radius:50%; font-size:20px; margin-right:10px; font-weight: 900; }
	.category-wrap .cn-id8:before { content: '\f4d8'; }
	.category-wrap .cn-id9:before { content: '\f1eb'; }
	.category-wrap .cn-id10:before { content: '\f304'; }
	.category-wrap .cn-id11:before { content: '\f2db'; }
	.category-wrap .cn-id12:before { content: '\f5bf'; }
	.category-wrap .cn-id57:before { content: '\f274'; }

	.course-subimg { background:url(./img/header-bg190524-1-2.jpg) top center no-repeat; padding:50px 0 ; background-size:cover;}

	.course-subimg .text { text-align: center; text-shadow: 0 0 5px rgba(0,0,0,1.0); font-weight: 900; color: #fff; }
	.course-subimg .text p { margin:15px 0; font-size:24px;}




	.single time { color:#888; font-weight:bold; margin:10px 0; display:block;}
		.single time .kokai { margin-right:20px;}

/*	.single h2 { background:#f3f3f3; border-left:5px #735a00 solid; margin:50px -20px 40px; font-size:24px; text-align:left; padding:15px 20px 15px 20px;} 
	.single h2 { background:#fcc800; margin:50px -20px 40px; font-size:24px; text-align:left; padding:15px 20px 15px 20px; color:#595757;} 
*/

	.single h3 { margin:40px 0 15px; border-bottom: solid 3px #fcc800;}
	.single h4 { margin:10px 0 5px;padding: 0.25em 0.5em;
  background: transparent;
  border-left: solid 5px #fcc800;}

	.single .addtoany_content_bottom { margin-top:50px;}



	.single #contents .body ul { list-style-type:disc; margin-left:20px; margin:30px 40px;}
	.single #contents .body ul li { margin:10px 0;}

	.single #contents .body ol { list-style-type:decimal; margin-left:20px; margin:30px 40px;}
	.single #contents .body o lli { margin:10px 0;}


	.single .casebox { }
	.single .casebox .headline { font-size:0; background:linear-gradient(#f8f8f8, #e1e1e1); padding:20px;}
	.single .casebox .headline .img { font-size:18px; display:inline-block; vertical-align:top; background:#fff; width:35%; text-align:center; padding:20px;}
	.single .casebox .headline .title { font-size:24px; font-weight:bold; display:inline-block; vertical-align:top; width:60%; margin-left:5%; }
		.single .casebox .headline .title .title1 { font-size:16px; font-weight:bold; border:1px #333 solid; padding:5px 30px; border-radius:30px 30px 30px 30px; margin-bottom:10px; display:inline-block;}
		.single .casebox .headline .title .title2 { font-size:24px; font-weight:bold; }
		.single .casebox .headline .title time { font-size:16px;}





	.sidebar h4 { background:#1cb1ea; color:#fff; font-weight:bold; font-size:20px; text-align:center !important; padding:10px 0; }
	.sidebar .sidebarbox { background:#fff; padding:20px 10px; font-size:16px; margin-bottom:60px;}
	#contents .sidebar .sidebarbox ul { list-style-type:disc; margin-left:20px;}
		#contents .sidebar .sidebarbox ul li { list-style-type:disc; }





.yarpp-related {}
	.yarpp-related h3 { }
	.yarpp-related ol { margin:10px 0 20px; border:1px #ccc solid;}
		.yarpp-related ol li { border-bottom:1px #ccc solid; padding:10px; }
			.yarpp-related ol li a { font-weight:500 !important;}
			.yarpp-related ol li:last-child { border-bottom:0;}
			.yarpp-related ol li abbr { display:none !important;}


.yuraibox { max-width:680px; margin:0 auto; text-align:left;}
.logoyurai { display:block; background:#fff; padding:20px; max-width:160px; margin:0 auto;}



.archive .wp-pagenavi {
	clear: both;
	text-align:center;
	margin:40px 0;

}
.archive .wp-pagenavi a, .archive .wp-pagenavi span {
	color: #4DD0D5;
	background-color: #FFFFFF;
	padding: 8px 15px;
	margin: 0 2px;
	white-space: nowrap;
	-webkit-transition: 0.2s ease-in-out;
	-moz-transition: 0.2s ease-in-out;
	-o-transition: 0.2s ease-in-out;
	transition: 0.2s ease-in-out;
	text-align: center;
	text-decoration: none;
	border: thin dotted #4DD0D5;
}
.archive .wp-pagenavi a:hover{
	color: #fff;
	background-color: #4DD0D5;
    }
.archive .wp-pagenavi span.current{
	color: #fff;
	background-color: #4DD0D5;
    }







/* page */

#mainsubimg { background:url(./img/mainsubimg-bg2.jpg) center center no-repeat; background-size:cover; }
	#mainsubimg h1 { padding:100px 0; text-align:center; color:#fff; text-shadow:0 0 5px rgba(0, 0 , 0, 1.0); /*font-family:"游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;*/}
@media screen and (max-width:480px) {
	#mainsubimg h1 { padding:50px 0;}
}










/* company */

.company-table { width:100%;}
	.company-table th, .company-table td { border:1px #ccc solid; padding:15px 20px; vertical-align:middle;}
	.company-table th { background:#efefef; width:25%;}
	.company-table td { background:#fff;}


	/*
.gaiyo-table { width:auto;}
	.gaiyo-table td { border:1px #ccc solid; padding:15px 20px; vertical-align:middle;}
	.gaiyo-table td:nth-child(odd) { background:#efefef; width:25%;}
	.gaiyo-table td:nth-child(even) { background:#fff; text-align:left;}
*/

.shikaku-table { width:auto;}
	.shikaku-table td { border:1px #ccc solid; padding:15px 20px; vertical-align:middle;}
	.shikaku-table td:nth-child(odd) { background:#efefef; width:30%;}
	.shikaku-table td:nth-child(even) { background:#fff; width:15% }

figure.wp-block-table { margin:20px 0 40px !important;}
figure.wp-block-image { margin:20px 0 !important;}



.os-orange { background:#fcc700;}

.fb1-1, .fb1-2 { text-align:center; color:#fff; font-weight:bold; font-size:36px;}
	.us-section2 h2 { display:inline-block; vertical-align:bottom; font-size:32px;}
	.us-section2 h2 img { margin-right:10px;}
	.us-section2 { text-align:center; font-weight:bold;}
	.us-section2 .strong { color:#fcc700;}
	.us-section2 .desc { font-size:22px; margin-top:30px;}
		.us-section2 .desc span { background: #ffc50c;}
	.us-section2 .large { font-size:28px; margin-top:30px; margin-bottom:30px;}

	.us-section4 h2 { font-size:34px;}
		.us-section4 .img { width:400px; float:left; margin-right:30px;}

.company-section { text-align:center; font-weight:bold;}
.company-section .p1 { color:#fff; font-size:34px; margin-bottom:30px;}
.company-section .p2 { color:#595757; font-size:18px;}
.company-section h3 { margin:30px 0 40px;}


.slogan-box img { border:10px #fff solid !important; box-shadow:3px 3px 5px 5px rgba(0, 0, 0, 0.3); }



.single #contents ul, .page #contents ul { list-style-type: disc; margin: 20px;}



#contents .sidebar .sidebarbox ul { margin:0 0 0 20px;}

/*
#contents a[target="_blank"]:before { font-family:"Font Awesome 5 Free"; content:"\f35d"; font-weight:900; margin-right:3px; font-size:14px;}
*/

	#contents .download-table a[target="_blank"]:before { content:none;}
#contents figure a[target="_blank"]:before { content:none;}

#contents .addtoany_share_save_container a[target="_blank"]:before { content:none;}







/* staff */
.page #contents ul.staff-ul { list-style-type:none;}
	.staff-ul li { padding:30px 0; background:#fff; padding:40px; margin-bottom:20px;}
	.staff-ul li .img { display:inline-block; width:40%; vertical-align:top;}
	.staff-ul li .desc { display:inline-block; width:58%; padding-left:30px; vertical-align:top; font-weight:bold;}
		.staff-ul li .desc .name { font-size:24px;}
		.staff-ul li .desc .from { font-size:18px;}
		.staff-ul li .desc .shikaku  { font-size:16px; margin-top:15px;}
		.staff-ul li .desc .shikaku .p1 { font-size:20px; margin-bottom:5px;}
		.staff-ul li .desc .message  { font-size:16px; background:#fffee8; margin-top:15px; padding:15px; }
		.staff-ul li .desc .message .p1 { font-size:20px; margin-bottom:5px;}

		.staff-ul li .intro { font-size:16px; background:#f1f1ff; margin-top:15px; padding:15px; border:2px #d7d7e9 dashed;}
		.staff-ul li .intro .p1 { font-size:20px; margin-bottom:5px; font-weight:bold;}


@media screen and (max-width: 480px) {
	.staff-ul li .img, .staff-ul li .desc { display:block; width:100%; padding:10px 0;}
	.staff-ul li { padding:15px;}
}







/* openning */

#contents .list1 { margin:20px auto; padding: 0; list-style-type:none !important;}
#contents .list1 li { color:#923200; font-size:20px; }
#contents .list1 li:before { font-family: "Font Awesome 5 Free"; content:"\f058"; margin-right:20px; font-weight:900; font-size:24px;}

#contents .list1 li { padding-left:3em;}
#contents .list1 li:before { margin-left:-1.8em;}


@media screen and (max-width:768px) {
	#contents .list1 li { font-size:18px; }
}

@media screen and (max-width:480px) {
	#contents .list1 li { font-size:16px; }
}



.outside3 { background:#f05259; margin-bottom:50px; padding:15px 0; }
	.outside3 h2 { color:#fff; text-align:center; margin-bottom:0; margin-top:0;}
		.outside3 h2:before { content:none; }

.highlight1 { background-color:#ffdadc;}




/* footer */


.f-contact { }
.f-contact-wrap { margin:60px 0 80px; font-weight:normal;}
	.f-contact .desc { display:inline-block; width:30%; padding-left:10px; }	.f-contact .desc p { margin:0 !important ;}

		.f-contact .desc .fc1 { margin-bottom:0;}
		.f-contact .desc .fc2 { margin-bottom:0; font-size:40px; line-height:100%; color:#000;}
			.f-contact .desc .fc2 .fc2-1 { font-size:40px;}
	.f-contact .mail-banner { display:inline-block; width:38%; text-align:center; vertical-align:top;}
		.f-contact .mail-banner a { display:block; padding:20px; margin-right:60px; margin-left:60px; font-size:24px; color:#fff; text-decoration:none; background:#1cb1ea;}
		.f-contact .mail-banner a i { font-size:50px; vertical-align:middle; margin-right:20px;}
		.f-contact .mail-banner a span { display:inline-block; vertical-align:middle;}
		.f-contact .mail-banner a:hover { background:#078bbd; color:#fff; transition:0.5s; }


@media screen and (max-width: 768px) {
	.f-contact .mail-banner a { font-size:20px; }

	.f-contact .desc { padding-left:0; margin-bottom:20px;}
		.f-contact .desc .fc2 { font-size:38px; }
		.f-contact .mail-banner a { margin:30px auto; width:70%; }
	.f-contact .desc, .f-contact .mail-banner {width:100%;border-right:none;display: block;padding-right:0;text-align:center;}
}


@media screen and (max-width:480px) {
	.f-contact .btn-div { flex-wrap:wrap; }
	.f-contact .btn-div .btn-footer { width:100%; margin:10px 0;}

	.f-contact .mail-banner a { width:80%; font-size:20px;}
	.f-contact .mail-banner a i { margin-right:0; margin-bottom:10px; display:block;}


}










#footer { /* background:url(./img/footer-bg.jpg) bottom center no-repeat; background-size:cover;*/ background:#fff; text-align:center; color:#000; }

#footer .inner { }

.footer-info {  background-color: #f9f9f9;  padding:50px 0;}

	#footer .company { margin:0 auto 80px;}
		#footer .company td, #footer .company th { text-align:left; padding:5px 15px;}

	#footer .f-nav a { color:#000; text-decoration:none;}
	#footer .f-nav a:hover { text-decoration:underline;}

	#footer .f-logo { margin-bottom:20px;}
		#footer .f-logo img { max-width:300px;}
	#footer .f-sns { margin-top:10px;}
	#footer .copyright { background:#1cb1ea; color:#fff; padding-bottom:40px; padding-top:40px;}


	#footer .f-box { display:inline-block; width:33%; text-align:left; vertical-align:top;}
	#footer .f-nav { width:60%; margin-right:20px;}
		#footer .f-nav li { display:inline-block; width:30%; margin-bottom:20px; vertical-align:top;}
		#footer .f-nav li:before { content:'■';}

			#footer .f-nav li ul.sub-menu { }
			#footer .f-nav li ul.sub-menu li { display:block; width:100%; margin-bottom:0; font-size:16px;}
			#footer .f-nav li ul.sub-menu li:before { content:'－';}


	#footer .f-fb {width:460px; margin-right:60px; text-align:center;}
	#footer .f-company { width:37%; font-size:16px;}


	#footer .f-company { }
	#footer .f-company .f-info { margin-bottom:0;}
	#footer .f-company .f-sns a { color:#000; text-decoration:none;}
	#footer .f-company .f-sns i { margin-right:15px; font-size:22px;}
		#footer .f-company .f-sns i.fa-youtube { margin-right:2px;}



#contents { margin-bottom:100px;}
/*#contents .date { text-align:right; margin-bottom:40px;}*/






.contactform { width:600px; margin:0 auto 80px; background:#f7f7f7; padding: 40px 80px;}
	.contactform input[type="text"], .contactform input[type="email"], .contactform input[type="tel"], .contactform textarea { width:100%; font-family:"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","游ゴシック体", "Yu Gothic", YuGothic, "メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",Arial,Osaka,Sans-Serif;}
	.contactform .hissu { font-size:12px; color:red;}
	.contactform .norobots { font-size:14px; color:red; margin-bottom:20px;}
	.contactform .norobots span.wpcf7-list-item { margin-left:0; }











@media screen and (min-width:481px) {

.sp-only { display:none; }
/*.menu-item-52, .menu-item-54 { display:none;}*/

} /* */

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

.pc-only { display:none; }
/*.menu-item-52, .menu-item-54 { display:none;}*/

} /* */







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

.inner { width:94% !important; margin:0 auto;}

#menu-global .sub-menu { background:#000;}

.archive #container .archive-body, .single #container .archive-body, .search #container .archive-body { width:70%;}
.archive #container .sidebar, .single #container .sidebar, .search #container .sidebar { width:25%;}

} /* */















@media screen and (min-width: 480px) and (max-width: 767px) { 


} /* */







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

	.news-list li .title { width:100%; display:block;}

	.contact-banner { display:none;}
	#header .ci .text { font-size:40px;}
	.feature-box { padding:15px; font-size:30px;}

	h2 { font-size:28px; margin:40px 0 30px;}
	h2 span.sub { font-size:24px;}
	.page h3 { font-size:21px; margin:30px 0 30px;}


	.contactform { width:100%; padding: 20px;}

	.company td, .company th { display:block; width:100%;}
	.company th { /*border-bottom:1px #b2b2b2 dotted;*/ background:#797979;}

	.i-flex2 li { width:40%; margin-left:auto !important; margin-right:auto !important;}

	.h-logo { max-width:70%; z-index:100;}
	.h-logo img { max-height:40px;}

#container { margin-top:70px;}

.bxslider-org li { height:500px;}
.bxslider-org .ci { padding:100px 0 0;}
.ci .text .t1 { font-size:30px;}
.ci .text .t2 { font-size:30px;}

.news-list { width:96%;}

.bx-wrapper .bx-controls-direction a { display:none;}

.topics-list li { width:48%;}


.tcb3 .img { width:100%;}
	.tcb3 .img img { object-fit:cover; width:100%; height:200px;}

.tcb3 .desc { width:100%; margin-top:20px;}

.tcb3 .desc .p1 { text-align:center; font-size:24px;}
.tcb3 .desc .p2 { text-align:center;}

.button5 { font-size:20px;}
#footer .f-box { width:100%;}
.menu-footer-container { display:none;}

#footer { padding-top:30px;}
#footer .f-company { text-align:center;}
#footer .f-fb { margin-right:0;}
#footer .copyright { padding-top:40px;}


.wp-block-image .alignright { float:none; margin:10px auto;}


ul.flow1 { width:100%;}
ul.flow1 li { padding:20px;}
ul.flow1 li .step { padding:20px; width:100px; padding:15px;}
ul.flow1 li .body { width:420px; margin-left:20px; font-size:16px;}

ul.flow1 li:before { left:60px;}


.archive #container .archive-body, .single #container .archive-body, .search #container .archive-body { width:100%;}
.archive #container .sidebar, .single #container .sidebar, .search #container .sidebar { width:100%; margin-left: 0; margin-top:60px;}
.sidebar .sidebarbox { margin-bottom:30px;}

.single .authorbox { padding:20px; text-align:center;}
.single .authorbox .img { width:50%;}
.single .authorbox .desc { margin-left:0; width:100%;}

.staff-out-detail .info { background-color: rgba(255,255,255,0.8);}

.fb1-1, .fb1-2 { font-size:22px;}
.us-section2 .large { font-size:22px;}
.us-section2 .desc { font-size:20px;}
.us-section4 h2 { font-size:24px;}

} /* */








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

body { font-size:16px;}

.h-logo { max-width:230px; }

	.news-list, .blog-list { padding:10px;}
	.news-list li, .blog-list li { background:#fff; padding:10px; margin-bottom:5px; }
		.news-list li .cat { margin-right:15px; display:none;}
		.tcb-news .news-list li .date { margin-right:0;}

	#header .ci .text { font-size:26px;}
	.feature-box { padding:10px; font-size:22px;}

	.page #container h2 { font-size:24px;}
	h2 span.sub { font-size:20px;}
	.tcb4 .desc { font-size:18px;}
	.tcb4 .large { font-size:22px;}

	.flex { display:block; }
	.flex li { margin-bottom:40px;}
	.flex li { width:auto;}

	.i-flex2 li { width:auto;}


.company-table td, .company-table th {
    display: block;
    width: 100%;
    border: 1px #ccc solid;
    padding: 15px;
    font-size: 14px;
}

.product-suryo td, .product-suryo th { display:table-cell; width:auto; padding:10px; }

.topics-list li { width:80%;}

ul.flow1 li { text-align:center;}
ul.flow1 li .body { width:100%; margin-left:0; }
ul.flow1 li .step { margin:15px auto;}
ul.flow1 li:before {left:47%;}

.archive .topics-list li, .search .topics-list li { width:96%; border:1px #ddd solid;}

.staff-out-detail .info { background-size:30%;}
.sod-staff-img { background:none !important;}

.wp-block-table td { font-size:14px; padding:10px;}

.page h3:after {content:none;}

} /* */








@media print, screen and (min-width: 769px) {
	.menu-global-container .sub-menu a, .menu-global-en-container .sub-menu a { background: #1cb1ea !important; color:#fff !important;}
}
.mean-container .mean-nav ul { background: #1cb1ea !important; }
@media screen and (max-width: 1200px) {
    #menu-global .sub-menu {
        background: #1cb1ea !important;
    }
}
















.services {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;        /* 1 行に収まらなければ折り返す */
  padding: 2rem 1rem;
  justify-content: center;
}
.card {
  flex: 1 1 300px;         /* 最低幅 300px、余れば拡張 */
  max-width: 380px;        /* 伸び過ぎ防止 */
  background: #eef7f2;
  text-align: center;
  padding: 2rem 1rem;
  border-radius: 4px;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.card .name   { margin: 0 0 1.6rem; font-size: 1.2rem; color: #0080b9; font-weight:bold;}
.card img  { width: 120px; height: 120px; margin-bottom: 1.2rem; }
.card p    { margin: 0 0 1.6rem; font-size: 1rem; line-height: 1.6; }
.card .btn {
  display: inline-block;
  padding: .8rem 2.5rem;
  background: #19a9e5;
  color: #fff; text-decoration: none;
  border-radius: 4px;
  font-size: .9rem;
  transition: opacity .2s;
}
.card .btn:hover { opacity: .8; }

/* ===== スマホ (1 列) ===== */
@media (max-width: 600px) {
  .services {
    flex-direction: column;  /* 強制 1 列 */
    gap: 1.5rem;
    padding: 1.5rem .5rem;
  }
  .card {
    flex: 1 1 auto;
    max-width: 100%;
  }
}


.page .card h3 { margin: 0 0 1.6rem !important; font-size: 1.2rem!important; color: #0080b9!important; background:none!important; border:none!important;}
.page .card h3:after, .page .card h3:before { content:none!important;}














        /* テーブル全体のスタイル */
        .gaiyo-table {
            width: 100%;
            margin: 2.5rem auto; /* テーブルの上下の余白と中央寄せ */
            border-collapse: collapse; /* セルのボーダーを結合 */
            border-radius: 12px; /* テーブル全体の角を丸く */
            overflow: hidden; /* 角丸を適用するためにはみ出しを隠す */
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); /* 柔らかな影で浮遊感を出す */
            background-color: #ffffff !important; /* 背景色を確実に白に */
        }

        /* テーブル内の<tr>要素 */
        .gaiyo-table tr {
            transition: background-color 0.2s ease; /* ホバーエフェクト用 (今回はなしだが、残しておくことで柔軟性を持たせる) */
        }

        /* 奇数行の背景色（ゼブラストライプ） */
        .gaiyo-table tr:nth-child(odd) {
            background-color: #fdfdfd !important; /* ごくわずかに明るい背景 */
        }

        /* 偶数行の背景色 */
        .gaiyo-table tr:nth-child(even) {
            background-color: #f5faff !important; /* キーカラーを意識したごく淡い青 */
        }

        /* テーブル内の<td>要素 */
        .gaiyo-table td {
            padding: 1.2rem 1.8rem; /* 上下左右に十分なパディング */
            border: 1px solid #e5e5e5 !important; /* ごく淡い灰色の下線 */
            vertical-align: top; /* セル内のコンテンツを上揃え */
            font-size: 1rem;
            line-height: 1.7; /* 行の高さを調整して読みやすく */
            color: #333;
			text-align:left !important;
        }

        /* 最後の行の下線は削除 */
        .gaiyo-table tr:last-child td {
            border-bottom: none;
        }

        /* 最初の列（項目名）のスタイル */
        .gaiyo-table td:first-child {
            width: 30%; /* 項目名の列の幅を調整 */
            font-weight: 600; /* 太字 */
            background-color: rgba(28, 177, 233, 0.08); /* キーカラーの淡い背景 */
            color: #00567e; /* キーカラーより少し濃い青系の文字色 */
            position: relative; /* 線のための基準 */
        }

        /* 最初の列と二番目の列の間の縦線 */
        .gaiyo-table td:first-child::after {
            content: '';
            position: absolute;
            right: 0;
            top: 10%; /* 縦線の開始位置 */
            bottom: 10%; /* 縦線の終了位置 */
            width: 1px;
            background-color: rgba(28, 177, 233, 0.3); /* キーカラーの淡い縦線 */
            border-radius: 0.5px;
        }

        /* HTML内の '■' のスタイル - HTMLに<span>タグを追加することを前提 */
        .gaiyo-table .bullet-point {
            color: #1cb1e9;
            font-weight: bold; /* '■'自体を太字に */
        }
        
        /* 複数行コンテンツのリスト表示調整 */
        .gaiyo-table td:last-child {
            line-height: 1.7; /* テキスト全体の行高 */
        }
        .gaiyo-table td:last-child > br {
            line-height: 0; /* brタグによる余分なスペースを抑制 */
        }

        /* ==========================================================
         * レスポンシブデザインの追加 (max-width: 767px 以下の画面)
         * - テーブルをブロック要素として扱い、各行をカードのように表示
         * - 項目名と内容を縦にスタック
         * ========================================================== */
        @media (max-width: 767px) {
            .gaiyo-table {
                display: block; /* テーブル全体をブロック要素に */
                border-radius: 0; /* 小画面では角丸をリセット（必要に応じて残してもOK） */
                box-shadow: none; /* 小画面では影をリセット（必要に応じて残してもOK） */
                background-color: transparent; /* 背景色をリセットして、行ごとの背景が際立つように */
            }

            .gaiyo-table thead,
            .gaiyo-table tbody,
            .gaiyo-table th,
            .gaiyo-table td,
            .gaiyo-table tr {
                display: block; /* 全てのテーブル要素をブロックに */
            }

            .gaiyo-table tr {
                margin-bottom: 1.5rem; /* 各行（カード）の下に余白 */
                border: 1px solid #e0e0e0; /* 各カードのボーダー */
                border-radius: 8px; /* 各カードの角を丸く */
                overflow: hidden; /* 角丸のため */
                box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); /* 各カードに軽い影 */
                background-color: #ffffff; /* 各カードの背景色 */
            }

            /* 奇数行の背景色（モバイルでのゼブラストライプ） */
            .gaiyo-table tr:nth-child(odd) {
                background-color: #ffffff; 
            }

            /* 偶数行の背景色（モバイルでのゼブラストライプ） */
            .gaiyo-table tr:nth-child(even) {
                background-color: #f8fbff; /* 少しだけ色を変える */
            }

            .gaiyo-table td {
                border-bottom: none; /* 各セル間の下線を削除 */
                padding: 0.8rem 1.2rem; /* パディングを調整 */
                width: auto !important; /* 幅指定をリセット */
            }

            /* 最初の列（項目名）のモバイル用スタイル */
            .gaiyo-table td:first-child {
                background-color: rgba(28, 177, 233, 0.12); /* キーカラーの背景を少し濃く */
                color: #004a6d; /* 文字色をさらに濃く */
                font-size: 1.1rem; /* 項目名を少し大きく */
                font-weight: 700; /* さらに太く */
                padding-bottom: 0.5rem; /* 下のコンテンツとの余白 */
                border-bottom: 1px solid rgba(28, 177, 233, 0.2); /* 下に区切り線 */
                position: relative; /* 疑似要素の基準 */
            }
            
            /* 項目名の下の区切り線を少し強調 */
            .gaiyo-table td:first-child::after {
                content: '';
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
                bottom: 0;
                width: 40px; /* 短い線 */
                height: 2px;
                background-color: #1cb1e9; /* キーカラー */
                border-radius: 1px;
                box-shadow: 0 1px 5px rgba(28, 177, 233, 0.3);
            }

            /* 最初の列と二番目の列の間の縦線をモバイルでは削除 */
            .gaiyo-table td:first-child::after {
                right: auto; /* 右端からの指定をリセット */
                top: auto;
                bottom: 0; /* 下に配置 */
                left: 50%; /* 中央寄せ */
                transform: translateX(-50%);
                width: 40px; /* 短い線 */
                height: 2px;
                background-color: #1cb1e9;
                border-radius: 1px;
                box-shadow: 0 1px 5px rgba(28, 177, 233, 0.3);
            }

            /* 最後の行の最後のtdでも下線を削除 */
            .gaiyo-table tr:last-child td:last-child {
                border-bottom: none;
            }
        }















.wp-block-image .aligncenter>figcaption, .wp-block-image .alignleft>figcaption, .wp-block-image .alignright>figcaption, .wp-block-image.aligncenter>figcaption, .wp-block-image.alignleft>figcaption, .wp-block-image.alignright>figcaption {
	display:block !important;
}




.outside-b { background:#000 !important; color:#fff !important;}










        .section-title {
            text-align: center;
            font-size: 2.5rem;
            font-weight: 700;
            color: #2c3e50;
            margin-bottom: 60px;
            position: relative;
            padding-bottom: 15px;
        }
        .section-title::after {
            content: '';
            position: absolute;
            left: 50%;
            bottom: 0;
            transform: translateX(-50%);
            width: 80px;
            height: 4px;
            background-color: #4a90e2; /* アクセントカラー */
            border-radius: 2px;
        }
        .staff-grid {
            display: grid;
            grid-template-columns: 1fr; /* 常に1列 */
            gap: 50px; /* カード間のスペースを広げる */
        }
        .staff-card {
            background-color: #ffffff;
            border-radius: 15px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
            overflow: hidden;
            display: flex; /* Flexboxに変更 */
            flex-direction: row; /* デフォルトで画像を左に */
            align-items: flex-start; /* 上部揃え */
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        /* 偶数番目のカードは画像を右に配置 */
        .staff-card:nth-child(even) {
            flex-direction: row-reverse;
        }
        .staff-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
        }
        .staff-image-wrapper {
            flex-shrink: 0; /* 画像が縮まないようにする */
            width: 350px; /* 画像の固定幅 */
            height: 233px; /* 画像の固定高さ (4:3より少し調整) */
            position: relative;
            overflow: hidden;
            background-color: #e0f2f7; /* Placeholder background */
            border-radius: 15px 0 0 15px; /* カードの角丸に合わせる */
        }
        .staff-card:nth-child(even) .staff-image-wrapper {
            border-radius: 0 15px 15px 0; /* 偶数番目は右側を丸く */
        }

        .staff-image {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover; /* 画像をカバーする */
        }
        .staff-content {
            padding: 25px;
            flex-grow: 1; /* 残りのスペースを埋める */
            text-align: left; /* テキストは左揃え */
        }
        .staff-name {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.8rem;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 15px;
            text-align: center; /* 名前の部分は中央寄せ */
        }
        .staff-details {
            margin-top: 15px;
            font-size: 0.95rem;
        }
        .staff-details dl {
            display: grid;
            grid-template-columns: 100px 1fr; /* ラベルと内容 */
            gap: 10px 15px;
            margin: 0;
        }
        .staff-details dt {
            font-weight: 600;
            color: #555;
            white-space: nowrap;
        }
        .staff-details dd {
            margin-left: 0;
            color: #666;
        }
        .staff-details dd:last-of-type {
            margin-bottom: 0;
        }
        .staff-details .full-width {
            grid-column: span 2; /* 2列全体に広がる */
        }
        .page h3.staff-name { margin-top:0;}
        .page h3.staff-name:after { content:none;}

        /* レスポンシブデザイン */
        @media (max-width: 768px) {
            .container {
                margin: 30px auto;
                padding: 0 15px;
            }
            .section-title {
                font-size: 2rem;
                margin-bottom: 40px;
            }
            .staff-grid {
                gap: 30px;
            }
            .staff-card {
                flex-direction: column; /* スマホでは画像を上に、テキストを下にスタック */
                align-items: center; /* 中央揃え */
                padding-bottom: 20px;
                text-align: center; /* テキストも中央揃え */
            }
            .staff-card:nth-child(even) {
                flex-direction: column; /* 偶数番目も同じくスタック */
            }
            .staff-image-wrapper {
                width: 100%; /* スマホでは画像幅を100%に */
                height: 250px; /* スマホでの画像高さ */
                border-radius: 15px 15px 0 0; /* 上部を丸く */
                padding-top: 0; /* fixed height */
            }
            .staff-details {
                text-align: left; /* スマホでも詳細は左揃え */
                width: 100%; /* 詳細ブロックの幅を調整 */
                padding: 0 15px; /* 左右のパディングを調整 */
            }
            .staff-name {
                font-size: 1.2rem;
                margin-bottom: 10px;
            }
            .staff-details dl {
                grid-template-columns: 1fr; /* スマホではスタック形式 */
            }
            .staff-details dt {
                margin-bottom: 5px;
            }
            .staff-details dd {
                margin-bottom: 10px;
            }
            .staff-details .full-width {
                grid-column: span 1;
            }
        }












        .section-title {
            text-align: center;
            font-size: 2.5rem;
            font-weight: 700;
            color: #2c3e50;
            margin-bottom: 60px;
            position: relative;
            padding-bottom: 15px;
        }
        .section-title::after {
            content: '';
            position: absolute;
            left: 50%;
            bottom: 0;
            transform: translateX(-50%);
            width: 80px;
            height: 4px;
            background-color: #4a90e2; /* アクセントカラー */
            border-radius: 2px;
        }

        .flow-section {
            display: flex;
            flex-direction: column;
            gap: 40px; /* 各ステップ間のスペース */
        }

        .flow-step-card {
            background-color: #ffffff;
            border-radius: 15px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
            padding: 30px;
            display: flex;
            align-items: flex-start; /* 上揃え */
            gap: 30px; /* 画像とテキスト間のスペース */
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .flow-step-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
        }

        /* 偶数番目のカードは画像を右に配置 
        .flow-step-card:nth-child(even) {
            flex-direction: row-reverse;
        }
            */

        .step-number-wrapper {
            flex-shrink: 0; /* 縮まないように */
            width: 80px;
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding-top: 10px; /* 上部に少し余白 */
        }

        .step-number {
            font-size: 2.5rem;
            font-weight: 700;
            color: #4a90e2; /* アクセントカラー */
            margin-bottom: 5px;
            line-height: 1; /* 行の高さを詰める */
        }
        .step-label {
            font-size: 0.9rem;
            font-weight: 500;
            color: #666;
            white-space: nowrap;
        }

        .step-content {
            flex-grow: 1;
        }

        .step-image-wrapper {
            flex-shrink: 0;
            width: 350px; /* 画像の固定幅 */
            height: auto; /* 4:3比率 (200 * 0.75) */
            border-radius: 10px;
            overflow: hidden;
            background-color: #e0f2f7; /* Placeholder background */
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); /* 画像にも影 */
        }
        .step-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .step-title {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.5rem;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 15px;
            padding-top: 5px; /* 上揃えの微調整 */
        }
        .step-description {
            font-size: 1rem;
            color: #555;
            margin-bottom: 0;
        }

        .note-section {
            background-color: #e6f7ff; /* 淡い水色の背景 */
            border-radius: 15px;
            padding: 30px;
            margin-top: 60px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
            border-left: 5px solid #4a90e2; /* 左側にアクセントライン */
        }
        .note-section h3 {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.4rem;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 15px;
        }
        .note-section p {
            font-size: 0.95rem;
            color: #555;
            margin-bottom: 10px;
            line-height: 1.7;
        }
        .note-section p:last-child {
            margin-bottom: 0;
        }

        .page .step-content h4, .page .flow-item h4 { margin-top:0;}

        /* レスポンシブデザイン */
        @media (max-width: 768px) {
            .container {
                margin: 30px auto;
                padding: 0 15px;
            }
            .section-title {
                font-size: 2rem;
                margin-bottom: 40px;
            }
            .flow-step-card {
                flex-direction: column; /* スマホでは縦並び */
                align-items: center; /* 中央揃え */
                padding: 20px;
                gap: 20px;
                text-align: center; /* テキスト中央揃え */
            }
            .flow-step-card:nth-child(even) {
                flex-direction: column; /* 偶数番目も同じく縦並び */
            }
            .step-number-wrapper {
                width: auto; /* 幅を自動調整 */
                padding-top: 0;
                order: -1; /* ステップ番号を一番上に */
            }
            .step-number {
                font-size: 2rem;
            }
            .step-label {
                /*display: none;*/ /* スマホでは「STEP」ラベルは非表示 */

            }
            .step-image-wrapper {
                width: 100%; /* スマホでは画像幅を100%に */
                height: auto; /* スマホでの画像高さ */
                border-radius: 10px; /* スマホでも角丸 */
            }
            .step-title {
                font-size: 1.3rem;
                text-align: center; /* スマホでもタイトル中央揃え */
            }
            .step-description {
                font-size: 0.9rem;
                text-align: left; /* スマホでも説明は左揃えに戻す */
                width: 100%; /* 幅を調整 */
            }
            .note-section {
                padding: 20px;
                margin-top: 40px;
            }
            .note-section h3 {
                font-size: 1.2rem;
            }
            .note-section p {
                font-size: 0.85rem;
            }
        }













                /* フロー全体のセクション */
        .process-flow { /* クラス名を変更しました */
            display: flex;
            flex-direction: column;
            gap: 20px; /* 各フローアイテム間のスペース */
            align-items: center; /* 中央揃え */
        }

        /* 各フローアイテム（ステップ）のカード */
        .flow-item {
            background-color: #ffffff;
            border-radius: 12px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
            padding: 25px 30px;
            width: 100%;
            max-width: 700px; /* カードの最大幅 */
            display: flex;
            flex-direction: column; /* 常に縦並び */
            align-items: center; /* 中央揃え */
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .flow-item:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
        }

        .flow-item-content {
            flex-grow: 1;
            width: 100%; /* コンテンツ幅を最大に */
        }

        .flow-item-title {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.4rem;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 10px;
            text-align: center;
        }
        .flow-item-description {
            font-size: 0.95rem;
            color: #555;
            text-align: center;
            margin-bottom: 0;
        }

        /* フローアイテム内の画像スタイル */
        .flow-item-inline-image {
            max-width: 300px; /* 画像の最大幅 */
            height: auto; /* アスペクト比を維持 */
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
            margin: 15px auto; /* 中央配置と垂直方向の余白 */
            display: block; /* margin: auto を機能させるため */
        }

        /* フローアイテム内の追加説明テキストスタイル */
        .flow-item-inline-description {
            font-size: 0.9rem;
            color: #666;
            margin-top: 10px;
            text-align: center;
        }

        /* CSSによる矢印のスタイル */
        .flow-arrow {
            width: 2px; /* 線の太さ */
            height: 30px; /* 矢印の長さ */
            background-color: #4a90e2; /* 矢印の色 */
            position: relative;
            margin: 0 auto; /* 中央に配置 */
        }
        .flow-arrow::after {
            content: '';
            position: absolute;
            bottom: -5px; /* 矢印の位置 */
            left: 50%;
            transform: translateX(-50%) rotate(45deg);
            width: 10px; /* 矢印の幅 */
            height: 10px; /* 矢印の高さ */
            border-right: 2px solid #4a90e2;
            border-bottom: 2px solid #4a90e2;
        }

        /* 説明・補足セクション */
        .supplementary-content {
            display: flex;
            flex-direction: column;
            gap: 30px;
            margin-top: 60px;
        }
        .supplementary-block {
            background-color: #ffffff;
            border-radius: 12px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
            padding: 30px;
            display: flex;
            align-items: flex-start;
            gap: 25px;
        }
        .supplementary-block.reverse {
            flex-direction: row-reverse; /* 画像を右に配置 */
        }

        .supplementary-image-wrapper {
            flex-shrink: 0;
            width: 250px; /* 画像の固定幅 */
            height: 187.5px; /* 4:3比率 (250 * 0.75) */
            border-radius: 10px;
            overflow: hidden;
            background-color: #e0f2f7;
            box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2);
        }
        .supplementary-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .supplementary-text {
            flex-grow: 1;
        }
        .supplementary-title {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.3rem;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 10px;
            margin-top:0 !important;
        }
        .supplementary-description {
            font-size: 0.95rem;
            color: #555;
            margin-bottom: 0;
        }

        .product-list {
            margin-top: 20px;
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }
        .product-item {
            background-color: #e6f7ff;
            border: 1px solid #b3e0ff;
            border-radius: 8px;
            padding: 8px 15px;
            font-size: 0.9rem;
            color: #2c3e50;
            white-space: nowrap;
        }

        /* レスポンシブデザイン */
        @media (max-width: 768px) {
            .container {
                margin: 30px auto;
                padding: 0 15px;
            }
            .section-title {
                font-size: 2rem;
                margin-bottom: 40px;
            }
            .flow-item {
                padding: 20px;
            }
            .flow-item-title {
                font-size: 1.2rem;
            }
            .flow-item-description {
                font-size: 0.9rem;
            }
            .flow-item-inline-image {
                max-width: 80%; /* スマホで画像を大きく表示 */
                margin: 10px auto;
            }
            .flow-item-inline-description {
                font-size: 0.85rem;
            }
            .flow-arrow {
                height: 25px; /* スマホでの矢印の長さ */
            }
            .supplementary-block {
                flex-direction: column; /* スマホでは縦並び */
                align-items: center; /* 中央揃え */
                text-align: center;
                padding: 20px;
            }
            .supplementary-block.reverse {
                flex-direction: column; /* スマホでは同じく縦並び */
            }
            .supplementary-image-wrapper {
                width: 100%; /* スマホでは画像幅を100%に */
                height: 200px; /* スマホでの画像高さ */
            }
            .supplementary-title {
                font-size: 1.2rem;
            }
            .supplementary-description {
                font-size: 0.9rem;
            }
            .product-list {
                justify-content: center; /* スマホで中央寄せ */
            }
        }










        /* サービス内容リスト */
        .service-list {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 25px;
            margin-bottom: 60px;
        }
        .service-item {
            background-color: #ffffff;
            border-radius: 12px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
            padding: 25px;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .service-item:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
        }
        /* h4から変更されたservice-item-titleのスタイル */
        .service-item-title {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.2rem;
            font-weight: 600;
            color: #4a90e2; /* アクセントカラー */
            margin-bottom: 10px;
            border-bottom: 2px solid #e0f2f7; /* タイトル下線 */
            padding-bottom: 8px;
        }
        .service-item p {
            font-size: 0.95rem;
            color: #555;
            margin-bottom: 0;
        }

        /* 料金例セクション */
        .price-section {
            background-color: #e6f7ff; /* 淡い水色の背景 */
            border-radius: 15px;
            padding: 30px;
            margin-bottom: 60px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
            border-left: 5px solid #4a90e2;
        }
        .price-section h3 {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.4rem;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 20px;
            text-align: center;
        }
        .price-list {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px 25px;
        }
        .price-item {
            display: flex;
            justify-content: space-between;
            font-size: 1rem;
            color: #555;
            border-bottom: 1px dotted #ccc; /* 点線で区切り */
            padding-bottom: 5px;
        }
        .price-item span:first-child {
            font-weight: 500;
        }
        .price-note {
            font-size: 0.85rem;
            color: #777;
            margin-top: 20px;
            text-align: center;
            line-height: 1.5;
        }

        /* Q&Aセクション */
        .qa-section {
            margin-bottom: 60px;
        }
        .qa-category-title {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.8rem;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 30px;
            text-align: center;
            border-bottom: 2px solid #4a90e2;
            padding-bottom: 10px;
            margin-top: 40px;
        }
        .qa-item {
            background-color: #ffffff;
            border-radius: 12px;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.03);
            margin-bottom: 15px;
            overflow: hidden; /* アコーディオン用 */
        }
        .qa-question {
            display: flex;
            align-items: center;
            padding: 18px 25px;
            cursor: pointer;
            font-size: 1.1rem;
            font-weight: 600;
            color: #2c3e50;
            background-color: #f0f8ff; /* 質問部分の背景色 */
            border-bottom: 1px solid #e0f2f7;
            transition: background-color 0.3s ease;
        }
        .qa-question:hover {
            background-color: #e6f7ff;
        }
        .qa-question::before {
            content: 'Q.';
            font-weight: 700;
            color: #4a90e2; /* Qのアクセントカラー */
            margin-right: 10px;
            font-size: 1.3rem;
            line-height: 1;
        }
        .qa-question .arrow-icon {
            margin-left: auto;
            width: 20px;
            height: 20px;
            border: solid #4a90e2;
            border-width: 0 2px 2px 0;
            display: inline-block;
            padding: 3px;
            transform: rotate(45deg);
            transition: transform 0.3s ease;
        }
        .qa-question.active .arrow-icon {
            transform: rotate(-135deg); /* 開いた時に上向き */
        }

        .qa-answer {
            padding: 0 25px;
            max-height: 0; /* アコーディオンで隠す */
            overflow: hidden;
            transition: max-height 0.4s ease-out, padding 0.4s ease-out;
            background-color: #ffffff;
        }
        .qa-answer p {
            font-size: 1rem;
            color: #555;
            padding-top: 15px;
            padding-bottom: 15px;
            border-top: 1px dashed #eee; /* 点線区切り */
            margin-bottom: 0;
        }
        .qa-question.active + .qa-answer {
            max-height: 500px; /* 十分な高さ (内容に合わせて調整) */
            padding-top: 15px;
            padding-bottom: 15px;
        }

        /* レスポンシブデザイン */
        @media (max-width: 768px) {
            .container {
                margin: 30px auto;
                padding: 0 15px;
            }
            .section-title {
                font-size: 2rem;
                margin-bottom: 40px;
            }
            .service-list {
                grid-template-columns: 1fr; /* スマホでは1列 */
                gap: 20px;
            }
            .service-item {
                padding: 20px;
            }
            .service-item-title { /* h4から変更されたセレクタ */
                font-size: 1.1rem;
            }
            .service-item p {
                font-size: 0.85rem;
            }
            .price-section {
                padding: 20px;
            }
            .price-section h3 {
                font-size: 1.2rem;
            }
            .price-list {
                grid-template-columns: 1fr; /* スマホでは1列 */
                gap: 10px;
            }
            .price-item {
                font-size: 0.9rem;
            }
            .price-note {
                font-size: 0.8rem;
            }
            .qa-category-title {
                font-size: 1.5rem;
                margin-top: 30px;
                margin-bottom: 20px;
            }
            .qa-question {
                font-size: 1rem;
                padding: 15px 20px;
            }
            .qa-question::before {
                font-size: 1.1rem;
            }
            .qa-answer p {
                font-size: 0.9rem;
                padding-top: 10px;
                padding-bottom: 10px;
            }
            .qa-question.active + .qa-answer {
                padding-top: 10px;
                padding-bottom: 10px;
            }
        }














        /* お悩み解決セクション */
        .problem-section {
            margin-bottom: 60px;
        }
        .problem-section .section-title {
            color: #2c3e50; /* 一貫したタイトルカラー */
        }
        .problem-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 25px;
        }
        .problem-card {
            background-color: #ffffff;
            border-radius: 15px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); /* ニュートラルな影 */
            padding: 30px;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            text-align: center;
            border: 1px solid #e0e0e0; /* よりニュートラルな枠線 */
        }
        .problem-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
        }
        .problem-card p {
            font-size: 1rem;
            color: #555;
            font-weight: 500;
            margin-bottom: 0;
            line-height: 1.6;
        }
        /* 絵文字やチェックマークの::beforeを削除 */
        .problem-card::before,
        .problem-card p::before {
            content: none;
        }


        /* 料金セクション */
        .price-section {
            background-color: #e6f7ff; /* 淡い水色の背景 */
            border-radius: 20px;
            padding: 40px;
            margin-bottom: 60px;
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
            border: 2px solid #b3e0ff; /* 淡い青の枠線 */
            text-align: center;
        }
        .price-section .section-title {
            color: #2c3e50; /* 一貫したタイトルカラー */
            margin-bottom: 30px;
        }
        .price-course-list {
            display: flex;
            flex-direction: column;
            gap: 20px;
            margin-bottom: 30px;
        }
        .price-course-item {
            background-color: #ffffff;
            border-radius: 12px;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.03);
            padding: 20px 30px;
            border: 1px solid #e0e0e0; /* ニュートラルな枠線 */
            display: flex;
            flex-direction: column;
            align-items: center;
            transition: background-color 0.3s ease;
        }
        .price-course-item:hover {
            background-color: #fcfcfc;
        }
        .price-course-title {
            font-family: 'BIZ UDPMincho', serif;
            font-size: 1.5rem;
            font-weight: 700;
            color: #4a90e2; /* コーポレートカラー */
            margin-bottom: 8px;
        }
        .price-course-subtitle {
            font-size: 0.9rem;
            color: #888;
            margin-bottom: 10px;
        }
        .price-amount {
            font-size: 2rem;
            font-weight: 800;
            color: #2c3e50; /* より落ち着いた料金表示 */
            margin-bottom: 15px;
        }
        .price-note-inline {
            font-size: 0.85rem;
            color: #777;
            line-height: 1.4;
        }

        .price-disclaimer {
            font-size: 0.85rem;
            color: #777;
            margin-top: 20px;
            text-align: center;
        }
        .price-single-item-example {
            font-size: 0.95rem;
            color: #555;
            margin-top: 20px;
            line-height: 1.6;
            text-align: center;
        }
        .contact-button {
            display: inline-block;
            background-color: #4a90e2; /* コーポレートカラーのボタン */
            color: white;
            font-size: 1.2rem;
            font-weight: 600;
            padding: 15px 30px;
            border-radius: 30px;
            text-decoration: none;
            margin-top: 30px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
            transition: background-color 0.3s ease, transform 0.3s ease;
        }
        .contact-button:hover {
            background-color: #3a7bc0; /* 少し濃いブルー */
            transform: translateY(-3px);
        }

        /* レスポンシブデザイン */
        @media (max-width: 768px) {
            .container {
                margin: 30px auto;
                padding: 0 15px;
            }
            .section-title {
                font-size: 2rem;
                margin-bottom: 40px;
            }
            .hero-section {
                padding: 30px 15px;
            }
            .hero-title {
                font-size: 1.8rem;
            }
            .hero-description {
                font-size: 1rem;
            }
            .hero-note {
                font-size: 0.85rem;
            }
            .problem-card {
                padding: 25px;
            }
            .problem-card p {
                font-size: 0.9rem;
            }
            .price-section {
                padding: 30px;
            }
            .price-course-title {
                font-size: 1.3rem;
            }
            .price-amount {
                font-size: 1.8rem;
            }
            .contact-button {
                font-size: 1.1rem;
                padding: 12px 25px;
            }
            .price-single-item-example {
                font-size: 0.85rem;
            }
        }









/* Contact Form 7 の共通スタイル */
.wpcf7 {
    max-width: 700px;
    margin: 40px auto;
    padding: 30px;
    background-color: #ffffff;
    border-radius: 15px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
}

/* 各段落のテキストを左揃えに明示 */
.wpcf7 p {
    margin-bottom: 20px;
    line-height: 1.6;
    text-align: left;
}

/* ラベルのスタイル */
.wpcf7 label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #4a90e2; /* コーポレートカラーに合わせる */
    font-size: 1rem;
    text-align: left; /* ラベルのテキストを左揃えに明示 */
}

/* 必須項目を示す (必須) テキストのスタイル */
/* label要素の直下のspan、または.form-group-label要素の直下のspanに限定 */
.wpcf7 label > span,
.form-group-label > span {
    font-size: 0.8rem;
    font-weight: normal;
    /*color: #f44336;  赤色で強調 */
    margin-left: 5px;
}

/* テキスト入力フィールド、メールアドレス、テキストエリアのスタイル */
.wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 1rem;
    color: #333;
    background-color: #f9f9f9;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.03);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    box-sizing: border-box;
}

.wpcf7-form-control:not([type="submit"]):focus {
    border-color: #4a90e2; /* フォーカス時にアクセントカラー */
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 0 0 3px rgba(74, 144, 226, 0.2); /* フォーカス時のシャドウ */
    outline: none;
}

/* 送信ボタンを含むpタグを中央揃えにする */
.wpcf7 p:has(.wpcf7-submit) {
    text-align: center;
}

/* 送信ボタンのスタイル */
.wpcf7-submit {
    display: inline-block; /* inline-block に戻しました */
    /* margin: 0 auto; および max-width は削除しました */
    background-color: #4a90e2; /* コーポレートカラーのボタン */
    color: white;
    font-size: 1.2rem;
    font-weight: 600;
    padding: 15px 30px;
    border-radius: 30px;
    border: none;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.wpcf7-submit:hover {
    background-color: #3a7bc0;
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* メッセージ（送信成功/失敗など）のスタイル */
.wpcf7-response-output {
    margin-top: 20px;
    padding: 15px;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 500;
    text-align: center; /* レスポンスメッセージは中央揃えを維持 */
}

.wpcf7-response-output.wpcf7-mail-sent-ok {
    background-color: #e6ffe6; /* 淡いグリーン */
    color: #4caf50;
    border: 1px solid #81c784;
}

.wpcf7-response-output.wpcf7-mail-sent-ng,
.wpcf7-response-output.wpcf7-validation-errors {
    background-color: #ffe6e6; /* 淡いレッド */
    color: #f44336;
    border: 1px solid #ef9a9a;
}

/* --- 新しい要素のスタイル --- */

/* フォーム上部の免責事項 */
.form-disclaimer {
    font-size: 0.9rem;
    color: #777;
    margin-bottom: 30px;
    padding-bottom: 15px;
    border-bottom: 1px dashed #e0e0e0;
    text-align: center; /* 中央揃えを維持 */
}

/* フォーム送信前の注意書き */
.form-notes {
    font-size: 0.85rem;
    color: #777;
    margin-top: 30px;
    padding-top: 15px;
    border-top: 1px dashed #e0e0e0;
    text-align: left; /* 左揃えに明示 */
}

/* チェックボックス/ラジオボタンのグループのタイトル（<p>タグ） */
.form-group-label {
    display: block; /* label要素に似た表示 */
    margin-top: 20px; /* 上部の余白 */
    margin-bottom: 8px;
    font-weight: 600;
    color: #4a90e2; /* コーポレートカラーに合わせる */
    font-size: 1rem;
    text-align: left; /* 左揃えに明示 */
}

/* チェックボックス/ラジオボタンのグループ */
.wpcf7-checkbox,
.wpcf7-radio {
    margin-bottom: 25px; /* 下部の余白 */
    display: flex; /* 横並びにするためにFlexboxを使用 */
    flex-wrap: wrap; /* 折り返しを許可 */
    gap: 15px 20px; /* アイテム間の隙間 */
    text-align: left; /* 項目を左揃えに明示 */
}

/* 個々のチェックボックス/ラジオボタンとラベルのスタイル */
.wpcf7-list-item {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.wpcf7-list-item input[type="checkbox"],
.wpcf7-list-item input[type="radio"] {
    appearance: none; /* デフォルトのスタイルをリセット */
    width: 20px;
    height: 20px;
    border: 2px solid #ccc;
    border-radius: 4px; /* チェックボックスの角を少し丸く */
    margin-right: 8px;
    display: grid;
    place-content: center;
    flex-shrink: 0; /* 縮まないように */
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.wpcf7-list-item input[type="radio"] {
    border-radius: 50%; /* ラジオボタンは丸く */
}

/* チェック/選択時のスタイル */
.wpcf7-list-item input[type="checkbox"]:checked,
.wpcf7-list-item input[type="radio"]:checked {
    background-color: #4a90e2; /* チェック時にアクセントカラー */
    border-color: #4a90e2;
}

.wpcf7-list-item input[type="checkbox"]:checked::before {
    content: '✓'; /* チェックマーク */
    font-size: 16px;
    color: white;
    line-height: 1; /* 中央揃え */
}

.wpcf7-list-item input[type="radio"]:checked::before {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: white; /* 選択時に中央に白い丸 */
}

/* ラベルテキストのスタイル (個別の選択肢テキスト) */
span.wpcf7-list-item-label { /* spanタグとクラス名を指定し、より高い特異性で色を上書き */
    font-size: 0.95rem;
    color: #555; /* 通常の文字色に戻す */
    cursor: pointer;
}

/* レスポンシブデザインの調整 */
@media (max-width: 768px) {
    .wpcf7 {
        padding: 20px;
    }
    .wpcf7 label {
        font-size: 0.95rem;
    }
    .wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) {
        padding: 10px 12px;
        font-size: 0.9rem;
    }
    .wpcf7-submit {
        padding: 12px 25px;
        font-size: 1.1rem;
        /* max-width: 100%; は不要になりました */
    }
    .form-disclaimer,
    .form-notes {
        font-size: 0.8rem;
    }
    .wpcf7-checkbox,
    .wpcf7-radio {
        flex-direction: column; /* スマホでは縦に並べる */
        gap: 10px; /* 縦の隙間を調整 */
        align-items: flex-start; /* 左揃え */
    }
    .wpcf7-list-item {
        width: 100%; /* 各選択肢を全幅に */
    }
    .wpcf7 label > span,
    .form-group-label > span {
        font-size: 0.7rem;
    }
}
