@charset "UTF-8";
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@3.3.1/dist/css/yakuhanmp.min.css");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Serif+TC:wght@400;500;600;700&family=Noto+Serif+KR:wght@400;500;600;700&display=swap");

/*--------------------------------------------
Language-specific Font Settings
---------------------------------------------*/

/* 中国語（簡体字）フォント設定 */
[lang="zh"],
[lang="zh-CN"],
.langCng[lang="zh"] {
  font-family: "Noto Serif SC", "Source Han Serif SC", "Source Han Serif CN", "Songti SC", "SimSun", "宋体", serif;
}

/* 中国語（繁体字）フォント設定 */
[lang="zh-TW"],
[lang="zh-HK"] {
  font-family: "Noto Serif TC", "Source Han Serif TC", "Source Han Serif TW", "Songti TC", "PMingLiU", "新細明體", serif;
}

/* 韓国語フォント設定 */
[lang="kr"],
[lang="ko"],
.langCng[lang="kr"] {
  font-family: "Noto Serif KR", "Source Han Serif KR", "Nanum Myeongjo", "나눔명조", "Batang", "바탕", serif;
}

/*--------------------------------------------
Font Weight Adjustments for Different Languages
---------------------------------------------*/

/* 中国語・韓国語は少し太めに調整（可読性向上） */
[lang="zh"],
[lang="zh-CN"],
[lang="zh-TW"],
[lang="zh-HK"],
[lang="kr"],
[lang="ko"],
.langCng[lang="zh"],
.langCng[lang="kr"] {
  font-weight: 500;
  letter-spacing: 0.02em;
}


:root{
	--fontFamily : yakuhanmp , "Noto Serif JP" , serif;
	--fontWeight : 400;
}
:root{
	--body : #000;
	--link : #000;
}
:root{
	text-spacing : trim-start allow-end trim-adjacent ideograph-alpha ideograph-numeric;
}
* , *::before , *::after{
	box-sizing : border-box;
}
html{
	visibility : visible;
}
html , body{
	padding : 0;
	margin : 0;
	font : inherit;
	font-size : 100%;
	border : 0;
}
div , span , applet , object , iframe , h1 , h2 , h3 , h4 , h5 , h6 , p , blockquote , pre , a , abbr , acronym , address , big , cite , code , del , dfn , em , img , ins , kbd , q , s , samp , small , strike , strong , sub , sup , tt , var , b , u , i , dl , dt , dd , ol , ul , li , fieldset , form , label , legend , table , caption , tbody , tfoot , thead , tr , th , td , article , aside , canvas , details , embed , figure , figcaption , footer , header , nav , output , ruby , section , summary , time , mark , audio , video{
	padding : 0;
	margin : 0;
	font : inherit;
	font-size : 100%;
	border : 0;
}
main , article , aside , details , figcaption , figure , footer , header , nav , section , picture{
	display : block;
}
ol , ul{
	list-style : none;
}
blockquote , q{
	quotes : none;
}
blockquote::before , blockquote::after , q::before , q::after{
	content : "";
	content : none;
}
table{
	width : 100%;
	table-layout : fixed;
	border-spacing : 0;
	border-collapse : collapse;
}
em{
	font-style : normal;
}
html{
}
a{
	-webkit-text-decoration : none;
	text-decoration : none;
	outline : none;
}
picture{
	line-height : 1;
}
picture img{
	line-height : 1;
	vertical-align : top;
}
img{
	width : auto;
	vertical-align : top;
	outline : none;
}
input , button{
	border : 0;
	border-radius : 0;
	outline : 0;
	-webkit-appearance : none;
}
input[type="text"] , input[type="email"] , input[type="password"] , input[type="tel"] , input[type="number"]{
	padding-left : .5em;
	padding-right : .5em;
	font-size : 1em;
}
input[type="number"]{
	padding-right : 1em;
	text-align : right;
}
textarea{
	padding : .5em;
	font-size : 1em;
	outline : none;
}
input[type="submit"] , input[type="reset"] , button{
	padding : 0;
	-webkit-appearance : none;
}
input[type="submit"]:hover , input[type="reset"]:hover , button:hover{
	cursor : pointer;
}
select::-ms-expand{
	display : none;
}
input{
	border-style : solid;
	border-radius : 0;
	outline : none;
	-webkit-appearance : none;
}
textarea{
	resize : vertical;
	border-style : solid;
	border-radius : 0;
	-webkit-appearance : none;
}
input , select , textarea , button{
	font-family : var( --fontFamily );
	font-weight : 600;
}
button{
	cursor : pointer;
	background : none;
}
body{
	position : relative;
	display : block;
	font-family : var( --fontFamily );
	font-size : 100%;
	font-weight : 500;
	font-size-adjust : 100%;
	line-height : 1;
	color : var( --body );
	overflow-scrolling : touch;
	-webkit-font-smoothing : antialiased;
	-moz-osx-font-smoothing : grayscale;
	scroll-behavior : smooth;
	text-rendering : optimizeLegibility;

	/* font-feature-settings: "palt" 1; */
}
a{
	color : var( --body );
}
body{
	width : 100%;
	overflow-x : hidden;
}
@page{
	margin : .5cm;
	margin-top : .4cm;
}
.no-print{
	display : none;
}