@charset "UTF-8";
/*
UPDATE:
2021/04/22 .archive_line > li に align-items: center を追加
2021/07/22 .cat_list のフォントアイコンを削除
2021/09/13 class.css と reset.cssを統合
2021/09/14 .btnにmargin-top:1remを追加
2021/10/04 marginとpaddingの値を8の倍数に変更
2021/12/14 .mgtb .pdtb を追加
2021/12/14 .entry-content を .content に変更

Breakpoint:
@media screen and (max-width:959px) {}
@media screen and (max-width:559px) {}
-------------------------------------------------------------- */
html,body,div,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,
abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,
dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,
article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	font: inherit;
	vertical-align:baseline;
	box-sizing: border-box;
}
html {
	font-size: 17px;
	overflow-y: scroll;
	scroll-behavior: smooth;
}
body {
	font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
	line-height: 1.9;/* flexで囲んだ場合に自動的にpでマークアップされないため、divも含めた全体に適用する必要がある */
	line-break: strict; /*for iOS 禁則処理（撥音、拗音、促音、ハイフン、長音、閉じ括弧なども行頭に来ない規則）*/
	animation: fadeIn 1s ease 0s 1 normal;/* Fade In */
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: 100%;/* ランドスケープ時に文字サイズを変えない */
	-ms-text-size-adjust: 100%;
	/*word-break: break-all;*//* 長い英単語やURLを表示した際のレイアウト崩れを回避。但し英単語の途中でも改行される。 */
}
@keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}
@-webkit-keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}
a {
	vertical-align: baseline;
	text-decoration:none;
	outline:none;
	background: transparent;
	transition: .5s;
	/* box-sizing: border-box; */
}
a:hover,
a:active	{
	text-decoration: underline;
}
a:focus	{
	outline:none;
}
article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary {
	display: block;
}
audio,canvas,video {
	display: inline-block;
}
audio:not([controls]) {
	display: none;
}
ul {
	list-style: none;
}
ins {
	text-decoration: none;
}
mark {
	background: linear-gradient(transparent 50%, #ffff8d 50%);
}
del {
	text-decoration: line-through;
}
abbr[title], dfn[title] {
	border-bottom: solid 1px rgba(0,0,0,.1);;
	cursor: help;
}
table {
	width:100%;
	border-collapse: collapse;
	border-spacing: 0;
}
table caption{
	text-align: center;
	margin-bottom: var(--space8);
}
table thead{
	text-align: left;
}
table th,
table td{
	line-height: 1.5;
	vertical-align: middle;
	padding: var(--space16);
}
table tbody th{
	text-align: left;
	min-width: 100px;
}
table td img,
table td p,
table td ul,
table td ol,
table th dl{
	display: block;
	margin: 0 auto;
	border: none;
}
blockquote,q {
	quotes: none;
}
hr {
	height: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
pre,code,kbd,samp,tt{
	/* line-height:100%; */
	font-family:monospace;
	display: block;
}
img,object {
	vertical-align: bottom; /* 下余白の回避 */
	line-height: 1; /* 下余白の回避 */
	-ms-interpolation-mode: bicubic; /*for IE6&7*/
	max-width : 100%; /*Fluid Image*/
	height: auto;
}
embed,iframe,object,video {
	max-width:100%;/* Make sure videos and embeds fit their containers */
}
strong,em,b{
	font-weight: 700;
}
input,
button,
textarea,
select{
	font: inherit;
	outline: none;
}
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="number"],
input[type="search"],
textarea,
select{
	display: block;
	width: 90%;
	max-width: 320px;
	padding: var(--space8) var(--space16);
	border-radius: 4px;
	border: solid 1px rgba(0,0,0,.1);
	border: none;
	background-color: rgba(0,0,0,.05);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
input[type="email"]:invalid {
	background-color: #f9dbdb;
}
input[readonly],
textarea[readonly] {
	opacity: .5;
}
textarea {
	max-width: 560px;
	height: 80px;
	overflow: auto;
}
code textarea {
	width: calc(100% - var(--space32));
	max-width: calc(100% - var(--space32));
	padding: var(--space16);
	white-space: nowrap;
	font-size: 0.95rem;
}
input[type="number"]{
	max-width: 100px;
}
input[type="file"]{
	font-size: 0.85em;
	line-height: 1;
}
input[type="radio"],
input[type="checkbox"] {
	display: inline-block;
	margin-right: var(--space8);
}
input[type="submit"],
input[type="reset"],
input[type="button"],
button {
	/* display: block; */
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	box-sizing: border-box;
	line-height: 1;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition: .3s ease-out;/*変化を緩やかに*/
	cursor: pointer;
}
input[type="submit"]{
	color: var(--main);
}
input[type="submit"]:disabled{
	opacity: .5;
	cursor: default;
}
input[type="search"] {
	width: 100%;
	max-width: initial;
}
input[type="search"]::-webkit-search-decoration {
	display: none;
}
select{
	outline:none;
	text-indent: 0.01px;
	text-overflow: '';
	vertical-align: middle;
	width: auto;
	max-width: initial;
	cursor: pointer;
	background-image: url(images/sort-down-solid.svg);
	background-size: 12px;
	background-repeat: no-repeat;
	background-position: right 20px center;
	padding-right: var(--space32);
}
select option{
	background-color: #fff;
}
select::-ms-expand {
	display: none; /* IEのselect要素の右側に表示される矢印を無効化 */
}
select:-moz-focusring {
	color: transparent;
	text-shadow: 0 0 0 #828c9a;
}
time{
	display: inline-block;
}
blockquote {
	background-color: #f7f7f7;
	padding: var(--space32);
}
blockquote footer{
	font-size: .9rem;
}
blockquote footer cite{
	font-style: italic;
}
blockquote::before {
	display: inline-block;
	content:"\f10d";/* quote-left */
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	text-rendering: auto;
	color: rgba(0,0,0,.2);
	margin-bottom: var(--space16);
}
details {
	transition: .2s;
}
details summary:hover{
	cursor: pointer;
	opacity: 0.5;
}


/* main（メインコンテンツ）
-------------------------------------------------------------- */
/* Google Jump Rate = 20,16,14,12,11,10 */
.h1,main h1 {font-size: 2.0rem;line-height: 1.4;}
.h2,main h2 {font-size: 1.6rem;line-height: 1.5;}
.h3,main h3 {font-size: 1.4rem;line-height: 1.5;}
.h4,main h4 {font-size: 1.2rem;line-height: 1.6;}
.h5,main h5 {font-size: 1.1rem;line-height: 1.7;}
@media screen and (max-width:559px) {
	.h1,main h1 {font-size: 1.6rem;line-height: 1.5;}
	.h2,main h2 {font-size: 1.4rem;line-height: 1.5;}
	.h3,main h3 {font-size: 1.2rem;line-height: 1.6;}
	.h4,main h4 {font-size: 1.1rem;line-height: 1.7;}
	.h5,main h5 {font-size: 1.0rem;line-height: 1.8;}
}
main h2,
main h3,
main h4,
main h5 {
	margin-top: var(--space64);
}
main p,
main ul,
main ol,
main dl,
main table,
main pre,
main blockquote,
main blockquote footer,
main figure,
main .wp-video{
	margin-top: var(--space32);
}
main ul ul,
main ul ol,
main ul dl,
main ol ul,
main ol ol,
main ol dl,
main dl ul,
main dl ol,
main dl dl,
main table *:first-child,
main blockquote *:first-child,
main details summary + *,
main .content h2:first-child, /* 記事内の最初のh2 */
main .content > p:first-child, /* 記事内の最初のp */
main .content > ul:first-child /* 記事内の最初のul */ {
	margin-top: 0;
}
main p:empty{ /* 空のタグ */
	display: none;
}
main strong {
	background: linear-gradient(transparent 50%, #ffff8d 50%);
}
main ul li{
	list-style-type: disc;
}
main li{ /* ul&ol共通 main ul li で指定すると .archive_line li などのクラスに影響があるためこうしてる */
	margin-left: calc(var(--space16)*1.5);
}
main dt{
	margin-top: var(--space16);
	font-weight: bold;
}
main dl dt:first-child{
	margin-top: 0;
}
main table img,
main table p{
	margin: 0;
	box-shadow: none;
}
main details[open] {
	margin-bottom: var(--space32);
}
main blockquote p:last-child{
	margin-bottom: 0;
}
main figure{
	display: inline-block;
}
main figure figcaption{
	margin-top: var(--space16);
	font-size: 0.9rem;
	text-align: center;
}
main small {
	font-size: 0.9rem;
}
main iframe{
	display: block;
	width: 100%;
}
main img{
	display: inline-block;/* blockにすると、改行時に自動挿入される<br>で余計な余白ができる */
}
main img + br,
main iframe + br{ /* 画像直後の改行 */
    content: "";
    display: block;
    height: var(--space16);
}
main br + img,
main br + iframe{ /* 改行直後の画像 */
    margin-top: var(--space16);
}
main .content li > a[target=_blank]:after,
main .content p > a[target=_blank]:after { /* 外部リンクにアイコンを自動付与 */
    content: "";
    display: inline-block;
    background-image: url(images/icon/external-link-alt-solid.svg);
    background-size: 100%;
    width: 12px;
    height: 12px;
    margin: 0 var(--space8) 0 4px;
	opacity: .5;
}


/* Class
-------------------------------------------------------------- */
.serif	{font-family: "ヒラギノ明朝 ProN W3","Hiragino Mincho ProN W3",HiraMinProN-W3,"ヒラギノ明朝 ProN","Hiragino Mincho ProN","ヒラギノ明朝 Pro","Hiragino Mincho Pro","游明朝体","YuMincho","游明朝","Yu Mincho","HGS明朝E","ＭＳ Ｐ明朝","MS PMincho",serif;}
.sans	{font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",HelveticaNeue,"Segoe UI","Hiragino Kaku Gothic ProN",メイリオ,Meiryo,arial,sans-serif;}
.noto	{font-family: 'Noto Sans JP'}
.avenir	{font-family: Avenir,"Segoe UI",sans-serif;}

.subtext	{color:var(--text);font-size:.85em;opacity:.7;}
.light_text	{color: rgba(0,0,0,.5);}
.dark_text	{color: rgba(0,0,0,.9);}

.border 	{border: solid 1px rgba(0,0,0,.1)!important;}
.bd0,
.border_0,
.border_none,
.noborder 	{border: none!important}
.marker 	{background: linear-gradient(transparent 50%, #ffff82 50%);}

.relative	{position:relative!important;}
.absolute	{position:absolute!important;}
.fixed		{position:fixed!important;}

.center		{text-align:center!important;}
.align_l	{text-align:left!important;}
.align_r	{text-align:right!important;}

.inline		{display:inline-block!important;}
.block		{display:block!important;}
.none		{display:none!important;}
.hidden		{overflow:hidden!important;}
.nowrap		{white-space:nowrap!important;}

@media screen and (max-width:959px) {
	.center_md	{text-align:center!important;}
	.align_l_md	{text-align:left!important;}
	.align_r_md	{text-align:right!important;}
	.inline_md	{display:inline-block!important;}
	.block_md	{display:block !important;}
	.none_md	{display:none!important;}
}
@media screen and (max-width:559px) {
	.center_sm	{text-align:center!important;}
	.align_l_sm	{text-align:left!important;}
	.align_r_sm	{text-align:right!important;}
	.inline_sm	{display:inline-block!important;}
	.block_sm	{display:block !important;}
	.none_sm	{display:none!important;}
}

.normal		{font-weight:500!important;} /* for noto sans */
.bold		{font-weight:700!important;} /* for noto sans */

.wt100	{font-weight: 100;}
.wt200	{font-weight: 200;}
.wt300	{font-weight: 300;}
.wt400	{font-weight: 400;}
.wt500	{font-weight: 500;}
.wt600	{font-weight: 600;}
.wt700	{font-weight: 700;}
.wt800	{font-weight: 800;}
.wt900	{font-weight: 900;}

.font400	{font-size:4.0rem!important;}
.font350	{font-size:3.5rem!important;}
.font300	{font-size:3.0rem!important;}
.font250	{font-size:2.5rem!important;}
.font200	{font-size:2.0rem!important;}
.font150	{font-size:1.5rem!important;}
.font140	{font-size:1.4rem!important;}
.font130	{font-size:1.3rem!important;}
.font120	{font-size:1.2rem!important;}
.font110	{font-size:1.1rem!important;}
.font100	{font-size:1.0rem!important;}
.font90		{font-size:0.9rem!important;}
.font80		{font-size:0.8rem!important;}
.font70		{font-size:0.7rem!important;}
@media screen and (max-width:559px) {
	.font400sm	{font-size:4.0rem!important;}
	.font350sm	{font-size:3.5rem!important;}
	.font300sm	{font-size:3.0rem!important;}
	.font250sm	{font-size:2.5rem!important;}
	.font200sm	{font-size:2.0rem!important;}
	.font150sm	{font-size:1.5rem!important;}
	.font140sm	{font-size:1.4rem!important;}
	.font130sm	{font-size:1.3rem!important;}
	.font120sm	{font-size:1.2rem!important;}
	.font110sm	{font-size:1.1rem!important;}
	.font100sm	{font-size:1.0rem!important;}
	.font90sm	{font-size:0.9rem!important;}
	.font80sm	{font-size:0.8rem!important;}
	.font70sm	{font-size:0.7rem!important;}
}

.black	{color: #000000;}
.white	{color: #ffffff;}
.gray	{color: #646464;}
.grey	{color: #646464;}
.red	{color: #ff6666;}
.pink	{color: #ff6699;}
.blue	{color: #6495ed;}
.green	{color: #779100;}
.orange	{color: #ff8c00;}
.purple	{color: #800080;}
.yellow	{color: #ffff00;}
.brown	{color: #8b4513;}

.mg0{margin:0px!important;}.mgt0{margin-top:0px!important;}.mgb0{margin-bottom:0px!important;}.mgl0{margin-left:0px!important;}.mgr0{margin-right:0px!important;}
.mg1{margin:var(--space8)!important;}.mgt1{margin-top:var(--space8)!important;}.mgb1{margin-bottom:var(--space8)!important;}.mgl1{margin-left:var(--space8)!important;}.mgr1{margin-right:var(--space8)!important;}.mgtb1{margin-top:var(--space8)!important;margin-bottom:var(--space8)!important;}
.mg2{margin:var(--space16)!important;}.mgt2{margin-top:var(--space16)!important;}.mgb2{margin-bottom:var(--space16)!important;}.mgl2{margin-left:var(--space16)!important;}.mgr2{margin-right:var(--space16)!important;}.mgtb2{margin-top:var(--space16)!important;margin-bottom:var(--space16)!important;}
.mg3{margin:var(--space32)!important;}.mgt3{margin-top:var(--space32)!important;}.mgb3{margin-bottom:var(--space32)!important;}.mgl3{margin-left:var(--space32)!important;}.mgr3{margin-right:var(--space32)!important;}.mgtb3{margin-top:var(--space32)!important;margin-bottom:var(--space32)!important;}
.mg4{margin:var(--space64)!important;}.mgt4{margin-top:var(--space64)!important;}.mgb4{margin-bottom:var(--space64)!important;}.mgl4{margin-left:var(--space64)!important;}.mgr4{margin-right:var(--space64)!important;}.mgtb4{margin-top:var(--space64)!important;margin-bottom:var(--space64)!important;}
.mg5{margin:var(--space128)!important;}.mgt5{margin-top:var(--space128)!important;}.mgb5{margin-bottom:var(--space128)!important;}.mgl5{margin-left:var(--space128)!important;}.mgr5{margin-right:var(--space128)!important;}.mgtb5{margin-top:var(--space128)!important;margin-bottom:var(--space128)!important;}
.mg6{margin:var(--space256)!important;}.mgt6{margin-top:var(--space256)!important;}.mgb6{margin-bottom:var(--space256)!important;}.mgl6{margin-left:var(--space256)!important;}.mgr6{margin-right:var(--space256)!important;}.mgtb6{margin-top:var(--space256)!important;margin-bottom:var(--space256)!important;}

.mg_auto{margin-left:auto;margin-right:auto;}

.pd0{padding:0px!important;}.pdt0{padding-top:0px!important;}.pdb0{padding-bottom:0px!important;}.pdl0{padding-left:0px!important;}.pdr0{padding-right:0px!important;}
.pd1{padding:var(--space8)!important;}.pdt1{padding-top:var(--space8)!important;}.pdb1{padding-bottom:var(--space8)!important;}.pdl1{padding-left:var(--space8)!important;}.pdr1{padding-right:var(--space8)!important;}.pdtb1{padding-top:var(--space8)!important;padding-bottom:var(--space8)!important;}
.pd2{padding:var(--space16)!important;}.pdt2{padding-top:var(--space16)!important;}.pdb2{padding-bottom:var(--space16)!important;}.pdl2{padding-left:var(--space16)!important;}.pdr2{padding-right:var(--space16)!important;}.pdtb2{padding-top:var(--space16)!important;padding-bottom:var(--space16)!important;}
.pd3{padding:var(--space32)!important;}.pdt3{padding-top:var(--space32)!important;}.pdb3{padding-bottom:var(--space32)!important;}.pdl3{padding-left:var(--space32)!important;}.pdr3{padding-right:var(--space32)!important;}.pdtb3{padding-top:var(--space32)!important;padding-bottom:var(--space32)!important;}
.pd4{padding:var(--space64)!important;}.pdt4{padding-top:var(--space64)!important;}.pdb4{padding-bottom:var(--space64)!important;}.pdl4{padding-left:var(--space64)!important;}.pdr4{padding-right:var(--space64)!important;}.pdtb4{padding-top:var(--space64)!important;padding-bottom:var(--space64)!important;}
.pd5{padding:var(--space128)!important;}.pdt5{padding-top:var(--space128)!important;}.pdb5{padding-bottom:var(--space128)!important;}.pdl5{padding-left:var(--space128)!important;}.pdr5{padding-right:var(--space128)!important;}.pdtb5{padding-top:var(--space128)!important;padding-bottom:var(--space128)!important;}
.pd6{padding:var(--space256)!important;}.pdt6{padding-top:var(--space256)!important;}.pdb6{padding-bottom:var(--space256)!important;}.pdl6{padding-left:var(--space256)!important;}.pdr6{padding-right:var(--space256)!important;}.pdtb6{padding-top:var(--space256)!important;padding-bottom:var(--space256)!important;}

.line100	{line-height:1.0;}
.line110	{line-height:1.1;}
.line120	{line-height:1.2;}
.line130	{line-height:1.3;}
.line140	{line-height:1.4;}
.line150	{line-height:1.5;}
.line160	{line-height:1.6;}
.line170	{line-height:1.7;}
.line180	{line-height:1.8;}
.line190	{line-height:1.9;}
.line200	{line-height:120;}

.width50	{width: 50%;}
.width100	{width: 100%;box-sizing:border-box;}

.radius		{border-radius: 999px!important;}
.radius5	{border-radius: 5px!important;}
.radius10	{border-radius: 10px!important;}
.radius20	{border-radius: 20px!important;}
.radius100	{border-radius: 100px!important;}

.opacity5	{opacity: .5}

.shadow{
	box-shadow: 0 12px 10px -6px rgba(0,0,0,.1);/*浮いた感じの影*/
}
.shadow_none{
	box-shadow: none!important;
}

.sticky {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 2;
}

.flex{
	display: flex;
	flex-wrap: wrap;
	margin-bottom: calc(-1 * var(--space32));
	margin-left: calc(-1 * var(--space32));
}
.nowrap{
	flex-wrap: nowrap;
}
.flex_nowrap{ /* flex + nowrap の方が取り回しが良いのでこちらはそのうち削除 */
	display: flex;
	flex-wrap: nowrap;
}
.grow_1		{flex-grow: 1;}
.shrink_0	{flex-shrink: 0;}
.reverse	{flex-direction: row-reverse;}
.align_c	{align-items: center;}
.align_t	{align-items: flex-start;}
.align_b	{align-items: flex-end;}

.flex > div,
.flex > p,
.flex > article,
.flex > section,
.flex > aside,
.flex > figure,
.flex > li,
.flex > dl,
.flex > span,
.flex > img{
	flex-grow: 0;
	flex-shrink: 1;
	flex-basis: auto;
	margin-bottom: var(--space32);
	margin-left: var(--space32);
	box-sizing: border-box;
	list-style: none;
}
/* imgをflexアイテム化した際の処理 */
.flex > img{
	height: 100%; /* 画像のアスペクト比を保持 */
}
.flex > img + br{
	display: none; /* 自動挿入されるbrを削除 */
}
.flex > img + br + img{
	margin-top: 0;
}

.flex > .col1	{flex-basis:calc(100 / 12 * 1% - var(--space32));width:calc(100 / 12 * 1% - var(--space32));}
.flex > .col2	{flex-basis:calc(100 / 12 * 2% - var(--space32));width:calc(100 / 12 * 2% - var(--space32));}
.flex > .col3	{flex-basis:calc(100 / 12 * 3% - var(--space32));width:calc(100 / 12 * 3% - var(--space32));}
.flex > .col4	{flex-basis:calc(100 / 12 * 4% - var(--space32));width:calc(100 / 12 * 4% - var(--space32));}
.flex > .col5	{flex-basis:calc(100 / 12 * 5% - var(--space32));width:calc(100 / 12 * 5% - var(--space32));}
.flex > .col6	{flex-basis:calc(100 / 12 * 6% - var(--space32));width:calc(100 / 12 * 6% - var(--space32));}
.flex > .col7	{flex-basis:calc(100 / 12 * 7% - var(--space32));width:calc(100 / 12 * 7% - var(--space32));}
.flex > .col8	{flex-basis:calc(100 / 12 * 8% - var(--space32));width:calc(100 / 12 * 8% - var(--space32));}
.flex > .col9	{flex-basis:calc(100 / 12 * 9% - var(--space32));width:calc(100 / 12 * 9% - var(--space32));}
.flex > .col10	{flex-basis:calc(100 / 12 * 10% - var(--space32));width:calc(100 / 12 * 10% - var(--space32));}
.flex > .col11	{flex-basis:calc(100 / 12 * 11% - var(--space32));width:calc(100 / 12 * 11% - var(--space32));}
.flex > .col12	{flex-basis:calc(100 / 12 * 12% - var(--space32));width:calc(100 / 12 * 12% - var(--space32));}
@media screen and (max-width:959px) {
	.flex > .col1md	{flex-basis:calc(100 / 12 * 1% - var(--space32));width:calc(100 / 12 * 1% - var(--space32));}
	.flex > .col2md	{flex-basis:calc(100 / 12 * 2% - var(--space32));width:calc(100 / 12 * 2% - var(--space32));}
	.flex > .col3md	{flex-basis:calc(100 / 12 * 3% - var(--space32));width:calc(100 / 12 * 3% - var(--space32));}
	.flex > .col4md	{flex-basis:calc(100 / 12 * 4% - var(--space32));width:calc(100 / 12 * 4% - var(--space32));}
	.flex > .col5md	{flex-basis:calc(100 / 12 * 5% - var(--space32));width:calc(100 / 12 * 5% - var(--space32));}
	.flex > .col6md	{flex-basis:calc(100 / 12 * 6% - var(--space32));width:calc(100 / 12 * 6% - var(--space32));}
	.flex > .col7md	{flex-basis:calc(100 / 12 * 7% - var(--space32));width:calc(100 / 12 * 7% - var(--space32));}
	.flex > .col8md	{flex-basis:calc(100 / 12 * 8% - var(--space32));width:calc(100 / 12 * 8% - var(--space32));}
	.flex > .col9md	{flex-basis:calc(100 / 12 * 9% - var(--space32));width:calc(100 / 12 * 9% - var(--space32));}
	.flex > .col10md{flex-basis:calc(100 / 12 * 10% - var(--space32));width:calc(100 / 12 * 10% - var(--space32));}
	.flex > .col11md{flex-basis:calc(100 / 12 * 11% - var(--space32));width:calc(100 / 12 * 11% - var(--space32));}
	.flex > .col12md{flex-basis:calc(100 / 12 * 12% - 24px);width:calc(100 / 12 * 12% - 24px);}
}
@media screen and (max-width:559px) {
	.flex > .col1sm	{flex-basis:calc(100 / 12 * 1% - var(--space32));width:calc(100 / 12 * 1% - var(--space32));}
	.flex > .col2sm	{flex-basis:calc(100 / 12 * 2% - var(--space32));width:calc(100 / 12 * 2% - var(--space32));}
	.flex > .col3sm	{flex-basis:calc(100 / 12 * 3% - var(--space32));width:calc(100 / 12 * 3% - var(--space32));}
	.flex > .col4sm	{flex-basis:calc(100 / 12 * 4% - var(--space32));width:calc(100 / 12 * 4% - var(--space32));}
	.flex > .col5sm	{flex-basis:calc(100 / 12 * 5% - var(--space32));width:calc(100 / 12 * 5% - var(--space32));}
	.flex > .col6sm	{flex-basis:calc(100 / 12 * 6% - var(--space32));width:calc(100 / 12 * 6% - var(--space32));}
	.flex > .col7sm	{flex-basis:calc(100 / 12 * 7% - var(--space32));width:calc(100 / 12 * 7% - var(--space32));}
	.flex > .col8sm	{flex-basis:calc(100 / 12 * 8% - var(--space32));width:calc(100 / 12 * 8% - var(--space32));}
	.flex > .col9sm	{flex-basis:calc(100 / 12 * 9% - var(--space32));width:calc(100 / 12 * 9% - var(--space32));}
	.flex > .col10sm{flex-basis:calc(100 / 12 * 10% - var(--space32));width:calc(100 / 12 * 10% - var(--space32));}
	.flex > .col11sm{flex-basis:calc(100 / 12 * 11% - var(--space32));width:calc(100 / 12 * 11% - var(--space32));}
	.flex > .col12sm{flex-basis:calc(100 / 12 * 12% - 24px);width:calc(100 / 12 * 12% - 24px);}
}


/* テーブル
-------------------------------------------------------------- */
table.layout_fixed{
	table-layout:fixed; /* 幅固定 */
}
@media screen and (max-width:959px) {
	table.layout_fixed{
		table-layout:auto;
	}
}

table.price tr th:last-child,
table.price tr td:last-child{
	text-align: right;
	white-space: nowrap;
}

@media screen and (max-width:959px) {
	.scroll_table,
	.scroll_table caption,
	.scroll_table thead th,
	.scroll_table tbody th,
	.scroll_table tbody td {
		display: block;
	}
	.scroll_table thead {
		display: block;
		float: left;
	}
	.scroll_table tbody {
		display: flex;
		width: auto;
		overflow-x: auto;
		white-space: nowrap;
	}
	.scroll_table th:not(:last-child),
	.scroll_table td:not(:last-child) {
		border-bottom: none;
	}
	.scroll_table thead th {
		text-align: left;
	}
	.scroll_table tbody th,
	.scroll_table tbody td {
		border-left: none;
	}
}

.sticky_table {
	display:block;
	width: 100%;
	overflow: auto;
	font-size: 0.85rem;
}
.sticky_table caption{
	position: -webkit-sticky;
	position: sticky;
	left: 0;
	display: block;
	text-align: left;
}
.sticky_table thead{
	display:none;
}
.sticky_table tbody{
	display:table;
	width: 100%;
	position: relative;
}
.sticky_table tr th:first-child{
	position: -webkit-sticky;
	position: sticky;
	left: 0;
	text-align: left;
}
.sticky_table tr th:only-of-type{ /* 唯一のth要素に適用（見出し行には適用しない） */
	min-width: 200px;
}
@media screen and (max-width:559px) {
	.sticky_table tr th:only-of-type{
		min-width: 100px;
	}
}
.sticky_table td{
	z-index: -1;
	min-width: 100px; /* テキストが折り返されて表が縦に長くなるのを回避 */
}


/* 画像のトリミング
-------------------------------------------------------------- */
.rectangle{
	position: relative;
	width: 100%;
	padding-top: 61.80%; /*Golden Ratio*/
	overflow: hidden;
}
.square,
.circle{
	position: relative;
	width: 100%;
	padding-top: 100%;
	overflow: hidden;
}
.circle{
	border-radius: 999px;
}
.rectangle img,
.square img,
.circle img{
	position: absolute;
	/* top: 0;
	left: 0; */
	top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
	display: block;
	min-width: 100%; /* 最低値を100%にすることで縦長・横長ともに対応できる */
	min-height: 100%;
	margin: 0;
	object-fit: cover;
	object-position: 50% 50%;
	font-family: 'object-fit:cover;object-position: 50% 0%;'; /*for IE*/
}
.circle img{
	/* border-radius: 999px; imgに指定すると縦長画像に対応できない */
	box-shadow: none;
}


/* iframe 埋め込み
-------------------------------------------------------------- */
.youtube { /*レスポンシブ化*/
  position: relative;
  width: 100%;
  margin-top: var(--space32);
  padding-top: 56.25%;
}
.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}
.twitter{
	margin: 0px auto;
	width: 500px;
	max-width: 100%;
	border: solid 1px rgba(0,0,0,.1);
}
.facebook{
	margin: 0px auto;
}
.wp-video, /* 埋め込み動画 */
.wpulike{
	margin-top: var(--space32);
}
.twitter-tweet,/*SNS埋め込みコード*/
.instagram-media{
	margin-top: var(--space32)!important;
	margin-bottom: 0!important;
	min-width: initial;
}
.instagram-media{
	margin-top: var(--space32)!important;
	margin-bottom: 0!important;
	min-width: initial!important;
}


/* ボタン（ a / input / button ）
-------------------------------------------------------------- */
.btn{
	position: relative;
	display: inline-flex;
	align-items: center;
	margin-top: var(--space32);
	padding: var(--space16) var(--space32);
	text-align: left; /* 複数行テキストを左揃え */
	line-height: 1.4;
	font-weight: 700;
	text-decoration:none!important;
	outline: 0; /*for input*/
	-webkit-appearance: none;
	transition: .3s;
	box-sizing: border-box;
	text-decoration: none;
	/* border-radius: 2px; */
	border: none;
	background: transparent;
	color: inherit;
}
/* main .btn{
	margin-top: var(--space16);
} */
/* main .content > div .btn{
	border: solid 1px blue;
} */
.btn.full{
	width: 100%; /* for input */
	display: flex; /* for input */
	justify-content: center;
}
.btn.mini{
	padding: var(--space8) var(--space16);
	font-size: 90%;
}
.btn		{color:#ffffff;background-color:var(--main);border:solid 1px var(--main);}
.btn.invert	{color:var(--main);background-color:transparent;}
.btn.white	{color:#ffffff;background-color:rgba(255,255,255,.1);border:solid 1px #ffffff;}
.btn.black	{color:#555555;background-color:rgba(255,255,255,.1);border:solid 1px #555555;}
.btn.orange	{color:#ffffff;background-color:#ff8a00;border:solid 1px #ff8a00;}
.btn input	{color:inherit;border:none;background:transparent;}

.btn:hover			{color:var(--main);background-color:transparent;}
.btn.invert:hover	{color:#ffffff;background-color:var(--main);}
.btn.white:hover  	{color:var(--main);background-color:#ffffff;}
.btn.black:hover  	{color:#ffffff;background-color:#555555;}
.btn.orange:hover	{color:#ff8a00;background-color:transparent;}

.btn::before		{color:#ffffff;}
.btn.invert::before	{color:var(--main);}
.btn.white::before	{color:#ffffff;}
.btn.black::before	{color:#555555;}
.btn.orange::before	{color:#ffffff;}

.btn:hover::before			{color:var(--main);}
.btn.invert:hover::before	{color:#ffffff;}
.btn.white:hover::before  	{color:var(--main);}
.btn.black:hover::before  	{color:#ffffff;}
.btn.orange:hover::before	{color:#ff8a00;}

/* icon */
.btn::before{
	margin-right: var(--space16);
	transition: .2s;
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	text-rendering: auto;
	content: "\f0da"; /* caret-right ▶ */
}
.btn.mail::before {
	content: "\f0e0";
}
.btn.cal::before {
	content: "\f073";
}
.btn.reserve::before {
	content: "\f274";
}
.btn.download::before {
	content: "\f019";
}
.no_icon::before{
	display: none;
}
.no_icon i{
	margin-right: var(--space16);
	transition: .2s;
}
/* icon:hover */
.btn:hover::before{
	transform: translate(var(--space8),0); /* 右方向に移動 */
}
.btn.download:hover::before{
	transform: translateY(var(--space8)); /* transformの位置はそのまま（transformで下移動させるとブレる） */
}
.btn.mail:hover::before,
.btn.cal:hover::before,
.btn.reserve:hover::before{
	transform: translate(0,0) scale(1.5,1.5); /* 拡大 */
}
.no_icon:hover i{
	transform: scale(1.5,1.5); /* 拡大 */
}
/*
.btn.no-icon:before {content: "";padding-right:0px;}
.btn.envelope:before {content: "\f0e0";}
.btn.caret-down:before {content: "\f0d7";}
.btn.external-link:before {content: "\f35d";}
*/

/* shadow */
/* .btn.solid::before,
.btn.solid::after {
  content: '';
  position: absolute;
  background-color: var(--main);
  transition: 0.2s ease 0s;
  opacity: .5;
  opacity: 1;
}
.btn.solid::before {
  bottom: -7px;
  right: -23px;
  width: 100%;
  height: 1px;
}
.btn.solid::after {
  top: 7px;
  right: -7px;
  width: 1px;
  height: 100%;
}
.btn.solid:hover::before {
  width: 0%;
}
.btn.solid:hover::after {
  height: 0%;
} */

.btn.solid:hover {
	transform: translateX(4px) translateY(4px);  /* 影の位置まで移動 */
}
.btn.solid::after {
	content: '';
	position: absolute;
	top: 7px;
	left: 7px;
	width: 100%;
	height: 100%;
	background: transparent;
	border-right: solid 1px var(--main);
	border-bottom: solid 1px var(--main);
	transition: .2s;
	opacity: 1;
}
.btn.solid:hover::after {
	opacity: 0;
	top: 0;
	left: 0;
}





/* テキストリンク（ a ）
-------------------------------------------------------------- */
.pointer{
	cursor: pointer;
}
.link_arrow {
    display: inline-flex;
    align-items: center;
	position: relative;
    background-color: transparent;
    cursor: pointer;
    letter-spacing: .5px;
    font-weight: bold;
    /* font-size: .85em; */
}
.link_arrow::after {
	content: "";
	display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 2px solid #ccc;
    border-bottom: 2px solid #ccc;
	border-color: inherit;
    position: relative;
    transform: rotate(-45deg);
    margin-left: var(--space8);
    transition: all .2s ease;
}
.link_arrow::before {
	position: absolute;
	right: 0;
	content: "";
    width: 0;
    height: 0;
    transition: all .2s ease;
    opacity: 0;
    border: 1px solid #ccc;
	border-color: inherit;
}
.link_arrow:hover {
	text-decoration: none;
}
.link_arrow:hover::after {
    transform: rotate(-45deg) translate(4px, 4px);
}
.link_arrow:hover::before {
    opacity: 1;
    width: 10px;
	right: -5px;
}

/* ホバーエフェクト
-------------------------------------------------------------- */
.hover_underline a {
	position: relative;
	display: inline-block;
	text-decoration: none;
	color: var(--main);
}
.hover_underline a:hover {
	text-decoration: none;
	opacity: .7;
}
.hover_underline a::after {
	position: absolute;
	bottom: calc(-1 * var(--space8));
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--main);
	opacity: 0;
	visibility: hidden;
	transition: .3s;
}
.hover_underline.white a::after {
	background: #ffffff;
}
.hover_underline.black a::after {
	background: #000000;
}
.hover_underline a:hover::after,
.hover_underline li.current a::after {
	bottom: 0;
	opacity: 1;
	visibility: visible;
}
.hover_float a img{
	display: inline-block;
	transition: .2s;
}
.hover_float a img:hover{
	-webkit-transform: translateY(-5px);
	-ms-transform: translateY(-5px);
	transform: translateY(-5px);
	box-shadow: 0 12px 10px -6px rgba(0,0,0,.3);
}
.hover_shadow a img{
	display: inline-block;
	transition: .2s;
	box-shadow: 0 5px 10px 0 rgba(0,0,0,.05);
	transition: .5s;
}
.hover_shadow a img:hover{
	box-shadow: 0 5px 15px 0 rgba(0,0,0,.25);
}

/*　アンダーライン（見出しの装飾）
-------------------------------------------------------------- */
/* .underline::after {
	content: '';
	display: block;
	width: 100px;
	height: 6px;
	margin: var(--space32) auto;
	border-radius: 10px;
	opacity: 0.9;
	background: #517c8d;
} */

/*　SNSアイコン
-------------------------------------------------------------- */
.sns_icons li{
	display: inline-block;
}
.sns_icons li:not(:last-child)/* 最後以外に適用 */{
	margin-right: var(--space8);
}
.sns_icons li a:hover{
	opacity: .5;
}

.sns_icons_svg li{
	display: inline-block;
}
.sns_icons_svg li:not(:last-child)/* 最後以外に適用 */{
	margin-right: var(--space16);
}
.sns_icons_svg li a {
    display: block;
    width: 48px;
    height: 48px;
    line-height: 1;
    background-color: #FFFFFF;
    border-radius: 50%;
    text-decoration: none;
    text-align: center;
    position: relative;
    transition: all 0.15s ease;
}
.sns_icons_svg li a svg {
    width: 30px;
    height: 20px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
    /* fill: #000000; */
	/* border: solid 1px blue; */
}
.sns_icons_svg li a:hover svg {
    fill: #ffffff;
}
.icon-twitter a:hover {		background-color: #1DA1F2;}
.icon-instagram a:hover {	background: linear-gradient(45deg, rgba(254,212,117,1) 0%,rgba(229,61,93,1) 50%,rgba(194,49,134,1) 70%,rgba(156,56,187,1) 100%);}
.icon-facebook a:hover {	background-color: #1877f2;}
.icon-youtube a:hover {		background-color: #DA1725;}
.icon-amazon a:hover {		background-color: #FF9900;}
.icon-rss a:hover {			background-color: #6CC655;}
.icon-mail a:hover {		background-color: #555555;}


/* ページトップへ戻る
-------------------------------------------------------------- */
.totop{
	position: fixed;
	bottom: 10px;
	right: 10px;
	width: 50px;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.totop a i{
	font-size: 2rem;
	color: #999;
}
.totop a i:hover{
	color: #ccc;
}


/* ul
-------------------------------------------------------------- */
ul.line{
	display: flex;
    flex-wrap: wrap;
    /* justify-content: space-between; */
}
ul.line li{
	display: inline-block;
	list-style-type: none;
	margin-left: 0;
}
ul.line li:not(:last-child)::after{
	content: '｜';
	padding: var(--space8);
	opacity: .5;
}
ul.check > li,
ul.check-square > li,
ul.exclamation-triangle li,
ul.angle-right li,
ul.kome li{
	position: relative;
	list-style-type: none!important;
	margin-left: 0!important;
	padding-left: var(--space16);
}
ul.check > li::before,
ul.check-square > li::before,
ul.exclamation-triangle li::before,
ul.angle-right li::before,
ul.kome li::before{
	position: absolute;
	left: 0;
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	text-rendering: auto;
}
ul.angle-right li::before{
	content: "\f105"; /* angle-right */
}
ul.check li,
ul.check-square li{
	padding-left: var(--space32);
	margin-bottom: var(--space8);
}
ul.check li::before{
	content: "\f00c"; /* check */
	font-size: 0.9em;
	color: var(--main);
}
ul.check-square > li::before{
	content: "\f14a"; /* check-square */
	font-weight: 700; /* black checkbox */
	font-weight: 500; /* white checkbox */
	color: var(--main);
}
ul.exclamation-triangle li{
	padding-left: var(--space32);
}
ul.exclamation-triangle li::before{
	content: "\f12a"; /* exclamation */
	content: "\f071"; /* exclamation-triangle */
	font-size: 0.9rem;
	color: #ff9900;
}
ul.kome li{
	/* margin-left: var(--space32); */
	padding-left: calc(var(--space16)*1.5);
}
ul.kome li::before{
	content: '※';
}
/*　タイムライン（年表など） */
ul.timeline > li {
  display: flex;
  margin: 0;
}
ul.timeline > li .timeline-date {
	white-space: nowrap;
	padding: var(--space8) var(--space16) var(--space8) 0;
}
ul.timeline > li .timeline-content {
	position: relative;
	border-left: solid 2px rgba(0,0,0,.1);
	padding: var(--space8) 0 var(--space8) var(--space16);
}
ul.timeline > li .timeline-content::before {
	content: '';
	width: 10px;
	height: 10px;
	background: rgba(180,180,180,1);
	position: absolute;
	top: 1.2em;
	left: -6px;
	border-radius: 100%;
}

/* olリスト
-------------------------------------------------------------- */
ol.number{
	counter-reset: number;
	/* margin: 0; */
}
ol.number > li{
	counter-increment: number;
	list-style: none;
	position: relative;
	margin-left: var(--space16);
	padding-left: var(--space32);
	padding-bottom: var(--space32);
}
ol.number.line > li:not(:last-child){
	border-left: dashed 1px var(--border);
	border-left: dotted 1px var(--main);
	border-left: dashed 1px var(--main);
}
ol.number > li::before{
	content: counter(number);
	position: absolute;
	left: -0.9em;
	width: 1.8em;
	height: 1.8em;
	line-height: 1.8em;
	text-align: center;
	border-radius: 50px;
	background-color: var(--main);
	color: white;
}

/*下向き矢印付き*/
.arrow-down > li:not(:last-child)::after{
	display: block;
	content: "\f063"; /* arrow-down */
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	text-rendering: auto;
	color: var(--main);
}
.arrow-down > li img:last-child{
	margin-bottom: var(--space16);
}

/*下向き三角付き*/
.triangle.no_number{
	list-style: none;
}
.triangle.no_number > li{
	margin-left: 0;
}
.triangle > li:not(:last-child)::after{
	content: "";
	display: block;
	width: 0;
	height: 0;
	margin-top: var(--space16);
	margin-bottom: var(--space16);
	border-left: 16px solid transparent;
	border-right: 16px solid transparent;
	border-top: 24px solid var(--main);
}
.triangle.center_icon > li::after{
	margin-right: auto;
	margin-left: auto;
}


/*　dl
-------------------------------------------------------------- */
dl.list dd{
	display: list-item;
	list-style-type: disc;
	margin-left: calc(var(--space16)*1.5);
}
dl.faq dt,
dl.faq dd{
	position: relative;
	padding-left: var(--space32);
}
dl.faq > dt::before,
dl.faq > dd::before{
	position: absolute;
	left: 0;
	font-weight: bold;
}
dl.faq > dt::before{
	content: 'Q.';
}
dl.faq > dd::before{
	content: 'A.';
}
dl.line dt,
dl.line dd{
	display: inline;
	margin: 0;
	list-style: none;
}
dl.line dt::after{
	content: '：';
	font-weight: normal;
}
dl.line dt:nth-child(n+2)::before{
	content: '\A'; /* 改行 */
	white-space: pre;
}
dl.line dd::before{/* ddが複数ある場合のセパレータ */
	content: '/';
	padding: 0 var(--space8);
	/* font-weight: 500; */
}
dl.line dt + dd::before{/* dt直後のddはセパレータなし */
	content: '';
	padding: 0px;
}
dl.table{
	display:flex;
	flex-wrap: wrap;
}
dl.table dt,
dl.table dd{
	margin: 0;
	padding: var(--space16);
	line-height: 1.5;
	vertical-align: middle;
	box-sizing: border-box;
	border-top: solid 1px var(--border);
}
dl.table dt{
	width: 30%;
}
dl.table dd{
	width: 70%;
}
/* アコーディオンメニュー（ depends on jQuery ） */
dl.accordion > dt{
	font-weight: inherit!important;
	margin: 0!important;
}
dl.accordion > dt:hover{
	cursor: pointer;
	opacity: 0.5;
}
dl.accordion > dt::before{
	content: "\f0da"; /* caret-right */
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	text-rendering: auto;
	margin-right: var(--space16);
	display: inline-block;
	transition: .2s;
}
dl.accordion > dt.open::before{
	transform: rotate(90deg);
}
dl.accordion > dd{
	display:none;
	margin: var(--space8) 0 var(--space16);
	padding: var(--space16);
	/* color: var(--main); */
	background-color: var(--sub);
	background-color: rgba(0,0,0,.05);
	border-radius: var(--radius);
}

hr {
	display: block;
	height: 1px;
	border: 0;
	background-color: #dddddd;
	background-color: var(--border);
	margin: var(--space64) auto;
}
hr.short{
	width: 10%;
}
hr.half{
	width: 50%;
}


/* 囲み枠・装飾ボックス
-------------------------------------------------------------- */
.box,
.box_gray{
	padding: var(--space32);
	background-color: var(--gray);
	border-radius: var(--radius);
}
.box_red{
	padding: var(--space32);
	background-color: #ffdede;
	border-radius: var(--radius);
}
.box_yellow{
	padding: var(--space32);
	background-color: #ffefb0;
	border-radius: var(--radius);
}
.box_label {
	padding: var(--space16) 0 var(--space16) var(--space32);
	border-left: solid 8px var(--main);
}
@media screen and (max-width:559px) {
	.box,
	.box_red,
	.box_yellow{
		padding: calc(var(--space16)*1.5);
	}
}
.box_image {
	/* backgroud-imageはstyleで指定 */
	background-position:center center;
	background-size:cover;
	color: #fff;
	text-shadow: 2px 2px 5px rgba(0,0,0,.3);
}
.box_image .blackscreen{
	background-color: rgba(0,0,0,.5);
}
.box_image a{
	color: #fff;
}
.box_full{
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
	background-color: var(--sub);
}
.balloon_top,
.balloon_left,
.balloon_right,
.balloon_bottom{
	position: relative;
	padding: var(--space32);
	border-radius: var(--radius);
	background: var(--sub);
	text-align: left;
}
.balloon_top {margin-top: var(--space16);}
.balloon_left {margin-left: var(--space16);}
.balloon_right {margin-right: var(--space16);}
.balloon_bottom {margin-bottom: var(--space16);}
.balloon_top::after,
.balloon_left::after,
.balloon_right::after,
.balloon_bottom::after{/* バルーン内の吹き出し */
	position: absolute;
	content: '';
	border: solid 20px var(--sub);
}
.balloon_top::after {
	border-top: 0px solid transparent;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	top: -20px;
	left: 50%;
	margin-left: calc(-1 * var(--space8));
}
.balloon_left::after {
	border-top: 10px solid transparent;
	border-left: 10px solid transparent;
	border-bottom: 10px solid transparent;
	top: 50%;
	left: -30px;
	margin-top: calc(-1 * var(--space8));
}
.balloon_right::after {
	border-top: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 10px solid transparent;
	top: 50%;
	right: -30px;
	margin-top: calc(-1 * var(--space8));
}
.balloon_bottom::after {
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 0px solid transparent;
	bottom: -20px;
	left: 50%;
	margin-left: calc(-1 * var(--space8));
}
@media screen and (max-width:959px) {
	.balloon_top_md {margin: 0;margin-top: var(--space16);}
	.balloon_left_md {margin: 0;margin-left: var(--space16);}
	.balloon_right_md {margin: 0;margin-right: var(--space16);}
	.balloon_bottom_md {margin: 0;margin-bottom: var(--space16);}
	.balloon_top_md::after,
	.balloon_bottom_md::after{
		top: auto;
		left: auto;
		right: auto;
		bottom: auto;
		margin: 0;
		border: solid 20px var(--sub);
	}
	.balloon_top_md::after {
		border-top: 0px solid transparent;
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		top: -20px;
		left: 50%;
		margin-left: calc(-1 * var(--space8));
	}
	.balloon_bottom_md::after {
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		border-bottom: 0px solid transparent;
		bottom: -20px;
		left: 50%;
		margin-left: calc(-1 * var(--space8));
	}
}
@media screen and (max-width:559px) {
	.balloon_top_sm {margin: 0;margin-top: var(--space16);}
	.balloon_left_sm {margin: 0;margin-left: var(--space16);}
	.balloon_right_sm {margin: 0;margin-right: var(--space16);}
	.balloon_bottom_sm {margin: 0;margin-bottom: var(--space16);}
	.balloon_top_sm::after,
	.balloon_bottom_sm::after{
		top: auto;
		left: auto;
		right: auto;
		bottom: auto;
		margin: 0;
		border: solid 20px var(--sub);
	}
	.balloon_top_sm::after {
		border-top: 0px solid transparent;
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		top: -20px;
		left: 50%;
		margin-left: calc(-1 * var(--space8));
	}
	.balloon_bottom_sm::after {
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		border-bottom: 0px solid transparent;
		bottom: -20px;
		left: 50%;
		margin-left: calc(-1 * var(--space8));
	}
}


/* 装飾アイコン＆ラベル
-------------------------------------------------------------- */
.icon{
	position: relative;
    display: inline-block;
    width: 1.2em;
    text-align: center;
	font-size: 0.9em;
    font-weight: bold;
	color: #ffffff;
}
.icon:before {
    display: inline-block;
	content: '';
	z-index: -1;
    border-radius: 100px;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 1.4em;
    height: 1.4em;
	background: var(--main);
}
.label{
	display: inline-block;
	padding: 0px var(--space8);
	font-size: 0.8rem;
	font-weight: bold;
	color: #ffffff;
	background-color: var(--main);
	border-radius: 4px;
}
.icon.red:before,.label.red{
	background-color: #ff6666;
}


/*　検索フォーム
-------------------------------------------------------------- */
.searchform{
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	height: 50px;
	padding: 0 0 0 var(--space8);
	background-color: #eeeeee;
	border-radius: var(--radius);
}
.searchform input::placeholder{
	transition: .3s ease-out;
}
/* .searchform:hover input::placeholder{
	color: rgba(0,0,0,.1);
} */
.searchform input:focus {
	outline: 0; /* フォーカス時のボーダを非表示 */
}
.searchform input:-webkit-autofill {
	box-shadow: 0 0 0 1000px white inset; /* オートコンプリート時の水色背景を無効化 */
}
.searchform input[type="search"],
.searchform input[type="submit"]{
	display: block;
	margin: 0px;
	padding: 0px;
	border: none;
	background: none;
}
.searchform input[type="search"] {
	width: 100%;
	padding: 0 var(--space8);
}
.searchform input[type="submit"] {
	width: 50px;
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	font-size: 13px;
	text-rendering: auto;
	box-shadow: none;
	background: none;/*for iOS*/
}
.searchform input[type="submit"]:hover {
	cursor: pointer;
	opacity: .5;
}
.searchform.dark{
	background-color: rgba(0,0,0,.4);
}
.searchform.dark input::placeholder{
	color: rgba(255,255,255,.5);
}
.searchform.dark:hover input::placeholder{
	color: rgba(255,255,255,.1);
}
.searchform.dark input[type="search"]{
	color: rgba(255,255,255,.9);
}
.searchform.dark input[type="submit"]{
	color: rgba(255,255,255,.5);
}
.searchform.light{
	background-color: rgba(255,255,255,.95);
}

/* ヘッダの検索フォーム */
header .searchform{
    position: relative;
	display: inline-flex;
	height: var(--space32);
	padding: 0;
	background: transparent;
	color: var(--main);
	font-size: 0.8rem;
}
header .searchform input[type="search"] {
    position: absolute;
    top: 0;
    right: 0;
	transition: .1s;
	cursor: pointer;
}
header .searchform input[type="search"]:focus {
    top: 25px;
    right: 0;
	width: 240px;
	padding: var(--space8);
	border-radius: 0;
	border-bottom: solid 1px var(--main);
	cursor: default;
}
header .searchform input[type="submit"]{
	width: 1em;
}

@media screen and (max-width:959px) {
	.header_searchform_icon{
		margin: var(--space16) 0 0;
	}
	.header_searchform_icon .header_searchform_icon_open,
	.header_searchform_icon.open .header_searchform_icon_close{
		display: none;
	}
	.header_searchform_icon .header_searchform_icon_close,
	.header_searchform_icon.open .header_searchform_icon_open{
		display: none;
	}
	.header_searchform{
		position: relative;
		top: 0;
		padding: var(--space16) 0;
		height: auto;
		overflow: auto;
		background: none;
	}

	/* ヘッダの検索フォーム */
	header .searchform{
		/* position: relative;
		display: inline-flex;
		color: var(--main);
		font-size: 0.8rem; */
		height: 100%;
		padding: var(--space8) var(--space16);
		background: #eee;
	}
	header .searchform input[type="search"] {
		position: relative;
		top: 0;
		right: 0;
		/* transition: .1s; */
		/* cursor: pointer; */
	}
	header .searchform input[type="search"]:focus {
		top: 0;
		/* left: 0; */
		width: 100%;
		padding: 0 var(--space8);
		/* border-radius: 0; */
		border-bottom: none;
		/* cursor: default; */
	}
	header .searchform input[type="submit"]{
		width: 1em;
	}

}

/*　見出し
-------------------------------------------------------------- */
.heading_bdl{
	border-left: solid 4px var(--main);
	padding: var(--space8) var(--space16);
}

.heading_bdb {
	border-bottom: solid 4px var(--sub);
	position: relative;
	padding-bottom: var(--space8);
}
.heading_bdb:after {
	position: absolute;
	content: " ";
	display: block;
	border-bottom: solid 4px var(--main);
	bottom: -4px;
	width: 22%;
}

.heading_centerline {
	text-align: center;
	border: none;
}
.heading_centerline::after {
    content: '';
    display: block;
    width: 100px;
    height: 4px;
    margin: var(--space16) auto;
    background: var(--main);
    border-radius: 10px;
}


/* WP Access Category Password
-------------------------------------------------------------- */
.acpwd-form{
	margin: 0 0 var(--space32);
}
.acpwd-form input[type=password]{
	background-color: rgba(0,0,0,.04);
	border: solid 1px rgba(0,0,0,.1);
	border-radius: 2px;
	padding: var(--space8);
}
.acpwd-form input[type=submit] {
    padding: var(--space8) var(--space16);
    background-color: rgba(0,0,0,.4);
    border: none;
    color: #fff;
    font-weight: 700;
	font-size: 0.9rem;
    border-radius: 4px;
}

/* Contact Form 7
-------------------------------------------------------------- */
.mailform_wrap dt{
	margin-top: var(--space32);
	font-size: 0.9em;
	font-weight: bold;
}
.mailform_wrap dd{
	margin-top: var(--space8);
}
.mailform_wrap dd input#zip
/* .mailform_wrap dd select#pref */{
	width: 120px;
}
@media screen and (max-width:559px) {
	.mailform_wrap{
		display: block;
	}
	.mailform_wrap dt{
		width: auto;
	}
	.mailform_wrap dd{
		width: auto;
		margin: 0!important;
	}
}
.wpcf7 p {
    margin-top: 0;
}

.wpcf7 .must::after{
	content: "＊";
	display: inline-block;
	color: red;
	font-size: 0.8em;
	margin-left: var(--space8);
}
.wpcf7-form-control-wrap{ /* 各フォームを囲むspan要素 */
	display: block;
}
.wpcf7 .screen-reader-response{ /* エラー時にフォームの上部に表示されるエラー箇所へのページ内リンク（煩わしいので非表示） */
	display: none;
}
.wpcf7-radio .wpcf7-list-item,
.wpcf7-checkbox .wpcf7-list-item { /*ラジオボタン、チェックボックスのラッパー*/
	display: block;
}
.wpcf7-response-output:not(:empty), /*メッセージ「メッセージの送信に失敗しました。後でまたお試しください。」*/
.wpcf7-not-valid-tip:not(:empty){ /*バリデーションエラー時に各フォームの下に表示されるメッセージ*/
	font-size: 0.9rem;
	margin-top: var(--space8);
	color: red;
}
.wpcf7-validation-errors:not(:empty){ /*バリデーションエラー時に送信ボタンの下に表示されるエラーメッセージ*/
	margin: var(--space32) 0;
	color: red;
}


/* WP 記事修正リンク（ログイン時のみ）
-------------------------------------------------------------- */
.post-edit-link {
	position: absolute!important;
	top: 10px!important;
	right: 10px!important;
	z-index: 2;
	font-size: 0;
}
.post-edit-link::before {
	content: "\f044"; /* edit */
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	font-size: 14px;
	color: rgba(200,200,200,.8);
}
.post-edit-link:hover::before {
	color: rgba(200,200,200,.4);
}

/*　Table of Contents Plus / TOC（目次プラグイン）
-------------------------------------------------------------- */
#toc_container {
	margin-top: var(--space32);
	padding: 2em;
	background-color: var(--sub);
	border-radius: var(--radius);
	font-size: 0.9em;
}
#toc_container .toc_title{
	/* text-align: center; */
	margin-top: 0;
	margin-bottom: var(--space16);
	font-weight: bold;
}
#toc_container .toc_list{
	margin: 0;
}
#toc_container .toc_list li a{
	text-decoration: none;
	color: var(--text);
}
#toc_container .toc_list li a:hover{
	text-decoration: underline;
}
/* 記事内＆サイドバー 共通 */
#toc_container .toc_list li,
.toc_widget_list li{
	position: relative;
	margin-top: var(--space8);
	margin-left: 0;
	padding-left: var(--space16);
	list-style: none;
	line-height: 1.6;
}
/* 記事内目次のリストマーク */
#toc_container .toc_list li::before{
	content: '-';
	opacity: .7;
	position: absolute;
	top: 0;
	left: 0;
}
/* サイドバー目次のリストマーク（右寄せに対応させるためインラインにしてる） */
.toc_widget_list li::before{
	content: '-';
	opacity: .7;
	margin-left: calc(-1 * var(--space16));
	padding-right: var(--space8);
	transition: .2s;
}
.toc_widget_list li:hover::before{
	padding-right: var(--space16);
}


/* WP Japanese Proofreading Preview（校正支援プラグイン）
-------------------------------------------------------------- */
.proofreading-summary{
	margin-bottom: var(--space32)!important;
	padding: var(--space16);
}
.proofreading-summary p{
	margin-bottom: 0!important;
}
.proofreading-h3{
	display: block;
	margin: 0px!important;
	border: none!important;
}

/* WP ページネーション
-------------------------------------------------------------- */
#pagenation{
	display: flex;
	flex-wrap: wrap;
	margin-top: var(--space64);
}
#pagenation .page-numbers{
	flex: 0 1 40px;
	width: 40px;
	height: 40px;
	line-height: 40px;
	margin: var(--space16) var(--space16) 0 0;
	text-align: center;
	border: solid 1px var(--main);
}
#pagenation .prev,
#pagenation .next{
	width: 64px;
	height: 40px;
}
#pagenation a{
	color: var(--main);
}
#pagenation a:hover,
#pagenation .current {
	text-decoration: none;
	background-color: var(--main);
	color:#ffffff;
}

/* 画像をマウスオーバーで拡大
-------------------------------------------------------------- */
.zoom{
	width:100%;
	overflow:hidden;
	position: relative
}
.zoom::before{
	display: inline-block;
	position: absolute;
	top: 10px;
	right: 10px;
	content: "\f00e";/* search-plus */
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	text-rendering: auto;
	opacity: .3;
}
.zoom img{
	transition:.2s all;
	border: none;
}
.zoom img:hover{
	transform:scale(4);
	transition:.5s all;
}

/* モーダルウィンドウ
-------------------------------------------------------------- */
.modal{
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
}
.modal:not(:target) {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s, visibility 0.5s;
}
.modal:target{
	opacity: 1;
	visibility: visible;
	transition: opacity 0.5s, visibility 0.5s;
}
.modal .overlay{
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	background-color: #000;
	opacity: 0.7;
	top: 0;
	left: 0;
}
.modal-content,
.modal .overlay::before{
	width: 90%;
	height: 85%;
	max-width: 940px;
	max-height: 550px;
	min-width: 300px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.modal-content{
	overflow: auto;
	padding: var(--space32);
	background-color: #fff;
}
.modal-content.full{
	/* overflow: auto;
	background-color: #fff; */
	/* width: 90%; */
	/* height: 85%; */
	max-width: initial;
	max-height: 90%;
	min-width: initial;
}
.modal .overlay::before{ /* close */
	content: '✕';
	display: block;
	transform: translate(-50%, -50%);
	text-align: right;
	text-decoration: none;
	color: #fff;
	font-size: 20px;
    line-height: 1;
	cursor: pointer;
	pointer-events: none;
}

/* アーカイブリスト用（1行レイアウト）
-------------------------------------------------------------- */
.archive_line > div,
.archive_line > li{
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
	padding: var(--space8);
	border-bottom:solid 1px var(--border);
}
.archive_line > div > *:not(:last-child),
.archive_line > li > *:not(:last-child){
	margin-right: var(--space16);
}
.archive_line > div a:not([class]),
.archive_line > li a:not([class]){
	color: var(--text); /* リスト内で.btnを使ったときにカラーが上書きされるためクラスなしの要素のみに適用 */
}
.archive_line > div a:hover,
.archive_line > div a.current,
.archive_line > div a.current:hover{
	opacity: .5;
	text-decoration: none;
}
.archive_line .title,
.archive_line h2,
.archive_line h3{
	font-size: 1rem;
	margin: 0;
}
.archive_line time{
	display: block;
	opacity: 0.5;
}
.archive_line img{
	display: block;
	width: 64px;
	margin: 0;
	box-shadow: none;
}

/* アーカイブリスト用（グリッドレイアウト）
-------------------------------------------------------------- */
.archive_grid{
	line-height: 1.6;
	color: var(--text);
}
.archive_grid a{
	color: var(--text);
}
.archive_grid a:hover{
	text-decoration: underline;
}
.archive_grid a .rectangle {
	transition: .2s;
}
.archive_grid a:hover .rectangle {
	box-shadow: 0 12px 10px -6px rgba(0,0,0,.3);
	transform: translate(0px,-6px);
}
.archive_grid .title,
.archive_grid h2,
.archive_grid h3{
    margin: 0;
    padding: 0;
    border: none;
	font-size: 1rem;
}
.archive_grid ul{
	margin-top: 0;
}
.archive_grid li{
	list-style: none;
	display: inline-block;
	margin: 0;
}
.archive_grid time,
.archive_grid .cat_list,
.archive_grid .tag_list{
	display: inline-block;
	font-size: 0.8em;
	margin-right: var(--space16);
}
.archive_grid .cat_list,
.archive_grid .tag_list{
	opacity: .5;
}
.archive_grid .cat_list li:not(:last-child)::after,
.archive_grid .tag_list li:not(:last-child)::after{
	content: "/"; /* 区切り線 */
	opacity: .4;
	margin-left: var(--space8);
	margin-right: var(--space8);
	font-size: 0.9em;
}
/*
.archive_grid time::before,
.archive_grid .cat_list li:first-child::before,
.archive_grid .tag_list li:first-child::before{
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
	text-rendering: auto;
	padding-right: 5px;
}
.archive_grid time::before{
	content: "\f783";
}
.archive_grid time.updated_post::before{
	content: "\f2f1";
}
.archive_grid .cat_list li:first-child::before{
	content: "\f07c";
}
.archive_grid .tag_list li:first-child::before{
	content: "\f02c";
}
*/


/* ツールチップ
-------------------------------------------------------------- */
.tooltip {
    /* display: inline-block; */
    position: relative;
	border-bottom: dashed 1px var(--text);
}
.tooltip.border_none {
	border: none;
}
.tooltip::before, /* 吹き出し */
.tooltip span.data {
    content: attr(data-tooltip);
    position: absolute;
    top: calc(100% + 2px);
	left: 0;
    display: block;
	width: 200px;
    padding: var(--space16);
    font-size: .8rem;
    border-radius: 4px;
	background-color: rgba(255,255,255,1);
	box-shadow: 0 3px var(--space8) rgba(0,0,0,.2);
    z-index: 10;
    transition: .2s;
    visibility: hidden;
    opacity: 0;
}
.tooltip:hover::before,
.tooltip:active::before,
.tooltip:hover span.data,
.tooltip:active span.data {
    opacity: 1;
    visibility: visible;
}
.tooltip:hover,
.tooltip:active{
    cursor: default;
}
.tooltip:hover span.data a,
.tooltip:active span.data a{
    cursor: pointer;
}

/* 画像の上にテキスト配置
-------------------------------------------------------------- */
.overlay{
	position: relative;
}
.overlay img{
	display: block;
}
.overlay .upper{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	margin: 0!important;
	padding: var(--space32);
	color: white;
	font-size: 2.3rem;
	font-weight: 900;
	line-height: 1.5;
	text-shadow: 2px 2px 5px rgba(0,0,0,.3);
	font-feature-settings : "palt";/*自動カーニング*/
	background: linear-gradient(rgba(0,0,0,.0) 0%, rgba(0,0,0,.5) 100%);
	border: none;
}
.overlay .upper::after{
	display: none;
}
@media screen and (max-width:559px) {
	.overlay .upper{
		padding: var(--space24);
		font-size: 1.3rem;
	}
}

/* 続きを読むボタン
-------------------------------------------------------------- */
.readmore{
	 padding-top: var(--space16);
	 font-size: .9rem;
	 text-align: center;
	 cursor: pointer;
}
.readmore::before {
	content: "▼";
	font-size: 70%;
	padding-right: var(--space8);
	opacity: .9;
	vertical-align: text-bottom;
}
.readmore:hover {
	opacity: .5;
}
.target {
  transition: .2s;
  cursor: pointer;
}
.target.hidden {
  visibility: collapse;
  transition: .2s;
  padding: 0;
  height: 0;
  opacity: 0;
  font-size: 0;
}

/* 下からフェイドイン
-------------------------------------------------------------- */
.fadein {
   opacity: 0;
   animation-name: fadein-bottom;
   animation-duration: 1.5s;
   animation-timing-function: ease-out;
   animation-fill-mode: forwards;
}
@keyframes fadein-bottom {
   0% {
      opacity: 0;
      transform: translateY(20px);
   }
   100% {
      opacity: 1;
      transform: translateY(0);
   }
}
