@charset "UTF-8";
/*
breakpoint
@media screen and (max-width: 1342px) {-md 1343px未満 tablet}
@media screen and (max-width: 559px) {-sm 560px未満 smartphone}

margin & padding setting
.mg1=8px / .mg2=16px / .mg3=32px / .mg4=64px / .mg5=128px / .mg6=256px
*/

/* 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";}
.helvetica {font-family: "Helvetica Neue", HelveticaNeue;}

.subtext {
	color: var(--subtext);
	font-size: 0.8em;
}
.border {
	border: solid 1px var(--border);
}
.bdl {
	border-left: solid 1px var(--main);
}
.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;}
.justify {text-align: justify;}
.align-l {text-align: left !important;}
.align-r {text-align: right !important;}
.align-s {align-self: start !important;} /* for grid item */

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

@media screen and (max-width: 1342px) {
	.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;}
}

.palt {font-feature-settings: 'palt'}

.normal {font-weight: normal !important;}
.bold {font-weight: 600 !important;}
.semibold {font-weight: 500 !important;}

.font400 {font-size: 4rem;}
.font350 {font-size: 3.5rem;}
.font300 {font-size: 3rem;}
.font250 {font-size: 2.5rem;}
.font200 {font-size: 2rem;}
.font150 {font-size: 1.5rem;}
.font140 {font-size: 1.4rem;}
.font130 {font-size: 1.3rem;}
.font120 {font-size: 1.2rem;}
.font110 {font-size: 1.1rem;}
.font100 {font-size: 1rem;}
.font90 {font-size: 0.9rem;}
.font80 {font-size: 0.8rem;}
.font70 {font-size: 0.7rem;}

.color-black {color: #000000 !important;}
.color-white {color: #ffffff !important;}
.color-main {color: var(--main) !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;}

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

.mg-auto {margin: auto !important;}
.mgt-auto {margin-top: auto !important;}
.mgb-auto {margin-bottom: auto !important;}
.mgl-auto {margin-left: auto !important;}
.mgr-auto {margin-right: auto !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;}
.mgtb0 {margin-top: 0px !important;margin-bottom: 0px !important;}
.mg1 {margin: 8px !important;}
.mgt1 {margin-top: 8px !important;}
.mgb1 {margin-bottom: 8px !important;}
.mgl1 {margin-left: 8px !important;}
.mgr1 {margin-right: 8px !important;}
.mgtb1 {margin-top: 8px !important;margin-bottom: 8px !important;}
.mg2 {margin: 16px !important;}
.mgt2 {margin-top: 16px !important;}
.mgb2 {margin-bottom: 16px !important;}
.mgl2 {margin-left: 16px !important;}
.mgr2 {margin-right: 16px !important;}
.mgtb2 {margin-top: 16px !important;margin-bottom: 16px !important;}
.mg3 {margin: 32px !important;}
.mgt3 {margin-top: 32px !important;}
.mgb3 {margin-bottom: 32px !important;}
.mgl3 {margin-left: 32px !important;}
.mgr3 {margin-right: 32px !important;}
.mgtb3 {margin-top: 32px !important;margin-bottom: 32px !important;}
.mg4 {margin: 64px !important;}
.mgt4 {margin-top: 64px !important;}
.mgb4 {margin-bottom: 64px !important;}
.mgl4 {margin-left: 64px !important;}
.mgr4 {margin-right: 64px !important;}
.mgtb4 {margin-top: 64px !important;margin-bottom: 64px !important;}
.mg5 {margin: 128px !important;}
.mgt5 {margin-top: 128px !important;}
.mgb5 {margin-bottom: 128px !important;}
.mgl5 {margin-left: 128px !important;}
.mgr5 {margin-right: 128px !important;}
.mgtb5 {margin-top: 128px !important;margin-bottom: 128px !important;}
.mg6 {margin: 256px !important;}
.mgt6 {margin-top: 256px !important;}
.mgb6 {margin-bottom: 256px !important;}
.mgl6 {margin-left: 256px !important;}
.mgr6 {margin-right: 256px !important;}
.mgtb6 {margin-top: 256px !important;margin-bottom: 256px !important;}

.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: 8px !important;}
.pdt1 {padding-top: 8px !important;}
.pdb1 {padding-bottom: 8px !important;}
.pdl1 {padding-left: 8px !important;}
.pdr1 {padding-right: 8px !important;}
.pdtb1 {padding-top: 8px !important;padding-bottom: 8px !important;}
.pd2 {padding: 16px !important;}
.pdt2 {padding-top: 16px !important;}
.pdb2 {padding-bottom: 16px !important;}
.pdl2 {padding-left: 16px !important;}
.pdr2 {padding-right: 16px !important;}
.pdtb2 {padding-top: 16px !important;padding-bottom: 16px !important;}
.pd3 {padding: 32px !important;}
.pdt3 {padding-top: 32px !important;}
.pdb3 {padding-bottom: 32px !important;}
.pdl3 {padding-left: 32px !important;}
.pdr3 {padding-right: 32px !important;}
.pdtb3 {padding-top: 32px !important;padding-bottom: 32px !important;}
.pd4 {padding: 64px !important;}
.pdt4 {padding-top: 64px !important;}
.pdb4 {padding-bottom: 64px !important;}
.pdl4 {padding-left: 64px !important;}
.pdr4 {padding-right: 64px !important;}
.pdtb4 {padding-top: 64px !important;padding-bottom: 64px !important;}
.pd5 {padding: 128px !important;}
.pdt5 {padding-top: 128px !important;}
.pdb5 {padding-bottom: 128px !important;}
.pdl5 {padding-left: 128px !important;}
.pdr5 {padding-right: 128px !important;}
.pdtb5 {padding-top: 128px !important;padding-bottom: 128px !important;}
.pd6 {padding: 256px !important;}
.pdt6 {padding-top: 256px !important;}
.pdb6 {padding-bottom: 256px !important;}
.pdl6 {padding-left: 256px !important;}
.pdr6 {padding-right: 256px !important;}
.pdtb6 {padding-top: 256px !important;padding-bottom: 256px !important;}

.line100 {line-height: 1;}
.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: 2;}

.width50 {width: 50%;}
.width100 {width: 100%;}

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

.shadow-none {box-shadow: none !important;}

.pointer {cursor: pointer;}

.sticky {
	position: sticky;
	top: 0;
	/* z-index: 1; */ /* フッタの検索窓用ドロワにかぶる */
}

.flex {
	display: flex;
	gap: 32px;
}
.flex-wrap {
	display: flex;
	flex-wrap: wrap;
}
.flex-nowrap {
	display: flex;
	flex-wrap: nowrap;
}
.flex.grow-1 {
	flex-grow: 1;
}
.flex.shrink-0 {
	flex-shrink: 0;
}
.flex.reverse {
	flex-direction: row-reverse;
}
.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; /*水平方向の揃え方：右揃え（縦配置の場合下揃え）*/
}

/* imgをflexアイテム化した際の処理 */
.flex > img {
	height: 100%; /* 画像のアスペクト比を保持 */
}
.flex > img + br {
	display: none; /* 自動挿入されるbrを削除 */
}
.flex > img + br + img {
	margin-top: 0;
}

.grid {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
@media screen and (max-width: 559px) {
	.grid {
		gap: 16px;
	}
}

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

.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-1 {grid-template-columns: 2fr 1fr;}/* 2/3 + 1/3 */
.cols-3-1 {grid-template-columns: 3fr 1fr;}/* 3/4 + 1/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分割 */

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

@media screen and (max-width: 1342px) {
	.grid-md {
		display: grid;
		gap: 32px;
	}
	.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) {
	.grid-sm {
		display: grid;
		gap: 16px;
	}
	.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;}
	.order-1-sm {order:-1;}
}
/* グリッド化されたliはリストスタイル無効化 */
.grid > li,
.flex > li{
	margin-left: 0;
	list-style: none;
}
/* なんのために書いたかわからない
.grid div, .flex div,
.grid p, .flex p,
.grid article, .flex article,
.grid section, .flex section,
.grid aside, .flex aside,
.grid figure, .flex figure,
.grid span, .flex span,
.grid img, .flex img{
	margin-left: 0;
} */

.grid.reverse > *:first-child {
	order: 1;
}
@media screen and (max-width: 559px) {
	.grid.reverse > *:first-child {
		order: 0; /* reset */
	}
	.grid.reverse-sm > *:first-child {
		order: 1;
	}
}

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

/* aタグやbuttonタグのクリック領域を拡大する */
.clickable-box::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	bottom: -1px;
	z-index: 2; /* .hover-textより上位でないとスマホでクリックできない */
	/* border: solid 1px red; */
}

/* アニメーション
-------------------------------------------------------------- */
@keyframes fadein {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@-webkit-keyframes fadein {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/* 下からフェイドイン */
.fadein-bottom {
	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);
	}
}

.fadein-blur {
	opacity: 0;
	animation-name: fadein-blur;
	animation-duration: 1s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
@keyframes fadein-blur {
	0% {
		opacity: 0;
		filter: blur(20px);
	}
	100% {
		opacity: 1;
		filter: blur(0);
	}
}

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

table.price {
	table-layout: auto;/* セルの内容に合わせる */
}
table.price tr th:last-child,
table.price tr td:last-child {
	text-align: right;
	white-space: nowrap;
}

.sticky-table {
	display: block;
	width: 100%;
	overflow: auto;
	font-size: 0.85rem;
}
.sticky-table caption {
	position: sticky;
	left: 0;
	display: block;
	text-align: left;
}
.sticky-table thead {
	display: none;
}
.sticky-table tbody {
	display: table;
	table-layout: auto;
	width: 100%;
	position: relative;
}
.sticky-table tr th:first-child {
	position: sticky;
	left: 0;
	text-align: left;
}
.sticky-table td {
	min-width: 80px; /* テキストが折り返されて表が縦に長くなるのを回避 */
	z-index: -1;
}

.responsive-table {
	position: relative;
	overflow: auto;
	font-size: 0.85rem;
}
.responsive-table table {
	table-layout: auto;
	position: relative;
	width: 100%;
}
.responsive-table table caption {
	text-align: left;
	padding-left: 16px;
}
.responsive-table table:has(tbody th) tr th:first-child {
	position: sticky;
	left: 0;
	text-align: left;
	background-color: var(--base); /* must for sticky */
}
.responsive-table table th,
.responsive-table table td {
	min-width: 80px; /* テキストが折り返されて表が縦に長くなるのを回避 */
}
/*
// caption内にspanを入れてstickyにすれば固定できるが、
// マークアップが面倒＆captionがない場合の余白の取り方が複雑なので保留
.responsive-table table caption {
	display: table-cell;
	position: absolute;
    top: calc(-2em - 8px);
    top: -32px;
	left: 0;
    width: 100%;
	height: 32px;
	margin-bottom: 0px;
	padding-bottom: 0px;
	text-align: left;
    border: solid 1px green;
}
.responsive-table table caption span{
	display: inline-block;
	position: sticky;
	left: 0;
	border: solid 1px red;
} */

/* 画像のトリミング
-------------------------------------------------------------- */
/*
- imgタグのclassに付与します。
- aspect-ratioはSafari14（2021年）以前は非対応。
*/
.rectangle {
	/* aspect-ratio: 1.618/1; */ /* 黄金比 */
	aspect-ratio: 16/9; /* ワイドスクリーン */
  object-fit: cover;
	width: 100%;
}
.square{
	aspect-ratio: 1/1;
  object-fit: cover;
	width: 100%;
}
.circle {
	aspect-ratio: 1/1;
  object-fit: cover;
	width: 100%;
	border-radius: 999px;
}
.cover {
  object-fit: cover;
}
.contain {
  object-fit: contain;
}
/*
レガシーブラウザ対応版
.rectangle{
	position: relative;
	width: 100%;
	padding-top: 61.80%;
	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: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
	display: block;
	min-width: 100%; 最低値を100%にすることで縦長・横長ともに対応できる
	min-height: 100%;
	margin: 0;
}
.circle img{
	box-shadow: none;
} */

/* iframe 埋め込み
-------------------------------------------------------------- */
.youtube {
	/*レスポンシブ化*/
	position: relative;
	width: 100%;
	margin-top: 32px;
	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, 0.1);
}
.facebook {
	margin: 0px auto;
}
.wp-video {
	margin-top: 32px;
}
.twitter-tweet,/*SNS埋め込みコード*/
.instagram-media {
	margin-top: 32px !important;
	margin-bottom: 0 !important;
	min-width: initial;
}
.instagram-media {
	margin-top: 32px !important;
	margin-bottom: 0 !important;
	min-width: initial !important;
}

/* ボタン（ a / input / button ）
-------------------------------------------------------------- */
.btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 16px 32px;
	text-align: left; /* 複数行テキストを左揃え */
	line-height: 1.4;
	font-size: 0.9rem;
	font-weight: 600;
	/* text-decoration: none !important; */
	-webkit-appearance: none;
	appearance: none;
	transition: 0.3s;
	text-decoration: none;
	word-break: break-all;
	cursor: pointer;
	border-radius: 4px;
	border-radius: 100px;
	color: #ffffff;
	fill: #ffffff;
	background-color: var(--main);
	background-image: radial-gradient(
		at center top,
		rgba(255, 255, 255, 0.2) 0%,
		rgba(255, 255, 255, 0) 50%
	);
	border: solid 1px var(--main);
}
.btn input {
	color: inherit;
	border: none;
	background: transparent;
}
.btn.secondary {
	color: var(--main);
	background-color: transparent;
}
.btn.tertiary{
	display: inline-block;
	padding: 0;
  line-height: 1;
	background: none;
	border: none;
	border-radius: 0;
	color: var(--subtext);
	font-size: .9rem;
	font-weight: normal;
	text-decoration: none;
}
.btn.disabled{
	pointer-events: none;
	filter: grayscale(100%);
	opacity: .4;
}
.btn.mini {
	padding: 8px 24px;
	font-size: 0.8rem;
}
.btn.white {
	color: #ffffff;
	background-color: rgba(255, 255, 255, 0.1);
	border: solid 1px #ffffff;
}
.btn.orange,
.btn.cta {
	color: #ffffff;
	background-color: var(--orange);
	border: solid 1px var(--orange);
}

/* btn hover effect */
.btn:hover {
	color: var(--main);
	background: transparent;
	text-decoration: underline;
	text-decoration: none;
}
.btn.secondary:hover {
	color: #ffffff;
	background: var(--main);
}
.btn.tertiary:hover {
	opacity: .5;
}
.btn.white:hover {
	color: var(--main);
	background: #ffffff;
}
.btn.orange:hover,
.btn.cta:hover {
	color: var(--orange);
	background: transparent;
}

/* btn icon */
.btn::before {
	content: "";
	width: 16px;
	height: 16px;
	margin-right: 8px;
	transition: 0.2s;
	/* SVG */
	background-color: #ffffff;
	background-repeat: no-repeat;
	-webkit-mask-image: url(images/icon/caret-right-solid.svg);
	mask-image: url(images/icon/caret-right-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;
}
.btn.secondary::before {
	color: var(--main);
	background-color: var(--main);
}
.btn.tertiary::before{
	display: none;
}
.btn.tertiary::after{
	content: "　";
	display: block;
	width: 100%;
	height: 1px;
	margin-top: 8px;
	background-color: var(--subtext);
	transition: 0.2s;
}
.btn.white::before {
	color: #ffffff;
	background-color: #ffffff;
}
.btn.orange::before,
.btn.cta::before {
	color: #ffffff;
	background-color: #ffffff;
}

.btn.mail::before {
	margin-right: 8px;
	-webkit-mask-image: url(images/icon/envelope-regular.svg);
	mask-image: url(images/icon/envelope-regular.svg);
}
.btn.calendar::before {
	margin-right: 16px;
	-webkit-mask-image: url(images/icon/calendar-regular.svg);
	mask-image: url(images/icon/calendar-regular.svg);
}
.btn.reserve::before {
	margin-right: 16px;
	-webkit-mask-image: url(images/icon/calendar-check-regular.svg);
	mask-image: url(images/icon/calendar-check-regular.svg);
}
.btn.download::before {
	margin-right: 16px;
	-webkit-mask-image: url(images/icon/download-solid.svg);
	mask-image: url(images/icon/download-solid.svg);
}
.btn.paper-plane::before {
	margin-right: 16px;
	-webkit-mask-image: url(images/icon/paper-plane-solid.svg);
	mask-image: url(images/icon/paper-plane-solid.svg);
}

/* btn icon:hover */
.btn:hover::before {
	color: var(--main);
	background-color: var(--main);
	transform: translate(8px, 0); /* 右方向に移動 */
}
.btn.secondary:hover::before,
.btn.invert:hover::before {
	color: #ffffff;
	background-color: #ffffff;
}
.btn.tertiary:hover::after{
	width: 0%;
}
.btn.white:hover::before {
	color: var(--main);
	background-color: var(--main);
}
.btn.orange:hover::before,
.btn.cta:hover::before {
	color: var(--orange);
	background-color: var(--orange);
}
.btn.download:hover::before {
	transform: translateY(
		8px
	); /* transformの位置はそのまま（transformで下移動させるとブレる） */
}
.btn.mail:hover::before,
.btn.calendar:hover::before,
.btn.reserve:hover::before,
.btn.paper-plane:hover::before {
	transform: translate(0, 0) scale(1.5, 1.5); /* 拡大 */
}
.btn.mini:hover::before {
	transform: translate(0, 0) scale(1, 1); /* ミニはエフェクトなし */
}

/* btn effect */
.no-icon i {
	margin-right: 16px;
	transition: 0.2s;
}
.no-icon:hover i {
	transform: scale(1.5, 1.5); /* 拡大 */
}
.no-icon::before {
	display: none;
}
.btn.full {
	display: flex; /* for input */
	justify-content: center;
}

.btn.solid {
	border-radius: 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: 0.2s;
	opacity: 1;
}
.btn.solid:hover::after {
	opacity: 0;
	top: 0;
	left: 0;
}
.btn.glow::after {
	animation-name: glow; /*定義名*/
	animation-fill-mode: backwards; /*終了時の状態*/
	animation-duration: 4s; /*アニメーションの時間*/
	animation-timing-function: ease; /*進行具合*/
	animation-delay: 1s; /*開始時間*/
	animation-iteration-count: infinite; /*ループ回数*/
	animation-direction: alternate; /*再生方向*/
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 50%;
	background-image: radial-gradient(
		at center top,
		rgba(255, 255, 255, 0.9) 0%,
		rgba(255, 255, 255, 0) 100%
	);
}
@keyframes glow {
	0% {
		opacity: 0.1;
	}
	75% {
		opacity: 0.2;
	}
	100% {
		opacity: 0.7;
	}
}
/* 画像付きボタン */
/* .btn.image{
	padding: 8px 24px 8px 8px;
    gap: 24px;
	border-radius: 4px;
}
.btn.image img{
	width: 64px;
	border-radius: 4px;
}
.btn.image.full {
	justify-content: flex-start;
} */

/* テキストリンク（ a ）
-------------------------------------------------------------- */
/*
.link-arrow {
  display: inline-flex;
  align-items: center;
  position: relative;
  cursor: pointer;
	color: var(--link);
}
.link-arrow::before {
  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-right: .8em;
  transition: all 0.2s ease;
}
.link-arrow::after {
  position: absolute;
  left: 0;
  content: "";
  width: 0;
  height: 0;
  transition: all 0.2s ease;
  opacity: 0;
  border: 1px solid #ccc;
  border-color: inherit;
}
.link-arrow:hover {
  text-decoration: none;
}
.link-arrow:hover::before {
  transform: rotate(-45deg) translate(4px, 4px);
}
.link-arrow:hover::after {
  opacity: 1;
  width: 10px;
  right: -5px;
} */

/* ホバーエフェクト
-------------------------------------------------------------- */
.hover-underline > li {
	position: relative;
	line-height: 1;
}
.hover-underline > li > a {
	text-decoration: none;
	color: var(--text);
}
.hover-underline > li::before  { /* アンダーバー（初期値） */
	content: "　";
	display: block;
	position: absolute;
	left: 50%;
	bottom: -12px;
	width: 0%;
	height: 2px;
	background: var(--text);
	border-radius: 1px;
	opacity: 0;
	transition: 1s;
}
.hover-underline li.current-menu-item::before, /* カレント＆ホバー時 */
.hover-underline li.current-tag::before,
.hover-underline li:not(.current-menu-item):not(.current-tag):hover::before {
	left: 0%;
	width: 100%;
	height: 2px;
	opacity: 1;
	transition: 0.3s;
}

/*　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: var(--orange);
}
.icon-rss a:hover {
	background-color: #6cc655;
}
.icon-mail a:hover {
	background-color: #333333;
}
.icon-cart 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: 16px;
	right: 16px;
}
.totop a {
	width: 48px;
	height: 48px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 48px;
	background-color: var(--main);
	box-shadow: var(--shadow);
}
.totop a:before {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	transition: 0.2s;
	background-color: var(--base);
	background-repeat: no-repeat;
	-webkit-mask-image: url(images/icon/angle-down-solid.svg);
	mask-image: url(images/icon/angle-down-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;
	transform: translate(0%, 0%) rotate(180deg);
}
.totop a:hover {
	background-color: var(--base);
}
.totop a:hover::before {
	background-color: var(--main);
	transform: translate(0%, 0%) rotate(180deg);
}

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

.list-none {
	list-style: none;
}
.list-none > li {
	margin-left: 0;
}
ul.check > li,
ul.circle-check > li,
ul.kome li,
dl.circle-check dt,
dl.circle-check dd {
	position: relative;
	list-style-type: none !important;
	margin-left: 0 !important;
	padding-left: 1.9em;
	padding-left: calc(1.3em + 8px);/* icon-size + padding */
}
ul.circle-check > li:not(:first-child) {
	margin-top: 8px;
}
ul.check > li::before,
ul.circle-check > li::before,
dl.circle-check dt::before {
	content: "　";
	position: absolute;
	left: 0;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: var(--main);
	-webkit-mask-image: url(images/icon/check-solid.svg);
	mask-image: url(images/icon/check-solid.svg);
}
ul.circle-check > li::before,
dl.circle-check dt::before {
    top: calc(0px + -0.25em);
	font-size: 1.3em;
	-webkit-mask-image: url(images/icon/circle-check-solid.svg);
	mask-image: url(images/icon/circle-check-solid.svg);
}

ul.kome li {
	padding-left: 1.4em;
	padding-left: 1.0em;
}
ul.kome li::before {
	content: "※";
	/* content: "*";
	content: "＊"; */
	position: absolute;
	left: 0;
}
ul.inline {
	display: flex;
	flex-wrap: wrap;
  gap: 8px 16px;
	/* justify-content: space-between; */
}
ul.inline li {
	display: inline-block;
	list-style-type: none;
	margin-left: 0;
}
/* ウィンドウ幅が狭いときに行末に罫線が残るので美しくない
ul.inline li:not(:last-child)::after {
	content: "｜";
	padding: 8px;
	opacity: 0.5;
} */
ul.border {
	/* display: grid;
	grid-template-columns: auto auto; */
	border: none;
	border-bottom: solid 1px var(--border);
	line-height: 1.6;
}
ul.border > li {
	list-style: none;
	margin: 0;
	padding: 16px 0px 16px 0px;
	border-top: solid 1px var(--border);
}

ul.timeline > li {
	display: flex;
	margin: 0;
}
ul.timeline > li .timeline-date {
	white-space: nowrap;
	padding: 8px 16px 8px 0;
}
ul.timeline > li .timeline-content {
	position: relative;
	border-left: solid 2px rgba(0, 0, 0, 0.1);
	padding: 8px 0 8px 16px;
}
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;
}
ol.number > li {
	counter-increment: number;
	list-style: none;
	position: relative;
	margin-left: 0.8em;
	padding-left: 1.6em;
}
ol.number > li:not(:first-child) {
	margin-top: 1.6em;
}
ol.number > li::before {
	content: counter(number);
	position: absolute;
	top: 0.15em;
	left: -0.8em;
	width: 1.5em;
	height: 1.5em;
	line-height: 1.5em;
	text-align: center;
	border-radius: 50px;
	background-color: var(--main);
	color: white;
	font-family: 'Trebuchet MS','Verdana','Arial';
}
/*赤いアイコン*/
ol.number.red > li::before {
	background-color: var(--red);
}
/*横並び*/
ol.number.inline > li {
	display: inline-block;
	margin-top: 0.4em;
	margin-right: 1em;
}
/*縦ライン付き*/
ol.number.line > li:not(:last-child)::after {
	content: "";
	display: block;
	position: absolute;
	top: 0.25em;
  left: -1px;
	z-index: -1;
	width: 0;
	height: calc(100% + 1.6em); /* 100% + margin-bottom */
	border-left: solid 1px var(--border);
}

/*ステップ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;
	margin: 0 auto 8px;
	font-size: 0.9rem;
	line-height: 24px;

	font-size: 16px;
	line-height: 20px;

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

/*下向きキャレット（矢印）付き*/
ol.caret-down > li:not(:last-child)::after,
ol.caret-right > li:not(:last-child)::after {
	display: block;
	content: "";
	width: 32px;
	height: 32px;
	/* SVG */
	background-color: var(--main);
	background-color: var(--subtext);
	background-repeat: no-repeat;
	-webkit-mask-image: url(images/icon/caret-down-solid.svg);
	mask-image: url(images/icon/caret-down-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.caret-down.center-icon > li::after {
	margin: 16px auto;
}
/*リストナンバーを非表示*/
ol.caret-down.no-number {
	list-style: none;
}
ol.caret-down.no-number > li {
	margin-left: 0;
}

/*右向きキャレット（矢印）付き*/
ol.caret-right > li {
	position: relative;
}
ol.caret-right > li:not(:last-child)::after {
	position: absolute;
  top: calc(50% - 16px);
  right: -32px; /* = grid gap */
	transform: rotate(-90deg); /* 傾き */
}
@media screen and (max-width: 559px) {
	/*モバイルでは下向きキャレットに変更*/
	ol.caret-right > li:not(:last-child)::after {
		top: calc(100% - 8px);
    right: calc(50% - 16px);
		transform: rotate(0deg); /* 傾きを戻す */
	}
}

/*　dl
-------------------------------------------------------------- */
dl.list dd {
	display: list-item;
	list-style-type: disc;
	margin-left: calc(16px * 1.5);
}
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.inline dt,
dl.inline dd {
	display: inline;
	margin: 0;
	list-style: none;
}
dl.inline dt::after {
	content: "：";
	font-weight: normal;
}
dl.inline dt:nth-child(n + 2)::before {
	content: "\A"; /* 改行 */
	white-space: pre;
}
dl.inline dd::before {
	/* ddが複数ある場合のセパレータ */
	content: "/";
	padding: 0 8px;
}
dl.inline dt + dd::before {
	/* dt直後のddはセパレータなし */
	content: "";
	padding: 0px;
}

dl.border {
	display: grid;
	grid-template-columns: 1fr 2fr;
	border: none;
	border-bottom: solid 1px var(--border);
}
dl.border.between {
	grid-template-columns: 1fr auto;
	justify-content: space-between;
}
dl.border > dt,
dl.border > dd {
	align-self: stretch;/* アイテムの高さを揃える */
	display: flex;
	align-items: center;
	margin: 0;
	border-top: solid 1px var(--border);
}
dl.border > dt {
	padding: 16px 12px 16px 8px;
}
dl.border > dd {
	padding: 16px 8px 16px 12px;
}
@media screen and (max-width: 559px) {
	dl.border,
	dl.border.between {
		grid-template-columns: 1fr;
	}
	dl.border > dt {
		padding: 16px 0px 0px ;
	}
	dl.border > dd {
		padding: 0px 0px 16px;
		border: 0;
	}
}

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
-------------------------------------------------------------- */
hr.short {
	width: 10%;
}
hr.half {
	width: 50%;
}

/* コンテナ
-------------------------------------------------------------- */
.container-lg,
.container-1280 {
	width: calc(100% - 64px);
	max-width: 1280px;
	margin-right: auto;
	margin-left: auto;
}
.container-1120 {
	width: calc(100% - 64px);
	max-width: 1120px;
	margin-right: auto;
	margin-left: auto;
}
.container-960 {
	width: calc(100% - 64px);
	max-width: 960px;
	margin-right: auto;
	margin-left: auto;
}
.container-720 {
	width: calc(100% - 64px);
	max-width: 720px;
	margin-right: auto;
	margin-left: auto;
}
.container-sm,
.container-640 {
	width: calc(100% - 64px);
	max-width: 640px;
	margin-right: auto;
	margin-left: auto;
}
.container-full {
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
	background-size: cover;
	background-position: center;
	background-color: var(--main);
	background-color: var(--gray);
}
@media screen and (max-width: 559px) {
	.container-lg,
	.container-sm,
	.container-1280,
	.container-1120,
	.container-960,
	.container-720,
	.container-640 {
		width: calc(100% - 48px);
	}
}

/* 囲み枠・装飾ボックス
-------------------------------------------------------------- */
.box {
	position: relative;
	padding: 32px;
	border-radius: var(--radius);
	background-color: var(--gray);
}
@media screen and (max-width: 559px) {
	.box {
		padding: 24px;
	}
}
.box > h2:first-child,
.box > h3:first-child,
.box > h4:first-child {
	margin-top: 0;
}

/* アイコン */
.icon-info,
.icon-check,
.icon-good,
.icon-excl,
.icon-question,
.icon-xmark,
.icon-link,
.icon-heart-regular,
.icon-heart-solid,
.icon-face-smile,
.icon-face-meh {
	display: flex;
	align-items: baseline; /* 改行時に1行目に揃える */
	gap: 0.5em;
}
.icon-info::before,
.icon-check::before,
.icon-good::before,
.icon-excl::before,
.icon-question::before,
.icon-xmark::before,
.icon-link::before,
.icon-heart-regular::before,
.icon-heart-solid::before,
.icon-face-smile::before,
.icon-face-meh::before{
	content: "　";
	border-radius: 100%;
	-webkit-mask-size: contain;
	mask-size: contain;
	-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-good::before {
	background-color: var(--green);
	-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-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-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-face-smile::before{
	background-color: var(--blue);
	-webkit-mask-image: url(images/icon/face-smile-regular.svg);
	mask-image: url(images/icon/face-smile-regular.svg);
}
.icon-face-meh::before{
	background-color: var(--orange);
	-webkit-mask-image: url(images/icon/face-meh-regular.svg);
	mask-image: url(images/icon/face-meh-regular.svg);
}

/* 旧アイコン
.icon-circle{
	display: flex;
	align-items: baseline;
	gap: 0.5em;
}
.icon-circle::before {
	content: "　";
	border-radius: 100%;
	background-color: var(--main);
	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: var(--blue);
	-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: var(--orange);
	-webkit-mask-image: url(images/icon/circle-exclamation-solid.svg);
	mask-image: url(images/icon/circle-exclamation-solid.svg);
}
.icon-circle.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-circle.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-circle.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-heart-regular::before{
	content: "　";
	margin-right:8px;
	background-color: var(--main);
	background-color: var(--red);
	-webkit-mask-image: url(images/icon/heart-regular.svg);
	mask-image: url(images/icon/heart-regular.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-heart-solid::before{
	content: "　";
	margin-right:8px;
	background-color: var(--main);
	background-color: var(--red);
	-webkit-mask-image: url(images/icon/heart-solid.svg);
	mask-image: url(images/icon/heart-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;
}
*/

.box-border {
	padding: 32px;
	border: solid 1px var(--border);
	border-radius: var(--radius);
}
.box-border-thick {
	padding: 32px;
	border: solid 2px var(--text);
	/* border-radius: var(--radius); */
}
.box-border-left {
	padding: 8px 0 8px 24px;
  border-left: solid 1px var(--border);
}

/* 補足・注釈 */
.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-box{
	display: flex;
	gap: 8px;
	align-items: center;
	margin-top: 32px;
}
.balloon-box.reverse{
	flex-direction: row-reverse;
}
.balloon-box p,
.balloon-box img,
.balloon-box figure{
	margin-top: 0;
	margin-bottom: 0;
}
.balloon-box .img{
	width: 80px;
	flex-shrink: 0;
}
.balloon-box .img i{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 80px;
	margin: 8px auto;
	background-repeat: no-repeat;
	background-position: center 8px;
	background-size: contain;
	background-color: var(--gray);/* circle's background-color */
	border-radius: 100px;
}
.balloon-box .img img{
	width: 80px;
	height: 80px;
	margin: 8px auto;
	object-fit: cover;
	border-radius: 100px;
}
.balloon-box .img span{
	display: block;
	font-size: .8rem;
	text-align: center;
	line-height: 1.4;
}
.balloon-box .img br{
	display: none;
}
.balloon-box i.user-solid{
	background-color: var(--gray);/* circle's background-color */
	border: solid 0px var(--main);
}
.balloon-box i.user-solid:before{
	content: "";
	display: block;
	width: 40px;
	height: 40px;
	background-repeat: no-repeat;
	background-color: var(--main);/* color of SVG icon */
	-webkit-mask-image: url(images/icon/user-solid.svg);
	mask-image: url(images/icon/user-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;
	transform: translate(0%, 0%) rotate(0deg);
}
.balloon-box i.user-solid.invert{
	background-color: var(--main);/* circle's background-color */
}
.balloon-box i.user-solid.invert:before{
	background-color: #fff;/* color of SVG icon */
}

.balloon-box .face-smile-regular{background-image: url(images/icon/face-smile-regular.svg);}

.balloon-box .illust_m1{background-image: url(images/icon/illust_m1.svg);}
.balloon-box .illust_m2{background-image: url(images/icon/illust_m2.svg);}
.balloon-box .illust_m3{background-image: url(images/icon/illust_m3.svg);}
.balloon-box .illust_m4{background-image: url(images/icon/illust_m4.svg);}
.balloon-box .illust_m5{background-image: url(images/icon/illust_m5.svg);}
.balloon-box .illust_w1{background-image: url(images/icon/illust_w1.svg);}
.balloon-box .illust_w2{background-image: url(images/icon/illust_w2.svg);}
.balloon-box .illust_w3{background-image: url(images/icon/illust_w3.svg);}
.balloon-box .illust_w4{background-image: url(images/icon/illust_w4.svg);}
.balloon-box .illust_w5{background-image: url(images/icon/illust_w5.svg);}

.balloon-box .illust_7543{background-image: url(images/soco/7543_color.svg);}
.balloon-box .illust_7545{background-image: url(images/soco/7545_color.svg);}
.balloon-box .illust_7672{background-image: url(images/soco/7672_color.svg);}
.balloon-box .illust_7674{background-image: url(images/soco/7674_color.svg);}
.balloon-box .illust_7861{background-image: url(images/soco/7861_color.svg);}
.balloon-box .illust_7863{background-image: url(images/soco/7863_color.svg);}
.balloon-box .illust_11419{background-image: url(images/soco/11419_color.svg);}
.balloon-box .illust_11438{background-image: url(images/soco/11438_color.svg);}

.balloon-box .text {
	position: relative;
	margin-left: 16px;
	padding: 32px;
	border-radius: var(--radius);
	background: var(--gray);
	text-align: left;
	border-radius: 16px;
}
.balloon-box.reverse .text {
	margin-left: 0px;
	margin-right: 16px;
}
/* 吹き出し口 */
.balloon-box .text::after {
	position: absolute;
	content: "";
	top: calc(50% - 16px / 2);
	left: -16px;
  width: 16px;
  height: 16px;
  clip-path: polygon(100% 0%, 25% 50%, 100% 100%);
  background-color: var(--gray);
}
.balloon-box.reverse .text::after {
	top: calc(50% - 16px / 2);
	left: auto;
	right: -16px;
  width: 16px;
  height: 16px;
  clip-path: polygon(0% 0%, 75% 50%, 0% 100%);
  background-color: var(--gray);
}

/* よくある質問（FAQ、Q&A）
-------------------------------------------------------------- */
.faq-acc summary{
	padding-left: 32px;
}
.faq-acc p,
.faq-acc ul,
.faq-acc ol,
.faq-acc dl{
	margin-left: 32px;
}
.faq-acc summary::before,
.faq-acc summary + p::before {
	position: absolute;
    left: 8px;
    font-weight: bold;
    /* font-size: 1.2em; */
}
.faq-acc summary::before {
    content: 'Q.';
}
.faq-acc summary + p::before {
    content: 'A.';
}


/* バッヂ
-------------------------------------------------------------- */
.label::before {
	content: attr(data-text);
	display: block;
	width: -moz-fit-content;
	width: fit-content;
	padding: 8px 8px;
	margin-bottom: 8px;
  letter-spacing: 1px;
	text-indent: 1px;
	line-height: 1;
	border-radius: 4px;
	font-size: 0.75rem;/* 0.7remだとデスクトップChromeでわずかに下余白が出る */
	font-weight: 500; /* for Helvetica（和文の場合はヒラギノが適用されるため600のほうがよい） */
	color: #ffffff;
	background: var(--main);
}
.label-ja::before {
	padding: 8px 12px;
	text-indent: 0;
  letter-spacing: 0.05em;
	font-size: 0.8rem;
	font-weight: bold;
	font-feature-settings: "palt";
	line-height: 1.4;
}
i.label::before {
	display: inline-block; /* 行内で使う場合 <span class="badge inline"> */
	margin: 0;
}
i.label.rounded::before {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.6em;
	height: 1.6em;
	padding: 0;
	font-size: 1.0rem;
	border-radius: 100px;
}
.label.blue::before {
	color: var(--blue);
	background-color: hsl(200deg 100% 95%);
}
.label.green::before {
	color: var(--green);
	background-color: #e2f7e2;
}
.label.orange::before,
.label.yellow::before {
	color: var(--orange);
	background-color: hsl(50deg 100% 90%);
}
.label.red::before {
	color: var(--red);
	background-color: hsl(0deg 100% 98%);
}
.label.dark.blue::before {
	color: #fff;
	background-color: var(--blue);
}
.label.dark.green::before {
	color: #fff;
	background-color: var(--green);
}
.label.dark.orange::before,
.label.dark.yellow::before {
	color: #fff;
	background-color: var(--orange);
}
.label.dark.red::before {
	color: #fff;
	background-color: var(--red);
}

/*　見出し
-------------------------------------------------------------- */
.heading-bdl {
	border-left: solid 2px var(--main);
    padding-left: 22px;
    margin-left: -24px;
}

.heading-bdb:after {
	content: " ";
	display: block;
	width: 1.5em;
	margin: 16px 0 0;
	border-bottom: solid 2px var(--main);
	border-radius: 2px;
}
.heading-bdb.center {
	text-align: center;
}
.heading-bdb.center::after {
	margin: 16px auto 0;
}
/* .heading-line {
	position: relative;
}
.heading-line::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -32px;
	width: 16px;
	height: 1px;
	transform: translateY(-50%);
	border-top: solid 1px var(--main);
} */

/* WP Access Category Password
-------------------------------------------------------------- */
.acpwd-form {
	margin: 0 0 32px;
}
.acpwd-form input[type="password"] {
	background-color: rgba(0, 0, 0, 0.04);
	border: solid 1px rgba(0, 0, 0, 0.1);
	border-radius: 2px;
	padding: 8px;
}
.acpwd-form input[type="submit"] {
	padding: 8px 16px;
	background-color: rgba(0, 0, 0, 0.4);
	border: none;
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	border-radius: 4px;
}

/* WP 記事修正リンク（ログイン時のみ）
-------------------------------------------------------------- */
.post-edit-link {
	position: absolute !important;
	top: 8px !important;
	right: 8px !important;
	z-index: 2;
	padding: 0px 3px;
	/* background-color: rgba(255, 255, 255, 0.5); */
	font-size: 10px;
	color: #555 !important;
}

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

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

/* 画像をマウスオーバーで拡大（2024/03/12 モバイルで使えないので廃止）
-------------------------------------------------------------- */
/* .zoom {
	width: 100%;
	overflow: hidden;
	position: relative;
}
.zoom::before {
	position: absolute;
	top: 10px;
	right: 10px;
	display: inline-block;
	content: "";
	width: 24px;
	height: 24px;
	margin-bottom: 16px;
	background-color: transparent;
	background-image: url(images/icon/magnifying-glass-plus-solid.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	opacity: 0.4;
}
.zoom img {
	transition: 0.2s all;
	border: none;
}
.zoom img:hover {
	transform: scale(4);
	transition: 0.5s all;
} */

/* モーダルウィンドウ（dialog+JS）
-------------------------------------------------------------- */
.dialog-open-img{
	display: flex;
	justify-content: center; /*水平方向の揃え方：中央揃え*/
	align-items: center; /*垂直方向の揃え方：中央揃え*/
  padding: 0;
	border: none;
	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;
}

/* モーダルウィンドウ（CSS）
-------------------------------------------------------------- */
.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: rgba(0,0,0,.5);
	backdrop-filter: blur(8px);
}
.modal-content,
.modal .overlay::before {
	width: 640px;
	height: auto; /* コンテンツに合わせる */
	max-width: calc(100vw - 32px);
	max-height: calc(100vh - 128px);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.modal-content {
	overflow: auto;
	padding: 32px;
	background-color: #fff;
}
@media screen and (max-width: 559px) {
	.modal-content {
		padding: 32px 16px;
	}
}
.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;
}

/* カード（テキストのみ）2023/05/25 機能的にcards-horizontalと重複するので削除
-------------------------------------------------------------- */
/*
.news-list {
	border-top: solid 1px var(--border);
}
.news-list > li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 24px;
	margin: 0;
	padding: 16px 0;
	border-bottom: solid 1px var(--border);
}
@media screen and (max-width: 559px) {
	.news-list > li {
		grid-template-columns: 1fr;
		gap: 0px;
	}
}
.news-list p {
	margin: 0;
} */

/* カード（共通設定）
-------------------------------------------------------------- */
.cards-item {
	position: relative;
	display: flex;
	gap: 8px 24px; /* vertical=8px horizontal=24px */
	margin-left: 0;
	margin-right: 0;
}
.cards-item a {
	color: var(--text);
}
.cards-item .text {
	line-height: 1.6;
}
.cards-item .title {
	margin: 0;
	padding: 0;
	border: none;
	font-weight: 600;
	font-size: 0.9rem;
}

.overlay-text{
	position: relative;
}
.overlay-text::after,
.overlay-text .data-text{ /* オーバレイテキストを表示 */
	content: attr(data-text);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	text-align: center;
	transition: 0.3s linear;
	background-color: rgba(0,0,0,.2);
  color: white;
	text-shadow: 2px 2px 5px rgba(0,0,0,.5);
}

/* カード（シンプル＋垂直）
-------------------------------------------------------------- */
.cards-vertical {
	display: grid;
	gap: 48px 32px;
	grid-template-columns: repeat(4, 1fr);
}
@media screen and (max-width: 768px) {
	.cards-vertical {
		grid-template-columns: repeat(3, 1fr);
		gap: 48px 16px;
	}
}
@media screen and (max-width: 559px) {
	.cards-vertical {
		grid-template-columns: repeat(auto-fill,minmax(150px, 1fr));
	}
}
@media screen and (max-width: 375px) {
	.cards-vertical {
		grid-template-columns: repeat(2, 1fr);
	}
}
.cards-vertical .cards-item,
.cards-vertical .cards-item .post-title-container {
	flex-direction: column;
}
.cards-vertical .cards-item .post-title-container {
	position: relative;
	display: flex;
	gap: 16px;
}
.cards-vertical .cards-item .post-title-container .hover-text {
	position: relative;
}
.cards-vertical .cards-item .post-title-container .hover-text::after{ /* マウスオーバで画像にオーバレイテキストを表示 */
	content: attr(data-text);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	text-align: center;
	transition: 0.3s linear;
	opacity: 0;
	background-color: rgba(0,0,0,.2);
  color: white;
	text-shadow: 2px 2px 5px rgba(0,0,0,.5);
}
.cards-vertical .cards-item .post-title-container:hover .hover-text::after{
	opacity: 1;
}
.cards-vertical .cards-item  .post-title-container .img {
	width: 100%;
	transition: 0.2s;
	order: -1;
}
.cards-vertical .cards-item .post-title-container:hover .img {
	filter: drop-shadow(0px 5px 5px rgba(0,0,0,.5));
	transform: translate(0px, -4px);
	/* box-shadow: var(--shadow); */
}

/* カード（シンプル＋水平）
-------------------------------------------------------------- */
.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 0 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 {
	cursor: pointer;
	background: linear-gradient(to right,transparent,var(--gray) 10% 90%,transparent);
}
.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;
}

/* ツールチップ
-------------------------------------------------------------- */
.tooltip {
	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: 0.8rem;
	background-color: rgba(255, 255, 255, 1);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	z-index: 10;
	transition: 0.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;
}

/* ヒーロイメージ
-------------------------------------------------------------- */
.hero {
	position: relative;
	/* width: 100vw; */
	/* height: calc(100vh - 100px); */
	/* aspect-ratio: 2/1; */
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 128px 0;
}
.hero,
.hero a {
	color: #fff;
	/* text-shadow: 2px 2px 5px rgba(0,0,0,.6); */
	/* word-break: normal; */
}
/* .hero.fit-content {
	height: auto;
	padding: 128px 0;
} */
.hero img{
	position: absolute;
	top: 0;
	left: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}
.hero p{
	color: #fff;
	mix-blend-mode: difference;
}
.hero.blackscreen::before { /* for filter */
	content: "";
	display: block;
	position: absolute;
	top: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,.5);
}
/* @media screen and (max-width: 559px) {
	.hero {
		height: 100vw;
	}
} */

/* 画像の上にテキスト配置（2024/03/12 モバイルで読みにくいので廃止）
-------------------------------------------------------------- */
/* .overlay {
	position: relative;
}
.overlay img {
	display: block;
}
.overlay .upper {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	margin: 0 !important;
	padding: 32px;
	color: white;
	font-size: 2.3rem;
	font-weight: 600;
	line-height: 1.5;
	text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
	background: linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100%);
	border: none;
}
.overlay .upper::after {
	display: none;
}
@media screen and (max-width: 559px) {
	.overlay .upper {
		padding: 32px;
		font-size: 1.3rem;
	}
} */

/* 続きを読むボタン
-------------------------------------------------------------- */
.readmore {
	padding-top: 16px;
	font-size: 0.9rem;
	text-align: center;
	cursor: pointer;
}
.readmore::before {
	content: "▼";
	font-size: 70%;
	padding-right: 8px;
	opacity: 0.9;
	vertical-align: text-bottom;
}
.readmore:hover {
	opacity: 0.5;
}
.target {
	transition: 0.2s;
	cursor: pointer;
}
.target.hidden {
	visibility: collapse;
	transition: 0.2s;
	padding: 0;
	height: 0;
	opacity: 0;
	font-size: 0;
}

/* アコーディオン
-------------------------------------------------------------- */
details.bordered {
	padding: 0px 32px 0px;
	border: solid 1px var(--border);
	border-radius: var(--radius);
	overflow: hidden;
}
details.bordered + details.bordered {
	margin-top: 16px;
}
details.bordered[open] {
	padding-bottom: 16px;
}
details.bordered[open] summary {
	background-color: var(--gray);
}
details.bordered summary {
	margin: 0px -32px 0 -32px;
	padding: 16px 48px 16px 32px;
}
details.bordered summary:hover {
	background-color: var(--gray);
}
details.bordered summary::after {
	right: 16px;
}

/* details.show-pc[open] {
	overflow: auto;
	border: solid 1px red;
} */
details.show-pc[open] summary{
	display: none;
}
@media screen and (max-width: 559px) {
	details.show-pc[open] summary{
		display: block;
	}
}

/* タグクラウド（search.php、404.php）
-------------------------------------------------------------- */
.wp-tag-cloud{
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: center;
}
.wp-tag-cloud li{
	list-style: none;
	margin: 0;
	line-height: 1;
}
.wp-tag-cloud a {
	color: var(--text);
}
.home .wp-tag-cloud a {
	color: #fff;
}

.svg-icon{
	width: 1em;
	height: 1em;
	border: solid 1px red;
}

/* リボン
-------------------------------------------------------------- */
/* リボン共通 */
.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;
}
/* スマホ閲覧時は横スクロールUIに変更 → 操作性が悪いのでやめた */
/* @media screen and (max-width: 559px) {
	.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;
	}
} */

/* ラジオボタン用の注釈テキスト（チェックが入ったときに表示・2023/8現在、FFはhasに未対応）
-------------------------------------------------------------- */
/* .checked-text{
	height: 0;
	margin: 0 0 0 24px;
	font-size: .8rem;
	overflow: hidden;
	transition: .2s;
}
label:has(input:checked) + .checked-text{
	height: auto;
	margin: 4px 0 16px 24px;
	padding: 16px;
	border: solid 1px var(--border);
	border-radius: 4px;
} */
.checked-text { /* :has疑似要素の非対応ブラウザでは常時表示 */
	margin: 4px 0 16px 24px;
	padding: 16px;
	border: solid 1px var(--border);
	border-radius: 4px;
	/* font-size: .8rem; */
	transition: .2s;
}
label:not(:has(input:checked)) + .checked-text {
	height: 0;
	margin: 0 0 0 24px;
	padding: 0;
	border: solid 0px var(--border);
	overflow: hidden;
}
label:has(input:checked) + .checked-text {
	height: auto;
	margin: 4px 0 16px 24px;
	padding: 16px;
	border: solid 1px var(--border);
}

/* メールフォーム
-------------------------------------------------------------- */
.form-label{
	display: block;
	margin-top: 32px;
	margin-bottom: 8px;
	font-size: 0.9rem;
  font-weight: bold;
}
.form-sublabel{
	display: block;
	margin-top: 16px;
	margin-bottom: 8px;
	font-size: 0.8rem;
  font-weight: bold;
}
/* 入力必須ラベル */
.form-required {
	display: flex;
	align-items: center;
}
.form-required::after {
	content: "必須";
	display: inline-block;
	margin-left: 8px;
	padding: 6px 8px;
	line-height: 1;
	font-size: .7rem;
	border-radius: 4px;
	color: white;
	color: var(--text);
	background-color: #ffe200;
}

/* タブメニュー（: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;
	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;
}

/* 続きを読む
-------------------------------------------------------------- */
.read-more:has(input) .hidden{
	display: none;
}
.read-more:has(input:checked) .hidden{
	display: revert; /* for table tr */
  animation-name: fadein-bottom;
  animation-fill-mode: forwards;
  animation-duration: 1s;
}
.read-more label:has(input:checked){
	display: none; /* チェックされたらボタンを非表示 */
}
.read-more label input{
	display: none; /* チェックボックスは非表示 */
}
