@charset "UTF-8";

/* デザイントークン */
@import url("./_variables.css");
@import url("./_spacing.css");
@import url("./_typography.css");

/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 共通項目 */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
*{margin:0;padding:0;text-decoration:none}fieldset{border:0}body{line-height:1.8}body,dd,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,select,ul{margin:0;padding:0}img{border:0;vertical-align:top}a{text-decoration:none}em{font-style:normal}ul li{list-style-type:none;list-style-image:none}address{font-style:normal}
html{font-size: 62.5%;}
body{font-size: 1.6em;}


/* 文字装飾 */
strong {
	font-weight: bold;
}


ul li {
	list-style:none;	
}


/* box-sizing */ 
* {
	box-sizing: border-box;
}


/* float解除 */
.cbox { 
}
* html .cbox {
	zoom: 100%;
}
*:first-child+html .cbox {
	display: inline-block;
}
.cbox:after {
	content: ""; 
	clear: both; 
	height: 0; 
	display: block; 
	visibility: hidden;
}



/* img */ 
img {
	width: 100%;
	height: auto;
}



/* sp */ 
.sp {
	display: none;
}



/* リンク */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
a {
	color: #231815;
	text-decoration: none;
    transition: 0.3s;
    -webkit-transition: 0.3s;
}


/* テキスト装飾 */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 小文字 */
.cap {
	line-height: var(--line-height-snug);
	font-size: var(--font-body-small);
}



/* 横幅 */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
body {
	font-family: YakuHanJP, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
	font-weight: 500;
	color: #000000;
	padding: 0;
	margin: 0;
	letter-spacing: 0.06em;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	font-feature-settings: "palt";
	text-align: justify;
	text-justify: inter-ideograph;
	-ms-text-justify: inter-ideograph;
}



/* フォント */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
.en {
	font-family: 'Barlow', sans-serif;
	font-weight: 500;
}




/* flex */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
.flex {
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.flex-start {
	display: flex;
	display: -webkit-flex;
	justify-content: space-between;
}
.flex-end {
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: reverse;
	 -ms-flex-direction: row-reverse;
		 flex-direction: row-reverse;
}
.flex-center {
	display: flex;
	justify-content: center;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
	



	
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 基本レイアウト */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */


/* main */
#main {
	display: block;
}
.c-inner {
	max-width: 1100px;
	width: 90%;
	margin: 0 auto;
	position: relative;
}



/* c-txt */
.c-txt {
    font-size: var(--font-body);
    line-height: var(--line-height-loose);
    text-align: left;
}



/* グラデーション */
.gr {
    background:linear-gradient(135deg, #640F7E,#1E2891,#640F7E);/*グラデーションを定義*/
	background-size: 300% 200%;/*サイズを大きくひきのばす*/
	animation: bggradient 10s ease infinite;
}
@keyframes bggradient{
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}



/* moreボタン */
a .c-more {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 142px;
    height: 60px;
    position: relative;
}
a .c-more:after {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent transparent transparent #4F7794;
    border-width: 4px 0 4px 12px;
    position: absolute;
    top: 50%;
    right: 22px;
    margin-top: -4px;
    transition: 0.3s;
    -webkit-transition: 0.3s;
}
a .c-more:before {
    content: "";
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #fff;
    position: absolute;
    top: 0;
    right: 0;
    transition: 0.3s;
    -webkit-transition: 0.3s;
}
a:hover .c-more:before {
    width: 70px;
    height: 70px;
    top: -5px;
    right: -5px;
}
    a .c-more span {
        font-size: var(--font-button);
        line-height: 1;
        color: #fff;
        text-decoration: underline;
    }
    a:hover .c-more span {
        text-decoration: none;
    }


a .c-more.gradation:after {
    border-color: transparent transparent transparent #ffffff;
}
a .c-more.gradation:before {
    background:linear-gradient(135deg, #640F7E,#1E2891,#640F7E);/*グラデーションを定義*/
	background-size: 300% 200%;/*サイズを大きくひきのばす*/
	animation: bggradient 10s ease infinite;
}

a .c-more.white:after {
    border-color: transparent transparent transparent #27258F;
}
a .c-more.white:before {
   background: #fff;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 標準ボタンコンポーネント: c-link-btn
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/*
 * 用途: CTAボタン、ページ遷移リンク
 *
 * 基本使用法:
 *   <a href="URL" class="c-link-btn">テキスト</a>
 *
 * デザイン仕様:
 *   - カラー: var(--color-primary)（ブルーグレー）
 *   - ホバー: 左から右へ白背景スライドイン
 *   - 右側に矢印アイコン付き
 *
 * サイズ:
 *   - PC: 260px × 56px
 *   - SP: 240px × 50px
 */
.c-link-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 260px;
    max-width: 100%;
    height: 56px;
    margin: 40px auto 0;
    background-color: var(--color-primary);
    border: 2px solid var(--color-primary);
    border-radius: 10px;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    position: relative;
    overflow: hidden;
    transition: color 0.3s;
    -webkit-transition: color 0.3s;
    z-index: 1;
}

/* ホバー時スライドイン背景 */
.c-link-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
    z-index: -1;
}

/* ホバー状態 */
.c-link-btn:hover {
    color: var(--color-primary);
}
.c-link-btn:hover::before {
    transform: scaleX(1);
}

/* 矢印アイコン */
.c-link-btn::after {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent transparent transparent #fff;
    border-width: 5px 0 5px 10px;
    position: absolute;
    top: 50%;
    right: 30px;
    margin-top: -5px;
    transition: 0.3s;
    -webkit-transition: 0.3s;
}
.c-link-btn:hover::after {
    border-color: transparent transparent transparent var(--color-primary);
}

/* アウトラインバリエーション */
.c-link-btn--outline {
    background-color: transparent;
    color: var(--color-primary);
}

.c-link-btn--outline::before {
    background-color: var(--color-primary);
}

.c-link-btn--outline::after {
    border-color: transparent transparent transparent var(--color-primary);
}

.c-link-btn--outline:hover {
    color: #fff;
}

.c-link-btn--outline:hover::after {
    border-color: transparent transparent transparent #fff;
}


/* コンタクト追従ボタン */
.c-contact_fixed{
	position: fixed;
	bottom:30px;
	right:30px;
	z-index: 8;
}
.c-contact_fixed a{
	display: block;
	padding: 4px;
	background: transparent;
	border-radius: 50%;
	border: 1px solid #401C88;
}
	.c-contact_fixed a span{
		position: relative;
		display: block;
		width: 160px;
		height: 160px;
		border-radius: 50%;
		background: rgb(100,15,126);
		background: linear-gradient(160deg, rgba(100,15,126,1) 0%, rgba(30,40,145,1) 100%);
		transition: all .4s;
	}
	.c-contact_fixed a:hover span{
		width: 168px;
		height: 168px;
		opacity: 0.8;
	}
		.c-contact_fixed a span div{
			position: absolute;
			top:36%;
			left:50%;
			transform: translate(-50%);
			text-align: center;
			color:#fff;
		}
		.c-contact_fixed a span .en{
			font-size: 2.8rem;
			line-height: 1;
		}
		.c-contact_fixed a span .txt{
			font-size: 1.4rem;
			line-height: 1;
			margin-top: 5px;
            white-space: nowrap;
		}





/* お問い合わせエリア（WordPressコンテンツ内） */
/* footer-ctaに統一するため非表示 */
#c-contact {
    display: none !important;
}



/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 基本レイアウト */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

/* Content Large - メインセクション */
.c-sec {
	padding-top: var(--section-lg-py);
	padding-bottom: var(--section-lg-pb);
}

/* Content Medium - モジュール系 */
.c-sec--md {
	padding-top: var(--section-md-py);
}

/* CTA Section */
.c-sec--cta {
	padding-top: var(--section-cta-py);
	padding-bottom: var(--section-cta-py);
}

/*セクションタイトル*/
.c-titl {
	position: relative;
	text-align: center;
	margin-bottom: var(--section-lg-title-mb);
}

.c-titl--md {
	margin-bottom: var(--section-md-title-mb);
}
.c-titl.left{
	text-align: left;
}
	.c-titl .en_bg{
		width: 100%;
		font-size: var(--font-section-bg);
        font-weight: var(--font-weight-semibold);
		letter-spacing: 0;
		color: #F1F4F7;
		line-height: 1;
		position: absolute;
		top: 0;
		left: 0;
		text-align: center;
	}
	.c-titl .en_bg.white{
		color: #fff;
	}
	.c-titl.subspecies .en_bg{
		color: rgba(255,255,255,0.05);
	}
	.c-titl.left .en_bg{
		text-align: left;
	}
	.c-titl h1,
	.c-titl h2{
		position: relative;
		font-size: var(--font-section-title);
		font-weight: var(--font-weight-bold);
		line-height: var(--line-height-snug);
		letter-spacing: 0.2rem;
		padding-top: 28px;
		z-index: 1;
	}
	.c-titl.subspecies h2{
        color: #fff;
	}
	.c-titl__sub {
		font-size: 1.4rem;
		font-weight: var(--font-weight-medium);
		color: var(--color-primary);
		margin-top: 8px;
		letter-spacing: 0.1rem;
	}



/*レイアウト01*/
.c-list .c-list-content{
    margin-bottom: 50px;
}
.c-list .c-list-content:last-child{
    margin-bottom: 0px;
}
    .c-list .c-list-content .pht{
        position: relative;
        width: 280px;
    }
        .c-list .c-list-content .pht img{
            width: 100%;
            height: auto;
        }
    .c-list .c-list-content .illust{
        position: relative;
        width: 280px;
        height: 280px;
        background-color: #F7F7F7;
    }
        .c-list .c-list-content .illust img{
            position: absolute;
            right:0;
            width: 316px;
            height: 100%;
            object-fit: contain;
        }
    .c-list .c-list-content .txtarea{
        position: relative;
        width: calc(100% - 310px);
        margin-left: 30px;
        padding-left: 30px;
    }
        .c-list .c-list-content .txtarea .list-number{
            font-weight: 600;
            font-size: 1.2rem;
            line-height: 1;
            letter-spacing: 0.06rem;
            -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
            color:#4F7794;
            position: absolute;
            top:0;
            left:0px;
        }
        .c-list .c-list-content .txtarea .list-number.gr_txt{
            color: #3D1D89;
            background:linear-gradient(135deg, #640F7E,#1E2891,#640F7E);
            background-size: 200% 200%;
            animation: bggradient 10s ease infinite;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .c-list .c-list-content .txtarea .ttl{
            font-size: var(--font-content-title);
            line-height: var(--line-height-snug);
            font-weight: var(--font-weight-semibold);
            letter-spacing: 0.14rem;
            margin-top: -6px;
        }
            .c-list .c-list-content .txtarea .ttl .yellow{
                color:#E3A700;
            }
        .c-list .c-list-content .txtarea .c-txt{
            margin-top: 20px;
        }


/*レイアウト02*/
.c-list02 .c-list02-content{
    width: 46.5%;
    margin-right: 7%;
    margin-bottom: 60px;
    position: relative;
}
.c-list02 .c-list02-content:nth-child(2n){
    margin-right: 0;
    transform: translateY(-80px)
}
.c-list02 .c-list02-content:nth-child(n+3){
    margin-bottom: 0;
}
    .c-list02 .c-list02-content .list-number{
        font-weight: 600;
        font-size: 1.2rem;
        line-height: 1;
        letter-spacing: 0.06rem;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        color:#4F7794;
        position: absolute;
        top:0;
        left:-20px;
    }
    .c-list02 .c-list02-content .list-number.gr_txt{
        color: #3D1D89;
        background:linear-gradient(135deg, #640F7E,#1E2891,#640F7E);
        background-size: 200% 200%;
        animation: bggradient 10s ease infinite;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }
    .c-list02 .c-list02-content .txtarea{
        width: 100%;
        margin-top: 20px;
    }
        .c-list02 .c-list02-content .txtarea .ttl{
            font-size: var(--font-content-title);
            line-height: var(--line-height-snug);
            font-weight: var(--font-weight-semibold);
            letter-spacing: 0.14rem;
        }
            .c-list02 .c-list02-content .txtarea .ttl .yellow{
                color:#E3A700;
            }
        .c-list02 .c-list02-content .txtarea .c-txt{
            margin-top: 10px;
        }
            .c-list02 .c-list02-content .txtarea .c-txt span{
                font-size: var(--font-body-small);
            }



/*レイアウト03 - Clients セクション */
#clients {
	background-color: #F1F4F7;
}
.c-about-cntnts .pht{
	width: 42%;
	margin-right: 50px;
}
	.c-about-cntnts .pht img{
		width: 100%;
		height: auto;
		object-fit: contain;
	}
.c-about-cntnts .c-txt{
	width: calc(100% - (42% + 50px));
}

/* CEO メッセージ - 案B レイアウト */
.c-ceo-message {
	display: flex;
	gap: 50px;
	align-items: flex-start;
}
.c-ceo-message__left {
	flex-shrink: 0;
	width: 300px;
}
.c-ceo-message__right {
	flex: 1;
}
.c-ceo-message__title {
	font-size: var(--font-h4);
	font-weight: var(--font-weight-bold);
	line-height: 1.6;
	margin-bottom: 20px;
	color: #333;
}
.c-ceo-message__photo {
	margin-bottom: 16px;
}
.c-ceo-message__photo img {
	width: 100%;
	height: auto;
}
.c-ceo-message__name {
	margin-bottom: 0;
}
.c-ceo-message__name .position {
	font-size: var(--font-body-small);
	color: #666;
	margin-bottom: 4px;
}
.c-ceo-message__name .name {
	font-size: var(--font-body);
	font-weight: var(--font-weight-bold);
}
.c-ceo-message__body {
	margin-bottom: 30px;
}
.c-ceo-message__body p {
	font-size: var(--font-body);
	line-height: 2;
	margin-bottom: 20px;
}
.c-ceo-message__body p:last-child {
	margin-bottom: 0;
}
.c-ceo-message__career {
	margin-bottom: 30px;
	padding: 20px;
	background: #f8f9fa;
	border-radius: 4px;
}
.c-ceo-message__career .label {
	font-size: var(--font-body-small);
	font-weight: var(--font-weight-bold);
	margin-bottom: 12px;
	color: #333;
}
.c-ceo-profile__timeline {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 16px;
}
.c-ceo-profile__timeline dt {
	font-size: var(--font-body-small);
	font-weight: var(--font-weight-medium);
	white-space: nowrap;
}
.c-ceo-profile__timeline dd {
	font-size: var(--font-body-small);
	line-height: 1.6;
}
.c-ceo-message__signature {
	text-align: right;
}
.c-ceo-message__signature .position {
	font-size: var(--font-body-small);
	color: #666;
	margin-bottom: 4px;
}
.c-ceo-message__signature .name {
	font-size: var(--font-body);
	font-weight: var(--font-weight-bold);
}

/* #message専用 - ロゴサイズ調整 */
#message .c-about-cntnts .pht{
	width: 15%;
}
#message .c-about-cntnts .c-txt{
	width: calc(100% - (15% + 50px));
	font-size: var(--font-h4);
}

/*レイアウト03 - Clients .c-inner */
	#clients .c-inner{
		padding: 45px;
		background-color: #fff;
		box-shadow: 0px 0px 32px -15px #ddd;
		border-radius: 0px;
	}
		#clients .c-txt{
			margin-top: -10px;
			text-align: left;
		}
		#clients .contents img{
			display: block;
			max-width: 845px;
			margin:30px auto 0;
		}


/*レイアウト05 - Company Info Table */
.c-company-info{
	width: 100%;
	border-top: 1px solid #ddd;
	border-collapse: collapse;
    border-spacing: 0;
}
	.c-company-info tr{
		width: 100%;
		border-bottom: 1px solid #ddd;
	}
		.c-company-info tr th,.c-company-info tr td{
			font-size: 1.5rem;
			line-height: 1.6;
			padding: 20px 20px 18px;
		}
		.c-company-info tr td{
			border-left: 1px solid #ddd;
		}


/*レイアウト06 - Contact CTA（#clientsと同様のスタイル） */
#contact-cta.c-sec--cta {
	padding: var(--section-cta-py) 0;
	background-color: #F1F4F7;
}
	#contact-cta .c-inner {
		padding: 45px;
		background-color: #fff;
		box-shadow: 0px 0px 32px -15px #ddd;
	}
	#contact-cta .c-txt {
		text-align: center;
		font-size: var(--font-body-large);
	}
	#contact-cta .c-link-btn {
		margin-top: 30px;
	}


/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* フッター */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
.c-footer {
    width: 100%;
    padding: 30px 0;
}
    .c-footer .link {
        font-size: var(--font-body-small);
        line-height: 1;
    }
        .c-footer .link a:hover {
            text-decoration: underline;
        }

    .c-footer .copyright {
        font-size: var(--font-body-small);
        line-height: 1;
        text-align: right;
    }







/* max 1400px */
@media screen and (max-width: 1400px) {
	

}





/* 1024px */
@media screen and (max-width: 1024px) {
	



	
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 基本レイアウト */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

/* c-txt - タブレット時は変数で自動調整 */

/*セクションタイトル*/
.c-titl {
	margin-bottom: var(--section-lg-title-mb);
}
.c-titl--md {
	margin-bottom: var(--section-md-title-mb);
}
	.c-titl h1,
	.c-titl h2{
		padding-top: 24px;
	}

/*レイアウト01*/
.c-list .c-list-content .txtarea .ttl{
    line-height: var(--line-height-snug);
}
.c-list .c-list-content .txtarea .c-txt{
    margin-top: 15px;
}


/*レイアウト02*/
.c-list02 .c-list02-content .txtarea{
    margin-top: 17px;
}
    .c-list02 .c-list02-content .txtarea .ttl{
        line-height: var(--line-height-snug);
    }
    .c-list02 .c-list02-content .txtarea .c-txt{
        margin-top: 6px;
    }
	

#clients .c-txt {
    text-align: left;
}

/* コンタクト追従ボタン（タブレット） */
.c-contact_fixed{
	bottom:20px;
	right:20px;
}
	.c-contact_fixed a span{
		width: 130px;
		height: 130px;
	}
	.c-contact_fixed a:hover span{
		width: 136px;
		height: 136px;
	}
		.c-contact_fixed a span .en{
			font-size: 2.2rem;
		}
		.c-contact_fixed a span .txt{
			font-size: 1.2rem;
			margin-top: 4px;
		}

}









/* max 767px */
@media screen and (max-width: 767px) {


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



	
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 基本レイアウト */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

/* c-txt - モバイル時は変数で自動調整 */

/* moreボタン */
a .c-more {
    width: 125px;
    height: 50px;
}
a .c-more:after {
    border-width: 3px 0 3px 9px;
    right: 19px;
    margin-top: -3px;
}
a .c-more:before {
    width: 50px;
    height: 50px;
}
a:hover .c-more:before {
    width: 50px;
    height: 50px;
    top: 0;
    right: 0;
}

/* 標準ボタンコンポーネント: c-link-btn（SP） */
.c-link-btn {
    width: 240px;
    height: 50px;
    margin: 25px auto 0;
    border-radius: 8px;
}
.c-link-btn::after {
    border-width: 4px 0 4px 8px;
    right: 25px;
    margin-top: -4px;
}
.c-link-btn:hover::after {
    right: 25px;
}

/* コンタクト追従ボタン */
.c-contact_fixed{
	bottom:10px;
	right:10px;
}
	.c-contact_fixed a span{
		width: 100px;
		height: 100px;
	}
	.c-contact_fixed a:hover span{
		width: 100px;
		height: 100px;
	}
		.c-contact_fixed a span .en{
			font-size: 1.6rem;
		}
		.c-contact_fixed a span .txt{
			font-size: 1.2rem;
			margin-top: 4px;
		}
	
	
	
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 基本レイアウト */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.c-sec {
	padding-top: var(--section-lg-py);
	padding-bottom: var(--section-lg-pb);
}
.c-sec--md {
	padding-top: var(--section-md-py);
}
.c-sec--cta {
	padding-top: var(--section-cta-py);
	padding-bottom: var(--section-cta-py);
}

/*セクションタイトル*/
.c-titl {
	margin-bottom: var(--section-lg-title-mb);
}
.c-titl--md {
	margin-bottom: var(--section-md-title-mb);
}
.c-titl.left {
	text-align: left;
}
	.c-titl h1,
	.c-titl h2{
		padding-top: 26px;
	}



/*レイアウト01*/
.c-list .c-list-content{
    margin-bottom: 30px;
}
    .c-list .c-list-content .pht{
        overflow: hidden;
        width: 100%;
        height:0;
        padding-bottom: 68%;
    }
    .c-list .c-list-content .illust{
        position: relative;
        width: 100%;
        height: 220px;
    }
        .c-list .c-list-content .illust img{
            position: absolute;
            right:50%;
            transform: translateX(52%);
            width: auto;
            height: 220px;
            object-fit: contain;
        }
    .c-list .c-list-content .txtarea{
        width: 100%;
        margin-left: 0px;
        padding-left: 30px;
        margin-top: 25px;
    }
        .c-list .c-list-content .txtarea .ttl{
            margin-top: -4px;
        }
        .c-list .c-list-content .txtarea .c-txt{
            margin-top: 8px;
        }


/*レイアウト02*/
.c-list02 .c-list02-content{
    width: 100%;
    margin-right: 0;
    margin-left: 20px;
    margin-bottom: 30px!important;
}
.c-list02 .c-list02-content:nth-child(2n){
    transform: translateY(0px)
}
.c-list02 .c-list02-content:nth-child(n+4){
    margin-bottom: 0!important;
}
    .c-list02 .c-list02-content .list-number{
        font-weight: var(--font-weight-semibold);
        font-size: var(--font-body-small);
        line-height: 1;
        letter-spacing: 0.06rem;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        color:#4F7794;
        position: absolute;
        top:0;
        left:-20px;
    }
    .c-list02 .c-list02-content .txtarea{
        width: 100%;
        margin-top: 15px;
    }
        .c-list02 .c-list02-content .txtarea .ttl{
            margin-top: 0;
        }
        .c-list02 .c-list02-content .txtarea .c-txt{
            margin-top: 8px;
        }
	
	
/*レイアウト03*/
.c-about-cntnts .pht{
	width: 100%;
	margin-right: 0px;
}
.c-about-cntnts .c-txt{
	width: 100%;
	margin-top: 25px;
}

/* #message専用 - モバイルレイアウト最適化 */
#message .c-about-cntnts {
	flex-direction: column;
	align-items: center;
}
#message .c-about-cntnts .pht {
	width: 100px;
	margin-right: 0;
}
#message .c-about-cntnts .c-txt {
	width: 100%;
	margin-top: 20px;
	font-size: var(--font-body);
}

/* CEO メッセージ SP */
.c-ceo-message {
	flex-direction: column;
	gap: 30px;
}
.c-ceo-message__left {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.c-ceo-message__photo {
	width: 60%;
	margin-bottom: 16px;
}
.c-ceo-message__name {
	text-align: center;
}
.c-ceo-message__title {
	margin-bottom: 20px;
}
.c-ceo-message__body p {
	line-height: 1.9;
	margin-bottom: 16px;
}
.c-ceo-message__career {
	padding: 16px;
	margin-bottom: 24px;
}
.c-ceo-message__signature {
	margin-top: 24px;
}
.c-ceo-profile__timeline {
	gap: 6px 12px;
}
.c-ceo-profile__timeline dt,
.c-ceo-profile__timeline dd {
	font-size: var(--font-body-small);
}

/*レイアウト03 - Clients セクション SP */
	#clients .c-inner{
		padding: 25px;
	}
		#clients .c-txt{
			text-align: left;
		}


/*レイアウト05 - Company Info Table SP */
.c-company-info{
	width: 100%;
	border-top: 1px solid #ddd;
	border-collapse: collapse;
    border-spacing: 0;
}
	.c-company-info tr{
		width: 100%;
		border-bottom: 1px solid #ddd;
	}
		.c-company-info tr th,.c-company-info tr td{
			display: block;
			width: 100%;
			font-size: 1.4rem;
			line-height: 1.5;
			padding: 20px 10px 16px;
		}
		.c-company-info tr th{
			font-size: 1.5rem;
			border-left: none;
			padding: 14px 10px 4px;
		}
		.c-company-info tr td{
			border-left: none;
			padding: 0px 10px 10px;
		}

/*レイアウト06 - Contact CTA SP */
	#contact-cta .c-inner {
		padding: 25px;
	}
	
	
	

	
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* フッター */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
.c-footer {
    padding: 30px 0 30px 0;
}
.c-footer .c-inner {
    display: block;
}
    .c-footer .link {
        line-height: 1;
        text-align: center;
    }
	
    .c-footer .copyright {
        padding-top: 20px;
        text-align: center;
    }



}


/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* ヘッダー リニューアル */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    height: calc(var(--header-height) + env(safe-area-inset-top, 0px));
    padding-top: env(safe-area-inset-top, 0px);
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    display: flex;
    align-items: center;
}

.wrapper {
    padding-top: calc(var(--header-height) + env(safe-area-inset-top, 0px));
}

.header--bg-active {
    background-color: #fff;
}

.header-container {
    width: var(--container-width);
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    box-sizing: border-box;
}

.header-logo {
    width: auto;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    height: auto;
    padding: 0;
    background: none;
}

.header-logo__link {
    display: flex;
    align-items: center;
}

.header-logo__link img {
    height: 36px;
    width: auto;
}

.header-nav-wrapper {
    position: static;
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: auto;
    width: auto;
    padding: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
}

.header-nav-wrapper::after {
    display: none;
}

.header-nav-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px;
    float: none;
    width: auto;
    height: auto;
    padding: 0;
}

.header-nav {
    display: flex;
    align-items: center;
    float: none;
    padding: 0;
    width: auto;
}

.header-nav__list {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-direction: row;
}

.header-nav__list-item {
    position: relative;
    border: none;
    padding: 0;
    margin: 0;
}

.header-nav__list-item--sp-only {
    display: none;
}

.header-nav__list-item-heading {
    display: flex;
    align-items: center;
    padding: 0;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    letter-spacing: 0.05em;
    transition: color 0.3s ease;
    background: none;
    line-height: 1;
    height: 40px;
}

.header-nav__list-item-heading:hover {
    color: #7b9ab3;
}

.header-nav__list-item-heading-text {
    font-family: 'Barlow', sans-serif;
    font-weight: 600;
}

/* ドロップダウンメニュー */
.header-nav__list-item--has-dropdown {
    position: relative;
}

.header-nav__list-item--has-dropdown > .header-nav__list-item-heading {
    gap: 4px;
}

.header-nav__dropdown-arrow {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -2px;
}

.header-nav__dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 220px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
    padding: 8px 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 1000;
    margin-top: 10px;
}

.header-nav__dropdown::before {
    content: "";
    position: absolute;
    top: -10px;
    left: 0;
    right: 0;
    height: 10px;
}

.header-nav__list-item--has-dropdown:hover .header-nav__dropdown {
    opacity: 1;
    visibility: visible;
}

.header-nav__dropdown-item {
    padding: 0;
    border: none;
}

.header-nav__dropdown-item a {
    display: block;
    padding: 12px 20px;
    color: #333;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
    white-space: nowrap;
}

.header-nav__dropdown-item a:hover {
    background-color: #f5f8fa;
    color: var(--color-primary);
}

/* CTAボタン */
.header-cta {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 6px;
    transition: color 0.3s ease;
    white-space: nowrap;
    min-height: 44px;
    line-height: 1;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

/* ホバー時スライドイン背景 */
.header-cta__btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
    z-index: -1;
}

.header-cta__btn:hover::before {
    transform: scaleX(1);
}

.header-cta__btn--contact {
    background-color: var(--color-primary);
    color: #fff;
    border: 2px solid var(--color-primary);
}

.header-cta__btn--contact::before {
    background-color: #fff;
}

.header-cta__btn--contact:hover {
    color: var(--color-primary);
}

/* SPメニュートリガー - PC非表示 */
.header-sp-open-trigger {
    display: none;
    width: 0;
    height: 0;
    overflow: hidden;
}

/* ハンバーガーアイコン - PC非表示 */
.header-hamburger {
    display: none;
}

/* ナビオーバーレイ - PC非表示 */
.header-nav-overlay {
    display: none;
    width: 0;
    height: 0;
    overflow: hidden;
}

/* タブレット対応 */
@media screen and (max-width: 1024px) {
    .header-nav-container {
        gap: 24px;
    }

    .header-nav__list {
        gap: 20px;
    }

    .header-nav__list-item-heading {
        font-size: 13px;
    }

    .header-cta__btn {
        padding: 8px 14px;
        font-size: 12px;
    }
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
    .header {
        height: calc(var(--header-height) + env(safe-area-inset-top, 0px));
        padding-top: env(safe-area-inset-top, 0px);
    }

    .wrapper {
        padding-top: calc(var(--header-height) + env(safe-area-inset-top, 0px));
    }

    .header-logo__link img {
        height: 28px;
    }

    /* ========================================
       ハンバーガーアイコン（CSSアニメーション）
       ======================================== */
    .header-logo {
        position: relative;
        z-index: 11100;
    }

    .header-sp-open-trigger {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
        margin: 0;
        background: none;
        border: none;
        cursor: pointer;
        position: relative;
        z-index: 11100;
    }

    .header-hamburger {
        display: block;
        width: 22px;
        height: 16px;
        position: relative;
    }

    .header-hamburger__line {
        display: block;
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: var(--color-primary);
        border-radius: 1px;
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                    opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .header-hamburger__line:nth-child(1) {
        top: 0;
    }

    .header-hamburger__line:nth-child(2) {
        top: 7px;
    }

    .header-hamburger__line:nth-child(3) {
        top: 14px;
    }

    /* 開いた状態: × に変形 */
    body.body--header-nav-opened .header-hamburger__line:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    body.body--header-nav-opened .header-hamburger__line:nth-child(2) {
        opacity: 0;
        transform: scaleX(0);
    }

    body.body--header-nav-opened .header-hamburger__line:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    /* ========================================
       フルスクリーンオーバーレイメニュー
       ======================================== */
    .header-nav-wrapper {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        height: 100dvh;
        background: #fff;
        z-index: 11000;
        flex-direction: column;
        justify-content: center;
        padding: calc(var(--header-height) + env(safe-area-inset-top, 0px)) 32px 40px;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                    visibility 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        transform: none;
        box-shadow: none;
        overflow-y: auto;
    }

    body.body--header-nav-opened .header-nav-wrapper {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .header-nav-container {
        flex-direction: column;
        align-items: stretch;
        gap: 40px;
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }

    .header-nav {
        display: block;
        width: 100%;
    }

    /* ========================================
       ナビゲーションリスト
       ======================================== */
    .header-nav__list {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .header-nav__list-item {
        border-bottom: 1px solid var(--color-border);
        opacity: 0;
        transform: translateY(12px);
        transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                    transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .header-nav__list-item:first-child {
        border-top: 1px solid var(--color-border);
    }

    /* スタガードアニメーション */
    body.body--header-nav-opened .header-nav__list-item {
        opacity: 1;
        transform: translateY(0);
    }

    body.body--header-nav-opened .header-nav__list-item:nth-child(1) { transition-delay: 0.08s; }
    body.body--header-nav-opened .header-nav__list-item:nth-child(2) { transition-delay: 0.12s; }
    body.body--header-nav-opened .header-nav__list-item:nth-child(3) { transition-delay: 0.16s; }
    body.body--header-nav-opened .header-nav__list-item:nth-child(4) { transition-delay: 0.20s; }
    body.body--header-nav-opened .header-nav__list-item:nth-child(5) { transition-delay: 0.24s; }
    body.body--header-nav-opened .header-nav__list-item:nth-child(6) { transition-delay: 0.28s; }
    body.body--header-nav-opened .header-nav__list-item:nth-child(7) { transition-delay: 0.32s; }
    body.body--header-nav-opened .header-nav__list-item:nth-child(8) { transition-delay: 0.36s; }

    .header-nav__list-item--sp-only {
        display: block;
    }

    .header-nav__list-item-heading {
        padding: 18px 4px;
        font-size: 15px;
        font-weight: 600;
        letter-spacing: 0.08em;
        color: var(--color-text);
        transition: color 0.2s ease;
    }

    .header-nav__list-item-heading:active {
        color: var(--color-primary);
    }

    /* ========================================
       CTAボタン（モバイル表示）
       ======================================== */
    .header-cta {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        opacity: 0;
        transform: translateY(12px);
        transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.4s,
                    transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.4s;
    }

    body.body--header-nav-opened .header-cta {
        opacity: 1;
        transform: translateY(0);
    }

    .header-cta__btn--contact {
        display: flex;
        width: 100%;
        min-height: 52px;
        font-size: 15px;
        border-radius: 8px;
    }

    /* ========================================
       オーバーレイ背景
       ======================================== */
    .header-nav-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: transparent;
        z-index: 10500;
    }

    body.body--header-nav-opened .header-nav-overlay {
        display: block;
    }

    /* ========================================
       モバイル用ドロップダウン
       ======================================== */
    .header-nav__dropdown-arrow {
        width: 8px;
        height: 8px;
        margin-left: auto;
        margin-top: 0;
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .header-nav__dropdown {
        position: static;
        transform: none;
        min-width: auto;
        background: var(--color-bg-light);
        border-radius: 0;
        box-shadow: none;
        padding: 0;
        opacity: 1;
        visibility: visible;
        margin-top: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .header-nav__dropdown::before {
        display: none;
    }

    .header-nav__list-item--has-dropdown.is-open .header-nav__dropdown {
        max-height: 500px;
    }

    .header-nav__list-item--has-dropdown.is-open .header-nav__dropdown-arrow {
        transform: rotate(-135deg);
    }

    .header-nav__dropdown-item a {
        padding: 14px 20px 14px 32px;
        font-size: 15px;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-border);
        transition: color 0.2s ease;
    }

    .header-nav__dropdown-item a:active {
        color: var(--color-primary);
    }

    .header-nav__dropdown-item:last-child a {
        border-bottom: none;
    }

    /* スクロール防止 */
    body.body--header-nav-opened {
        overflow: hidden;
    }
}


/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* セクションヘッダー共通コンポーネント */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.section-header {
    text-align: center;
    margin-bottom: 33px;
}

.section-header__heading {
    text-align: center;
    font-weight: 700;
    font-size: 2.5rem;
    font-family: "Century Gothic", "Roboto", sans-serif;
    line-height: 1.25;
    letter-spacing: 0.1em;
}

@media screen and (max-width: 750px) {
    .section-header {
        margin-bottom: 24px;
    }

    .section-header__heading {
        font-size: 1.71429rem;
    }
}


/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* 404 エラーページ */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.error-404 {
    padding-top: 150px;
    padding-bottom: 150px;
    min-height: 50vh;
}

.error-404 .c-titl {
    margin-bottom: 40px;
}

.error-404 .c-titl h1 {
    position: relative;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.1rem;
    padding-top: 28px;
    z-index: 1;
}

.error-404__content {
    max-width: 600px;
}

.error-404__content .c-txt {
    margin-bottom: 40px;
}

.error-404__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 40px;
    font-size: 15px;
    font-weight: 600;
    background-color: #7b9ab3;
    color: #fff;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.error-404__btn:hover {
    background-color: #5a7a94;
    color: #fff;
}

@media screen and (max-width: 768px) {
    .error-404 {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .error-404 .c-titl h1 {
        font-size: 2.2rem;
        padding-top: 20px;
    }

    .error-404__content .c-txt {
        margin-bottom: 30px;
    }

    .error-404__btn {
        padding: 14px 32px;
        font-size: 15px;
    }
}

/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* サービス（データサイエンス手法）単独ページ */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
.mod-service-single {
    max-width: 1100px;
    width: 90%;
    margin: 0 auto;
    padding: 60px 0 100px;
}

.mod-service-single__thumbnail {
    margin-bottom: 40px;
    border-radius: 8px;
    overflow: hidden;
}

.mod-service-single__thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}

.mod-service-single__title {
    font-size: var(--font-h2);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-snug);
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 2px solid var(--color-primary);
}

.mod-service-single__content {
    font-size: var(--font-body);
    line-height: var(--line-height-loose);
}

.mod-service-single__content p {
    margin-bottom: 1.5em;
}

.mod-service-single__content h2 {
    font-size: var(--font-h3);
    font-weight: var(--font-weight-semibold);
    margin: 2em 0 1em;
    padding-left: 15px;
    border-left: 4px solid #E3A700;
}

.mod-service-single__content h3 {
    font-size: var(--font-content-title);
    font-weight: var(--font-weight-semibold);
    margin: 1.5em 0 0.8em;
}

.mod-service-single__content ul,
.mod-service-single__content ol {
    margin: 1em 0;
    padding-left: 1.5em;
}

.mod-service-single__content li {
    margin-bottom: 0.5em;
}

/* 768px */
@media screen and (max-width: 768px) {
    .mod-service-single {
        padding: 40px 20px 60px;
    }

    .mod-service-single__title {
        font-size: var(--font-h3);
        margin-bottom: 30px;
    }

    .mod-service-single__thumbnail {
        margin-bottom: 30px;
    }
}

/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* Business List - 横長画像対応レイアウト */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.business-list {
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.business-list__item {
    background-color: #fff;
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0px 0px 32px -15px #ddd;
}

.business-list__number {
    font-size: var(--font-body-small);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    letter-spacing: 0.06em;
    margin-bottom: 8px;
}

.business-list__title {
    font-size: var(--font-content-title);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-snug);
    letter-spacing: 0.1em;
    margin-bottom: 16px;
}

.business-list__title .yellow {
    color: #E3A700;
}

.business-list__item .c-txt {
    margin-bottom: 24px;
}

.business-list__image {
    margin: 0;
}

.business-list__image img {
    width: 100%;
    height: auto;
    display: block;
}

/* タブレット対応 */
@media screen and (max-width: 1024px) {
    .business-list {
        gap: 40px;
    }

    .business-list__item {
        padding: 30px;
    }
}

/* スマホ対応 */
@media screen and (max-width: 767px) {
    .business-list {
        gap: 30px;
    }

    .business-list__item {
        padding: 20px;
    }

    .business-list__title {
        font-size: var(--font-body-large);
    }

    .business-list__item .c-txt {
        margin-bottom: 16px;
    }
}

/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* c-about-cntnts モディファイア - 小さい画像版 */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.c-about-cntnts--small-image .pht {
    width: 14%;
}

.c-about-cntnts--small-image .c-txt {
    width: calc(100% - (14% + 50px));
}

/* スマホ対応 */
@media screen and (max-width: 767px) {
    .c-about-cntnts--small-image .pht {
        width: 40%;
        margin: 0 auto;
    }

    .c-about-cntnts--small-image .c-txt {
        width: 100%;
    }
}

/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* c-sec--page-top: ヘッダー直下のページ用余白 */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.c-sec--page-top {
    padding-top: calc(var(--header-height) + var(--section-lg-py));
}

@media screen and (max-width: 767px) {
    .c-sec--page-top {
        padding-top: calc(var(--header-height) + var(--section-lg-py));
    }
}

/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* Topics Grid - お知らせ一覧カードコンポーネント */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

.topics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.topics-card {
    display: block;
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.topics-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.topics-card__image {
    position: relative;
    width: 100%;
    padding-top: 66.66%;
    overflow: hidden;
    background-color: #f5f5f5;
}

.topics-card__image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.topics-card:hover .topics-card__image img {
    transform: scale(1.05);
}

.topics-card__body {
    padding: 20px;
}

.topics-card__category {
    display: inline-block;
    padding: 4px 12px;
    background-color: var(--color-primary);
    color: #fff;
    font-size: var(--font-body-small);
    font-weight: 500;
    border-radius: 4px;
    margin-bottom: 10px;
}

.topics-card__date {
    display: block;
    font-size: var(--font-body-small);
    color: #888;
    font-family: 'Barlow', sans-serif;
    margin-bottom: 8px;
}

.topics-card__title {
    font-size: var(--font-body);
    font-weight: 600;
    line-height: 1.6;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* #topics セクション調整 */
#topics .pagenavi {
    margin-top: 50px;
}

/* タブレット対応 */
@media screen and (max-width: 1024px) {
    .topics-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }

    .topics-card__body {
        padding: 16px;
    }

}


/* スマホ対応 */
@media screen and (max-width: 767px) {
    .topics-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .topics-card {
        display: flex;
        flex-direction: row;
    }

    .topics-card__image {
        width: 120px;
        min-width: 120px;
        padding-top: 0;
        height: 100px;
    }

    .topics-card__body {
        padding: 12px 16px;
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .topics-card__category {
        padding: 2px 8px;
        margin-bottom: 6px;
    }

    .topics-card__date {
        margin-bottom: 4px;
    }

    .topics-card__title {
        -webkit-line-clamp: 2;
    }

    #topics .pagenavi {
        margin-top: 30px;
    }
}


/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* Cookie同意バナー */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
.cookie-consent {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10000;
    background: rgba(32, 40, 50, 0.97);
    color: #fff;
    padding: 20px 0;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease;
}

.cookie-consent--hidden {
    transform: translateY(100%);
    pointer-events: none;
}

.cookie-consent__close {
    position: absolute;
    top: 8px;
    right: 12px;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    padding: 4px;
    line-height: 1;
    transition: color 0.2s;
}

.cookie-consent__close:hover {
    color: #fff;
}

.cookie-consent__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
    display: flex;
    align-items: center;
    gap: 24px;
}

.cookie-consent__text {
    flex: 1;
    font-size: 1.4rem;
    line-height: 1.6;
}

.cookie-consent__text a {
    color: var(--color-primary);
    text-decoration: underline;
}

.cookie-consent__text a:hover {
    opacity: 0.8;
}

.cookie-consent__actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.cookie-consent__btn {
    display: inline-block;
    padding: 10px 24px;
    border-radius: 4px;
    font-size: 1.4rem;
    font-weight: 500;
    cursor: pointer;
    border: none;
    white-space: nowrap;
    transition: opacity 0.2s;
}

.cookie-consent__btn:hover {
    opacity: 0.85;
}

.cookie-consent__btn--accept,
.cookie-consent__btn--necessary,
.cookie-consent__btn--customize {
    background: var(--color-primary);
    color: #fff;
}

/* カスタマイズビュー（メインビューと同じ横並びレイアウト） */
.cookie-consent__detail {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
    display: flex;
    align-items: center;
    gap: 24px;
}

.cookie-consent__detail-title {
    display: none;
}

.cookie-consent__options {
    flex: 1;
    display: flex;
    gap: 10px;
}

.cookie-consent__detail .cookie-consent__actions {
    flex-shrink: 0;
}

.cookie-consent__option {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 6px;
}

.cookie-consent__option-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cookie-consent__option-info strong {
    font-size: 1.4rem;
}

.cookie-consent__option-desc {
    font-size: 1.2rem;
    color: #999;
}

/* トグルスイッチ（role="switch" ボタン） */
.cookie-consent__toggle {
    position: relative;
    width: 44px;
    height: 24px;
    background: #555;
    border: none;
    border-radius: 12px;
    flex-shrink: 0;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s;
}

.cookie-consent__toggle::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.2s;
}

.cookie-consent__toggle[aria-checked="true"] {
    background: var(--color-primary);
}

.cookie-consent__toggle[aria-checked="true"]::after {
    transform: translateX(20px);
}

.cookie-consent__toggle--disabled {
    background: var(--color-primary);
    opacity: 0.6;
    cursor: not-allowed;
}


@media screen and (max-width: 768px) {
    .cookie-consent {
        padding-top: 36px;
    }

    .cookie-consent__inner {
        flex-direction: column;
        padding: 0 20px;
        gap: 16px;
    }

    .cookie-consent__text {
        font-size: 1.4rem;
    }

    .cookie-consent__actions {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }

    .cookie-consent__btn {
        text-align: center;
        padding: 12px 16px;
    }

    .cookie-consent__btn--accept,
    .cookie-consent__btn--necessary,
    .cookie-consent__btn--customize {
        flex: 1;
    }

    .cookie-consent__detail {
        flex-direction: column;
        padding: 0 20px;
        gap: 16px;
    }

    .cookie-consent__detail-title {
        display: block;
        font-size: 1.5rem;
        font-weight: 600;
        margin: 0;
    }

    .cookie-consent__options {
        flex-direction: column;
    }
}


/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* アクセシビリティ (WCAG 2.1 Level AA) */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */

/* 6-1: フォーカスインジケータ */
:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* 6-2: アニメーション動作軽減 */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ++++++++++++++++++++++++++++++++++++++++++++++ */
/* もっと見るボタン（共通） */
/* ++++++++++++++++++++++++++++++++++++++++++++++ */
.show-more-wrap {
    text-align: center;
    margin-top: 40px;
}

.show-more-wrap.is-hidden {
    display: none;
}

.show-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 48px;
    background: #fff;
    border: 2px solid #688daa;
    border-radius: 100px;
    cursor: pointer;
    font-size: 1.6rem;
    font-weight: 700;
    color: #688daa;
    transition: all 0.3s ease;
}

.show-more-btn:hover {
    background: #688daa;
    color: #fff;
}

.show-more-btn__arrow {
    font-size: 1.4rem;
    transition: transform 0.3s ease;
}

.show-more-btn:hover .show-more-btn__arrow {
    transform: translateY(3px);
}

/* 表示上限超過カードの非表示 */
.is-over-limit {
    display: none !important;
}

@media screen and (max-width: 768px) {
    .show-more-wrap {
        margin-top: 28px;
    }

    .show-more-btn {
        padding: 12px 40px;
        font-size: 1.4rem;
    }
}