@charset "utf-8";

/* CSS Document */

/* ======================================================
	html5doctor.com Reset Stylesheet
	v1.6.1
	Last Updated: 2010-09-17
	Author: Richard Clark - http://richclarkdesign.com 
	Twitter: @rich_clark
------------------------------------------------------ */
*
{
	-webkit-box-sizing: border-box;/*	Webkit系用 */
	-moz-box-sizing: border-box;/*		Firefox用 */
	box-sizing: border-box;/*			標準 */
	hyphens: manual;
}

*:before,
*:after
{
	box-sizing: inherit;
}

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd,
ul, ol, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video
{
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
/*
	font-size:100%;
*/
	vertical-align: baseline;
	background: transparent;
}

body, hr,
a, img, div, p, blockquote,
strong, span, b, small, em,
dl, dt, dd,
ul, ol, li,
h1, h2, h3, h4, h5, h6, pre,
table, th, td, caption, thead, tbody, tfoot,
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, article,
.Border,
*:before,
*:after,
select,
input, textarea, button, label
{
	border-style: solid;
	border-width: 0;
}

/*
body {
    line-height:1;
}
*/
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section summary
{
	display: block;
}

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, b,
img,
dl, dt, dd,
ul, ol, li,
fieldset, form, select, label, button, legend, textarea,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary
{
	position: relative;
}

nav ul
{
	list-style: none;
}

blockquote,
q
{
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after
{
	content: '';
	content: none;
}

details
{
}

summary
{
	display: block;
	list-style: none;
}
/*
	[241108]　スマホで「▲」が出る
	------------------------------------------------------
	【初心者向け】details・summaryタグについてくる黒矢印を消す方法
	https://qiita.com/7note/items/720d8e441585bc0d5316
	一部ブラウザで消えなかった場合は以下も追記
*/
summary::-webkit-details-marker
{
	display:none;
}

a
{
	margin: 0;
	padding: 0;
	font-size: inherit;
	vertical-align: baseline;
	background: transparent;
}

/* change colours to suit your needs */
ins
{
	background-color: #ff9;
	color: #000;
	text-decoration-line: none;
}

/* change colours to suit your needs */
mark
{
	background-color: #ff9;
	color: #000;
	font-style: italic;
	font-weight: bold;
}

del
{
	text-decoration-line: line-through;
}

abbr[title],
dfn[title]
{
	border-bottom: 1px dotted;
	cursor: help;
}

/*
table
{
    border-collapse:collapse;
    border-spacing:0;
}
*/

/* change border colour to suit your needs */
/*
hr
{
	display:block;
	height:1px;
	border:0;
	border-top:1px solid #cccccc;
	margin: 1em 0;
	padding:0;
	clear: both;
}
*/
input,
select
{
	vertical-align: middle;
}

/* ======================================================
	original
------------------------------------------------------ */
body
{
	/* ------------------------------------------------------
		[240613]
		文章の折り返し指定のCSS最新版
		https://ics.media/entry/240411/
	------------------------------------------------------ */
	overflow-wrap: anywhere; /* 収まらない場合に折り返す */
	word-break: normal; /* 単語の分割はデフォルトに依存 */
	line-break: strict; /* 禁則処理を厳格に適用 */

	overflow-x: hidden;
	/* 〓未決〓------------------------------------------------------
		[241126]
		横スクロールバーの発生源を素早く特定する方法と最新の防止策
		https://www.tak-dcxi.com/article/methods-to-quickly-identify-the-source-of-horizontal-scrolling-and-the-latest-prevention-measures/
	overflow-x: clip;
	------------------------------------------------------ */
}
/*
	overflow-wrap: break-word;
	word-wrap: break-word;

	[230725]　想像する「単語」単位より遥かに多い
	word-break: keep-all;
*/
/*
body
{
	-webkit-text-size-adjust: 100%;
	word-break: normal;
	word-break: break-all;/欧文が改行されるようになるが、句読点の追い込みも無視される/
	word-wrap: break-word;
}
*/

.budoux_ja
{
	text-align: justify;
}


/* ------------------------------------------------------------------------------------------------------------
	<img> */
img
{
	-ms-interpolation-mode: bicubic;
}

/* ------------------------------------------------------------------------------------------------------------
	<iframe>
	------------------------------------------------------
	[240220]	iframe要素の高さを自動調整でレスポンシブ化する最も簡単な方法
	https://shimotsuki.wwwxyz.jp/20210729-923
	------------------------------------------------------
	[180309]	HTML5でiframeの下に隙間ができた。vertical-alignで消す。
	http://blog.doli.jp/blog/2013/post670/
------------------------------------------------------------------------------------------------------------ */
iframe
{
	aspect-ratio: 16 / 9;

	width: 100%;
	height: auto;
	background: transparent;
	border-width: 0;
	
	vertical-align: bottom;
	overflow-x: hidden;
}
/*
	height: 100%;
	margin-top: 3em;
	margin-bottom: 3em;
*/

.movie iframe
{
	aspect-ratio: 16 / 9;
}

/* ------------------------------------------------------
	<video>
	[180309]HTML5でiframeの下に隙間ができた。vertical-alignで消す。
	http://blog.doli.jp/blog/2013/post670/
*/
video
{
	overflow-x: hidden;
	background: transparent;
	width: 100%;
	vertical-align: bottom;
}
/*
	height: calc(100% * 0.75);
*/

/* ------------------------------------------------------
	<hr> */
hr
{
	display: block;
	height: 0;
	border-style: solid;
	border-width: 0;
	margin: 2em 0;
}

hr:is(.blank, .Blank)
/*
hr.Blank
*/
{
	background: none;
	border-width: 0;
}

hr:where(.solid, .dotted, .dashed)
{
	border-top-width: 1px;
	margin: 1em 0;
	opacity: 0.3;
}

hr.solid
{
	border-style: solid;
}

hr.dotted
{
	border-style: dotted;
}

hr.dashed
{
	border-style: dashed;
}


/* ------------------------------------------------------
	<address> */
address
{
	font-style: normal;
}

address img
{
}

/* ======================================================
	<img>
------------------------------------------------------ */
img
{
	max-width: 100%;
	height: auto;
	vertical-align: middle;
	letter-spacing: 0;
	object-fit: cover;
}
/*
	border-style: solid;
	border-width: 0;
	letter-spacing: 0;
	vertical-align: bottom;
	display: inline-block;


	IE hack
	http://qiita.com/ShioTsugi/items/4edf6fae3329c4904f29
	http://qiita.com/syossan27/items/75348163b457154a19a9
*/

img[src$=".svg"]
{
}
/*
	max-width: 100%;
	height: auto;
*/

a img,
.Img,
.Img img
{
}
/*
	display: inline-block;
	display: inherit;
*/

.Img
{
}

.Img>*
{
	display: inherit;
	display: block;
	width: 100%;
	height: 100%;
}

.Img img
{
	display: block;
	width: 100%;
	height: 100%;
}

a[target] .icon img
{
	object-fit: contain;
}

.Img+span
{
	vertical-align: middle;
}
/*
	display: inline-block;
*/

.img>.Wrap,
.img img
{
}
/*
	display: block;
	width: 100%;
*/

/* 範囲内へ納める・全体 */
.ImgFit
{
}
/*
	display: inline-block;
	width: 100%;
*/

.ImgFit img
{
	display: block;
	width: 100%;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
}
/*
*/

/* 範囲内へ納める・はみ出させる */
.ImgCover
{
}
/*
	display: block;
	width: 100%;
*/

.ImgCover img
{
	display: block;
	width: 100%;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
/*
*/

/* トリミング */
.Trimming
{
	position: relative;
	overflow: hidden;
}

.Trimming img
{
	position: absolute;
	top: 0;
	left: 0;
}

/* 写真にフチをつける */
/*
.Snap
{
	text-align: center;
}
*/
.Snap img
{
	border-width: 0.4em;
	border-radius: var(--border_radius);
	box-shadow: 0.4em 0.4em 0.0em rgb(29 21 21 / 0.2);
	-moz-box-shadow: 0.4em 0.4em 0.0em rgb(29 21 21 / 0.2);
	-webkit-box-shadow: 0.4em 0.4em 0.0em rgb(29 21 21 / 0.2);
}

/* 画像無し */
.NoImg
{
	aspect-ratio: 1 / 1;

	display: grid;
	justify-content: center;
	align-items: center;

	width: 100%;
	text-align: center;
}

.NoImg:after
{
	font-size: 0.8em;

	content: "no image";
	display: block;

	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	
	width: 100%;

	color: rgb(var(--bk));
	line-height: 0em;
	opacity: 0.6;
}
/*
	height: 100%;
*/

.NoImg img
{
	width: 100%;
	background-color: rgb(var(--bk) / 0.1);
	border-width: 0;
	border-style: dashed;
}

/* ------------------------------------------------------
	pic */
figure,
figcaption,
.pic
{
	text-align: center;
}

figcaption,
.pic
{
	line-height: 1.5;
	margin-top: 0.5em;
}
/*
	font-size: 1em;
	text-align: right;
	text-align: center;
	font-size: 0.8em;
*/

/* ======================================================
	<ul><ol><li>
------------------------------------------------------ */
ul,
ol
{
	display: grid;
	gap: 1em;

	margin-left: 1.5em;
	text-align: justify;
}
/*
	text-align: left;
*/

li
{
}
/*
	margin-top: 1em;
	margin-bottom: 1em;
*/

li>.Wrap
{
	width: 100%;
}

td>ul,
td>ul>li,
td.Flex>*,
td.Flex>*>*
{
	margin-top: 0;
	margin-bottom: 0;
}

li :is(ul, ol)
{
	gap: 0;
}

li ul
{
	list-style-type: disc;
}

/* <ol>　gap0 */
:is(ul, ol).gap0
{
	gap: 0;
}

/* <ol>　任意の装飾　丸付き、「()」付き、アラビック */
ol:where(.kakko, .kakkoL, .kakkoR, .lower_roman)
{
	counter-reset: listnum;
	list-style: none;
}

ol:where(.kakko, .kakkoL, .kakkoR, .lower_roman)>li
{
	list-style-type: none;

	display: grid;
	grid-template-columns: 2em auto;
	gap: 0.5em;
}

ol:where(.kakko, .kakkoL, .kakkoR, .lower_roman)>li:before
{
	counter-increment: listnum;

	text-align: right;
}
/* <ol>　任意の装飾　「()」付き */
ol.kakko>li:before
{
	content: "(" counter(listnum) ")";
}
/* <ol>　任意の装飾　「(」付き */
ol.kakkoL>li:before
{
	content: "(" counter(listnum) "";
}
/* <ol>　任意の装飾　「(」付き */
ol.kakkoR>li:before
{
	content: "" counter(listnum) ")";
}

/* <ol>　アラビック */
ol.lower_roman
{
	list-style-type: lower-roman;
}
ol.lower_roman>li:before
{
	content: counter(listnum, lower-roman) ")";
}

/* <ol>　任意の装飾　※丸付き数字は「kome」と同じ */
ol.maru
{
	list-style: none;
	margin-left: 0;
}
ol.maru>li
{
	text-indent: -1em !important;
	padding-left: 1em !important;
}


/* <ol>任意の文字で 　〓[241015]未決〓
【解決済み】olタグを入れ子にした時、Firefoxで番号がうまく動かなかった
https://qiita.com/fumi_nagaoka/items/3247a757962eaf937c80
.character
{
	list-style: none;

	/ カウンターをリセット /
	counter-reset: ol-counter;
}
.character>li
{
	/ counter-resetと同じ文字列 /
	counter-increment: ol-counter;
}
.character li::before
{
	/ カウントした数に応じて番号を表示 /
	content: counter(ol-counter);

	margin-left: -1.5em;
}

.character.charaKakko
{
	margin-left: 2em;
}
.character.charaKakko li::before
{
	content: "("counter(ol-counter)")";
	margin-left: -2em;
}

.character.charaKakkoR
{
	margin-left: 1.75em;
}
.character.charaKakkoR li::before
{
	content: counter(ol-counter)")";
	margin-left: -1.75em;
}
*/


/* <li>　マーカーの装飾 */
.li_circle
{
	list-style: custom-counter;
}
@counter-style custom-counter {
	system: cyclic;
	symbols: "●";
	suffix: " ";
}
.li_circle>li::marker
{
	color: rgb(var(--beige));
}


/* <ul>　横並び */
:is(ul, ol).flex
{
	--num				: 1;
	grid-template-columns: repeat(var(--num), 1fr);
}

:is(ul, ol).flex2
{
	--num				: 2;
}

:is(ul, ol).flex3
{
	--num				: 3;
}


/* ======================================================
	<dl>
------------------------------------------------------ */
dl
{
	display: grid;
	gap: var(--gap);
	min-width: 50%;
	text-align: justify;
}
/*
	display: inline-flex;
	flex-direction: column;

	margin-bottom: 1em;
	text-align: left;
*/

dt
{
	font-size: 1.2em;
	border-bottom-width: 1px;
}

dd
{
	margin-top: calc(0em - (var(--gap) / 2));
	margin-left: 2em;
}


/* ======================================================
	引用
------------------------------------------------------ */
cite
{
	display: block;
	font-size: 0.8em;
	text-align: right;
	letter-spacing: normal;
}
