@charset "UTF-8";
/*
UPDATE:
2020/03/11 selectの矢印をbackground-imageに変更
2020/03/24 smallタグまわりを修正
2020/05/30 CSS変数を設定
2020/11/30 .sns_iconsのopacity値を修正
2020/12/06 .btnをdisplay:flexに変更（2行のテキストに対応するため）
2020/12/14 .icon_no を追加
2020/12/21 クラス名の記号をアンダーバーに統一（WordPressで出力されるクラスは除く）
2020/12/24 .breadcrumbs をclass.css から style.cssに移動
2021/01/27 CSS変数を導入
2021/03/27 .entry-content〜をstyle.css から class.cssに移動
2021/04/22 .entry-content .btn のマージンを削除
2021/04/22 .archive_line > li に align-items: center を追加
2021/04/25 .entry-content〜をclass.css から style.cssに戻した（他のクラスとぶつかるため）
2021/04/25 .entry-content〜をmain〜に変更
2021/07/22 .cat_list のフォントアイコンを削除
2024/01/17 ？？？

Breakpoint
@media screen and (max-width:959px) {}
@media screen and (max-width:559px) {}
*/


/* Material Icons - https://developers.google.com/fonts/docs/material_icons
-------------------------------------------------------------- */
.material-icons {
     font-family: 'Material Icons';
     font-weight: normal;
     font-style: normal;
     font-size: 24px;  /* Preferred icon size */
     display: inline-block;
     line-height: 1;
     text-transform: none;
     letter-spacing: normal;
     word-wrap: normal;
     white-space: nowrap;
     direction: ltr;

     /* Support for all WebKit browsers. */
     -webkit-font-smoothing: antialiased;
     /* Support for Safari and Chrome. */
     text-rendering: optimizeLegibility;

     /* Support for Firefox. */
     -moz-osx-font-smoothing: grayscale;

     /* Support for IE. */
     font-feature-settings: 'liga';
}


/* 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;}
.border_none,
.border_0,
.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;}
}

.color-main {color: var(--main) !important;}
.color-text {color: var(--text) !important;}
.color-black {color: #000000 !important;}
.color-white {color: #fff !important;}
.color-gray {color: var(--subtext) !important;}
.color-blue {color: var(--blue) !important;}
.color-orange {color: var(--orange) !important;}
.color-red {color: var(--red) !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;}

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

.bg-black {background-color: #000000 !important;}
.bg-white {background-color: #ffffff !important;}
.bg-gray {background-color: var(--gray) !important;}
.bg-blue {background-color: hsl(200deg 100% 95%) !important;}
.bg-green {background-color: hsl(110deg 100% 95%) !important;}
.bg-orange {background-color: hsl(50deg 100% 90%) !important;}
.bg-red {background-color: hsl(0deg 100% 98%) !important;}

.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:1em!important;}.mgt1{margin-top:1em!important;}.mgb1{margin-bottom:1em!important;}.mgl1{margin-left:1em!important;}.mgr1{margin-right:1em!important;}
.mg2{margin:2em!important;}.mgt2{margin-top:2em!important;}.mgb2{margin-bottom:2em!important;}.mgl2{margin-left:2em!important;}.mgr2{margin-right:2em!important;}
.mg3{margin:3em!important;}.mgt3{margin-top:3em!important;}.mgb3{margin-bottom:3em!important;}.mgl3{margin-left:3em!important;}.mgr3{margin-right:3em!important;}
.mg4{margin:4em!important;}.mgt4{margin-top:4em!important;}.mgb4{margin-bottom:4em!important;}.mgl4{margin-left:4em!important;}.mgr4{margin-right:4em!important;}
.mg5{margin:5px!important;}.mgt5{margin-top:5px!important;}.mgb5{margin-bottom:5px!important;}.mgl5{margin-left:5px!important;}.mgr5{margin-right:5px!important;}
.mg10{margin:10px!important;}.mgt10{margin-top:10px!important;}.mgb10{margin-bottom:10px!important;}.mgl10{margin-left:10px!important;}.mgr10{margin-right:10px!important;}
.mg20{margin:20px!important;}.mgt20{margin-top:20px!important;}.mgb20{margin-bottom:20px!important;}.mgl20{margin-left:20px!important;}.mgr20{margin-right:20px!important;}
.mg30{margin:30px!important;}.mgt30{margin-top:30px!important;}.mgb30{margin-bottom:30px!important;}.mgl30{margin-left:30px!important;}.mgr30{margin-right:30px!important;}
.mg40{margin:40px!important;}.mgt40{margin-top:40px!important;}.mgb40{margin-bottom:40px!important;}.mgl40{margin-left:40px!important;}.mgr40{margin-right:40px!important;}
.mg50{margin:50px!important;}.mgt50{margin-top:50px!important;}.mgb50{margin-bottom:50px!important;}.mgl50{margin-left:50px!important;}.mgr50{margin-right:50px!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:1em!important;}.pdt1{padding-top:1em!important;}.pdb1{padding-bottom:1em!important;}.pdl1{padding-left:1em!important;}.pdr1{padding-right:1em!important;}
.pd2{padding:2em!important;}.pdt2{padding-top:2em!important;}.pdb2{padding-bottom:2em!important;}.pdl2{padding-left:2em!important;}.pdr2{padding-right:2em!important;}
.pd3{padding:3em!important;}.pdt3{padding-top:3em!important;}.pdb3{padding-bottom:3em!important;}.pdl3{padding-left:3em!important;}.pdr3{padding-right:3em!important;}
.pd4{padding:4em!important;}.pdt4{padding-top:4em!important;}.pdb4{padding-bottom:4em!important;}.pdl4{padding-left:4em!important;}.pdr4{padding-right:4em!important;}
.pd5{padding:5px!important;}.pdt5{padding-top:5px!important;}.pdb5{padding-bottom:5px!important;}.pdl5{padding-left:5px!important;}.pdr5{padding-right:5px!important;}
.pd10{padding:10px!important;}.pdt10{padding-top:10px!important;}.pdb10{padding-bottom:10px!important;}.pdl10{padding-left:10px!important;}.pdr10{padding-right:10px!important;}
.pd20{padding:20px!important;}.pdt20{padding-top:20px!important;}.pdb20{padding-bottom:20px!important;}.pdl20{padding-left:20px!important;}.pdr20{padding-right:20px!important;}
.pd30{padding:30px!important;}.pdt30{padding-top:30px!important;}.pdb30{padding-bottom:30px!important;}.pdl30{padding-left:30px!important;}.pdr30{padding-right:30px!important;}
.pd40{padding:40px!important;}.pdt40{padding-top:40px!important;}.pdb40{padding-bottom:40px!important;}.pdl40{padding-left:40px!important;}.pdr40{padding-right:40px!important;}
.pd50{padding:50px!important;}.pdt50{padding-top:50px!important;}.pdb50{padding-bottom:50px!important;}.pdl50{padding-left:50px!important;}.pdr50{padding-right:50px!important;}
.pd100,.pd_box,.pd_sect{padding-top:100px;padding-bottom:100px;}

.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;}

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

.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: -32px;
	margin-left: -32px;
}
.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;}

.align-c {
	align-items: center;
}
.align-s {
	align-items: flex-start;
}
.align-e {
	align-items: flex-end;
}
.justify-c {
	justify-content: center; /*水平方向の揃え方：中央揃え*/
}
.justify-s {
	justify-content: flex-start; /*水平方向の揃え方：左揃え（縦配置の場合は上揃え）*/
}
.justify-e {
	justify-content: flex-end; /*水平方向の揃え方：右揃え（縦配置の場合下揃え）*/
}

.flex > div,
.flex > p,
.flex > article,
.flex > section,
.flex > aside,
.flex > li,
.flex > dl,
.flex > span,
.flex > img{
	flex-grow: 0;
	flex-shrink: 1;
	flex-basis: auto;
	margin-bottom: 32px;
	margin-left: 32px;
	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% - 32px);width:calc(100 / 12 * 1% - 32px);}
.flex > .col2	{flex-basis:calc(100 / 12 * 2% - 32px);width:calc(100 / 12 * 2% - 32px);}
.flex > .col3	{flex-basis:calc(100 / 12 * 3% - 32px);width:calc(100 / 12 * 3% - 32px);}
.flex > .col4	{flex-basis:calc(100 / 12 * 4% - 32px);width:calc(100 / 12 * 4% - 32px);}
.flex > .col5	{flex-basis:calc(100 / 12 * 5% - 32px);width:calc(100 / 12 * 5% - 32px);}
.flex > .col6	{flex-basis:calc(100 / 12 * 6% - 32px);width:calc(100 / 12 * 6% - 32px);}
.flex > .col7	{flex-basis:calc(100 / 12 * 7% - 32px);width:calc(100 / 12 * 7% - 32px);}
.flex > .col8	{flex-basis:calc(100 / 12 * 8% - 32px);width:calc(100 / 12 * 8% - 32px);}
.flex > .col9	{flex-basis:calc(100 / 12 * 9% - 32px);width:calc(100 / 12 * 9% - 32px);}
.flex > .col10	{flex-basis:calc(100 / 12 * 10% - 32px);width:calc(100 / 12 * 10% - 32px);}
.flex > .col11	{flex-basis:calc(100 / 12 * 11% - 32px);width:calc(100 / 12 * 11% - 32px);}
.flex > .col12	{flex-basis:calc(100 / 12 * 12% - 32px);width:calc(100 / 12 * 12% - 32px);}
@media screen and (max-width:959px) {
	.flex > .col1md	{flex-basis:calc(100 / 12 * 1% - 32px);width:calc(100 / 12 * 1% - 32px);}
	.flex > .col2md	{flex-basis:calc(100 / 12 * 2% - 32px);width:calc(100 / 12 * 2% - 32px);}
	.flex > .col3md	{flex-basis:calc(100 / 12 * 3% - 32px);width:calc(100 / 12 * 3% - 32px);}
	.flex > .col4md	{flex-basis:calc(100 / 12 * 4% - 32px);width:calc(100 / 12 * 4% - 32px);}
	.flex > .col5md	{flex-basis:calc(100 / 12 * 5% - 32px);width:calc(100 / 12 * 5% - 32px);}
	.flex > .col6md	{flex-basis:calc(100 / 12 * 6% - 32px);width:calc(100 / 12 * 6% - 32px);}
	.flex > .col7md	{flex-basis:calc(100 / 12 * 7% - 32px);width:calc(100 / 12 * 7% - 32px);}
	.flex > .col8md	{flex-basis:calc(100 / 12 * 8% - 32px);width:calc(100 / 12 * 8% - 32px);}
	.flex > .col9md	{flex-basis:calc(100 / 12 * 9% - 32px);width:calc(100 / 12 * 9% - 32px);}
	.flex > .col10md{flex-basis:calc(100 / 12 * 10% - 32px);width:calc(100 / 12 * 10% - 32px);}
	.flex > .col11md{flex-basis:calc(100 / 12 * 11% - 32px);width:calc(100 / 12 * 11% - 32px);}
	.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% - 32px);width:calc(100 / 12 * 1% - 32px);}
	.flex > .col2sm	{flex-basis:calc(100 / 12 * 2% - 32px);width:calc(100 / 12 * 2% - 32px);}
	.flex > .col3sm	{flex-basis:calc(100 / 12 * 3% - 32px);width:calc(100 / 12 * 3% - 32px);}
	.flex > .col4sm	{flex-basis:calc(100 / 12 * 4% - 32px);width:calc(100 / 12 * 4% - 32px);}
	.flex > .col5sm	{flex-basis:calc(100 / 12 * 5% - 32px);width:calc(100 / 12 * 5% - 32px);}
	.flex > .col6sm	{flex-basis:calc(100 / 12 * 6% - 32px);width:calc(100 / 12 * 6% - 32px);}
	.flex > .col7sm	{flex-basis:calc(100 / 12 * 7% - 32px);width:calc(100 / 12 * 7% - 32px);}
	.flex > .col8sm	{flex-basis:calc(100 / 12 * 8% - 32px);width:calc(100 / 12 * 8% - 32px);}
	.flex > .col9sm	{flex-basis:calc(100 / 12 * 9% - 32px);width:calc(100 / 12 * 9% - 32px);}
	.flex > .col10sm{flex-basis:calc(100 / 12 * 10% - 32px);width:calc(100 / 12 * 10% - 32px);}
	.flex > .col11sm{flex-basis:calc(100 / 12 * 11% - 32px);width:calc(100 / 12 * 11% - 32px);}
	.flex > .col12sm{flex-basis:calc(100 / 12 * 12% - 24px);width:calc(100 / 12 * 12% - 24px);}
}

.grid {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
.cols-1-2 {grid-template-columns: 1fr 2fr;}/* 1/3 + 2/3 */
.cols-1-3 {grid-template-columns: 1fr 3fr;}/* 1/4 + 3/4 */

.cols-2-auto {grid-template-columns: repeat(2, auto);justify-content: start;} /* 幅可変2分割 */
.cols-3-auto {grid-template-columns: repeat(3, auto);justify-content: start;} /* 幅可変3分割 */

.cols-1 {grid-template-columns: repeat(1, minmax(0, 1fr));}
.cols-2 {grid-template-columns: repeat(2, minmax(0, 1fr));}
.cols-3 {grid-template-columns: repeat(3, minmax(0, 1fr));}
.cols-4 {grid-template-columns: repeat(4, minmax(0, 1fr));}
.cols-5 {grid-template-columns: repeat(5, minmax(0, 1fr));}
.cols-6 {grid-template-columns: repeat(6, minmax(0, 1fr));}
.cols-7 {grid-template-columns: repeat(7, minmax(0, 1fr));}
.cols-8 {grid-template-columns: repeat(8, minmax(0, 1fr));}
.cols-9 {grid-template-columns: repeat(9, minmax(0, 1fr));}
.cols-10 {grid-template-columns: repeat(10, minmax(0, 1fr));}
.cols-11 {grid-template-columns: repeat(11, minmax(0, 1fr));}
.cols-12 {grid-template-columns: repeat(12, minmax(0, 1fr));}
.cols-none {grid-template-columns: none;}

.gap-0 {gap:0px;}
.gap-8 {gap:8px;}
.gap-16 {gap:16px;}
.gap-32 {gap:32px;}


@media screen and (max-width: 1023px) {
	.cols-1-md {grid-template-columns: repeat(1, minmax(0, 1fr));}
	.cols-2-md {grid-template-columns: repeat(2, minmax(0, 1fr));}
	.cols-3-md {grid-template-columns: repeat(3, minmax(0, 1fr));}
	.cols-4-md {grid-template-columns: repeat(4, minmax(0, 1fr));}
	.cols-5-md {grid-template-columns: repeat(5, minmax(0, 1fr));}
	.cols-6-md {grid-template-columns: repeat(6, minmax(0, 1fr));}
	.cols-7-md {grid-template-columns: repeat(7, minmax(0, 1fr));}
	.cols-8-md {grid-template-columns: repeat(8, minmax(0, 1fr));}
	.cols-9-md {grid-template-columns: repeat(9, minmax(0, 1fr));}
	.cols-10-md {grid-template-columns: repeat(10, minmax(0, 1fr));}
	.cols-11-md {grid-template-columns: repeat(11, minmax(0, 1fr));}
	.cols-12-md {grid-template-columns: repeat(12, minmax(0, 1fr));}
	.cols-none-md {grid-template-columns: none;}
	.gap-16-md {gap:16px;}
	.gap-32-md {gap:32px;}
}
@media screen and (max-width: 559px) {
	.cols-1-sm {grid-template-columns: repeat(1, minmax(0, 1fr));}
	.cols-2-sm {grid-template-columns: repeat(2, minmax(0, 1fr));}
	.cols-3-sm {grid-template-columns: repeat(3, minmax(0, 1fr));}
	.cols-4-sm {grid-template-columns: repeat(4, minmax(0, 1fr));}
	.cols-5-sm {grid-template-columns: repeat(5, minmax(0, 1fr));}
	.cols-6-sm {grid-template-columns: repeat(6, minmax(0, 1fr));}
	.cols-7-sm {grid-template-columns: repeat(7, minmax(0, 1fr));}
	.cols-8-sm {grid-template-columns: repeat(8, minmax(0, 1fr));}
	.cols-9-sm {grid-template-columns: repeat(9, minmax(0, 1fr));}
	.cols-10-sm {grid-template-columns: repeat(10, minmax(0, 1fr));}
	.cols-11-sm {grid-template-columns: repeat(11, minmax(0, 1fr));}
	.cols-12-sm {grid-template-columns: repeat(12, minmax(0, 1fr));}
	.cols-none-sm {grid-template-columns: none;}
	.gap-16-sm {gap:16px;}
	.gap-32-sm {gap:32px;}
}

.grid > div,
.grid > p,
.grid > article,
.grid > section,
.grid > aside,
.grid > figure,
.grid > li,
.grid > dl,
.grid > span,
.grid > img{
	/* flex-grow: 0;
	flex-shrink: 1;
	flex-basis: auto; */
	/* flex-grow: 1; */ /* カラム落ちしたボックスが伸びちゃう */
	margin-left: 0; /* liの左余白をリセット */
	list-style: none;
}
.grid.reverse > *:first-child {
	order: 2;
}
@media screen and (max-width: 559px) {
	.grid.reverse > *:first-child {
		order: 0; /* reset */
	}
}

/* テーブル
-------------------------------------------------------------- */
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; /* テキストが折り返されて表が縦に長くなるのを回避 */
}

/* 見出し固定テーブル */
.sticky-table {
	position: relative;
	overflow: auto; /* macOSのスクロールバーはOS設定に依存するため常に表示されるわけではない */
  /* max-height: 80vh; */ /* 有効にした場合、この高さを超える表は見出し行が固定される */
  /* overscroll-behavior-y: none; */ /* スクロールバウンスを無効化・Safari16以上 */
}
@media screen and (max-width: 559px) {
	.sticky-table.nowrap {
		white-space: normal;
	}
}
/* テスト中
.sticky-table::after {
	content: "スクロールできます";
	display: block;
	position: sticky;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	padding: 8px;
	background-color: rgb(0 0 0 / .5);
	text-align: center;
	color: white;
	font-size: .8rem;
} */
.sticky-table table {
	table-layout: auto;
	border-collapse: separate; /* 見出し固定時にボーダーが表示されなかったりセルの位置がずれたりするのを回避 */
	position: relative;
	width: 100%;
	/* font-size: 0.9rem; */
	z-index: -1;/* 見出し固定時にiOSでスクロールバーが隠れるのを回避 */
}
.sticky-table caption {
	position: sticky;
	left: 0;
	width: fit-content;
	text-align: left;
}
.sticky-table tr{
	border: none;
}
.sticky-table th,
.sticky-table td {
	min-width: 80px; /* 日本語テキストが一文字ずつ折り返されて表が縦長になるのを回避（table-layout:autoではoverflow-wrapが効かないため） */
	border-bottom: solid 1px var(--border);
}
.sticky-table th {
	position: sticky;
	background-color: var(--base); /* must for sticky */
  font-weight: bold;
}
.sticky-table thead th {
	top: 0;
	z-index: 1; /* tbodyのセルより前面に表示 */
}
.sticky-table tbody th {
	left: 0;
}
.sticky-table thead th:first-child {
	left: 0;
  z-index: 2; /* tbodyのthより前面に表示 */
}

/* 画像のトリミング
-------------------------------------------------------------- */
.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%;
  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;
}


/* ボタン（ a / input / button ）
-------------------------------------------------------------- */
.btn{
	position: relative;
	display: inline-flex;
	align-items: center;
	margin-top: 2rem;
	padding: 1em 2em;
	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;
}
.btn.full{
	width: 100%; /* for input */
	display: flex; /* for input */
	justify-content: center;
}
.btn.mini{
	padding: .8em 1.6em;
	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: 1em;
	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: 1em;
	transition: .2s;
}
/* icon:hover */
.btn:hover::before{
	transform: translate(.5em,0); /* 右方向に移動 */
}
.btn.download:hover::before{
	transform: translateY(8px); /* 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;
}

.image-btn {
  display: block;
  padding: 8px;
  border: 2px solid #ccc;
  border-radius: 8px;
  color: var(--text);
  text-align: center;
	    background-color: transparent;

}
.image-btn:hover {
  border: 2px solid #aaa;
}
.image-btn figcaption{
  font-size: 0.8rem;
  font-weight: bold;
}
.image-btn img{
  border-radius: 4px;
  box-shadow: 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: 5px;
    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: -8px;
	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: 2em auto;
	border-radius: 10px;
	opacity: 0.9;
	background: #517c8d;
} */

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

/*　SNSアイコン
-------------------------------------------------------------- */
.sns-icons {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
	margin: 32px 0;
}
.sns-icons li {
	position: relative;
	margin: 0;
	list-style-type: none;
}
.sns-icons li a {
	display: block;
	width: 48px;
	height: 48px;
	line-height: 1;
	border-radius: 50%;
	text-decoration: none;
	text-align: center;
	position: relative;
	transition: all 0.15s ease;
	transition: 0.5s;
	background-color: transparent;
}
.sns-icons li a svg {
	width: 24px;
	height: 24px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	fill: var(--text);
}
.sns-icons li a:hover svg, /* ホバー時のアイコンカラー */
.sns-icons.dark li a svg{ /* 黒背景時のアイコンカラー */
	fill: #ffffff;
}
.icon-xtwitter a:hover {
	background-color: #000000;
}
.icon-twitter a:hover {
	background-color: #1da1f2;
}
.icon-facebook a:hover {
	background-color: #1877f2;
}
.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-youtube a:hover {
	background-color: #da1725;
}
.icon-line a:hover {
	background-color: #06C755;
}
.icon-amazon a:hover {
	background-color: #ff9900;
}
.icon-rss a:hover {
	background-color: #6cc655;
}
.icon-mail a:hover {
	background-color: #333333;
}
.sns-icons li::before { /* テキスト */
	content: attr(title);
	position: absolute;
	bottom: -16px;
	bottom: 0px;
	left: 50%;
	font-size: 0.75rem;
	transition: 0.4s;
	transform: translateX(-50%);
	color: var(--text);
	opacity: 0;
}
.sns-icons.dark li::before { /* 黒背景時のテキストカラー */
	color: #ffffff;
}
.sns-icons li:hover::before {
	bottom: -24px;
	opacity: 1;
}

/* ページトップへ戻る
-------------------------------------------------------------- */
.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;
}


/* list
-------------------------------------------------------------- */

.list-none {
	list-style: none;
}
.list-none > li {
	margin-left: 0;
	list-style: none;
}

/* 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: .5em;
	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.3em!important;
	padding-left: 1.2em;
}
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: 1.6em;
	margin-bottom: .5em;
}
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: 1.6em;
}
ul.exclamation-triangle li::before{
	content: "\f12a"; /* exclamation */
	content: "\f071"; /* exclamation-triangle */
	font-size: 0.9rem;
	color: #ff9900;
}
ul.kome li::before{
	content: '※';
}
/*　タイムライン（年表など） */
ul.timeline > li {
  display: flex;
  margin: 0;
}
ul.timeline > li .timeline-date {
	white-space: nowrap;
	padding: .5em 20px .5em 0;
}
ul.timeline > li .timeline-content {
	position: relative;
	border-left: solid 2px rgba(0,0,0,.1);
	padding: .5em 0 .5em 20px;
}
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;
	padding-left: 1.6em;
	padding-bottom: 2em;
}
ol.number > 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: 1em;
}

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


/*　dl
-------------------------------------------------------------- */
dl.list dd {
  display: list-item;
  list-style-type: disc;
  margin-left: 1.4em;
}
dl.list dd:only-of-type {
	list-style: none;
	margin-left: 0;
}
dl.faq dt,
dl.faq dd {
	position: relative;
	padding-left: 32px;
}
dl.faq > dt::before,
dl.faq > dd::before {
	position: absolute;
	left: 0;
	font-weight: 600;
}
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 10px;
	/* 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: 10px;
	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: 10px;
	display: inline-block;
	transition: .2s;
}
dl.accordion > dt.open::before{
	transform: rotate(90deg);
}
dl.accordion > dd{
	display:none;
	margin: 0.5em 0 2em;
	padding: 1.6em;
	/* color: var(--main); */
	background-color: var(--sub);
	background-color: rgba(0,0,0,.05);
	border-radius: var(--radius);
}
dl.accordion.faq > dd::before{
	content: 'A.';
	font-size: 1.2em;
	font-weight: bold;
	padding-right: 0.4em;
}

dl.related-link{
	padding: 32px;
	border: solid 1px var(--border);
	border-radius: var(--radius);
	font-size: 0.9rem;

}
dl.related-link dd {
	display: list-item;
	list-style-type: disc;
	margin-left: calc(16px * 1.5);
}
dl.related-link dd:only-of-type {
	list-style: none;
	margin-left: 0;
}

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


/* 囲み枠・装飾ボックス
-------------------------------------------------------------- */
.box{
	padding: 40px;
	background-color: var(--sub);
	border-radius: var(--radius);
}
.box_gray{
	padding: 40px;
	background-color: var(--gray);
	border-radius: var(--radius);
}
.box_red{
	padding: 40px;
	background-color: #ffdede;
	border-radius: var(--radius);
}
.box_yellow{
	padding: 40px;
	background-color: #ffefb0;
	border-radius: var(--radius);
}
.box_label {
	padding: 4% 0 4% 4%;
	border-left: solid 10px var(--main);
}
@media screen and (max-width:559px) {
	.box,
	.box_red,
	.box_yellow{
		padding: 24px;
	}
}
.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);
  background-color: var(--gray);
}

/* 補足・注釈 */
.notes {
	position: relative;
	margin-top: 16px;
	padding-left: 1.1em;
	color: var(--subtext);
  font-size: 0.85em;
}
p.notes,
ul.notes li {
	list-style: none;
	margin-left: 0;
}
ul.notes li:not(:first-child) {
	margin-top: 4px;
}
p.notes::before,
ul.notes li::before {
	content: "※";
	position: absolute;
	left: 0;
	font-weight: 100;
	scale: 0.8;/* リストマークのサイズ調整にfont-sizeを使うとem指定した余白がズレる */
}

.balloon_top,
.balloon_left,
.balloon_right,
.balloon_bottom{
	position: relative;
	padding: 8%;
	border-radius: var(--radius);
	background: var(--sub);
	text-align: left;
}
.balloon_top {margin-top: 16px;}
.balloon_left {margin-left: 16px;}
.balloon_right {margin-right: 16px;}
.balloon_bottom {margin-bottom: 16px;}
.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: -10px;
}
.balloon_left::after {
	border-top: 10px solid transparent;
	border-left: 10px solid transparent;
	border-bottom: 10px solid transparent;
	top: 50%;
	left: -30px;
	margin-top: -10px;
}
.balloon_right::after {
	border-top: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 10px solid transparent;
	top: 50%;
	right: -30px;
	margin-top: -10px;
}
.balloon_bottom::after {
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 0px solid transparent;
	bottom: -20px;
	left: 50%;
	margin-left: -10px;
}
@media screen and (max-width:959px) {
	.balloon_top_md {margin: 0;margin-top: 16px;}
	.balloon_left_md {margin: 0;margin-left: 16px;}
	.balloon_right_md {margin: 0;margin-right: 16px;}
	.balloon_bottom_md {margin: 0;margin-bottom: 16px;}
	.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: -10px;
	}
	.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: -10px;
	}
}
@media screen and (max-width:559px) {
	.balloon_top_sm {margin: 0;margin-top: 16px;}
	.balloon_left_sm {margin: 0;margin-left: 16px;}
	.balloon_right_sm {margin: 0;margin-right: 16px;}
	.balloon_bottom_sm {margin: 0;margin-bottom: 16px;}
	.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: -10px;
	}
	.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: -10px;
	}
}


/* 装飾アイコン
-------------------------------------------------------------- */
.icon,
.icon_red{
	display: inline-block;
	padding: 0px 8px;
	font-size: 0.8rem;
	font-weight: 700;
	color: #ffffff;
	background-color: var(--main);
	border-radius: 4px;
}
.icon_red{
	background-color: #ff6666;
}
.icon_label:before {
	content: attr(data-text);
    display: inline-block;
	padding: 0px 8px;
	margin-right: 1em;
	font-size: 0.8em;
	font-weight: bold;
	color: #ffffff;
	background-color: var(--main);
	border-radius: 4px;
}
.icon_no{
	position: relative;
    display: inline-block;
    width: 1.2em;
    text-align: center;
    font-weight: bold;
	font-size: 0.9em;
	color: #ffffff;
}
.icon_no: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);
}


/*　検索フォーム
-------------------------------------------------------------- */
.searchform{
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	height: 50px;
	padding: 0 0 0 8px;
	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 8px;
}
.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: 32px;
	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: 5px;
	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: 1em 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: 16px 0;
		height: auto;
		overflow: auto;
		background: none;
	}

	/* ヘッダの検索フォーム */
	header .searchform{
		/* position: relative;
		display: inline-flex;
		color: var(--main);
		font-size: 0.8rem; */
		height: 100%;
		padding: 8px 16px;
		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 8px;
		/* border-radius: 0; */
		border-bottom: none;
		/* cursor: default; */
	}
	header .searchform input[type="submit"]{
		width: 1em;
	}

}

/*　見出し
-------------------------------------------------------------- */
.heading_bdl{
	border-left: solid 4px var(--main);
	padding: .2em .1em .2em  .5em ;
	/* margin-left: calc(-.5em + -5px); */
}

.heading_bdb {
	border-bottom: solid 4px var(--sub);
	position: relative;
	padding-bottom: .2em;
}
.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: 1em auto;
    background: var(--main);
    border-radius: 10px;
}


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

/* WP Contact Form 7
-------------------------------------------------------------- */
.mailform_wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.mailform_wrap dt,
.mailform_wrap dd{
	margin: 20px 0 0!important;
}
.mailform_wrap dt{
	width: calc(25% - 20px);
	font-size: 0.9em;
    /* text-align: right; */
	font-weight: bold;
}
.mailform_wrap dd{
	width: 75%;
}
@media screen and (max-width:559px) {
	.mailform_wrap{
		display: block;
	}
	.mailform_wrap dt{
		width: auto;
	}
	.mailform_wrap dd{
		width: auto;
		margin: 0!important;
	}
}

/* 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-bottom: 2em;
	padding: 2em 2em;
	background-color: var(--sub);
	border-radius: var(--radius);
	font-size: 0.9em;
}
#toc_container .toc_title{
	text-align: center;
	font-weight: 700;
	margin-bottom: 1em;
}
#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: .5em;
	margin-left: 0;
	padding-left: .8em;
	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: -.8em;
	padding-right: 5px;
	transition: .2s;
}
.toc_widget_list li:hover::before{
	padding-right: 10px;
}


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

/* WP ページネーション
-------------------------------------------------------------- */
#pagenation{
	margin-top: 4em;
	font-weight: 600;
}
#pagenation .page-numbers{
	display: inline-block;
	margin: 8px 8px 0 0;
	width: 40px;
	height: 40px;
	line-height: 40px;
	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;
}

/* モーダルウィンドウ
-------------------------------------------------------------- */
.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;
	top: 0;
	left: 0;
	background-color: #000;
	opacity: 0.7;
}
.modal-content,
.modal .overlay::before {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: auto;
	height: auto;
	max-width: calc(100vw - 32px);
	max-height: calc(100vh - 128px);
	border-radius: 10px;
}
.modal-content {
  overflow: auto;
  padding: 32px;
  background-color: #fff;
}
@media screen and (max-width:559px) {
	.modal-content {
    	padding: 32px 16px;
	}
	.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: 10px;
	border-bottom:solid 1px var(--border);
}
.archive_line > div > *:not(:last-child),
.archive_line > li > *:not(:last-child){
	margin-right: 16px;
}
.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: 1em;
}
.archive_grid .cat_list,
.archive_grid .tag_list{
	opacity: .5;
}
/* .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"; */ /* calendar-day */
}
.archive_grid time.updated_post::before{
	/* content: "\f2f1"; */ /* sync-alt */
}
.archive_grid .cat_list li:first-child::before{
	/* content: "\f07c"; */ /* folder-open */
}
.archive_grid .tag_list li:first-child::before{
	/* content: "\f02c"; */ /* tags */
}
.archive_grid .cat_list li:not(:last-child)::after,
.archive_grid .tag_list li:not(:last-child)::after{
	content: "/"; /* 区切り線 */
	opacity: .4;
	margin-left: .5em;
	margin-right: .5em;
	font-size: 0.9em;
}

/* ツールチップ
-------------------------------------------------------------- */
.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: 16px;
    font-size: .8rem;
    border-radius: 4px;
	background-color: rgba(255,255,255,1);
	box-shadow: 0 3px 8px 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: 5%;
	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{
		font-size: 1.3rem;
	}
}

/* 続きを読むボタン
-------------------------------------------------------------- */
.readmore{
	 padding-top: 1em;
	 font-size: .9rem;
	 text-align: center;
	 cursor: pointer;
}
.readmore::before {
	content: "▼";
	font-size: 70%;
	padding-right: .5em;
	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;
}


.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;
}

/*ステップUI（横ライン付き）*/
ol.steps{
	counter-reset: number;
  display: flex;
	gap: 8px;
  justify-content: space-between;
	/* border-top: solid 1px var(--border);
	border-bottom: solid 1px var(--border);
	padding: 16px 0 12px; */
}
ol.steps > li {
	counter-increment: number;
	list-style: none;
	position: relative;
	flex: 1;
	margin: 0;
	font-size: 0.7rem;
	font-size: 1vw;
  font-size: clamp(10px, 1vw, .9rem);
  font-weight: bold;
	line-height: 1.4;
	text-align: center;
}
ol.steps > li::before { /* icon */
	content: counter(number);
	position: relative;
	top: 0;
	left: 0;
	display: block;
	width: 24px;
	height: 24px;
	line-height: 24px;
	margin: 0 auto 8px;
	font-size: 0.9rem;
	text-align: center;
	border-radius: 50px;
	border: 2px solid var(--main);
	color: var(--main);
	font-family: 'Trebuchet MS','Verdana','Arial';
	background-color: var(--main);
	color: white;
}
ol.steps > li.active::before{
	box-shadow: var(--shadow);
	background-color: white;
	color: var(--main);
}
ol.steps > li.checked::before { /* check icon */
	content: "　";
	-webkit-mask-image: url(images/icon/circle-check-solid.svg);
	mask-image: url(images/icon/circle-check-solid.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
ol.steps > li:not(:last-child)::after { /* line */
	content: "";
	display: block;
	position: absolute;
	top: 13px;
  left: calc(50% + 14px);
	z-index: -1;
	width: calc(100% - 18px);
	height: 2px;
	border: none;
	background-color: var(--border);
	background-color: var(--main);
	opacity: .2;
}
ol.steps > li.checked:not(:last-child)::after { /* line */
	opacity: 1;
}

/* リボン
-------------------------------------------------------------- */
/* リボン共通 */
.ribbon-top,
.ribbon-left {
	position: absolute;
	z-index: 2;
	width: auto;
	color: white;
	font-size: 0.7rem;
	text-shadow: 1px 1px 3px rgba(0,0,0,.2);
	background-color: var(--main);
	background-image: radial-gradient(
		at center top,
		rgba(255, 255, 255, 0.3) 0%,
		rgba(255, 255, 255, 0) 75%
	);
	box-shadow: 2px 2px 4px 0px rgba(0,0,0,0.2);
}
/* 垂直リボン */
.ribbon-top {
	top: -10px;
	right: 18px;
	padding: 8px 8px;
	border-radius: 0 0 2px 2px;
}
.ribbon-top:after { /* リボンの折返し */
  position: absolute;
  content: '';
  top: 0;
  right: -10px;
  width: 10px;
  height: 10px;
  clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
  background-color: var(--main);
	background-image: linear-gradient(rgba(0,0,0,.3), rgba(0,0,0,.1));
}
/* 水平リボン */
.ribbon-left {
	top: 12px;
	left: -10px;
	padding: 4px 12px;
	border-radius: 0 2px 2px 0;
}
.ribbon-left:after { /* リボンの折返し */
  position: absolute;
  content: '';
  top: 100%;
  left: 0;
  width: 10px;
  height: 10px;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%);
  background-color: var(--main);
	background-image: linear-gradient(rgba(0,0,0,.3), rgba(0,0,0,.1));
}
.ribbon-top.red,
.ribbon-left.red,
.ribbon-top.red:after,
.ribbon-left.red:after {
	background-color: var(--red);
}
.ribbon-top.orange,
.ribbon-left.orange,
.ribbon-top.orange:after,
.ribbon-left.orange:after {
	background-color: var(--orange);
}
.ribbon-top.blue,
.ribbon-left.blue,
.ribbon-top.blue:after,
.ribbon-left.blue:after {
	background-color: var(--blue);
}

/* タグリスト
-------------------------------------------------------------- */
.tag-list ul {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
}
.tag-list ul li {
	position: relative;
	display: flex;
	gap: 4px;
  align-items: center;
	margin: 0;
	padding: 12px 16px;
	line-height: 1;
	list-style: none;
	background-color: var(--gray);
	border-radius: 100px;
	font-size: 0.8rem;
	font-weight: bold;
	white-space: nowrap;
}
.tag-list ul li.current-tag {
	background-color: var(--main);
	color: white;
}
.tag-list ul li a {
	display: block;
	text-decoration: none;
	color: var(--text);
}
.tag-list ul li:not(.current-tag):hover {
	background-color: var(--main);
}
.tag-list .count {
	font-weight: 500;
	font-size: 0.7rem;
	font-feature-settings:'palt';
	opacity: .5;
}
.tag-list ul li:not(.current-tag):hover a,
.tag-list ul li:not(.current-tag):hover .count {
	text-decoration: none;
	color: white;
}
@media screen and (max-width: 559px) {/* スマホ閲覧時は横スクロールUIに変更 */
	.tag-list::before {
		content: "scroll →";
		display: block;
		text-align: right;
		font-weight: bold;
		font-size: 0.8rem;
		line-height: 1;
		opacity: 0.5;
	}
	.tag-list ul {
		position: relative;
		overflow: scroll;
		overflow: auto hidden;
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 8px;
		margin: 0;
		padding-top: 8px; /* for scrollbar */
	}
}

/* クリック
-------------------------------------------------------------- */

/* aタグやbuttonタグのクリック領域を拡大する */
.clickable-box::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	bottom: -1px;
	z-index: 1;
}

/* モーダルウィンドウ（dialog+JS）
-------------------------------------------------------------- */
.dialog-open-img{
	display: flex;
	justify-content: center; /*水平方向の揃え方：中央揃え*/
	align-items: center; /*垂直方向の揃え方：中央揃え*/
	background-color: rgba(0,0,0,1);
}
.dialog-open-img img:hover{
	transition: .2s;
	cursor: pointer;
	opacity: .7;
}
.dialog-open-img::before{
	position: absolute;
	content: attr(title);
	content: "クリックで拡大";
	font-size: .8rem;
	/* font-weight: bold; */
	color: var(--text);
	color: var(--subtext);
	color: white;
	transition: .2s;
	z-index: 2;
	pointer-events: none;
	opacity: 0;
	transform: translateY(50%);
}
.dialog-open-img:hover::before{
	opacity: 1;
	transform: translateY(0%);
}
.modal-dialog {
	padding: 0;
	border: none;
	border-radius: 8px;
	background-color: rgba(0,0,0,.0);
	box-shadow: 0 4px 8px rgba(0, 0, 0, .3);
	opacity: 0;
  transition: opacity .5s ease-in-out;
}
.modal-dialog::backdrop {
	background-color: rgba(0,0,0,.5);
	backdrop-filter: blur(4px);
	/* transition: opacity .5s, visibility 0.5s; */
}
.modal-dialog.show,
.modal-dialog.show::backdrop {
	opacity: 1;
}
.modal-dialog .dialog-content{
	position: relative;
	max-width: 90vw;
	max-height: 90vh;
	padding: 32px;
	background: #fff;
}
.modal-dialog .dialog-close-icon{
	position: absolute;
	top: 0;
	right: 0;
	width: 48px;
	padding-top: 42px;/* テキスト位置 */
	font-size: 10px;
	background: transparent; /* buttonタグの背景色をリセット */
	border: none; /* buttonタグのボーダーをリセット */
}
.modal-dialog .dialog-close-icon::before{ /* 閉じるボタン */
	content: '✕';
	position: absolute;
	top: 12px;
	left: 0;
	right: 0;
	margin: auto;
	width: 24px;
	height: 24px;
	font-size: 24px;
}
.modal-dialog .dialog-close-icon::after{ /* 閉じるボタンのクリックエリアをページ全体に拡張 */
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100vw;
	height: 100vh;
	opacity: 0.5;
	background: #555;
	cursor: default;
}

/* カード（共通設定）
-------------------------------------------------------------- */
.cards-item {
	position: relative;
	display: flex;
	gap: 24px;
}
.cards-item a {
	color: var(--text);
}
.cards-item a::before { /* クリックエリア拡張 */
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	bottom: -1px;
	z-index: 1;
}
.cards-item time {
	font-size: 0.8rem;
	color: var(--subtext);
}
.cards-item .title {
	margin: 0;
	padding: 0;
	border: none;
	font-weight: 600;
	font-size: 0.9rem;
	line-height: 1.6;
}

/* カード（シンプル＋垂直）
-------------------------------------------------------------- */
.cards-vertical {
	display: grid;
	gap: 48px 32px;
}
@media screen and (max-width: 559px) {
	.cards-vertical {
		gap: 32px 16px;
	}
}
.cards-vertical .cards-item {
	flex-direction: column;
}
.cards-vertical .cards-item .img {
	width: 100%;
	transition: 0.2s;
	order: -1;
}
.cards-vertical .cards-item .img img {
	width: 100%;
	transition: 0.2s;
}
.cards-vertical .cards-item:hover .img img {
	/* box-shadow: var(--shadow); */
	filter: drop-shadow(0px 5px 5px rgba(0,0,0,.5));
	transform: translate(0px, -4px);
}

/* カード（シンプル＋水平）
-------------------------------------------------------------- */
.cards-horizontal {
	border-top: solid 1px var(--border);
}
.cards-horizontal .cards-item,
.cards-border .cards-item {
	align-items: center;
	transition: 0.2s;
}
.cards-horizontal .cards-item {
	padding: 16px 8px 16px 0;
	border-bottom: solid 1px var(--border);
}
.cards-border .cards-item {
	padding: 16px;
	border: solid 1px var(--border);
  border-radius: var(--radius);
	overflow: hidden;/* 子要素はみ出し回避 */
}
.cards-horizontal .cards-item:hover,
.cards-border .cards-item:hover {
	cursor: pointer;
	background-color: var(--gray);
}
.cards-horizontal .cards-item .text,
.cards-border .cards-item .text {
	flex: 1 1 100%;
}
.cards-horizontal .cards-item .img,
.cards-border .cards-item .img {
	flex: 0 0 auto;
	align-self: start;/* 画像の高さよりもテキスト量が多いときに上揃えにする */
	order: -1;
}
.cards-horizontal .cards-item .img img,
.cards-border .cards-item .img img {
	width: 80px;
	margin: 0;
  border: none;
}
.cards-horizontal .cards-item::after,
.cards-border .cards-item::after {
	flex: 0 0 auto;
	content: "";
	width: 24px;
	height: 24px;
  margin-left: auto;
  margin-right: 16px;
  margin-right: 0;
	background-color: transparent;
	background-image: url(images/icon/angle-down-solid.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 50%;
	transition: 0.2s;
	transform: rotate(-90deg);
	opacity: .5;
}
.cards-horizontal .cards-item:hover::after,
.cards-border .cards-item:hover::after {
  transform: translate(25%, 0%) rotate(-90deg);
}

/* カード（背景あり＋垂直）
-------------------------------------------------------------- */
.cards-box-vertical .cards-item{
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: auto auto;
	gap: 0;
	margin: 0;
	padding: 0;
	background-color: var(--gray);
	border-radius: var(--radius);
}
.cards-box-vertical .cards-item .img img{
	width: 100%;
	aspect-ratio: 1/1;
	border-radius: var(--radius) var(--radius) 0px 0px;
}
.cards-box-vertical .cards-item .text{
	padding: 32px 16px;
	font-size: 0.9rem;
	text-align: center;
}

/* カード（背景あり＋水平）
-------------------------------------------------------------- */
.cards-box-horizontal .cards-item{
	display: grid;
	grid-template-columns: repeat(2, auto);
	grid-template-columns: 1fr 2fr;
	justify-content: start;
	gap: 0;
	align-items: center;
	margin: 0;
	padding: 0;
	background-color: var(--gray);
	border-radius: var(--radius);
}
.cards-box-horizontal .cards-item .img img{
	/* height: 100%; */
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: var(--radius) 0px 0px var(--radius);
}
.cards-box-horizontal .cards-item .text{
	max-height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 16px;
	font-size: 0.9rem;
	text-align: center;
}

/* アイコン */
.icon-info,
.icon-check,
.icon-excl,
.icon-question,
.icon-excl-triangle,
.icon-xmark,
.icon-link,
.icon-comments,
.icon-heart-regular,
.icon-heart-solid {
	display: flex;
	align-items: baseline; /* 改行時に1行目に揃える */
	gap: 0.5em;
}
.icon-info::before,
.icon-check::before,
.icon-excl::before,
.icon-question::before,
.icon-excl-triangle::before,
.icon-xmark::before,
.icon-link::before,
.icon-comments::before,
.icon-heart-regular::before,
.icon-heart-solid::before{
	display: inline-block;
	content: "　";
	-webkit-mask-size: 99%; /* for Safari15 */
	mask-size: 99%; /* containだとSVG画像によって領域からはみ出ることがある */
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
.icon-info::before {
	background-color: var(--text);
	-webkit-mask-image: url(images/icon/circle-info-solid.svg);
	mask-image: url(images/icon/circle-info-solid.svg);
}
.icon-check::before {
	background-color: var(--blue);
	-webkit-mask-image: url(images/icon/circle-check-solid.svg);
	mask-image: url(images/icon/circle-check-solid.svg);
}
.icon-excl::before {
	background-color: var(--orange);
	-webkit-mask-image: url(images/icon/circle-exclamation-solid.svg);
	mask-image: url(images/icon/circle-exclamation-solid.svg);
}
.icon-excl-triangle::before {
	background-color: var(--red);
	-webkit-mask-image: url(images/icon/triangle-exclamation-solid.svg);
	mask-image: url(images/icon/triangle-exclamation-solid.svg);
	font-size: 1.1em;
}
.icon-question::before {
	background-color: var(--orange);
	-webkit-mask-image: url(images/icon/circle-question-solid.svg);
	mask-image: url(images/icon/circle-question-solid.svg);
}
.icon-xmark::before {
	background-color: var(--red);
	-webkit-mask-image: url(images/icon/circle-xmark-solid.svg);
	mask-image: url(images/icon/circle-xmark-solid.svg);
}
.icon-link::before {
	background-color: var(--blue);
	-webkit-mask-image: url(images/icon/link-solid.svg);
	mask-image: url(images/icon/link-solid.svg);
	font-size: 1.1em;
}
.icon-comments::before {
	background-color: var(--main);
	-webkit-mask-image: url(images/icon/comments-regular.svg);
	mask-image: url(images/icon/comments-regular.svg);
	font-size: 1.1em;
}
.icon-heart-regular::before{
	background-color: var(--red);
	-webkit-mask-image: url(images/icon/heart-regular.svg);
	mask-image: url(images/icon/heart-regular.svg);
}
.icon-heart-solid::before{
	background-color: var(--red);
	-webkit-mask-image: url(images/icon/heart-solid.svg);
	mask-image: url(images/icon/heart-solid.svg);
}

/* 旧アイコン */
.icon-circle{
	display: flex;
	align-items: flex-start;
	gap: 0.5em;
}
.icon-circle::before {
	content: "　";
	border-radius: 100%;
	background-color: var(--text);
	-webkit-mask-image: url(images/icon/circle-info-solid.svg);
	mask-image: url(images/icon/circle-info-solid.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
.icon-circle.check::before {
	background-color: #2480e9;
	-webkit-mask-image: url(images/icon/circle-check-solid.svg);
	mask-image: url(images/icon/circle-check-solid.svg);
}
.icon-circle.excl::before {
	background-color: #ff9900;
	-webkit-mask-image: url(images/icon/circle-exclamation-solid.svg);
	mask-image: url(images/icon/circle-exclamation-solid.svg);
}
.icon-circle.xmark::before {
	background-color: #ff6666;
	-webkit-mask-image: url(images/icon/circle-xmark-solid.svg);
	mask-image: url(images/icon/circle-xmark-solid.svg);
}
.icon-circle.question::before {
	background-color: #2EB009;
	-webkit-mask-image: url(images/icon/circle-question-solid.svg);
	mask-image: url(images/icon/circle-question-solid.svg);
}

/* タブメニュー（:has疑似要素の非対応ブラウザでは常時表示）
-------------------------------------------------------------- */
.tab-menu:has(dt) {
	display: flex;
	flex-wrap: wrap;
}
.tab-menu dt {
	margin: 32px 0 16px;
}
.tab-menu:has(dt) dt {
	flex: 1 1;
	order: -1;
	margin: 0;
	background-color: var(--gray);
	border-top: 4px solid transparent;
	font-weight: bold;
	font-size: .8rem;
	text-align: center;
	cursor: pointer;
}
.tab-menu:has(dt) dt:not(:has(:checked)):hover {
	filter: brightness(95%);
	cursor: pointer;
}
.tab-menu:has(dt) dt label {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 12px 12px 16px;
	cursor: pointer;
}
.tab-menu dt label input {
	display: none;
}
.tab-menu:has(dt) dt:has(:checked) {
	border-top: 4px solid var(--main);
	color: var(--main);
	background-color: #fff;
	box-shadow: 8px 0px 5px -5px rgb(0 0 0 / 0.1), -8px 0px 5px -5px rgb(0 0 0 / 0.1);/* 右方向のみ */
	z-index: 1;
}
.tab-menu:has(dt) dt:has(:checked):first-child {
	box-shadow: 8px 0px 5px -5px rgb(0 0 0 / 0.1);/* 右方向のみ */
}
.tab-menu:has(dt) dt:has(:checked):last-of-type {
	box-shadow: -8px 0px 5px -5px rgb(0 0 0 / 0.1);/* 左方向のみ */
}
.tab-menu:has(dt) dt:has(:checked):only-of-type {
	box-shadow: none;/* dtが1個なら影なし */
}
.tab-menu:has(dt) dt:only-of-type label {
	cursor: default;/* dtが1個ならカーソルは矢印のまま */
}

.tab-menu:has(dt) dd { /* タブコンテンツ */
	width: 100%;
	height: 0;
	padding: 0 8px;
	background-color: #fff;
	border-bottom: solid 0px transparent;
	opacity: 0;
	visibility: hidden;
	overflow: hidden;
	transition: opacity 1s;
}
.tab-menu:has(dt) dt:has(:checked) + dd {
	height: auto;
	padding: 32px 8px;
	opacity: 1;
	visibility: visible;
	overflow: auto;
}
/* ボーダー付き */
.tab-menu-border:has(dt) {
	border-bottom: solid 1px var(--border);
}
.tab-menu-border:has(dt) dt {
	border-top: 4px solid transparent;
	border-left: solid 1px transparent;
	border-right: solid 1px transparent;
	border-bottom: solid 1px var(--border);
}
.tab-menu-border:has(dt) dt:has(:checked) {
	border-top: 4px solid var(--main);
	border-left: solid 1px var(--border);
	border-right: solid 1px var(--border);
	border-bottom: solid 1px transparent;
}
.tab-menu-border:has(dt) dd { /* タブコンテンツ */
	padding: 0 32px;
	border-left: solid 1px var(--border);
	border-right: solid 1px var(--border);
	border-bottom: solid 0px transparent;
}
.tab-menu-border:has(dt) dt:has(:checked) + dd {
	padding: 32px;
}
