@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap');

:root{
	--base_font_family: 'Noto Sans CJK JP' , 'Noto Sans JP'  ,sans-serif;
	--serif_font:"Noto Serif", serif;

	--base_black: #303030;
	--button_text_color:#fff;

	--c_sticky_top:80px;
	--c_duration:0.4s;
	--big_head_font:48px;
	--head_font:32px;
	--sub_head_font:14px;
	--c_sec_space:200px;
}

*{

	margin:0;
	padding:0;
	list-style: none;
	box-sizing: border-box;
	text-decoration: none;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

*::before,
*::after{
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	box-sizing: border-box;
}

html {
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;
}

input,
select,
textarea{
	font-family: var(--base_font_family);
	color:var(--base_font_color);
	-webkit-font-smoothing: antialiased;
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	font-feature-settings: 'palt';
	touch-action: manipulation;
	resize: none;
	display: block;
}

button{
	border: none;
	background: none;
	border-radius: 0;
	cursor: pointer;
}

body{
	color: var(--base_font_color);
	font-size: 16px;
	font-family: var(--base_font_family);
	-webkit-font-smoothing: antialiased;
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	letter-spacing: 0.05em;
}

body.fixed {
	width: 100%;
	height: 100%;
	position: fixed;
}

.grecaptcha-badge { visibility: hidden; }

img{
	display: block;
	object-position: center;
	width: 100%;
}

#body_wrap{
	overflow: clip;
}

section{
	position: relative;
}

section + section{
	margin-top: var(--c_sec_space);
}

section.mt0{
	margin-top: 0;
}

a{
	color: inherit;
}

.fax a{
	pointer-events: none;
}

@media (any-hover:hover){
	a[href^="tel:"] {
		pointer-events: none;
	}
}

/*
------------------------------------
アニメーション関係
------------------------------------
*/

.c_hover_opa{
	transition-duration:var(--c_duration);
}


@media (any-hover:hover){
	.c_hover_opa:hover{
		opacity: 0.7;
	}
	
}

.anime_fadein_bottom{
	opacity: 0;
	animation-duration: 1s;
	animation-fill-mode: forwards;
	transform: translateY(40px);
}

.anime_fadein_bottom.anime_active ,
.anime_active .anime_fadein_bottom{
	animation-name:anime_fadein_bottom;
}

@keyframes anime_fadein_bottom {
	0% {
	opacity:0;
	}
	100% {
		opacity:1;
		transform: translateY(0);
	}
}


.c_hover_scale_frame{
	overflow: hidden;
}

.c_hover_scale_item{
	transition-duration: var(--c_duration);
	width:100%;
	height:100%;
	object-fit: cover;
}

@media(any-hover:hover){
	.c_hover_scale_trigger:hover .c_hover_scale_item{
		transform: scale(1.1);
	}
}

/*
------------------------------------
共通パーツ
------------------------------------
*/

.hide{
	display: none;
}

.container{
	max-width: 1240px;
	padding:0 20px;
	margin:0 auto;
}


/* ===== 見出し関係 ===== */
.c_sec_head_set01{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap:8px;
}
.c_sec_head_set01.center{
	align-items: center;
	text-align: center;
}
.c_sec_head_set01.right{
	align-items: flex-end;
	text-align: right;
}

.c_sec_head_set01 .min_head{
	/* width: 100%; */
	font-size: var(--sub_head_font);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 1em;
}
.c_sec_head_set01 .big_head{
	/* width: 100%; */
	font-size: var(--big_head_font);
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: 0.3em;
}

.c_sec_head_set01 .big_head img{
	height:60px;
	width:auto;
	max-width: 100%;
	object-fit: contain;
	object-position: left;
}

.c_sec_head_set01.center .big_head img{
	object-position: center;
}
.c_sec_head_set01.right .big_head img{
	object-position: right;
}

/* ===== サムネイル ===== */
.c_thumb_gray{
	width:100%;
	height:100%;
	background-color: #ccc;
	display: block;
}

.c_no_result{
	margin-top: 24px;
}


/* ===== ページネーション ===== */
.c_page_nation{
	margin-top: 80px;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	flex-shrink: 0;
	gap:16px;
	font-size: 24px;
	line-height: 1.2;
}

.c_page_nation span.current{/*現在のページボタン*/
	width: 46px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--base_font_color);
	color: #ffffff;
	
}

.c_page_nation a.page-numbers{/*指定のページ移動ボタン*/
	width: 36px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	border:1px solid var(--base_font_color);
	transition-duration: var(--c_duration);
}

@media(any-hover:hover){
	.c_page_nation a.page-numbers:hover{
		background-color: var(--base_font_color);
		color:var(--base_color_text);
	}
}

/* ===== 画像 ===== */
.c_img_frame{
	display: flex;
	justify-content: center;
}

.c_img_frame.full img{
	flex-shrink: 0;
	width:100vw;
}

.c_img_frame.medium img{
	max-width: 800px;
}
.c_img_frame.small img{
	max-width: 400px;
}

/* ===== ボタン関係 ===== */
.c_button01{
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: fit-content;
	min-width:236px;
	gap:12px;
	min-height: 50px;
	border-radius: 9999px;
	background-color: var(--button_bg_color);
	color:var(--button_text_color);
	padding:12px 32px;
	font-weight: bold;
	transition-duration: var(--c_duration);
}

.c_button01 svg{
	width:7px;
	transition-duration: var(--c_duration);
}

.c_button01 svg path{
	stroke:var(--button_text_color);
	transition-duration: var(--c_duration);
}

@media(any-hover:hover){
	.c_button01:hover{
		background-color: var(--button_bg_color_hover);
		color:var(--button_text_color_hover);
	}
	.c_button01:hover svg{
		transform: translateX(6px);
	}
	.c_button01:hover svg path{
		stroke:var(--button_text_color_hover);
	}
}



/*
------------------------------------
ヘッダー
------------------------------------
*/

/* ===== ヘッダーパターン1 ===== */
.header01{
	position: fixed;
	top:0;
	left:0;
	width:100%;
	z-index: 100;
}

.header01 .header_inner{
	padding-top: 8px;
	padding-inline: 8px;
}

.header01 .header_frame{
	background-color: #fff;
	border-radius: 5px;
	padding-inline: 16px;
}

.header01 .header_flex{
	height: 64px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
}

.header01 .header_logo{
	height:calc(100% - 16px);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: block;
	z-index: 150;
}

.header01 .header_logo h1,
.header01 .header_logo p{
	height: 100%;
}
.header01 .header_logo img{
	width: auto;
	height:100%;
}

.header01 .header_name{
	font-size: 14px;
	font-weight: 500;
}

.header01 .drawer_open{
	width: 48px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	cursor: pointer;
	background-color: var(--base_color);
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 150;
}

.header01 .drawer_open_inner{
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.header01 .drawer_open .bar{
	width:16px;
	height:2px;
	background-color: var(--base_color_text);
	transition-duration: 0.5s;
	border-radius: 9999px;
}

.header01 .drawer_open .bar02{
	margin:4px 0;
}

.header01 .drawer_open .bar03{
	width:8px;
}

.header01 .drawer_open.active .bar01 {
	transform: translateY(1px) rotate(-45deg);
}
.header01 .drawer_open.active .bar02 {
	display: none;
}
.header01 .drawer_open.active .bar03 {
	width: 16px;
	transform: translateY(-1px) rotate(45deg);
}

.drawer_menu01{
	position: fixed;
	top:8px;
	right:8px;
	width:calc(100% - 8px);
	max-width: 340px;
	z-index: 120;
	transition-duration: 0.5s;
	opacity: 0;
	pointer-events: none;
	background-color: var(--base_color);
	color:var(--base_color_text);
	border-radius: 5px;
}

.drawer_menu01.show{
	opacity: 1;
	pointer-events: auto;
}

.drawer_menu01 .drawer_menu_inner{
	height:calc(100dvh - 8px);
	padding-top: 80px;
	overflow-y: auto;
}

.drawer_menu01 .drawer_menu_contents_frame{
	padding-inline: 24px;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 100%;
}

.drawer_menu01 .drawer_parent_menu{

}

.drawer_menu01 .drawer_parent_item + .drawer_parent_item{
	margin-top: 24px;
}

.drawer_menu01 .drawer_parent_link{
	font-weight: 500;
}
/*
------------------------------------
フッターパターン1
------------------------------------
*/

/* ===== フッターパターン1 ===== */
.footer01{
	margin-top: 244px;
	border-top:1px solid var(--base_black);
}

.footer01 .footer_contents{
	padding-top: 56px;
	padding-bottom: 24px;
	position: relative;
	max-width: 1080px;
	margin-inline: auto;
}

.footer01 .footer_catch{
	position: absolute;
	right:0;
	bottom:calc(100% - 6px);
	font-family: var(--serif_font);
	font-size: 24px;
	font-weight: bold;
}

.footer01 .footer_flex{
	display: flex;
	justify-content: space-between;
	gap:32px;
}

.footer01 .footer_left{
	flex-shrink: 0;
	max-width: 600px;
}

.footer01 .footer_logo{
	display: block;
	max-width: 480px;
}

.footer01 .footer_info{
	margin-top: 40px;
	line-height: 1.5;
}

.footer01 .footer_info p + p{
	margin-top: 8px;
}

.footer01 .footer_right{
	min-width: 280px;
	display: flex;
	align-items: flex-end;
}

.footer01 .footer_right_contents{
	width: 100%;
}

.footer01 .footer_nav{

}

.footer01 .footer_parent_memu{

}

.footer01 .footer_parent_item{
	border-bottom:1px solid var(--base_black);
}

.footer01 .footer_parent_item + .footer_parent_item{
	margin-top: 24px;
}

.footer01 .footer_parent_link{
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	line-height: 1.3;
	gap:8px;
}

.footer01 .footer_parent_link_big{
	font-size: 24px;
}

.footer01 .footer_parent_link_min{
	font-size: 16px;
}

.footer01 .footer_copy{
	margin-top: 40px;

}


/*
------------------------------------
FV関係コンポーネント
------------------------------------
*/


/* ===== フルスクリーンFV ===== */
.c_full_fv_section{
	position: relative;
}


.c_full_fv_section .fv_inner{
	height:100vh;
	min-height: 650px;
	max-height: 1080px;
	position: relative;
	display: flex;
	align-items: center;
	padding-top: 100px;
	padding-bottom: 100px;
}


.c_full_fv_section .fv_pic{
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: -2;
	width:100vw;
	height:100%;
	object-fit: cover;
}

.c_full_fv_section .fv_catch{
	width:480px;
}

.c_full_fv_section .scroll_box{
	width:180px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: rgba(48, 48, 48, 0.9);
	position: absolute;
	bottom:80px;
	right:-40px;
	color: #FFF;
	line-height: 1.5;
	
}

.c_full_fv_section .scroll_box p{
	position: relative;
}

.c_full_fv_section .scroll_box svg{
	width:8px;
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
}

.c_full_fv_section .recent_news{
	position: absolute;
	bottom:80px;
	left:0;
	display: flex;
	border:1px solid #fff;
	background: rgba(48, 48, 48, 0.30);
	color:#fff;
	width: 450px;
	min-height:90px;
	font-size: 14px;
	color:#fff;
	line-height: 1.5;
	
}

.c_full_fv_section .recent_title{
	display: flex;
	align-items: center;
	padding:24px;
	width: 100%;
}

.c_full_fv_section .recent_head{
	flex-shrink: 0;
	width:160px;
	padding:24px;
	border-left: 1px solid #fff;
}


/* ===== 下層ページ用 画像のみFV ===== */

.c_page_img_fv_section{

}

.c_page_img_fv_section .fv_inner{
	position: relative;
	height:400px;
}

.c_page_img_fv_section .fv_pic{
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width:100vw;
	height:100%;
	object-fit: cover;
}


/*
------------------------------------
ページタイトル関係コンポーネント
------------------------------------
*/

/* ===== デフォルトタイプ ===== */
.c_page_title_section{

}

.c_page_title_section .frame{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap:24px 40px;
}

.c_page_title_section .frame.flex{
	justify-content: space-between;
	flex-direction: row;
	align-items: center;
}
.c_page_title_section .sec_head_area{
	flex-shrink: 0;
}

.c_page_title_section .info_text_area{
	max-width: 620px;
}

.c_page_title_section .info_text{
	line-height: 2;
}


/*
------------------------------------
理念関係コンポーネント
------------------------------------
*/

/* ===== ロゴ + テキスト 横並びタイプ ===== */
.c_purpose_section{

}

.c_purpose_section .purpose_flex{
	max-width: 960px;
	margin-inline: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap:40px;
}

.c_purpose_section .purpose_img_area{
	width: 300px;
}

.c_purpose_section .purpose_text_area{
	width: 500px;
}

.c_purpose_section .purpose_text{
	margin-top: 10px;
	line-height: 2;
}


.c_purpose_section .button_list{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap:16px 24px;
	margin-top: 32px;
}


/*
------------------------------------
サービス関係 コンポーネント
------------------------------------
*/

/* ===== サービス一覧 カード横並び式 ===== */
.c_service_list_section{

}

.c_service_list_section .service_head_area{
	position: relative;
	min-height: 120px;
	padding-top: 4px;
	padding-bottom: 4px;
	display: flex;
	justify-content: center;
	align-items: center;
	color:var(--base_color_text);
}
.c_service_list_section .service_head_area::before{
	content:'';
	width:100vw;
	height:100%;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	background-color: var(--base_color);
	z-index: -2;
}

.c_service_list_section .service_head_area .c_sec_head_set01{
	width: 100%;
}

.c_service_list_section .service_list_area{
	display: flex;
	justify-content: center;
}

.c_service_list_section .service_list{
	flex-shrink: 0;
	width:100vw;
	max-width: 1920px;
	display: flex;
	justify-content: center;
}

.c_service_list_section .service_card{
	width:100%;
	height:340px;
	position: relative;
}

.c_service_list_section .service_card img{
	width:100%;
	height:100%;
	object-fit: cover;

}

.c_service_list_section .service_title_frame{
	width:100%;
	position: absolute;
	bottom:40px;
	left:0;
	z-index: 2;
	display: flex;
	justify-content: center;
}

.c_service_list_section .service_title{
	display: flex;
	justify-content: center;
	align-items: center;
	gap:16px;
	min-height: 36px;
	padding:6px 24px;
	max-width: 90%;
	border-radius: 9999px;
	background-color: #fff;
	
}

.c_service_list_section .service_title::after{
	content:'';
	width:7px;
	height:13px;
	background-image: url('../img/common/icon_angle_right_black.svg');
	flex-shrink: 0;
}



/* ===== サービス紹介(画像 + ぼかし背景画像 + テキスト) ===== */

.c_service_info_section{

}


.c_service_info_section .service_frame{
	color:var(--service_color);
	min-height: min(100vh , 1080px) ;
	padding-top: 100px;
	padding-bottom: 100px;
	display: flex;
	align-items: center;
	position: relative;
}

.c_service_info_section .service_bg{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width:100vw;
	height:100%;
}

.c_service_info_section .service_bg img{
	width:100%;
	height:100%;
	object-fit: cover;
}

.c_service_info_section .service_flex{
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap:40px;
	position: relative;
	z-index: 2;
}

.c_service_info_section .service_flex.reverce{
	flex-direction: row-reverse;
}

.c_service_info_section .service_img_area{
	width:600px;
	flex-shrink: 0;
}

.c_service_info_section .service_text_area{
	width: 100%;
	max-width: 480px;
}

.c_service_info_section .service_text{
	margin-top: 20px;
	line-height: 1.5;
}

.c_service_info_section .c_sec_head_set01 .min_head{
	letter-spacing: 0.15em;
}
.c_service_info_section .c_sec_head_set01 .big_head{
	font-size: 24px;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.c_service_info_section .c_sec_head_set01 .big_head img{
	height: 24px;
}

/*
------------------------------------
サポーター関係 コンポーネント
------------------------------------
*/

/* ===== サポーターについての説明 画像 + 説明の2カラム構成 ===== */
.c_supporter_info_section {

}

.c_supporter_info_section .supporter_flex{
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap:40px;
	max-width: 1080px;
	margin-inline: auto;
}


.c_supporter_info_section .supporter_img_area{
	flex-shrink: 0;
	width:560px;
	order: 0;
}

.c_supporter_info_section .supporter_img_area.sticky{
	position: sticky;
	top:var(--c_sticky_top);
	left:0;
}

.c_supporter_info_section .supporter_contents_area{
	width:100%;
	max-width: 400px;
	order: 1;
	padding-top: 60px;
}

.c_supporter_info_section .supporter_flex.reverce .supporter_img_area{
	left:auto;
	right:0;
	order: 2;
}

.c_supporter_info_section .supporter_contents_frame{
	width: 100%;
}

.c_supporter_info_section .supporter_contents_block + .supporter_contents_block{
	margin-top: 80px;
}

.c_supporter_info_section .supporter_contents_block .c_sec_head_set01 .min_head{
	letter-spacing: 0.15em;
}
.c_supporter_info_section .supporter_contents_block .c_sec_head_set01 .big_head{
	font-size: 24px;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.c_supporter_info_section .supporter_contents_block .c_sec_head_set01 .big_head img{
	height: 24px;
}

.c_supporter_info_section .supporter_text{
	margin-top: 16px;
	line-height: 1.5;
}

.c_supporter_info_section .supporter_text strong{
	font-size: 20px;
	font-weight: 500;
	
}

.c_supporter_info_section .button_list{
	margin-top: 32px;
}

.c_supporter_info_section .button_list li + li{
	margin-top: 24px;
}

.c_supporter_info_section .company_list_area{
	margin-top: 16px;
}

.c_supporter_info_section .company_list li{
	line-height: 1.5;
}

.c_supporter_info_section .company_list li:nth-child(n+4){
	display: none;
}

.c_supporter_info_section .company_list_switch{
	width: fit-content;
	display: block;
	margin-inline: auto;
	margin-top: 16px;
	cursor: pointer;
	flex-direction: column-reverse;

}


/* ===== 協賛企業等のバナーリスト 通常の横並び型 ===== */

.c_supporter_list_section{

}

.c_supporter_list_section .supporter_text{
	line-height: 2;
	margin-top: 16px;
}

.c_supporter_list_section .banner_area{
	margin-top: 72px;
}

.c_supporter_list_section .banner_list{
	display: grid;
}

.c_supporter_list_section .banner_list.two_column{
	grid-template-columns: repeat(2, 1fr);
	gap:24px;
}
.c_supporter_list_section .banner_list.three_column{
	grid-template-columns: repeat(3, 1fr);
	gap:16px;
}
.c_supporter_list_section .banner_list.four_column{
	grid-template-columns: repeat(4, 1fr);
	gap:16px;
}


.c_supporter_list_section .supporter_other_list{
	width: fit-content;
	margin-inline: auto;
	margin-top: 32px;
}

.c_supporter_list_section .supporter_other_list li{
	line-height: 1.5;
	position: relative;
	padding-left: 16px;
	font-size: 16px;
}

.c_supporter_list_section .supporter_other_list li + li{
	margin-top: 8px;
}
.c_supporter_list_section .supporter_other_list li::before{
	content:'・';
	position: absolute;
	left:0;
	top:0;
	line-height: 1.5;
}

/*
------------------------------------
ABOUT関係 コンポーネント
------------------------------------
*/

/* ===== 画像 + テキストの2カラム構成 ===== */

.c_about01_section{

}

.c_about01_section .about_flex{
	display: flex;
	justify-content: center;
	gap:20px;
}

.c_about01_section .about_flex.reverce{
	flex-direction: row-reverse;
}

.c_about01_section .about_img_area{
	flex-shrink: 0;
	/* width:min(calc(760 / 1440 * 100vw) , calc(760 / 1440 * 1440px)); */
	width:760px;
	transform: translateX(calc(min(calc(140 / 1440 * 100vw) , calc(140 / 1440 * 1440px)) * -1));
}

.c_about01_section .about_text_area{
	width:100%;
	padding-right: 60px;
	display: flex;
	align-items: center;
}

.c_about01_section .about_text_contents{
	width:100%;
}

.c_about01_section .about_text{
	margin-top: 32px;
	line-height: 2;
}

.c_about01_section .about_flex.reverce .about_img_area{
	transform: translateX(min(calc(140 / 1440 * 100vw) , calc(140 / 1440 * 1440px)));
}

.c_about01_section .about_flex.reverce .about_text_area{
	padding-right: 0;
	padding-left: 60px;
}

.c_about01_section .about_button_area{
	margin-top: 40px;
}

.c_about01_section .about_link_head{
	font-size: 24px;
	font-weight: 500;
}

.c_about01_section .about_button_list{
	margin-top: 16px;
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap:8px 16px;
}

.c_about01_section .about_button_list .c_button01{
	min-width: 172px;
	padding-inline: 20px;
}
/*
------------------------------------
代表の声関係 コンポーネント
------------------------------------
*/

/* ===== 画像 + テキストの2カラム構成 ===== */
.c_message01_section{

}

.c_message01_section .message_flex{
	max-width: 1080px;
	margin-inline: auto;

}

.c_message01_section .message_flex{
	max-width: 1080px;
	margin-inline: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap:40px;
}

.c_message01_section .message_flex.reverce{
	flex-direction: row-reverse;
}

.c_message01_section .c_sec_head_set01 .big_head{
	font-size: 32px;
	letter-spacing: 0.05em;
}

.c_message01_section .c_sec_head_set01 .big_head img{
	height: 40px;
}

.c_message01_section .message_img_area{
	width:360px;
	flex-shrink: 0;
}

.c_message01_section .message_text_area{
	max-width: 580px;
}

.c_message01_section .message_text{
	margin-top: 16px;
	line-height: 2;
}


/*
------------------------------------
会社概要 関係 コンポーネント
------------------------------------
*/

/* ===== 画像 + テキストの2カラム構成 ===== */
.c_outline01_section{

}

.c_outline01_section .outline_flex{
	max-width: 1080px;
	margin-inline: auto;

}

.c_outline01_section .outline_flex{
	max-width: 1080px;
	margin-inline: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap:40px;
}

.c_outline01_section .outline_flex.reverce{
	flex-direction: row-reverse;
}

.c_outline01_section .outline_img_area{
	width:420px;
	flex-shrink: 0;
}


.c_outline01_section .outline_text_area{
	width: 100%;
	max-width: 550px;
}

.c_outline01_section .outline_table{
	margin-top: 40px;
}

.c_outline01_section .outline_item{
	padding:16px 0;
	display: flex;
	align-items: flex-start;
	line-height: 1.75;
}

.c_outline01_section .outline_item + .outline_item{
	border-top:1px solid var(--base_font_color);
}

.c_outline01_section .outline_title{
	flex-shrink: 0;
	width:140px;
	padding-right: 10px;
}

/*
------------------------------------
シンラ様用 シンラの木セクション
------------------------------------
*/

.c_shinra_tree_section{
	--base_color02:#719783;
	padding-top: 120px;
	padding-bottom: 140px;
	background-color: var(--base_color02);
	color:#fff;
}

.c_shinra_tree_section .shinra_tree_bg{
	width:1424px;
	aspect-ratio: 1 / calc(130 / 1424);
	background-size: contain;
	background-image: url('../img/top/tree_deco.png');
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.c_shinra_tree_section .shinra_tree_text{
	margin-top: 4px;
	line-height: 2;
}

.c_shinra_tree_section .shinra_tree_img{
	max-width: 315px;
	margin-inline: auto;
	margin-top: 36px;
}

.c_shinra_tree_section .shinra_tree_count_area{
	margin-top: 20px;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.c_shinra_tree_section .shinra_tree_count_head{
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.3em;
}

.c_shinra_tree_section .shinra_tree_count{
	font-size: 32px;
	font-weight: 700;
}

.c_shinra_tree_section .shinra_tree_count span{
	font-size: 64px;
}

.c_shinra_tree_section .shinra_tree_date{
	margin-top: 12px;
	font-size: 24px;
	font-weight: 500;
	letter-spacing: 0.3em;
}



/*
------------------------------------
記事一覧関係 コンポーネント
------------------------------------
*/

/* ===== スライド形式 ===== */
.c_article_slide_section{

}

.c_article_slide_section .container{
	position: relative;
}

.c_article_slide_section .head_area{
	max-width: 1080px;
	margin-inline: auto;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap:24px 48px;
	padding-right: 400px;
}

.c_article_slide_section .slide_area{
	margin-top: 44px;
	max-width: 1080px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
}

.c_article_slide_section .slide_inner{
	flex-shrink: 0;
	width:100vw;
}



.c_article_slide_section .article_slide{
	width:350px;
	margin-inline: 20px;
}

.c_article_slide_section .article_thumb_frame{
	position: relative;
}

.c_article_slide_section .article_thumb{
	aspect-ratio: 1 / calc(230 / 350);
	overflow: hidden;
	border-radius: 9999px;
	border: 1px solid var(--base_font_color);
}

.c_article_slide_section .article_category{
	min-height: 28px;
	min-width: 132px;
	max-width: 90%;
	padding:4px 16px;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%, 50%);
	background-color: #fff;
	border:1px solid var(--base_black);
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 9999px;
}

.c_article_slide_section .article_text_frame{
	margin-top: 28px;
	
	max-width: 285px;
	margin-inline: auto;
}

.c_article_slide_section .article_title{
	line-height: 1.5;
}

.c_article_slide_section .article_date{
	margin-top: 16px;
	font-size: 14px;
	text-align: center;
}

.c_article_slide_section .article_new{
	width:60px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #FBCF70;
	color:#fff;
	position: absolute;
	z-index: 2;
	top:0;
	left:0;
	font-size: 14px;
	font-weight: 900;
}

.c_article_slide_section .article_nav_flex{
	position: absolute;
	right:0;
	bottom:calc(100% + 56px);
	display: flex;
	align-items: flex-start;
	gap:16px;
}

.c_article_slide_section .article_nav{
	width:60px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--base_color);
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
}

.c_article_slide_section .swiper-wrapper{
	justify-content: center;
}

.c_article_slide_section .is-swiper-active .article_nav{
	opacity: 1;
	pointer-events: auto;
}

.c_article_slide_section .is-swiper-active .swiper-wrapper{
	justify-content: flex-start;
}

.c_article_slide_section .article_nav.prev{
	padding-right: 4px;
}
.c_article_slide_section .article_nav.next{
	padding-left: 4px;
}

.c_article_slide_section .article_nav svg{
	width:16px;
}
.c_article_slide_section .article_nav path{
	stroke:var(--button_text_color);
}


/* ===== ページネーション付きリスト形式 ===== */

.c_article_list_section {

}

.c_article_list_section .article_list{
	margin-top: 40px;
}

.c_article_list_section .article_item{
	border-bottom:1px solid var(--base_font_color);
}

.c_article_list_section .article_block{
	display: block;
	padding-top: 48px;
	padding-bottom: 48px;
	padding-right: 56px;
	position: relative;
}

.c_article_list_section .article_block svg{
	position: absolute;
	top: 50%;
	right:16px;
	transform: translateY(-50%);
	width:16px;
}

.c_article_list_section .article_block svg path{
	stroke: var(--base_font_color);
}

.c_article_list_section .article_flex{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap:32px;
	max-width: 1020px;
}

.c_article_list_section .article_thumb{
	flex-shrink: 0;
	width:220px;
	aspect-ratio: 1 / calc(144 / 220);
	overflow: hidden;
	border-radius: 5px;
	border: 1px solid var(--base_font_color);
}

.c_article_list_section .article_thumb img{
	width:100%;
	height:100%;
	object-fit: cover;
}

.c_article_list_section .article_text_area{
	width:100%;
	max-width: 690px;
}

.c_article_list_section .article_head_flex{
	display: flex;
	align-items: flex-start;
	gap:16px;
}

.c_article_list_section .article_date{
	min-width: 95px;
}

.c_article_list_section .article_title{
	margin-top: 16px;
	font-size: 20px;
	font-weight: 700;
}

.c_article_list_section .article_excerpt{
	margin-top: 16px;
	line-height: 1.5;
}


/*
------------------------------------
記事詳細関係
------------------------------------
*/

.c_single_block{
	line-height: 2;
    letter-spacing: 0.05em;
}

.c_single_block p{
	margin:24px 0;
}

.c_single_block h2{
	font-size: var(--c_sub_font_size);
	font-weight: 700;
	margin:32px 0;
	line-height: 1.5;
}

.c_single_block h3{
	font-size: 20px;
	font-weight: 700;
	margin:24px 0;
	line-height: 1.5;
}

.c_single_block .wp-block-image {
	margin:24px 0;
}



/* ===== 記事詳細パターン1 ===== */
.single01_section{
	padding-top: 160px;
}

.single01_section .article_frame{
	max-width: 750px;
	margin-inline: auto;
}

.single01_section .article_date{
	margin-top: 16px;
}

.single01_section .article_title{
	margin-top: 16px;
	font-size: 20px;
	font-weight: 700;
}

.single01_section .single_frame{
	margin-top: 120px;
}

/*
------------------------------------
お問い合わせ 関係 コンポーネント
------------------------------------
*/

/* ===== お問い合わせページの説明テキスト ===== */
.c_contact_text_section{

}

.c_contact_text_section .contact_text{
	margin-top: 16px;
	line-height: 2;
}

.c_contact_text_section .contact_remark{
	margin-top: 8px;
	font-size: 12px;
	line-height: 2;
}


/* ===== お問い合わせフォーム ===== */
.c_contact_form_section{
	position: relative;
}

.c_contact_form_section .form_bg{
	position: absolute;
	width:100%;
	height:100%;
	top:0;
	left:0;
}

.c_contact_form_section .contact_area{
	position: relative;
	z-index: 2;
}

.c_contact_form_section .contact_frame{
	position: relative;
	padding-top: 120px;
	padding-bottom: 120px;
}

.c_contact_form_section .form_box{
	max-width: 1000px;
	margin-inline: auto;
}

.c_contact_form_section .form_line{
	background-color: #fff;
	border-radius: 5px;
	padding:12px 40px;
	display: flex;
	align-items: flex-start;
}

.c_contact_form_section .form_line + .form_line{
	margin-top: 16px;
}

.c_contact_form_section .form_label{
	width:200px;
	flex-shrink: 0;
	padding-right: 8px;
	min-height: 40px;
	display: flex;
	align-items: center;
	gap:8px;
	font-weight: 500;
	line-height: 1.3;
	position: relative;
}


.c_contact_form_section .form_line:has([aria-required="true"]) .form_label::after,
.c_contact_form_section .form_line:has(.wpcf7-validates-as-required) .form_label::after,
.c_contact_form_section .form_line:has(input[type="radio"]) .form_label::after{
	content:'※必須';
	font-size: 12px;
	font-weight: 400;
	line-height: 1.3;
	color:#F00;

}
	

.c_contact_form_section .form_right{
	width:100%;
}

.c_contact_form_section .text_input{
	display: block;
	width:100%;
	height:40px;
	border:none;
	background: none;
	padding-inline: 12px;
	font-weight: 500;
}

.c_contact_form_section .text_input::placeholder,
.c_contact_form_section textarea::placeholder{
	color:var(--base_green);
	opacity: 0.5;
}

.c_contact_form_section .wpcf7-radio{
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap:16px 24px;
	padding-top: 6px;
}

.c_contact_form_section .wpcf7-list-item{
	margin: 0;
}

.c_contact_form_section .wpcf7-radio label{
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	min-height: 28px;
	padding:4px 16px;
	border-radius: 9999px;
	border:1px solid var(--base_color);
	line-height: 1.3;
	color:var(--base_color);
}

.c_contact_form_section .wpcf7-radio label input{
	display: none;
}

.c_contact_form_section .wpcf7-radio label:has(input:checked){
	background-color: var(--base_color);
	color:var(--base_color_text);
}

.c_contact_form_section textarea{
	width:100%;
	height:256px;
	border:none;
	background: none;
	padding: 8px 12px;
	font-size: 15px;
	font-weight: 700;
}

.c_contact_form_section .privacy_box{
	width: 100%;
	height:250px;
	overflow-y: auto;
	padding:12px 0;
	font-size: 14px;
	line-height: 1.5;
}

.c_contact_form_section .agree_area{
	width: fit-content;
    margin-inline: auto;
    margin-top: 16px;
}

.c_contact_form_section .agree_area label{
	display: flex;
	align-items: center;
	gap:24px;
	color:#fff;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.5;
	cursor: pointer;
	position: relative;
}

.c_contact_form_section .agree_area label input{
	display: none;
}

.c_contact_form_section .agree_area label::before{
	content:'';
	width:32px;
	height:32px;
	flex-shrink: 0;
	border-radius: 50%;
	background-color: #fff;
	border:1px solid var(--base_color);
}

.c_contact_form_section .agree_area label::after{
	content: '';
    width: 22px;
    height: 13px;
    background-image: url(../img/common/icon_check_white.svg);
    position: absolute;
    top: 10px;
    left: 6px;
	opacity: 0;
}


.c_contact_form_section .agree_area label:has(input:checked)::before{
	background-color: var(--base_color);
}
.c_contact_form_section .agree_area label:has(input:checked)::after{
	opacity: 1;
}

.c_contact_form_section .recaptcha_text {
    text-align: center;
    font-size: 13px;
    margin-top: 24px;
	color:#fff;
}

.c_contact_form_section .recaptcha_text a{
	border-bottom: 1px solid;
	color:#fff;
}

.c_contact_form_section .submit_area {
    margin-top: 40px;
    width: fit-content;
    margin-inline: auto;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
}

.c_contact_form_section .submit_frame{
	position: relative;
}

.c_contact_form_section .submit_frame::after{
	content:'';
	width:7px;
	height:13px;
	background-image: url('../img/common/icon_angle_right_white.svg');
	position: absolute;
	right:32px;
	top:19px;
	pointer-events: none;
}

.c_contact_form_section .submit{
	width: 236px;
	height: 51px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 9999px;
	background-color: var(--base_color);
	transition-duration: 0.4s;
	cursor: pointer;
	font-weight: 700;
	color:#fff;
	line-height: 1.2;
	border:none;
	font-size: 16px;
	letter-spacing: 0.05em;
}

@media(any-hover:hover){
	.c_contact_form_section .submit:hover{
		opacity: 0.7;
	}
}


/*
------------------------------------
ページ下部 バナー関係
------------------------------------
*/

/* ===== パターン1 ===== */
.c_banner01_section{
	
}
.c_banner01_section:has(.banner_list){
	margin-top: var(--c_sec_space);
}

.c_banner01_section .banner_list{
	max-width: 1080px;
	margin-inline: auto;
}

.c_banner01_section .banner_item + .banner_item{
	margin-top: 40px;
}

.c_banner01_section .banner_card{
	display: flex;
	border-radius: 10px;
	overflow: hidden;
	color: var(--banner_text_color);
	background-color: var(--banner_color);
}

.c_banner01_section .banner_img{
	flex-shrink: 0;
	width:446px;
}

.c_banner01_section .banner_img img{
	width:100%;
	min-height:100%;
	aspect-ratio: 1 / calc(276 / 446);
	object-fit: cover;
}

.c_banner01_section .banner_contents_frame{
	width: 100%;
	display: flex;
	align-items: center;
	padding:24px 40px;
}

.c_banner01_section .banner_contents{
	width: 100%;
}

.c_banner01_section .banner_head{
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap:8px;
}

.c_banner01_section .banner_head_min{
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 1em;
}
.c_banner01_section .banner_head_big{
	font-size: 32px;
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: 0.3em;
}

.c_banner01_section .banner_text{
	margin-top: 8px;
	line-height: 1.5;
}

.c_banner01_section .banner_button_list{
	margin-top: 24px;
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap:16px 24px;
}



/*
------------------------------------
下層mv
------------------------------------
*/

.page_mv_section{

}


/*
------------------------------------
パンクズ
------------------------------------
*/

.c_bread_section{
	padding:40px 0;
}

.c_bread_section .bread_list{
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap:15px;
	line-height: 1.2;
	letter-spacing: 0;
}

.c_bread_section .bread_list a{
	color: #00436d;
	transition-duration: 0.4s;
}

@media(any-hover:hover){
	.c_bread_section .bread_list a:hover{
		opacity: 0.5;
	}
}

.c_bread_section .bread_list .arrow{
	width: 6px;
	height: 10px;
	background-image: url('../img/c/angle_right_blue.png');
	margin-top: 1px;
}