@charset "utf-8";

/* ==========================================================================
   共通 (Common)
   ========================================================================== */

* {
	margin: 0;
	padding: 0;
	word-break: break-all;
	word-wrap: break-word;
	box-sizing: border-box;
	line-height: 150%;
}

body {
	font-size: 19px;
	color: #333;
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}

img {
	border: none;
	font-size: 0;
	vertical-align: top;
}

ul {
	list-style-type: none;
}

a {
	text-decoration: none;
	color: #333;
}

a:hover {
	text-decoration: none;
}

h1 {
	font-size: 12px;
	font-weight: normal;
}

h1, h2, h3, h4,
.pp1ttl {
	font-weight: 600;
}

address {
	font-style: normal;
}

section p {
	line-height: 200%;
}

video {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

#google_translate_element2 {
	display: none !important;
}


/* ==========================================================================
   マージン (Margin)
   ========================================================================== */

.mt10, .mt10ul li { margin-top: 10px; }
.mt20, .mt20ul li { margin-top: 20px; }
.mt30, .mt30ul li { margin-top: 30px; }
.mt50                { margin-top: 50px; }
.mt60                { margin-top: 60px; }
.mt1adj              { margin-top: 60px; }
.mt2adj              { margin-top: 120px; }


/* ==========================================================================
   テキスト (Text)
   ========================================================================== */

.tar  { text-align: right; }
.tac  { text-align: center; }
.tal  { text-align: left; }
.ti1  { text-indent: 1em; }
.ti2, .ti2ul li { text-indent: -1em;    padding-left: 1em; }
.ti3, .ti3ul li { text-indent: -1.5em; padding-left: 1.5em; }
.fw_b, .fwB { font-weight: bold; }


/* ==========================================================================
   カラー (Color)
   ========================================================================== */

.col1, .col1ul li:before, .col1icon:before { color: #FFFFFF; }
.col2, .col2ul li:before, .col2icon:before { color: #DD0000; }
.col3, .col3ul li:before, .col3icon:before { color: #643282; }

/* 背景色 */
.bg1col { background-color: #FFFFFF; }
.bg2col {
	background: url("images/01_3_titleback_2x.webp") no-repeat top center / 1600px 240px #FDF6FA;
	height: 240px;
}
.bg3col { background-color: #643282; }
.bg4col { background-color: #FDF6FA; }


/* ==========================================================================
   アイコン (Icon)
   ========================================================================== */

[class*="icon"] li               { text-indent: -1.5em; padding-left: 1.5em; }
.icon1:before, .icon1ul li:before, .icon1dl dt:before { content: "★"; margin-right: .5em; }
.icon2:before, .icon2ul li:before, .icon2dl dt:before { content: "■"; margin-right: .5em; }
.icon3:before, .icon3ul li:before, .icon3dl dt:before { content: "●"; margin-right: .5em; }


/* ==========================================================================
   フォントサイズ (Font Size)
   ========================================================================== */

.fsS  { font-size: 22px; }
.fsM  { font-size: 26px; }
.fsL  { font-size: 30px; }
.fs16 { font-size: 16px; }
.fs19 { font-size: 19px; }
.lh200, .lh200ul li, .lh200dl dd { line-height: 200%; }


/* ==========================================================================
   ボーダーラジウス (Border Radius)
   ========================================================================== */

.br05, .br05ul li         { border-radius:  5px; }
.br10, .br10ul li, .br10a a { border-radius: 10px; }
.br15, .br15ul li         { border-radius: 15px; }
.br25, .br25ul li         { border-radius: 25px; }
.br50                     { border-radius: 50px; }


/* ==========================================================================
   リスト (List)
   ========================================================================== */

.ls_adj      { margin-left: 1em; }
.ls_disc li  { list-style: disc; margin-left: 1em; }


/* ==========================================================================
   カラム・フレックス (Column / Flex)
   ========================================================================== */

[class*="fbCom"] { display: flex; flex-wrap: wrap; }
.fbCom1          { justify-content: space-between; }
.fbComCen        { align-items: center; justify-content: center; align-content: center; }

.vCen,  .vCenA  a { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; align-content: center; }
.vCen2, .vCenA2 a { display: flex; flex-wrap: wrap; align-items: center; align-content: center; }


/* ==========================================================================
   見出し (Headline)
   ========================================================================== */

.hl1 {
	background: url("images/icon_tltle_2x.webp") no-repeat center top / 50px 50px;
	padding-top: 70px;
	text-align: center;
}

.hl2 {
	background-color: #643282;
	border: 1px solid #707070;
	color: #FFFFFF;
	padding: 5px 10px;
}


/* ==========================================================================
   コンテンツ共通 (Content Common)
   ========================================================================== */

.posRelCom     { position: relative; }
[class*="adsCom"] { position: absolute; }

.pad10 { padding: 10px; }
.pad20 { padding: 20px; }
.pad40 { padding: 40px; }

.cBox1 { border: 1px solid #707070; }
.cBox2 { padding-left: 150px; padding-right: 150px; }
.cBox3 { padding-left: 115px; text-indent: -115px; }
.cBox4 { padding-top: 30px; }
.cBox4 li { margin-top: 30px; }
.cBox5 { border-bottom: 4px solid #B29310; padding-bottom: 10px; }
.cBox6 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px 58px; }


/* ==========================================================================
   パンくずリスト (Breadcrumbs)
   ========================================================================== */

.breadcrumbs ol          { list-style: none; overflow: hidden; font-size: 12px; }
.breadcrumbs li          { float: left; }
.breadcrumbs li::after   { content: '>'; display: inline-block; padding: 0 10px; }
.breadcrumbs li:last-child::after { display: none; }


/* ==========================================================================
   リンク・ボタン (Link / Button)
   ========================================================================== */

[class*="lnk"], .listLnk a {
	transition: all 0.75s;
	display: inline-block;
}
[class*="lnk"]:hover { opacity: .8; }

.lnk1btn,
.lnk2btn {
	border-width: 6px;
	border-style: solid;
	background-color: #FFFFFF;
	border-radius: 50px;
	min-height: 80px;
	width: 300px;
	text-align: center;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
}

.lnk1btn { border-color: #A254A5; }
.lnk1btn:hover {
	background-color: #643282;
	color: #FFFFFF;
}

.lnk2btn { border-color: #DEB804; }
.lnk2btn:hover {
	background-color: #B29310;
	color: #FFFFFF;
}

/* display:inline-block は上の [class*="lnk"] で統一済みのため個別指定を削除 */


/* ==========================================================================
   アコーディオン (Accordion)
   ========================================================================== */

.acc dt {
	cursor: pointer;
	background: url("images/01_6_icon_q_2x.webp") no-repeat center left / 60px 60px #F6DEED;
	padding: 3px 15px 3px 80px;
	display: flex;
	align-items: center;
	height: 60px;
	font-weight: bold;
	line-height: 24px;
}

.acc dd {
	display: none;
	background: url("images/01_6_icon_a_2x.webp") no-repeat top left / 60px 60px;
	padding-left: 80px;
	margin-top: 30px;
	line-height: 30px;
	min-height: 60px;
}

.acc dt:nth-child(n+2) { margin-top: 30px; }


/* ==========================================================================
   フッター (Footer)
   ========================================================================== */

footer {
	background-color: #141414;
	color: #FFFFFF;
	text-align: center;
	padding: 30px;
}


/* ==========================================================================
   固定要素 (Tracking / Fixed)
   ========================================================================== */

[class*="trk"] {
	position: fixed;
	transition: all 1s;
	z-index: 999;
}
[class*="trk"] a:hover { opacity: .7; }
.trk3 { bottom: 20px; right: 40px; }


/* ==========================================================================
   PC (600px以上)
   ========================================================================== */

@media only screen and (min-width: 600px), print {

	/* 共通 */
	.wrap { margin-left: auto; margin-right: auto; width: 1100px; }
	.sp   { display: none !important; }

	/* リスト */
	.lst1pc li      { padding-left: 100px; overflow: hidden; }
	.lst1pc li span { display: block; float: left; width: 100px; margin-left: -100px; }

	/* 余白調整 */
	.ml30pc { margin-left: 30px; }

	/* フレックス */
	[class*="fbPc"] { display: flex; flex-wrap: wrap; }
	.fbPc1 { justify-content: space-between; }
	.fbPc2 { justify-content: center; }
	.odr1pc { order: 1; }
	.odr2pc { order: 2; }

	/* 幅 */
	.w100     { width: 100px; }
	.w250     { width: 250px; }
	.w328     { width: 328px; }
	.w520     { width: 520px; }
	.w714     { width: 714px; }
	.wrap_680 { margin-left: auto; margin-right: auto; width: 680px; }

	/* メインビジュアル */
	.mv { background: url("images/main.webp") no-repeat top center / cover; padding-top: 50%; }

	/* ヘッダー */
	header       { background-color: #fff; min-width: 100%; z-index: 9; padding: 15px 20px; }
	.fixed       { position: fixed; top: 0px; left: 0px; z-index: 9999; }
	.space       { padding-top: 90px; }
	header .cell { position: absolute; left: 430px; top: 25px; }
	header nav   { position: absolute; right: 0; top: 0; }

	/* グローバルナビ */
	.gNav { font-size: 16px; margin-left: 630px; }
	.gNav ul {
		display: flex;
		justify-content: flex-end;
		flex-wrap: wrap;
		align-items: center;
		height: 90px;
	}
	.gNav > ul           { text-align: right; }
	.gNav > ul > li      { padding-right: 15px; padding-left: 15px; }
	.gNav ul a           { display: block; color: #333; }
	.gNav ul a:hover,
	.gNav ul .stay       { color: #36A364; }

	/* ページタイトル */
	.pp1ttl {
		background: url("images/02_titleback_2x.webp") repeat-x top center / cover;
		height: 200px;
		color: #FFFFFF;
		text-align: center;
		font-size: 30px;
	}

	/* コンテンツ */
	.spa1 { padding: 100px 0; }

	/* サイトマップ */
	#sitemap .child    { margin-left: 1em; overflow: hidden; }
	#sitemap .child li { float: left; width: 25%; }

	/* フッター */
	footer .sec1             { padding: 80px 0; }
	footer .sec2             { font-size: 16px; text-align: center; }
	footer .sec2 .fbCom1     { justify-content: center; }
	footer .sec2 a           { display: block; padding: 0 1em; }

	/* 固定要素 */
	.trk1 { top: 150px; right: 0; }
	.trk2 { top: 340px; right: 0; }

	/* パンくず */
	.breadcrumbs ol { margin: 5px 0 0 0; }
}


/* ==========================================================================
   SP (599px以下)
   ========================================================================== */

@media only screen and (max-width: 599px) {

	/* 共通 */
	body             { font-size: 16px; }
	.wrap, .wrap2    { padding: 15px; line-height: 1.5em; }
	img              { max-width: 100%; height: auto; }
	.img50sp         { width: 50%; }
	.img80sp         { width: 80%; }
	.pc              { display: none !important; }
	.tacSp           { text-align: center; }
	.lst1 li span,
	.lst1li span     { display: block; }
	.mt1adj          { margin-top: 30px; }
	.mt2adj          { margin-top: 60px; }
	.pad40           { padding: 20px; }
	.mt30sp          { margin-top: 30px; }
	.mt60sp          { margin-top: 60px; }
	.img1wrap        { margin-left: -15px; margin-right: -15px; }

	/* フォントサイズ */
	.fsS { font-size: 19px; }
	.fsM { font-size: 23px; }
	.fsL { font-size: 26px; }

	/* floatカラム */
	.oh_clm2sp, .oh_clm3sp, .oh_sp { overflow: hidden; }
	.oh_clm2sp li { width: 48%; }
	.oh_clm3sp li {
		width: 32%;
		margin-right: 2% !important;
		margin-top: 2% !important;
	}
	.oh_clm3sp li:nth-child(3n) { margin-right: 0 !important; }
	.oh_sp .fl,
	.oh_clm2sp li:nth-child(odd),
	.oh_clm3sp li              { float: left; }
	.oh_sp .fr,
	.oh_clm2sp li:nth-child(even),
	.oh_clm3sp li:nth-child(3n) { float: right; }

	/* グローバルナビ */
	html { overflow-x: hidden; }
	#headerSp { width: 100%; position: fixed; top: 0px; left: 0px; z-index: 99997; }
	header .cell { padding: 10px 15px; }

	.gNav {
		background: rgba(255, 255, 255, 0.9);
		position: fixed;
		height: 100%;
		width: 70%;
		z-index: 99998;
		padding: 10px 15px 50px;
		transition: all 0.5s;
		right: -100%;
		top: 0;
		overflow-y: scroll;
		-webkit-overflow-scrolling: touch;
		font-size: 16px;
	}
	.gNav.active      { right: 0%; }
	.gNav li          { margin-top: 10px; }
	.gNav li a        { display: block; padding: .75em 1em; color: #333; border-bottom: 1px solid #C4C4C4; }
	.gNav li a:before { content: "▶"; color: #DEB804; margin-right: 5px; }
	.gNav li ul li    { padding-left: 1em; }
	.gNavBk.active    { right: 0%; }

	/* ハンバーガーボタン */
	.btn-trigger {
		position: fixed;
		top: 11px;
		right: 10px;
		z-index: 99999;
		background: #141414;
		cursor: pointer;
		width: 50px;
		height: 50px;
		border: 1px solid #141414;
	}
	.btn-trigger span {
		display: inline-block;
		transition: all .4s;
		position: absolute;
		height: 3px;
		border-radius: 2px;
		background: #FFF;
		width: 60%;
		left: 50%;
		transform: translateX(-50%);
	}
	.btn-trigger span:nth-of-type(1) { top: 11px; }
	.btn-trigger span:nth-of-type(2) { top: 22px; }
	.btn-trigger span:nth-of-type(3) { top: 33px; }

	#btn01.active span:nth-of-type(1) {
		top: 15px;
		left: 20%;
		transform: translateY(6px) rotate(-45deg);
		width: 60%;
	}
	#btn01.active span:nth-of-type(2) { opacity: 0; }
	#btn01.active span:nth-of-type(3) {
		top: 27px;
		left: 20%;
		transform: translateY(-6px) rotate(45deg);
		width: 60%;
	}

	/* ページタイトル */
	.pp1ttl {
		background: url("images/sp_02_titleback_2x.webp") no-repeat top center / cover;
		height: 150px;
		color: #FFFFFF;
		font-size: 22px;
		text-align: center;
		justify-content: center;
	}

	/* コンテンツ */
	.spa1  { padding-top: 40px; padding-bottom: 50px; }
	.spa2  { padding-top: 40px; padding-bottom: 40px; }
	.lnk1btn { width: 70%; }
	.mv    { background: url("images/sp_main_2x.webp") no-repeat top center; padding-top: 154.5%; background-size: contain; }
	.bg2col { background: url("images/sp_01_3_titleback_2x.webp") no-repeat top center / cover #FDF6FA; height: 160px; }
	.cBox2 { padding-left: 0; padding-right: 0; }
	.cBox3 { padding-left: 0; text-indent: 0; }
	.cBox3 span { display: inline-block; margin-bottom: 10px; }
	.cBox4 { padding-top: 0; }
	.cBox6 { grid-template-columns: repeat(2, 1fr); justify-content: space-between; gap: 15px; }

	.sBox1        { justify-content: space-between; }
	.sBox1 p,
	.sBox1 li     { width: 48%; }
	.sBox1 a      { width: 100%; height: 100px; border-radius: 18px; }

	/* パンくず */
	.breadcrumbs ol { font-size: 10px; }

	/* SP固定フッター */
	#footerSp {
		width: 100%;
		border-collapse: collapse;
		position: fixed;
		z-index: 990;
		bottom: 0px;
		left: 0px;
		table-layout: fixed;
	}
	#footerSp tr td:nth-of-type(1) {
		width: 50%;
		border: 1px solid transparent;
	}
	#footerSp tr td:nth-of-type(1) a {
		background-color: #643282;
		color: #FFFFFF;
	}
	#footerSp tr td:nth-of-type(2) a {
		background-color: #141414;
		color: #DEB804;
	}
	#footerSp a {
		display: block;
		text-align: center;
		padding: 15px 0;
		color: #fff;
	}

	.trk3 { bottom: 60px; right: 15px; }
}