@charset "UTF-8";

/**
 * basis.css
 * @version v1.4 2023.12.26
 * @copyright Maven Inc.
----------------------------------------------------------------*/
/* 初期設定 */
:root{

	/* ブレイクポイント */
	--pc:1200;
	--tab:960;
	--sp:768;
	--legacy:375;
	
	--bp-pc:calc(1px * var(--pc));
	--bp-tab:calc(1px * var(--tab));
	--bp-sp:calc(1px * var(--sp));
	--bp-legacy:calc(1px * var(--legacy));
	
	/* 余白 */
	--gap-base:40;
	--gap-min:20;
	--gap:clamp(
	
		/* 【最小余白】SP時の余白(半分) */
		calc(1px * var(--gap-base) / 2),
		
		/* 【推奨余白】SP時の余白(半分)相当の画面比値 */
		calc(var(--gap-base) / var(--sp) * 100vw),
		
		/* 【最大余白】PC時の余白 */
		calc(1px * var(--gap-base))
	
	);
	--gap-half:calc(1px * var(--gap-base) / 2);
	--gap-quarter:calc(1px * var(--gap-base) / 4);
	--gap-double:calc(var(--gap) * 2);
	--gap-triple:calc(var(--gap) * 3);
	--gap-quadruple:calc(var(--gap) * 4);
	
	/* フォント */
	--mincho: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	--gothic: "Hiragino Kaku Gothic ProN", Meiryo, Helvetica, sans-serif;
	
	/* フォントサイズ */
	--xxxxl:clamp(48px, calc(60 / var(--sp) * 100vw), 60px);
	--xxxl:clamp(32px, calc(48 / var(--sp) * 100vw), 48px);
	--xxl:clamp(24px, calc(34 / var(--sp) * 100vw), 34px);
	--xl:clamp(24px, calc(28 / var(--sp) * 100vw), 28px);
	--l:clamp(18px, calc(18 / var(--sp) * 100vw), 22px);
	--m:clamp(16px, calc(16 / var(--sp) * 100vw), 18px);
	--s:clamp(14px, calc(14 / var(--sp) * 100vw), 16px);
	--xs:14px;
	--xxs:12px;
	
	/* 配色 */
	--main:steelblue;
	--sub:lightslategray;
	--main-hover:cornflowerblue;
	--sub-hover:dodgerblue;
	--black:black;
	--border:rgb(204,204,204);
	--filter:rgb(245,245,245);

}

/**
 * destyle.css v3.0.2
 * @license MIT License
 * @url https://github.com/nicolas-cusan/destyle.css
----------------------------------------------------------------*/
*,::before,::after{
	box-sizing:border-box;
	border-style:solid;
	border-width:0;
}
html{
	line-height:1.15;
	-webkit-text-size-adjust:100%;
	-webkit-tap-highlight-color:transparent;
}
body{ margin:0; }
main{ display:block; }
p,table,blockquote,address,pre,iframe,form,figure,dl{ margin:0; }
h1,h2,h3,h4,h5,h6{
	font-size:inherit;
	font-weight:inherit;
	margin:0;
}
ul,ol{
	margin:0;
	padding:0;
	list-style:none;
}
dt{ font-weight:bold; }
dd{ margin-left:0; }
hr{
	box-sizing:content-box;
	height:0;
	overflow:visible;
	border-top-width:1px;
	margin:0;
	clear:both;
	color:inherit;
}
pre{
	font-family:monospace, monospace;
	font-size:inherit;
}
address{ font-style:inherit; }
a{
	background-color:transparent;
	text-decoration:none;
	color:inherit;
}
abbr[title]{ text-decoration:underline dotted; }
b,strong{ font-weight:bolder; }
code,kbd,samp{
	font-family:monospace, monospace;
	font-size:inherit;
}
small{ font-size:80%; }
sub,sup{
	font-size:75%;
	line-height:0;
	position:relative;
	vertical-align:baseline;
}
sub{ bottom:-0.25em; }
sup{ top:-0.5em; }
svg,img,embed,object,iframe{ vertical-align:bottom; }
button,input,optgroup,select,textarea{
	-webkit-appearance:none;
	appearance:none;
	vertical-align:middle;
	color:inherit;
	font:inherit;
	background:transparent;
	padding:0;
	margin:0;
	border-radius:0;
	text-align:inherit;
	text-transform:inherit;
}
[type="checkbox"]{
	-webkit-appearance:checkbox;
	appearance:checkbox;
}
[type="radio"]{
	-webkit-appearance:radio;
	appearance:radio;
}
button,[type="button"],[type="reset"],[type="submit"]{ cursor:pointer; }
button:disabled,[type="button"]:disabled,[type="reset"]:disabled,[type="submit"]:disabled{ cursor:default; }
:-moz-focusring{ outline:auto; }
select:disabled{ opacity:inherit; }
option{ padding:0; }
fieldset{
	margin:0;
	padding:0;
	min-width:0;
}
legend{ padding:0; }
progress{ vertical-align:baseline; }
textarea{ overflow:auto; }
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button{ height:auto; }
[type="search"]{ outline-offset:-2px; }
[type="search"]::-webkit-search-decoration{ -webkit-appearance:none; }
::-webkit-file-upload-button{
	-webkit-appearance:button;
	font:inherit;
}
label[for]{ cursor:pointer; }
details{ display:block; }
summary{ display:list-item; }
[contenteditable]:focus{ outline:auto; }
table{
	border-color:inherit;
	border-collapse:collapse;
}
caption{ text-align:left; }
td,th{
	vertical-align:top;
	padding:0;
}
th{
	text-align:left;
	font-weight:bold;
}

/**
 * 初期値
----------------------------------------------------------------*/
body{
	font-size:var(--s);
	line-height:1.75;
	font-family:var(--gothic);
	color:var(--black);
	font-feature-settings:'palt';
}
*,::before,::after{
	transition:all .2s ease;
	border-color:var(--border);
}
svg,img,embed,object,iframe{ vertical-align:top; }
fieldset,img,abbr,acronym{ border-width:0; }
table{ width:100%; }
iframe{ display:block; }
img{
	display:block;
	margin:0 auto;
	max-width:100%;
}
p{ text-align:justify; }
pre{
	border-width:1px;
	padding:10px;
	font-size:var(--xs);
	color:var(--black);
	background:var(--filter);
	font-family:SFMono-Regular,Consolas,Menlo,Meiryo,monospace;
}
pre > div:not(:last-child){
	padding-bottom:10px;
	margin-bottom:10px;
	border-bottom:1px;
	border-style:dashed;
}
hr{ border:none; }

/**
 * プロトタイプ
----------------------------------------------------------------*/

/* 単純
----------------------------------------------------------------
太字 bold
----------------------------------------------------------------*/
.bold{ font-weight:bold; }

/* レスポンシブ分岐
----------------------------------------------------------------
基本 pc pctab tab sptab sp
----------------------------------------------------------------*/
.pc{ display:block; }
.pctab{ display:block; }
.tab{ display:none; }
.sptab{ display:none; }
.sp{ display:none; }
@media screen and (max-width: 960px){
	.pc{ display:none; }
	.tab{ display:block; }
	.sptab{ display:block; }
}
@media screen and (max-width: 768px){
	.pctab{ display:none; }
	.tab{ display:none; }
	.sp{ display:block; }
}

/* コンテンツ幅
----------------------------------------------------------------
基本 base
オプション -tab - sp -legacy
----------------------------------------------------------------*/
.base{
	max-width:var(--bp-pc);
	margin:0 auto;
}
.base.-tab{ max-width:var(--bp-tab); }
.base.-sp{ max-width:var(--bp-sp); }
.base.-legacy{ max-width:var(--bp-legacy); }
.base.-alone{ padding:var(--gap); }
.base.-alone.-halfwrap{ padding:var(--gap-half) var(--gap); }
.base.-alone.-nowrap{ padding:0 var(--gap); }
@media screen and (max-width: 960px){
	.base.-smart{ max-width:375px; }
}

/* 単一レイアウト
----------------------------------------------------------------
基本 alone
オプション -halfwrap -nowrap
----------------------------------------------------------------*/
.alone{ padding:var(--gap); }
.alone.-halfwrap{ padding:var(--gap-half) var(--gap); }
.alone.-nowrap{ padding:0 var(--gap); }

/* 中央レイアウト
----------------------------------------------------------------
基本 central
オプション -left -right
----------------------------------------------------------------*/
.central{
	display:flex;
	flex-direction:column;
	flex-basis:100%;
	align-items:center;
	justify-content:center;
}
.central.-left{ align-items:flex-start; }
.central.-right{ align-items:flex-end; }

/* 段組みレイアウト
----------------------------------------------------------------
基本 columns
余白 -nogap -nowrap -halfgap -halfwrap
その他 -keep -early
----------------------------------------------------------------*/
.columns{
	columns:2;
	column-gap:var(--gap);
	margin:var(--gap);
}
.columns.-nogap{ column-gap:0; }
.columns.-nowrap{ margin:0; }
.columns.-halfgap{ column-gap:calc(var(--gap) / 2) var(--gap); }
.columns.-halfwrap{ margin:calc(var(--gap) / 2) var(--gap); }
@media screen and (max-width: 960px){
	.columns:not(.-keep).-early{ columns:1; }
}
@media screen and (max-width: 768px){
	.columns:not(.-keep){ columns:1; }
}

/* 余白
----------------------------------------------------------------
上下 _6 _5 _4 _3 _2 _ 2_ 3_ 4_ ______ _____ ____ ___ __
上 t6 t5 t4 t3 t2 t 2t 3t 4t tttttt ttttt tttt ttt tt
下 b6 b5 b4 b3 b2 b 2b 3b 4b bbbbbb bbbbb bbbb bbb bb
padding化 p
----------------------------------------------------------------*/
/* 上下margin */
:not(.p)[class*="6_"],:not(.p).____{ margin-top:calc(var(--gap) * 6) !important; margin-bottom:calc(var(--gap) * 6) !important; }
:not(.p)[class*="5_"],:not(.p).____{ margin-top:calc(var(--gap) * 5) !important; margin-bottom:calc(var(--gap) * 5) !important; }
:not(.p)[class*="4_"],:not(.p).____{ margin-top:calc(var(--gap) * 4) !important; margin-bottom:calc(var(--gap) * 4) !important; }
:not(.p)[class*="3_"],:not(.p).___{ margin-top:calc(var(--gap) * 3) !important; margin-bottom:calc(var(--gap) * 3) !important; }
:not(.p)[class*="2_"],:not(.p).__{ margin-top:calc(var(--gap) * 2) !important; margin-bottom:calc(var(--gap) * 2) !important; }
:not(.p)._{ margin-top:calc(var(--gap) * 1) !important; margin-bottom:calc(var(--gap) * 1) !important; }
:not(.p)._2{ margin-top:calc(var(--gap) / 2) !important; margin-bottom:calc(var(--gap) / 2) !important; }
:not(.p)._3{ margin-top:calc(var(--gap) / 3) !important; margin-bottom:calc(var(--gap) / 3) !important; }
:not(.p)._4{ margin-top:calc(var(--gap) / 4) !important; margin-bottom:calc(var(--gap) / 4) !important; }

/* 上margin */
:not(.p)[class*="6t"],:not(.p).tttt{ margin-top:calc(var(--gap) * 6) !important; }
:not(.p)[class*="5t"],:not(.p).tttt{ margin-top:calc(var(--gap) * 5) !important; }
:not(.p)[class*="4t"],:not(.p).tttt{ margin-top:calc(var(--gap) * 4) !important; }
:not(.p)[class*="3t"],:not(.p).ttt{ margin-top:calc(var(--gap) * 3) !important; }
:not(.p)[class*="2t"],:not(.p).tt{ margin-top:calc(var(--gap) * 2) !important; }
:not(.p).t{ margin-top:calc(var(--gap) * 1) !important; }
:not(.p).t2{ margin-top:calc(var(--gap) / 2) !important; }
:not(.p).t3{ margin-top:calc(var(--gap) / 3) !important; }
:not(.p).t4{ margin-top:calc(var(--gap) / 4) !important; }

/* 下margin */
:not(.p)[class*="6b"],:not(.p).bbbb{ margin-bottom:calc(var(--gap) * 6) !important; }
:not(.p)[class*="5b"],:not(.p).bbbb{ margin-bottom:calc(var(--gap) * 5) !important; }
:not(.p)[class*="4b"],:not(.p).bbbb{ margin-bottom:calc(var(--gap) * 4) !important; }
:not(.p)[class*="3b"],:not(.p).bbb{ margin-bottom:calc(var(--gap) * 3) !important; }
:not(.p)[class*="2b"],:not(.p).bb{ margin-bottom:calc(var(--gap) * 2) !important; }
:not(.p).b{ margin-bottom:calc(var(--gap) * 1) !important; }
:not(.p).b2{ margin-bottom:calc(var(--gap) / 2) !important; }
:not(.p).b3{ margin-bottom:calc(var(--gap) / 3) !important; }
:not(.p).b4{ margin-bottom:calc(var(--gap) / 4) !important; }

/* 上下padding */
[class*="6_"].p,:not(.p).____.p{ padding-top:calc(var(--gap) * 6) !important; padding-bottom:calc(var(--gap) * 6) !important; }
[class*="5_"].p,:not(.p).____.p{ padding-top:calc(var(--gap) * 5) !important; padding-bottom:calc(var(--gap) * 5) !important; }
[class*="4_"].p,:not(.p).____.p{ padding-top:calc(var(--gap) * 4) !important; padding-bottom:calc(var(--gap) * 4) !important; }
[class*="3_"].p,:not(.p).___.p{ padding-top:calc(var(--gap) * 3) !important; padding-bottom:calc(var(--gap) * 3) !important; }
[class*="2_"].p,:not(.p).__.p{ padding-top:calc(var(--gap) * 2) !important; padding-bottom:calc(var(--gap) * 2) !important; }
._.p{ padding-top:calc(var(--gap) * 1) !important; padding-bottom:calc(var(--gap) * 1) !important; }
._2.p{ padding-top:calc(var(--gap) / 2) !important; padding-bottom:calc(var(--gap) / 2) !important; }
._3.p{ padding-top:calc(var(--gap) / 3) !important; padding-bottom:calc(var(--gap) / 3) !important; }
._4.p{ padding-top:calc(var(--gap) / 4) !important; padding-bottom:calc(var(--gap) / 4) !important; }

/* 上padding */
[class*="6t"].p,:not(.p).tttt.p{ padding-top:calc(var(--gap) * 6) !important; }
[class*="5t"].p,:not(.p).tttt.p{ padding-top:calc(var(--gap) * 5) !important; }
[class*="4t"].p,:not(.p).tttt.p{ padding-top:calc(var(--gap) * 4) !important; }
[class*="3t"].p,:not(.p).ttt.p{ padding-top:calc(var(--gap) * 3) !important; }
[class*="2t"].p,:not(.p).tt.p{ padding-top:calc(var(--gap) * 2) !important; }
.t.p{ padding-top:calc(var(--gap) * 1) !important; }
.t2.p{ padding-top:calc(var(--gap) / 2) !important; }
.t3.p{ padding-top:calc(var(--gap) / 3) !important; }
.t4.p{ padding-top:calc(var(--gap) / 4) !important; }

/* 下padding */
[class*="6b"].p,:not(.p).bbbb.p{ padding-bottom:calc(var(--gap) * 6) !important; }
[class*="5b"].p,:not(.p).bbbb.p{ padding-bottom:calc(var(--gap) * 5) !important; }
[class*="4b"].p,:not(.p).bbbb.p{ padding-bottom:calc(var(--gap) * 4) !important; }
[class*="3b"].p,:not(.p).bbb.p{ padding-bottom:calc(var(--gap) * 3) !important; }
[class*="2b"].p,:not(.p).bb.p{ padding-bottom:calc(var(--gap) * 2) !important; }
.b.p{ padding-bottom:calc(var(--gap) * 1) !important; }
.b2.p{ padding-bottom:calc(var(--gap) / 2) !important; }
.b3.p{ padding-bottom:calc(var(--gap) / 3) !important; }
.b4.p{ padding-bottom:calc(var(--gap) / 4) !important; }

/* 文字サイズ
----------------------------------------------------------------
基本 xxxxl xxxl xxl xl l m s xs xxs xxxs
----------------------------------------------------------------*/
.xxxxl{ font-size:var(--xxxxl); }
.xxxl{ font-size:var(--xxxl); }
.xxl{ font-size:var(--xxl); }
.xl{ font-size:var(--xl); }
.l{ font-size:var(--l); }
.m{ font-size:var(--m); }
.s{ font-size:var(--s); }
.xs{ font-size:var(--xs); }
.xxs{ font-size:var(--xxs); }
.xxxs{ font-size:var(--xxxs); }

/* 見出し
----------------------------------------------------------------
基本 h1 h2 h3 h4 h5 h6 copy
----------------------------------------------------------------*/
.h1,.h2,.h3,.h4,.h5,.h6{
	font-weight:bold;
	line-height:1.4;
}
.h1 > p,.h2 > p,.h3 > p,.h4 > p,.h5 > p,.h6 > p{
	font-size:var(--xs);
	font-weight:normal;
}
.h1,.h2{
	display:flex;
	flex-direction:column;
	flex-basis:100%;
	align-items:center;
	justify-content:center;
	text-align:center;
	letter-spacing:.2em;
}
.h1{
	font-size:var(--l);
	padding:var(--gap);
	min-height:120px;
}
.h2{
	font-size:var(--xl);
	margin:var(--gap-double) var(--gap) var(--gap);
}
.h3{
	font-size:var(--l);
	margin:var(--gap-half) 0;
}
.h4{
	font-size:var(--m);
	margin:var(--gap-half) 0 var(--gap-quarter);
}
.h5{
	font-size:var(--s);
	margin:var(--gap-half) 0 var(--gap-quarter);
}
.copy{
	font-size:var(--xl);
	margin:var(--gap-half) 0;
}

/* 文章
----------------------------------------------------------------
基本クラス p
オプション -center
----------------------------------------------------------------*/
.p.-center{
	text-align:center;
	font-size:var(--s);
	letter-spacing:.2em;
}

/* ボタン
----------------------------------------------------------------
基本 buttons
分割 --2 --3 --4 --5 --6
モバイル分割 -to2 -to3
余白 -nowrap
装飾 -reverse -radius -line -stick
----------------------------------------------------------------*/
.buttons{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	align-items:flex-start;
	gap:var(--gap-half);
	margin:var(--gap) var(--gap-half);
	position:relative;
}
.buttons > *{
	flex-basis:240px;
	display:block;
	padding:var(--gap-quarter) var(--gap-half);
	background:var(--main);
	color:white;
	position:relative;
	letter-spacing:.2em;
	text-align:center;
	vertical-align:middle;
	font-size:var(--s);
}
.buttons > :hover{ background:var(--sub); }
.buttons > ::before{
	content:'';
	position:absolute;
	display:block;
}

/* 分割 */
.buttons.--2 > *{ flex-basis:calc((100% - var(--gap-half) * 1) / 2); }
.buttons.--3 > *{ flex-basis:calc((100% - var(--gap-half) * 2) / 3); }
.buttons.--4 > *{ flex-basis:calc((100% - var(--gap-half) * 3) / 4); }
.buttons.--5 > *{ flex-basis:calc((100% - var(--gap-half) * 4) / 5); }
.buttons.--6 > *{ flex-basis:calc((100% - var(--gap-half) * 5) / 6); }
@media screen and (max-width: 768px){
	.buttons{ margin:var(--gap); }
	.buttons > *,
	.buttons.--2 > *,
	.buttons.--3 > *,
	.buttons.--4 > *,
	.buttons.--5 > *,
	.buttons.--6 > *{ flex-basis:100%; }
	.buttons.-to2 > *,
	.buttons.-to2.--2 > *,
	.buttons.-to2.--3 > *,
	.buttons.-to2.--4 > *,
	.buttons.-to2.--5 > *,
	.buttons.-to2.--6 > *{ flex-basis:calc((100% - var(--gap-half) * 1) / 2); }
	.buttons.-to3 > *,
	.buttons.-to3.--2 > *,
	.buttons.-to3.--3 > *,
	.buttons.-to3.--4 > *,
	.buttons.-to3.--5 > *,
	.buttons.-to3.--6 > *{ flex-basis:calc((100% - var(--gap-half) * 2) / 3); }
}

/* 余白 */
.buttons.-nowrap{ margin:var(--gap) 0; }

/* 余白 */
.buttons.-reverse > *{ background:var(--sub); }
.buttons.-reverse > :hover{ background:var(--main); }

/* 角丸 */
.buttons.-radius > *{ border-radius:2em; }

/* ライン */
.buttons.-line > *{
	background:none;
	border:2px solid var(--main);
	color:var(--main);
}
.buttons.-line > :hover{
	background:var(--main);
	border-color:rgba(0,0,0,0);
	color:white;
}
.buttons.-line.-reverse > *{ border-color:var(--sub); }
.buttons.-line.-reverse > :hover{ background:var(--sub); }

/* スティック */
.buttons.-stick > ::before{
	top:50%;
	left:-10px;
	width:0;
	border-top:1px solid var(--border);
}
.buttons.-stick > :hover::before{ width:20px; }

/* バナー
----------------------------------------------------------------
基本 banners
分割 --2 --3 --4 --5 --6
モバイル分割 -to2 -to3
余白 -nowrap
----------------------------------------------------------------*/
.banners{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:var(--gap-half);
	margin:var(--gap) var(--gap-half);
}
.banners > *{
	flex-basis:384px;
	display:block;
}
.banners > :hover{ opacity:.7; }

/* 分割 */
.banners.--2 > *{ flex-basis:calc((100% - var(--gap-half) * 1) / 2); }
.banners.--3 > *{ flex-basis:calc((100% - var(--gap-half) * 2) / 3); }
.banners.--4 > *{ flex-basis:calc((100% - var(--gap-half) * 3) / 4); }
.banners.--5 > *{ flex-basis:calc((100% - var(--gap-half) * 4) / 5); }
.banners.--6 > *{ flex-basis:calc((100% - var(--gap-half) * 5) / 6); }
@media screen and (max-width: 768px){
	.banners > *,
	.banners.--2 > *,
	.banners.--3 > *,
	.banners.--4 > *,
	.banners.--5 > *,
	.banners.--6 > *{ flex-basis:100%; }
	.banners.-to2 > *,
	.banners.-to2.--2 > *,
	.banners.-to2.--3 > *,
	.banners.-to2.--4 > *,
	.banners.-to2.--5 > *,
	.banners.-to2.--6 > *{ flex-basis:calc((100% - var(--gap-half) * 1) / 2); }
	.banners.-to3 > *,
	.banners.-to3.--2 > *,
	.banners.-to3.--3 > *,
	.banners.-to3.--4 > *,
	.banners.-to3.--5 > *,
	.banners.-to3.--6 > *{ flex-basis:calc((100% - var(--gap-half) * 2) / 3); }
}

/* 余白 */
.banners.-nowrap{ margin:var(--gap) 0; }

/* アイコン
----------------------------------------------------------------
基本 icon -max
----------------------------------------------------------------*/
.icon{
	--line-height:1.75;
	line-height:var(--line-height);
	display:flex;
	align-items:flex-start;
	gap:5px;
}
.icon::before{
	content:'';
	display:inline-block;
	min-width:1em;
	width:1em;
	height:1em;
	margin:calc((1em * var(--line-height) - 1em) / 2) 0;
	background:no-repeat center center / contain;
}
.icon.-max::before{
	min-width:calc(1em * var(--line-height));
	width:calc(1em * var(--line-height));
	height:calc(1em * var(--line-height));
	margin:0;
}

/* テーブル
----------------------------------------------------------------
基本 table
枠線 -border -hborder -vborder -inborder -outborder
行ヘッダ -header
ストライプ -stripe
----------------------------------------------------------------*/
.table > table tr > *{
	font-size:var(--xs);
	padding:5px 10px;
}
.table > table thead > tr > *,
.table > table tfoot > tr > *{
	background:var(--main);
	color:white;
}
.table > table th{ white-space:nowrap; }
@media screen and (max-width: 768px){
	.table{
		overflow:auto;
	}
}

/* 枠線 */
.table.-border > table tr > *{ border-width:1px; }
.table.-hborder > table tr > *{ border-top-width:1px; }
.table.-hborder > table tr:last-child > *{ border-bottom-width:1px; }
.table.-vborder > table tr > *{ border-left-width:1px; }
.table.-vborder > table tr > *:last-child{ border-right-width:1px; }
.table.-inborder > table tr:not(:first-child) > *{ border-top-width:1px; }
.table.-inborder > table tr > *:not(:first-child){ border-left-width:1px; }
.table.-inborder > table > thead > tr > *{ border-bottom-width:1px; }
.table.-inborder > table > tfoot > tr > *{ border-top-width:1px; }
.table.-outborder > table{ border-width:1px; }

/* 行ヘッダ */
.table.-header > table th{
	background:var(--main);
	color:white;
}

/* ストライプ */
.table.-stripe > table tr > *{
	border-top:0;
	border-bottom:0;
}
.table.-stripe > table :not(thead):not(tfoot) tr:nth-child(even) > *{ background:var(--filter); }
.table.-stripe.-header > table :not(thead):not(tfoot) tr:nth-child(even) > th{ background:var(--main); }
.table.-stripe.-header > table :not(thead):not(tfoot) tr:nth-child(odd) > th{
	position:relative;
	background:rgba(255,255,255,.1);
}
.table.-stripe.-header > table :not(thead):not(tfoot) tr:nth-child(odd) > th::before{
	content:'';
	position:absolute;
	top:0;
	left:0;
	bottom:0;
	right:0;
	display:block;
	background:var(--main);
	z-index:-1;
}

/* ペア
----------------------------------------------------------------
基本 pair
----------------------------------------------------------------*/
.pair th{
	font-size:var(--xs);
	white-space:nowrap;
	width:1px;
	padding:.2em 1em .2em 0;
}
.pair td{ padding:.2em 0; }

/* 文字整列
----------------------------------------------------------------
基本 c r j
----------------------------------------------------------------*/
.c{ text-align:center; }
.r{ text-align:right; }
.j{ text-align:justify; }

/* トランジション
----------------------------------------------------------------
基本 
----------------------------------------------------------------*/
/* マウスオーバー */
.opacity:hover{ opacity:.7; }

/* 埋め込み
----------------------------------------------------------------
基本 yt gm
----------------------------------------------------------------*/
/* YouTube */
.yt > a:hover{ opacity:.7; }
.yt{
	position:relative;
	padding-bottom:56.25%;
	height:0;
	overflow:hidden;
}
.yt > iframe{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
}

/* GoogleMaps */
.gm > iframe{
	width:100%;
	height:400px;
}

/* スペーサー・水平線
----------------------------------------------------------------
基本クラス hr spacer
オプション -halfwrap -quarterwrap -nowrap
----------------------------------------------------------------*/
.hr{
	border-bottom:1px solid var(--border);
	margin-top:var(--gap);
	margin-bottom:var(--gap);
}
.spacer{
	margin-top:var(--gap);
	margin-bottom:var(--gap);
}
.hr.-halfwrap,.spacer.-halfwrap{ margin-top:var(--gap-half); margin-bottom:var(--gap-half); }
.hr.-quarterwrap,.spacer.-quarterwrap{ margin-top:var(--gap-quarter); margin-bottom:var(--gap-quarter); }
.hr.-nowrap,.spacer.-nowrap{ margin-top:0; margin-bottom:0; }

/* ページャー
----------------------------------------------------------------
基本クラス pager
オプション -square -circle -line
----------------------------------------------------------------*/
.pager > ul{
	padding:var(--gap);
	text-align:center;
}
.pager > ul > li{ display:inline-block; }
.pager > ul > li > *{
	padding:5px 10px;
	text-align:center;
	font-size:18px;
	font-weight:bold;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
}
.pager > ul > li > span{
	color:var(--black);
	opacity:.3;
}
.pager > ul > li > a{ color:var(--black); }
.pager > ul > li > a:hover{ color:var(--main); }

/* スクウェア・サークル */
.pager.-square:not(.-line) > ul > li > *,
.pager.-circle:not(.-line) > ul > li > *{
	background:var(--main);
	color:white;
}
.pager.-square:not(.-line) > ul > li > a:hover,
.pager.-circle:not(.-line) > ul > li > a:hover{
	background:var(--sub);
	color:white;
}
.pager.-circle > ul > li > *{
	border-radius:50%;
	width:3em;
	height:3em;
	padding:5px;
}

/* ライン */
.pager.-line > ul > li > *{
	background:none;
	border:1px solid var(--main);
	color:var(--main);
}
.pager.-line > ul > li > a:hover{
	background:none;
	border:1px solid var(--sub);
	color:var(--sub);
}

/* カード
----------------------------------------------------------------
基本クラス card
----------------------------------------------------------------*/
/* カード */
.card{ overflow-x:scroll; }
.card > ul{
	display:flex;
	gap:20px;
	align-items:stretch;
	border:var(--gap) solid transparent;
	width:max-content;
}

/**
 * 新着一覧
----------------------------------------------------------------
基本 topics
----------------------------------------------------------------*/
.topics > section{
	display:flex;
	gap:var(--gap);
	flex-wrap:wrap;
}
.topics > section:not(:first-child){
	border-top:1px solid #ccc;
	padding-top:var(--gap);
	margin-top:var(--gap);
}
.topics > section > figure{ width:calc(33.3333% - var(--gap)); }
.topics > section > figure + div{ width:66.6666%; }
.topics > section > div > time{ color:var(--sub); }
.topics > section > div > h2{ font-size:var(--l); }
@media screen and (max-width: 520px){
	.topics > section{ display:block; }
	.topics > section > figure{
		padding-top:var(--gap);
		width:auto;
	}
	.topics > section > figure + div{ width:auto; }
}

/* その他
----------------------------------------------------------------
インラインリンク a -inversion
タグ tag
----------------------------------------------------------------*/
/* インラインリンク */
.a{
	display:inline;
	color:var(--main);
}
.a:hover{ color:var(--sub); }
.a.-inversion{ color:white; }
.a.-inversion:hover{ color:var(--sub); }

/* タグ */
.tag{
	display:inline-block;
	font-size:90%;
	background:var(--main);
	color:white;
	text-align:center;
	padding:.3em 1em;
	margin-right:.5em;
}

/* グロナビ・モバイルメニュー
----------------------------------------------------------------*/
#gnav > ul{
	display:flex;
	align-items:stretch;
}
#gnav > ul > li > a{
	display:block;
	padding:20px;
	text-align:center;
	display:flex;
	justify-content:center;
	align-items:center;
	letter-spacing:.1em;
}
#gnav > ul > li > a:hover{
	background:var(--main);
	color:white;
}
#open{
	display:none;
	position:fixed;
	z-index:10000;
	top:0;
	right:0;
	background:white;
}
#open:hover{ background:var(--main1); }
#close{
	display:none;
	position:absolute;
	top:0;
	right:0;
	z-index:1;
}
#close:hover{ background:rgba(255,255,255,.2); }
@media screen and (max-width: 1024px){
	#gnav > ul{ flex-direction:column; }
	#gnav > ul > li > a{ color:white; }
	#open,
	#close{ display:block; }
	#spmenu{
		display:none;
		background:rgba(0,0,0,.9);
		position:fixed;
		top:0;
		left:0;
		right:0;
		bottom:0;
		z-index:10001;
		overflow-y:scroll;
	}
	body.clicked{ overflow-y:hidden; }
	body.clicked #spmenu{ display:block; }
}
