@charset "utf-8";



/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");


/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Cabin:ital,wght@0,400..700;1,400..700&family=Cormorant:ital,wght@0,300..700;1,300..700&family=Josefin+Sans:ital,wght@0,100..700;1,100..700&family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&family=Quicksand:wght@300..700&family=Shippori+Mincho&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');


/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");


/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("slide.css");
@import url("animation.css");


/*CSSカスタムプロパティ（サイト全体を一括管理する為の設定）
---------------------------------------------------------------------------*/
:root {

	--primary-color: #000;
	--primary-inverse-color: #fff;
	/*primary-colorの対として使う色*/

	--txtlink-color: #333;
	--error-color: #d14527;

	--global-space: 10vw;
	/*サイト内の余白の一括管理用。画面幅100%＝100vwです。*/
}


/*animation1のキーフレーム設定（開閉ブロックのアニメーションに使用）
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {
		left: -200px;
	}

	100% {
		left: 0px;
	}
}



/*fadeInのキーフレーム設定（テキストのフェードインに使用）
---------------------------------------------------------------------------*/
@keyframes fadeIn {
	0% {
		opacity: 0;
		transform: scale(0.8);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}


/*全体の設定
---------------------------------------------------------------------------*/
body * {
	box-sizing: border-box;
}

html,
body {
	height: 100%;
	font-size: 13px;
}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

	html,
	body {
		font-size: 16px;
	}

}


body {
	margin: 0;
	padding: 0;
	font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "Osaka", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
	font-optical-sizing: auto;
	font-weight: normal;
	font-style: normal;
	font-feature-settings: "palt";
	-webkit-text-size-adjust: none;
	background: #fff;
	color: #000;
	line-height: 2;
}

/*リセット*/
figure {
	margin: 0;
}

dd {
	margin: 0;
}

h1,
h2,
h3,
h4,
p,
nav,
ul,
li,
ol {
	margin: 0;
	padding: 0;
}

ul {
	list-style: none;
}

/*table全般の設定*/
table {
	border-collapse: collapse;
}

/*画像全般の設定*/
img {
	border: none;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

/*videoタグ*/
video {
	max-width: 100%;
}

/*iframeタグ*/
iframe {
	width: 100%;
}

/*section*/
section {
	padding: 0 0 50px 0;

}

section .inner {
	width: 90%;
	margin: auto;
}

.sec_bg {
	width: 100%;
	height: 500px;
}

.sec_bg .bg_inner {
	background-color: rgba(0, 0, 0, 0.6);
	height: 500px;
}

/*他*/
input {
	font-size: 1rem;
}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: var(--txtlink-color);
	transition: 0.3s;
	text-decoration: underline;
}

/*マウスオン時*/
a:hover {
	opacity: .6;
}



/*Google Fontsを使う場合のclass。Google Fonts本体は冒頭で読み込んでいます。
---------------------------------------------------------------------------*/
.font-ptsuns {
	font-family: "PT Sans", sans-serif;
	font-weight: 700;
	font-style: normal;
}


/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
	padding: 0 var(--global-space);
}

.inner {
	margin: auto;
	width: 90%;
	max-width: 1300px;
	padding: 5% 0;
}

/*header（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header.global {
	background: url(../images/global/bg_grange.webp) no-repeat top;
	align-items: center;
	padding: 0 2%;
	height: 80px;
	position: fixed;
	width: 100%;
	z-index: 999;
}

header.global h1 {
	width: 70px;
	padding: 3px 0 3px 0;
}

header.global nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

header.global nav .menu_wrap {
	display: flex;
	gap: 3em;
}

header.global nav ul {
	display: flex;
}

header.global nav ul.menu {
	gap: 2em;

	li {
		text-align: center;
		display: flex;
	}

	li+li {
		position: relative;
	}

	li+li::before {
		content: "";
		display: block;
		height: 1em;
		border-left: 1px solid #999;
		position: absolute;
		top: 0;
		bottom: 0;
		left: -0.9em;
		margin: auto;
		transform: rotate(45deg);
	}
}

header.global nav ul.sns {
	gap: 1em;
}


header nav ul a {
	color: var(--primary-inverse-color);
	line-height: 1;
	font-size: 1.1rem;
	text-decoration: none;

	span {
		font-size: .7rem;

		display: block;

	}
}



/*メニューブロック初期設定
---------------------------------------------------------------------------*/
/*メニューをデフォルトで非表示*/
.small-screen #menubar {
	display: none;
}


/*3本バーをデフォルトで非表示*/
#menubar_hdr.display-none {
	display: none;
}

/*ドロップダウンをデフォルトで非表示*/
.ddmenu_parent ul {
	display: none;
}

/*ddmenuを指定しているメニューに矢印アイコンをつける設定*/
a.ddmenu::before {
	font-family: "Font Awesome 6 Free";
	/*Font Awesomeを使う指示*/
	content: "\f078";
	/*使いたいアイコン名（Font Awesome）をここで指定*/
	font-weight: bold;
	/*この手の設定がないとアイコンが出ない場合があります*/
	margin-right: 0.5em;
	/*アイコンとテキストとの間に空けるスペース*/
}


/*大きな端末、小さな端末、共通のドロップダウンメニュー設定
---------------------------------------------------------------------------*/
/*ドロップダウンブロック*/
.large-screen #menubar ul ul,
.small-screen #menubar ul ul {
	animation: opa1 0.5s 0.1s both;
	/*0.1秒待機後、0.5秒かけてフェードイン表示*/
}

/*小さな端末用の開閉ブロック（678px以下）
---------------------------------------------------------------------------*/
.small-screen header h1 {
	z-index: 9999999 !important;
	width: 70px !important;
	padding: 7px 0;
	position: fixed;
	top: 10px !important;
	left: 10px !important;
}

.small-screen header {
	display: block !important;
	background: none !important;
	padding: 0 2%;
	height: 200px !important;
	width: 50% !important;
	position: fixed !important;
	z-index: 998 !important;
	overflow: auto;
}

.small-screen header:after {
	content: "";
	background: rgba(0, 0, 0, 0.7);
	clip-path: polygon(100% 0, 0 0, 0 99%);
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.small-screen #menubar.display-block {
	margin: auto !important;
	position: fixed;
	z-index: 100;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	padding-top: 150px;
	background: url(../images/global/bg_grange.webp) no-repeat top;
	animation: animation1 0.2s both;
	display: block;
	z-index: -1;
}

.small-screen #menubar.display-block ul {
	margin: auto;
	display: flex;
	flex-direction: column;
	width: 60%;
	gap: 3em !important;
}

.small-screen #menubar.display-block ul li {
	margin: 0 0 0 1em !important;
	text-align: left;
	display: flex;
	font-size: 2rem !important;
	padding: 0 !important;
	position: relative;
}

.small-screen #menubar.display-block ul.menu a {
	font-size: 1.4rem !important;
}

.small-screen #menubar.display-block ul.menu li:before {
	content: "";
	display: block;
	height: 0 !important;
	width: .8em !important;
	border-bottom: 1px solid #fff !important;
	position: absolute;
	top: 0 !important;
	bottom: 0 !important;
	left: -1.2em !important;
	margin: auto;
	transform: none !important;
}

.small-screen #menubar.display-block ul li span {
	font-size: 1.2rem !important;
	line-height: 2 !important;
}


/*メニュー１個あたりの設定*/
.small-screen #menubar nav ul li {
	border: 1px solid #ccc;
}

.small-screen #menubar.display-block ul.sns {
	margin: 40px auto 0 auto !important;
	align-items: center;

	li {
		margin: 0 !important;
	}

	a {
		font-size: 2rem;
	}

}



/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック*/
#menubar_hdr {
	animation: opa1 0s 0.5s both;
	position: fixed;
	z-index: 999;
	cursor: pointer;
	top: 10px;
	left: 80px;
	width: 70px;
	height: 50px;
	padding: 15px;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: transform 0.5s;
}

#menubar_hdr div {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

/*バーの設定*/
#menubar_hdr div span {
	display: block;
	width: 100%;
	height: 1px;
	background-color: #fff;
	transition: all 0.5s ease-in-out;
	position: absolute;
}


#menubar_hdr div span:nth-child(1) {
	top: 0;
}

#menubar_hdr div span:nth-child(2) {
	top: 50%;
	width: 50%;
	transform: translateY(-50%);
}

#menubar_hdr div span:nth-child(3) {
	bottom: 0;
}

#menubar_hdr.ham div span:nth-child(1) {
	top: 50%;
	transform: translateY(-50%) rotate(30deg);
}

#menubar_hdr.ham div span:nth-child(2) {
	opacity: 0;
}

#menubar_hdr.ham div span:nth-child(3) {
	top: 50%;
	transform: translateY(-50%) rotate(-30deg);
}


/*main
---------------------------------------------------------------------------*/
/*mainブロック（横スライドslick対策）*/
main * {
	min-width: 0;
}

main {
	overflow: hidden;
}

main h3 {
	margin-top: 0;
	line-height: 1.5;
	font-size: 1.8rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}

main h4 {
	margin-top: 0;
	line-height: 1.5;
	font-size: 1.8rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}


/*.cont_box 基本構成
---------------------------------------------------------------------------*/

.cont_box {
	display: flex;
}

.cont_box.rv {
	flex-direction: row-reverse;
}

.cont_box.cn {
	flex-direction: column;
	width: 90%;
	max-width: 1200px;
	margin: auto;
}

.cont_box.cn figure {
	width: 100%;
}

.cont_box figure {
	width: 70%;
	z-index: -1;
}

.txt_box {
	position: relative;
}

.txt_box::before {
	position: absolute;
	content: "";
	width: 100%;
	height: 100%;
	background: #fff;
	border: 1px solid;
	clip-path: polygon(100% 0, 100% 85%, 82% 100%, 0 100%, 0 0);
	z-index: -1;
	top: 0;
	left: 0;
}

.txt_box::after {
	content: "";
	width: 220px;
	height: 160px;
	background: url(/images/global/txt_box_bg.svg) no-repeat center;
	border: 0;
	margin: 0;
	padding: 0;
	position: absolute;
	right: -5%;
	bottom: -6%;
}

.txt_box.right {
	padding: 4% 10% 5% 6%;
	margin-left: -25%;
	margin-right: 5%;
	margin-top: 18%;
}

.txt_box.right .cont_title {
	margin: auto;
	position: absolute;
	font-size: 3.6rem;
	line-height: 1;
	writing-mode: vertical-rl;
	right: 6%;
	top: 8%;
}

.txt_box p {
	font-size: 14px;
}

.txt_box.left {
	padding: 4% 6% 5% 10%;
	margin-right: -25%;
	margin-left: 5%;
	margin-top: 23%;
}

.txt_box.left .cont_title {
	margin: auto;
	position: absolute;
	font-size: 3.6rem;
	line-height: 1;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	left: 4%;
	top: 8%;
}

.txt_box.center {
	text-align: center;
	padding: 6%;
	width: 90%;
	margin: -8% auto 0;

	.cont_title {
		font-size: 3rem;
	}
}

/* 768px以下 */

.small-screen {

	main h3 {
		font-size: 2.2rem;
		margin: auto;
	}

	main h4 {
		letter-spacing: 0.005em;
		font-size: 1.7rem;
	}

	.cont_box {
		flex-direction: column;
	}

	.cont_box figure {
		width: 100%;
	}

	.txt_box.right {
		padding: 4% 17% 10% 6%;
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		margin-top: 0;
	}

	.txt_box.left {
		padding: 4% 4% 10% 17%;
		width: 100%;
		margin-right: 0;
		margin-left: 0;
		margin-top: 0;
	}

	.txt_box.right .cont_title {
		top: 4%;
		right: 3%;
	}

	.txt_box.left .cont_title {
		top: 4%;
		left: 3%;
	}



}




/*フッター設定
---------------------------------------------------------------------------*/


footer {
	font-size: 0.8rem;
}

footer .inner {
	display: flex;
	width: 100%;
	margin: auto;
	max-width: 1300px;
	padding: 5%;
	justify-content: space-between;
}


footer .inner .logo {
	width: 80%;
}

footer h1 {
	font-size: 1.6rem;
	line-height: 1.2;
	margin: 0 auto 10px;
	border-bottom: 1px solid #000;
	display: inline-block;
}

footer h1 span {
	font-size: .8rem;
	font-weight: 300;
}

footer .inner dl {
	display: flex;
}

footer .inner dl dt {
	width: 100%;
	padding-right: 5%;
}

footer .inner dl dd {
	width: 100%;
}

footer #copyright {
	font-size: 0.7rem;
	width: 100%;
	text-align: center;
	padding: 8px 0;
	background: var(--primary-color);
	color: var(--primary-inverse-color);
}

/*フッターメニュー
---------------------------------------------------------------------------*/

#footermenu {
	font-size: 0.8rem;
	display: flex;
	justify-content: space-between;

	li {
		display: inline-block;
		margin: 0 12px;

		&:first-of-type {
			margin-left: 0;
		}

		a {
			text-decoration: none;
		}
	}

	.menu {

		li+li {
			position: relative;
		}

		li+li::before {
			content: "";
			display: block;
			height: 1em;
			border-left: 1px solid #999;
			position: absolute;
			top: 0;
			bottom: 0;
			left: -0.9em;
			margin: auto;
			transform: rotate(45deg);
		}
	}

	.sns {
		font-size: 1.2rem;
	}

}

/* 768px以下 */
@media screen and (max-width: 1100px) {

	footer .inner dl dd {
		width: 70%;
	}

}

/* 768px以下 */

.small-screen {

	footer {
		font-size: 1.1rem;
		line-height: 1.7;
	}

	footer .inner {
		flex-direction: column;
		width: 100%;
	}

	footer .inner .logo {
		margin: auto;
		width: 70%;
		padding-right: 1%;
	}

	footer h1 {
		font-size: 1.8rem;
	}

	footer h1 span {
		font-size: 1rem;

	}

	footer .inner dl {
		flex-direction: column;
	}

	footer .inner dl dt {
		width: 100%;
		padding: 0 0 5% 0;
	}

	#footermenu {
		flex-direction: column;
		font-size: 1.2rem;

		.sns {
			font-size: 2rem;
		}
	}


}



/*テキストのフェードイン設定
---------------------------------------------------------------------------*/
/* 初期状態でテキストを非表示にする */
.fade-in-text {
	visibility: hidden;
}

/* アニメーションを適用するクラス。
animationの行の「0.05s」が文字の出現のなめらかさで、大きいほどなめらかに出てきます。
１文字ずつの出現する際の時差は、js/main.jsの「テキストのフェードイン効果」の中にある「0.2」で調整できます。*/
.char {
	display: inline-block;
	opacity: 0;
	animation: fadeIn 0.05s linear both;
}


/*icon-bg1*/
.new .icon-bg1 {
	background: var(--primary-color) !important;
	/*背景色。css冒頭で指定しているprimary-colorを読み込みます*/
	color: var(--primary-inverse-color) !important;
	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/
}

/*icon-bg2*/
.new .icon-bg2 {
	background: #ff0000;
	/*背景色*/
	color: #fff;
	/*文字色*/
}

/*画面幅700px以上の追加指定*/
@media screen and (min-width:700px) {

	/*ブロック全体*/
	.new {
		display: grid;
		/*gridを使う指定*/
		grid-template-columns: auto 1fr;
		/*横並びの指定。日付とアイコン部分の幅は自動で、内容が入るブロックは残り幅一杯とる。*/
	}

}




/*ボタン）
---------------------------------------------------------------------------*/
/*ボタン共通*/


.btn {
	display: inline-block;
	clip-path: polygon(0 0, 100% 0, 100% 75%, 90% 100%, 0 100%);
	font-size: 1rem;
	background: var(--primary-color) !important;
	color: var(--primary-inverse-color) !important;
	padding: 5px 45px 5px 15px;
	position: relative;
	text-decoration: none;


	&::after {
		content: '';
		position: absolute;
		top: 50%;
		right: 15px;
		transform: translateY(-50%);
		width: 15px;
		height: 1px;
		background-color: var(--primary-inverse-color);
		transition-duration: 0.5s;
	}

	&:hover::after {
		width: 25px;
		transition-duration: 0.5s;
	}

}



/*bg1背景色がついたブロック
---------------------------------------------------------------------------*/
.bg1 {
	position: relative;
	background: var(--primary-color);
	/*背景色。css冒頭で指定しているprimary-colorを読み込みます*/
	color: var(--primary-inverse-color);
	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/

	/*以下は変更不要*/
	margin-left: calc(-1 * var(--global-space));
	margin-right: calc(-1 * var(--global-space));
	padding-left: var(--global-space);
	padding-right: var(--global-space);
}

.bg1 a {
	color: inherit;
}


/*画面横ボタン（非表示）
---------------------------------------------------------------------------*/
#message-parts a {
	display: none;
	text-decoration: none;
	display: block;
	writing-mode: vertical-rl;
	text-orientation: upright;
	background: #92464f;
	/*背景色*/
	color: #fff;
	/*文字色*/
	position: fixed;
	/*スクロールしてもボタンが移動しないようにする指定。移動させたいならfixedをabsoluteにして下さい。*/
	z-index: 2;
	right: 0px;
	/*ボタンの右からの配置場所指定*/
	top: 170px;
	/*ボタンの上からの配置場所指定*/
	padding: 20px 15px;
	/*ボタン内の余白。上下、左右。*/
	border-radius: 5px 0px 0px 5px;
	/*角を丸くする指定。左上、右上、右下、左下の順番。*/
	letter-spacing: 0.2rem;
	/*文字間隔を少しだけ広く*/
	font-size: 0.8rem;
	/*文字サイズを80%*/
}

/*ふきだしアイコン*/
#message-parts i {
	transform: scale(1.3);
	/*1.3倍に*/
	margin-bottom: 10px;
	/*下に空ける余白*/
}

/*マウスオン時に少し明るくする*/
#message-parts a:hover {
	filter: brightness(1.2);
}





/*その他
---------------------------------------------------------------------------*/
.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

.color-check,
.color-check a {
	color: #ff0000 !important;
}

.l {
	text-align: left !important;
}

.c {
	text-align: center !important;
}

.r {
	text-align: right !important;
}

.ws {
	width: 95%;
	display: block;
}

.wl {
	width: 95%;
	display: block;
}

.mb0 {
	margin-bottom: 0px !important;
}

.mb10 {
	margin-bottom: 10px !important;
}


.mb20 {
	margin-bottom: 20px !important;
}

.mb30 {
	margin-bottom: 30px !important;
}

.mt10 {
	margin-top: 10px !important;
}

.mt20 {
	margin-top: 20px !important;
}

.mt30 {
	margin-top: 30px !important;
}

.look {
	display: inline-block;
	padding: 0px 10px;
	background: #fff;
	color: #333;
	border: 1px solid #ccc;
	border-radius: 3px;
	margin: 5px 0;
	word-break: break-all;
}

.small {
	font-size: 0.75em;
}

.large {
	font-size: 2em;
	letter-spacing: 0.1em;
}

.pc {
	display: none;
}

.sp {
	display: block;
}

.dn {
	display: none !important;
}

.block {
	display: block !important;
}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

	.ws {
		width: 48%;
		display: inline;
	}

	.pc {
		display: block;
	}

	.sp {
		display: none;
	}

}




/*下層ページ
---------------------------------------------------------------------------*/

body.page main {
	padding-top: 80px;
}


/* 768px以下 */

@media screen and (max-width: 768px) {
	body.page main {
		padding-top: 0;
	}

}