@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&display=swap');

.font_shippori_min{
	font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-style: normal;
}

html,.font_sizebase{font-size:min(16px,max(15px,1.6vw));}
html *{
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	text-size-adjust: 100%;
	word-break: break-all;
}
body{
	margin: 0px;
	padding: 0px;
	font-size: 100%;
	font-family: "Shippori Mincho", serif;
  font-weight: 500;
	background-color: #FFF;
}
body,.col_base{color:#333;}
body,body *{line-height: 1.5em;}
body *,.borderbox,.borderbox *{
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
body > div[align="center"]{
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
h1,h2,h3,h4,h5,h6,p,form,hr{margin:0;padding:0;}
span{display: inline-block;}
a{color:inherit;text-decoration:none;}
a:hover{}
a img{border:none;}
ul,li{margin:0px;padding:0px;list-style-type:none;}
hr{
	width:100%;
	border-top:solid 1px #C8C8C8;
	border-bottom:none;
	border-left:none;
	border-right:none;
	margin:0 auto;
	margin:0;
	padding:0;
}
img,svg{max-width:100%;display:block;}
img{min-width:1rem;object-fit:cover;}
img[src*=".svg"]:not([width]),svg{width:100%;}

/* ----- */

.H_head{height:110px;}
@media screen and (max-width: 999px) {
	.H_head{height:72px;}
}

.c_box,
.c_box_pc{
	padding-left: min(50px,calc((1vw - 10px) * 15 / 6 + 35px),max(3.5%,calc(1vw * 17.5 / 3.75)));
	padding-right: min(50px,calc((1vw - 10px) * 15 / 6 + 35px),max(3.5%,calc(1vw * 17.5 / 3.75)));
}
@media screen and (max-width: 999px) {
	.c_box_pc{
		padding-left: 0;
		padding-right: 0;
	}
}

header{
	position: fixed;
	top:0;
	left:0;
	width:100%;
	z-index: 1000;
}
body:not(.page_top) header{background-color: #FFF;}
header .inner,
header .menu,
header .menu .btn,
header .menu .btn > *{
	display: flex;
	align-items: center;
}
header .logo{
	margin-top: 10px;
	margin-right: auto;
}
header .logo img{object-fit: contain;}
header .menu{}
header .menu .text{
	font-size: 20px;
	margin-right: 1em;
}
header .menu .btn,
header .menu .btn > *{justify-content: center;}
header .menu .btn{
	cursor: pointer;
	height:40px;
}
header .menu .btn > *,
header .menu .btn span{
	-webkit-transition: 0.15s ease, background-color 0.3s;
	-moz-transition: 0.15s ease, background-color 0.3s;
	-o-transition: 0.15s ease, background-color 0.3s;
	-ms-transition: 0.15s ease, background-color 0.3s;
	transition: 0.15s ease, background-color 0.3s;
}
header .menu .btn > *{
	flex-direction: column;
	width:40px;
	height:10px;	
	position: relative;
}
header .menu .btn span{
	position: absolute;
	left: 0;
	right: 0;
	margin:auto;
	display:block;
	width: 100%;
	height: 1px;
	background-color: #333;
}
header .menu .btn span:first-of-type{top: 0;bottom:100%;}
header .menu .btn span:last-of-type{top:100%;bottom: 0;}
header.active .menu .btn span:first-of-type{
	bottom: 0;
	-webkit-transform:rotate(45deg);
	transform:rotate(45deg);
}
header.active .menu .btn span:last-of-type{
	top: 0;
	-webkit-transform:rotate(-45deg);
	transform:rotate(-45deg);
}
header .pop{
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
}
header .pop > * > *{
	width: 300px;
	max-width: 100%;
	padding: 45px;
	font-size: 17px;
	gap: 1em;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
header .pop a{
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
header .pop a::after{
	content: '';
	display: block;
	width:1em;
	height:10px;
	background-image: url("../img/komeyanotarou_common_arrow_menu.png");
	background-position: right center;
	background-repeat: no-repeat;
	background-size: contain;
}
@media screen and (min-width: 1000px) {
	header .pop{
		top: calc(100% - 16px);
		z-index: -1;
	}
	header .pop > *{
		padding-top: 16px;
		display: flex;
		justify-content: flex-end;
	}
	header .pop > * > *{
		position: relative;
		background-color: #FFF;
		box-shadow: 5px 5px 5px rgba(0,0,0,0.2);
	}
	header .pop > * > *:before{
		content: '';
		display: block;
		border-style: solid;
		border-width: 0 17.5px 16px;
		border-color: rgba(255,255,255,0.9) transparent;
		position: absolute;
		bottom: 100%;
		right:calc(1% * 70 / 3);
	}
}
@media screen and (max-width: 999px) {
	header .logo{margin-top: 0;margin-bottom: 2px;}
	header .logo img{width:161px;}
	header .menu .text{display: none;}
	header .pop > *{background-color: rgba(255,255,255,0.9);}
}

h1,.font_size1{font-size:min(40px,max(26px,4vw));}
h2,.font_size2{font-size:min(30px,max(24px,3vw));}
h3,.font_size3{font-size:min(24px,max(20px,3vw));}

.con_mainpic > *{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
}
.con_mainpic img{
	width:100%;
	height:400px;
}
.con_mainpic > * h1{position: absolute;}
.con_mainpic:not(.dark) > * h1{
	text-shadow
	: 0 0 min(13px,max(10px,1.3vw)) #FFF
	, 0 0 min(13px,max(10px,1.3vw)) #FFF
	, 0 0 min(13px,max(10px,1.3vw)) #FFF
	, 0 0 min(13px,max(10px,1.3vw)) #FFF
	, 0 0 min(13px,max(10px,1.3vw)) #FFF
	;
}
.con_mainpic.dark > * h1{color:#FFF;}
.con_mainpic > * .caution{
	position: absolute;
	bottom:0.5em;
	left:0.75em;
	font-size: 0.8rem;
}
@media screen and (max-width: 999px) {
	.con_mainpic img{height:min(362px,max(181px,calc(1vw * 181 / 3.75)));}
}

.pan{
	text-align:left;
	font-size: min(14px,max(11px,1.4vw));
	padding-top: 1em;
	gap: 0.5em;
	display: flex;
	flex-wrap: wrap;
}
.pan *{line-height: 1em;}

.btn_more{
	display: flex;
	justify-content: center;
	align-items: center;
}
.btn_more a{
	width:min(500px,max(240px,50vw));
	height:min(70px,max(60px,7vw));
	max-width: 100%;
	border:solid 1px #b3b3b3;
	background-color: transparent;
	padding-left: 1.25em;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.btn_more a .border{
	border-top:solid 1px #b3b3b3;
	width:min(260px,max(115px,26vw));
	margin-right: -30px;
}
@media screen and (min-width: 1000px) {
	.btn_more a:hover{
		color:#FFF;
		background-color: #000;
	}
}

.anchor{position: relative;}
.anchor a{position: absolute;top:-110px;}
@media screen and (max-width: 999px) {
	.anchor a{top:-72px;}
}

footer{
	margin-top: auto;
	background-color: #000;
	background-image: none;
	color:#FFF;
}
footer .set{
	padding-top: min(60px,max(6vw,calc(1vw * 30 / 3.75)));
	padding-bottom: min(30px,max(3vw,calc(1vw * 20 / 3.75)));
	display: flex;
	flex-direction: column;
	align-items: center;
}
footer .menu1{
	margin-top: 50px;
	margin-bottom: 1em;
	font-size:min(18px,max(15px,1.8vw));
	gap: 0.6em 2em;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
footer .menu2{
	margin-top: 1em;
	font-size:min(14px,max(12px,1.4vw));
	gap: 0.75em 2em;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
footer .insta{margin-top:min(40px,max(25px,4vw));}
footer .insta img{max-width: calc(1vw * 98 / 3.75);}
footer .copy{
	font-size:min(12px,max(10px,1.2vw));
	margin-top:min(30px,max(20px,3vw));
}
footer .bnr_order{}
footer .bnr_order a{
	position: fixed;
	z-index: 900;
	display: flex;
	justify-content: center;
	align-items: center;
}
.bnr_recruit{
	display: flex;
	justify-content: flex-end;
}
/*
.Wbase.W1500.bnr_recruit{
	width:min(100%,calc(100vw - 30px));
	max-width: min(1500px,calc(100vw - 30px));
}
*/
.bnr_recruit a{
	position: fixed;
	right: auto;
	bottom: min(60px,max(30px,calc(1vw * 30 / 3.75)));
	z-index: 900;
	white-space: pre-wrap;
	width: calc(1em * 230 / 29);
	height: calc(1em * 230 / 29);
	border-radius: 100%;
	background-color: #fae23d;
	color: #333;
	font-size: min(29px,max(15px,calc(1vw * 15 / 3.75)));
	font-weight: 700;
	display: grid;
	align-items: center;
	justify-items: center;
}
@media screen and (max-width: 999px) {
	.bnr_recruit a{
		right: min(50px,calc((1vw - 10px) * 15 / 6 + 35px),max(3.5%,calc(1vw * 17.5 / 3.75)));
	}
}	
@media screen and (min-width: 1000px) {
	footer .bnr_order{
		display: flex;
		justify-content: flex-end;
	}
	footer .bnr_order a{
		bottom:30px;
		width:133px;
		height:106px;
		align-items: flex-end;
	}
	footer .bnr_order a::before{
		content: '';
		position: absolute;
		width: 100%;
		height: 100%;
		bottom:0;
		left:0;
		z-index: -1;
		background-image: url("../img/komeyanotarou_common_bnr-order.png");
		background-position: center center;
		background-repeat: no-repeat;
		background-size: 100% 100%;
		/*
		border-style: solid;
		border-color: #000 transparent;
		border-width: 0 63px 100px;
		*/
	}
	footer .bnr_order a span{
		font-size: 17px;
		line-height: 20px;
		margin-bottom: 7px;
	}
}
@media screen and (max-width: 999px) {
	footer .menu1{margin-bottom: 1.4em;}
	footer .menu1.no_order{max-width: 250px;}
	footer .menu2{
		margin-top: 1.5em;
		flex-direction: column;
	}
	footer .bnr_order,
	footer .bnr_order a{height:62px;}
	footer .bnr_order a{
		font-size: 16px;
		bottom: 0;
		left: 0;
		width: 100%;
		background-color: #000;
		border-top: solid 2px #FFF;
	}
}

/* 横幅下限 */
body > div[align=center],
header,
footer{min-width:375px;}
body > div[align=center]{overflow-x: hidden;}

/* ----- */

.pc_vanish{}
.sp_vanish{}
.im_vanish{display:none!important;}
.pc_br_del{}
.sp_br_del{}
.vanish_branch{}
.vanish_branch_onoff{}
@media screen and (min-width: 1000px) {
	.pc_vanish,
	.pc_br_del br,
	.pc_div_del div,
	.vanish_branch img[src*="-sp."],
	.vanish_branch_onoff img[src*="-sp."]{display:none!important;}
}
@media screen and (max-width: 999px) {
	.sp_vanish,
	.sp_br_del br,
	.sp_div_del div,
	.vanish_branch img[src*="-pc."],
	.vanish_branch_onoff img:not([src*="-sp."]){display:none!important;}
}

.motion_direct,
.motion_chain > *{
	-webkit-transition: transform 1s ease , opacity 1s ease;
	-moz-transition: transform 1s ease , opacity 1s ease;
	-o-transition: transform 1s ease , opacity 1s ease;
	-ms-transition: transform 1s ease , opacity 1s ease;
	transition: transform 1s ease , opacity 1s ease;
}
*[class*="motion_"].fade_up:not(.moved){
	opacity:0;
	transform: translateY(50px);
}
@media screen and (min-width: 1000px) {
	.pc_delay1{transition-delay: 1s;}
	.pc_delay2{transition-delay: 2s;}
}



.W100per{width:100%;}
.Wbase{
	width:100%;
	max-width:1000px;
	margin-left: auto;
	margin-right: auto;
}
.Wbase.W930{max-width:930px;}
.Wbase.W1100{max-width:1100px;}
.Wbase.W1480{max-width:1480px;}
.Wbase.W1500{max-width:1500px;}
.Wbase.W1600{max-width:1600px;}

.style_br,
*[class*="_tategaki"] *,
.tate_set *[class*="_tategaki"]{white-space: pre-wrap;}
.all_tategaki{
	text-orientation: upright;
	-webkit-writing-mode: vertical-rl;
	-moz-writing-mode: vertical-rl;
	-ms-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
	letter-spacing: 0.1em;
	text-align: left;
	display: grid;
}
.pc_tategaki{}
.tate_set{}
.tate_set h2{
	font-size: min(32px,max(26px,3.2vw));
	line-height: 1.75em;
}
.tate_set h2 + *{
	font-size: min(19px,max(16px,1.9vw));
	line-height: calc(1em * 48 / 19);
}
@media screen and (min-width: 1000px) {
	.pc_tategaki{
		text-orientation: upright;
		-webkit-writing-mode: vertical-rl;
		-moz-writing-mode: vertical-rl;
		-ms-writing-mode: vertical-rl;
		writing-mode: vertical-rl;
		letter-spacing: 0.1em;
		text-align: left;
		display: grid;
	}
	/*
	.pc_tategaki.tate_set{
		margin: auto;
		display: flex;
		flex-direction: column;
	}
	*/
	.tate_set h2{margin-left: 0.75em;}
	.tate_set h2 + *{margin-top: 2em;}
}
@media screen and (max-width: 999px) {
	*[pc_w]{width:auto!important;}
	.tate_set h2{line-height: calc(1em * 40 / 26);}
	.tate_set h2 + *{
		margin-top: 1em;
		line-height: 2em;
	}
}

.bg_WY{background-color: #f6f5f0;}
.bg_nagoya{
	background-image: url("../img/komeyanotarou_common_bg-nagoya.webp");
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
}


/* 印刷用CSS */
/*
@media print{
  印刷用CSSの定義を指定する
}
※印刷時は
「@media screen and (min-width: 1000px)」
「@media screen and (max-width: 999px)」内のスタイルは効かなくなる
*/
@media print{
	body > div .H_head,
	.pc_vanish{
		display:none!important;
	}
	header{position:relative;}
}